winedos / Fix ioport regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Another fix for winevdm regressions. Since DOS executables
are no longer loaded via "Dosvm" callbacks, "Dosvm" is not
initialized when ioport instructions need to be emulated from DOS 
applications. 

This patch makes sure winedos callbacks are always called when 
ioport instructions are emulated, which makes it look like
ioport stuff could be moved into winedos, too.




Changelog:
    Make ioport instruction emulation call winedos handlers.




Index: msdos/ioports.c
===================================================================
RCS file: /home/wine/wine/msdos/ioports.c,v
retrieving revision 1.36
diff -u -r1.36 ioports.c
--- msdos/ioports.c	28 Aug 2002 23:42:36 -0000	1.36
+++ msdos/ioports.c	9 May 2003 16:55:35 -0000
@@ -314,7 +314,9 @@
 #endif
 
     /* first give the DOS VM a chance to handle it */
-    if (Dosvm.inport && Dosvm.inport( port, size, &res )) return res;
+    if (Dosvm.inport || DPMI_LoadDosSystem())
+        if (Dosvm.inport( port, size, &res )) 
+            return res;
 
     switch (port)
     {
@@ -436,7 +438,9 @@
 #endif
 
     /* first give the DOS VM a chance to handle it */
-    if (Dosvm.outport && Dosvm.outport( port, size, value )) return;
+    if (Dosvm.outport || DPMI_LoadDosSystem())
+        if (Dosvm.outport( port, size, value )) 
+            return;
 
     switch (port)
     {




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


[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux