zymosis: renamed "SLL" to "SLS"
[zymosis.git] / src / libzymosis / dox / decode.txt
blobc574f668442b86490a2c3a3e55664913ce30bff8
1 00 00y 000 -- special
2 00 01g 000 -- DJNZ/JR
3 00 1cc 000 -- JR  cc,n
4 00 rr0 001 -- LD  rr,nn
5 00 rr1 001 -- ADD HL,rr
6 00 000 010 -- LD  (BC),A
7 00 001 010 -- LD  A,(BC)
8 00 010 010 -- LD  (DE),A
9 00 011 010 -- LD  A,(DE)
10 00 100 010 -- LD  (nn),HL
11 00 101 010 -- LD  HL,(nn)
12 00 110 010 -- LD  (nn),A
13 00 111 010 -- LD  A,(nn)
14 00 rr0 011 -- INC rr
15 00 rr1 011 -- DEC rr
16 00 rrr 100 -- INC r8
17 00 rrr 101 -- DEC r8
18 00 rrr 110 -- LD  r8,n
19 00 xxx 111 -- special
22  0 - NOP
23  1 - EX AF,AF'
25  0 - DJNZ
26  1 - JR
27 cc:
28  00 - NZ
29  01 - Z
30  10 - NC
31  11 - C
32 xxx:
33  000 - RLCA
34  001 - RRCA
35  010 - RLA
36  011 - RRA
37  100 - DAA
38  101 - CPL
39  110 - SCF
40  111 - CCF
41 rrr:
42  000 - B
43  001 - C
44  010 - D
45  011 - E
46  100 - H
47  101 - L
48  110 - (HL)
49  111 - A
50 rr:
51  00 - BC
52  01 - DE
53  10 - HL
54  11 - SP
56 ---------------------------------
58 01 rrr rrr - LD r8,r8 (lo: src)
60 ---------------------------------
62 10 alu rrr - ALU a,r8
63 alu:
64  000 - ADD
65  001 - ADC
66  010 - SUB
67  011 - SBC
68  100 - AND
69  101 - XOR
70  110 - OR
71  111 - CP
73 ---------------------------------
75 11 ccc 000 -- RET  cc
76 11 rr0 001 -- POP  rr
77 11 xx1 001 -- special0
78 11 ccc 010 -- JP   cc,nn
79 11 yyy 011 -- special1
80 11 ccc 100 -- CALL cc,nn
81 11 rr0 101 -- PUSH rr
82 11 zz1 101 -- special2
83 11 alu 110 -- alu  A,n
84 11 aaa 111 -- RST  nnn
86 rr:
87  00 - BC
88  01 - DE
89  10 - HL
90  11 - AF
91 aaa: RST addr=aaa<<3
92 ccc:
93   000 - NZ
94   001 - Z
95   010 - NC
96   011 - C
97   100 - PO
98   101 - PE
99   110 - P
100   111 - M
101 alu:
102  000 - ADD
103  001 - ADC
104  010 - SUB
105  011 - SBC
106  100 - AND
107  101 - XOR
108  110 - OR
109  111 - CP
111   00 - RET
112   01 - EXX
113   10 - JP HL
114   11 - LD SP,HL
115 yyy:
116   000 - JP  nn
117   001 - CB
118   010 - OUT (n),A
119   011 - IN  A,(n)
120   100 - EX  (SP),HL
121   101 - EX  DE,HL
122   110 - DI
123   111 - EI
125   00 - CALL nn
126   01 - DD
127   10 - ED
128   11 - FD
131 ---------------------------------
134 01 rrr 000 -- IN  r8,(C)
135 01 rrr 001 -- OUT (C),r8
136 01 rr0 010 -- SBC HL,rr
137 01 rr1 010 -- ADC HL,rr
138 01 rr0 011 -- LD  (nn),rr
139 01 rr1 011 -- LD  rr,(nn)
141 01 000 100 -- NEG
142 01 001 100 -- NEG
143 01 010 100 -- NEG
144 01 011 100 -- NEG
145 01 100 100 -- NEG
146 01 101 100 -- NEG
147 01 110 100 -- NEG
148 01 111 100 -- NEG
150 01 000 101 -- RETN
151 01 001 101 -- RETI
152 01 010 101 -- RETN
153 01 011 101 -- RETI
154 01 100 101 -- RETN
155 01 101 101 -- RETI
156 01 110 101 -- RETN
157 01 111 101 -- RETI
159 01 000 110 -- IM 0
160 01 001 110 -- IM 0/1
161 01 010 110 -- IM 1
162 01 011 110 -- IM 2
163 01 100 110 -- IM 0
164 01 101 110 -- IM 0
165 01 111 110 -- IM 2
167 01 000 111 -- LD I,A
168 01 001 111 -- LD R,A
169 01 010 111 -- LD A,I
170 01 011 111 -- LD A,R
171 01 100 111 -- RRD
172 01 101 111 -- RLD
173 01 110 111 -- NOP
174 01 111 111 -- NOP
177 10 1rd 0tt
178 r: repeating instruction? (1: yes)
179 d: direction (0:inc; 1:dec)
180 tt: instruction type
181   00: LD
182   01: CP
183   10: IN
184   11: OUT
186 10 100 000 -- LDI
187 10 110 000 -- LDIR
188 10 101 000 -- LDD
189 10 111 000 -- LDDR
191 10 100 001 -- CPI
192 10 110 001 -- CPIR
193 10 101 001 -- CPD
194 10 111 001 -- CPDR
196 10 100 010 -- INI
197 10 110 010 -- INIR
198 10 101 010 -- IND
199 10 111 010 -- INDR
201 10 100 011 -- OUTI
202 10 110 011 -- OTIR
203 10 101 011 -- OUTD
204 10 111 011 -- OTDR
207 ---------------------------------
209 zz xxx rrr
211 rrr: the usual r8
214   00 -- see below
215   01 -- BIT n, r8
216   10 -- RES n, r8
217   11 -- SET n, r8
219 for bitops, xxx is bit number
221 xxx:
222   000 - RLC r8
223   001 - RRC r8
224   010 - RL r8
225   011 - RR r8
226   100 - SLA r8
227   101 - SRA r8
228   110 - SLS r8
229   111 - SRL r8
231 for DD/FD prefix, 3rd byte is always disp,
232 and the result is always written to (I<X|Y>+disp)