1 /**
2 * Zilog Z80 instruction tables.
3 */
4 module d80.z80;
5
6 /**
7 * Strings and instruction lengths for Zilog Z80.
8 */
9 struct z80 {
10 string s; /// Instruction name
11 ubyte n; /// Length of instruction in bytes
12 }
13
14 /**
15 * Main instructions table for Zilog Z80.
16 */
17 immutable z80[] insnz80 = [
18 { "nop", 1 },
19 { "ld\tbc, ", 3 },
20 { "ld\t(bc), a", 1 },
21 { "inc\tbc", 1 },
22 { "inc\tb", 1 },
23 { "dec\tb", 1 },
24 { "ld\tb, ", 2 },
25 { "rlca", 1 },
26 { "ex\taf, af'", 1 },
27 { "add\thl, bc", 1 },
28 { "ld\ta, (bc)", 1 },
29 { "dec\tbc", 1 },
30 { "inc\tc", 1 },
31 { "dec\tc", 1 },
32 { "ld\tc, ", 2 },
33 { "rrca", 1 },
34 { "djnz\t", 2 },
35 { "ld\tde, ", 3 },
36 { "ld\t(de), a", 1 },
37 { "inc\tde", 1 },
38 { "inc\td", 1 },
39 { "dec\td", 1 },
40 { "ld\td, ", 2 },
41 { "rla", 1 },
42 { "jr\t", 2 },
43 { "add\thl, de", 1 },
44 { "ld\ta, (de)", 1 },
45 { "dec\tde" , 1 },
46 { "inc\te", 1 },
47 { "dec\te", 1 },
48 { "ld\te, ", 2 },
49 { "rra", 1 },
50 { "jr\tnz, ", 2 },
51 { "ld\thl, ", 3 },
52 { "ld\t(%02x%02xh), hl", 3 },
53 { "inc\thl", 1 },
54 { "inc\th", 1 },
55 { "dec\th", 1 },
56 { "ld\th, ", 2 },
57 { "daa", 1 },
58 { "jr\tz, ", 2 },
59 { "add\thl, hl", 1 },
60 { "ld\thl, (%02x%02xh)", 3 },
61 { "dec\thl", 1 },
62 { "inc\tl", 1 },
63 { "dec\tl", 1 },
64 { "ld\tl, ", 2 },
65 { "cpl", 1 },
66 { "jr\tnc, ", 2 },
67 { "ld\tsp, ", 3 },
68 { "ld\t(%02x%02xh), a", 3 },
69 { "inc\tsp", 1 },
70 { "inc\t(hl)", 1 },
71 { "dec\t(hl)", 1 },
72 { "ld\t(hl), ", 2 },
73 { "scf", 1 },
74 { "jr\tc, ", 2 },
75 { "add\thl, sp", 1 },
76 { "ld\ta, (%02x%02xh)", 3 },
77 { "dec\tsp", 1 },
78 { "inc\ta", 1 },
79 { "dec\ta", 1 },
80 { "ld\ta, ", 2 },
81 { "ccf", 1 },
82 { "ld\tb, b", 1 },
83 { "ld\tb, c", 1 },
84 { "ld\tb, d", 1 },
85 { "ld\tb, e", 1 },
86 { "ld\tb, h", 1 },
87 { "ld\tb, l", 1 },
88 { "ld\tb, (hl)", 1 },
89 { "ld\tb, a", 1 },
90 { "ld\tc, b", 1 },
91 { "ld\tc, c", 1 },
92 { "ld\tc, d", 1 },
93 { "ld\tc, e", 1 },
94 { "ld\tc, h", 1 },
95 { "ld\tc, l", 1 },
96 { "ld\tc, (hl)", 1 },
97 { "ld\tc, a", 1 },
98 { "ld\td, b", 1 },
99 { "ld\td, c", 1 },
100 { "ld\td, d", 1 },
101 { "ld\td, e", 1 },
102 { "ld\td, h", 1 },
103 { "ld\td, l", 1 },
104 { "ld\td, (hl)", 1 },
105 { "ld\td, a", 1 },
106 { "ld\te, b", 1 },
107 { "ld\te, c", 1 },
108 { "ld\te, d", 1 },
109 { "ld\te, e", 1 },
110 { "ld\te, h", 1 },
111 { "ld\te, l", 1 },
112 { "ld\te, (hl)", 1 },
113 { "ld\te, a", 1 },
114 { "ld\th, b", 1 },
115 { "ld\th, c", 1 },
116 { "ld\th, d", 1 },
117 { "ld\th, e", 1 },
118 { "ld\th, h", 1 },
119 { "ld\th, l", 1 },
120 { "ld\th, (hl)", 1 },
121 { "ld\th, a", 1 },
122 { "ld\tl, b", 1 },
123 { "ld\tl, c", 1 },
124 { "ld\tl, d", 1 },
125 { "ld\tl, e", 1 },
126 { "ld\tl, h", 1 },
127 { "ld\tl, l", 1 },
128 { "ld\tl, (hl)", 1 },
129 { "ld\tl, a", 1 },
130 { "ld\t(hl), b", 1 },
131 { "ld\t(hl), c", 1 },
132 { "ld\t(hl), d", 1 },
133 { "ld\t(hl), e", 1 },
134 { "ld\t(hl), h", 1 },
135 { "ld\t(hl), l", 1 },
136 { "halt", 1 },
137 { "ld\t(hl), a", 1 },
138 { "ld\ta, b", 1 },
139 { "ld\ta, c", 1 },
140 { "ld\ta, d", 1 },
141 { "ld\ta, e", 1 },
142 { "ld\ta, h", 1 },
143 { "ld\ta, l", 1 },
144 { "ld\ta, (hl)", 1 },
145 { "ld\ta, a", 1 },
146 { "add\ta, b", 1 },
147 { "add\ta, c", 1 },
148 { "add\ta, d", 1 },
149 { "add\ta, e", 1 },
150 { "add\ta, h", 1 },
151 { "add\ta, l", 1 },
152 { "add\ta, (hl)", 1 },
153 { "add\ta, a", 1 },
154 { "adc\ta, b", 1 },
155 { "adc\ta, c", 1 },
156 { "adc\ta, d", 1 },
157 { "adc\ta, e", 1 },
158 { "adc\ta, h", 1 },
159 { "adc\ta, l", 1 },
160 { "adc\ta, (hl)", 1 },
161 { "adc\ta, a", 1 },
162 { "sub\tb", 1 },
163 { "sub\tc", 1 },
164 { "sub\td", 1 },
165 { "sub\te", 1 },
166 { "sub\th", 1 },
167 { "sub\tl", 1 },
168 { "sub\t(hl)", 1 },
169 { "sub\ta", 1 },
170 { "sbc\ta, b", 1 },
171 { "sbc\ta, c", 1 },
172 { "sbc\ta, d", 1 },
173 { "sbc\ta, e", 1 },
174 { "sbc\ta, h", 1 },
175 { "sbc\ta, l", 1 },
176 { "sbc\ta, (hl)", 1 },
177 { "sbb\ta, a", 1 },
178 { "and\tb", 1 },
179 { "and\tc", 1 },
180 { "and\td", 1 },
181 { "and\te", 1 },
182 { "and\th", 1 },
183 { "and\tl", 1 },
184 { "and\t(hl)", 1 },
185 { "and\ta", 1 },
186 { "xor\tb", 1 },
187 { "xor\tc", 1 },
188 { "xor\td", 1 },
189 { "xor\te", 1 },
190 { "xor\th", 1 },
191 { "xor\tl", 1 },
192 { "xor\t(hl)", 1 },
193 { "xor\ta", 1 },
194 { "or\tb", 1 },
195 { "or\tc", 1 },
196 { "or\td", 1 },
197 { "or\te", 1 },
198 { "or\th", 1 },
199 { "or\tl", 1 },
200 { "or\t(hl)", 1 },
201 { "or\ta", 1 },
202 { "cp\tb", 1 },
203 { "cp\tc", 1 },
204 { "cp\td", 1 },
205 { "cp\te", 1 },
206 { "cp\th", 1 },
207 { "cp\tl", 1 },
208 { "cp\t(hl)", 1 },
209 { "cp\ta", 1 },
210 { "ret\tnz", 1 },
211 { "pop\tbc", 1 },
212 { "jp\tnz, ", 3 },
213 { "jp\t", 3 },
214 { "call\t nz, ", 3 },
215 { "push\tbc", 1 },
216 { "add\ta, ", 2 },
217 { "rst\t00h", 1 },
218 { "ret\tz", 1 },
219 { "ret", 1 },
220 { "jp\tz, ", 3 },
221 { "BITS", 2 },
222 { "call\tz, ", 3 },
223 { "call\t", 3 },
224 { "adc\ta, ", 2 },
225 { "rst\t08h", 1 },
226 { "ret\tnc", 1 },
227 { "pop\tde", 1 },
228 { "jp\tnc, ", 3 },
229 { "out\t(%02xh), a", 2 },
230 { "call\tnc, ", 3 },
231 { "push\tde", 1 },
232 { "sub\t", 2 },
233 { "rst\t10h", 1 },
234 { "ret\tc", 1 },
235 { "exx", 1 },
236 { "jp\tc, ", 3 },
237 { "in\ta, (%02xh)", 2 },
238 { "call\tc, ", 3 },
239 { "IX", 2 },
240 { "sbc\ta, ", 2 },
241 { "rst\t18h", 1 },
242 { "ret\tpo", 1 },
243 { "pop\thl", 1 },
244 { "jp\tpo, ", 3 },
245 { "ex\t(sp), hl", 1 },
246 { "call\tpo, ", 3 },
247 { "push\thl", 1 },
248 { "and\t", 2 },
249 { "rst\t20h", 1 },
250 { "ret\tpe", 1 },
251 { "jp\t(hl)", 1 },
252 { "jp\tpe, ", 3 },
253 { "ex\tde, hl", 1 },
254 { "call\tpe, ", 3 },
255 { "EXTD", 2 },
256 { "xor\t", 2 },
257 { "rst\t28h", 1 },
258 { "ret\tp", 1 },
259 { "pop\taf", 1 },
260 { "jp\tp, ", 3 },
261 { "di", 1 },
262 { "call\tp, ", 3 },
263 { "push\taf", 1 },
264 { "or\t", 2 },
265 { "rst\t30h", 1 },
266 { "ret\tm", 1 },
267 { "ld\tsp, hl", 1 },
268 { "jp\tm, ", 3 },
269 { "ei", 1 },
270 { "call\tm, ", 3 },
271 { "IY", 2 },
272 { "cp\t", 2 },
273 { "rst\t38h", 1 }
274 ];
275
276 /**
277 * Bit instructions (CB) table for Z80.
278 * n = 0 because all instructions in this table are
279 * 2 bytes in length and we handle that in the
280 * primary table.
281 */
282 immutable z80[] insnz80cb = [
283 { "rlc\tb", 0 },
284 { "rlc\tc", 0 },
285 { "rlc\td", 0 },
286 { "rlc\te", 0 },
287 { "rlc\th", 0 },
288 { "rlc\tl", 0 },
289 { "rlc\t(hl)", 0 },
290 { "rlc\ta", 0 },
291 { "rrc\tb", 0 },
292 { "rrc\tc", 0 },
293 { "rrc\td", 0 },
294 { "rrc\te", 0 },
295 { "rrc\th", 0 },
296 { "rrc\tl", 0 },
297 { "rrc\t(hl)", 0 },
298 { "rrc\ta", 0 },
299 { "rl\tb", 0 },
300 { "rl\tc", 0 },
301 { "rl\td", 0 },
302 { "rl\te", 0 },
303 { "rl\th", 0 },
304 { "rl\tl", 0 },
305 { "rl\t(hl)", 0 },
306 { "rl\ta", 0 },
307 { "rr\tb", 0 },
308 { "rr\tc", 0 },
309 { "rr\td", 0 },
310 { "rr\te", 0 },
311 { "rr\th", 0 },
312 { "rr\tl", 0 },
313 { "rr\t(hl)", 0 },
314 { "rr\ta", 0 },
315 { "sla\tb", 0 },
316 { "sla\tc", 0 },
317 { "sla\td", 0 },
318 { "sla\te", 0 },
319 { "sla\th", 0 },
320 { "sla\tl", 0 },
321 { "sla\t(hl)", 0 },
322 { "sla\ta", 0 },
323 { "sra\tb", 0 },
324 { "sra\tc", 0 },
325 { "sra\td", 0 },
326 { "sra\te", 0 },
327 { "sra\th", 0 },
328 { "sra\tl", 0 },
329 { "sra\t(hl)", 0 },
330 { "sra\ta", 0 },
331 { "slr\tb", 0 },
332 { "slr\tc", 0 },
333 { "slr\td", 0 },
334 { "slr\te", 0 },
335 { "slr\th", 0 },
336 { "slr\tl", 0 },
337 { "slr\t(hl)", 0 },
338 { "slr\ta", 0 },
339 { "srr\tb", 0 },
340 { "srr\tc", 0 },
341 { "srr\td", 0 },
342 { "srr\te", 0 },
343 { "srr\th", 0 },
344 { "srr\tl", 0 },
345 { "srr\t(hl)", 0 },
346 { "srr\ta", 0 },
347 { "bit\t0, b", 0 },
348 { "bit\t0, c", 0 },
349 { "bit\t0, d", 0 },
350 { "bit\t0, e", 0 },
351 { "bit\t0, h", 0 },
352 { "bit\t0, l", 0 },
353 { "bit\t0, (hl)", 0 },
354 { "bit\t0, a", 0 },
355 { "bit\t1, b", 0 },
356 { "bit\t1, c", 0 },
357 { "bit\t1, d", 0 },
358 { "bit\t1, e", 0 },
359 { "bit\t1, h", 0 },
360 { "bit\t1, l", 0 },
361 { "bit\t1, (hl)", 0 },
362 { "bit\t1, a", 0 },
363 { "bit\t2, b", 0 },
364 { "bit\t2, c", 0 },
365 { "bit\t2, d", 0 },
366 { "bit\t2, e", 0 },
367 { "bit\t2, h", 0 },
368 { "bit\t2, l", 0 },
369 { "bit\t2, (hl)", 0 },
370 { "bit\t2, a", 0 },
371 { "bit\t3, b", 0 },
372 { "bit\t3, c", 0 },
373 { "bit\t3, d", 0 },
374 { "bit\t3, e", 0 },
375 { "bit\t3, h", 0 },
376 { "bit\t3, l", 0 },
377 { "bit\t3, (hl)", 0 },
378 { "bit\t3, a", 0 },
379 { "bit\t4, b", 0 },
380 { "bit\t4, c", 0 },
381 { "bit\t4, d", 0 },
382 { "bit\t4, e", 0 },
383 { "bit\t4, h", 0 },
384 { "bit\t4, l", 0 },
385 { "bit\t4, (hl)", 0 },
386 { "bit\t4, a", 0 },
387 { "bit\t5, b", 0 },
388 { "bit\t5, c", 0 },
389 { "bit\t5, d", 0 },
390 { "bit\t5, e", 0 },
391 { "bit\t5, h", 0 },
392 { "bit\t5, l", 0 },
393 { "bit\t5, (hl)", 0 },
394 { "bit\t5, a", 0 },
395 { "bit\t6, b", 0 },
396 { "bit\t6, c", 0 },
397 { "bit\t6, d", 0 },
398 { "bit\t6, e", 0 },
399 { "bit\t6, h", 0 },
400 { "bit\t6, l", 0 },
401 { "bit\t6, (hl)", 0 },
402 { "bit\t6, a", 0 },
403 { "bit\t7, b", 0 },
404 { "bit\t7, c", 0 },
405 { "bit\t7, d", 0 },
406 { "bit\t7, e", 0 },
407 { "bit\t7, h", 0 },
408 { "bit\t7, l", 0 },
409 { "bit\t7, (hl)", 0 },
410 { "bit\t7, a", 0 },
411 { "res\t0, b", 0 },
412 { "res\t0, c", 0 },
413 { "res\t0, d", 0 },
414 { "res\t0, e", 0 },
415 { "res\t0, h", 0 },
416 { "res\t0, l", 0 },
417 { "res\t0, (hl)", 0 },
418 { "res\t0, a", 0 },
419 { "res\t1, b", 0 },
420 { "res\t1, c", 0 },
421 { "res\t1, d", 0 },
422 { "res\t1, e", 0 },
423 { "res\t1, h", 0 },
424 { "res\t1, l", 0 },
425 { "res\t1, (hl)", 0 },
426 { "res\t1, a", 0 },
427 { "res\t2, b", 0 },
428 { "res\t2, c", 0 },
429 { "res\t2, d", 0 },
430 { "res\t2, e", 0 },
431 { "res\t2, h", 0 },
432 { "res\t2, l", 0 },
433 { "res\t2, (hl)", 0 },
434 { "res\t2, a", 0 },
435 { "res\t3, b", 0 },
436 { "res\t3, c", 0 },
437 { "res\t3, d", 0 },
438 { "res\t3, e", 0 },
439 { "res\t3, h", 0 },
440 { "res\t3, l", 0 },
441 { "res\t3, (hl)", 0 },
442 { "res\t3, a", 0 },
443 { "res\t4, b", 0 },
444 { "res\t4, c", 0 },
445 { "res\t4, d", 0 },
446 { "res\t4, e", 0 },
447 { "res\t4, h", 0 },
448 { "res\t4, l", 0 },
449 { "res\t4, (hl)", 0 },
450 { "res\t4, a", 0 },
451 { "res\t5, b", 0 },
452 { "res\t5, c", 0 },
453 { "res\t5, d", 0 },
454 { "res\t5, e", 0 },
455 { "res\t5, h", 0 },
456 { "res\t5, l", 0 },
457 { "res\t5, (hl)", 0 },
458 { "res\t5, a", 0 },
459 { "res\t6, b", 0 },
460 { "res\t6, c", 0 },
461 { "res\t6, d", 0 },
462 { "res\t6, e", 0 },
463 { "res\t6, h", 0 },
464 { "res\t6, l", 0 },
465 { "res\t6, (hl)", 0 },
466 { "res\t6, a", 0 },
467 { "res\t7, b", 0 },
468 { "res\t7, c", 0 },
469 { "res\t7, d", 0 },
470 { "res\t7, e", 0 },
471 { "res\t7, h", 0 },
472 { "res\t7, l", 0 },
473 { "res\t7, (hl)", 0 },
474 { "res\t7, a", 0 },
475 { "set\t0, c", 0 },
476 { "set\t0, d", 0 },
477 { "set\t0, e", 0 },
478 { "set\t0, h", 0 },
479 { "set\t0, l", 0 },
480 { "set\t0, (hl)", 0 },
481 { "set\t0, a", 0 },
482 { "set\t1, b", 0 },
483 { "set\t1, c", 0 },
484 { "set\t1, d", 0 },
485 { "set\t1, e", 0 },
486 { "set\t1, h", 0 },
487 { "set\t1, l", 0 },
488 { "set\t1, (hl)", 0 },
489 { "set\t1, a", 0 },
490 { "set\t2, b", 0 },
491 { "set\t2, c", 0 },
492 { "set\t2, d", 0 },
493 { "set\t2, e", 0 },
494 { "set\t2, h", 0 },
495 { "set\t2, l", 0 },
496 { "set\t2, (hl)", 0 },
497 { "set\t2, a", 0 },
498 { "set\t3, b", 0 },
499 { "set\t3, c", 0 },
500 { "set\t3, d", 0 },
501 { "set\t3, e", 0 },
502 { "set\t3, h", 0 },
503 { "set\t3, l", 0 },
504 { "set\t3, (hl)", 0 },
505 { "set\t3, a", 0 },
506 { "set\t4, b", 0 },
507 { "set\t4, c", 0 },
508 { "set\t4, d", 0 },
509 { "set\t4, e", 0 },
510 { "set\t4, h", 0 },
511 { "set\t4, l", 0 },
512 { "set\t4, (hl)", 0 },
513 { "set\t4, a", 0 },
514 { "set\t5, b", 0 },
515 { "set\t5, c", 0 },
516 { "set\t5, d", 0 },
517 { "set\t5, e", 0 },
518 { "set\t5, h", 0 },
519 { "set\t5, l", 0 },
520 { "set\t5, (hl)", 0 },
521 { "set\t5, a", 0 },
522 { "set\t6, b", 0 },
523 { "set\t6, c", 0 },
524 { "set\t6, d", 0 },
525 { "set\t6, e", 0 },
526 { "set\t6, h", 0 },
527 { "set\t6, l", 0 },
528 { "set\t6, (hl)", 0 },
529 { "set\t6, a", 0 },
530 { "set\t7, b", 0 },
531 { "set\t7, c", 0 },
532 { "set\t7, d", 0 },
533 { "set\t7, e", 0 },
534 { "set\t7, h", 0 },
535 { "set\t7, l", 0 },
536 { "set\t7, (hl)", 0 },
537 { "set\t7, a", 0 }
538 ];
539
540 /**
541 * IX instructions (DD) table for Z80.
542 * Invalid instructions are marked nop.
543 */
544 immutable z80[] insnz80dd = [
545 { "nop", 0 },
546 { "nop", 0 },
547 { "nop", 0 },
548 { "nop", 0 },
549 { "nop", 0 },
550 { "nop", 0 },
551 { "nop", 0 },
552 { "nop", 0 },
553 { "nop", 0 },
554 { "add\tix, bc", 0 },
555 { "nop", 0 },
556 { "nop", 0 },
557 { "nop", 0 },
558 { "nop", 0 },
559 { "nop", 0 },
560 { "nop", 0 },
561 { "nop", 0 },
562 { "nop", 0 },
563 { "nop", 0 },
564 { "nop", 0 },
565 { "nop", 0 },
566 { "nop", 0 },
567 { "nop", 0 },
568 { "nop", 0 },
569 { "nop", 0 },
570 { "add\tix, de", 0 },
571 { "nop", 0 },
572 { "nop", 0 },
573 { "nop", 0 },
574 { "nop", 0 },
575 { "nop", 0 },
576 { "nop", 0 },
577 { "nop", 0 },
578 { "ld\tix, %02x%02xh", 2 },
579 { "ld\t(%02x%02xh), ix", 2 },
580 { "inc\tix", 0 },
581 { "inc\tixh", 0 },
582 { "dec\tixh", 0 },
583 { "ld\tixh, %02xh", 1 },
584 { "nop", 0 },
585 { "nop", 0 },
586 { "add\tix, ix", 0 },
587 { "ld\tix, (%02x%02xh)", 2 },
588 { "dec\tix", 0 },
589 { "inc\tixl", 0 },
590 { "dec\tixl", 0 },
591 { "ld\tixl, %02xh", 1 },
592 { "nop", 0 },
593 { "nop", 0 },
594 { "nop", 0 },
595 { "nop", 0 },
596 { "nop", 0 },
597 { "inc\t(ix+%02xh)", 1 },
598 { "dec\t(ix+%02xh)", 1 },
599 { "ld\t(ix+%02xh), %02xh", 2 },
600 { "nop", 0 },
601 { "nop", 0 },
602 { "add\tix, sp", 0 },
603 { "nop", 0 },
604 { "nop", 0 },
605 { "nop", 0 },
606 { "nop", 0 },
607 { "nop", 0 },
608 { "nop", 0 },
609 { "nop", 0 },
610 { "nop", 0 },
611 { "nop", 0 },
612 { "nop", 0 },
613 { "ld\tb, ixh", 0 },
614 { "ld\tb, ixl", 0 },
615 { "ld\tb, (ix+%02xh)", 1 },
616 { "nop", 0 },
617 { "nop", 0 },
618 { "nop", 0 },
619 { "nop", 0 },
620 { "nop", 0 },
621 { "ld\tc, ixh", 0 },
622 { "ld\tc, ixl", 0 },
623 { "ld\tc, (ix+%02xh)", 1 },
624 { "nop", 0 },
625 { "nop", 0 },
626 { "nop", 0 },
627 { "nop", 0 },
628 { "nop", 0 },
629 { "ld\td, ixh", 0 },
630 { "ld\td, ixl", 0 },
631 { "ld\td, (ix+%02xh)", 1 },
632 { "nop", 0 },
633 { "nop", 0 },
634 { "nop", 0 },
635 { "nop", 0 },
636 { "nop", 0 },
637 { "ld\te, ixh", 0 },
638 { "ld\te, ixl", 0 },
639 { "ld\te, (ix+%02xh)", 1 },
640 { "nop", 0 },
641 { "ld\tixh, b", 0 },
642 { "ld\tixh, c", 0 },
643 { "ld\tixh, d", 0 },
644 { "ld\tixh, e", 0 },
645 { "ld\tixh, ixh", 0 },
646 { "ld\tixh, ixl", 0 },
647 { "ld\th, (ix+%02xh)", 1 },
648 { "ld\tixh, a", 0 },
649 { "ld\tixl, b", 0 },
650 { "ld\tixl, c", 0 },
651 { "ld\tixl, d", 0 },
652 { "ld\tixl, e", 0 },
653 { "ld\tixl, ixh", 0 },
654 { "ld\tixl, ixl", 0 },
655 { "ld\tl, (ix+%02xh)", 1 },
656 { "ld\tixl, a", 0 },
657 { "ld\t(ix+%02xh), b", 1 },
658 { "ld\t(ix+%02xh), c", 1 },
659 { "ld\t(ix+%02xh), d", 1 },
660 { "ld\t(ix+%02xh), e", 1 },
661 { "ld\t(ix+%02xh), h", 1 },
662 { "ld\t(ix+%02xh), l", 1 },
663 { "nop", 0 },
664 { "ld\t(ix+%02xh), a", 1 },
665 { "nop", 0 },
666 { "nop", 0 },
667 { "nop", 0 },
668 { "nop", 0 },
669 { "ld\ta, ixh", 0 },
670 { "ld\ta, ixl", 0 },
671 { "ld\ta, (ix+%02xh)", 0 },
672 { "nop", 0 },
673 { "nop", 0 },
674 { "nop", 0 },
675 { "nop", 0 },
676 { "nop", 0 },
677 { "add\ta, ixh", 0 },
678 { "add\ta, ixl", 0 },
679 { "add\ta, (ix+%02xh)", 1 },
680 { "nop", 0 },
681 { "nop", 0 },
682 { "nop", 0 },
683 { "nop", 0 },
684 { "nop", 0 },
685 { "adc\ta, ixh", 0 },
686 { "adc\ta, ixl", 0 },
687 { "adc\ta, (ix+%02xh)", 0 },
688 { "nop", 0 },
689 { "nop", 0 },
690 { "nop", 0 },
691 { "nop", 0 },
692 { "nop", 0 },
693 { "sub\tixh", 0 },
694 { "sub\tixl", 0 },
695 { "sub\t(ix+%02xh)", 1 },
696 { "nop", 0 },
697 { "nop", 0 },
698 { "nop", 0 },
699 { "nop", 0 },
700 { "nop", 0 },
701 { "sbc\ta, ixh", 0 },
702 { "sbc\ta, ixl", 0 },
703 { "sbc\ta, (ix+%02xh)", 1 },
704 { "nop", 0 },
705 { "nop", 0 },
706 { "nop", 0 },
707 { "nop", 0 },
708 { "nop", 0 },
709 { "and\tixh", 0 },
710 { "and\tixl", 0 },
711 { "and\t(ix+%02xh)", 1 },
712 { "nop", 0 },
713 { "nop", 0 },
714 { "nop", 0 },
715 { "nop", 0 },
716 { "nop", 0 },
717 { "xor\tixh", 0 },
718 { "xor\tixl", 0 },
719 { "xor\t(ix+%02xh)", 1 },
720 { "nop", 0 },
721 { "nop", 0 },
722 { "nop", 0 },
723 { "nop", 0 },
724 { "nop", 0 },
725 { "or\tixh", 0 },
726 { "or\tixl", 0 },
727 { "or\t(ix+%02xh)", 1 },
728 { "nop", 0 },
729 { "nop", 0 },
730 { "nop", 0 },
731 { "nop", 0 },
732 { "nop", 0 },
733 { "cp\tixh", 0 },
734 { "cp\tixl", 0 },
735 { "cp\t(ix+%02xh)", 1 },
736 { "nop", 0 },
737 { "nop", 0 },
738 { "nop", 0 },
739 { "nop", 0 },
740 { "nop", 0 },
741 { "nop", 0 },
742 { "nop", 0 },
743 { "nop", 0 },
744 { "nop", 0 },
745 { "nop", 0 },
746 { "nop", 0 },
747 { "nop", 0 },
748 { "IX BITS", 0 },
749 { "nop", 0 },
750 { "nop", 0 },
751 { "nop", 0 },
752 { "nop", 0 },
753 { "nop", 0 },
754 { "nop", 0 },
755 { "nop", 0 },
756 { "nop", 0 },
757 { "nop", 0 },
758 { "nop", 0 },
759 { "nop", 0 },
760 { "nop", 0 },
761 { "nop", 0 },
762 { "nop", 0 },
763 { "nop", 0 },
764 { "nop", 0 },
765 { "nop", 0 },
766 { "nop", 0 },
767 { "nop", 0 },
768 { "nop", 0 },
769 { "nop", 0 },
770 { "pop\tix", 0 },
771 { "nop", 0 },
772 { "ex\t(sp), ix", 0 },
773 { "nop", 0 },
774 { "push\tix", 0 },
775 { "nop", 0 },
776 { "nop", 0 },
777 { "nop", 0 },
778 { "jp\t(ix)", 0 },
779 { "nop", 0 },
780 { "nop", 0 },
781 { "nop", 0 },
782 { "nop", 0 },
783 { "nop", 0 },
784 { "nop", 0 },
785 { "nop", 0 },
786 { "nop", 0 },
787 { "nop", 0 },
788 { "nop", 0 },
789 { "nop", 0 },
790 { "nop", 0 },
791 { "nop", 0 },
792 { "nop", 0 },
793 { "nop", 0 },
794 { "ld\tsp, ix", 0 },
795 { "nop", 0 },
796 { "nop", 0 },
797 { "nop", 0 },
798 { "nop", 0 },
799 { "nop", 0 },
800 { "nop", 0 }
801 ];
802
803 /**
804 * Extended instructions (ED) table for Z80.
805 * Invalid instructions are marked nop.
806 */
807 immutable z80[] insnz80ed = [
808 { "nop", 0 },
809 { "nop", 0 },
810 { "nop", 0 },
811 { "nop", 0 },
812 { "nop", 0 },
813 { "nop", 0 },
814 { "nop", 0 },
815 { "nop", 0 },
816 { "nop", 0 },
817 { "nop", 0 },
818 { "nop", 0 },
819 { "nop", 0 },
820 { "nop", 0 },
821 { "nop", 0 },
822 { "nop", 0 },
823 { "nop", 0 },
824 { "nop", 0 },
825 { "nop", 0 },
826 { "nop", 0 },
827 { "nop", 0 },
828 { "nop", 0 },
829 { "nop", 0 },
830 { "nop", 0 },
831 { "nop", 0 },
832 { "nop", 0 },
833 { "nop", 0 },
834 { "nop", 0 },
835 { "nop", 0 },
836 { "nop", 0 },
837 { "nop", 0 },
838 { "nop", 0 },
839 { "nop", 0 },
840 { "nop", 0 },
841 { "nop", 0 },
842 { "nop", 0 },
843 { "nop", 0 },
844 { "nop", 0 },
845 { "nop", 0 },
846 { "nop", 0 },
847 { "nop", 0 },
848 { "nop", 0 },
849 { "nop", 0 },
850 { "nop", 0 },
851 { "nop", 0 },
852 { "nop", 0 },
853 { "nop", 0 },
854 { "nop", 0 },
855 { "nop", 0 },
856 { "nop", 0 },
857 { "nop", 0 },
858 { "nop", 0 },
859 { "nop", 0 },
860 { "nop", 0 },
861 { "nop", 0 },
862 { "nop", 0 },
863 { "nop", 0 },
864 { "nop", 0 },
865 { "nop", 0 },
866 { "nop", 0 },
867 { "nop", 0 },
868 { "nop", 0 },
869 { "nop", 0 },
870 { "nop", 0 },
871 { "nop", 0 },
872 { "in\tb, (c)", 0 },
873 { "out\t(c), b", 0 },
874 { "sbc\thl, bc", 0 },
875 { "ld\t(%02x%02xh), bc", 2 },
876 { "neg", 0 },
877 { "retn", 0 },
878 { "im\t0", 0 },
879 { "ld\ti, a", 0 },
880 { "in\tc, (c)", 0 },
881 { "out\t(c), c", 0 },
882 { "adc\thl, bc", 0 },
883 { "ld\tbc, (%02x%02xh)", 2 },
884 { "neg", 0 },
885 { "reti", 0 },
886 { "im\t0/1", 0 },
887 { "ld\tr, a", 0 },
888 { "in\td, (c)", 0 },
889 { "out\t(c), d", 0 },
890 { "sbc\thl, de", 0 },
891 { "ld\t(%02x%02xh), de", 2 },
892 { "neg", 0 },
893 { "retn", 0 },
894 { "im\t1", 0 },
895 { "ld\ta, i", 0 },
896 { "in\te, (c)", 0 },
897 { "out\t(c), e", 0 },
898 { "adc\thl, de", 0 },
899 { "ld\tde, (%02x%02xh)", 2 },
900 { "neg", 0 },
901 { "retn", 0 },
902 { "im\t2", 0 },
903 { "ld\ta, r", 0 },
904 { "in\th, (c)", 0 },
905 { "out\t(c), h", 0 },
906 { "sbc\thl, hl", 0 },
907 { "ld\t(%02x%02xh), hl", 2 },
908 { "neg", 0 },
909 { "retn", 0 },
910 { "im\t0", 0 },
911 { "rrd", 0 },
912 { "in\tl, (c)", 0 },
913 { "out\t(c), l", 0 },
914 { "adc\thl, hl", 0 },
915 { "ld\thl, (%02x%02xh)", 2 },
916 { "neg", 0 },
917 { "retn", 0 },
918 { "im\t0/1", 0 },
919 { "rld", 0 },
920 { "in\t(c)", 0 },
921 { "out\t(c), 0", 0 },
922 { "sbc\thl, sp", 0 },
923 { "ld\t(%02x%02xh), sp", 2 },
924 { "neg", 0 },
925 { "retn", 0 },
926 { "im\t1", 0 },
927 { "nop", 0 },
928 { "in\ta, (c)", 0 },
929 { "out\t(c), a", 0 },
930 { "adc\thl, sp", 0 },
931 { "ld\tsp, (%02x%02xh)", 2 },
932 { "neg", 0 },
933 { "retn", 0 },
934 { "im\t2", 0 },
935 { "nop", 0 },
936 { "nop", 0 },
937 { "nop", 0 },
938 { "nop", 0 },
939 { "nop", 0 },
940 { "nop", 0 },
941 { "nop", 0 },
942 { "nop", 0 },
943 { "nop", 0 },
944 { "nop", 0 },
945 { "nop", 0 },
946 { "nop", 0 },
947 { "nop", 0 },
948 { "nop", 0 },
949 { "nop", 0 },
950 { "nop", 0 },
951 { "nop", 0 },
952 { "nop", 0 },
953 { "nop", 0 },
954 { "nop", 0 },
955 { "nop", 0 },
956 { "nop", 0 },
957 { "nop", 0 },
958 { "nop", 0 },
959 { "nop", 0 },
960 { "nop", 0 },
961 { "nop", 0 },
962 { "nop", 0 },
963 { "nop", 0 },
964 { "nop", 0 },
965 { "nop", 0 },
966 { "nop", 0 },
967 { "nop", 0 },
968 { "ldi", 0 },
969 { "cpi", 0 },
970 { "ini", 0 },
971 { "outi", 0 },
972 { "nop", 0 },
973 { "nop", 0 },
974 { "nop", 0 },
975 { "nop", 0 },
976 { "ldd", 0 },
977 { "cpd", 0 },
978 { "ind", 0 },
979 { "outd", 0 },
980 { "nop", 0 },
981 { "nop", 0 },
982 { "nop", 0 },
983 { "nop", 0 },
984 { "ldir", 0 },
985 { "cpir", 0 },
986 { "inir", 0 },
987 { "otir", 0 },
988 { "nop", 0 },
989 { "nop", 0 },
990 { "nop", 0 },
991 { "nop", 0 },
992 { "lddr", 0 },
993 { "cpdr", 0 },
994 { "indr", 0 },
995 { "otdr", 0 },
996 { "nop", 0 },
997 { "nop", 0 },
998 { "nop", 0 },
999 { "nop", 0 },
1000 { "nop", 0 },
1001 { "nop", 0 },
1002 { "nop", 0 },
1003 { "nop", 0 },
1004 { "nop", 0 },
1005 { "nop", 0 },
1006 { "nop", 0 },
1007 { "nop", 0 },
1008 { "nop", 0 },
1009 { "nop", 0 },
1010 { "nop", 0 },
1011 { "nop", 0 },
1012 { "nop", 0 },
1013 { "nop", 0 },
1014 { "nop", 0 },
1015 { "nop", 0 },
1016 { "nop", 0 },
1017 { "nop", 0 },
1018 { "nop", 0 },
1019 { "nop", 0 },
1020 { "nop", 0 },
1021 { "nop", 0 },
1022 { "nop", 0 },
1023 { "nop", 0 },
1024 { "nop", 0 },
1025 { "nop", 0 },
1026 { "nop", 0 },
1027 { "nop", 0 },
1028 { "nop", 0 },
1029 { "nop", 0 },
1030 { "nop", 0 },
1031 { "nop", 0 },
1032 { "nop", 0 },
1033 { "nop", 0 },
1034 { "nop", 0 },
1035 { "nop", 0 },
1036 { "nop", 0 },
1037 { "nop", 0 },
1038 { "nop", 0 },
1039 { "nop", 0 },
1040 { "nop", 0 },
1041 { "nop", 0 },
1042 { "nop", 0 },
1043 { "nop", 0 },
1044 { "nop", 0 },
1045 { "nop", 0 },
1046 { "nop", 0 },
1047 { "nop", 0 },
1048 { "nop", 0 },
1049 { "nop", 0 },
1050 { "nop", 0 },
1051 { "nop", 0 },
1052 { "nop", 0 },
1053 { "nop", 0 },
1054 { "nop", 0 },
1055 { "nop", 0 },
1056 { "nop", 0 },
1057 { "nop", 0 },
1058 { "nop", 0 },
1059 { "nop", 0 },
1060 { "nop", 0 },
1061 { "nop", 0 },
1062 { "nop", 0 },
1063 { "nop", 0 }
1064 ];
1065
1066 /**
1067 * IY instructions (FD) table for Z80.
1068 * Invalid instructions are marked nop.
1069 */
1070 immutable z80[] insnz80fd = [
1071 { "nop", 0 },
1072 { "nop", 0 },
1073 { "nop", 0 },
1074 { "nop", 0 },
1075 { "nop", 0 },
1076 { "nop", 0 },
1077 { "nop", 0 },
1078 { "nop", 0 },
1079 { "nop", 0 },
1080 { "add\tiy, bc", 0 },
1081 { "nop", 0 },
1082 { "nop", 0 },
1083 { "nop", 0 },
1084 { "nop", 0 },
1085 { "nop", 0 },
1086 { "nop", 0 },
1087 { "nop", 0 },
1088 { "nop", 0 },
1089 { "nop", 0 },
1090 { "nop", 0 },
1091 { "nop", 0 },
1092 { "nop", 0 },
1093 { "nop", 0 },
1094 { "nop", 0 },
1095 { "nop", 0 },
1096 { "add\tiy, de", 0 },
1097 { "nop", 0 },
1098 { "nop", 0 },
1099 { "nop", 0 },
1100 { "nop", 0 },
1101 { "nop", 0 },
1102 { "nop", 0 },
1103 { "nop", 0 },
1104 { "ld\tiy, %02x%02xh", 2 },
1105 { "ld\t(%02x%02xh), iy", 2 },
1106 { "inc\tiy", 0 },
1107 { "inc\tiyh", 0 },
1108 { "dec\tiyh", 0 },
1109 { "ld\tiyh, %02xh", 1 },
1110 { "nop", 0 },
1111 { "nop", 0 },
1112 { "add\tiy, iy", 0 },
1113 { "ld\tiy, (%02x%02xh)", 2 },
1114 { "dec\tiy", 0 },
1115 { "inc\tiyl", 0 },
1116 { "dec\tiyl", 0 },
1117 { "ld\tiyl, %02xh", 1 },
1118 { "nop", 0 },
1119 { "nop", 0 },
1120 { "nop", 0 },
1121 { "nop", 0 },
1122 { "nop", 0 },
1123 { "inc\t(iy+%02xh)", 1 },
1124 { "dec\t(iy+%02xh)", 1 },
1125 { "ld\t(iy+%02xh), %02xh", 2 },
1126 { "nop", 0 },
1127 { "nop", 0 },
1128 { "add\tiy, sp", 0 },
1129 { "nop", 0 },
1130 { "nop", 0 },
1131 { "nop", 0 },
1132 { "nop", 0 },
1133 { "nop", 0 },
1134 { "nop", 0 },
1135 { "nop", 0 },
1136 { "nop", 0 },
1137 { "nop", 0 },
1138 { "nop", 0 },
1139 { "ld\tb, iyh", 0 },
1140 { "ld\tb, iyl", 0 },
1141 { "ld\tb, (iy+%02xh)", 1 },
1142 { "nop", 0 },
1143 { "nop", 0 },
1144 { "nop", 0 },
1145 { "nop", 0 },
1146 { "nop", 0 },
1147 { "ld\tc, iyh", 0 },
1148 { "ld\tc, iyl", 0 },
1149 { "ld\tc, (iy+%02xh)", 1 },
1150 { "nop", 0 },
1151 { "nop", 0 },
1152 { "nop", 0 },
1153 { "nop", 0 },
1154 { "nop", 0 },
1155 { "ld\td, iyh", 0 },
1156 { "ld\td, iyl", 0 },
1157 { "ld\td, (iy+%02xh)", 1 },
1158 { "nop", 0 },
1159 { "nop", 0 },
1160 { "nop", 0 },
1161 { "nop", 0 },
1162 { "nop", 0 },
1163 { "ld\te, iyh", 0 },
1164 { "ld\te, iyl", 0 },
1165 { "ld\te, (iy+%02xh)", 1 },
1166 { "nop", 0 },
1167 { "ld\tiyh, b", 0 },
1168 { "ld\tiyh, c", 0 },
1169 { "ld\tiyh, d", 0 },
1170 { "ld\tiyh, e", 0 },
1171 { "ld\tiyh, iyh", 0 },
1172 { "ld\tiyh, iyl", 0 },
1173 { "ld\th, (iy+%02xh)", 1 },
1174 { "ld\tiyh, a", 0 },
1175 { "ld\tiyl, b", 0 },
1176 { "ld\tiyl, c", 0 },
1177 { "ld\tiyl, d", 0 },
1178 { "ld\tiyl, e", 0 },
1179 { "ld\tiyl, iyh", 0 },
1180 { "ld\tiyl, iyl", 0 },
1181 { "ld\tl, (iy+%02xh)", 1 },
1182 { "ld\tiyl, a", 0 },
1183 { "ld\t(iy+%02xh), b", 1 },
1184 { "ld\t(iy+%02xh), c", 1 },
1185 { "ld\t(iy+%02xh), d", 1 },
1186 { "ld\t(iy+%02xh), e", 1 },
1187 { "ld\t(iy+%02xh), h", 1 },
1188 { "ld\t(iy+%02xh), l", 1 },
1189 { "nop", 0 },
1190 { "ld\t(iy+%02xh), a", 1 },
1191 { "nop", 0 },
1192 { "nop", 0 },
1193 { "nop", 0 },
1194 { "nop", 0 },
1195 { "ld\ta, iyh", 0 },
1196 { "ld\ta, iyl", 0 },
1197 { "ld\ta, (iy+%02xh)", 0 },
1198 { "nop", 0 },
1199 { "nop", 0 },
1200 { "nop", 0 },
1201 { "nop", 0 },
1202 { "nop", 0 },
1203 { "add\ta, iyh", 0 },
1204 { "add\ta, iyl", 0 },
1205 { "add\ta, (iy+%02xh)", 1 },
1206 { "nop", 0 },
1207 { "nop", 0 },
1208 { "nop", 0 },
1209 { "nop", 0 },
1210 { "nop", 0 },
1211 { "adc\ta, iyh", 0 },
1212 { "adc\ta, iyl", 0 },
1213 { "adc\ta, (iy+%02xh)", 0 },
1214 { "nop", 0 },
1215 { "nop", 0 },
1216 { "nop", 0 },
1217 { "nop", 0 },
1218 { "nop", 0 },
1219 { "sub\tiyh", 0 },
1220 { "sub\tiyl", 0 },
1221 { "sub\t(iy+%02xh)", 1 },
1222 { "nop", 0 },
1223 { "nop", 0 },
1224 { "nop", 0 },
1225 { "nop", 0 },
1226 { "nop", 0 },
1227 { "sbc\ta, iyh", 0 },
1228 { "sbc\ta, iyl", 0 },
1229 { "sbc\ta, (iy+%02xh)", 1 },
1230 { "nop", 0 },
1231 { "nop", 0 },
1232 { "nop", 0 },
1233 { "nop", 0 },
1234 { "nop", 0 },
1235 { "and\tiyh", 0 },
1236 { "and\tiyl", 0 },
1237 { "and\t(iy+%02xh)", 1 },
1238 { "nop", 0 },
1239 { "nop", 0 },
1240 { "nop", 0 },
1241 { "nop", 0 },
1242 { "nop", 0 },
1243 { "xor\tiyh", 0 },
1244 { "xor\tiyl", 0 },
1245 { "xor\t(iy+%02xh)", 1 },
1246 { "nop", 0 },
1247 { "nop", 0 },
1248 { "nop", 0 },
1249 { "nop", 0 },
1250 { "nop", 0 },
1251 { "or\tiyh", 0 },
1252 { "or\tiyl", 0 },
1253 { "or\t(iy+%02xh)", 1 },
1254 { "nop", 0 },
1255 { "nop", 0 },
1256 { "nop", 0 },
1257 { "nop", 0 },
1258 { "nop", 0 },
1259 { "cp\tiyh", 0 },
1260 { "cp\tiyl", 0 },
1261 { "cp\t(iy+%02xh)", 1 },
1262 { "nop", 0 },
1263 { "nop", 0 },
1264 { "nop", 0 },
1265 { "nop", 0 },
1266 { "nop", 0 },
1267 { "nop", 0 },
1268 { "nop", 0 },
1269 { "nop", 0 },
1270 { "nop", 0 },
1271 { "nop", 0 },
1272 { "nop", 0 },
1273 { "nop", 0 },
1274 { "IY BITS", 0 },
1275 { "nop", 0 },
1276 { "nop", 0 },
1277 { "nop", 0 },
1278 { "nop", 0 },
1279 { "nop", 0 },
1280 { "nop", 0 },
1281 { "nop", 0 },
1282 { "nop", 0 },
1283 { "nop", 0 },
1284 { "nop", 0 },
1285 { "nop", 0 },
1286 { "nop", 0 },
1287 { "nop", 0 },
1288 { "nop", 0 },
1289 { "nop", 0 },
1290 { "nop", 0 },
1291 { "nop", 0 },
1292 { "nop", 0 },
1293 { "nop", 0 },
1294 { "nop", 0 },
1295 { "nop", 0 },
1296 { "pop\tiy", 0 },
1297 { "nop", 0 },
1298 { "ex\t(sp), iy", 0 },
1299 { "nop", 0 },
1300 { "push\tiy", 0 },
1301 { "nop", 0 },
1302 { "nop", 0 },
1303 { "nop", 0 },
1304 { "jp\t(iy)", 0 },
1305 { "nop", 0 },
1306 { "nop", 0 },
1307 { "nop", 0 },
1308 { "nop", 0 },
1309 { "nop", 0 },
1310 { "nop", 0 },
1311 { "nop", 0 },
1312 { "nop", 0 },
1313 { "nop", 0 },
1314 { "nop", 0 },
1315 { "nop", 0 },
1316 { "nop", 0 },
1317 { "nop", 0 },
1318 { "nop", 0 },
1319 { "nop", 0 },
1320 { "ld\tsp, iy", 0 },
1321 { "nop", 0 },
1322 { "nop", 0 },
1323 { "nop", 0 },
1324 { "nop", 0 },
1325 { "nop", 0 },
1326 { "nop", 0 }
1327 ];
1328
1329 /**
1330 * IX bit instructions (DDCB) table for Z80.
1331 */
1332 immutable z80[] insnz80ddcb = [
1333 { "rlc\t(ix+%02xh), b", 2 },
1334 { "rlc\t(ix+%02xh), c", 2 },
1335 { "rlc\t(ix+%02xh), d", 2 },
1336 { "rlc\t(ix+%02xh), e", 2 },
1337 { "rlc\t(ix+%02xh), h", 2 },
1338 { "rlc\t(ix+%02xh), l", 2 },
1339 { "rlc\t(ix+%02xh)", 2 },
1340 { "rlc\t(ix+%02xh), a", 2 },
1341 { "rrc\t(ix+%02xh), b", 2 },
1342 { "rrc\t(ix+%02xh), c", 2 },
1343 { "rrc\t(ix+%02xh), d", 2 },
1344 { "rrc\t(ix+%02xh), e", 2 },
1345 { "rrc\t(ix+%02xh), h", 2 },
1346 { "rrc\t(ix+%02xh), l", 2 },
1347 { "rrc\t(ix+%02xh)", 2 },
1348 { "rrc\t(ix+%02xh), a", 2 },
1349 { "rl\t(ix+%02xh), b", 2 },
1350 { "rl\t(ix+%02xh), c", 2 },
1351 { "rl\t(ix+%02xh), d", 2 },
1352 { "rl\t(ix+%02xh), e", 2 },
1353 { "rl\t(ix+%02xh), h", 2 },
1354 { "rl\t(ix+%02xh), l", 2 },
1355 { "rl\t(ix+%02xh)", 2 },
1356 { "rl\t(ix+%02xh), a", 2 },
1357 { "rr\t(ix+%02xh), b", 2 },
1358 { "rr\t(ix+%02xh), c", 2 },
1359 { "rr\t(ix+%02xh), d", 2 },
1360 { "rr\t(ix+%02xh), e", 2 },
1361 { "rr\t(ix+%02xh), h", 2 },
1362 { "rr\t(ix+%02xh), l", 2 },
1363 { "rr\t(ix+%02xh)", 2 },
1364 { "rr\t(ix+%02xh), a", 2 },
1365 { "sla\t(ix+%02xh), b", 2 },
1366 { "sla\t(ix+%02xh), c", 2 },
1367 { "sla\t(ix+%02xh), d", 2 },
1368 { "sla\t(ix+%02xh), e", 2 },
1369 { "sla\t(ix+%02xh), h", 2 },
1370 { "sla\t(ix+%02xh), l", 2 },
1371 { "sla\t(ix+%02xh)", 2 },
1372 { "sla\t(ix+%02xh), a", 2 },
1373 { "sra\t(ix+%02xh), b", 2 },
1374 { "sra\t(ix+%02xh), c", 2 },
1375 { "sra\t(ix+%02xh), d", 2 },
1376 { "sra\t(ix+%02xh), e", 2 },
1377 { "sra\t(ix+%02xh), h", 2 },
1378 { "sra\t(ix+%02xh), l", 2 },
1379 { "sra\t(ix+%02xh)", 2 },
1380 { "sra\t(ix+%02xh), a", 2 },
1381 { "sll\t(ix+%02xh), b", 2 },
1382 { "sll\t(ix+%02xh), c", 2 },
1383 { "sll\t(ix+%02xh), d", 2 },
1384 { "sll\t(ix+%02xh), e", 2 },
1385 { "sll\t(ix+%02xh), h", 2 },
1386 { "sll\t(ix+%02xh), l", 2 },
1387 { "sll\t(ix+%02xh)", 2 },
1388 { "sll\t(ix+%02xh), a", 2 },
1389 { "srl\t(ix+%02xh), b", 2 },
1390 { "srl\t(ix+%02xh), c", 2 },
1391 { "srl\t(ix+%02xh), d", 2 },
1392 { "srl\t(ix+%02xh), e", 2 },
1393 { "srl\t(ix+%02xh), h", 2 },
1394 { "srl\t(ix+%02xh), l", 2 },
1395 { "srl\t(ix+%02xh)", 2 },
1396 { "srl\t(ix+%02xh), a", 2 },
1397 { "bit\t0, (ix+%02xh)", 2 },
1398 { "bit\t0, (ix+%02xh)", 2 },
1399 { "bit\t0, (ix+%02xh)", 2 },
1400 { "bit\t0, (ix+%02xh)", 2 },
1401 { "bit\t0, (ix+%02xh)", 2 },
1402 { "bit\t0, (ix+%02xh)", 2 },
1403 { "bit\t0, (ix+%02xh)", 2 },
1404 { "bit\t0, (ix+%02xh)", 2 },
1405 { "bit\t1, (ix+%02xh)", 2 },
1406 { "bit\t1, (ix+%02xh)", 2 },
1407 { "bit\t1, (ix+%02xh)", 2 },
1408 { "bit\t1, (ix+%02xh)", 2 },
1409 { "bit\t1, (ix+%02xh)", 2 },
1410 { "bit\t1, (ix+%02xh)", 2 },
1411 { "bit\t1, (ix+%02xh)", 2 },
1412 { "bit\t1, (ix+%02xh)", 2 },
1413 { "bit\t2, (ix+%02xh)", 2 },
1414 { "bit\t2, (ix+%02xh)", 2 },
1415 { "bit\t2, (ix+%02xh)", 2 },
1416 { "bit\t2, (ix+%02xh)", 2 },
1417 { "bit\t2, (ix+%02xh)", 2 },
1418 { "bit\t2, (ix+%02xh)", 2 },
1419 { "bit\t2, (ix+%02xh)", 2 },
1420 { "bit\t2, (ix+%02xh)", 2 },
1421 { "bit\t3, (ix+%02xh)", 2 },
1422 { "bit\t3, (ix+%02xh)", 2 },
1423 { "bit\t3, (ix+%02xh)", 2 },
1424 { "bit\t3, (ix+%02xh)", 2 },
1425 { "bit\t3, (ix+%02xh)", 2 },
1426 { "bit\t3, (ix+%02xh)", 2 },
1427 { "bit\t3, (ix+%02xh)", 2 },
1428 { "bit\t3, (ix+%02xh)", 2 },
1429 { "bit\t4, (ix+%02xh)", 2 },
1430 { "bit\t4, (ix+%02xh)", 2 },
1431 { "bit\t4, (ix+%02xh)", 2 },
1432 { "bit\t4, (ix+%02xh)", 2 },
1433 { "bit\t4, (ix+%02xh)", 2 },
1434 { "bit\t4, (ix+%02xh)", 2 },
1435 { "bit\t4, (ix+%02xh)", 2 },
1436 { "bit\t4, (ix+%02xh)", 2 },
1437 { "bit\t5, (ix+%02xh)", 2 },
1438 { "bit\t5, (ix+%02xh)", 2 },
1439 { "bit\t5, (ix+%02xh)", 2 },
1440 { "bit\t5, (ix+%02xh)", 2 },
1441 { "bit\t5, (ix+%02xh)", 2 },
1442 { "bit\t5, (ix+%02xh)", 2 },
1443 { "bit\t5, (ix+%02xh)", 2 },
1444 { "bit\t5, (ix+%02xh)", 2 },
1445 { "bit\t6, (ix+%02xh)", 2 },
1446 { "bit\t6, (ix+%02xh)", 2 },
1447 { "bit\t6, (ix+%02xh)", 2 },
1448 { "bit\t6, (ix+%02xh)", 2 },
1449 { "bit\t6, (ix+%02xh)", 2 },
1450 { "bit\t6, (ix+%02xh)", 2 },
1451 { "bit\t6, (ix+%02xh)", 2 },
1452 { "bit\t6, (ix+%02xh)", 2 },
1453 { "bit\t7, (ix+%02xh)", 2 },
1454 { "bit\t7, (ix+%02xh)", 2 },
1455 { "bit\t7, (ix+%02xh)", 2 },
1456 { "bit\t7, (ix+%02xh)", 2 },
1457 { "bit\t7, (ix+%02xh)", 2 },
1458 { "bit\t7, (ix+%02xh)", 2 },
1459 { "bit\t7, (ix+%02xh)", 2 },
1460 { "bit\t7, (ix+%02xh)", 2 },
1461 { "res\t0, (ix+%02xh), b", 2 },
1462 { "res\t0, (ix+%02xh), c", 2 },
1463 { "res\t0, (ix+%02xh), d", 2 },
1464 { "res\t0, (ix+%02xh), e", 2 },
1465 { "res\t0, (ix+%02xh), h", 2 },
1466 { "res\t0, (ix+%02xh), l", 2 },
1467 { "res\t0, (ix+%02xh)", 2 },
1468 { "res\t0, (ix+%02xh), a", 2 },
1469 { "res\t1, (ix+%02xh), b", 2 },
1470 { "res\t1, (ix+%02xh), c", 2 },
1471 { "res\t1, (ix+%02xh), d", 2 },
1472 { "res\t1, (ix+%02xh), e", 2 },
1473 { "res\t1, (ix+%02xh), h", 2 },
1474 { "res\t1, (ix+%02xh), l", 2 },
1475 { "res\t1, (ix+%02xh)", 2 },
1476 { "res\t1, (ix+%02xh), a", 2 },
1477 { "res\t2, (ix+%02xh), b", 2 },
1478 { "res\t2, (ix+%02xh), c", 2 },
1479 { "res\t2, (ix+%02xh), d", 2 },
1480 { "res\t2, (ix+%02xh), e", 2 },
1481 { "res\t2, (ix+%02xh), h", 2 },
1482 { "res\t2, (ix+%02xh), l", 2 },
1483 { "res\t2, (ix+%02xh)", 2 },
1484 { "res\t2, (ix+%02xh), a", 2 },
1485 { "res\t3, (ix+%02xh), b", 2 },
1486 { "res\t3, (ix+%02xh), c", 2 },
1487 { "res\t3, (ix+%02xh), d", 2 },
1488 { "res\t3, (ix+%02xh), e", 2 },
1489 { "res\t3, (ix+%02xh), h", 2 },
1490 { "res\t3, (ix+%02xh), l", 2 },
1491 { "res\t3, (ix+%02xh)", 2 },
1492 { "res\t3, (ix+%02xh), a", 2 },
1493 { "res\t4, (ix+%02xh), b", 2 },
1494 { "res\t4, (ix+%02xh), c", 2 },
1495 { "res\t4, (ix+%02xh), d", 2 },
1496 { "res\t4, (ix+%02xh), e", 2 },
1497 { "res\t4, (ix+%02xh), h", 2 },
1498 { "res\t4, (ix+%02xh), l", 2 },
1499 { "res\t4, (ix+%02xh)", 2 },
1500 { "res\t4, (ix+%02xh), a", 2 },
1501 { "res\t5, (ix+%02xh), b", 2 },
1502 { "res\t5, (ix+%02xh), c", 2 },
1503 { "res\t5, (ix+%02xh), d", 2 },
1504 { "res\t5, (ix+%02xh), e", 2 },
1505 { "res\t5, (ix+%02xh), h", 2 },
1506 { "res\t5, (ix+%02xh), l", 2 },
1507 { "res\t5, (ix+%02xh)", 2 },
1508 { "res\t5, (ix+%02xh), a", 2 },
1509 { "res\t6, (ix+%02xh), b", 2 },
1510 { "res\t6, (ix+%02xh), c", 2 },
1511 { "res\t6, (ix+%02xh), d", 2 },
1512 { "res\t6, (ix+%02xh), e", 2 },
1513 { "res\t6, (ix+%02xh), h", 2 },
1514 { "res\t6, (ix+%02xh), l", 2 },
1515 { "res\t6, (ix+%02xh)", 2 },
1516 { "res\t6, (ix+%02xh), a", 2 },
1517 { "res\t7, (ix+%02xh), b", 2 },
1518 { "res\t7, (ix+%02xh), c", 2 },
1519 { "res\t7, (ix+%02xh), d", 2 },
1520 { "res\t7, (ix+%02xh), e", 2 },
1521 { "res\t7, (ix+%02xh), h", 2 },
1522 { "res\t7, (ix+%02xh), l", 2 },
1523 { "res\t7, (ix+%02xh)", 2 },
1524 { "res\t7, (ix+%02xh), a", 2 },
1525 { "set\t0, (ix+%02xh), b", 2 },
1526 { "set\t0, (ix+%02xh), c", 2 },
1527 { "set\t0, (ix+%02xh), d", 2 },
1528 { "set\t0, (ix+%02xh), e", 2 },
1529 { "set\t0, (ix+%02xh), h", 2 },
1530 { "set\t0, (ix+%02xh), l", 2 },
1531 { "set\t0, (ix+%02xh)", 2 },
1532 { "set\t0, (ix+%02xh), a", 2 },
1533 { "set\t1, (ix+%02xh), b", 2 },
1534 { "set\t1, (ix+%02xh), c", 2 },
1535 { "set\t1, (ix+%02xh), d", 2 },
1536 { "set\t1, (ix+%02xh), e", 2 },
1537 { "set\t1, (ix+%02xh), h", 2 },
1538 { "set\t1, (ix+%02xh), l", 2 },
1539 { "set\t1, (ix+%02xh)", 2 },
1540 { "set\t1, (ix+%02xh), a", 2 },
1541 { "set\t2, (ix+%02xh), b", 2 },
1542 { "set\t2, (ix+%02xh), c", 2 },
1543 { "set\t2, (ix+%02xh), d", 2 },
1544 { "set\t2, (ix+%02xh), e", 2 },
1545 { "set\t2, (ix+%02xh), h", 2 },
1546 { "set\t2, (ix+%02xh), l", 2 },
1547 { "set\t2, (ix+%02xh)", 2 },
1548 { "set\t2, (ix+%02xh), a", 2 },
1549 { "set\t3, (ix+%02xh), b", 2 },
1550 { "set\t3, (ix+%02xh), c", 2 },
1551 { "set\t3, (ix+%02xh), d", 2 },
1552 { "set\t3, (ix+%02xh), e", 2 },
1553 { "set\t3, (ix+%02xh), h", 2 },
1554 { "set\t3, (ix+%02xh), l", 2 },
1555 { "set\t3, (ix+%02xh)", 2 },
1556 { "set\t3, (ix+%02xh), a", 2 },
1557 { "set\t4, (ix+%02xh), b", 2 },
1558 { "set\t4, (ix+%02xh), c", 2 },
1559 { "set\t4, (ix+%02xh), d", 2 },
1560 { "set\t4, (ix+%02xh), e", 2 },
1561 { "set\t4, (ix+%02xh), h", 2 },
1562 { "set\t4, (ix+%02xh), l", 2 },
1563 { "set\t4, (ix+%02xh)", 2 },
1564 { "set\t4, (ix+%02xh), a", 2 },
1565 { "set\t5, (ix+%02xh), b", 2 },
1566 { "set\t5, (ix+%02xh), c", 2 },
1567 { "set\t5, (ix+%02xh), d", 2 },
1568 { "set\t5, (ix+%02xh), e", 2 },
1569 { "set\t5, (ix+%02xh), h", 2 },
1570 { "set\t5, (ix+%02xh), l", 2 },
1571 { "set\t5, (ix+%02xh)", 2 },
1572 { "set\t5, (ix+%02xh), a", 2 },
1573 { "set\t6, (ix+%02xh), b", 2 },
1574 { "set\t6, (ix+%02xh), c", 2 },
1575 { "set\t6, (ix+%02xh), d", 2 },
1576 { "set\t6, (ix+%02xh), e", 2 },
1577 { "set\t6, (ix+%02xh), h", 2 },
1578 { "set\t6, (ix+%02xh), l", 2 },
1579 { "set\t6, (ix+%02xh)", 2 },
1580 { "set\t6, (ix+%02xh), a", 2 },
1581 { "set\t7, (ix+%02xh), b", 2 },
1582 { "set\t7, (ix+%02xh), c", 2 },
1583 { "set\t7, (ix+%02xh), d", 2 },
1584 { "set\t7, (ix+%02xh), e", 2 },
1585 { "set\t7, (ix+%02xh), h", 2 },
1586 { "set\t7, (ix+%02xh), l", 2 },
1587 { "set\t7, (ix+%02xh)", 2 },
1588 { "set\t7, (ix+%02xh), a", 2 }
1589 ];
1590
1591 /**
1592 * IY bit instructions (FDCB) table for Z80.
1593 */
1594 immutable z80[] insnz80fdcb = [
1595 { "rlc\t(iy+%02xh), b", 2 },
1596 { "rlc\t(iy+%02xh), c", 2 },
1597 { "rlc\t(iy+%02xh), d", 2 },
1598 { "rlc\t(iy+%02xh), e", 2 },
1599 { "rlc\t(iy+%02xh), h", 2 },
1600 { "rlc\t(iy+%02xh), l", 2 },
1601 { "rlc\t(iy+%02xh)", 2 },
1602 { "rlc\t(iy+%02xh), a", 2 },
1603 { "rrc\t(iy+%02xh), b", 2 },
1604 { "rrc\t(iy+%02xh), c", 2 },
1605 { "rrc\t(iy+%02xh), d", 2 },
1606 { "rrc\t(iy+%02xh), e", 2 },
1607 { "rrc\t(iy+%02xh), h", 2 },
1608 { "rrc\t(iy+%02xh), l", 2 },
1609 { "rrc\t(iy+%02xh)", 2 },
1610 { "rrc\t(iy+%02xh), a", 2 },
1611 { "rl\t(iy+%02xh), b", 2 },
1612 { "rl\t(iy+%02xh), c", 2 },
1613 { "rl\t(iy+%02xh), d", 2 },
1614 { "rl\t(iy+%02xh), e", 2 },
1615 { "rl\t(iy+%02xh), h", 2 },
1616 { "rl\t(iy+%02xh), l", 2 },
1617 { "rl\t(iy+%02xh)", 2 },
1618 { "rl\t(iy+%02xh), a", 2 },
1619 { "rr\t(iy+%02xh), b", 2 },
1620 { "rr\t(iy+%02xh), c", 2 },
1621 { "rr\t(iy+%02xh), d", 2 },
1622 { "rr\t(iy+%02xh), e", 2 },
1623 { "rr\t(iy+%02xh), h", 2 },
1624 { "rr\t(iy+%02xh), l", 2 },
1625 { "rr\t(iy+%02xh)", 2 },
1626 { "rr\t(iy+%02xh), a", 2 },
1627 { "sla\t(iy+%02xh), b", 2 },
1628 { "sla\t(iy+%02xh), c", 2 },
1629 { "sla\t(iy+%02xh), d", 2 },
1630 { "sla\t(iy+%02xh), e", 2 },
1631 { "sla\t(iy+%02xh), h", 2 },
1632 { "sla\t(iy+%02xh), l", 2 },
1633 { "sla\t(iy+%02xh)", 2 },
1634 { "sla\t(iy+%02xh), a", 2 },
1635 { "sra\t(iy+%02xh), b", 2 },
1636 { "sra\t(iy+%02xh), c", 2 },
1637 { "sra\t(iy+%02xh), d", 2 },
1638 { "sra\t(iy+%02xh), e", 2 },
1639 { "sra\t(iy+%02xh), h", 2 },
1640 { "sra\t(iy+%02xh), l", 2 },
1641 { "sra\t(iy+%02xh)", 2 },
1642 { "sra\t(iy+%02xh), a", 2 },
1643 { "sll\t(iy+%02xh), b", 2 },
1644 { "sll\t(iy+%02xh), c", 2 },
1645 { "sll\t(iy+%02xh), d", 2 },
1646 { "sll\t(iy+%02xh), e", 2 },
1647 { "sll\t(iy+%02xh), h", 2 },
1648 { "sll\t(iy+%02xh), l", 2 },
1649 { "sll\t(iy+%02xh)", 2 },
1650 { "sll\t(iy+%02xh), a", 2 },
1651 { "srl\t(iy+%02xh), b", 2 },
1652 { "srl\t(iy+%02xh), c", 2 },
1653 { "srl\t(iy+%02xh), d", 2 },
1654 { "srl\t(iy+%02xh), e", 2 },
1655 { "srl\t(iy+%02xh), h", 2 },
1656 { "srl\t(iy+%02xh), l", 2 },
1657 { "srl\t(iy+%02xh)", 2 },
1658 { "srl\t(iy+%02xh), a", 2 },
1659 { "bit\t0, (iy+%02xh)", 2 },
1660 { "bit\t0, (iy+%02xh)", 2 },
1661 { "bit\t0, (iy+%02xh)", 2 },
1662 { "bit\t0, (iy+%02xh)", 2 },
1663 { "bit\t0, (iy+%02xh)", 2 },
1664 { "bit\t0, (iy+%02xh)", 2 },
1665 { "bit\t0, (iy+%02xh)", 2 },
1666 { "bit\t0, (iy+%02xh)", 2 },
1667 { "bit\t1, (iy+%02xh)", 2 },
1668 { "bit\t1, (iy+%02xh)", 2 },
1669 { "bit\t1, (iy+%02xh)", 2 },
1670 { "bit\t1, (iy+%02xh)", 2 },
1671 { "bit\t1, (iy+%02xh)", 2 },
1672 { "bit\t1, (iy+%02xh)", 2 },
1673 { "bit\t1, (iy+%02xh)", 2 },
1674 { "bit\t1, (iy+%02xh)", 2 },
1675 { "bit\t2, (iy+%02xh)", 2 },
1676 { "bit\t2, (iy+%02xh)", 2 },
1677 { "bit\t2, (iy+%02xh)", 2 },
1678 { "bit\t2, (iy+%02xh)", 2 },
1679 { "bit\t2, (iy+%02xh)", 2 },
1680 { "bit\t2, (iy+%02xh)", 2 },
1681 { "bit\t2, (iy+%02xh)", 2 },
1682 { "bit\t2, (iy+%02xh)", 2 },
1683 { "bit\t3, (iy+%02xh)", 2 },
1684 { "bit\t3, (iy+%02xh)", 2 },
1685 { "bit\t3, (iy+%02xh)", 2 },
1686 { "bit\t3, (iy+%02xh)", 2 },
1687 { "bit\t3, (iy+%02xh)", 2 },
1688 { "bit\t3, (iy+%02xh)", 2 },
1689 { "bit\t3, (iy+%02xh)", 2 },
1690 { "bit\t3, (iy+%02xh)", 2 },
1691 { "bit\t4, (iy+%02xh)", 2 },
1692 { "bit\t4, (iy+%02xh)", 2 },
1693 { "bit\t4, (iy+%02xh)", 2 },
1694 { "bit\t4, (iy+%02xh)", 2 },
1695 { "bit\t4, (iy+%02xh)", 2 },
1696 { "bit\t4, (iy+%02xh)", 2 },
1697 { "bit\t4, (iy+%02xh)", 2 },
1698 { "bit\t4, (iy+%02xh)", 2 },
1699 { "bit\t5, (iy+%02xh)", 2 },
1700 { "bit\t5, (iy+%02xh)", 2 },
1701 { "bit\t5, (iy+%02xh)", 2 },
1702 { "bit\t5, (iy+%02xh)", 2 },
1703 { "bit\t5, (iy+%02xh)", 2 },
1704 { "bit\t5, (iy+%02xh)", 2 },
1705 { "bit\t5, (iy+%02xh)", 2 },
1706 { "bit\t5, (iy+%02xh)", 2 },
1707 { "bit\t6, (iy+%02xh)", 2 },
1708 { "bit\t6, (iy+%02xh)", 2 },
1709 { "bit\t6, (iy+%02xh)", 2 },
1710 { "bit\t6, (iy+%02xh)", 2 },
1711 { "bit\t6, (iy+%02xh)", 2 },
1712 { "bit\t6, (iy+%02xh)", 2 },
1713 { "bit\t6, (iy+%02xh)", 2 },
1714 { "bit\t6, (iy+%02xh)", 2 },
1715 { "bit\t7, (iy+%02xh)", 2 },
1716 { "bit\t7, (iy+%02xh)", 2 },
1717 { "bit\t7, (iy+%02xh)", 2 },
1718 { "bit\t7, (iy+%02xh)", 2 },
1719 { "bit\t7, (iy+%02xh)", 2 },
1720 { "bit\t7, (iy+%02xh)", 2 },
1721 { "bit\t7, (iy+%02xh)", 2 },
1722 { "bit\t7, (iy+%02xh)", 2 },
1723 { "res\t0, (iy+%02xh), b", 2 },
1724 { "res\t0, (iy+%02xh), c", 2 },
1725 { "res\t0, (iy+%02xh), d", 2 },
1726 { "res\t0, (iy+%02xh), e", 2 },
1727 { "res\t0, (iy+%02xh), h", 2 },
1728 { "res\t0, (iy+%02xh), l", 2 },
1729 { "res\t0, (iy+%02xh)", 2 },
1730 { "res\t0, (iy+%02xh), a", 2 },
1731 { "res\t1, (iy+%02xh), b", 2 },
1732 { "res\t1, (iy+%02xh), c", 2 },
1733 { "res\t1, (iy+%02xh), d", 2 },
1734 { "res\t1, (iy+%02xh), e", 2 },
1735 { "res\t1, (iy+%02xh), h", 2 },
1736 { "res\t1, (iy+%02xh), l", 2 },
1737 { "res\t1, (iy+%02xh)", 2 },
1738 { "res\t1, (iy+%02xh), a", 2 },
1739 { "res\t2, (iy+%02xh), b", 2 },
1740 { "res\t2, (iy+%02xh), c", 2 },
1741 { "res\t2, (iy+%02xh), d", 2 },
1742 { "res\t2, (iy+%02xh), e", 2 },
1743 { "res\t2, (iy+%02xh), h", 2 },
1744 { "res\t2, (iy+%02xh), l", 2 },
1745 { "res\t2, (iy+%02xh)", 2 },
1746 { "res\t2, (iy+%02xh), a", 2 },
1747 { "res\t3, (iy+%02xh), b", 2 },
1748 { "res\t3, (iy+%02xh), c", 2 },
1749 { "res\t3, (iy+%02xh), d", 2 },
1750 { "res\t3, (iy+%02xh), e", 2 },
1751 { "res\t3, (iy+%02xh), h", 2 },
1752 { "res\t3, (iy+%02xh), l", 2 },
1753 { "res\t3, (iy+%02xh)", 2 },
1754 { "res\t3, (iy+%02xh), a", 2 },
1755 { "res\t4, (iy+%02xh), b", 2 },
1756 { "res\t4, (iy+%02xh), c", 2 },
1757 { "res\t4, (iy+%02xh), d", 2 },
1758 { "res\t4, (iy+%02xh), e", 2 },
1759 { "res\t4, (iy+%02xh), h", 2 },
1760 { "res\t4, (iy+%02xh), l", 2 },
1761 { "res\t4, (iy+%02xh)", 2 },
1762 { "res\t4, (iy+%02xh), a", 2 },
1763 { "res\t5, (iy+%02xh), b", 2 },
1764 { "res\t5, (iy+%02xh), c", 2 },
1765 { "res\t5, (iy+%02xh), d", 2 },
1766 { "res\t5, (iy+%02xh), e", 2 },
1767 { "res\t5, (iy+%02xh), h", 2 },
1768 { "res\t5, (iy+%02xh), l", 2 },
1769 { "res\t5, (iy+%02xh)", 2 },
1770 { "res\t5, (iy+%02xh), a", 2 },
1771 { "res\t6, (iy+%02xh), b", 2 },
1772 { "res\t6, (iy+%02xh), c", 2 },
1773 { "res\t6, (iy+%02xh), d", 2 },
1774 { "res\t6, (iy+%02xh), e", 2 },
1775 { "res\t6, (iy+%02xh), h", 2 },
1776 { "res\t6, (iy+%02xh), l", 2 },
1777 { "res\t6, (iy+%02xh)", 2 },
1778 { "res\t6, (iy+%02xh), a", 2 },
1779 { "res\t7, (iy+%02xh), b", 2 },
1780 { "res\t7, (iy+%02xh), c", 2 },
1781 { "res\t7, (iy+%02xh), d", 2 },
1782 { "res\t7, (iy+%02xh), e", 2 },
1783 { "res\t7, (iy+%02xh), h", 2 },
1784 { "res\t7, (iy+%02xh), l", 2 },
1785 { "res\t7, (iy+%02xh)", 2 },
1786 { "res\t7, (iy+%02xh), a", 2 },
1787 { "set\t0, (iy+%02xh), b", 2 },
1788 { "set\t0, (iy+%02xh), c", 2 },
1789 { "set\t0, (iy+%02xh), d", 2 },
1790 { "set\t0, (iy+%02xh), e", 2 },
1791 { "set\t0, (iy+%02xh), h", 2 },
1792 { "set\t0, (iy+%02xh), l", 2 },
1793 { "set\t0, (iy+%02xh)", 2 },
1794 { "set\t0, (iy+%02xh), a", 2 },
1795 { "set\t1, (iy+%02xh), b", 2 },
1796 { "set\t1, (iy+%02xh), c", 2 },
1797 { "set\t1, (iy+%02xh), d", 2 },
1798 { "set\t1, (iy+%02xh), e", 2 },
1799 { "set\t1, (iy+%02xh), h", 2 },
1800 { "set\t1, (iy+%02xh), l", 2 },
1801 { "set\t1, (iy+%02xh)", 2 },
1802 { "set\t1, (iy+%02xh), a", 2 },
1803 { "set\t2, (iy+%02xh), b", 2 },
1804 { "set\t2, (iy+%02xh), c", 2 },
1805 { "set\t2, (iy+%02xh), d", 2 },
1806 { "set\t2, (iy+%02xh), e", 2 },
1807 { "set\t2, (iy+%02xh), h", 2 },
1808 { "set\t2, (iy+%02xh), l", 2 },
1809 { "set\t2, (iy+%02xh)", 2 },
1810 { "set\t2, (iy+%02xh), a", 2 },
1811 { "set\t3, (iy+%02xh), b", 2 },
1812 { "set\t3, (iy+%02xh), c", 2 },
1813 { "set\t3, (iy+%02xh), d", 2 },
1814 { "set\t3, (iy+%02xh), e", 2 },
1815 { "set\t3, (iy+%02xh), h", 2 },
1816 { "set\t3, (iy+%02xh), l", 2 },
1817 { "set\t3, (iy+%02xh)", 2 },
1818 { "set\t3, (iy+%02xh), a", 2 },
1819 { "set\t4, (iy+%02xh), b", 2 },
1820 { "set\t4, (iy+%02xh), c", 2 },
1821 { "set\t4, (iy+%02xh), d", 2 },
1822 { "set\t4, (iy+%02xh), e", 2 },
1823 { "set\t4, (iy+%02xh), h", 2 },
1824 { "set\t4, (iy+%02xh), l", 2 },
1825 { "set\t4, (iy+%02xh)", 2 },
1826 { "set\t4, (iy+%02xh), a", 2 },
1827 { "set\t5, (iy+%02xh), b", 2 },
1828 { "set\t5, (iy+%02xh), c", 2 },
1829 { "set\t5, (iy+%02xh), d", 2 },
1830 { "set\t5, (iy+%02xh), e", 2 },
1831 { "set\t5, (iy+%02xh), h", 2 },
1832 { "set\t5, (iy+%02xh), l", 2 },
1833 { "set\t5, (iy+%02xh)", 2 },
1834 { "set\t5, (iy+%02xh), a", 2 },
1835 { "set\t6, (iy+%02xh), b", 2 },
1836 { "set\t6, (iy+%02xh), c", 2 },
1837 { "set\t6, (iy+%02xh), d", 2 },
1838 { "set\t6, (iy+%02xh), e", 2 },
1839 { "set\t6, (iy+%02xh), h", 2 },
1840 { "set\t6, (iy+%02xh), l", 2 },
1841 { "set\t6, (iy+%02xh)", 2 },
1842 { "set\t6, (iy+%02xh), a", 2 },
1843 { "set\t7, (iy+%02xh), b", 2 },
1844 { "set\t7, (iy+%02xh), c", 2 },
1845 { "set\t7, (iy+%02xh), d", 2 },
1846 { "set\t7, (iy+%02xh), e", 2 },
1847 { "set\t7, (iy+%02xh), h", 2 },
1848 { "set\t7, (iy+%02xh), l", 2 },
1849 { "set\t7, (iy+%02xh)", 2 },
1850 { "set\t7, (iy+%02xh), a", 2 }
1851 ];