[NTVDM]
[reactos.git] / subsystems / ntvdm / emulator.c
index 80dfac9..de52f91 100644 (file)
@@ -8,14 +8,21 @@
 
 /* INCLUDES *******************************************************************/
 
-#include "ntvdm.h"
-#include <softx86/softx86.h>
-#include <softx86/softx87.h>
+#include "emulator.h"
+#include "bios.h"
+#include "dos.h"
+#include "pic.h"
+#include "ps2.h"
+#include "timer.h"
 
-softx86_ctx EmulatorContext;
-softx87_ctx FpuEmulatorContext;
+/* PRIVATE VARIABLES **********************************************************/
+
+static softx86_ctx EmulatorContext;
+static softx87_ctx FpuEmulatorContext;
 static BOOLEAN A20Line = FALSE;
 
+/* PRIVATE FUNCTIONS **********************************************************/
+
 static VOID EmulatorReadMemory(PVOID Context, UINT Address, LPBYTE Buffer, INT Size)
 {
     /* If the A20 line is disabled, mask bit 20 */
@@ -207,6 +214,12 @@ static VOID EmulatorSoftwareInt(PVOID Context, BYTE Number)
                 BiosVideoService();
                 break;
             }
+            case VIDEO_KBD_INTERRUPT:
+            {
+                /* This is the keyboard BIOS interrupt, call the BIOS */
+                BiosKeyboardService();
+                break;
+            }
             case 0x20:
             {
                 DosInt20h(CodeSegment);