DOS VGA, outw support

Jukka Heinonen jhei at iki.fi
Mon Jul 29 12:09:25 CDT 2002


Found finally a program that writes to VGA controller using outw.
Seems that the program thinks that outw acts like two outb:s
that write first to low address and then to high address.
Also added support for outl using the same logic, even though it is
highly unlikely that any program uses that.

Changelog:
  VGA emulation now supports outw and outl.

Index: dlls/winedos/ioports.c
===================================================================
RCS file: /home/wine/wine/dlls/winedos/ioports.c,v
retrieving revision 1.5
diff -u -r1.5 ioports.c
--- dlls/winedos/ioports.c      24 Jun 2002 22:57:28 -0000      1.5
+++ dlls/winedos/ioports.c      29 Jul 2002 17:03:00 -0000
@@ -169,9 +169,14 @@
     case 0x3dd:
     case 0x3de:
     case 0x3df:
-        if(size > 1)
-           FIXME("Trying to write more than one byte to VGA!\n");
-        VGA_ioport_out( port, (BYTE)value );
+        VGA_ioport_out( port, LOBYTE(value) );
+        if(size > 1) {
+            VGA_ioport_out( port+1, HIBYTE(value) );
+            if(size > 2) {
+                VGA_ioport_out( port+2, LOBYTE(HIWORD(value)) );
+                VGA_ioport_out( port+3, HIBYTE(HIWORD(value)) );
+            }
+        }
         break;
     case 0x00:
     case 0x01:

-- 
Jukka Heinonen <http://www.iki.fi/jhei/>



More information about the wine-patches mailing list