home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warptlk3.zip / TOOLKIT / INC / MI.INC < prev    next >
Text File  |  1995-08-24  |  9KB  |  361 lines

  1. ;       SCCSID = @(#)mi.inc    6.1 92/03/25
  2. ;
  3. ;
  4. ;       mi.inc
  5. ;       Copyright (c) IBM Corporation 1987, 1992
  6. ;
  7. ;       All Rights Reserved
  8. ;       For include file hierarchy, see MVDM.INC
  9. ;
  10. F_AC    EQU     00040000H
  11. F_VM    EQU     00020000H
  12. F_RF    EQU     00010000H
  13. F_NT    EQU     00004000H
  14. F_NTCLEAR       EQU     ( NOT F_NT)
  15. F_IOPL0 EQU     0
  16. F_IOPL1 EQU     00001000H
  17. F_IOPL2 EQU     00002000H
  18. F_IOPL3 EQU     00003000H
  19. F_IOPLMASK      EQU     00003000H
  20. F_IOPLSYS       EQU     F_IOPL3
  21. F_IOPLclear     EQU     ( NOT F_IOPLMASK)
  22. F_OVERFLOW      EQU     00000800H
  23. F_DIRECTION     EQU     00000400H
  24. F_INTERRUPT     EQU     00000200H
  25. F_TRACE EQU     00000100H
  26. F_SIGN  EQU     00000080H
  27. F_ZERO  EQU     00000040H
  28. F_AUX   EQU     00000010H
  29. F_PARITY        EQU     00000004H
  30. F_CARRY EQU     00000001H
  31. F_UNDEFINED     EQU     0000802AH
  32. CR0_PE  EQU     00000001H
  33. CR0_MP  EQU     00000002H
  34. CR0_EM  EQU     00000004H
  35. CR0_TS  EQU     00000008H
  36. CR0_ET  EQU     00000010H
  37. CR0_NE  EQU     00000020H
  38. CR0_WP  EQU     00010000H
  39. CR0_AM  EQU     00040000H
  40. CR0_NW  EQU     20000000H
  41. CR0_CD  EQU     40000000H
  42. CR0_PG  EQU     80000000H
  43. CR0_RESERVED    EQU     1ffaffc0H
  44. MSW_PE  EQU     CR0_PE
  45. MSW_MP  EQU     CR0_MP
  46. MSW_EM  EQU     CR0_EM
  47. MSW_TS  EQU     CR0_TS
  48. MSW_ET  EQU     CR0_ET
  49. CR3_WRITETHROUGH        EQU     00000008H
  50. CR3_CACHEDISABLE        EQU     00000010H
  51. CR3_FRAME       EQU     0fffff000H
  52. CR3_RESERVED    EQU     00000fe7H
  53. DR_COUNT        EQU     4H
  54. DR6_B0  EQU     00000001H
  55. DR6_B1  EQU     00000002H
  56. DR6_B2  EQU     00000004H
  57. DR6_B3  EQU     00000008H
  58. DR6_BD  EQU     00002000H
  59. DR6_BS_BIT_INDEX        EQU     0eH
  60. DR6_BS  EQU     (1   SHL  DR6_BS_BIT_INDEX)
  61. DR6_BT  EQU     00008000H
  62. DR6_VALID       EQU     (DR6_B0 OR DR6_B1 OR DR6_B2 OR DR6_B3 OR DR6_BD OR DR6_BS OR DR6_BT)
  63. DR6_RESERVED    EQU      NOT (DR6_VALID)
  64. DR7_L0  EQU     00000001H
  65. DR7_G0  EQU     00000002H
  66. DR7_L1  EQU     00000004H
  67. DR7_G1  EQU     00000008H
  68. DR7_L2  EQU     00000010H
  69. DR7_G2  EQU     00000020H
  70. DR7_L3  EQU     00000040H
  71. DR7_G3  EQU     00000080H
  72. DR7_LE  EQU     00000100H
  73. DR7_GE  EQU     00000200H
  74. DR7_RW0 EQU     00030000H
  75. DR7_LEN0        EQU     000c0000H
  76. DR7_RW1 EQU     00300000H
  77. DR7_LEN1        EQU     00c00000H
  78. DR7_RW2 EQU     03000000H
  79. DR7_LEN2        EQU     0c000000H
  80. DR7_RW3 EQU     30000000H
  81. DR7_LEN3        EQU     0c0000000H
  82. DR7_RESERVED    EQU     0000fc00H
  83. DR7_EXECUTE     EQU     0H
  84. DR7_WRITE       EQU     1H
  85. DR7_READWRITE   EQU     3H
  86. DR7_LEN_1       EQU     0H
  87. DR7_LEN_2       EQU     1H
  88. DR7_LEN_4       EQU     3H
  89. MI_ARPL EQU     63H
  90. MI_HLT  EQU     0f4H
  91. MI_OPERANDSIZE  EQU     66H
  92. MI_ADDRESSSIZE  EQU     67H
  93. MI_TWOBYTEOP    EQU     0fH
  94. MI_POP_DS       EQU     1fH
  95. MI_POP_ES       EQU     07H
  96. MI_POP_FS       EQU     0A1H
  97. MI_POP_GS       EQU     0A9H
  98. MI_INT3 EQU     0CCH
  99. MI_INT  EQU     0CDH
  100. MI_IRET EQU     0CFH
  101. MI_LONG_JMP     EQU     0EAH
  102. MI_LONG_CALL    EQU     9AH
  103. MI_LONG_RET     EQU     0CBH
  104. MI_LONG_RETn    EQU     0CAH
  105. MI_NEAR_RET     EQU     0C3H
  106. MI_IN_PORT_AL   EQU     0E4H
  107. MI_IN_PORT_AX   EQU     0E5H
  108. MI_OUT_PORT_AL  EQU     0E6H
  109. MI_OUT_PORT_AX  EQU     0E7H
  110. MI_IN_DX_AL     EQU     0ECH
  111. MI_IN_DX_AX     EQU     0EDH
  112. MI_OUT_DX_AL    EQU     0EEH
  113. MI_OUT_DX_AX    EQU     0EFH
  114. MI_GROUP5       EQU     0FFH
  115. MI_SEGES        EQU     26H
  116. MI_SEGCS        EQU     2EH
  117. MI_SEGSS        EQU     36H
  118. MI_SEGDS        EQU     3EH
  119. MI_SEGFS        EQU     64H
  120. MI_SEGGS        EQU     65H
  121. MI_ESCMASK      EQU     0F8H
  122. MI_ESC  EQU     0D8H
  123. MI_MODMASK      EQU     0C0H
  124. MI_MODSHIFT     EQU     6
  125. MI_MODNONE      EQU     00H
  126. MI_MODBYTE      EQU     40H
  127. MI_MODWORD      EQU     80H
  128. MI_MODREG       EQU     0C0H
  129. MI_REGMASK      EQU     38H
  130. MI_REGSHIFT     EQU     3
  131. MI_REGAX        EQU     00H
  132. MI_REGCX        EQU     08H
  133. MI_REGDX        EQU     10H
  134. MI_REGBX        EQU     18H
  135. MI_REG3 EQU     18H
  136. MI_REGSP        EQU     20H
  137. MI_REGBP        EQU     28H
  138. MI_REGSI        EQU     30H
  139. MI_REGDI        EQU     38H
  140. MI_REGES        EQU     00H
  141. MI_REGCS        EQU     08H
  142. MI_REGSS        EQU     10H
  143. MI_REGDS        EQU     18H
  144. MI_REGFS        EQU     20H
  145. MI_REGGS        EQU     28H
  146. MI_RMMASK       EQU     07H
  147. MI_RMSHIFT      EQU     0
  148. MI_RMBXSI       EQU     00H
  149. MI_RMBXDI       EQU     01H
  150. MI_RMBPSI       EQU     02H
  151. MI_RMBPDI       EQU     03H
  152. MI_RMSI EQU     04H
  153. MI_RMDI EQU     05H
  154. MI_RMBP EQU     06H
  155. MI_RMBX EQU     07H
  156. MI_SIB_SSMASK   EQU     0c0H
  157. MI_SIB_SSSHIFT  EQU     06H
  158. MI_SIB_INDEXMASK        EQU     38H
  159. MI_SIB_INDEXSHIFT       EQU     03H
  160. MI_SIB_INDEXNONE        EQU     20H
  161. MI_SIB_BASEMASK EQU     07H
  162. MI_SIB_BASESHIFT        EQU     00H
  163. MI_SIB_BASEESP  EQU     04H
  164. MI_SIB_BASENONE EQU     05H
  165. MI_RMEDX        EQU     02H
  166. MI_RMSIB        EQU     04H
  167. MI_RMDISP       EQU     05H
  168. MI_RMEBP        EQU     05H
  169. MI_REG6 EQU     30H
  170. MI_REGCR0       EQU     00H
  171. MI_PUSH_AX      EQU     50H
  172. MI_PUSH_IMM     EQU     68H
  173. MI_MOV_REG_IMM  EQU     0B8H
  174. MI_MOV_REG_IMMEDIATE    EQU     0B8H
  175. MI_MOV_REG_REGMEM       EQU     8BH
  176. MI_ADD_AX_IMM   EQU     05H
  177. MI_CALL_NEAR_REL        EQU     0E8H
  178. SIZE_CALL_NEAR_REL      EQU     5
  179. MI_LMSW_OPCODE  EQU     01H
  180. MI_GET_CRx_OPCODE       EQU     20H
  181. MI_GET_DRx_OPCODE       EQU     21H
  182. MI_SET_CRx_OPCODE       EQU     22H
  183. MI_SET_DRx_OPCODE       EQU     23H
  184. MI_GET_TRx_OPCODE       EQU     24H
  185. MI_SET_TRx_OPCODE       EQU     26H
  186. MI_MOV_REG8_MEM8        EQU     8AH
  187. MI_MOV_SEG_MEM_OPCODE   EQU     8eH
  188.  
  189. w_s     STRUC
  190. lobyte  DB      ?
  191. hibyte  DB      ?
  192. w_s     ENDS
  193.  
  194. LowByte EQU     lobyte
  195. HighByte        EQU     hibyte
  196.  
  197. dw_s    STRUC
  198. loword  DW      ?
  199. hiword  DW      ?
  200. dw_s    ENDS
  201.  
  202. LowWord EQU     loword
  203. HighWord        EQU     hiword
  204.  
  205. FarPtr  STRUC
  206. Offst   DW      ?
  207. Segmt   DW      ?
  208. FarPtr  ENDS
  209.  
  210.  
  211. FarPtr32        STRUC
  212. Offst32 DD      ?
  213. Segmt32 DW      ?
  214. Pad32   DW      ?
  215. FarPtr32        ENDS
  216.  
  217.  
  218. retf16_s        STRUC
  219. retf16_ip       DW      ?
  220. retf16_cs       DW      ?
  221. retf16_s        ENDS
  222.  
  223.  
  224. retf32_s        STRUC
  225. retf32_eip      DD      ?
  226. retf32_cs       DW      ?
  227. retf32_padcs    DW      ?
  228. retf32_s        ENDS
  229.  
  230.  
  231. iret16_s        STRUC
  232. iret16_ip       DW      ?
  233. iret16_cs       DW      ?
  234. iret16_flag     DW      ?
  235. iret16_s        ENDS
  236.  
  237.  
  238. Iret_s  STRUC
  239. I_CSIP  DB      SIZE FarPtr DUP (?)
  240. I_FLAGS DW      ?
  241. Iret_s  ENDS
  242.  
  243.  
  244. IretFrame       STRUC
  245. IretIP  DW      ?
  246. IretCS  DW      ?
  247. IretFLAGS       DW      ?
  248. IretFrame       ENDS
  249.  
  250. IretCSIP EQU     <DWORD PTR IretIP>
  251.  
  252. iret32_s        STRUC
  253. iret32_eip      DD      ?
  254. iret32_cs       DW      ?
  255. iret32_padcs    DW      ?
  256. iret32_eflag    DD      ?
  257. iret32_s        ENDS
  258.  
  259.  
  260. Iret32_s        STRUC
  261. I32_CSEIP       DB      SIZE FarPtr32 DUP (?)
  262. I32_EFLAGS      DD      ?
  263. Iret32_s        ENDS
  264.  
  265. I32_CS          EQU     <I32_CSEIP.Segmt32>
  266. I32_EIP         EQU     <I32_CSEIP.Offst32>
  267. I32_IP          EQU     <I32_CSEIP.Offst32.loword>
  268. I32_FLAGS       EQU     <I32_EFLAGS.loword>
  269.  
  270.  
  271. pltiret16_s     STRUC
  272. pltiret16_ip    DW      ?
  273. pltiret16_cs    DW      ?
  274. pltiret16_flag  DW      ?
  275. pltiret16_sp    DW      ?
  276. pltiret16_ss    DW      ?
  277. pltiret16_s     ENDS
  278.  
  279.  
  280. PLTIret_s       STRUC
  281. PI_CSIP DB      SIZE FarPtr DUP (?)
  282. PI_FLAGS        DW      ?
  283. PI_SSSP DB      SIZE FarPtr DUP (?)
  284. PLTIret_s       ENDS
  285.  
  286.  
  287. PLTIretFrame    STRUC
  288. PLTIretIP       DW      ?
  289. PLTIretCS       DW      ?
  290. PLTIretFLAGS    DW      ?
  291. PLTIretSP       DW      ?
  292. PLTIretSS       DW      ?
  293. PLTIretFrame    ENDS
  294.  
  295. PLTIretCSIP     EQU     DWORD PTR PLTIretIP
  296. PLTIretSSSP     EQU     DWORD PTR PLTIretSP
  297.  
  298.  
  299. pltiret32_s     STRUC
  300. pltiret32_eip   DD      ?
  301. pltiret32_cs    DW      ?
  302. pltiret32_padcs DW      ?
  303. pltiret32_eflag DD      ?
  304. pltiret32_esp   DD      ?
  305. pltiret32_ss    DW      ?
  306. pltiret32_padss DW      ?
  307. pltiret32_s     ENDS
  308.  
  309.  
  310. PLTIret32_s     STRUC
  311. PI32_CSEIP      DB      SIZE FarPtr32 DUP (?)
  312. PI32_EFLAGS     DD      ?
  313. PI32_SSESP      DB      SIZE FarPtr32 DUP (?)
  314. PLTIret32_s     ENDS
  315.  
  316. PI32_CS         EQU     <PI32_CSEIP.Segmt32>
  317. PI32_EIP        EQU     <PI32_CSEIP.Offst32>
  318. PI32_SS         EQU     <PI32_SSESP.Segmt32>
  319. PI32_ESP        EQU     <PI32_SSESP.Offst32>
  320. PI32_FLAGS      EQU     <WORD PTR PI32_EFLAGS>
  321.  
  322. ptr_t   STRUC
  323.         ptr_flat        DD      ?
  324. ptr_t   ENDS
  325. ptr_off         equ     <ptr_flat.Offst>
  326. ptr_sel         equ     <ptr_flat.Segmt>
  327.  
  328.  
  329. pusha_s STRUC
  330. pas_di  DW      ?
  331. pas_si  DW      ?
  332. pas_bp  DW      ?
  333. pas_sp  DW      ?
  334. pas_bx  DW      ?
  335. pas_dx  DW      ?
  336. pas_cx  DW      ?
  337. pas_ax  DW      ?
  338. pusha_s ENDS
  339.  
  340.  
  341. pushad_s        STRUC
  342. pads_edi        DD      ?
  343. pads_esi        DD      ?
  344. pads_ebp        DD      ?
  345. pads_esp        DD      ?
  346. pads_ebx        DD      ?
  347. pads_edx        DD      ?
  348. pads_ecx        DD      ?
  349. pads_eax        DD      ?
  350. pushad_s        ENDS
  351.  
  352. pads_di EQU     <WORD PTR pads_edi>
  353. pads_si EQU     <WORD PTR pads_esi>
  354. pads_bp EQU     <WORD PTR pads_ebp>
  355. pads_sp EQU     <WORD PTR pads_esp>
  356. pads_bx EQU     <WORD PTR pads_ebx>
  357. pads_dx EQU     <WORD PTR pads_edx>
  358. pads_cx EQU     <WORD PTR pads_ecx>
  359. pads_ax EQU     <WORD PTR pads_eax>
  360.  
  361.