summaryrefslogtreecommitdiffstats
path: root/private/mvdm/v86/monitor/i386/monitorp.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/mvdm/v86/monitor/i386/monitorp.h')
-rw-r--r--private/mvdm/v86/monitor/i386/monitorp.h221
1 files changed, 221 insertions, 0 deletions
diff --git a/private/mvdm/v86/monitor/i386/monitorp.h b/private/mvdm/v86/monitor/i386/monitorp.h
new file mode 100644
index 000000000..721c01c13
--- /dev/null
+++ b/private/mvdm/v86/monitor/i386/monitorp.h
@@ -0,0 +1,221 @@
+/*++
+
+Copyright (c) 1990 Microsoft Corporation
+
+Module Name:
+
+ Monitorp.h
+
+Abstract:
+
+ This contains the function prototypes, constants, and types for
+ the monitor.
+
+Author:
+
+ Dave Hastings (daveh) 16 Mar 1991
+
+Revision History:
+
+--*/
+
+#include <nt.h>
+#include <ntrtl.h>
+#include <nturtl.h>
+#include <windows.h>
+#include <vdm.h>
+#include <vint.h>
+#include "bop.h"
+#include "softpc.h"
+//bugbug
+typedef unsigned int UINT;
+
+#include <nt_mon.h> // for softpc base definitions
+#include <nt_reset.h>
+#include <monregs.h>
+#include <vdmtib.h>
+
+#define EFLAGS_INTERRUPT_MASK 0x00000200L
+#define EFLAGS_V86_MASK 0x00020000L
+#define VDM_BASE_ADDRESS 0x00000001L
+
+
+#define RPL_MASK 3
+// Types borrowed from windef.h
+
+typedef unsigned char BYTE;
+
+// Memory type record
+
+typedef struct _Memory_Type {
+ struct _Memory_Type *Previous;
+ struct _Memory_Type *Next;
+ ULONG Start;
+ ULONG End;
+ half_word Type;
+} MEMTYPE, *PMEMTYPE;
+
+// private flags
+
+#define VDM_IDLE 0x00000001L
+
+// external data
+
+extern ULONG VdmFlags;
+extern ULONG VdmSize;
+extern LDT_ENTRY *Ldt;
+extern ULONG IntelBase; // base memory address
+extern ULONG VdmDebugLevel; // used to control debugging
+extern ULONG IntelMSW; // Msw value (no msw in context)
+extern ULONG VdmSize; // Size of memory in VDM
+extern PVOID CurrentMonitorTeb; // thread that is currently executing instructions.
+extern BOOLEAN IRQ13BeingHandled; // true until IRQ13 eoi'ed
+extern CONTEXT InitialContext; // Initial floating point context for all threads
+extern BOOLEAN DebugContextActive;
+
+#define MAX_BOP 256
+VOID reset(VOID);
+VOID dummy_int(VOID);
+VOID unexpected_int(VOID);
+VOID illegal_bop(VOID);
+VOID illegal_op_int(VOID);
+VOID print_screen(VOID);
+VOID time_int(VOID);
+VOID keyboard_int(VOID);
+VOID diskette_int(VOID);
+VOID video_io(VOID);
+VOID equipment(VOID);
+VOID memory_size(VOID);
+VOID disk_io(VOID);
+VOID rs232_io(VOID);
+VOID cassette_io(VOID);
+VOID keyboard_io(VOID);
+VOID printer_io(VOID);
+VOID rom_basic(VOID);
+VOID bootstrap(VOID);
+VOID time_of_day(VOID);
+VOID critical_region(VOID);
+VOID cmd_install(VOID);
+VOID cmd_load(VOID);
+VOID redirector(VOID);
+VOID ega_video_io(VOID);
+VOID MsBop0(VOID);
+VOID MsBop1(VOID);
+VOID MsBop2(VOID);
+VOID MsBop3(VOID);
+VOID MsBop4(VOID);
+VOID MsBop5(VOID);
+VOID MsBop6(VOID);
+VOID MsBop7(VOID);
+VOID MsBop8(VOID);
+VOID MsBop9(VOID);
+VOID MsBopA(VOID);
+VOID MsBopB(VOID);
+VOID MsBopC(VOID);
+VOID MsBopD(VOID);
+VOID MsBopE(VOID);
+VOID MsBopF(VOID);
+VOID emm_init(VOID);
+VOID emm_io(VOID);
+VOID return_from_call(VOID);
+VOID rtc_int(VOID);
+VOID re_direct(VOID);
+VOID D11_int(VOID);
+VOID int_287(VOID);
+VOID worm_init(VOID);
+VOID worm_io(VOID);
+VOID ps_private_1(VOID);
+VOID ps_private_2(VOID);
+VOID ps_private_3(VOID);
+VOID ps_private_4(VOID);
+VOID ps_private_5(VOID);
+VOID ps_private_6(VOID);
+VOID ps_private_7(VOID);
+VOID ps_private_8(VOID);
+VOID ps_private_9(VOID);
+VOID ps_private_10(VOID);
+VOID ps_private_11(VOID);
+VOID ps_private_12(VOID);
+VOID ps_private_13(VOID);
+VOID ps_private_14(VOID);
+VOID ps_private_15(VOID);
+VOID bootstrap1(VOID);
+VOID bootstrap2(VOID);
+VOID bootstrap3(VOID);
+VOID ms_windows(VOID);
+VOID msw_mouse(VOID);
+VOID mouse_install1(VOID);
+VOID mouse_install2(VOID);
+VOID mouse_int1(VOID);
+VOID mouse_int2(VOID);
+VOID mouse_io_language(VOID);
+VOID mouse_io_interrupt(VOID);
+VOID mouse_video_io(VOID);
+VOID switch_to_real_mode(VOID);
+VOID control_bop(VOID);
+VOID diskette_io(VOID);
+VOID host_unsimulate(VOID);
+VOID DispatchPageFault (ULONG,ULONG);
+
+
+NTSTATUS
+FastEnterPm(
+ );
+
+VOID
+DispatchInterrupts(
+ VOID
+ );
+
+VOID
+DispatchHwInterrupt(
+ );
+
+ULONG
+GetInterruptHandler(
+ ULONG InterruptNumber,
+ BOOLEAN ProtectedMode
+ );
+
+PVOID
+GetInterruptStack(
+ ULONG InterruptNumber,
+ PUSHORT StackSelector,
+ PUSHORT StackPointer,
+ BOOLEAN ProtectedMode
+ );
+
+
+VOID
+CpuOnetimeInit(
+ VOID
+ );
+
+VOID
+CpuOnetimeTerm(
+ VOID
+ );
+
+VOID
+cpu_createthread();
+
+VOID
+cpu_exitthread();
+
+HANDLE
+ThreadLookUp(
+ PVOID
+ );
+
+VOID
+cpu_exit();
+
+VOID
+InterruptInit(
+ VOID
+ );
+
+VOID
+InterruptTerminate(
+ VOID
+ );