Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1161 lines
29 KiB

  1. ;**************************************************************************
  2. ;/*
  3. ; * Microsoft Confidential
  4. ; * Copyright (C) Microsoft Corporation 1991
  5. ; * All Rights Reserved.
  6. ; */
  7. ; Change Log:
  8. ;
  9. ; Date Who # Description
  10. ; -------- --- --- ------------------------------------------------------
  11. ; 04/01/90 DIC C01 These variables are used to determine if enough memory
  12. ; is available to write a file out to disk. (Compaq STR
  13. ; #1889) (MS Bug #774)
  14. ;*****************************************************************************/
  15. PAGE 80,132 ;
  16. TITLE DEBCONST.ASM
  17. IF1
  18. %OUT COMPONENT=DEBUG, MODULE=DEBCONST
  19. ENDIF
  20. .XLIST
  21. .XCREF
  22. include version.inc ; cas -- missing equates
  23. include syscall.inc ; cas -- missing equates
  24. INCLUDE DOSSYM.INC
  25. INCLUDE debug.inc
  26. .LIST
  27. .CREF
  28. CODE SEGMENT PUBLIC BYTE
  29. CODE ENDS
  30. CONST SEGMENT PUBLIC BYTE
  31. CONST ENDS
  32. CSTACK SEGMENT STACK
  33. CSTACK ENDS
  34. DATA SEGMENT PUBLIC BYTE
  35. DATA ENDS
  36. DG GROUP CODE,CONST,CSTACK,DATA
  37. CODE SEGMENT PUBLIC BYTE
  38. EXTRN ALUFROMREG:NEAR, ALUTOREG:NEAR, ACCIMM:NEAR, SEGOP:NEAR
  39. EXTRN ESPRE:NEAR, SSPRE:NEAR, CSPRE:NEAR, DSPRE:NEAR
  40. EXTRN REGOP:NEAR, NOOPERANDS:NEAR, SAVHEX:NEAR, SHORTJMP:NEAR
  41. EXTRN MOVSEGTO:NEAR, WORDTOALU:NEAR, MOVSEGFROM:NEAR
  42. EXTRN GETADDR:NEAR, XCHGAX:NEAR, LONGJMP:NEAR, LOADACC:NEAR
  43. EXTRN STOREACC:NEAR, REGIMMB:NEAR, SAV16:NEAR, MEMIMM:NEAR
  44. EXTRN INT3:NEAR, SAV8:NEAR, CHK10:NEAR, M8087:NEAR
  45. EXTRN M8087_D9:NEAR, M8087_DB:NEAR, M8087_DD:NEAR
  46. EXTRN M8087_DF:NEAR, INFIXB:NEAR, INFIXW:NEAR, OUTFIXB:NEAR
  47. EXTRN OUTFIXW:NEAR, JMPCALL:NEAR, INVARB:NEAR, INVARW:NEAR
  48. EXTRN OUTVARB:NEAR, OUTVARW:NEAR, PREFIX:NEAR, IMMED:NEAR
  49. EXTRN SIGNIMM:NEAR, SHIFT:NEAR, SHIFTV:NEAR, GRP1:NEAR
  50. EXTRN GRP2:NEAR, REGIMMW:NEAR, DOORG:NEAR
  51. EXTRN DB_OPER:NEAR, DW_OPER:NEAR, ASSEMLOOP:NEAR, GROUP2:NEAR
  52. EXTRN NO_OPER:NEAR, GROUP1:NEAR, FGROUPP:NEAR, FGROUPX:NEAR
  53. EXTRN FGROUPZ:NEAR, FD9_OPER:NEAR, FGROUPB:NEAR, FGROUP:NEAR
  54. EXTRN FGROUPDS:NEAR, DCINC_OPER:NEAR, INT_OPER:NEAR
  55. EXTRN IN_OPER:NEAR, DISP8_OPER:NEAR, JMP_OPER:NEAR, L_OPER:NEAR
  56. EXTRN MOV_OPER:NEAR, OUT_OPER:NEAR, PUSH_OPER:NEAR
  57. EXTRN GET_DATA16:NEAR, FGROUP3:NEAR, FGROUP3W:NEAR
  58. EXTRN FDE_OPER:NEAR, ESC_OPER:NEAR, AA_OPER:NEAR
  59. EXTRN CALL_OPER:NEAR, FDB_OPER:NEAR, POP_OPER:NEAR, ROTOP:NEAR
  60. EXTRN TST_OPER:NEAR, EX_OPER:NEAR
  61. CODE ENDS
  62. CONST SEGMENT PUBLIC BYTE
  63. PUBLIC REG8, REG16, SREG, SIZ8, DISTAB, DBMN, ADDMN, ADCMN, SUBMN
  64. PUBLIC SBBMN, XORMN, ORMN, ANDMN, AAAMN, AADMN, AASMN, CALLMN, CBWMN
  65. PUBLIC UPMN, DIMN, CMCMN, CMPMN, CWDMN, DAAMN, DASMN, DECMN, DIVMN
  66. PUBLIC ESCMN, HLTMN, IDIVMN, IMULMN, INCMN, INTOMN, INTMN, INMN
  67. PUBLIC IRETMN, JAMN, JCXZMN, JNCMN, JBEMN, JZMN, JGEMN, JGMN, JLEMN
  68. PUBLIC JLMN, JMPMN, JNZMN, JPEMN, JNZMN, JPEMN, JPOMN, JNSMN, JNOMN
  69. PUBLIC JOMN, JSMN, LAHFMN, LDSMN, LEAMN, LESMN, LOCKMN, LODBMN
  70. PUBLIC LODWMN, LOOPNZMN, LOOPZMN, LOOPMN, MOVBMN, MOVWMN, MOVMN
  71. PUBLIC MULMN, NEGMN, NOPMN, NOTMN, OUTMN, POPFMN, POPMN, PUSHFMN
  72. PUBLIC PUSHMN, RCLMN, RCRMN, REPZMN, REPNZMN, RETFMN, RETMN, ROLMN
  73. PUBLIC RORMN, SAHFMN, SARMN, SCABMN, SCAWMN, SHLMN, SHRMN, STCMN
  74. PUBLIC DOWNMN, EIMN, STOBMN, STOWMN, TESTMN, WAITMN, XCHGMN, XLATMN
  75. PUBLIC ESSEGMN, CSSEGMN, SSSEGMN, DSSEGMN, BADMN
  76. PUBLIC M8087_TAB, FI_TAB, SIZE_TAB, MD9_TAB, MD9_TAB2, MDB_TAB
  77. PUBLIC MDB_TAB2, MDD_TAB, MDD_TAB2, MDF_TAB, OPTAB, MAXOP, SHFTAB
  78. PUBLIC IMMTAB, GRP1TAB, GRP2TAB, SEGTAB, REGTAB, REGTABEND, FLAGTAB
  79. PUBLIC STACK
  80. PUBLIC DriveOfFile,FileSizeHB,FileSizeLB,TempLB,TempHB ;C01
  81. PUBLIC AXSAVE, BXSAVE, CXSAVE, DXSAVE, BPSAVE, SPSAVE, SISAVE
  82. PUBLIC DISAVE, DSSAVE, ESSAVE, SSSAVE, CSSAVE, IPSAVE, FLSAVE, RSTACK
  83. PUBLIC REGDIF, RDFLG, TOTREG, DSIZ, NOREGL, DISPB, LBUFSIZ, LBUFFCNT
  84. PUBLIC LINEBUF, PFLAG, COLPOS, RSETFLAG
  85. IF SYSVER
  86. PUBLIC CONFCB, POUT, COUT, CIN, IOBUFF, IOADDR, IOCALL, IOCOM
  87. PUBLIC IOSTAT, IOCHRET, IOSEG, IOCNT
  88. ENDIF
  89. PUBLIC QFLAG, NEWEXEC, RETSAVE, USER_PROC_PDB, HEADSAVE, EXEC_BLOCK
  90. PUBLIC COM_LINE, COM_FCB1, COM_FCB2, COM_SSSP, COM_CSIP, NEXTCS
  91. PUBLIC NEXTIP, NAMESPEC
  92. REG8 DB "ALCLDLBLAHCHDHBH"
  93. REG16 DB "AXCXDXBXSPBPSIDI"
  94. SREG DB "ESCSSSDS",0,0
  95. SIZ8 DB "BYWODWQWTB",0,0
  96. ; 0
  97. DISTAB DW OFFSET DG:ADDMN,ALUFROMREG
  98. DW OFFSET DG:ADDMN,ALUFROMREG
  99. DW OFFSET DG:ADDMN,ALUTOREG
  100. DW OFFSET DG:ADDMN,ALUTOREG
  101. DW OFFSET DG:ADDMN,ACCIMM
  102. DW OFFSET DG:ADDMN,ACCIMM
  103. DW OFFSET DG:PUSHMN,SEGOP
  104. DW OFFSET DG:POPMN,SEGOP
  105. DW OFFSET DG:ORMN,ALUFROMREG
  106. DW OFFSET DG:ORMN,ALUFROMREG
  107. DW OFFSET DG:ORMN,ALUTOREG
  108. DW OFFSET DG:ORMN,ALUTOREG
  109. DW OFFSET DG:ORMN,ACCIMM
  110. DW OFFSET DG:ORMN,ACCIMM
  111. DW OFFSET DG:PUSHMN,SEGOP
  112. DW OFFSET DG:DBMN,SAVHEX ; cas -- this has always been
  113. ; ; disassembled as a POP CS,
  114. ; ; which doesn't really exist.
  115. ; ; It is now a 386 prefix, but
  116. ; ; we don't know about 386
  117. ; ; instructions, so we'll put
  118. ; ; out a DB
  119. ; 10H
  120. DW OFFSET DG:ADCMN,ALUFROMREG
  121. DW OFFSET DG:ADCMN,ALUFROMREG
  122. DW OFFSET DG:ADCMN,ALUTOREG
  123. DW OFFSET DG:ADCMN,ALUTOREG
  124. DW OFFSET DG:ADCMN,ACCIMM
  125. DW OFFSET DG:ADCMN,ACCIMM
  126. DW OFFSET DG:PUSHMN,SEGOP
  127. DW OFFSET DG:POPMN,SEGOP
  128. DW OFFSET DG:SBBMN,ALUFROMREG
  129. DW OFFSET DG:SBBMN,ALUFROMREG
  130. DW OFFSET DG:SBBMN,ALUTOREG
  131. DW OFFSET DG:SBBMN,ALUTOREG
  132. DW OFFSET DG:SBBMN,ACCIMM
  133. DW OFFSET DG:SBBMN,ACCIMM
  134. DW OFFSET DG:PUSHMN,SEGOP
  135. DW OFFSET DG:POPMN,SEGOP
  136. ; 20H
  137. DW OFFSET DG:ANDMN,ALUFROMREG
  138. DW OFFSET DG:ANDMN,ALUFROMREG
  139. DW OFFSET DG:ANDMN,ALUTOREG
  140. DW OFFSET DG:ANDMN,ALUTOREG
  141. DW OFFSET DG:ANDMN,ACCIMM
  142. DW OFFSET DG:ANDMN,ACCIMM
  143. DW OFFSET DG:ESSEGMN,ESPRE
  144. DW OFFSET DG:DAAMN,NOOPERANDS
  145. DW OFFSET DG:SUBMN,ALUFROMREG
  146. DW OFFSET DG:SUBMN,ALUFROMREG
  147. DW OFFSET DG:SUBMN,ALUTOREG
  148. DW OFFSET DG:SUBMN,ALUTOREG
  149. DW OFFSET DG:SUBMN,ACCIMM
  150. DW OFFSET DG:SUBMN,ACCIMM
  151. DW OFFSET DG:CSSEGMN,CSPRE
  152. DW OFFSET DG:DASMN,NOOPERANDS
  153. ; 30H
  154. DW OFFSET DG:XORMN,ALUFROMREG
  155. DW OFFSET DG:XORMN,ALUFROMREG
  156. DW OFFSET DG:XORMN,ALUTOREG
  157. DW OFFSET DG:XORMN,ALUTOREG
  158. DW OFFSET DG:XORMN,ACCIMM
  159. DW OFFSET DG:XORMN,ACCIMM
  160. DW OFFSET DG:SSSEGMN,SSPRE
  161. DW OFFSET DG:AAAMN,NOOPERANDS
  162. DW OFFSET DG:CMPMN,ALUFROMREG
  163. DW OFFSET DG:CMPMN,ALUFROMREG
  164. DW OFFSET DG:CMPMN,ALUTOREG
  165. DW OFFSET DG:CMPMN,ALUTOREG
  166. DW OFFSET DG:CMPMN,ACCIMM
  167. DW OFFSET DG:CMPMN,ACCIMM
  168. DW OFFSET DG:DSSEGMN,DSPRE
  169. DW OFFSET DG:AASMN,NOOPERANDS
  170. ; 40H
  171. DW OFFSET DG:INCMN,REGOP
  172. DW OFFSET DG:INCMN,REGOP
  173. DW OFFSET DG:INCMN,REGOP
  174. DW OFFSET DG:INCMN,REGOP
  175. DW OFFSET DG:INCMN,REGOP
  176. DW OFFSET DG:INCMN,REGOP
  177. DW OFFSET DG:INCMN,REGOP
  178. DW OFFSET DG:INCMN,REGOP
  179. DW OFFSET DG:DECMN,REGOP
  180. DW OFFSET DG:DECMN,REGOP
  181. DW OFFSET DG:DECMN,REGOP
  182. DW OFFSET DG:DECMN,REGOP
  183. DW OFFSET DG:DECMN,REGOP
  184. DW OFFSET DG:DECMN,REGOP
  185. DW OFFSET DG:DECMN,REGOP
  186. DW OFFSET DG:DECMN,REGOP
  187. ; 50H
  188. DW OFFSET DG:PUSHMN,REGOP
  189. DW OFFSET DG:PUSHMN,REGOP
  190. DW OFFSET DG:PUSHMN,REGOP
  191. DW OFFSET DG:PUSHMN,REGOP
  192. DW OFFSET DG:PUSHMN,REGOP
  193. DW OFFSET DG:PUSHMN,REGOP
  194. DW OFFSET DG:PUSHMN,REGOP
  195. DW OFFSET DG:PUSHMN,REGOP
  196. DW OFFSET DG:POPMN,REGOP
  197. DW OFFSET DG:POPMN,REGOP
  198. DW OFFSET DG:POPMN,REGOP
  199. DW OFFSET DG:POPMN,REGOP
  200. DW OFFSET DG:POPMN,REGOP
  201. DW OFFSET DG:POPMN,REGOP
  202. DW OFFSET DG:POPMN,REGOP
  203. DW OFFSET DG:POPMN,REGOP
  204. ; 60H
  205. DW OFFSET DG:DBMN,SAVHEX
  206. DW OFFSET DG:DBMN,SAVHEX
  207. DW OFFSET DG:DBMN,SAVHEX
  208. DW OFFSET DG:DBMN,SAVHEX
  209. DW OFFSET DG:DBMN,SAVHEX
  210. DW OFFSET DG:DBMN,SAVHEX
  211. DW OFFSET DG:DBMN,SAVHEX
  212. DW OFFSET DG:DBMN,SAVHEX
  213. DW OFFSET DG:DBMN,SAVHEX
  214. DW OFFSET DG:DBMN,SAVHEX
  215. DW OFFSET DG:DBMN,SAVHEX
  216. DW OFFSET DG:DBMN,SAVHEX
  217. DW OFFSET DG:DBMN,SAVHEX
  218. DW OFFSET DG:DBMN,SAVHEX
  219. DW OFFSET DG:DBMN,SAVHEX
  220. DW OFFSET DG:DBMN,SAVHEX
  221. ; 70H
  222. DW OFFSET DG:JOMN,SHORTJMP
  223. DW OFFSET DG:JNOMN,SHORTJMP
  224. DW OFFSET DG:JCMN,SHORTJMP
  225. DW OFFSET DG:JNCMN,SHORTJMP
  226. DW OFFSET DG:JZMN,SHORTJMP
  227. DW OFFSET DG:JNZMN,SHORTJMP
  228. DW OFFSET DG:JBEMN,SHORTJMP
  229. DW OFFSET DG:JAMN,SHORTJMP
  230. DW OFFSET DG:JSMN,SHORTJMP
  231. DW OFFSET DG:JNSMN,SHORTJMP
  232. DW OFFSET DG:JPEMN,SHORTJMP
  233. DW OFFSET DG:JPOMN,SHORTJMP
  234. DW OFFSET DG:JLMN,SHORTJMP
  235. DW OFFSET DG:JGEMN,SHORTJMP
  236. DW OFFSET DG:JLEMN,SHORTJMP
  237. DW OFFSET DG:JGMN,SHORTJMP
  238. ; 80H
  239. DW 0,IMMED
  240. DW 0,IMMED
  241. DW 0,IMMED
  242. DW 0,SIGNIMM
  243. DW OFFSET DG:TESTMN,ALUTOREG ;ARR 2.4
  244. DW OFFSET DG:TESTMN,ALUTOREG ;ARR 2.4
  245. DW OFFSET DG:XCHGMN,ALUTOREG ;ARR 2.4
  246. DW OFFSET DG:XCHGMN,ALUTOREG ;ARR 2.4
  247. DW OFFSET DG:MOVMN,ALUFROMREG
  248. DW OFFSET DG:MOVMN,ALUFROMREG
  249. DW OFFSET DG:MOVMN,ALUTOREG
  250. DW OFFSET DG:MOVMN,ALUTOREG
  251. DW OFFSET DG:MOVMN,MOVSEGTO
  252. DW OFFSET DG:LEAMN,WORDTOALU
  253. DW OFFSET DG:MOVMN,MOVSEGFROM
  254. DW OFFSET DG:POPMN,GETADDR
  255. ; 90H
  256. DW OFFSET DG:NOPMN,NOOPERANDS
  257. DW OFFSET DG:XCHGMN,XCHGAX
  258. DW OFFSET DG:XCHGMN,XCHGAX
  259. DW OFFSET DG:XCHGMN,XCHGAX
  260. DW OFFSET DG:XCHGMN,XCHGAX
  261. DW OFFSET DG:XCHGMN,XCHGAX
  262. DW OFFSET DG:XCHGMN,XCHGAX
  263. DW OFFSET DG:XCHGMN,XCHGAX
  264. DW OFFSET DG:CBWMN,NOOPERANDS
  265. DW OFFSET DG:CWDMN,NOOPERANDS
  266. DW OFFSET DG:CALLMN,LONGJMP
  267. DW OFFSET DG:WAITMN,NOOPERANDS
  268. DW OFFSET DG:PUSHFMN,NOOPERANDS
  269. DW OFFSET DG:POPFMN,NOOPERANDS
  270. DW OFFSET DG:SAHFMN,NOOPERANDS
  271. DW OFFSET DG:LAHFMN,NOOPERANDS
  272. ; A0H
  273. DW OFFSET DG:MOVMN,LOADACC
  274. DW OFFSET DG:MOVMN,LOADACC
  275. DW OFFSET DG:MOVMN,STOREACC
  276. DW OFFSET DG:MOVMN,STOREACC
  277. DW OFFSET DG:MOVBMN,NOOPERANDS
  278. DW OFFSET DG:MOVWMN,NOOPERANDS
  279. DW OFFSET DG:CMPBMN,NOOPERANDS
  280. DW OFFSET DG:CMPWMN,NOOPERANDS
  281. DW OFFSET DG:TESTMN,ACCIMM
  282. DW OFFSET DG:TESTMN,ACCIMM
  283. DW OFFSET DG:STOBMN,NOOPERANDS
  284. DW OFFSET DG:STOWMN,NOOPERANDS
  285. DW OFFSET DG:LODBMN,NOOPERANDS
  286. DW OFFSET DG:LODWMN,NOOPERANDS
  287. DW OFFSET DG:SCABMN,NOOPERANDS
  288. DW OFFSET DG:SCAWMN,NOOPERANDS
  289. ; B0H
  290. DW OFFSET DG:MOVMN,REGIMMB
  291. DW OFFSET DG:MOVMN,REGIMMB
  292. DW OFFSET DG:MOVMN,REGIMMB
  293. DW OFFSET DG:MOVMN,REGIMMB
  294. DW OFFSET DG:MOVMN,REGIMMB
  295. DW OFFSET DG:MOVMN,REGIMMB
  296. DW OFFSET DG:MOVMN,REGIMMB
  297. DW OFFSET DG:MOVMN,REGIMMB
  298. DW OFFSET DG:MOVMN,REGIMMW
  299. DW OFFSET DG:MOVMN,REGIMMW
  300. DW OFFSET DG:MOVMN,REGIMMW
  301. DW OFFSET DG:MOVMN,REGIMMW
  302. DW OFFSET DG:MOVMN,REGIMMW
  303. DW OFFSET DG:MOVMN,REGIMMW
  304. DW OFFSET DG:MOVMN,REGIMMW
  305. DW OFFSET DG:MOVMN,REGIMMW
  306. ; C0H
  307. DW OFFSET DG:DBMN,SAVHEX
  308. DW OFFSET DG:DBMN,SAVHEX
  309. DW OFFSET DG:RETMN,SAV16
  310. DW OFFSET DG:RETMN,NOOPERANDS
  311. DW OFFSET DG:LESMN,WORDTOALU
  312. DW OFFSET DG:LDSMN,WORDTOALU
  313. DW OFFSET DG:MOVMN,MEMIMM
  314. DW OFFSET DG:MOVMN,MEMIMM
  315. DW OFFSET DG:DBMN,SAVHEX
  316. DW OFFSET DG:DBMN,SAVHEX
  317. DW OFFSET DG:RETFMN,SAV16
  318. DW OFFSET DG:RETFMN,NOOPERANDS
  319. DW OFFSET DG:INTMN,INT3
  320. DW OFFSET DG:INTMN,SAV8
  321. DW OFFSET DG:INTOMN,NOOPERANDS
  322. DW OFFSET DG:IRETMN,NOOPERANDS
  323. ; D0H
  324. DW 0,SHIFT
  325. DW 0,SHIFT
  326. DW 0,SHIFTV
  327. DW 0,SHIFTV
  328. DW OFFSET DG:AAMMN,CHK10
  329. DW OFFSET DG:AADMN,CHK10
  330. DW OFFSET DG:DBMN,SAVHEX
  331. DW OFFSET DG:XLATMN,NOOPERANDS
  332. DW 0,M8087 ; d8
  333. DW 0,M8087_D9 ; d9
  334. DW 0,M8087 ; da
  335. DW 0,M8087_DB ; db
  336. DW 0,M8087 ; dc
  337. DW 0,M8087_DD ; dd
  338. DW 0,M8087 ; de
  339. DW 0,M8087_DF ; df
  340. ; E0H
  341. DW OFFSET DG:LOOPNZMN,SHORTJMP
  342. DW OFFSET DG:LOOPZMN,SHORTJMP
  343. DW OFFSET DG:LOOPMN,SHORTJMP
  344. DW OFFSET DG:JCXZMN,SHORTJMP
  345. DW OFFSET DG:INMN,INFIXB
  346. DW OFFSET DG:INMN,INFIXW
  347. DW OFFSET DG:OUTMN,OUTFIXB
  348. DW OFFSET DG:OUTMN,OUTFIXW
  349. DW OFFSET DG:CALLMN,JMPCALL
  350. DW OFFSET DG:JMPMN,JMPCALL
  351. DW OFFSET DG:JMPMN,LONGJMP
  352. DW OFFSET DG:JMPMN,SHORTJMP
  353. DW OFFSET DG:INMN,INVARB
  354. DW OFFSET DG:INMN,INVARW
  355. DW OFFSET DG:OUTMN,OUTVARB
  356. DW OFFSET DG:OUTMN,OUTVARW
  357. ; F0H
  358. DW OFFSET DG:LOCKMN,PREFIX
  359. DW OFFSET DG:DBMN,SAVHEX
  360. DW OFFSET DG:REPNZMN,PREFIX
  361. DW OFFSET DG:REPZMN,PREFIX
  362. DW OFFSET DG:HLTMN,NOOPERANDS
  363. DW OFFSET DG:CMCMN,NOOPERANDS
  364. DW 0,GRP1
  365. DW 0,GRP1
  366. DW OFFSET DG:CLCMN,NOOPERANDS
  367. DW OFFSET DG:STCMN,NOOPERANDS
  368. DW OFFSET DG:DIMN,NOOPERANDS
  369. DW OFFSET DG:EIMN,NOOPERANDS
  370. DW OFFSET DG:UPMN,NOOPERANDS
  371. DW OFFSET DG:DOWNMN,NOOPERANDS
  372. DW 0,GRP2
  373. DW 0,GRP2
  374. DBMN DB "DB",0
  375. DB "DW",0
  376. DB ";",0
  377. ORGMN DB "ORG",0
  378. ADDMN DB "ADD",0
  379. ADCMN DB "ADC",0
  380. SUBMN DB "SUB",0
  381. SBBMN DB "SBB",0
  382. XORMN DB "XOR",0
  383. ORMN DB "OR",0
  384. ANDMN DB "AND",0
  385. AAAMN DB "AAA",0
  386. AADMN DB "AAD",0
  387. AAMMN DB "AAM",0
  388. AASMN DB "AAS",0
  389. CALLMN DB "CALL",0
  390. CBWMN DB "CBW",0
  391. CLCMN DB "CLC",0
  392. UPMN DB "CLD",0 ; CLD,0
  393. DIMN DB "CLI",0
  394. CMCMN DB "CMC",0
  395. CMPBMN DB "CMPSB",0 ; CMPSB
  396. CMPWMN DB "CMPSW",0 ; CMPSW,0
  397. CMPMN DB "CMP",0
  398. CWDMN DB "CWD",0
  399. DAAMN DB "DAA",0
  400. DASMN DB "DAS",0
  401. DECMN DB "DEC",0
  402. DIVMN DB "DIV",0
  403. ESCMN DB "ESC",0
  404. DB "FXCH",0
  405. DB "FFREE",0
  406. DB "FCOMPP",0
  407. DB "FCOMP",0
  408. DB "FCOM",0
  409. DB "FICOMP",0
  410. DB "FICOM",0
  411. DB "FNOP",0
  412. DB "FCHS",0
  413. DB "FABS",0
  414. DB "FTST",0
  415. DB "FXAM",0
  416. DB "FLDL2T",0
  417. DB "FLDL2E",0
  418. DB "FLDLG2",0
  419. DB "FLDLN2",0
  420. DB "FLDPI",0
  421. DB "FLD1",0
  422. DB "FLDZ",0
  423. DB "F2XM1",0
  424. DB "FYL2XP1",0
  425. DB "FYL2X",0
  426. DB "FPTAN",0
  427. DB "FPATAN",0
  428. DB "FXTRACT",0
  429. DB "FDECSTP",0
  430. DB "FINCSTP",0
  431. DB "FPREM",0
  432. DB "FSQRT",0
  433. DB "FRNDINT",0
  434. DB "FSCALE",0
  435. DB "FINIT",0
  436. DB "FDISI",0
  437. DB "FENI",0
  438. DB "FCLEX",0
  439. DB "FBLD",0
  440. DB "FBSTP",0
  441. DB "FLDCW",0
  442. DB "FSTCW",0
  443. DB "FSTSW",0
  444. DB "FSTENV",0
  445. DB "FLDENV",0
  446. DB "FSAVE",0
  447. DB "FRSTOR",0
  448. DB "FADDP",0
  449. DB "FADD",0
  450. DB "FIADD",0
  451. DB "FSUBRP",0
  452. DB "FSUBR",0
  453. DB "FSUBP",0
  454. DB "FSUB",0
  455. DB "FISUBR",0
  456. DB "FISUB",0
  457. DB "FMULP",0
  458. DB "FMUL",0
  459. DB "FIMUL",0
  460. DB "FDIVRP",0
  461. DB "FDIVR",0
  462. DB "FDIVP",0
  463. DB "FDIV",0
  464. DB "FIDIVR",0
  465. DB "FIDIV",0
  466. DB "FWAIT",0
  467. DB "FILD",0
  468. DB "FLD",0
  469. DB "FSTP",0
  470. DB "FST",0
  471. DB "FISTP",0
  472. DB "FIST",0
  473. HLTMN DB "HLT",0
  474. IDIVMN DB "IDIV",0
  475. IMULMN DB "IMUL",0
  476. INCMN DB "INC",0
  477. INTOMN DB "INTO",0
  478. INTMN DB "INT",0
  479. INMN DB "IN",0 ; IN
  480. IRETMN DB "IRET",0
  481. DB "JNBE",0
  482. DB "JAE",0
  483. JAMN DB "JA",0
  484. JCXZMN DB "JCXZ",0
  485. JNCMN DB "JNB",0
  486. JBEMN DB "JBE",0
  487. JCMN DB "JB",0
  488. DB "JNC",0
  489. DB "JC",0
  490. DB "JNAE",0
  491. DB "JNA",0
  492. JZMN DB "JZ",0
  493. DB "JE",0
  494. JGEMN DB "JGE",0
  495. JGMN DB "JG",0
  496. DB "JNLE",0
  497. DB "JNL",0
  498. JLEMN DB "JLE",0
  499. JLMN DB "JL",0
  500. DB "JNGE",0
  501. DB "JNG",0
  502. JMPMN DB "JMP",0
  503. JNZMN DB "JNZ",0
  504. DB "JNE",0
  505. JPEMN DB "JPE",0
  506. JPOMN DB "JPO",0
  507. DB "JNP",0
  508. JNSMN DB "JNS",0
  509. JNOMN DB "JNO",0
  510. JOMN DB "JO",0
  511. JSMN DB "JS",0
  512. DB "JP",0
  513. LAHFMN DB "LAHF",0
  514. LDSMN DB "LDS",0
  515. LEAMN DB "LEA",0
  516. LESMN DB "LES",0
  517. LOCKMN DB "LOCK",0
  518. LODBMN DB "LODSB",0 ; LODSB
  519. LODWMN DB "LODSW",0 ; LODSW,0
  520. LOOPNZMN DB "LOOPNZ",0
  521. LOOPZMN DB "LOOPZ",0
  522. DB "LOOPNE",0
  523. DB "LOOPE",0
  524. LOOPMN DB "LOOP",0
  525. MOVBMN DB "MOVSB",0 ; MOVSB
  526. MOVWMN DB "MOVSW",0 ; MOVSW,0
  527. MOVMN DB "MOV",0
  528. MULMN DB "MUL",0
  529. NEGMN DB "NEG",0
  530. NOPMN DB "NOP",0
  531. NOTMN DB "NOT",0
  532. OUTMN DB "OUT",0 ; OUT
  533. POPFMN DB "POPF",0
  534. POPMN DB "POP",0
  535. PUSHFMN DB "PUSHF",0
  536. PUSHMN DB "PUSH",0
  537. RCLMN DB "RCL",0
  538. RCRMN DB "RCR",0
  539. REPZMN DB "REPZ",0
  540. REPNZMN DB "REPNZ",0
  541. DB "REPE",0
  542. DB "REPNE",0
  543. DB "REP",0
  544. RETFMN DB "RETF",0
  545. RETMN DB "RET",0
  546. ROLMN DB "ROL",0
  547. RORMN DB "ROR",0
  548. SAHFMN DB "SAHF",0
  549. SARMN DB "SAR",0
  550. SCABMN DB "SCASB",0 ; SCASB
  551. SCAWMN DB "SCASW",0 ; SCASW,0
  552. SHLMN DB "SHL",0
  553. SHRMN DB "SHR",0
  554. STCMN DB "STC",0
  555. DOWNMN DB "STD",0 ; STD
  556. EIMN DB "STI",0 ; STI
  557. STOBMN DB "STOSB",0 ; STOSB
  558. STOWMN DB "STOSW",0 ; STOSW,0
  559. TESTMN DB "TEST",0
  560. WAITMN DB "WAIT",0
  561. XCHGMN DB "XCHG",0
  562. XLATMN DB "XLAT",0
  563. ESSEGMN DB "ES:",0
  564. CSSEGMN DB "CS:",0
  565. SSSEGMN DB "SS:",0
  566. DSSEGMN DB "DS:",0
  567. BADMN DB "???",0
  568. M8087_TAB DB "ADD$MUL$COM$COMP$SUB$SUBR$DIV$DIVR$"
  569. FI_TAB DB "F$FI$F$FI$"
  570. SIZE_TAB DB "DWORD PTR $DWORD PTR $QWORD PTR $WORD PTR $"
  571. DB "BYTE PTR $TBYTE PTR $"
  572. MD9_TAB DB "LD$@$ST$STP$LDENV$LDCW$STENV$STCW$"
  573. MD9_TAB2 DB "CHS$ABS$@$@$TST$XAM$@$@$LD1$LDL2T$LDL2E$"
  574. DB "LDPI$LDLG2$LDLN2$LDZ$@$2XM1$YL2X$PTAN$PATAN$XTRACT$"
  575. DB "@$DECSTP$INCSTP$PREM$YL2XP1$SQRT$@$RNDINT$SCALE$@$@$"
  576. MDB_TAB DB "ILD$@$IST$ISTP$@$LD$@$STP$"
  577. MDB_TAB2 DB "ENI$DISI$CLEX$INIT$"
  578. MDD_TAB DB "LD$@$ST$STP$RSTOR$@$SAVE$STSW$"
  579. MDD_TAB2 DB "FREE$XCH$ST$STP$"
  580. MDF_TAB DB "ILD$@$IST$ISTP$BLD$ILD$BSTP$ISTP$"
  581. OPTAB DB 11111111B ; DB
  582. DW DB_OPER
  583. DB 11111111B ; DW
  584. DW DW_OPER
  585. DB 11111111B ; COMMENT
  586. DW ASSEMLOOP
  587. DB 11111111B ; ORG
  588. DW DOORG
  589. DB 0 * 8 ; ADD
  590. DW GROUP2
  591. DB 2 * 8 ; ADC
  592. DW GROUP2
  593. DB 5 * 8 ; SUB
  594. DW GROUP2
  595. DB 3 * 8 ; SBB
  596. DW GROUP2
  597. DB 6 * 8 ; XOR
  598. DW GROUP2
  599. DB 1 * 8 ; OR
  600. DW GROUP2
  601. DB 4 * 8 ; AND
  602. DW GROUP2
  603. DB 00110111B ; AAA
  604. DW NO_OPER
  605. DB 11010101B ; AAD
  606. DW AA_OPER
  607. DB 11010100B ; AAM
  608. DW AA_OPER
  609. DB 00111111B ; AAS
  610. DW NO_OPER
  611. DB 2 * 8 ; CALL
  612. DW CALL_OPER
  613. DB 10011000B ; CBW
  614. DW NO_OPER
  615. DB 11111000B ; CLC
  616. DW NO_OPER
  617. DB 11111100B ; CLD
  618. DW NO_OPER
  619. DB 11111010B ; DIM
  620. DW NO_OPER
  621. DB 11110101B ; CMC
  622. DW NO_OPER
  623. DB 10100110B ; CMPB
  624. DW NO_OPER
  625. DB 10100111B ; CMPW
  626. DW NO_OPER
  627. DB 7 * 8 ; CMP
  628. DW GROUP2
  629. DB 10011001B ; CWD
  630. DW NO_OPER
  631. DB 00100111B ; DAA
  632. DW NO_OPER
  633. DB 00101111B ; DAS
  634. DW NO_OPER
  635. DB 1 * 8 ; DEC
  636. DW DCINC_OPER
  637. DB 6 * 8 ; DIV
  638. DW GROUP1
  639. DB 11011000B ; ESC
  640. DW ESC_OPER
  641. DB 00001001B ; FXCH
  642. DW FGROUPP
  643. DB 00101000B ; FFREE
  644. DW FGROUPP
  645. DB 11011001B ; FCOMPP
  646. DW FDE_OPER
  647. DB 00000011B ; FCOMP
  648. DW FGROUPX ; Exception to normal P instructions
  649. DB 00000010B ; FCOM
  650. DW FGROUPX
  651. DB 00010011B ; FICOMP
  652. DW FGROUPZ
  653. DB 00010010B ; FICOM
  654. DW FGROUPZ
  655. DB 11010000B ; FNOP
  656. DW FD9_OPER
  657. DB 11100000B ; FCHS
  658. DW FD9_OPER
  659. DB 11100001B ; FABS
  660. DW FD9_OPER
  661. DB 11100100B ; FTST
  662. DW FD9_OPER
  663. DB 11100101B ; FXAM
  664. DW FD9_OPER
  665. DB 11101001B ; FLDL2T
  666. DW FD9_OPER
  667. DB 11101010B ; FLDL2E
  668. DW FD9_OPER
  669. DB 11101100B ; FLDLG2
  670. DW FD9_OPER
  671. DB 11101101B ; FLDLN2
  672. DW FD9_OPER
  673. DB 11101011B ; FLDPI
  674. DW FD9_OPER
  675. DB 11101000B ; FLD1
  676. DW FD9_OPER
  677. DB 11101110B ; FLDZ
  678. DW FD9_OPER
  679. DB 11110000B ; F2XM1
  680. DW FD9_OPER
  681. DB 11111001B ; FYL2XP1
  682. DW FD9_OPER
  683. DB 11110001B ; FYL2X
  684. DW FD9_OPER
  685. DB 11110010B ; FPTAN
  686. DW FD9_OPER
  687. DB 11110011B ; FPATAN
  688. DW FD9_OPER
  689. DB 11110100B ; FXTRACT
  690. DW FD9_OPER
  691. DB 11110110B ; FDECSTP
  692. DW FD9_OPER
  693. DB 11110111B ; FINCSTP
  694. DW FD9_OPER
  695. DB 11111000B ; FPREM
  696. DW FD9_OPER
  697. DB 11111010B ; FSQRT
  698. DW FD9_OPER
  699. DB 11111100B ; FRNDINT
  700. DW FD9_OPER
  701. DB 11111101B ; FSCALE
  702. DW FD9_OPER
  703. DB 11100011B ; FINIT
  704. DW FDB_OPER
  705. DB 11100001B ; FDISI
  706. DW FDB_OPER
  707. DB 11100000B ; FENI
  708. DW FDB_OPER
  709. DB 11100010B ; FCLEX
  710. DW FDB_OPER
  711. DB 00111100B ; FBLD
  712. DW FGROUPB
  713. DB 00111110B ; FBSTP
  714. DW FGROUPB
  715. DB 00001101B ; FLDCW
  716. DW FGROUP3W
  717. DB 00001111B ; FSTCW
  718. DW FGROUP3W
  719. DB 00101111B ; FSTSW
  720. DW FGROUP3W
  721. DB 00001110B ; FSTENV
  722. DW FGROUP3
  723. DB 00001100B ; FLDENV
  724. DW FGROUP3
  725. DB 00101110B ; FSAVE
  726. DW FGROUP3
  727. DB 00101100B ; FRSTOR
  728. DW FGROUP3
  729. DB 00110000B ; FADDP
  730. DW FGROUPP
  731. DB 00000000B ; FADD
  732. DW FGROUP
  733. DB 00010000B ; FIADD
  734. DW FGROUPZ
  735. DB 00110100B ; FSUBRP
  736. DW FGROUPP
  737. DB 00000101B ; FSUBR
  738. DW FGROUPDS
  739. DB 00110101B ; FSUBP
  740. DW FGROUPP
  741. DB 00000100B ; FSUB
  742. DW FGROUPDS
  743. DB 00010101B ; FISUBR
  744. DW FGROUPZ
  745. DB 00010100B ; FISUB
  746. DW FGROUPZ
  747. DB 00110001B ; FMULP
  748. DW FGROUPP
  749. DB 00000001B ; FMUL
  750. DW FGROUP
  751. DB 00010001B ; FIMUL
  752. DW FGROUPZ
  753. DB 00110110B ; FDIVRP
  754. DW FGROUPP
  755. DB 00000111B ; FDIVR
  756. DW FGROUPDS
  757. DB 00110111B ; FDIVP
  758. DW FGROUPP
  759. DB 00000110B ; FDIV
  760. DW FGROUPDS
  761. DB 00010111B ; FIDIVR
  762. DW FGROUPZ
  763. DB 00010110B ; FIDIV
  764. DW FGROUPZ
  765. DB 10011011B ; FWAIT
  766. DW NO_OPER
  767. DB 00011000B ; FILD
  768. DW FGROUPZ
  769. DB 00001000B ; FLD
  770. DW FGROUPX
  771. DB 00001011B ; FSTP
  772. DW FGROUP ;an000; dms;
  773. DB 00101010B ; FST
  774. DW FGROUPX
  775. DB 00011011B ; FISTP
  776. DW FGROUPZ
  777. DB 00011010B ; FIST
  778. DW FGROUPZ
  779. DB 11110100B ; HLT
  780. DW NO_OPER
  781. DB 7 * 8 ; IDIV
  782. DW GROUP1
  783. DB 5 * 8 ; IMUL
  784. DW GROUP1
  785. DB 0 * 8 ; INC
  786. DW DCINC_OPER
  787. DB 11001110B ; INTO
  788. DW NO_OPER
  789. DB 11001100B ; INTM
  790. DW INT_OPER
  791. DB 11101100B ; IN
  792. DW IN_OPER
  793. DB 11001111B ; IRET
  794. DW NO_OPER
  795. DB 01110111B ; JNBE
  796. DW DISP8_OPER
  797. DB 01110011B ; JAE
  798. DW DISP8_OPER
  799. DB 01110111B ; JA
  800. DW DISP8_OPER
  801. DB 11100011B ; JCXZ
  802. DW DISP8_OPER
  803. DB 01110011B ; JNB
  804. DW DISP8_OPER
  805. DB 01110110B ; JBE
  806. DW DISP8_OPER
  807. DB 01110010B ; JB
  808. DW DISP8_OPER
  809. DB 01110011B ; JNC
  810. DW DISP8_OPER
  811. DB 01110010B ; JC
  812. DW DISP8_OPER
  813. DB 01110010B ; JNAE
  814. DW DISP8_OPER
  815. DB 01110110B ; JNA
  816. DW DISP8_OPER
  817. DB 01110100B ; JZ
  818. DW DISP8_OPER
  819. DB 01110100B ; JE
  820. DW DISP8_OPER
  821. DB 01111101B ; JGE
  822. DW DISP8_OPER
  823. DB 01111111B ; JG
  824. DW DISP8_OPER
  825. DB 01111111B ; JNLE
  826. DW DISP8_OPER
  827. DB 01111101B ; JNL
  828. DW DISP8_OPER
  829. DB 01111110B ; JLE
  830. DW DISP8_OPER
  831. DB 01111100B ; JL
  832. DW DISP8_OPER
  833. DB 01111100B ; JNGE
  834. DW DISP8_OPER
  835. DB 01111110B ; JNG
  836. DW DISP8_OPER
  837. DB 4 * 8 ; JMP
  838. DW JMP_OPER
  839. DB 01110101B ; JNZ
  840. DW DISP8_OPER
  841. DB 01110101B ; JNE
  842. DW DISP8_OPER
  843. DB 01111010B ; JPE
  844. DW DISP8_OPER
  845. DB 01111011B ; JPO
  846. DW DISP8_OPER
  847. DB 01111011B ; JNP
  848. DW DISP8_OPER
  849. DB 01111001B ; JNS
  850. DW DISP8_OPER
  851. DB 01110001B ; JNO
  852. DW DISP8_OPER
  853. DB 01110000B ; JO
  854. DW DISP8_OPER
  855. DB 01111000B ; JS
  856. DW DISP8_OPER
  857. DB 01111010B ; JP
  858. DW DISP8_OPER
  859. DB 10011111B ; LAHF
  860. DW NO_OPER
  861. DB 11000101B ; LDS
  862. DW L_OPER
  863. DB 10001101B ; LEA
  864. DW L_OPER
  865. DB 11000100B ; LES
  866. DW L_OPER
  867. DB 11110000B ; LOCK
  868. DW NO_OPER
  869. DB 10101100B ; LODB
  870. DW NO_OPER
  871. DB 10101101B ; LODW
  872. DW NO_OPER
  873. DB 11100000B ; LOOPNZ
  874. DW DISP8_OPER
  875. DB 11100001B ; LOOPZ
  876. DW DISP8_OPER
  877. DB 11100000B ; LOOPNE
  878. DW DISP8_OPER
  879. DB 11100001B ; LOOPE
  880. DW DISP8_OPER
  881. DB 11100010B ; LOOP
  882. DW DISP8_OPER
  883. DB 10100100B ; MOVB
  884. DW NO_OPER
  885. DB 10100101B ; MOVW
  886. DW NO_OPER
  887. DB 11000110B ; MOV
  888. DW MOV_OPER
  889. DB 4 * 8 ; MUL
  890. DW GROUP1
  891. DB 3 * 8 ; NEG
  892. DW GROUP1
  893. DB 10010000B ; NOP
  894. DW NO_OPER
  895. DB 2 * 8 ; NOT
  896. DW GROUP1
  897. DB 11101110B ; OUT
  898. DW OUT_OPER
  899. DB 10011101B ; POPF
  900. DW NO_OPER
  901. DB 0 * 8 ; POP
  902. DW POP_OPER
  903. DB 10011100B ; PUSHF
  904. DW NO_OPER
  905. DB 6 * 8 ; PUSH
  906. DW PUSH_OPER
  907. DB 2 * 8 ; RCL
  908. DW ROTOP
  909. DB 3 * 8 ; RCR
  910. DW ROTOP
  911. DB 11110011B ; REPZ
  912. DW NO_OPER
  913. DB 11110010B ; REPNZ
  914. DW NO_OPER
  915. DB 11110011B ; REPE
  916. DW NO_OPER
  917. DB 11110010B ; REPNE
  918. DW NO_OPER
  919. DB 11110011B ; REP
  920. DW NO_OPER
  921. DB 11001011B ; RETF
  922. DW GET_DATA16
  923. DB 11000011B ; RET
  924. DW GET_DATA16
  925. DB 0 * 8 ; ROL
  926. DW ROTOP
  927. DB 1 * 8 ; ROR
  928. DW ROTOP
  929. DB 10011110B ; SAHF
  930. DW NO_OPER
  931. DB 7 * 8 ; SAR
  932. DW ROTOP
  933. DB 10101110B ; SCAB
  934. DW NO_OPER
  935. DB 10101111B ; SCAW
  936. DW NO_OPER
  937. DB 4 * 8 ; SHL
  938. DW ROTOP
  939. DB 5 * 8 ; SHR
  940. DW ROTOP
  941. DB 11111001B ; STC
  942. DW NO_OPER
  943. DB 11111101B ; STD
  944. DW NO_OPER
  945. DB 11111011B ; EI
  946. DW NO_OPER
  947. DB 10101010B ; STOB
  948. DW NO_OPER
  949. DB 10101011B ; STOW
  950. DW NO_OPER
  951. DB 11110110B ; TEST
  952. DW TST_OPER
  953. DB 10011011B ; WAIT
  954. DW NO_OPER
  955. DB 10000110B ; XCHG
  956. DW EX_OPER
  957. DB 11010111B ; XLAT
  958. DW NO_OPER
  959. DB 00100110B ; ESSEG
  960. DW NO_OPER
  961. DB 00101110B ; CSSEG
  962. DW NO_OPER
  963. DB 00110110B ; SSSEG
  964. DW NO_OPER
  965. DB 00111110B ; DSSEG
  966. DW NO_OPER
  967. ZZOPCODE LABEL BYTE
  968. MAXOP = (ZZOPCODE-OPTAB)/3
  969. SHFTAB DW OFFSET DG:ROLMN,OFFSET DG:RORMN,OFFSET DG:RCLMN
  970. DW OFFSET DG:RCRMN,OFFSET DG:SHLMN,OFFSET DG:SHRMN
  971. DW OFFSET DG:BADMN,OFFSET DG:SARMN
  972. IMMTAB DW OFFSET DG:ADDMN,OFFSET DG:ORMN,OFFSET DG:ADCMN
  973. DW OFFSET DG:SBBMN,OFFSET DG:ANDMN,OFFSET DG:SUBMN
  974. DW OFFSET DG:XORMN,OFFSET DG:CMPMN
  975. GRP1TAB DW OFFSET DG:TESTMN,OFFSET DG:BADMN,OFFSET DG:NOTMN
  976. DW OFFSET DG:NEGMN,OFFSET DG:MULMN,OFFSET DG:IMULMN
  977. DW OFFSET DG:DIVMN,OFFSET DG:IDIVMN
  978. GRP2TAB DW OFFSET DG:INCMN,OFFSET DG:DECMN,OFFSET DG:CALLMN
  979. DW OFFSET DG:CALLMN,OFFSET DG:JMPMN,OFFSET DG:JMPMN
  980. DW OFFSET DG:PUSHMN,OFFSET DG:BADMN
  981. SEGTAB DW OFFSET DG:ESSAVE,OFFSET DG:CSSAVE,OFFSET DG:SSSAVE
  982. DW OFFSET DG:DSSAVE
  983. REGTAB DB "AX",0,"BX",0,"CX",0,"DX",0,"SP",0,"BP",0
  984. DB "SI",0,"DI",0,"DS",0,"ES",0,"SS",0,"CS",0,"IP",0,"PC",0
  985. REGTABEND LABEL WORD
  986. ; Flags are ordered to correspond with the bits of the flag
  987. ; register, most significant bit first, zero if bit is not
  988. ; a flag. First 16 entries are for bit set, second 16 for
  989. ; bit reset.
  990. FLAGTAB DW 0
  991. DW 0
  992. DW 0
  993. DW 0
  994. DB "OV"
  995. DB "DN"
  996. DB "EI" ; "STI"
  997. DW 0
  998. DB "NG"
  999. DB "ZR"
  1000. DW 0
  1001. DB "AC"
  1002. DW 0
  1003. DB "PE"
  1004. DW 0
  1005. DB "CY"
  1006. DW 0
  1007. DW 0
  1008. DW 0
  1009. DW 0
  1010. DB "NV"
  1011. DB "UP" ; "CLD"
  1012. DB "DI"
  1013. DW 0
  1014. DB "PL"
  1015. DB "NZ"
  1016. DW 0
  1017. DB "NA"
  1018. DW 0
  1019. DB "PO"
  1020. DW 0
  1021. DB "NC"
  1022. DW 80H DUP(?)
  1023. STACK LABEL BYTE
  1024. ; Register save area
  1025. AXSAVE DW 0
  1026. BXSAVE DW 0
  1027. CXSAVE DW 0
  1028. DXSAVE DW 0
  1029. SPSAVE DW 5AH
  1030. BPSAVE DW 0
  1031. SISAVE DW 0
  1032. DISAVE DW 0
  1033. DSSAVE DW 0
  1034. ESSAVE DW 0
  1035. RSTACK LABEL WORD ; Stack set here so registers can be saved by pushing
  1036. SSSAVE DW 0
  1037. CSSAVE DW 0
  1038. IPSAVE DW 100H
  1039. FLSAVE DW 0F202H
  1040. RSETFLAG DB 0
  1041. ; These variables used to determine if the file is larget than the ;C01
  1042. ; amount of disk space available whenever a write occurs. ;C01
  1043. ;C01
  1044. FileSizeLB DW 0 ;C01
  1045. FileSizeHB DW 0 ;C01
  1046. TempHB DW 0 ;C01
  1047. TempLB DW 0 ;C01
  1048. DriveOfFile DB ? ;C01
  1049. REGDIF EQU AXSAVE-REGTAB
  1050. ; This value is initially 0, it is set to non-zero if a file is specified
  1051. ; either at debug invokation, or via the (N)ame command. It is used to
  1052. ; control the printing of the NONAMESPEC message for the (W)rite command.
  1053. NAMESPEC DB 0
  1054. ; RAM area.
  1055. RDFLG DB READ
  1056. TOTREG DB 13
  1057. DSIZ DB 0FH ;changed to 7 if screen 40 col mode
  1058. NOREGL DB 8 ;changed to 4 if screen 40 col mode
  1059. DISPB DW 128 ;changed to 64 if screen 40 col mode
  1060. LBUFSIZ DB BUFLEN
  1061. LBUFFCNT DB 0
  1062. LINEBUF DB 0DH
  1063. DB BUFLEN DUP (?)
  1064. PFLAG DB 0
  1065. COLPOS DB 0
  1066. IF SYSVER
  1067. CONFCB DB 0
  1068. DB "PRN "
  1069. DB 25 DUP(0)
  1070. POUT DD ?
  1071. COUT DD ?
  1072. CIN DD ?
  1073. IOBUFF DB 3 DUP (?)
  1074. IOADDR DD ?
  1075. IOCALL DB 22
  1076. DB 0
  1077. IOCOM DB 0
  1078. IOSTAT DW 0
  1079. DB 8 DUP (0)
  1080. IOCHRET DB 0
  1081. DW OFFSET DG:IOBUFF
  1082. IOSEG DW ?
  1083. IOCNT DW 1
  1084. DW 0
  1085. ENDIF
  1086. QFLAG DB 0
  1087. NEWEXEC DB 0
  1088. RETSAVE DW ?
  1089. USER_PROC_PDB DW ?
  1090. NextCS DW ?
  1091. NextIP DW ?
  1092. HEADSAVE DW ?
  1093. EXEC_BLOCK LABEL BYTE
  1094. DW 0
  1095. COM_LINE LABEL DWORD
  1096. DW 80H
  1097. DW ?
  1098. COM_FCB1 LABEL DWORD
  1099. DW FCB
  1100. DW ?
  1101. COM_FCB2 LABEL DWORD
  1102. DW FCB + 10H
  1103. DW ?
  1104. COM_SSSP DD ?
  1105. COM_CSIP DD ?
  1106. CONST ENDS
  1107. END
  1108.