From ec34daaa0a2f25dd084dfcde4d9435fc5210b831 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Sat, 22 Nov 2014 19:18:23 +0000 Subject: [PATCH] [NTVDM]: - INT 15h offers some "OS hooks" that do nothing normally but return success. - Stub "Switch to protected mode" INT 15h AH=89h function. svn path=/trunk/; revision=65448 --- reactos/subsystems/ntvdm/bios/bios32/bios32.c | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/reactos/subsystems/ntvdm/bios/bios32/bios32.c b/reactos/subsystems/ntvdm/bios/bios32/bios32.c index 87d8172b976..548e7dd512d 100644 --- a/reactos/subsystems/ntvdm/bios/bios32/bios32.c +++ b/reactos/subsystems/ntvdm/bios/bios32/bios32.c @@ -151,6 +151,19 @@ static VOID WINAPI BiosMiscService(LPWORD Stack) { switch (getAH()) { + /* OS Hooks for Multitasking */ + case 0x80: // Device Open + case 0x81: // Device Close + case 0x82: // Program Termination + case 0x90: // Device Busy + case 0x91: // Device POST + { + /* Return success by default */ + setAH(0x00); + Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF; + break; + } + /* Keyboard intercept */ case 0x4F: { @@ -234,6 +247,15 @@ static VOID WINAPI BiosMiscService(LPWORD Stack) break; } + /* Switch to Protected Mode */ + case 0x89: + { + DPRINT1("BIOS INT 15h, AH=89h \"Switch to Protected Mode\" is UNIMPLEMENTED"); + + Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF; + break; + } + /* Get Configuration */ case 0xC0: { @@ -255,6 +277,8 @@ static VOID WINAPI BiosMiscService(LPWORD Stack) // Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF; // setES(???); + UNIMPLEMENTED; + /* We do not support EBDA yet */ Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF;