]> cloudbase.mooo.com Git - ddt180.git/blobdiff - ddt180.z80
Reorg dissassembler tables 4 (wip)
[ddt180.git] / ddt180.z80
index 1bc4e1d0c38a842183a8b2360e8c645d31b647d4..5e17667aa124973a22d8d89b1d78ecba4f75729e 100644 (file)
@@ -2683,6 +2683,9 @@ lookup_opc:
 l1aa8h:\r
        inc hl\r
        ld c,(hl)\r
+       inc c\r
+       ret z\r
+       dec c\r
        inc hl\r
        ld e,(hl)\r
        inc hl\r
@@ -2717,7 +2720,7 @@ b_1ab6_start:
 \r
 ; 1 byte opcodes\r
 ; Format: db mask, match, t_MNEMONICS-index\r
-;        dw argument formating fuction\r
+;        dw argument formating function\r
 b_1ad1_start:\r
        db 0c0h,040h,o_LD       ;ld r,r\r
        dw p_arg_r_r\r
@@ -2763,7 +2766,7 @@ b_1ad1_start:
        dw p_arg_r\r
        db 0ffh,008h,o_EX       ;ex af,af'\r
        dw p_arg_ex_afaf\r
-       db 0cfh,009h,003h       ;add hl,rr\r
+       db 0cfh,009h,o_ADD      ;add hl,rr\r
        dw l1cd3h\r
        db 0efh,002h,o_LD       ;ld (rr),a ;rr=bc,de\r
        dw l1cdch\r
@@ -2857,17 +2860,13 @@ b_1bc9_start:
        db 0ffh                 ;<end mark>\r
 \r
 b_1bf4_start:\r
-       db 0e7h,040h,o_IN       ;in r,(c) ;r=b,c,d,e\r
-       dw p_arg_in_c           ;\r
-       db 0f7h,060h,o_IN       ;in r,(c) ;r=h,l\r
+       db 0ffh,070h,0ffh       ;in (c)    ;\r
        dw p_arg_in_c           ;\r
-       db 0ffh,078h,o_IN       ;in r,(c) ;r=a\r
+       db 0c7h,040h,o_IN       ;in r,(c)  ;r=b,c,d,e,h,l,a\r
        dw p_arg_in_c           ;\r
-       db 0e7h,041h,o_OUT      ;out (c),r ;r=b,c,d,e\r
-       dw p_arg_out_c          ;\r
-       db 0f7h,061h,o_OUT      ;out (c),r ;r=h,l\r
+       db 0ffh,071h,0ffh       ;out (c),0 ;\r
        dw p_arg_out_c          ;\r
-       db 0ffh,079h,o_OUT      ;out (c),r ;r=a\r
+       db 0c7h,041h,o_OUT      ;out (c),r ;r=b,c,d,e,h,l,a\r
        dw p_arg_out_c          ;\r
        db 0cfh,042h,o_SBC      ;sbc hl,rr\r
        dw l1dcah               ;\r
@@ -2888,17 +2887,13 @@ b_1bf4_start:
        db 0\r
 \r
 l228bh:\r
-       db 0e7h,000h,o_IN       ;in0 r,(m) ;r=b,c,d,e\r
+       db 0ffh,030h,0ffh       ;in0 (m)\r
        dw p_arg_r_m\r
-       db 0f7h,020h,o_IN       ;in0 r,(m) ;r=h,l\r
+       db 0c7h,000h,o_IN       ;in0 r,(m) ;r=b,c,d,e,h,l,a\r
        dw p_arg_r_m\r
-       db 0ffh,038h,o_IN       ;in0 a,(m)\r
-       dw p_arg_r_m\r
-       db 0e7h,001h,o_OUT0     ;out0 (m),r ;r=b,c,d,e\r
-       dw p_arg_m_r\r
-       db 0f7h,021h,o_OUT0     ;out0 (m),r ;r=h,l\r
+       db 0ffh,031h,0ffh       ;out0 (m),0\r
        dw p_arg_m_r\r
-       db 0ffh,039h,o_OUT0     ;out0 (m),a\r
+       db 0ech,001h,o_OUT0     ;out0 (m),r ;r=b,c,d,e\r
        dw p_arg_m_r\r
        db 0ffh,064h,o_TST      ;tst m\r
        dw l1d09h\r
@@ -2906,14 +2901,13 @@ l228bh:
        dw l1d09h\r
        db 0\r
 \r
+; Prefix ED + 1 byte opcode + 2 byte address\r
+; Format: db mask, match, t_MNEMONICS-index\r
+;        dw argument formating function\r
 b_1c40_start:\r
-       db 0efh,043h,o_LD       ;ld (mn),ww     ;ww=bc,de\r
-       dw p_arg_addr_ww\r
-       db 0ffh,073h,o_LD       ;ld (mn),sp\r
+       db 0cfh,043h,o_LD       ;ld (mn),ww     ;ww=bc,de,hl,sp\r
        dw p_arg_addr_ww\r
-       db 0efh,04bh,o_LD       ;ld ww,(mn)     ;ww=bc,de\r
-       dw p_arg_ww_addr\r
-       db 0ffh,07bh,o_LD       ;ld sp,(mn)\r
+       db 0cfh,04bh,o_LD       ;ld ww,(mn)     ;ww=bc,de,hl,sp\r
        dw p_arg_ww_addr\r
        db 0\r
 \r
@@ -3239,6 +3233,7 @@ p_arg_hlixiy:
        ld a,(isprefix_ixiy)\r
        ld hl,t_HL.IX.IY\r
        jr p_arg\r
+\r
 p_arg_zz:\r
        ld hl,t_BC.DE.HL.AF\r
        jr l1e8eh\r
@@ -3268,6 +3263,19 @@ p_arg:
 p_arg0:\r
        jp pstr_sel\r
 \r
+if 0\r
+p_bli:\r
+       ld a,(iy+000h)\r
+       rra\r
+       and 00ch\r
+       ld b,a\r
+       ld a,(iy+000h)\r
+       and 003h\r
+       or b\r
+       ld hl,t_mn_bli\r
+       jr p_arg\r
+endif\r
+\r
 ;-------------------------------------------------------------------------------\r
 \r
 opc_index      defl    0\r
@@ -3285,83 +3293,98 @@ opc_offset      defl    opc_offset+$-pos
 \r
 \r
 t_MNEMONICS:\r
-       opc ADC\r
-       opc ADD\r
-       opc AND\r
-       opc BIT\r
-       opc CALL\r
-       opc CCF\r
-       opc CP\r
-       opc CPD\r
-       opc CPDR\r
-       opc CPI\r
-       opc CPIR\r
-       opc CPL\r
-       opc DAA\r
+; 1-byte other\r
+       opc NOP\r
+       opc LD\r
+       opc INC\r
        opc DEC\r
-       opc DI\r
        opc DJNZ\r
-       opc EI\r
-       opc EX\r
-       opc EXX\r
-       opc HALT\r
-       opc IM\r
-       opc IN\r
-       opc INC\r
-       opc IND\r
-       opc INDR\r
-       opc INI\r
-       opc INIR\r
-       opc JP\r
        opc JR\r
-       opc LD\r
-       opc LDD\r
-       opc LDDR\r
-       opc LDI\r
-       opc LDIR\r
-       opc NEG\r
-       opc NOP\r
+       opc HALT\r
+\r
+       opc RLCA\r
+       opc RRCA\r
+       opc RLA\r
+       opc RRA\r
+       opc DAA\r
+       opc CPL\r
+       opc SCF\r
+       opc CCF\r
+\r
+; 1-byte "alu"\r
+       opc ADD\r
+       opc ADC\r
+       opc SUB\r
+       opc SBC\r
+       opc AND\r
+       opc XOR\r
        opc OR\r
-       opc OTDR\r
-       opc OTIR\r
-       opc OUT\r
-       opc OUTD\r
-       opc OUTI\r
+       opc CP\r
+\r
+       opc RET\r
        opc POP\r
+       opc JP\r
+       opc CALL\r
        opc PUSH\r
-       opc RES\r
-       opc RET\r
-       opc RETI\r
-       opc RETN\r
-       opc RL\r
-       opc RLA\r
+       opc RST\r
+       opc OUT\r
+       opc EXX\r
+       opc IN\r
+       opc EX\r
+       opc DI\r
+       opc EI\r
+; CB\r
        opc RLC\r
-       opc RLCA\r
-       opc RLD\r
-       opc RR\r
-       opc RRA\r
        opc RRC\r
-       opc RRCA\r
-       opc RRD\r
-       opc RST\r
-       opc SBC\r
-       opc SCF\r
-       opc SET\r
+       opc RL\r
+       opc RR\r
        opc SLA\r
        opc SRA\r
+;          SLL\r
        opc SRL\r
-       opc SUB\r
-       opc XOR\r
+       opc BIT\r
+       opc RES\r
+       opc SET\r
+\r
+; ED\r
+       opc NEG\r
+       opc RETN\r
+       opc RETI\r
+       opc IM\r
+       opc RRD\r
+       opc RLD\r
+\r
+;Block instructions\r
+t_mn_bli:\r
+       opc LDI\r
+       opc CPI\r
+       opc INI\r
+       opc OUTI\r
+       opc LDD\r
+       opc CPD\r
+       opc IND\r
+       opc OUTD\r
+       opc LDIR\r
+       opc CPIR\r
+       opc INIR\r
+       opc OTIR\r
+       opc LDDR\r
+       opc CPDR\r
+       opc INDR\r
+       opc OTDR\r
+\r
+;Z180\r
        opc IN0\r
-       opc MLT\r
-       opc OTDM\r
-       opc OTDMR\r
-       opc OTIM\r
-       opc OTIMR\r
        opc OUT0\r
-       opc SLP\r
        opc TST\r
+       opc MLT\r
        opc TSTIO\r
+       opc SLP\r
+       opc OTIM\r
+       opc OTDM\r
+       opc OTIMR\r
+       opc OTDMR\r
+\r
        DB      0\r
 \r
 t_BCDEHL_HL_A:\r