projects
/
reactos.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
f4f6809
)
[NTVDM]
author
Aleksandar Andrejevic
<aandrejevic@reactos.org>
Sat, 9 Nov 2013 18:10:21 +0000
(18:10 +0000)
committer
Aleksandar Andrejevic
<aandrejevic@reactos.org>
Sat, 9 Nov 2013 18:10:21 +0000
(18:10 +0000)
Allow COM programs to exit with a simple near return to PSP:0000. Spotted by Thomas Faber.
svn path=/branches/ntvdm/; revision=60904
subsystems/ntvdm/dos.c
patch
|
blob
|
history
diff --git
a/subsystems/ntvdm/dos.c
b/subsystems/ntvdm/dos.c
index
df65a78
..
f56ed76
100644
(file)
--- a/
subsystems/ntvdm/dos.c
+++ b/
subsystems/ntvdm/dos.c
@@
-1203,6
+1203,12
@@
BOOLEAN DosCreateProcess(LPCSTR CommandLine, WORD EnvBlock)
/* 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);