From 2abf03735c7ae126dce5fd5531fc30eed38ee096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Fri, 7 Aug 2015 15:14:19 +0000 Subject: [PATCH] [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... svn path=/trunk/; revision=68609 --- reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c b/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c index ee5fdab09eb..ed04a7ca511 100644 --- a/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c +++ b/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c @@ -563,7 +563,7 @@ VOID WINAPI DosInt21h(LPWORD Stack) /* Create New PSP */ case 0x26: { - DosClonePsp(getDX(), getCS()); + DosClonePsp(getDX(), Stack[STACK_CS]); break; } @@ -2096,7 +2096,7 @@ VOID WINAPI DosAbsoluteWrite(LPWORD Stack) VOID WINAPI DosInt27h(LPWORD Stack) { - DosTerminateProcess(getCS(), 0, (getDX() + 0x0F) >> 4); + DosTerminateProcess(Stack[STACK_CS], 0, (getDX() + 0x0F) >> 4); } VOID WINAPI DosIdle(LPWORD Stack)