Author: aandrejevic
Date: Sat Nov  9 18:10:21 2013
New Revision: 60904

URL: http://svn.reactos.org/svn/reactos?rev=60904&view=rev
Log:
[NTVDM]
Allow COM programs to exit with a simple near return to PSP:0000. Spotted by 
Thomas Faber.


Modified:
    branches/ntvdm/subsystems/ntvdm/dos.c

Modified: branches/ntvdm/subsystems/ntvdm/dos.c
URL: 
http://svn.reactos.org/svn/reactos/branches/ntvdm/subsystems/ntvdm/dos.c?rev=60904&r1=60903&r2=60904&view=diff
==============================================================================
--- branches/ntvdm/subsystems/ntvdm/dos.c       [iso-8859-1] (original)
+++ branches/ntvdm/subsystems/ntvdm/dos.c       [iso-8859-1] Sat Nov  9 
18:10:21 2013
@@ -1203,6 +1203,12 @@
         /* Set the stack to the last word of the segment */
         EmulatorSetStack(Segment, 0xFFFE);
 
+        /*
+         * Set the value on the stack to 0, so that a near return
+         * jumps to PSP:0000 which has the exit code.
+         */
+        *((LPWORD)SEG_OFF_TO_PTR(Segment, 0xFFFE)) = 0;
+
         /* Execute */
         CurrentPsp = Segment;
         DiskTransferArea = MAKELONG(0x80, Segment);


Reply via email to