winedos / Fix reboot vector

Jukka Heinonen jhei at iki.fi
Fri Oct 3 14:38:17 CDT 2003


This fixes those DOS programs that want to exit via reboot.
As far as I know, int19 under Windows NT DOS subsystem
works like ExitProcess so that was fixed, too.





Changelog:
  Reboot (int19) under DOS now does ExitProcess.
  Made BIOS reboot vector call int19.





Index: dlls/kernel/dosmem.c
===================================================================
RCS file: /home/wine/wine/dlls/kernel/dosmem.c,v
retrieving revision 1.1
diff -u -r1.1 dosmem.c
--- dlls/kernel/dosmem.c	18 Sep 2003 20:58:41 -0000	1.1
+++ dlls/kernel/dosmem.c	3 Oct 2003 19:18:48 -0000
@@ -265,6 +265,9 @@
 
     /* BIOS ID */
     *(pBiosSys+0xfffe) = 0xfc;
+
+    /* Reboot vector (f000:fff0 or ffff:0000) */
+    *(DWORD*)(pBiosSys + 0xfff0) = VM_STUB(0x19);
 }
 
 /***********************************************************************




Index: dlls/winedos/interrupts.c
===================================================================
RCS file: /home/wine/wine/dlls/winedos/interrupts.c,v
retrieving revision 1.20
diff -u -r1.20 interrupts.c
--- dlls/winedos/interrupts.c	25 Aug 2003 01:01:01 -0000	1.20
+++ dlls/winedos/interrupts.c	3 Oct 2003 19:19:14 -0000
@@ -40,7 +40,7 @@
   /* 0C */ 0,                  0,                  0,                  0,
   /* 10 */ DOSVM_Int10Handler, DOSVM_Int11Handler, DOSVM_Int12Handler, DOSVM_Int13Handler,
   /* 14 */ 0,                  DOSVM_Int15Handler, DOSVM_Int16Handler, DOSVM_Int17Handler,
-  /* 18 */ 0,                  0,                  DOSVM_Int1aHandler, 0,
+  /* 18 */ 0,                  DOSVM_Int19Handler, DOSVM_Int1aHandler, 0,
   /* 1C */ 0,                  0,                  0,                  0,
   /* 20 */ DOSVM_Int20Handler, DOSVM_Int21Handler, 0,                  0,
   /* 24 */ 0,                  DOSVM_Int25Handler, DOSVM_Int26Handler, 0,




Index: dlls/winedos/int19.c
===================================================================
RCS file: /home/wine/wine/dlls/winedos/int19.c,v
retrieving revision 1.2
diff -u -r1.2 int19.c
--- dlls/winedos/int19.c	9 Mar 2002 23:44:32 -0000	1.2
+++ dlls/winedos/int19.c	3 Oct 2003 19:19:18 -0000
@@ -32,5 +32,6 @@
  */
 void WINAPI DOSVM_Int19Handler( CONTEXT86 *context )
 {
-    WARN("Attempted Reboot\n");
+    TRACE( "Attempted Reboot\n" );
+    ExitProcess(0);
 }




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



More information about the wine-patches mailing list