Author: hbelusca
Date: Sat Nov 22 19:18:23 2014
New Revision: 65448

URL: http://svn.reactos.org/svn/reactos?rev=65448&view=rev
Log:
[NTVDM]:
- INT 15h offers some "OS hooks" that do nothing normally but return success.
- Stub "Switch to protected mode" INT 15h AH=89h function.

Modified:
    trunk/reactos/subsystems/ntvdm/bios/bios32/bios32.c

Modified: trunk/reactos/subsystems/ntvdm/bios/bios32/bios32.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/ntvdm/bios/bios32/bios32.c?rev=65448&r1=65447&r2=65448&view=diff
==============================================================================
--- trunk/reactos/subsystems/ntvdm/bios/bios32/bios32.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/ntvdm/bios/bios32/bios32.c [iso-8859-1] Sat Nov 22 
19:18:23 2014
@@ -151,6 +151,19 @@
 {
     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 @@
             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:
         {
@@ -254,6 +276,8 @@
         {
             // Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF;
             // setES(???);
+
+            UNIMPLEMENTED;
 
             /* We do not support EBDA yet */
             Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF;


Reply via email to