Mercurial > repos > blastem
annotate z80inst.c @ 202:693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 21 Jan 2013 21:59:09 -0800 |
parents | 2d2fa345e1fc |
children | 0ae589d4c3f9 |
rev | line source |
---|---|
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
1 #include "z80inst.h" |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
2 #include <string.h> |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
3 #include <stdio.h> |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
4 |
202
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
5 #define NOP {Z80_NOP, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 1} |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
6 #define NOP2 {Z80_NOP, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 2} |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
7 |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
8 z80inst z80_tbl_a[256] = { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
9 //0 |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
10 NOP, |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
11 {Z80_LD, Z80_BC, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
12 {Z80_LD, Z80_A, Z80_REG_INDIRECT | Z80_DIR, Z80_BC, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
13 {Z80_INC, Z80_BC, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
14 {Z80_INC, Z80_B, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
15 {Z80_DEC, Z80_B, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
16 {Z80_LD, Z80_B, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
17 {Z80_RLC, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
18 {Z80_EX, Z80_AF, Z80_REG, Z80_AF, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
19 {Z80_ADD, Z80_HL, Z80_REG, Z80_BC, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
20 {Z80_LD, Z80_A, Z80_REG_INDIRECT, Z80_BC, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
21 {Z80_DEC, Z80_BC, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
22 {Z80_INC, Z80_C, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
23 {Z80_DEC, Z80_C, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
24 {Z80_LD, Z80_C, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
25 {Z80_RRC, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
26 //1 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
27 {Z80_DJNZ, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
28 {Z80_LD, Z80_DE, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
29 {Z80_LD, Z80_A, Z80_REG_INDIRECT | Z80_DIR, Z80_DE, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
30 {Z80_INC, Z80_DE, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
31 {Z80_INC, Z80_D, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
32 {Z80_DEC, Z80_D, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
33 {Z80_LD, Z80_D, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
34 {Z80_RL, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
35 {Z80_JR, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
36 {Z80_ADD, Z80_HL, Z80_REG, Z80_DE, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
37 {Z80_LD, Z80_A, Z80_REG_INDIRECT, Z80_DE, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
38 {Z80_DEC, Z80_DE, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
39 {Z80_INC, Z80_E, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
40 {Z80_DEC, Z80_E, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
41 {Z80_LD, Z80_E, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
42 {Z80_RR, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
43 //2 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
44 {Z80_JRCC, Z80_CC_NZ, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
45 {Z80_LD, Z80_HL, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
46 {Z80_LD, Z80_HL, Z80_IMMED_INDIRECT | Z80_DIR, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
47 {Z80_INC, Z80_HL, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
48 {Z80_INC, Z80_H, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
49 {Z80_DEC, Z80_H, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
50 {Z80_LD, Z80_H, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
51 {Z80_DAA, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
52 {Z80_JRCC, Z80_CC_Z, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
53 {Z80_ADD, Z80_HL, Z80_REG, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
54 {Z80_LD, Z80_HL, Z80_IMMED_INDIRECT, Z80_IMMED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
55 {Z80_DEC, Z80_HL, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
56 {Z80_INC, Z80_L, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
57 {Z80_DEC, Z80_L, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
58 {Z80_LD, Z80_L, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
59 {Z80_CPL, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
60 //3 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
61 {Z80_JRCC, Z80_CC_NC, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
62 {Z80_LD, Z80_SP, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
63 {Z80_LD, Z80_A, Z80_IMMED_INDIRECT | Z80_DIR, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
64 {Z80_INC, Z80_SP, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
65 {Z80_INC, Z80_UNUSED, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
66 {Z80_DEC, Z80_UNUSED, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
67 {Z80_LD, Z80_USE_IMMED, Z80_REG_INDIRECT | Z80_DIR, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
68 {Z80_SCF, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
69 {Z80_JRCC, Z80_CC_C, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
70 {Z80_ADD, Z80_HL, Z80_REG, Z80_SP, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
71 {Z80_LD, Z80_A, Z80_IMMED_INDIRECT, Z80_IMMED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
72 {Z80_DEC, Z80_SP, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
73 {Z80_INC, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
74 {Z80_DEC, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
75 {Z80_LD, Z80_A, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
76 {Z80_CCF, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
77 //4 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
78 {Z80_LD, Z80_B, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
79 {Z80_LD, Z80_B, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
80 {Z80_LD, Z80_B, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
81 {Z80_LD, Z80_B, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
82 {Z80_LD, Z80_B, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
83 {Z80_LD, Z80_B, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
84 {Z80_LD, Z80_B, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
85 {Z80_LD, Z80_B, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
86 {Z80_LD, Z80_C, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
87 {Z80_LD, Z80_C, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
88 {Z80_LD, Z80_C, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
89 {Z80_LD, Z80_C, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
90 {Z80_LD, Z80_C, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
91 {Z80_LD, Z80_C, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
92 {Z80_LD, Z80_C, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
93 {Z80_LD, Z80_C, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
94 //5 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
95 {Z80_LD, Z80_D, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
96 {Z80_LD, Z80_D, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
97 {Z80_LD, Z80_D, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
98 {Z80_LD, Z80_D, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
99 {Z80_LD, Z80_D, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
100 {Z80_LD, Z80_D, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
101 {Z80_LD, Z80_D, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
102 {Z80_LD, Z80_D, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
103 {Z80_LD, Z80_E, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
104 {Z80_LD, Z80_E, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
105 {Z80_LD, Z80_E, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
106 {Z80_LD, Z80_E, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
107 {Z80_LD, Z80_E, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
108 {Z80_LD, Z80_E, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
109 {Z80_LD, Z80_E, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
110 {Z80_LD, Z80_E, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
111 //6 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
112 {Z80_LD, Z80_H, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
113 {Z80_LD, Z80_H, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
114 {Z80_LD, Z80_H, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
115 {Z80_LD, Z80_H, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
116 {Z80_LD, Z80_H, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
117 {Z80_LD, Z80_H, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
118 {Z80_LD, Z80_H, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
119 {Z80_LD, Z80_H, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
120 {Z80_LD, Z80_L, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
121 {Z80_LD, Z80_L, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
122 {Z80_LD, Z80_L, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
123 {Z80_LD, Z80_L, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
124 {Z80_LD, Z80_L, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
125 {Z80_LD, Z80_L, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
126 {Z80_LD, Z80_L, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
127 {Z80_LD, Z80_L, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
128 //7 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
129 {Z80_LD, Z80_B, Z80_REG_INDIRECT | Z80_DIR, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
130 {Z80_LD, Z80_C, Z80_REG_INDIRECT | Z80_DIR, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
131 {Z80_LD, Z80_D, Z80_REG_INDIRECT | Z80_DIR, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
132 {Z80_LD, Z80_E, Z80_REG_INDIRECT | Z80_DIR, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
133 {Z80_LD, Z80_H, Z80_REG_INDIRECT | Z80_DIR, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
134 {Z80_LD, Z80_L, Z80_REG_INDIRECT | Z80_DIR, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
135 {Z80_HALT, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
136 {Z80_LD, Z80_A, Z80_REG_INDIRECT | Z80_DIR, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
137 {Z80_LD, Z80_A, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
138 {Z80_LD, Z80_A, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
139 {Z80_LD, Z80_A, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
140 {Z80_LD, Z80_A, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
141 {Z80_LD, Z80_A, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
142 {Z80_LD, Z80_A, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
143 {Z80_LD, Z80_A, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
144 {Z80_LD, Z80_A, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
145 //8 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
146 {Z80_ADD, Z80_A, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
147 {Z80_ADD, Z80_A, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
148 {Z80_ADD, Z80_A, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
149 {Z80_ADD, Z80_A, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
150 {Z80_ADD, Z80_A, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
151 {Z80_ADD, Z80_A, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
152 {Z80_ADD, Z80_A, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
153 {Z80_ADD, Z80_A, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
154 {Z80_ADC, Z80_A, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
155 {Z80_ADC, Z80_A, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
156 {Z80_ADC, Z80_A, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
157 {Z80_ADC, Z80_A, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
158 {Z80_ADC, Z80_A, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
159 {Z80_ADC, Z80_A, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
160 {Z80_ADC, Z80_A, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
161 {Z80_ADC, Z80_A, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
162 //9 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
163 {Z80_SUB, Z80_A, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
164 {Z80_SUB, Z80_A, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
165 {Z80_SUB, Z80_A, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
166 {Z80_SUB, Z80_A, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
167 {Z80_SUB, Z80_A, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
168 {Z80_SUB, Z80_A, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
169 {Z80_SUB, Z80_A, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
170 {Z80_SUB, Z80_A, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
171 {Z80_SBC, Z80_A, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
172 {Z80_SBC, Z80_A, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
173 {Z80_SBC, Z80_A, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
174 {Z80_SBC, Z80_A, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
175 {Z80_SBC, Z80_A, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
176 {Z80_SBC, Z80_A, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
177 {Z80_SBC, Z80_A, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
178 {Z80_SBC, Z80_A, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
179 //A |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
180 {Z80_AND, Z80_A, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
181 {Z80_AND, Z80_A, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
182 {Z80_AND, Z80_A, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
183 {Z80_AND, Z80_A, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
184 {Z80_AND, Z80_A, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
185 {Z80_AND, Z80_A, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
186 {Z80_AND, Z80_A, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
187 {Z80_AND, Z80_A, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
188 {Z80_XOR, Z80_A, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
189 {Z80_XOR, Z80_A, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
190 {Z80_XOR, Z80_A, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
191 {Z80_XOR, Z80_A, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
192 {Z80_XOR, Z80_A, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
193 {Z80_XOR, Z80_A, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
194 {Z80_XOR, Z80_A, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
195 {Z80_XOR, Z80_A, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
196 //B |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
197 {Z80_OR, Z80_A, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
198 {Z80_OR, Z80_A, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
199 {Z80_OR, Z80_A, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
200 {Z80_OR, Z80_A, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
201 {Z80_OR, Z80_A, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
202 {Z80_OR, Z80_A, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
203 {Z80_OR, Z80_A, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
204 {Z80_OR, Z80_A, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
205 {Z80_OR, Z80_CP, Z80_REG, Z80_B, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
206 {Z80_OR, Z80_CP, Z80_REG, Z80_C, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
207 {Z80_OR, Z80_CP, Z80_REG, Z80_D, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
208 {Z80_OR, Z80_CP, Z80_REG, Z80_E, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
209 {Z80_OR, Z80_CP, Z80_REG, Z80_H, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
210 {Z80_OR, Z80_CP, Z80_REG, Z80_L, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
211 {Z80_OR, Z80_CP, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
212 {Z80_OR, Z80_CP, Z80_REG, Z80_A, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
213 //C |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
214 {Z80_RETCC, Z80_CC_NZ, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
215 {Z80_POP, Z80_BC, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
216 {Z80_JPCC, Z80_CC_NZ, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
217 {Z80_JP, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
218 {Z80_CALLCC, Z80_CC_NZ, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
219 {Z80_PUSH, Z80_BC, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
220 {Z80_ADD, Z80_A, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
221 {Z80_RST, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0x0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
222 {Z80_RETCC, Z80_CC_Z, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
223 {Z80_RET, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
224 {Z80_JPCC, Z80_CC_Z, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
225 {0, 0, 0, 0, 0},//BITS Prefix |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
226 {Z80_CALLCC, Z80_CC_Z, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
227 {Z80_CALL, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
228 {Z80_ADC, Z80_A, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
229 {Z80_RST, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0x8}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
230 //D |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
231 {Z80_RETCC, Z80_CC_NC, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
232 {Z80_POP, Z80_DE, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
233 {Z80_JPCC, Z80_CC_NC, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
234 {Z80_OUT, Z80_A, Z80_IMMED_INDIRECT, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
235 {Z80_CALLCC, Z80_CC_NC, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
236 {Z80_PUSH, Z80_DE, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
237 {Z80_SUB, Z80_A, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
238 {Z80_RST, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0x10}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
239 {Z80_RETCC, Z80_CC_C, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
240 {Z80_EXX, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
241 {Z80_JPCC, Z80_CC_C, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
242 {Z80_IN, Z80_A, Z80_IMMED_INDIRECT, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
243 {Z80_CALLCC, Z80_CC_C, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
244 {0, 0, 0, 0, 0},//IX Prefix |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
245 {Z80_SBC, Z80_A, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
246 {Z80_RST, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0x18}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
247 //E |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
248 {Z80_RETCC, Z80_CC_PO, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
249 {Z80_POP, Z80_HL, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
250 {Z80_JPCC, Z80_CC_PO, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
251 {Z80_EX, Z80_HL, Z80_REG_INDIRECT | Z80_DIR, Z80_SP, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
252 {Z80_CALLCC, Z80_CC_PO, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
253 {Z80_PUSH, Z80_HL, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
254 {Z80_AND, Z80_A, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
255 {Z80_RST, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0x20}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
256 {Z80_RETCC, Z80_CC_PE, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
257 {Z80_JP, Z80_UNUSED, Z80_REG_INDIRECT, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
258 {Z80_JPCC, Z80_CC_PE, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
259 {Z80_EX, Z80_DE, Z80_REG, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
260 {Z80_CALLCC, Z80_CC_PE, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
261 {0, 0, 0, 0, 0},//EXTD Prefix |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
262 {Z80_XOR, Z80_A, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
263 {Z80_RST, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0x28}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
264 //F |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
265 {Z80_RETCC, Z80_CC_P, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
266 {Z80_POP, Z80_AF, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
267 {Z80_JPCC, Z80_CC_P, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
268 {Z80_DI, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
269 {Z80_CALLCC, Z80_CC_P, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
270 {Z80_PUSH, Z80_AF, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
271 {Z80_OR, Z80_A, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
272 {Z80_RST, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0x30}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
273 {Z80_RETCC, Z80_CC_M, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
274 {Z80_LD, Z80_SP, Z80_REG, Z80_HL, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
275 {Z80_JPCC, Z80_CC_M, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
276 {Z80_EI, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
277 {Z80_CALLCC, Z80_CC_M, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
278 {0, 0, 0, 0, 0},//IY Prefix |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
279 {Z80_CP, Z80_A, Z80_IMMED, Z80_UNUSED, 0}, |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
280 {Z80_RST, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0x38} |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
281 }; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
282 |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
283 z80inst z80_tbl_extd[0xC0-0x40] = { |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
284 //4 |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
285 {Z80_IN, Z80_B, Z80_REG_INDIRECT, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
286 {Z80_OUT, Z80_B, Z80_REG_INDIRECT | Z80_DIR, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
287 {Z80_SBC, Z80_HL, Z80_REG, Z80_BC, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
288 {Z80_LD, Z80_BC, Z80_IMMED_INDIRECT | Z80_DIR, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
289 {Z80_NEG, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
290 {Z80_RETN, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
291 {Z80_IM, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
292 {Z80_LD, Z80_I, Z80_REG, Z80_A, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
293 {Z80_IN, Z80_C, Z80_REG_INDIRECT, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
294 {Z80_OUT, Z80_C, Z80_REG_INDIRECT | Z80_DIR, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
295 {Z80_ADC, Z80_HL, Z80_REG, Z80_BC, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
296 {Z80_LD, Z80_BC, Z80_IMMED_INDIRECT, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
297 {Z80_NEG, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
298 {Z80_RETI, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
299 {Z80_IM, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 3},//Set undocumented mode 0/1 |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
300 {Z80_LD, Z80_R, Z80_REG, Z80_A, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
301 //5 |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
302 {Z80_IN, Z80_D, Z80_REG_INDIRECT, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
303 {Z80_OUT, Z80_D, Z80_REG_INDIRECT | Z80_DIR, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
304 {Z80_SBC, Z80_HL, Z80_REG, Z80_DE, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
305 {Z80_LD, Z80_DE, Z80_IMMED_INDIRECT | Z80_DIR, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
306 {Z80_NEG, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
307 {Z80_RETN, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
308 {Z80_IM, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 1}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
309 {Z80_LD, Z80_A, Z80_REG, Z80_I, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
310 {Z80_IN, Z80_E, Z80_REG_INDIRECT, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
311 {Z80_OUT, Z80_E, Z80_REG_INDIRECT | Z80_DIR, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
312 {Z80_ADC, Z80_HL, Z80_REG, Z80_DE, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
313 {Z80_LD, Z80_DE, Z80_IMMED_INDIRECT, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
314 {Z80_NEG, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
315 {Z80_RETN, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
316 {Z80_IM, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 2}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
317 {Z80_LD, Z80_A, Z80_REG, Z80_R, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
318 //6 |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
319 {Z80_IN, Z80_H, Z80_REG_INDIRECT, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
320 {Z80_OUT, Z80_H, Z80_REG_INDIRECT | Z80_DIR, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
321 {Z80_SBC, Z80_HL, Z80_REG, Z80_HL, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
322 {Z80_LD, Z80_HL, Z80_IMMED_INDIRECT | Z80_DIR, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
323 {Z80_NEG, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
324 {Z80_RETN, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
325 {Z80_IM, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
326 {Z80_RRD, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
327 {Z80_IN, Z80_L, Z80_REG_INDIRECT, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
328 {Z80_OUT, Z80_L, Z80_REG_INDIRECT | Z80_DIR, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
329 {Z80_ADC, Z80_HL, Z80_REG, Z80_HL, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
330 {Z80_LD, Z80_HL, Z80_IMMED_INDIRECT, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
331 {Z80_NEG, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
332 {Z80_RETN, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
333 {Z80_IM, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 3},//Set undocumented mode 0/1 |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
334 {Z80_RLD, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
335 //7 |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
336 {Z80_IN, Z80_UNUSED, Z80_REG_INDIRECT, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
337 {Z80_OUT, Z80_USE_IMMED, Z80_REG_INDIRECT | Z80_DIR, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
338 {Z80_SBC, Z80_HL, Z80_REG, Z80_SP, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
339 {Z80_LD, Z80_SP, Z80_IMMED_INDIRECT | Z80_DIR, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
340 {Z80_NEG, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
341 {Z80_RETN, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
342 {Z80_IM, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 1}, |
202
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
343 NOP2, |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
344 {Z80_IN, Z80_A, Z80_REG_INDIRECT, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
345 {Z80_OUT, Z80_A, Z80_REG_INDIRECT | Z80_DIR, Z80_C, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
346 {Z80_ADC, Z80_HL, Z80_REG, Z80_SP, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
347 {Z80_LD, Z80_SP, Z80_IMMED_INDIRECT, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
348 {Z80_NEG, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
349 {Z80_RETN, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
350 {Z80_IM, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 2}, |
202
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
351 NOP2, |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
352 //8 |
202
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
353 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
354 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
355 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
356 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
357 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
358 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
359 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
360 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
361 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
362 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
363 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
364 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
365 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
366 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
367 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
368 NOP2, |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
369 //9 |
202
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
370 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
371 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
372 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
373 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
374 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
375 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
376 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
377 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
378 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
379 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
380 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
381 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
382 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
383 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
384 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
385 NOP2, |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
386 //A |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
387 {Z80_LDI, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
388 {Z80_CPI, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
389 {Z80_INI, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
390 {Z80_OUTI, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
202
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
391 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
392 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
393 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
394 NOP2, |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
395 {Z80_LDD, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
396 {Z80_CPD, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
397 {Z80_IND, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
398 {Z80_OUTD, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
202
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
399 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
400 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
401 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
402 NOP2, |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
403 //B |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
404 {Z80_LDIR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
405 {Z80_CPIR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
406 {Z80_INIR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
407 {Z80_OTIR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
202
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
408 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
409 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
410 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
411 NOP2, |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
412 {Z80_LDDR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
413 {Z80_CPDR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
414 {Z80_INDR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
415 {Z80_OTDR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, |
202
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
416 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
417 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
418 NOP2, |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
419 NOP2 |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
420 }; |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
421 |
201
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
422 #define SHIFT_BLOCK(op) \ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
423 {op, Z80_B, Z80_UNUSED, Z80_UNUSED, 0},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
424 {op, Z80_C, Z80_UNUSED, Z80_UNUSED, 0},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
425 {op, Z80_D, Z80_UNUSED, Z80_UNUSED, 0},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
426 {op, Z80_E, Z80_UNUSED, Z80_UNUSED, 0},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
427 {op, Z80_H, Z80_UNUSED, Z80_UNUSED, 0},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
428 {op, Z80_L, Z80_UNUSED, Z80_UNUSED, 0},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
429 {op, Z80_UNUSED, Z80_REG_INDIRECT, Z80_HL, 0},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
430 {op, Z80_A, Z80_UNUSED, Z80_UNUSED, 0} |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
431 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
432 #define BIT_BLOCK(op, bit) \ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
433 {op, Z80_USE_IMMED, Z80_REG, Z80_B, bit},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
434 {op, Z80_USE_IMMED, Z80_REG, Z80_C, bit},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
435 {op, Z80_USE_IMMED, Z80_REG, Z80_D, bit},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
436 {op, Z80_USE_IMMED, Z80_REG, Z80_E, bit},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
437 {op, Z80_USE_IMMED, Z80_REG, Z80_H, bit},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
438 {op, Z80_USE_IMMED, Z80_REG, Z80_L, bit},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
439 {op, Z80_USE_IMMED, Z80_REG_INDIRECT, Z80_HL, bit},\ |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
440 {op, Z80_USE_IMMED, Z80_REG, Z80_A, bit} |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
441 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
442 z80inst z80_tbl_bit[256] = { |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
443 //0 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
444 SHIFT_BLOCK(Z80_RLC), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
445 SHIFT_BLOCK(Z80_RRC), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
446 //1 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
447 SHIFT_BLOCK(Z80_RL), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
448 SHIFT_BLOCK(Z80_RR), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
449 //2 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
450 SHIFT_BLOCK(Z80_SLA), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
451 SHIFT_BLOCK(Z80_SRA), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
452 //3 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
453 SHIFT_BLOCK(Z80_SLL), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
454 SHIFT_BLOCK(Z80_SRL), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
455 //4 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
456 BIT_BLOCK(Z80_BIT, 0), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
457 BIT_BLOCK(Z80_BIT, 1), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
458 //5 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
459 BIT_BLOCK(Z80_BIT, 2), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
460 BIT_BLOCK(Z80_BIT, 3), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
461 //6 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
462 BIT_BLOCK(Z80_BIT, 4), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
463 BIT_BLOCK(Z80_BIT, 5), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
464 //7 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
465 BIT_BLOCK(Z80_BIT, 6), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
466 BIT_BLOCK(Z80_BIT, 7), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
467 //8 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
468 BIT_BLOCK(Z80_RES, 0), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
469 BIT_BLOCK(Z80_RES, 1), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
470 //9 |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
471 BIT_BLOCK(Z80_RES, 2), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
472 BIT_BLOCK(Z80_RES, 3), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
473 //A |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
474 BIT_BLOCK(Z80_RES, 4), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
475 BIT_BLOCK(Z80_RES, 5), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
476 //B |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
477 BIT_BLOCK(Z80_RES, 6), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
478 BIT_BLOCK(Z80_RES, 7), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
479 //C |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
480 BIT_BLOCK(Z80_SET, 0), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
481 BIT_BLOCK(Z80_SET, 1), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
482 //D |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
483 BIT_BLOCK(Z80_SET, 2), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
484 BIT_BLOCK(Z80_SET, 3), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
485 //E |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
486 BIT_BLOCK(Z80_SET, 4), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
487 BIT_BLOCK(Z80_SET, 5), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
488 //F |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
489 BIT_BLOCK(Z80_SET, 6), |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
490 BIT_BLOCK(Z80_SET, 7) |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
491 }; |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
492 |
202
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
493 z80inst z80_tbl_ix[256 |
693ad04b965e
Distinguish between 1-byte and 2-byte NOPs
Mike Pavone <pavone@retrodev.com>
parents:
201
diff
changeset
|
494 |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
495 uint8_t * z80_decode(uint8_t * istream, z80inst * decoded) |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
496 { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
497 if (*istream == 0xCB) { |
201
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
498 istream++; |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
499 memcpy(decoded, z80_tbl_bit + *istream, sizeof(z80inst)); |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
500 } else if (*istream == 0xDD) { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
501 } else if (*istream == 0xED) { |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
502 istream++; |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
503 if (*istream < 0x40 || *istream >= 0xC0) { |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
504 memcpy(decoded, z80_tbl_extd + 0xBF, sizeof(z80inst)); |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
505 } else { |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
506 memcpy(decoded, z80_tbl_extd + *istream-0x40, sizeof(z80inst)); |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
507 } |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
508 } else if (*istream == 0xFD) { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
509 } else { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
510 memcpy(decoded, z80_tbl_a + *istream, sizeof(z80inst)); |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
511 |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
512 } |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
513 if ((decoded->addr_mode & 0xF) == Z80_IMMED && decoded->op != Z80_RST && decoded->op != Z80_IM) { |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
514 decoded->immed = *(++istream); |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
515 if (decoded->reg >= Z80_BC && decoded->reg < Z80_USE_IMMED) { |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
516 decoded->immed |= *(++istream) << 8; |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
517 } else if (decoded->immed & 0x80) { |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
518 decoded->immed |= 0xFF00; |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
519 } |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
520 } else if ((decoded->addr_mode & 0xF) == Z80_IMMED_INDIRECT) { |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
521 decoded->immed = *(++istream); |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
522 if (decoded->op != Z80_OUT && decoded->op != Z80_IN) { |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
523 decoded->immed |= *(++istream) << 8; |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
524 } |
201
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
525 } else if (decoded->reg == Z80_USE_IMMED && decoded->op != Z80_BIT && decoded->op != Z80_RES && decoded->op != Z80_SET) { |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
526 decoded->immed = *(++istream); |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
527 } |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
528 return istream+1; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
529 } |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
530 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
531 char *z80_mnemonics[Z80_OTDR+1] = { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
532 "ld", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
533 "push", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
534 "pop", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
535 "ex", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
536 "exx", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
537 "ldi", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
538 "ldir", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
539 "ldd", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
540 "lddr", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
541 "cpi", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
542 "cpir", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
543 "cpd", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
544 "cpdr", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
545 "add", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
546 "adc", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
547 "sub", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
548 "sbc", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
549 "and", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
550 "or", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
551 "xor", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
552 "cp", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
553 "inc", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
554 "dec", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
555 "daa", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
556 "cpl", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
557 "neg", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
558 "ccf", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
559 "scf", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
560 "nop", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
561 "halt", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
562 "di", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
563 "ei", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
564 "im", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
565 "rlc", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
566 "rl", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
567 "rrc", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
568 "rr", |
201
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
569 "sla", |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
570 "sra", |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
571 "sll", |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
572 "srl", |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
573 "rld", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
574 "rrd", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
575 "bit", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
576 "set", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
577 "res", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
578 "jp", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
579 "jp", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
580 "jr", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
581 "jr", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
582 "djnz", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
583 "call", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
584 "call", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
585 "ret", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
586 "ret", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
587 "reti", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
588 "retn", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
589 "rst", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
590 "in", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
591 "ini", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
592 "inir", |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
593 "ind", |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
594 "indr", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
595 "out", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
596 "outi", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
597 "otir", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
598 "outd", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
599 "otdr" |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
600 }; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
601 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
602 char * z80_regs[Z80_USE_IMMED] = { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
603 "b", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
604 "c", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
605 "d", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
606 "e", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
607 "h", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
608 "l", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
609 "", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
610 "a", |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
611 "i", |
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
612 "r", |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
613 "bc", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
614 "de", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
615 "hl", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
616 "sp", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
617 "af", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
618 }; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
619 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
620 char * z80_conditions[Z80_CC_M+1] = { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
621 "nz", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
622 "z", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
623 "nc", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
624 "c", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
625 "po", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
626 "pe", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
627 "p", |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
628 "m" |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
629 }; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
630 |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
631 int z80_disasm(z80inst * decoded, char * dst) |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
632 { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
633 int len = sprintf(dst, "%s", z80_mnemonics[decoded->op]); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
634 if (decoded->addr_mode & Z80_DIR) { |
200
d3066ceb29d1
Add support for EXTD group 2-byte Z80 instructions in decoder
Mike Pavone <pavone@retrodev.com>
parents:
199
diff
changeset
|
635 switch (decoded->addr_mode & 0xF) |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
636 { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
637 case Z80_REG: |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
638 len += sprintf(dst+len, " %s", z80_regs[decoded->ea_reg]); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
639 break; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
640 case Z80_REG_INDIRECT: |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
641 len += sprintf(dst+len, " (%s)", z80_regs[decoded->ea_reg]); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
642 break; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
643 case Z80_IMMED: |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
644 len += sprintf(dst+len, " %d", decoded->immed); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
645 break; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
646 case Z80_IMMED_INDIRECT: |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
647 len += sprintf(dst+len, " (%d)", decoded->immed); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
648 break; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
649 } |
201
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
650 if (decoded->reg == Z80_USE_IMMED) { |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
651 len += sprintf(dst+len, " %d", decoded->immed); |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
652 } else if (decoded->reg != Z80_UNUSED) { |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
653 if (decoded->op == Z80_JRCC || decoded->op == Z80_JPCC || decoded->op == Z80_CALLCC || decoded->op == Z80_RETCC) { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
654 len += sprintf(dst+len, "%s %s", decoded->reg == Z80_UNUSED ? "" : "," , z80_conditions[decoded->reg]); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
655 } else { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
656 len += sprintf(dst+len, "%s %s", decoded->reg == Z80_UNUSED ? "" : "," , z80_regs[decoded->reg]); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
657 } |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
658 } |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
659 } else { |
201
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
660 if (decoded->reg == Z80_USE_IMMED) { |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
661 len += sprintf(dst+len, " %d", decoded->immed); |
2d2fa345e1fc
Add support for bit instructions to decoder
Mike Pavone <pavone@retrodev.com>
parents:
200
diff
changeset
|
662 } else if (decoded->reg != Z80_UNUSED) { |
199
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
663 if (decoded->op == Z80_JRCC || decoded->op == Z80_JPCC || decoded->op == Z80_CALLCC || decoded->op == Z80_RETCC) { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
664 len += sprintf(dst+len, " %s", z80_conditions[decoded->reg]); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
665 } else { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
666 len += sprintf(dst+len, " %s", z80_regs[decoded->reg]); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
667 } |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
668 } |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
669 switch (decoded->addr_mode) |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
670 { |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
671 case Z80_REG: |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
672 len += sprintf(dst+len, "%s %s", decoded->reg == Z80_UNUSED ? "" : "," , z80_regs[decoded->ea_reg]); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
673 break; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
674 case Z80_REG_INDIRECT: |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
675 len += sprintf(dst+len, "%s (%s)", decoded->reg == Z80_UNUSED ? "" : "," , z80_regs[decoded->ea_reg]); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
676 break; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
677 case Z80_IMMED: |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
678 len += sprintf(dst+len, "%s %d", decoded->reg == Z80_UNUSED ? "" : "," , decoded->immed); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
679 break; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
680 case Z80_IMMED_INDIRECT: |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
681 len += sprintf(dst+len, "%s (%d)", decoded->reg == Z80_UNUSED ? "" : "," , decoded->immed); |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
682 break; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
683 } |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
684 } |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
685 return len; |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
686 } |
69585e7d474f
Add initial stab at Z80 decoder and disassembler
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
687 |