home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol091
/
dasmzlg.mac
< prev
next >
Wrap
Text File
|
1984-04-29
|
15KB
|
1,009 lines
;
;DASMZLG.MAC from DASM.ZLG (ver. >= 3.0)
;This routine is the ZILOG mnemonic disassembler module for DASM.MAC.
;It is included into DASM during assembly under M80.
;
IF1
.PRINTX /DASM with ZILOG-Standard Mnemonics/
ENDIF
;
; This is the Header to be printed for this module
;
HEADER:
DEFB 'DASM for ZILOG-Standard Mnemonics',0dh,0ah
DEFB ' Derived from ZZSOURCE/RESOURCE',0dh,0ah
DEFB '$',0
;
; This is the Disassembler Module -- Instruction to be disassembled
; is pted to by PC
;
DASM:
CALL HSYM ;WRITE A SYMBOL IF IT EXISTS
;.. AND PUT PC ON THE CRT
LD HL,(RPLPTR) ;SEE IF THIS LINE IS REPLACED
LD A,H
OR L
JR Z,DASM1
LD B,(HL)
INC HL ;SKIP THE '*'
DEC B
CALL NWLN0 ;PRINT THE REPLACING LINE AS A COMMENT
DASM1:
LD HL,(PC)
EX DE,HL
LD HL,(OFFSET)
ADD HL,DE ;HL IS NOW THE BIASED PC
LD (BIASED),HL
EX DE,HL ;DE IS NOW THE BIASED PC
INC HL
LD (PC),HL ;THE NEW PC (NEXT BYTE)
EX DE,HL ;DE IS THE BYTE AFTER THE INSTRUCTION
LD B,(HL)
LD HL,OPC-4
CALL GTCD
CALL TYPEOC
CP 0AH ;TYPES 0 THRU 9 ARE 1 BYTE
JR C,OLDPC ; .. SO DON'T CHANGE THE PC
LD HL,(PC)
INC HL
CP 10H ;TYPES 0A THRU 0FH ARE 2-BYTERS
JR C,NEWPC
CP 16H ;TYPES 10H THRU 15H ARE 3 BYTES
JR NC,NEWPC
INC HL
NEWPC:
LD (PC),HL
OLDPC:
PUSH DE ;SAVE THE 'E' REGISTER (MAY BE 'X' OR 'Y')
LD E,A
LD D,0
LD HL,JMPTBL
ADD HL,DE ;ADD 2*OPCODE TYPE TO JMPTBL TO GET
ADD HL,DE ;.. ROUTINE ADDRESS
LD E,(HL)
INC HL
LD D,(HL)
EX DE,HL ;HL NOW CONTAINS THE ROUTINE ADDRESS
POP DE
PUSH HL
LD HL,(BIASED)
RET ;'RETURN' TO THE ROUTINE
;
GTCD:
LD DE,4
NXTCD:
ADD HL,DE
NXTCD1:
LD A,(HL)
OR A ;SEE IF WE'RE AT THE NEXT MASK YET
INC HL
JP P,NXTCD1 ;JUMP IF NOT
AND B ;MASK OUT VARIABLES IN THE INSTRUCTION
CP (HL) ;CHECK THE GENERIC INSTRUCTION TYPE
JR NZ,NXTCD
INC HL
LD A,(HL) ;AFTER A MATCH, GET THE OPCODE TYPE
LD (OPCTP),A
RET
;
TOC2:
CP 20H ;CONVERT SPACES IN THE TABLE TO TABS
JR NZ,TOC1
LD A,9
TOC1:
CALL COUT
TYPEOC:
INC HL ;TYPE THE OPCODE THAT HL IS POINTING TO
LD A,(HL)
OR A
JR Z,TYPEOC
JP P,TOC2
LD HL,(PC)
LD A,(OPCTP)
RET
;
JMPTBL:
DEFW T0 ;SIMPLE 1 BYTE INSTRUCTIONS
DEFW T1 ;8 BIT, REGISTER ARITHMETIC & LOGICAL
DEFW T2 ;DEC & INC
DEFW T3 ;DOUBLE REGISTER SINGLE BYTE ARITHMETIC
DEFW T4 ;8 BIT LOAD FROM MEMORY
DEFW T5 ;8 BIT LOAD TO MEMORY
DEFW T6 ;POP's AND PUSH's
DEFW T7 ;CONDITIONAL RETURNS
DEFW T8 ;THE RST INSTRUCTIONS
DEFW T9 ;REGISTER TO REGISTER LOADS
;2 BYTE INSTRUCTIONS
DEFW TA ;8 BIT LOAD IMMEDIATES
DEFW TB ;8 BIT IMMEDIATE ARITH. & LOGICAL
DEFW TC ;IN A,(n)
DEFW TD ;OUT (n),A
DEFW TE ;CONDITIONAL, RELATIVE JUMPS
DEFW TF ;OTHER RELATIVE JUMPS
;3 BYTE INSTRUCTIONS
DEFW T10 ;16 BIT LOADS
DEFW T11 ;JUMPS & CALLS
DEFW T12 ;DIRECT LOADS
DEFW T13 ;DIRECT STORES
DEFW T14 ;LD (nn),A
DEFW T15 ;CONDITIONAL JUMPS & CALLS
;MULTI-BYTE OPCODES
DEFW T16 ;THE 'CB' SERIES {1, 1A, 2A}
DEFW T17 ;THE 'DD' SERIES {1B thru 25 & 2A}
DEFW T18 ;THE 'FD' SERIES {1B thru 25 & 2A}
DEFW T19 ;THE 'ED' SERIES {0, 2, 3, 26 thru 2A}
;1 BYTE
DEFW T1A ;THE BIT, RES & SET FOR 'CB'
DEFW T1B ;INDEX REGISTER LOADS
DEFW T1C ;JUMP INDIRECT INDEX REGISTER
DEFW T1D ;INDEX REGISTER ADD
;2 BYTE
DEFW T1E ;INDEX REGISTER ARITH. AND LOGICAL
DEFW T1F ;INDEXED LOAD TO REGISTER
DEFW T20 ;INDEXED REGISTER STORE
;3 BYTES AFTER 'DD' OR 'FE'
DEFW T21 ;LD xx,nn
DEFW T22 ;LD (nn),n
DEFW T23 ;LD xx,(nn)
DEFW T24 ;LD (xx+d),n
DEFW T25 ;THE 'CB' EXTENSIONS TO 'DD' OR 'FD'
;1 BYTE AFTER 'ED'
DEFW T26 ;IN r,(C)
DEFW T27 ;BLOCK MOVES
;3 BYTES AFTER 'ED'
DEFW T28 ;LD (nn),dd
DEFW T29 ;LD dd,(nn)
;WHATEVER IS LEFT
DEFW T2A ;INDEFINED OPCODES
;
;ONE BYTE INSTRUCTIONS, SIMPLE
;
T0:
JP DCRLF
;
;ARITHMETIC & LOGICAL, 8 BIT, REGISTER
;
T1:
CALL PSREG ;PRINT THE SOURCE REGISTER
JP DCRLF
;
;DEC AND INC INSTRUCTIONS
;
T2:
CALL PDREG ;PRINT THE DESTINATION REGISTER
JP DCRLF
;
;DOUBLE REGISTER SINGLE BYTE
;
T3:
CALL PXSREG ;PRINT HL, DE, BC, OR SP
JP DCRLF
T4:
CALL LPAR ; LD A,(BC or DE)
CALL PXSREG
CALL RPAR
JP DCRLF
T5:
CALL LPAR ; LD (BC or DE),A
CALL PXSREG
CALL RPAR
CALL PCMAA
JP DCRLF
;
;POP AND PUSH
;
T6:
CALL PXQREG ;PRINT HL, DE, BC, OR AF
JP DCRLF
;
;CONDITIONAL RETURNS
;
T7:
CALL PRCND
JP DCRLF
;
;THE RST INSTRUCTIONS
;
T8:
LD A,(HL)
AND 38H
CALL PRST
JP DCRLF
;
;REGISTER TO REGISTER LOADS
;
T9:
CALL PDREG
CALL COMMA
LD HL,(BIASED)
CALL PSREG
JP DCRLF
;
;TWO BYTE INSTRUCTIONS
; 8 BIT IMMEDIATE LOADS
;
TA:
CALL PDREG
CALL COMMA
LD HL,(BIASED)
;ARITHMETIC & LOGICAL IMMEDIATES
TB:
INC HL
DTABYT:
LD A,(HL)
CP ' '
JR C,NOTASC
CP 5BH
JR NC,NOTASC
CALL PASCII
LD A,''''
CALL COUT
LD A,(XCSW) ;WANT SYMBOL COMMENTS?
OR A
JP Z,DCRLF
CALL TAB
CALL SEMI
NOTASC:
LD A,(HL)
CP 0AH
JR C,NTSC0
CALL PASHEX
LD A,'H'
CALL COUT
JP DCRLF
NTSC0:
ADD A,'0'
CALL COUT
JP DCRLF
;
;IN
;
TC:
CALL LPAR ;FOR 'IN A,(C)'
INC HL
LD A,(HL)
CALL PASHEX
LD A,'H'
CALL COUT
CALL RPAR
JP DCRLF
;OUT
TD:
CALL LPAR
INC HL
LD A,(HL)
CALL PASHEX
LD A,'H'
CALL COUT
CALL RPAR
CALL COMMA
LD A,'A'
CALL COUT
JP DCRLF
;
;CONDITIONAL RELATIVE JUMPS
;
TE:
CALL PRCND1 ;THE SPECIAL CC LIST
LD HL,(BIASED)
CALL COMMA
;OTHER RELATIVE INSTRUCTIONS
TF:
INC HL
LD A,(HL)
LD E,A
LD D,0
LD HL,(PC)
OR A
JP P,PSTV
DEC D
PSTV:
ADD HL,DE
EX DE,HL
CALL PRNTDE
CALL C,PDERTN
JP DCRLF
;
;THREE BYTE INSTRUCTIONS
;16 BIT LOADS
;
T10:
CALL PXSREG
CALL COMMA
LD HL,(BIASED)
;JUMPS AND CALLS
T11:
CALL PRNN
CALL C,PDERTN
JP DCRLF
;
;LOAD DIRECT
;
T12:
CALL DRADR
CALL C,PDERTN
JP DCRLF
DRADR:
CALL LPAR ;PRINT THE VALUE FOR DE IN PARENTHESIS
CALL PRNN
PUSH AF
CALL RPAR
POP AF
RET
;
;STORE DIRECT
;
T13:
CALL DRADR
PUSH AF
CALL COMMA
LD A,'H'
CALL COUT
LD A,'L'
CALL COUT
POP AF
CALL C,PDERTN
JP DCRLF
;
;STORE ACCUMULATOR DIRECT
;
T14:
CALL DRADR
PUSH AF
CALL PCMAA
POP AF
CALL C,PDERTN
JP DCRLF
;
;CONDITIONAL JUMPS & CALLS
;
T15:
CALL PRCND
CALL COMMA
LD HL,(BIASED)
CALL PRNN
CALL C,PDERTN
JP DCRLF
;
;THE 'CB' SERIES LEAD IN
;
T16:
INC HL
LD B,(HL) ;THE SECOND BYTE OF THE INSTRUCTION
LD (BIASED),HL
LD HL,OPC2-4
CALL GTCD ;FIND THE TYPE OF THE 'CB' INSTRUCTION
CALL TYPEOC
JP OLDPC
;
;THE 'DD' SERIES LEAD IN
;
T17:
LD E,'X' ;FOR THE 'IX' INSTRUCTIONS
T170:
PUSH DE
INC HL
LD (BIASED),HL
LD B,(HL)
LD HL,OPC3-4
CALL GTCD
CALL TYPEOC
POP DE
CP 1EH
JP C,OLDPC
CP 2AH
JP Z,OLDPC
CP 21H
INC HL
JP C,NEWPC
INC HL
JP NEWPC
;
;THE 'FD' SERIES LEAD IN
;
T18:
LD E,'Y'
JR T170
;
;THE 'ED' SERIES LEAD IN
;
T19:
INC HL
LD (BIASED),HL
LD B,(HL)
LD HL,OPC4-4
CALL GTCD
CALL TYPEOC
CP 28H
JP C,OLDPC
CP 2AH
JP Z,OLDPC
INC HL
INC HL
JP NEWPC
;
;BIT, RES AND SET
;
T1A:
CALL PBIT
CALL COMMA
CALL PSREG
JP DCRLF
;
;INDEX REGISTER MOVES
;
T1B:
CALL PRXX ;TO TYPE EITHER 'IX' OR 'IY'
JP DCRLF
;
;JUMP INDIRECT TO INDEX REGISTER
;
T1C:
CALL LPAR
CALL PRXX
CALL RPAR
JP DCRLF
;
;INDEX REGISTER ADDITION
;
T1D:
CALL PRXX
CALL COMMA
LD A,E
CP 'X'
LD A,(HL)
LD HL,IXREGS
JR Z,T1D0
LD HL,IYREGS
T1D0:
CALL PXREG
JP DCRLF
;
;INDEX REGISTER ARITHMETIC AND LOGICAL
;
T1E:
INC HL
CALL PDISP ;PRINT '(IX(Y)+d)
JP DCRLF
;
;INDEXED LOAD TO REGISTER
;
T1F:
CALL PDREG
CALL COMMA
LD HL,(BIASED)
INC HL
CALL PDISP
JP DCRLF
;
;INDEXED REGISTER STORE
;
T20:
INC HL
CALL PDISP
CALL COMMA
LD HL,(BIASED)
CALL PSREG
JP DCRLF
;
; LD xx,nn
;
T21:
CALL PRXX
CALL COMMA
CALL PRNN
CALL C,PDERTN
JP DCRLF
;
; LD (nn),xx
;
T22:
CALL LPAR
PUSH DE
CALL PRNN
EX DE,HL ;HL NOW CONTAINS THE NUMBER
POP DE ;RECOVER THE 'E' REG. ('X' OR 'Y')
PUSH AF ;SAVE THE CARRY FOR A LATER 'PEDRTN'
CALL RPAR
CALL COMMA
CALL PRXX
POP AF ;THE CARRY FLAG IS RESTORED
EX DE,HL ;DE AGAIN CONTAINS THE VALUE FOR nn
CALL C,PDERTN
JP DCRLF
;
; LD xx,(nn)
;
T23:
CALL PRXX
CALL COMMA
CALL LPAR
CALL PRNN
PUSH AF ;SAVE Cy VALUE
CALL RPAR
POP AF
CALL C,PDERTN
JP DCRLF
;
; LD (xx+d),n
;
T24:
INC HL
CALL PDISP
CALL COMMA
JP TB
;
;THE 'CB' EXTENSIONS TO 'DD' OR 'FD'
;
T25:
INC HL
INC HL
LD B,(HL)
LD HL,OPC2-4
PUSH DE ;SAVE 'X' OR 'Y'
CALL GTCD
CALL TYPEOC
POP DE
LD A,B ;GET THE O.C.
AND 7
CP 6
JR NZ,ILLEG
LD A,(OPCTP)
LD HL,(BIASED)
CP 1AH
JP C,T1E
JR Z,DD12
ILLEG:
LD HL,(PC)
DEC HL
DEC HL
LD (PC),HL
JP T2A
DD12:
INC HL
INC HL
CALL PBIT
CALL COMMA
DEC HL
DEC HL
JP T1E
;
; IN r,(C)
;
T26:
CALL PDREG
CALL COMMA
CALL LPAR
LD A,'C'
CALL COUT
CALL RPAR
JP DCRLF
;
;THE BLOCK MOVES AND I/O
;
T27:
LD A,(HL)
AND 8
LD A,'I' ;AN INCREMENTING TYPE OF INSTRUCTION?
JP Z,T270
LD A,'D' ;NO, IT WAS DECREMENTING
T270:
CALL COUT
LD A,(HL)
AND 10H
JP Z,DCRLF
LD A,'R' ;A REPEATING INSTRUCTION TYPE
CALL COUT
JP DCRLF
;
; LD (nn),dd
;
T28:
CALL LPAR
CALL PRNN
PUSH AF ;SAVE Cy VALUE
PUSH DE ;SAVE THE 'NN' VALUE
CALL RPAR
CALL COMMA
LD HL,(BIASED)
CALL PXSREG
POP DE
POP AF
CALL C,PDERTN
JP DCRLF
;
; LD dd,(nn)
;
T29:
CALL PXSREG
CALL COMMA
LD HL,(BIASED)
CALL LPAR
CALL PRNN
PUSH AF
CALL RPAR
POP AF
CALL C,PDERTN
JP DCRLF
;
;ALL UNDEFINED OPCODES COME HERE FOR A 'DB VALUE' TREATMENT
;
T2A:
LD HL,(PC)
DEC HL
LD (PC),HL
LD HL,(BIASED)
DEC HL
CALL PSTG
DEFB 'DB',9,0
JP DTABYT
;
; VARIOUS CHARACTERS TO PRINT
;
COMMA:
LD A,','
JP COUT
TAB:
LD A,9
JP COUT
SEMI:
LD A,';'
JP COUT
LPAR:
LD A,'('
JP COUT
RPAR:
LD A,')'
JP COUT
PCMAA:
CALL COMMA
LD A,'A'
JP COUT
;
; PRINT THE CONDITION CODE LETTERS FOR THIS INSTRUCTION.
;
PRCND:
LD A,(HL)
AND 38H ;FOR A FULL SET OF CONDITION CODES
PRC:
RRCA
RRCA
LD HL,CNDTAB
CALL SKIP
LD A,(HL)
CALL COUT
INC HL
LD A,(HL)
CP '.'
CALL NZ,COUT
RET
PRCND1:
LD A,(HL)
AND 18H
JR PRC
CNDTAB:
DEFB 'NZZ.NCC.POPEP.M.'
;
; PRINT THE SOURCE REGISTER FOR A BYTE
;
PSREG:
LD A,(HL)
PREG:
LD HL,REGTAB
AND 7
CP 6 ;MUST CATCH THE (HL) REFERENCES
JP Z,PHLREG
CALL SKIP
LD A,(HL)
JP COUT
PHLREG:
CALL LPAR
LD A,'H'
CALL COUT
LD A,'L'
CALL COUT
JP RPAR
PDREG:
LD A,(HL) ;PRINT THE DESTINATION REGISTER FOR A BYTE
RRA
RRA
RRA
JP PREG
;
; ADVANCE H&L BY (A)
;
SKIP:
ADD A,L
LD L,A
RET NC
INC H
RET
REGTAB:
DEFB 'BCDEHLMA' ;'M' IS NEVER PRINTED - '(HL)' IS INSTEAD
;
; PRINT A DOUBLE REGISTER PAIR
;
PXSREG:
LD A,(HL)
LD HL,DREGS
JR PXREG
PXQREG:
LD A,(HL)
LD HL,DREGQ
PXREG:
RRA
RRA
RRA
AND 6
CALL SKIP
LD A,(HL)
CALL COUT
INC HL
LD A,(HL)
JP COUT
DREGS:
DEFB 'BCDEHLSP'
DREGQ:
DEFB 'BCDEHLAF'
IXREGS:
DEFB 'BCDEIXSP'
IYREGS:
DEFB 'BCDEIYSP'
;
PBIT:
LD A,(HL)
RRA
RRA
RRA
AND 7
ADD A,'0'
JP COUT
PRXX:
LD A,'I'
CALL COUT
LD A,E
JP COUT
;
;PRINT A LEADING QUOTE AND THEN THE ASCII
;.. (PRINT '' FOR ').
;
PASCII:
PUSH AF
LD A,''''
CALL COUT
POP AF
CP ''''
JP NZ,COUT
PUSH AF
CALL COUT
POP AF
JP COUT
;PRINT THE VALUE IN A AS HEX
; WITH A LEADING ZERO IF NECESSARY
PASHEX:
CP 0A0H
JP C,PHEX
PUSH AF
LD A,'0'
CALL COUT
POP AF
JP PHEX
;PRINT THE STRING AT (HL) FOR (B) CHARACTERS.
PRNT:
LD A,(HL)
CALL COUT
INC HL
DEC B
JP NZ,PRNT
RET
;
;PRINT A DISPLACEMENT IN THE FORM '(IX+d)'
PDISP:
CALL LPAR
CALL PRXX
LD A,'+'
CALL COUT
LD A,(HL)
CALL PASHEX
LD A,'H'
CALL COUT
JP RPAR
;
;PRINT THE NEXT 2 BYTES AS A SYMBOL (AND RETURN Cy=1) IF POSSIBLE
;
PRNN:
INC HL
LD E,(HL)
INC HL
LD D,(HL)
PRNTDE:
PUSH DE
CALL SYMSCH
JP C,NOMTCH
CALL PRNT ;GOT ONE, SO PRINT IT
POP DE
SCF ;INDICATE THAT A SYMBOL WAS PRINTED
RET
NOMTCH:
LD A,(BUILD) ;DO WE BUILD A SYMBOL?
OR A
POP DE
JR Z,NOBLD ;JUST PRINT THE HEX VALUE
PUSH DE
CALL BLDSYM
POP DE
JR NOBLD
PDERTN:
LD A,(XCSW)
OR A
RET Z ;DON'T PRINT THE SYMBOL AS A COMMENT
CALL TAB ;WE'LL PRINT A VALUE AS A COMMENT
CALL SEMI
NOBLD:
LD A,D
OR E
LD A,'0'
JR Z,NOBLD1
LD A,D
OR A
JR Z,NOBLD2
CALL PASHEX ;PRINT THE HIGH ORDER BYTE
LD A,E
CALL PHEX
NOBLD0:
LD A,'H'
NOBLD1:
CALL COUT
OR A ;CLEAR THE CARRY
RET
NOBLD2:
LD A,E
PRST:
CP 0AH
JR C,NOBLD3
CALL PASHEX
JR NOBLD0
NOBLD3:
ADD A,'0'
JR NOBLD1
;
; OPCODE TABLES
;
OPC:
DEFB 0FFH,0EBH,0,'EX DE,HL'
DEFB 0FFH,008H,0,'EX AF,AF'''
DEFB 0FFH,0D9H,0,'EXX'
DEFB 0FFH,0E3H,0,'EX (SP),HL'
DEFB 0FFH,027H,0,'DAA'
DEFB 0FFH,0F3H,0,'DI'
DEFB 0FFH,0FBH,0,'EI'
DEFB 0FFH,076H,0,'HALT'
DEFB 0FFH,02FH,0,'CPL'
DEFB 0FFH,03FH,0,'CCF'
DEFB 0FFH,000H,0,'NOP'
DEFB 0FFH,037H,0,'SCF'
DEFB 0FFH,0E9H,0,'JP (HL)'
DEFB 0FFH,007H,0,'RLCA'
DEFB 0FFH,017H,0,'RLA'
DEFB 0FFH,00FH,0,'RRCA'
DEFB 0FFH,01FH,0,'RRA'
DEFB 0FFH,0C9H,0,'RET'
DEFB 0FFH,0F9H,0,'LD SP,HL'
DEFB 0F8H,088H,1,'ADC A,'
DEFB 0F8H,080H,1,'ADD A,'
DEFB 0F8H,0A0H,1,'AND '
DEFB 0F8H,0B8H,1,'CP '
DEFB 0F8H,0B0H,1,'OR '
DEFB 0F8H,098H,1,'SBC A,'
DEFB 0F8H,090H,1,'SUB '
DEFB 0F8H,0A8H,1,'XOR '
DEFB 0C7H,005H,2,'DEC '
DEFB 0C7H,004H,2,'INC '
DEFB 0CFH,009H,3,'ADD HL,'
DEFB 0CFH,00BH,3,'DEC '
DEFB 0CFH,003H,3,'INC '
DEFB 0EFH,00AH,4,'LD A,'
DEFB 0EFH,002H,5,'LD '
DEFB 0CFH,0C1H,6,'POP '
DEFB 0CFH,0C5H,6,'PUSH '
DEFB 0C7H,0C0H,7,'RET '
DEFB 0C7H,0C7H,8,'RST '
DEFB 0C0H,040H,9,'LD '
DEFB 0C7H,006H,0AH,'LD '
DEFB 0FFH,0C6H,0BH,'ADD A,'
DEFB 0FFH,0CEH,0BH,'ADC A,'
DEFB 0FFH,0E6H,0BH,'AND '
DEFB 0FFH,0FEH,0BH,'CP '
DEFB 0FFH,0F6H,0BH,'OR '
DEFB 0FFH,0D6H,0BH,'SUB '
DEFB 0FFH,0DEH,0BH,'SBC A,'
DEFB 0FFH,0EEH,0BH,'XOR '
DEFB 0FFH,0DBH,0CH,'IN A,'
DEFB 0FFH,0D3H,0DH,'OUT '
DEFB 0E7H,020H,0EH,'JR '
DEFB 0FFH,010H,0FH,'DJNZ '
DEFB 0FFH,018H,0FH,'JR '
DEFB 0CFH,001H,10H,'LD '
DEFB 0FFH,0C3H,11H,'JP '
DEFB 0FFH,0CDH,11H,'CALL '
DEFB 0FFH,03AH,12H,'LD A,'
DEFB 0FFH,02AH,12H,'LD HL,'
DEFB 0FFH,022H,13H,'LD '
DEFB 0FFH,032H,14H,'LD '
DEFB 0C7H,0C4H,15H,'CALL '
DEFB 0C7H,0C2H,15H,'JP '
DEFB 0FFH,0CBH,16H,0,0
DEFB 0FFH,0DDH,17H,0,0
DEFB 0FFH,0FDH,18H,0,0
DEFB 0FFH,0EDH,19H
OPC2:
DEFB 0F8H,000H,01H,'RLC '
DEFB 0F8H,008H,01H,'RRC '
DEFB 0F8H,010H,01H,'RL '
DEFB 0F8H,018H,01H,'RR '
DEFB 0F8H,020H,01H,'SLA '
DEFB 0F8H,028H,01H,'SRA '
DEFB 0F8H,038H,01H,'SRL '
DEFB 0C0H,040H,1AH,'BIT '
DEFB 0C0H,080H,1AH,'RES '
DEFB 0C0H,0C0H,1AH,'SET '
DEFB 080H,000H,2AH
OPC3:
DEFB 0FFH,0E3H,1BH,'EX (SP),'
DEFB 0FFH,0E9H,1CH,'JP '
DEFB 0FFH,0F9H,1BH,'LD SP,'
DEFB 0FFH,0E1H,1BH,'POP '
DEFB 0FFH,0E5H,1BH,'PUSH '
DEFB 0CFH,009H,1DH,'ADD '
DEFB 0FFH,023H,1BH,'INC '
DEFB 0FFH,02BH,1BH,'DEC '
DEFB 0FFH,034H,1EH,'INC '
DEFB 0FFH,035H,1EH,'DEC '
DEFB 0FFH,086H,1EH,'ADD A,'
DEFB 0FFH,08EH,1EH,'ADC A,'
DEFB 0FFH,096H,1EH,'SUB '
DEFB 0FFH,09EH,1EH,'SBC A,'
DEFB 0FFH,0A6H,1EH,'AND '
DEFB 0FFH,0AEH,1EH,'XOR '
DEFB 0FFH,0B6H,1EH,'OR '
DEFB 0FFH,0BEH,1EH,'CP '
DEFB 0C7H,046H,1FH,'LD '
DEFB 0F8H,070H,20H,'LD '
DEFB 0FFH,021H,21H,'LD '
DEFB 0FFH,022H,22H,'LD '
DEFB 0FFH,02AH,23H,'LD '
DEFB 0FFH,036H,24H,'LD '
DEFB 0FFH,0CBH,25H,0,0
DEFB 080H,000H,2AH,0,0
DEFB 080H,080H,2AH
OPC4:
DEFB 0FEH,070H,2AH,0,0;PREVENTS 'IN (HL),(C)'
DEFB 0FFH,044H,00H,'NEG'
DEFB 0FFH,045H,00H,'RETN'
DEFB 0FFH,046H,00H,'IM 0'
DEFB 0FFH,056H,00H,'IM 1'
DEFB 0FFH,05EH,00H,'IM 2'
DEFB 0FFH,047H,00H,'LD I,A'
DEFB 0FFH,04DH,00H,'RETI'
DEFB 0FFH,04FH,00H,'LD R,A'
DEFB 0FFH,057H,00H,'LD A,I'
DEFB 0FFH,05FH,00H,'LD A,R'
DEFB 0FFH,067H,00H,'RRD'
DEFB 0FFH,06FH,00H,'RLD'
DEFB 0CFH,042H,03H,'SBC HL,'
DEFB 0CFH,04AH,03H,'ADC HL,'
DEFB 0C7H,040H,26H,'IN '
DEFB 0C7H,041H,02H,'OUT (C),'
DEFB 0E7H,0A0H,27H,'LD'
DEFB 0E7H,0A1H,27H,'CP'
DEFB 0E7H,0A2H,27H,'IN'
DEFB 0F7H,0A3H,27H,'OUT'
DEFB 0F7H,0B3H,27H,'OT'
DEFB 0CFH,043H,28H,'LD '
DEFB 0CFH,04BH,29H,'LD '
DEFB 080H,000H,2AH,0,0
DEFB 080H,080H,2AH
;
; END OF OPCODE TABLE
;