Author: hbelusca
Date: Fri Aug 7 15:14:19 2015
New Revision: 68609
URL:
http://svn.reactos.org/svn/reactos?rev=68609&view=rev
Log:
[NTVDM]: DOS: When we create a new PSP, or terminate a TSR, we *must* use the code segment
value of the CALLER!! and not the current one (DOS code segment). Should fix a lot of
stuff...
Modified:
trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/…
==============================================================================
--- trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c [iso-8859-1] Fri Aug 7
15:14:19 2015
@@ -563,7 +563,7 @@
/* Create New PSP */
case 0x26:
{
- DosClonePsp(getDX(), getCS());
+ DosClonePsp(getDX(), Stack[STACK_CS]);
break;
}
@@ -2096,7 +2096,7 @@
VOID WINAPI DosInt27h(LPWORD Stack)
{
- DosTerminateProcess(getCS(), 0, (getDX() + 0x0F) >> 4);
+ DosTerminateProcess(Stack[STACK_CS], 0, (getDX() + 0x0F) >> 4);
}
VOID WINAPI DosIdle(LPWORD Stack)