I've created a patch for XF86_VGA16, it runs X Windows (GNOME)... here is a screen shot of running GNOME under bochs for windows (not plex86)... http://members.aol.com/suboner/Bochs4win_gmc.jpg What you don't see is that its running Redhat linux 6.0, I did that by commenting out (at least 3) of keyboard.cc bx_panics. This patch does not cover these changes, but I would think that the patchs to vga.cc would also work for XWindows under redhat 5.2. I realize you guys might not care about these changes because you are more concerned with getting Windows under Linux then Linux under Windows, but this is for a more accurate duplication of the VGA then anything else I would hope. Basicly its timing changes for the vsync under diffrent clock selects. Index: user/plugins/bochs/iodev/vga.cc =================================================================== RCS file: /cvsroot-plex86/plex86/user/plugins/bochs/iodev/vga.cc,v retrieving revision 1.5 diff -u -r1.5 vga.cc --- user/plugins/bochs/iodev/vga.cc 2000/11/22 19:56:33 1.5 +++ user/plugins/bochs/iodev/vga.cc 2000/12/03 22:01:26 @@ -352,22 +352,41 @@ // bx_printf("horiz = %d, vert = %d\n", BX_VGA_THIS s.horiz_tick, BX_VGA_THIS s.vert_tick); - if (BX_VGA_THIS s.horiz_tick >= 100) { // ??? bogus # 100 - BX_VGA_THIS s.horiz_tick = 0; - horiz_retrace = 1; - } - else { - BX_VGA_THIS s.horiz_tick++; - horiz_retrace = 0; - } - if (BX_VGA_THIS s.vert_tick >= 100) { // ??? bogus # 100 - BX_VGA_THIS s.vert_tick = 0; - vert_retrace = 1; - } - else { - BX_VGA_THIS s.vert_tick++; - vert_retrace = 0; - } + if(BX_VGA_THIS s.misc_output.clock_select == 0){ // 25.175 clock 112.5% the length of 28.32 + if (BX_VGA_THIS s.horiz_tick >= 112) { + BX_VGA_THIS s.horiz_tick = 0; + horiz_retrace = 1; + } + else { + BX_VGA_THIS s.horiz_tick++; + horiz_retrace = 0; + } + if (BX_VGA_THIS s.vert_tick >= 112) { + BX_VGA_THIS s.vert_tick = 0; + vert_retrace = 1; + } + else { + BX_VGA_THIS s.vert_tick++; + vert_retrace = 0; + } + }else{ // clock_select 1 is assumed to be the 28.32 clock in XF86_VGA16 + if (BX_VGA_THIS s.horiz_tick >= 100) { // ??? bogus # 100 + BX_VGA_THIS s.horiz_tick = 0; + horiz_retrace = 1; + } + else { + BX_VGA_THIS s.horiz_tick++; + horiz_retrace = 0; + } + if (BX_VGA_THIS s.vert_tick >= 100) { // ??? bogus # 100 + BX_VGA_THIS s.vert_tick = 0; + vert_retrace = 1; + } + else { + BX_VGA_THIS s.vert_tick++; + vert_retrace = 0; + } + } // probably add more clock modes here for diffrent resolutions retval = 0; if (horiz_retrace || vert_retrace)
