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.
1162 lines
29 KiB
1162 lines
29 KiB
;**************************************************************************
|
|
;/*
|
|
; * 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
|
|
|