summaryrefslogtreecommitdiffstats
path: root/private/mvdm/inc/bop.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/mvdm/inc/bop.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/private/mvdm/inc/bop.h b/private/mvdm/inc/bop.h
new file mode 100644
index 000000000..d1991689e
--- /dev/null
+++ b/private/mvdm/inc/bop.h
@@ -0,0 +1,93 @@
+/*++ BUILD Version: 0001
+
+Copyright (c) 1990 Microsoft Corporation
+
+Module Name:
+
+ BOP.H
+
+Abstract:
+
+ This module contains macro support for use of Bops in C code.
+
+Author:
+
+ Dave Hastings (daveh) 25-Apr-1991
+
+Revision History:
+
+--*/
+
+//
+// Assigned Bop Numbers
+//
+
+#define BOP_DOS 0x50
+#define BOP_WOW 0x51
+#define BOP_XMS 0x52
+#define BOP_DPMI 0x53
+#define BOP_CMD 0x54
+#define BOP_DEBUGGER 0x56
+#define BOP_REDIR 0x57 // used to be 55, now goes to MS_bop_7()
+#define BOP_NOSUPPORT 0x59 // host warning dialog box
+#define BOP_WAITIFIDLE 0x5A // idle bop
+#define BOP_DBGBREAKPOINT 0x5B // does a 32 bit DbgBreakPoint
+#define BOP_KBD 0x5C // BUGBUG temporary
+#define BOP_VIDEO 0x5D // BUGBUG temporary
+#define BOP_NOTIFICATION 0x5E // 16bits to 32 bits notification
+#define BOP_UNIMPINT 0x5F // BUGBUG temporary
+#define BOP_SWITCHTOREALMODE 0xFD
+#define BOP_UNSIMULATE 0xFE // end execution of code in a vdm
+
+#define BOP_SIZE 3 // # of bytes in a bop instruction
+//
+// Bop Macro
+//
+
+/* XLATOFF */
+
+#define BOP(BopNumber) _asm db 0xC4, 0xC4, BopNumber
+
+/* XLATON */
+
+/* ASM
+BOP macro BopNumber
+ db 0C4h, 0C4h, BopNumber
+ endm
+
+IFNDEF WOW_x86
+FBOP macro BopNumber,BopMinorNumber,FastBopEntry
+ BOP BopNumber
+ifnb <BopMinorNumber>
+ db BopMinorNumber
+endif
+ endm
+ELSE
+FBOP macro BopNumber,BopMinorNumber,FastBopEntry
+ local fb10,fb20
+ test word ptr [FastBopEntry + 4],0FFFFh
+ jz fb10
+.386p
+ push ds
+ push 40h
+ pop ds
+ test ds:[FIXED_NTVDMSTATE_REL40],RM_BIT_MASK
+ pop ds
+ jnz short fb10
+ call fword ptr [FastBopEntry]
+
+ db BopNumber ; indicates which bop
+ifnb <BopMinorNumber>
+ db BopMinorNumber
+endif
+ jmp short fb20
+
+.286p
+fb10: BOP BopNumber
+ifnb <BopMinorNumber>
+ db BopMinorNumber
+endif
+fb20:
+ endm
+endif
+ */