1162 lines
29 KiB
NASM
1162 lines
29 KiB
NASM
;**************************************************************************
|
||
;/*
|
||
; * Microsoft Confidential
|
||
; * Copyright (C) Microsoft Corporation 1991
|
||
; * All Rights Reserved.
|
||
; */
|
||
; Change Log:
|
||
;
|
||
; Date Who # Description
|
||
; -------- --- --- ------------------------------------------------------
|
||
; 04/01/90 DIC C01 These variables are used to determine if enough memory
|
||
; is available to write a file out to disk. (Compaq STR
|
||
; #1889) (MS Bug #774)
|
||
;*****************************************************************************/
|
||
PAGE 80,132 ;
|
||
TITLE DEBCONST.ASM
|
||
IF1
|
||
%OUT COMPONENT=DEBUG, MODULE=DEBCONST
|
||
ENDIF
|
||
.XLIST
|
||
.XCREF
|
||
include version.inc ; cas -- missing equates
|
||
include syscall.inc ; cas -- missing equates
|
||
INCLUDE DOSSYM.INC
|
||
INCLUDE debug.inc
|
||
.LIST
|
||
.CREF
|
||
|
||
CODE SEGMENT PUBLIC BYTE
|
||
CODE ENDS
|
||
|
||
CONST SEGMENT PUBLIC BYTE
|
||
CONST ENDS
|
||
|
||
CSTACK SEGMENT STACK
|
||
CSTACK ENDS
|
||
|
||
DATA SEGMENT PUBLIC BYTE
|
||
DATA ENDS
|
||
|
||
DG GROUP CODE,CONST,CSTACK,DATA
|
||
|
||
CODE SEGMENT PUBLIC BYTE
|
||
|
||
EXTRN ALUFROMREG:NEAR, ALUTOREG:NEAR, ACCIMM:NEAR, SEGOP:NEAR
|
||
EXTRN ESPRE:NEAR, SSPRE:NEAR, CSPRE:NEAR, DSPRE:NEAR
|
||
EXTRN REGOP:NEAR, NOOPERANDS:NEAR, SAVHEX:NEAR, SHORTJMP:NEAR
|
||
EXTRN MOVSEGTO:NEAR, WORDTOALU:NEAR, MOVSEGFROM:NEAR
|
||
EXTRN GETADDR:NEAR, XCHGAX:NEAR, LONGJMP:NEAR, LOADACC:NEAR
|
||
EXTRN STOREACC:NEAR, REGIMMB:NEAR, SAV16:NEAR, MEMIMM:NEAR
|
||
EXTRN INT3:NEAR, SAV8:NEAR, CHK10:NEAR, M8087:NEAR
|
||
EXTRN M8087_D9:NEAR, M8087_DB:NEAR, M8087_DD:NEAR
|
||
EXTRN M8087_DF:NEAR, INFIXB:NEAR, INFIXW:NEAR, OUTFIXB:NEAR
|
||
EXTRN OUTFIXW:NEAR, JMPCALL:NEAR, INVARB:NEAR, INVARW:NEAR
|
||
EXTRN OUTVARB:NEAR, OUTVARW:NEAR, PREFIX:NEAR, IMMED:NEAR
|
||
EXTRN SIGNIMM:NEAR, SHIFT:NEAR, SHIFTV:NEAR, GRP1:NEAR
|
||
EXTRN GRP2:NEAR, REGIMMW:NEAR, DOORG:NEAR
|
||
|
||
|
||
EXTRN DB_OPER:NEAR, DW_OPER:NEAR, ASSEMLOOP:NEAR, GROUP2:NEAR
|
||
EXTRN NO_OPER:NEAR, GROUP1:NEAR, FGROUPP:NEAR, FGROUPX:NEAR
|
||
EXTRN FGROUPZ:NEAR, FD9_OPER:NEAR, FGROUPB:NEAR, FGROUP:NEAR
|
||
EXTRN FGROUPDS:NEAR, DCINC_OPER:NEAR, INT_OPER:NEAR
|
||
EXTRN IN_OPER:NEAR, DISP8_OPER:NEAR, JMP_OPER:NEAR, L_OPER:NEAR
|
||
EXTRN MOV_OPER:NEAR, OUT_OPER:NEAR, PUSH_OPER:NEAR
|
||
EXTRN GET_DATA16:NEAR, FGROUP3:NEAR, FGROUP3W:NEAR
|
||
EXTRN FDE_OPER:NEAR, ESC_OPER:NEAR, AA_OPER:NEAR
|
||
EXTRN CALL_OPER:NEAR, FDB_OPER:NEAR, POP_OPER:NEAR, ROTOP:NEAR
|
||
EXTRN TST_OPER:NEAR, EX_OPER:NEAR
|
||
|
||
CODE ENDS
|
||
|
||
CONST SEGMENT PUBLIC BYTE
|
||
|
||
PUBLIC REG8, REG16, SREG, SIZ8, DISTAB, DBMN, ADDMN, ADCMN, SUBMN
|
||
PUBLIC SBBMN, XORMN, ORMN, ANDMN, AAAMN, AADMN, AASMN, CALLMN, CBWMN
|
||
PUBLIC UPMN, DIMN, CMCMN, CMPMN, CWDMN, DAAMN, DASMN, DECMN, DIVMN
|
||
PUBLIC ESCMN, HLTMN, IDIVMN, IMULMN, INCMN, INTOMN, INTMN, INMN
|
||
PUBLIC IRETMN, JAMN, JCXZMN, JNCMN, JBEMN, JZMN, JGEMN, JGMN, JLEMN
|
||
PUBLIC JLMN, JMPMN, JNZMN, JPEMN, JNZMN, JPEMN, JPOMN, JNSMN, JNOMN
|
||
PUBLIC JOMN, JSMN, LAHFMN, LDSMN, LEAMN, LESMN, LOCKMN, LODBMN
|
||
PUBLIC LODWMN, LOOPNZMN, LOOPZMN, LOOPMN, MOVBMN, MOVWMN, MOVMN
|
||
PUBLIC MULMN, NEGMN, NOPMN, NOTMN, OUTMN, POPFMN, POPMN, PUSHFMN
|
||
PUBLIC PUSHMN, RCLMN, RCRMN, REPZMN, REPNZMN, RETFMN, RETMN, ROLMN
|
||
PUBLIC RORMN, SAHFMN, SARMN, SCABMN, SCAWMN, SHLMN, SHRMN, STCMN
|
||
PUBLIC DOWNMN, EIMN, STOBMN, STOWMN, TESTMN, WAITMN, XCHGMN, XLATMN
|
||
PUBLIC ESSEGMN, CSSEGMN, SSSEGMN, DSSEGMN, BADMN
|
||
|
||
PUBLIC M8087_TAB, FI_TAB, SIZE_TAB, MD9_TAB, MD9_TAB2, MDB_TAB
|
||
PUBLIC MDB_TAB2, MDD_TAB, MDD_TAB2, MDF_TAB, OPTAB, MAXOP, SHFTAB
|
||
PUBLIC IMMTAB, GRP1TAB, GRP2TAB, SEGTAB, REGTAB, REGTABEND, FLAGTAB
|
||
PUBLIC STACK
|
||
|
||
PUBLIC DriveOfFile,FileSizeHB,FileSizeLB,TempLB,TempHB ;C01
|
||
|
||
PUBLIC AXSAVE, BXSAVE, CXSAVE, DXSAVE, BPSAVE, SPSAVE, SISAVE
|
||
PUBLIC DISAVE, DSSAVE, ESSAVE, SSSAVE, CSSAVE, IPSAVE, FLSAVE, RSTACK
|
||
PUBLIC REGDIF, RDFLG, TOTREG, DSIZ, NOREGL, DISPB, LBUFSIZ, LBUFFCNT
|
||
PUBLIC LINEBUF, PFLAG, COLPOS, RSETFLAG
|
||
|
||
IF SYSVER
|
||
PUBLIC CONFCB, POUT, COUT, CIN, IOBUFF, IOADDR, IOCALL, IOCOM
|
||
PUBLIC IOSTAT, IOCHRET, IOSEG, IOCNT
|
||
ENDIF
|
||
|
||
PUBLIC QFLAG, NEWEXEC, RETSAVE, USER_PROC_PDB, HEADSAVE, EXEC_BLOCK
|
||
PUBLIC COM_LINE, COM_FCB1, COM_FCB2, COM_SSSP, COM_CSIP, NEXTCS
|
||
PUBLIC NEXTIP, NAMESPEC
|
||
|
||
REG8 DB "ALCLDLBLAHCHDHBH"
|
||
REG16 DB "AXCXDXBXSPBPSIDI"
|
||
SREG DB "ESCSSSDS",0,0
|
||
SIZ8 DB "BYWODWQWTB",0,0
|
||
; 0
|
||
DISTAB DW OFFSET DG:ADDMN,ALUFROMREG
|
||
DW OFFSET DG:ADDMN,ALUFROMREG
|
||
DW OFFSET DG:ADDMN,ALUTOREG
|
||
DW OFFSET DG:ADDMN,ALUTOREG
|
||
DW OFFSET DG:ADDMN,ACCIMM
|
||
DW OFFSET DG:ADDMN,ACCIMM
|
||
DW OFFSET DG:PUSHMN,SEGOP
|
||
DW OFFSET DG:POPMN,SEGOP
|
||
DW OFFSET DG:ORMN,ALUFROMREG
|
||
DW OFFSET DG:ORMN,ALUFROMREG
|
||
DW OFFSET DG:ORMN,ALUTOREG
|
||
DW OFFSET DG:ORMN,ALUTOREG
|
||
DW OFFSET DG:ORMN,ACCIMM
|
||
DW OFFSET DG:ORMN,ACCIMM
|
||
DW OFFSET DG:PUSHMN,SEGOP
|
||
DW OFFSET DG:DBMN,SAVHEX ; cas -- this has always been
|
||
; ; disassembled as a POP CS,
|
||
; ; which doesn't really exist.
|
||
; ; It is now a 386 prefix, but
|
||
; ; we don't know about 386
|
||
; ; instructions, so we'll put
|
||
; ; out a DB
|
||
; 10H
|
||
DW OFFSET DG:ADCMN,ALUFROMREG
|
||
DW OFFSET DG:ADCMN,ALUFROMREG
|
||
DW OFFSET DG:ADCMN,ALUTOREG
|
||
DW OFFSET DG:ADCMN,ALUTOREG
|
||
DW OFFSET DG:ADCMN,ACCIMM
|
||
DW OFFSET DG:ADCMN,ACCIMM
|
||
DW OFFSET DG:PUSHMN,SEGOP
|
||
DW OFFSET DG:POPMN,SEGOP
|
||
DW OFFSET DG:SBBMN,ALUFROMREG
|
||
DW OFFSET DG:SBBMN,ALUFROMREG
|
||
DW OFFSET DG:SBBMN,ALUTOREG
|
||
DW OFFSET DG:SBBMN,ALUTOREG
|
||
DW OFFSET DG:SBBMN,ACCIMM
|
||
DW OFFSET DG:SBBMN,ACCIMM
|
||
DW OFFSET DG:PUSHMN,SEGOP
|
||
DW OFFSET DG:POPMN,SEGOP
|
||
; 20H
|
||
DW OFFSET DG:ANDMN,ALUFROMREG
|
||
DW OFFSET DG:ANDMN,ALUFROMREG
|
||
DW OFFSET DG:ANDMN,ALUTOREG
|
||
DW OFFSET DG:ANDMN,ALUTOREG
|
||
DW OFFSET DG:ANDMN,ACCIMM
|
||
DW OFFSET DG:ANDMN,ACCIMM
|
||
DW OFFSET DG:ESSEGMN,ESPRE
|
||
DW OFFSET DG:DAAMN,NOOPERANDS
|
||
DW OFFSET DG:SUBMN,ALUFROMREG
|
||
DW OFFSET DG:SUBMN,ALUFROMREG
|
||
DW OFFSET DG:SUBMN,ALUTOREG
|
||
DW OFFSET DG:SUBMN,ALUTOREG
|
||
DW OFFSET DG:SUBMN,ACCIMM
|
||
DW OFFSET DG:SUBMN,ACCIMM
|
||
DW OFFSET DG:CSSEGMN,CSPRE
|
||
DW OFFSET DG:DASMN,NOOPERANDS
|
||
; 30H
|
||
DW OFFSET DG:XORMN,ALUFROMREG
|
||
DW OFFSET DG:XORMN,ALUFROMREG
|
||
DW OFFSET DG:XORMN,ALUTOREG
|
||
DW OFFSET DG:XORMN,ALUTOREG
|
||
DW OFFSET DG:XORMN,ACCIMM
|
||
DW OFFSET DG:XORMN,ACCIMM
|
||
DW OFFSET DG:SSSEGMN,SSPRE
|
||
DW OFFSET DG:AAAMN,NOOPERANDS
|
||
DW OFFSET DG:CMPMN,ALUFROMREG
|
||
DW OFFSET DG:CMPMN,ALUFROMREG
|
||
DW OFFSET DG:CMPMN,ALUTOREG
|
||
DW OFFSET DG:CMPMN,ALUTOREG
|
||
DW OFFSET DG:CMPMN,ACCIMM
|
||
DW OFFSET DG:CMPMN,ACCIMM
|
||
DW OFFSET DG:DSSEGMN,DSPRE
|
||
DW OFFSET DG:AASMN,NOOPERANDS
|
||
; 40H
|
||
DW OFFSET DG:INCMN,REGOP
|
||
DW OFFSET DG:INCMN,REGOP
|
||
DW OFFSET DG:INCMN,REGOP
|
||
DW OFFSET DG:INCMN,REGOP
|
||
DW OFFSET DG:INCMN,REGOP
|
||
DW OFFSET DG:INCMN,REGOP
|
||
DW OFFSET DG:INCMN,REGOP
|
||
DW OFFSET DG:INCMN,REGOP
|
||
DW OFFSET DG:DECMN,REGOP
|
||
DW OFFSET DG:DECMN,REGOP
|
||
DW OFFSET DG:DECMN,REGOP
|
||
DW OFFSET DG:DECMN,REGOP
|
||
DW OFFSET DG:DECMN,REGOP
|
||
DW OFFSET DG:DECMN,REGOP
|
||
DW OFFSET DG:DECMN,REGOP
|
||
DW OFFSET DG:DECMN,REGOP
|
||
; 50H
|
||
DW OFFSET DG:PUSHMN,REGOP
|
||
DW OFFSET DG:PUSHMN,REGOP
|
||
DW OFFSET DG:PUSHMN,REGOP
|
||
DW OFFSET DG:PUSHMN,REGOP
|
||
DW OFFSET DG:PUSHMN,REGOP
|
||
DW OFFSET DG:PUSHMN,REGOP
|
||
DW OFFSET DG:PUSHMN,REGOP
|
||
DW OFFSET DG:PUSHMN,REGOP
|
||
DW OFFSET DG:POPMN,REGOP
|
||
DW OFFSET DG:POPMN,REGOP
|
||
DW OFFSET DG:POPMN,REGOP
|
||
DW OFFSET DG:POPMN,REGOP
|
||
DW OFFSET DG:POPMN,REGOP
|
||
DW OFFSET DG:POPMN,REGOP
|
||
DW OFFSET DG:POPMN,REGOP
|
||
DW OFFSET DG:POPMN,REGOP
|
||
; 60H
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
; 70H
|
||
DW OFFSET DG:JOMN,SHORTJMP
|
||
DW OFFSET DG:JNOMN,SHORTJMP
|
||
DW OFFSET DG:JCMN,SHORTJMP
|
||
DW OFFSET DG:JNCMN,SHORTJMP
|
||
DW OFFSET DG:JZMN,SHORTJMP
|
||
DW OFFSET DG:JNZMN,SHORTJMP
|
||
DW OFFSET DG:JBEMN,SHORTJMP
|
||
DW OFFSET DG:JAMN,SHORTJMP
|
||
DW OFFSET DG:JSMN,SHORTJMP
|
||
DW OFFSET DG:JNSMN,SHORTJMP
|
||
DW OFFSET DG:JPEMN,SHORTJMP
|
||
DW OFFSET DG:JPOMN,SHORTJMP
|
||
DW OFFSET DG:JLMN,SHORTJMP
|
||
DW OFFSET DG:JGEMN,SHORTJMP
|
||
DW OFFSET DG:JLEMN,SHORTJMP
|
||
DW OFFSET DG:JGMN,SHORTJMP
|
||
; 80H
|
||
DW 0,IMMED
|
||
DW 0,IMMED
|
||
DW 0,IMMED
|
||
DW 0,SIGNIMM
|
||
DW OFFSET DG:TESTMN,ALUTOREG ;ARR 2.4
|
||
DW OFFSET DG:TESTMN,ALUTOREG ;ARR 2.4
|
||
DW OFFSET DG:XCHGMN,ALUTOREG ;ARR 2.4
|
||
DW OFFSET DG:XCHGMN,ALUTOREG ;ARR 2.4
|
||
DW OFFSET DG:MOVMN,ALUFROMREG
|
||
DW OFFSET DG:MOVMN,ALUFROMREG
|
||
DW OFFSET DG:MOVMN,ALUTOREG
|
||
DW OFFSET DG:MOVMN,ALUTOREG
|
||
DW OFFSET DG:MOVMN,MOVSEGTO
|
||
DW OFFSET DG:LEAMN,WORDTOALU
|
||
DW OFFSET DG:MOVMN,MOVSEGFROM
|
||
DW OFFSET DG:POPMN,GETADDR
|
||
; 90H
|
||
DW OFFSET DG:NOPMN,NOOPERANDS
|
||
DW OFFSET DG:XCHGMN,XCHGAX
|
||
DW OFFSET DG:XCHGMN,XCHGAX
|
||
DW OFFSET DG:XCHGMN,XCHGAX
|
||
DW OFFSET DG:XCHGMN,XCHGAX
|
||
DW OFFSET DG:XCHGMN,XCHGAX
|
||
DW OFFSET DG:XCHGMN,XCHGAX
|
||
DW OFFSET DG:XCHGMN,XCHGAX
|
||
DW OFFSET DG:CBWMN,NOOPERANDS
|
||
DW OFFSET DG:CWDMN,NOOPERANDS
|
||
DW OFFSET DG:CALLMN,LONGJMP
|
||
DW OFFSET DG:WAITMN,NOOPERANDS
|
||
DW OFFSET DG:PUSHFMN,NOOPERANDS
|
||
DW OFFSET DG:POPFMN,NOOPERANDS
|
||
DW OFFSET DG:SAHFMN,NOOPERANDS
|
||
DW OFFSET DG:LAHFMN,NOOPERANDS
|
||
; A0H
|
||
DW OFFSET DG:MOVMN,LOADACC
|
||
DW OFFSET DG:MOVMN,LOADACC
|
||
DW OFFSET DG:MOVMN,STOREACC
|
||
DW OFFSET DG:MOVMN,STOREACC
|
||
DW OFFSET DG:MOVBMN,NOOPERANDS
|
||
DW OFFSET DG:MOVWMN,NOOPERANDS
|
||
DW OFFSET DG:CMPBMN,NOOPERANDS
|
||
DW OFFSET DG:CMPWMN,NOOPERANDS
|
||
DW OFFSET DG:TESTMN,ACCIMM
|
||
DW OFFSET DG:TESTMN,ACCIMM
|
||
DW OFFSET DG:STOBMN,NOOPERANDS
|
||
DW OFFSET DG:STOWMN,NOOPERANDS
|
||
DW OFFSET DG:LODBMN,NOOPERANDS
|
||
DW OFFSET DG:LODWMN,NOOPERANDS
|
||
DW OFFSET DG:SCABMN,NOOPERANDS
|
||
DW OFFSET DG:SCAWMN,NOOPERANDS
|
||
; B0H
|
||
DW OFFSET DG:MOVMN,REGIMMB
|
||
DW OFFSET DG:MOVMN,REGIMMB
|
||
DW OFFSET DG:MOVMN,REGIMMB
|
||
DW OFFSET DG:MOVMN,REGIMMB
|
||
DW OFFSET DG:MOVMN,REGIMMB
|
||
DW OFFSET DG:MOVMN,REGIMMB
|
||
DW OFFSET DG:MOVMN,REGIMMB
|
||
DW OFFSET DG:MOVMN,REGIMMB
|
||
DW OFFSET DG:MOVMN,REGIMMW
|
||
DW OFFSET DG:MOVMN,REGIMMW
|
||
DW OFFSET DG:MOVMN,REGIMMW
|
||
DW OFFSET DG:MOVMN,REGIMMW
|
||
DW OFFSET DG:MOVMN,REGIMMW
|
||
DW OFFSET DG:MOVMN,REGIMMW
|
||
DW OFFSET DG:MOVMN,REGIMMW
|
||
DW OFFSET DG:MOVMN,REGIMMW
|
||
; C0H
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:RETMN,SAV16
|
||
DW OFFSET DG:RETMN,NOOPERANDS
|
||
DW OFFSET DG:LESMN,WORDTOALU
|
||
DW OFFSET DG:LDSMN,WORDTOALU
|
||
DW OFFSET DG:MOVMN,MEMIMM
|
||
DW OFFSET DG:MOVMN,MEMIMM
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:RETFMN,SAV16
|
||
DW OFFSET DG:RETFMN,NOOPERANDS
|
||
DW OFFSET DG:INTMN,INT3
|
||
DW OFFSET DG:INTMN,SAV8
|
||
DW OFFSET DG:INTOMN,NOOPERANDS
|
||
DW OFFSET DG:IRETMN,NOOPERANDS
|
||
; D0H
|
||
DW 0,SHIFT
|
||
DW 0,SHIFT
|
||
DW 0,SHIFTV
|
||
DW 0,SHIFTV
|
||
DW OFFSET DG:AAMMN,CHK10
|
||
DW OFFSET DG:AADMN,CHK10
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:XLATMN,NOOPERANDS
|
||
DW 0,M8087 ; d8
|
||
DW 0,M8087_D9 ; d9
|
||
DW 0,M8087 ; da
|
||
DW 0,M8087_DB ; db
|
||
DW 0,M8087 ; dc
|
||
DW 0,M8087_DD ; dd
|
||
DW 0,M8087 ; de
|
||
DW 0,M8087_DF ; df
|
||
; E0H
|
||
DW OFFSET DG:LOOPNZMN,SHORTJMP
|
||
DW OFFSET DG:LOOPZMN,SHORTJMP
|
||
DW OFFSET DG:LOOPMN,SHORTJMP
|
||
DW OFFSET DG:JCXZMN,SHORTJMP
|
||
DW OFFSET DG:INMN,INFIXB
|
||
DW OFFSET DG:INMN,INFIXW
|
||
DW OFFSET DG:OUTMN,OUTFIXB
|
||
DW OFFSET DG:OUTMN,OUTFIXW
|
||
DW OFFSET DG:CALLMN,JMPCALL
|
||
DW OFFSET DG:JMPMN,JMPCALL
|
||
DW OFFSET DG:JMPMN,LONGJMP
|
||
DW OFFSET DG:JMPMN,SHORTJMP
|
||
DW OFFSET DG:INMN,INVARB
|
||
DW OFFSET DG:INMN,INVARW
|
||
DW OFFSET DG:OUTMN,OUTVARB
|
||
DW OFFSET DG:OUTMN,OUTVARW
|
||
; F0H
|
||
DW OFFSET DG:LOCKMN,PREFIX
|
||
DW OFFSET DG:DBMN,SAVHEX
|
||
DW OFFSET DG:REPNZMN,PREFIX
|
||
DW OFFSET DG:REPZMN,PREFIX
|
||
DW OFFSET DG:HLTMN,NOOPERANDS
|
||
DW OFFSET DG:CMCMN,NOOPERANDS
|
||
DW 0,GRP1
|
||
DW 0,GRP1
|
||
DW OFFSET DG:CLCMN,NOOPERANDS
|
||
DW OFFSET DG:STCMN,NOOPERANDS
|
||
DW OFFSET DG:DIMN,NOOPERANDS
|
||
DW OFFSET DG:EIMN,NOOPERANDS
|
||
DW OFFSET DG:UPMN,NOOPERANDS
|
||
DW OFFSET DG:DOWNMN,NOOPERANDS
|
||
DW 0,GRP2
|
||
DW 0,GRP2
|
||
|
||
DBMN DB "DB",0
|
||
DB "DW",0
|
||
DB ";",0
|
||
ORGMN DB "ORG",0
|
||
ADDMN DB "ADD",0
|
||
ADCMN DB "ADC",0
|
||
SUBMN DB "SUB",0
|
||
SBBMN DB "SBB",0
|
||
XORMN DB "XOR",0
|
||
ORMN DB "OR",0
|
||
ANDMN DB "AND",0
|
||
AAAMN DB "AAA",0
|
||
AADMN DB "AAD",0
|
||
AAMMN DB "AAM",0
|
||
AASMN DB "AAS",0
|
||
CALLMN DB "CALL",0
|
||
CBWMN DB "CBW",0
|
||
CLCMN DB "CLC",0
|
||
UPMN DB "CLD",0 ; CLD,0
|
||
DIMN DB "CLI",0
|
||
CMCMN DB "CMC",0
|
||
CMPBMN DB "CMPSB",0 ; CMPSB
|
||
CMPWMN DB "CMPSW",0 ; CMPSW,0
|
||
CMPMN DB "CMP",0
|
||
CWDMN DB "CWD",0
|
||
DAAMN DB "DAA",0
|
||
DASMN DB "DAS",0
|
||
DECMN DB "DEC",0
|
||
DIVMN DB "DIV",0
|
||
ESCMN DB "ESC",0
|
||
DB "FXCH",0
|
||
DB "FFREE",0
|
||
DB "FCOMPP",0
|
||
DB "FCOMP",0
|
||
DB "FCOM",0
|
||
DB "FICOMP",0
|
||
DB "FICOM",0
|
||
DB "FNOP",0
|
||
DB "FCHS",0
|
||
DB "FABS",0
|
||
DB "FTST",0
|
||
DB "FXAM",0
|
||
DB "FLDL2T",0
|
||
DB "FLDL2E",0
|
||
DB "FLDLG2",0
|
||
DB "FLDLN2",0
|
||
DB "FLDPI",0
|
||
DB "FLD1",0
|
||
DB "FLDZ",0
|
||
DB "F2XM1",0
|
||
DB "FYL2XP1",0
|
||
DB "FYL2X",0
|
||
DB "FPTAN",0
|
||
DB "FPATAN",0
|
||
DB "FXTRACT",0
|
||
DB "FDECSTP",0
|
||
DB "FINCSTP",0
|
||
DB "FPREM",0
|
||
DB "FSQRT",0
|
||
DB "FRNDINT",0
|
||
DB "FSCALE",0
|
||
DB "FINIT",0
|
||
DB "FDISI",0
|
||
DB "FENI",0
|
||
DB "FCLEX",0
|
||
DB "FBLD",0
|
||
DB "FBSTP",0
|
||
DB "FLDCW",0
|
||
DB "FSTCW",0
|
||
DB "FSTSW",0
|
||
DB "FSTENV",0
|
||
DB "FLDENV",0
|
||
DB "FSAVE",0
|
||
DB "FRSTOR",0
|
||
DB "FADDP",0
|
||
DB "FADD",0
|
||
DB "FIADD",0
|
||
DB "FSUBRP",0
|
||
DB "FSUBR",0
|
||
DB "FSUBP",0
|
||
DB "FSUB",0
|
||
DB "FISUBR",0
|
||
DB "FISUB",0
|
||
DB "FMULP",0
|
||
DB "FMUL",0
|
||
DB "FIMUL",0
|
||
DB "FDIVRP",0
|
||
DB "FDIVR",0
|
||
DB "FDIVP",0
|
||
DB "FDIV",0
|
||
DB "FIDIVR",0
|
||
DB "FIDIV",0
|
||
DB "FWAIT",0
|
||
DB "FILD",0
|
||
DB "FLD",0
|
||
DB "FSTP",0
|
||
DB "FST",0
|
||
DB "FISTP",0
|
||
DB "FIST",0
|
||
HLTMN DB "HLT",0
|
||
IDIVMN DB "IDIV",0
|
||
IMULMN DB "IMUL",0
|
||
INCMN DB "INC",0
|
||
INTOMN DB "INTO",0
|
||
INTMN DB "INT",0
|
||
INMN DB "IN",0 ; IN
|
||
IRETMN DB "IRET",0
|
||
DB "JNBE",0
|
||
DB "JAE",0
|
||
JAMN DB "JA",0
|
||
JCXZMN DB "JCXZ",0
|
||
JNCMN DB "JNB",0
|
||
JBEMN DB "JBE",0
|
||
JCMN DB "JB",0
|
||
DB "JNC",0
|
||
DB "JC",0
|
||
DB "JNAE",0
|
||
DB "JNA",0
|
||
JZMN DB "JZ",0
|
||
DB "JE",0
|
||
JGEMN DB "JGE",0
|
||
JGMN DB "JG",0
|
||
DB "JNLE",0
|
||
DB "JNL",0
|
||
JLEMN DB "JLE",0
|
||
JLMN DB "JL",0
|
||
DB "JNGE",0
|
||
DB "JNG",0
|
||
JMPMN DB "JMP",0
|
||
JNZMN DB "JNZ",0
|
||
DB "JNE",0
|
||
JPEMN DB "JPE",0
|
||
JPOMN DB "JPO",0
|
||
DB "JNP",0
|
||
JNSMN DB "JNS",0
|
||
JNOMN DB "JNO",0
|
||
JOMN DB "JO",0
|
||
JSMN DB "JS",0
|
||
DB "JP",0
|
||
LAHFMN DB "LAHF",0
|
||
LDSMN DB "LDS",0
|
||
LEAMN DB "LEA",0
|
||
LESMN DB "LES",0
|
||
LOCKMN DB "LOCK",0
|
||
LODBMN DB "LODSB",0 ; LODSB
|
||
LODWMN DB "LODSW",0 ; LODSW,0
|
||
LOOPNZMN DB "LOOPNZ",0
|
||
LOOPZMN DB "LOOPZ",0
|
||
DB "LOOPNE",0
|
||
DB "LOOPE",0
|
||
LOOPMN DB "LOOP",0
|
||
MOVBMN DB "MOVSB",0 ; MOVSB
|
||
MOVWMN DB "MOVSW",0 ; MOVSW,0
|
||
MOVMN DB "MOV",0
|
||
MULMN DB "MUL",0
|
||
NEGMN DB "NEG",0
|
||
NOPMN DB "NOP",0
|
||
NOTMN DB "NOT",0
|
||
OUTMN DB "OUT",0 ; OUT
|
||
POPFMN DB "POPF",0
|
||
POPMN DB "POP",0
|
||
PUSHFMN DB "PUSHF",0
|
||
PUSHMN DB "PUSH",0
|
||
RCLMN DB "RCL",0
|
||
RCRMN DB "RCR",0
|
||
REPZMN DB "REPZ",0
|
||
REPNZMN DB "REPNZ",0
|
||
DB "REPE",0
|
||
DB "REPNE",0
|
||
DB "REP",0
|
||
RETFMN DB "RETF",0
|
||
RETMN DB "RET",0
|
||
ROLMN DB "ROL",0
|
||
RORMN DB "ROR",0
|
||
SAHFMN DB "SAHF",0
|
||
SARMN DB "SAR",0
|
||
SCABMN DB "SCASB",0 ; SCASB
|
||
SCAWMN DB "SCASW",0 ; SCASW,0
|
||
SHLMN DB "SHL",0
|
||
SHRMN DB "SHR",0
|
||
STCMN DB "STC",0
|
||
DOWNMN DB "STD",0 ; STD
|
||
EIMN DB "STI",0 ; STI
|
||
STOBMN DB "STOSB",0 ; STOSB
|
||
STOWMN DB "STOSW",0 ; STOSW,0
|
||
TESTMN DB "TEST",0
|
||
WAITMN DB "WAIT",0
|
||
XCHGMN DB "XCHG",0
|
||
XLATMN DB "XLAT",0
|
||
ESSEGMN DB "ES:",0
|
||
CSSEGMN DB "CS:",0
|
||
SSSEGMN DB "SS:",0
|
||
DSSEGMN DB "DS:",0
|
||
BADMN DB "???",0
|
||
|
||
M8087_TAB DB "ADD$MUL$COM$COMP$SUB$SUBR$DIV$DIVR$"
|
||
FI_TAB DB "F$FI$F$FI$"
|
||
SIZE_TAB DB "DWORD PTR $DWORD PTR $QWORD PTR $WORD PTR $"
|
||
DB "BYTE PTR $TBYTE PTR $"
|
||
|
||
MD9_TAB DB "LD$@$ST$STP$LDENV$LDCW$STENV$STCW$"
|
||
MD9_TAB2 DB "CHS$ABS$@$@$TST$XAM$@$@$LD1$LDL2T$LDL2E$"
|
||
DB "LDPI$LDLG2$LDLN2$LDZ$@$2XM1$YL2X$PTAN$PATAN$XTRACT$"
|
||
DB "@$DECSTP$INCSTP$PREM$YL2XP1$SQRT$@$RNDINT$SCALE$@$@$"
|
||
|
||
MDB_TAB DB "ILD$@$IST$ISTP$@$LD$@$STP$"
|
||
MDB_TAB2 DB "ENI$DISI$CLEX$INIT$"
|
||
|
||
MDD_TAB DB "LD$@$ST$STP$RSTOR$@$SAVE$STSW$"
|
||
MDD_TAB2 DB "FREE$XCH$ST$STP$"
|
||
|
||
MDF_TAB DB "ILD$@$IST$ISTP$BLD$ILD$BSTP$ISTP$"
|
||
|
||
|
||
OPTAB DB 11111111B ; DB
|
||
DW DB_OPER
|
||
DB 11111111B ; DW
|
||
DW DW_OPER
|
||
DB 11111111B ; COMMENT
|
||
DW ASSEMLOOP
|
||
DB 11111111B ; ORG
|
||
DW DOORG
|
||
DB 0 * 8 ; ADD
|
||
DW GROUP2
|
||
DB 2 * 8 ; ADC
|
||
DW GROUP2
|
||
DB 5 * 8 ; SUB
|
||
DW GROUP2
|
||
DB 3 * 8 ; SBB
|
||
DW GROUP2
|
||
DB 6 * 8 ; XOR
|
||
DW GROUP2
|
||
DB 1 * 8 ; OR
|
||
DW GROUP2
|
||
DB 4 * 8 ; AND
|
||
DW GROUP2
|
||
DB 00110111B ; AAA
|
||
DW NO_OPER
|
||
DB 11010101B ; AAD
|
||
DW AA_OPER
|
||
DB 11010100B ; AAM
|
||
DW AA_OPER
|
||
DB 00111111B ; AAS
|
||
DW NO_OPER
|
||
DB 2 * 8 ; CALL
|
||
DW CALL_OPER
|
||
DB 10011000B ; CBW
|
||
DW NO_OPER
|
||
DB 11111000B ; CLC
|
||
DW NO_OPER
|
||
DB 11111100B ; CLD
|
||
DW NO_OPER
|
||
DB 11111010B ; DIM
|
||
DW NO_OPER
|
||
DB 11110101B ; CMC
|
||
DW NO_OPER
|
||
DB 10100110B ; CMPB
|
||
DW NO_OPER
|
||
DB 10100111B ; CMPW
|
||
DW NO_OPER
|
||
DB 7 * 8 ; CMP
|
||
DW GROUP2
|
||
DB 10011001B ; CWD
|
||
DW NO_OPER
|
||
DB 00100111B ; DAA
|
||
DW NO_OPER
|
||
DB 00101111B ; DAS
|
||
DW NO_OPER
|
||
DB 1 * 8 ; DEC
|
||
DW DCINC_OPER
|
||
DB 6 * 8 ; DIV
|
||
DW GROUP1
|
||
DB 11011000B ; ESC
|
||
DW ESC_OPER
|
||
DB 00001001B ; FXCH
|
||
DW FGROUPP
|
||
DB 00101000B ; FFREE
|
||
DW FGROUPP
|
||
DB 11011001B ; FCOMPP
|
||
DW FDE_OPER
|
||
DB 00000011B ; FCOMP
|
||
DW FGROUPX ; Exception to normal P instructions
|
||
DB 00000010B ; FCOM
|
||
DW FGROUPX
|
||
DB 00010011B ; FICOMP
|
||
DW FGROUPZ
|
||
DB 00010010B ; FICOM
|
||
DW FGROUPZ
|
||
DB 11010000B ; FNOP
|
||
DW FD9_OPER
|
||
DB 11100000B ; FCHS
|
||
DW FD9_OPER
|
||
DB 11100001B ; FABS
|
||
DW FD9_OPER
|
||
DB 11100100B ; FTST
|
||
DW FD9_OPER
|
||
DB 11100101B ; FXAM
|
||
DW FD9_OPER
|
||
DB 11101001B ; FLDL2T
|
||
DW FD9_OPER
|
||
DB 11101010B ; FLDL2E
|
||
DW FD9_OPER
|
||
DB 11101100B ; FLDLG2
|
||
DW FD9_OPER
|
||
DB 11101101B ; FLDLN2
|
||
DW FD9_OPER
|
||
DB 11101011B ; FLDPI
|
||
DW FD9_OPER
|
||
DB 11101000B ; FLD1
|
||
DW FD9_OPER
|
||
DB 11101110B ; FLDZ
|
||
DW FD9_OPER
|
||
DB 11110000B ; F2XM1
|
||
DW FD9_OPER
|
||
DB 11111001B ; FYL2XP1
|
||
DW FD9_OPER
|
||
DB 11110001B ; FYL2X
|
||
DW FD9_OPER
|
||
DB 11110010B ; FPTAN
|
||
DW FD9_OPER
|
||
DB 11110011B ; FPATAN
|
||
DW FD9_OPER
|
||
DB 11110100B ; FXTRACT
|
||
DW FD9_OPER
|
||
DB 11110110B ; FDECSTP
|
||
DW FD9_OPER
|
||
DB 11110111B ; FINCSTP
|
||
DW FD9_OPER
|
||
DB 11111000B ; FPREM
|
||
DW FD9_OPER
|
||
DB 11111010B ; FSQRT
|
||
DW FD9_OPER
|
||
DB 11111100B ; FRNDINT
|
||
DW FD9_OPER
|
||
DB 11111101B ; FSCALE
|
||
DW FD9_OPER
|
||
DB 11100011B ; FINIT
|
||
DW FDB_OPER
|
||
DB 11100001B ; FDISI
|
||
DW FDB_OPER
|
||
DB 11100000B ; FENI
|
||
DW FDB_OPER
|
||
DB 11100010B ; FCLEX
|
||
DW FDB_OPER
|
||
DB 00111100B ; FBLD
|
||
DW FGROUPB
|
||
DB 00111110B ; FBSTP
|
||
DW FGROUPB
|
||
DB 00001101B ; FLDCW
|
||
DW FGROUP3W
|
||
DB 00001111B ; FSTCW
|
||
DW FGROUP3W
|
||
DB 00101111B ; FSTSW
|
||
DW FGROUP3W
|
||
DB 00001110B ; FSTENV
|
||
DW FGROUP3
|
||
DB 00001100B ; FLDENV
|
||
DW FGROUP3
|
||
DB 00101110B ; FSAVE
|
||
DW FGROUP3
|
||
DB 00101100B ; FRSTOR
|
||
DW FGROUP3
|
||
DB 00110000B ; FADDP
|
||
DW FGROUPP
|
||
DB 00000000B ; FADD
|
||
DW FGROUP
|
||
DB 00010000B ; FIADD
|
||
DW FGROUPZ
|
||
DB 00110100B ; FSUBRP
|
||
DW FGROUPP
|
||
DB 00000101B ; FSUBR
|
||
DW FGROUPDS
|
||
DB 00110101B ; FSUBP
|
||
DW FGROUPP
|
||
DB 00000100B ; FSUB
|
||
DW FGROUPDS
|
||
DB 00010101B ; FISUBR
|
||
DW FGROUPZ
|
||
DB 00010100B ; FISUB
|
||
DW FGROUPZ
|
||
DB 00110001B ; FMULP
|
||
DW FGROUPP
|
||
DB 00000001B ; FMUL
|
||
DW FGROUP
|
||
DB 00010001B ; FIMUL
|
||
DW FGROUPZ
|
||
DB 00110110B ; FDIVRP
|
||
DW FGROUPP
|
||
DB 00000111B ; FDIVR
|
||
DW FGROUPDS
|
||
DB 00110111B ; FDIVP
|
||
DW FGROUPP
|
||
DB 00000110B ; FDIV
|
||
DW FGROUPDS
|
||
DB 00010111B ; FIDIVR
|
||
DW FGROUPZ
|
||
DB 00010110B ; FIDIV
|
||
DW FGROUPZ
|
||
DB 10011011B ; FWAIT
|
||
DW NO_OPER
|
||
DB 00011000B ; FILD
|
||
DW FGROUPZ
|
||
DB 00001000B ; FLD
|
||
DW FGROUPX
|
||
DB 00001011B ; FSTP
|
||
DW FGROUP ;an000; dms;
|
||
DB 00101010B ; FST
|
||
DW FGROUPX
|
||
DB 00011011B ; FISTP
|
||
DW FGROUPZ
|
||
DB 00011010B ; FIST
|
||
DW FGROUPZ
|
||
DB 11110100B ; HLT
|
||
DW NO_OPER
|
||
DB 7 * 8 ; IDIV
|
||
DW GROUP1
|
||
DB 5 * 8 ; IMUL
|
||
DW GROUP1
|
||
DB 0 * 8 ; INC
|
||
DW DCINC_OPER
|
||
DB 11001110B ; INTO
|
||
DW NO_OPER
|
||
DB 11001100B ; INTM
|
||
DW INT_OPER
|
||
DB 11101100B ; IN
|
||
DW IN_OPER
|
||
DB 11001111B ; IRET
|
||
DW NO_OPER
|
||
DB 01110111B ; JNBE
|
||
DW DISP8_OPER
|
||
DB 01110011B ; JAE
|
||
DW DISP8_OPER
|
||
DB 01110111B ; JA
|
||
DW DISP8_OPER
|
||
DB 11100011B ; JCXZ
|
||
DW DISP8_OPER
|
||
DB 01110011B ; JNB
|
||
DW DISP8_OPER
|
||
DB 01110110B ; JBE
|
||
DW DISP8_OPER
|
||
DB 01110010B ; JB
|
||
DW DISP8_OPER
|
||
DB 01110011B ; JNC
|
||
DW DISP8_OPER
|
||
DB 01110010B ; JC
|
||
DW DISP8_OPER
|
||
DB 01110010B ; JNAE
|
||
DW DISP8_OPER
|
||
DB 01110110B ; JNA
|
||
DW DISP8_OPER
|
||
DB 01110100B ; JZ
|
||
DW DISP8_OPER
|
||
DB 01110100B ; JE
|
||
DW DISP8_OPER
|
||
DB 01111101B ; JGE
|
||
DW DISP8_OPER
|
||
DB 01111111B ; JG
|
||
DW DISP8_OPER
|
||
DB 01111111B ; JNLE
|
||
DW DISP8_OPER
|
||
DB 01111101B ; JNL
|
||
DW DISP8_OPER
|
||
DB 01111110B ; JLE
|
||
DW DISP8_OPER
|
||
DB 01111100B ; JL
|
||
DW DISP8_OPER
|
||
DB 01111100B ; JNGE
|
||
DW DISP8_OPER
|
||
DB 01111110B ; JNG
|
||
DW DISP8_OPER
|
||
DB 4 * 8 ; JMP
|
||
DW JMP_OPER
|
||
DB 01110101B ; JNZ
|
||
DW DISP8_OPER
|
||
DB 01110101B ; JNE
|
||
DW DISP8_OPER
|
||
DB 01111010B ; JPE
|
||
DW DISP8_OPER
|
||
DB 01111011B ; JPO
|
||
DW DISP8_OPER
|
||
DB 01111011B ; JNP
|
||
DW DISP8_OPER
|
||
DB 01111001B ; JNS
|
||
DW DISP8_OPER
|
||
DB 01110001B ; JNO
|
||
DW DISP8_OPER
|
||
DB 01110000B ; JO
|
||
DW DISP8_OPER
|
||
DB 01111000B ; JS
|
||
DW DISP8_OPER
|
||
DB 01111010B ; JP
|
||
DW DISP8_OPER
|
||
DB 10011111B ; LAHF
|
||
DW NO_OPER
|
||
DB 11000101B ; LDS
|
||
DW L_OPER
|
||
DB 10001101B ; LEA
|
||
DW L_OPER
|
||
DB 11000100B ; LES
|
||
DW L_OPER
|
||
DB 11110000B ; LOCK
|
||
DW NO_OPER
|
||
DB 10101100B ; LODB
|
||
DW NO_OPER
|
||
DB 10101101B ; LODW
|
||
DW NO_OPER
|
||
DB 11100000B ; LOOPNZ
|
||
DW DISP8_OPER
|
||
DB 11100001B ; LOOPZ
|
||
DW DISP8_OPER
|
||
DB 11100000B ; LOOPNE
|
||
DW DISP8_OPER
|
||
DB 11100001B ; LOOPE
|
||
DW DISP8_OPER
|
||
DB 11100010B ; LOOP
|
||
DW DISP8_OPER
|
||
DB 10100100B ; MOVB
|
||
DW NO_OPER
|
||
DB 10100101B ; MOVW
|
||
DW NO_OPER
|
||
DB 11000110B ; MOV
|
||
DW MOV_OPER
|
||
DB 4 * 8 ; MUL
|
||
DW GROUP1
|
||
DB 3 * 8 ; NEG
|
||
DW GROUP1
|
||
DB 10010000B ; NOP
|
||
DW NO_OPER
|
||
DB 2 * 8 ; NOT
|
||
DW GROUP1
|
||
DB 11101110B ; OUT
|
||
DW OUT_OPER
|
||
DB 10011101B ; POPF
|
||
DW NO_OPER
|
||
DB 0 * 8 ; POP
|
||
DW POP_OPER
|
||
DB 10011100B ; PUSHF
|
||
DW NO_OPER
|
||
DB 6 * 8 ; PUSH
|
||
DW PUSH_OPER
|
||
DB 2 * 8 ; RCL
|
||
DW ROTOP
|
||
DB 3 * 8 ; RCR
|
||
DW ROTOP
|
||
DB 11110011B ; REPZ
|
||
DW NO_OPER
|
||
DB 11110010B ; REPNZ
|
||
DW NO_OPER
|
||
DB 11110011B ; REPE
|
||
DW NO_OPER
|
||
DB 11110010B ; REPNE
|
||
DW NO_OPER
|
||
DB 11110011B ; REP
|
||
DW NO_OPER
|
||
DB 11001011B ; RETF
|
||
DW GET_DATA16
|
||
DB 11000011B ; RET
|
||
DW GET_DATA16
|
||
DB 0 * 8 ; ROL
|
||
DW ROTOP
|
||
DB 1 * 8 ; ROR
|
||
DW ROTOP
|
||
DB 10011110B ; SAHF
|
||
DW NO_OPER
|
||
DB 7 * 8 ; SAR
|
||
DW ROTOP
|
||
DB 10101110B ; SCAB
|
||
DW NO_OPER
|
||
DB 10101111B ; SCAW
|
||
DW NO_OPER
|
||
DB 4 * 8 ; SHL
|
||
DW ROTOP
|
||
DB 5 * 8 ; SHR
|
||
DW ROTOP
|
||
DB 11111001B ; STC
|
||
DW NO_OPER
|
||
DB 11111101B ; STD
|
||
DW NO_OPER
|
||
DB 11111011B ; EI
|
||
DW NO_OPER
|
||
DB 10101010B ; STOB
|
||
DW NO_OPER
|
||
DB 10101011B ; STOW
|
||
DW NO_OPER
|
||
DB 11110110B ; TEST
|
||
DW TST_OPER
|
||
DB 10011011B ; WAIT
|
||
DW NO_OPER
|
||
DB 10000110B ; XCHG
|
||
DW EX_OPER
|
||
DB 11010111B ; XLAT
|
||
DW NO_OPER
|
||
DB 00100110B ; ESSEG
|
||
DW NO_OPER
|
||
DB 00101110B ; CSSEG
|
||
DW NO_OPER
|
||
DB 00110110B ; SSSEG
|
||
DW NO_OPER
|
||
DB 00111110B ; DSSEG
|
||
DW NO_OPER
|
||
|
||
ZZOPCODE LABEL BYTE
|
||
MAXOP = (ZZOPCODE-OPTAB)/3
|
||
|
||
SHFTAB DW OFFSET DG:ROLMN,OFFSET DG:RORMN,OFFSET DG:RCLMN
|
||
DW OFFSET DG:RCRMN,OFFSET DG:SHLMN,OFFSET DG:SHRMN
|
||
DW OFFSET DG:BADMN,OFFSET DG:SARMN
|
||
|
||
IMMTAB DW OFFSET DG:ADDMN,OFFSET DG:ORMN,OFFSET DG:ADCMN
|
||
DW OFFSET DG:SBBMN,OFFSET DG:ANDMN,OFFSET DG:SUBMN
|
||
DW OFFSET DG:XORMN,OFFSET DG:CMPMN
|
||
|
||
GRP1TAB DW OFFSET DG:TESTMN,OFFSET DG:BADMN,OFFSET DG:NOTMN
|
||
DW OFFSET DG:NEGMN,OFFSET DG:MULMN,OFFSET DG:IMULMN
|
||
DW OFFSET DG:DIVMN,OFFSET DG:IDIVMN
|
||
|
||
GRP2TAB DW OFFSET DG:INCMN,OFFSET DG:DECMN,OFFSET DG:CALLMN
|
||
DW OFFSET DG:CALLMN,OFFSET DG:JMPMN,OFFSET DG:JMPMN
|
||
DW OFFSET DG:PUSHMN,OFFSET DG:BADMN
|
||
|
||
SEGTAB DW OFFSET DG:ESSAVE,OFFSET DG:CSSAVE,OFFSET DG:SSSAVE
|
||
DW OFFSET DG:DSSAVE
|
||
|
||
REGTAB DB "AX",0,"BX",0,"CX",0,"DX",0,"SP",0,"BP",0
|
||
DB "SI",0,"DI",0,"DS",0,"ES",0,"SS",0,"CS",0,"IP",0,"PC",0
|
||
REGTABEND LABEL WORD
|
||
|
||
; Flags are ordered to correspond with the bits of the flag
|
||
; register, most significant bit first, zero if bit is not
|
||
; a flag. First 16 entries are for bit set, second 16 for
|
||
; bit reset.
|
||
|
||
FLAGTAB DW 0
|
||
DW 0
|
||
DW 0
|
||
DW 0
|
||
DB "OV"
|
||
DB "DN"
|
||
DB "EI" ; "STI"
|
||
DW 0
|
||
DB "NG"
|
||
DB "ZR"
|
||
DW 0
|
||
DB "AC"
|
||
DW 0
|
||
DB "PE"
|
||
DW 0
|
||
DB "CY"
|
||
DW 0
|
||
DW 0
|
||
DW 0
|
||
DW 0
|
||
DB "NV"
|
||
DB "UP" ; "CLD"
|
||
DB "DI"
|
||
DW 0
|
||
DB "PL"
|
||
DB "NZ"
|
||
DW 0
|
||
DB "NA"
|
||
DW 0
|
||
DB "PO"
|
||
DW 0
|
||
DB "NC"
|
||
|
||
DW 80H DUP(?)
|
||
STACK LABEL BYTE
|
||
|
||
|
||
; Register save area
|
||
|
||
AXSAVE DW 0
|
||
BXSAVE DW 0
|
||
CXSAVE DW 0
|
||
DXSAVE DW 0
|
||
SPSAVE DW 5AH
|
||
BPSAVE DW 0
|
||
SISAVE DW 0
|
||
DISAVE DW 0
|
||
DSSAVE DW 0
|
||
ESSAVE DW 0
|
||
RSTACK LABEL WORD ; Stack set here so registers can be saved by pushing
|
||
SSSAVE DW 0
|
||
CSSAVE DW 0
|
||
IPSAVE DW 100H
|
||
FLSAVE DW 0F202H
|
||
|
||
RSETFLAG DB 0
|
||
|
||
; These variables used to determine if the file is larget than the ;C01
|
||
; amount of disk space available whenever a write occurs. ;C01
|
||
;C01
|
||
FileSizeLB DW 0 ;C01
|
||
FileSizeHB DW 0 ;C01
|
||
TempHB DW 0 ;C01
|
||
TempLB DW 0 ;C01
|
||
DriveOfFile DB ? ;C01
|
||
|
||
REGDIF EQU AXSAVE-REGTAB
|
||
|
||
; This value is initially 0, it is set to non-zero if a file is specified
|
||
; either at debug invokation, or via the (N)ame command. It is used to
|
||
; control the printing of the NONAMESPEC message for the (W)rite command.
|
||
NAMESPEC DB 0
|
||
|
||
; RAM area.
|
||
|
||
RDFLG DB READ
|
||
TOTREG DB 13
|
||
DSIZ DB 0FH ;changed to 7 if screen 40 col mode
|
||
NOREGL DB 8 ;changed to 4 if screen 40 col mode
|
||
DISPB DW 128 ;changed to 64 if screen 40 col mode
|
||
|
||
LBUFSIZ DB BUFLEN
|
||
LBUFFCNT DB 0
|
||
LINEBUF DB 0DH
|
||
DB BUFLEN DUP (?)
|
||
PFLAG DB 0
|
||
COLPOS DB 0
|
||
|
||
IF SYSVER
|
||
CONFCB DB 0
|
||
DB "PRN "
|
||
DB 25 DUP(0)
|
||
|
||
POUT DD ?
|
||
COUT DD ?
|
||
CIN DD ?
|
||
IOBUFF DB 3 DUP (?)
|
||
IOADDR DD ?
|
||
|
||
IOCALL DB 22
|
||
DB 0
|
||
IOCOM DB 0
|
||
IOSTAT DW 0
|
||
DB 8 DUP (0)
|
||
IOCHRET DB 0
|
||
DW OFFSET DG:IOBUFF
|
||
IOSEG DW ?
|
||
IOCNT DW 1
|
||
DW 0
|
||
ENDIF
|
||
|
||
QFLAG DB 0
|
||
NEWEXEC DB 0
|
||
RETSAVE DW ?
|
||
|
||
USER_PROC_PDB DW ?
|
||
NextCS DW ?
|
||
NextIP DW ?
|
||
|
||
HEADSAVE DW ?
|
||
|
||
EXEC_BLOCK LABEL BYTE
|
||
DW 0
|
||
COM_LINE LABEL DWORD
|
||
DW 80H
|
||
DW ?
|
||
COM_FCB1 LABEL DWORD
|
||
DW FCB
|
||
DW ?
|
||
COM_FCB2 LABEL DWORD
|
||
DW FCB + 10H
|
||
DW ?
|
||
COM_SSSP DD ?
|
||
COM_CSIP DD ?
|
||
|
||
CONST ENDS
|
||
END
|
||
|