- Fix ZF and CF flags setting in function INT 2Fh, AX=1214h.
- Use CreateEventW explicitely.
- Set the VdmTaskEvent event at startup. This allows user input by default (even if we don't run our own DOS) in NTVDM. Fixes keyboard input not working when testing boot&usage of MSDOS 6.

svn path=/trunk/; revision=69339
This commit is contained in:
Hermès Bélusca-Maïto 2015-09-24 00:27:59 +00:00
parent 5c49e6b52e
commit d65c53b046
3 changed files with 13 additions and 4 deletions

View file

@ -1015,7 +1015,7 @@ DWORD DosStartProcess32(IN LPCSTR ExecutablePath,
sizeof(*DosStartProc32.ComSpecInfo));
ASSERT(DosStartProc32.ComSpecInfo);
DosStartProc32.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
DosStartProc32.hEvent = CreateEventW(NULL, FALSE, FALSE, NULL);
ASSERT(DosStartProc32.hEvent);
#endif

View file

@ -2184,8 +2184,16 @@ VOID WINAPI DosInt2Fh(LPWORD Stack)
PVOID PointerFromFarPointer2 = SEG_OFF_TO_PTR(getES(), getDI());
BOOLEAN AreEqual = (PointerFromFarPointer1 == PointerFromFarPointer2);
setZF(AreEqual);
setCF(!AreEqual);
if (AreEqual)
{
Stack[STACK_FLAGS] |= EMULATOR_FLAG_ZF;
Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF;
}
else
{
Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_ZF;
Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF;
}
break;
}

View file

@ -475,7 +475,7 @@ BOOLEAN EmulatorInitialize(HANDLE ConsoleInput, HANDLE ConsoleOutput)
/**************** ATTACH INPUT WITH CONSOLE *****************/
/* Create the task event */
VdmTaskEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
VdmTaskEvent = CreateEventW(NULL, TRUE, FALSE, NULL);
ASSERT(VdmTaskEvent != NULL);
/* Start the input thread */
@ -486,6 +486,7 @@ BOOLEAN EmulatorInitialize(HANDLE ConsoleInput, HANDLE ConsoleOutput)
EmulatorCleanup();
return FALSE;
}
ResumeEventThread();
/************************************************************/
/* Initialize the VGA */