home *** CD-ROM | disk | FTP | other *** search
Text File | 1984-04-29 | 15.1 KB | 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
- ;
-