This repository was archived by the owner on Nov 22, 2023. It is now read-only.
forked from larsbrinkhoff/awesome-cpus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheZ80_OpList.txt
286 lines (280 loc) · 20.4 KB
/
eZ80_OpList.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
Full eZ80 Opcode List
=====================
File: http://mdfs.net/Docs.Comp.eZ80.OpList - Update: 0.11
Author: J.G.Harston - Date: 15-04-1998
nn nn DD nn CB nn FD CB dd nn ED nn
-----------------------------------------------------------------------------------
00 NOP - RLC B - IN0 B,(&00)
01 LD BC,&0000 - RLC C - OUT0 (&00),B
02 LD (BC),A - RLC D - LEA BC,IX+d
03 INC BC - RLC E - LEA BC,IY+d
04 INC B - RLC H - TST A,B
05 DEC B - RLC L - -
06 LD B,&00 - RLC (HL) RLC (IY+d) -
07 RLCA LD BC,(IX+d) RLC A - LD BC,(HL)
08 EX AF,AF' - RRC B - IN0 C,(&00)
09 ADD HL,BC ADD IX,BC RRC C - OUT0 (&00),C
0A LD A,(BC) - RRC D - -
0B DEC BC - RRC E - -
0C INC C - RRC H - TST A,C
0D DEC C - RRC L - -
0E LD C,&00 - RRC (HL) RRC (IY+d) -
0F RRCA LD (IX+d),BC RRC A - LD (HL),BC
10 DJNZ dist - RL B - IN0 D,(&00)
11 LD DE,&0000 - RL C - OUT0 (&00),D
12 LD (DE),A - RL D - LEA DE,IX+d
13 INC DE - RL E - LEA DE,IY+d
14 INC D - RL H - TST A,D
15 DEC D - RL L - -
16 LD D,&00 - RL (HL) RL (IY+d) -
17 RLA LD DE,(IX+d) RL A - LD DE,(HL)
18 JR dist - RR B - IN0 E,(&00)
19 ADD HL,DE ADD IX,DE RR C - OUT0 (&00),E
1A LD A,(DE) - RR D - -
1B DEC DE - RR E - -
1C INC E - RR H - TST A,E
1D DEC E - RR L - -
1E LD E,&00 - RR (HL) RR (IY+d) -
1F RRA LD (IX+d),DE RR A - LD (HL),DE
20 JR NZ,dist - SLA B - IN0 H,(&00)
21 LD HL,&0000 LD IX,&0000 SLA C - OUT0 (&00),H
22 LD (&0000),HL LD (&0000),IX SLA D - LEA HL,IX+d
23 INC HL INC IX SLA E - LEA HL,IY+d
24 INC H INC IXH SLA H - TST A,H
25 DEC H DEC IXH SLA L - -
26 LD H,&00 LD IXH,&00 SLA (HL) SLA (IY+d) -
27 DAA LD HL,(IX+d) SLA A - LD HL,(HL)
28 JR Z,dist - SRA B - IN0 L,(&00)
29 ADD HL,HL ADD IX,IX SRA C - OUT0 (&00),L
2A LD HL,(&0000) LD IX,(&0000) SRA D - -
2B DEC HL DEC IX SRA E - -
2C INC L INC IXL SRA H - TST A,L
2D DEC L DEC IXL SRA L - -
2E LD L,&00 LD IXL,&00 SRA (HL) SRA (IY+d) -
2F CPL LD (IX+d),HL SRA A - LD (HL),HL
30 JR NC,dist - - - -
31 LD SP,&0000 LD IY,(IX+d) - - -
32 LD (&0000),A - - - LEA IX,IX+d
33 INC SP - - - LEA IY,IY+d
34 INC (HL) INC (IX+d) - - TST A,(HL)
35 DEC (HL) DEC (IX+d) - - -
36 LD (HL),&00 LD (IX+d),&00 - - LD IY,(HL)
37 SCF LD IX,(IX+d) - - LD IX,(HL)
38 JR C,dist - SRL B - IN0 A,(&00)
39 ADD HL,SP ADD IX,SP SRL C - OUT0 (&00),A
3A LD A,(&0000) - SRL D - -
3B DEC SP - SRL E - -
3C INC A - SRL H - TST A,A
3D DEC A - SRL L - -
3E LD A,&00 LD (IX+d),IY SRL (HL) SRL (IY+d) LD (HL),IY
3F CCF LD (IX+d),IX SRL A - LD (HL),IX
40 LD B,B - BIT 0,B - IN B,(BC)
41 LD B,C - BIT 0,C - OUT (BC),B
42 LD B,D - BIT 0,D - SBC HL,BC
43 LD B,E - BIT 0,E - LD (&0000),BC
44 LD B,H LD B,IXH BIT 0,H - NEG
45 LD B,L LD B,IXL BIT 0,L - RETN
46 LD B,(HL) LD B,(IX+d) BIT 0,(HL) BIT 0,(IY+d) IM 0
47 LD B,A - BIT 0,A - LD I,A
48 LD C,B - BIT 1,B - IN C,(BC)
49 LD C,C - BIT 1,C - OUT (BC),C
4A LD C,D - BIT 1,D - ADC HL,BC
4B LD C,E - BIT 1,E - LD BC,(&0000)
4C LD C,H LD C,IXH BIT 1,H - MULT BC
4D LD C,L LD C,IXL BIT 1,L - RETI
4E LD C,(HL) LD C,(IX+d) BIT 1,(HL) BIT 1,(IY+d) -
4F LD C,A - BIT 1,A - LD R,A
50 LD D,B - BIT 2,B - IN D,(BC)
51 LD D,C - BIT 2,C - OUT (BC),D
52 LD D,D - BIT 2,D - SBC HL,DE
53 LD D,E - BIT 2,E - LD (&0000),DE
54 LD D,H LD D,IXH BIT 2,H - LEA IX,IY+d
55 LD D,L LD D,IXL BIT 2,L - LEA IY,IX+d
56 LD D,(HL) LD D,(IX+d) BIT 2,(HL) BIT 2,(IY+d) IM 1
57 LD D,A - BIT 2,A - LD A,I
58 LD E,B - BIT 3,B - IN E,(BC)
59 LD E,C - BIT 3,C - OUT (BC),E
5A LD E,D - BIT 3,D - ADC HL,DE
5B LD E,E - BIT 3,E - LD DE,(&0000)
5C LD E,H LD E,IXH BIT 3,H - MULT DE
5D LD E,L LD E,IXL BIT 3,L - -
5E LD E,(HL) LD E,(IX+d) BIT 3,(HL) BIT 3,(IY+d) IM 2
5F LD E,A - BIT 3,A - LD A,R
60 LD H,B LD IXH,B BIT 4,B - IN H,(BC)
61 LD H,C LD IXH,C BIT 4,C - OUT (BC),H
62 LD H,D LD IXH,D BIT 4,D - SBC HL,HL
63 LD H,E LD IXH,E BIT 4,E - LD (&0000),HL
64 LD H,H LD IXH,IXH BIT 4,H - TST A,&00
65 LD H,L LD IXH,IXL BIT 4,L - PEA IX+d
66 LD H,(HL) LD H,(IX+d) BIT 4,(HL) BIT 4,(IY+d) PEA IY+d
67 LD H,A LD IXH,A BIT 4,A - RRD
68 LD L,B LD IXL,B BIT 5,B - IN L,(BC)
69 LD L,C LD IXL,C BIT 5,C - OUT (BC),L
6A LD L,D LD IXL,D BIT 5,D - ADC HL,HL
6B LD L,E LD IXL,E BIT 5,E - LD HL,(&0000)
6C LD L,H LD IXL,IXH BIT 5,H - MULT HL
6D LD L,L LD IXL,IXL BIT 5,L - LD MB,A
6E LD L,(HL) LD L,(IX+d) BIT 5,(HL) BIT 5,(IY+d) LD A,MB
6F LD L,A LD IXL,A BIT 5,A - RLD
70 LD (HL),B LD (IX+d),B BIT 6,B - -
71 LD (HL),C LD (IX+d),C BIT 6,C - -
72 LD (HL),D LD (IX+d),D BIT 6,D - SBC HL,SP
73 LD (HL),E LD (IX+d),E BIT 6,E - LD (&0000),SP
74 LD (HL),H LD (IX+d),H BIT 6,H - TSR (&00)
75 LD (HL),L LD (IX+d),L BIT 6,L - -
76 HALT - BIT 6,(HL) BIT 6,(IY+d) SLP
77 LD (HL),A LD (IX+d),A BIT 6,A - -
78 LD A,B - BIT 7,B - IN A,(BC)
79 LD A,C - BIT 7,C - OUT (BC),A
7A LD A,D - BIT 7,D - ADC HL,SP
7B LD A,E - BIT 7,E - LD SP,(&0000)
7C LD A,H LD A,IXH BIT 7,H - MULT SP
7D LD A,L LD A,IXL BIT 7,L - STMIX
7E LD A,(HL) LD A,(IX+d) BIT 7,(HL) BIT 7,(IY+d) RSMIX
7F LD A,A - BIT 7,A - -
80 ADD A,B - RES 0,B - -
81 ADD A,C - RES 0,C - -
82 ADD A,D - RES 0,D - INIM
83 ADD A,E - RES 0,E - OTIM
84 ADD A,H ADD A,IXH RES 0,H - INI2
85 ADD A,L ADD A,IXL RES 0,L - -
86 ADD A,(HL) ADD A,(IX+d) RES 0,(HL) RES 0,(IY+d) -
87 ADD A,A - RES 0,A - -
88 ADC A,B - RES 1,B - -
89 ADC A,C - RES 1,C - -
8A ADC A,D - RES 1,D - INDM
8B ADC A,E - RES 1,E - OTDM
8C ADC A,H ADC A,IXH RES 1,H - IND2
8D ADC A,L ADC A,IXL RES 1,L - -
8E ADC A,(HL) ADC A,(IX+d) RES 1,(HL) RES 1,(IY+d) -
8F ADC A,A - RES 1,A - -
90 SUB A,B - RES 2,B - -
91 SUB A,C - RES 2,C - -
92 SUB A,D - RES 2,D - INIMR
93 SUB A,E - RES 2,E - OTIMR
94 SUB A,H SUB A,IXH RES 2,H - INI2R
95 SUB A,L SUB A,IXL RES 2,L - -
96 SUB A,(HL) SUB A,(IX+d) RES 2,(HL) RES 2,(IY+d) -
97 SUB A,A - RES 2,A - -
98 SBC A,B - RES 3,B - -
99 SBC A,C - RES 3,C - -
9A SBC A,D - RES 3,D - INDMR
9B SBC A,E - RES 3,E - OTDMR
9C SBC A,H SBC A,IXH RES 3,H - IND2R
9D SBC A,L SBC A,IXL RES 3,L - -
9E SBC A,(HL) SBC A,(IX+d) RES 3,(HL) RES 3,(IY+d) -
9F SBC A,A - RES 3,A - -
A0 AND B - RES 4,B - LDI
A1 AND C - RES 4,C - CPI
A2 AND D - RES 4,D - INI
A3 AND E - RES 4,E - OTI
A4 AND H AND IXH RES 4,H - OTI2
A5 AND L AND IXL RES 4,L - -
A6 AND (HL) AND (IX+d) RES 4,(HL) RES 4,(IY+d) -
A7 AND A - RES 4,A - -
A8 XOR B - RES 5,B - LDD
A9 XOR C - RES 5,C - CPD
AA XOR D - RES 5,D - IND
AB XOR E - RES 5,E - OTD
AC XOR H XOR IXH RES 5,H - OTD2
AD XOR L XOR IXL RES 5,L - -
AE XOR (HL) XOR (IX+d) RES 5,(HL) RES 5,(IY+d) -
AF XOR A - RES 5,A - -
B0 OR B - RES 6,B - LDIR
B1 OR C - RES 6,C - CPIR
B2 OR D - RES 6,D - INIR
B3 OR E - RES 6,E - OTIR
B4 OR H OR IXH RES 6,H - ORI2R
B5 OR L OR IXL RES 6,L - -
B6 OR (HL) OR (IX+d) RES 6,(HL) RES 6,(IY+d) -
B7 OR A - RES 6,A - -
B8 CP B - RES 7,B - LDDR
B9 CP C - RES 7,C - CPDR
BA CP D - RES 7,D - INDR
BB CP E - RES 7,E - OTDR
BC CP H CP IXH RES 7,H - OTD2R
BD CP L CP IXL RES 7,L - -
BE CP (HL) CP (IX+d) RES 7,(HL) RES 7,(IY+d) -
BF CP A - RES 7,A - -
C0 RET NZ - SET 0,B - -
C1 POP BC - SET 0,C - -
C2 JP NZ,&0000 - SET 0,D - -
C3 JP &0000 - SET 0,E - -
C4 CALL NZ,&0000 - SET 0,H - -
C5 PUSH BC - SET 0,L - -
C6 ADD A,&00 - SET 0,(HL) SET 0,(IY+d) -
C7 RST &00 - SET 0,A - -
C8 RET Z - SET 1,B - -
C9 RET - SET 1,C - -
CA JP Z,&0000 - SET 1,D - -
CB **** CB **** **** CB **** SET 1,E - -
CC CALL Z,&0000 - SET 1,H - -
CD CALL &0000 - SET 1,L - -
CE ADC A,&00 - SET 1,(HL) SET 1,(IY+d) -
CF RST &08 - SET 1,A - -
D0 RET NC - SET 2,B - -
D1 POP DE - SET 2,C - -
D2 JP NC,&0000 - SET 2,D - -
D3 OUT (&00),A - SET 2,E - -
D4 CALL NC,&0000 - SET 2,H - -
D5 PUSH DE - SET 2,L - -
D6 SUB A,&00 - SET 2,(HL) SET 2,(IY+d) -
D7 RST &10 - SET 2,A - -
D8 RET C - SET 3,B - -
D9 EXX - SET 3,C - -
DA JP C,&0000 - SET 3,D - -
DB IN A,(&00) - SET 3,E - -
DC CALL C,&0000 - SET 3,H - -
DD **** DD **** - SET 3,L - -
DE SBC A,&00 - SET 3,(HL) SET 3,(IY+d) -
DF RST &18 - SET 3,A - -
E0 RET PO - SET 4,B - -
E1 POP HL POP IX SET 4,C - -
E2 JP PO,&0000 - SET 4,D - -
E3 EX (SP),HL EX (SP),IX SET 4,E - -
E4 CALL PO,&0000 - SET 4,H - -
E5 PUSH HL PUSH IX SET 4,L - -
E6 AND &00 - SET 4,(HL) SET 4,(IY+d) -
E7 RST &20 - SET 4,A - -
E8 RET PE - SET 5,B - -
E9 JP (HL) JP (IX) SET 5,C - -
EA JP PE,&0000 - SET 5,D - -
EB EX DE,HL - SET 5,E - -
EC CALL PE,&0000 - SET 5,H - -
ED **** ED **** - SET 5,L - -
EE XOR &00 - SET 5,(HL) SET 5,(IY+d) -
EF RST &28 - SET 5,A - -
F0 RET P - SET 6,B - -
F1 POP AF - SET 6,C - -
F2 JP P,&0000 - SET 6,D - -
F3 DI - SET 6,E - -
F4 CALL P,&0000 - SET 6,H - -
F5 PUSH AF - SET 6,L - -
F6 OR &00 - SET 6,(HL) SET 6,(IY+d) -
F7 RST &30 - SET 6,A - -
F8 RET M - SET 7,B - -
F9 LD SP,HL LD SP,IX SET 7,C - -
FA JP M,&0000 - SET 7,D - -
FB EI - SET 7,E - -
FC CALL M,&0000 - SET 7,H - -
FD **** FD **** - SET 7,L - -
FE CP &00 - SET 7,(HL) SET 7,(IY+d) -
FF RST &38 - SET 7,A - -
Notes on index registers
------------------------
Where DD and IX are mentioned, FD and IY may be substituted and vis versa.
If a DD or FD opcode prefixes an nonexistant instruction, then the DD or
FD opcode acts as a NOP and the base instruction is executed. For example,
DD FF does a RST &38.
Notes on Indexed Shift/Bit Operations
-------------------------------------
A shift or bit operation on an indexed byte in memory is done by prefixing a
CB opcode refering to (HL) with DD or FD to specify (IX+n) or (IY+n). If
the CB opcode does not refer to (HL), then the CB prefix is executed as a
NOP and the following code executed.
Notes on ED opcodes
-------------------
Opcodes 00 to 3F and C0 to FF (other than the block instructions) just
increment the R register by 2.
References
----------