home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
EMULATOR
/
UNIX
/
CAIN2
/
DASM.C
< prev
next >
Wrap
C/C++ Source or Header
|
2000-06-30
|
42KB
|
1,526 lines
/*
dasm
CP/M emulator - instruction disassembler
Written by D'Arcy J.M. Cain
darcy@druid
The core of this code taken from a program with no authorship or copyright
notice so I can't credit the original. Sorry.
*/
#include <stdio.h>
#include <string.h>
#include "cpm.h"
#define get_prog_word(buf) (buf[1] + (buf[2] << 8))
#define get_prog_byte(buf, x) (buf[x + 1])
char undefined[] = "undefined";
struct opcode {
const char *name;
int args;
};
/*
The name is taken as a printf format string and arguments are given based
on the args variable
0 means no arguments needed
1 means use byte following opcode as argument
2 means use word following opcode as argument
3 means use byte but convert to relative address
4 means use next two bytes as two arguments
*/
struct opcode major[256] = {
"nop", 0, /* 00 */
"ld bc, 0%04.4xh", 2, /* 01 */
"ld bc, a", 0, /* 02 */
"inc bc", 0, /* 03 */
"inc b", 0, /* 04 */
"dec b", 0, /* 05 */
"ld b, 0%02.2xh", 1, /* 06 */
"rlc a", 0, /* 07 */
"ex af, af'", 0, /* 08 */
"add hl, bc", 0, /* 09 */
"ld a, (bc)", 0, /* 0a */
"dec bc", 0, /* 0b */
"inc c", 0, /* 0c */
"dec c", 0, /* 0d */
"ld c, 0%02.2xh", 1, /* 0e */
"rrc a", 0, /* 0f */
"djnz 0%04.4xh", 3, /* 10 */
"ld de, 0%04.4xh", 2, /* 11 */
"ld (de), a", 0, /* 12 */
"inc de", 0, /* 13 */
"inc d", 0, /* 14 */
"dec d", 0, /* 15 */
"ld d, 0%02.2xh", 1, /* 16 */
"rla", 0, /* 17 */
"jr 0%04.4xh", 3, /* 18 */
"add hl, de", 0, /* 19 */
"ld a, (de)", 0, /* 1a */
"dec de", 0, /* 1b */
"inc e", 0, /* 1c */
"dec e", 0, /* 1d */
"ld e, 0%02.2xh", 1, /* 1e */
"rra", 0, /* 1f */
"jr nz, 0%04.4xh", 3, /* 20 */
"ld hl, 0%04.4xh", 2, /* 21 */
"ld (0%04.4xh), hl",2, /* 22 */
"inc hl", 0, /* 23 */
"inc h", 0, /* 24 */
"dec h", 0, /* 25 */
"ld h, 0%02.2xh", 1, /* 26 */
"daa", 0, /* 27 */
"jr z, 0%04.4xh", 3, /* 28 */
"add hl, hl", 0, /* 29 */
"ld hl, (0%04.4xh)",2, /* 2a */
"dec hl", 0, /* 2b */
"inc l", 0, /* 2c */
"dec l", 0, /* 2d */
"ld l, 0%02.2xh", 1, /* 2e */
"cpl", 0, /* 2f */
"jr nc, 0%04.4xh", 3, /* 30 */
"ld sp, 0%04.4xh", 2, /* 31 */
"ld (0%04.4xh), a", 2, /* 32 */
"inc sp", 0, /* 33 */
"inc (hl)", 0, /* 34 */
"dec (hl)", 0, /* 35 */
"ld (hl), 0%02.2xh",1, /* 36 */
"scf", 0, /* 37 */
"jr c, 0%04.4xh", 3, /* 38 */
"add hl, sp", 0, /* 39 */
"ld a, (0%04.4xh)", 2, /* 3a */
"dec sp", 0, /* 3b */
"inc a", 0, /* 3c */
"dec a", 0, /* 3d */
"ld a, 0%02.2xh", 1, /* 3e */
"ccf", 0, /* 3f */
"ld b, b", 0, /* 40 */
"ld b, c", 0, /* 41 */
"ld b, d", 0, /* 42 */
"ld b, e", 0, /* 43 */
"ld b, h", 0, /* 44 */
"ld b, l", 0, /* 45 */
"ld b, (hl)", 0, /* 46 */
"ld b, a", 0, /* 47 */
"ld c, b", 0, /* 48 */
"ld c, c", 0, /* 49 */
"ld c, d", 0, /* 4a */
"ld c, e", 0, /* 4b */
"ld c, h", 0, /* 4c */
"ld c, l", 0, /* 4d */
"ld c, (hl)", 0, /* 4e */
"ld c, a", 0, /* 4f */
"ld d, b", 0, /* 50 */
"ld d, c", 0, /* 51 */
"ld d, d", 0, /* 52 */
"ld d, e", 0, /* 53 */
"ld d, h", 0, /* 54 */
"ld d, l", 0, /* 55 */
"ld d, (hl)", 0, /* 56 */
"ld d, a", 0, /* 57 */
"ld e, b", 0, /* 58 */
"ld e, c", 0, /* 59 */
"ld e, d", 0, /* 5a */
"ld e, e", 0, /* 5b */
"ld e, h", 0, /* 5c */
"ld e, l", 0, /* 5d */
"ld e, (hl)", 0, /* 5e */
"ld e, a", 0, /* 5f */
"ld h, b", 0, /* 60 */
"ld h, c", 0, /* 61 */
"ld h, d", 0, /* 62 */
"ld h, e", 0, /* 63 */
"ld h, h", 0, /* 64 */
"ld h, l", 0, /* 65 */
"ld h, (hl)", 0, /* 66 */
"ld h, a", 0, /* 67 */
"ld l, b", 0, /* 68 */
"ld l, c", 0, /* 69 */
"ld l, d", 0, /* 6a */
"ld l, e", 0, /* 6b */
"ld l, h", 0, /* 6c */
"ld l, l", 0, /* 6d */
"ld l, (hl)", 0, /* 6e */
"ld l, a", 0, /* 6f */
"ld (hl), b", 0, /* 70 */
"ld (hl), c", 0, /* 71 */
"ld (hl), d", 0, /* 72 */
"ld (hl), e", 0, /* 73 */
"ld (hl), h", 0, /* 74 */
"ld (hl), l", 0, /* 75 */
"halt", 0, /* 76 */
"ld (hl), a", 0, /* 77 */
"ld a, b", 0, /* 78 */
"ld a, c", 0, /* 79 */
"ld a, d", 0, /* 7a */
"ld a, e", 0, /* 7b */
"ld a, h", 0, /* 7c */
"ld a, l", 0, /* 7d */
"ld a, (hl)", 0, /* 7e */
"ld a, a", 0, /* 7f */
"add a, b", 0, /* 80 */
"add a, c", 0, /* 81 */
"add a, d", 0, /* 82 */
"add a, e", 0, /* 83 */
"add a, h", 0, /* 84 */
"add a, l", 0, /* 85 */
"add a, (hl)", 0, /* 86 */
"add a, a", 0, /* 87 */
"adc a, b", 0, /* 88 */
"adc a, c", 0, /* 89 */
"adc a, d", 0, /* 8a */
"adc a, e", 0, /* 8b */
"adc a, h", 0, /* 8c */
"adc a, l", 0, /* 8d */
"adc a, (hl)", 0, /* 8e */
"adc a, a", 0, /* 8f */
"sub b", 0, /* 90 */
"sub c", 0, /* 91 */
"sub d", 0, /* 92 */
"sub e", 0, /* 93 */
"sub h", 0, /* 94 */
"sub l", 0, /* 95 */
"sub (hl)", 0, /* 96 */
"sub a", 0, /* 97 */
"sbc a, b", 0, /* 98 */
"sbc a, c", 0, /* 99 */
"sbc a, d", 0, /* 9a */
"sbc a, e", 0, /* 9b */
"sbc a, h", 0, /* 9c */
"sbc a, l", 0, /* 9d */
"sbc a, (hl)", 0, /* 9e */
"sbc a, a", 0, /* 9f */
"and b", 0, /* a0 */
"and c", 0, /* a1 */
"and d", 0, /* a2 */
"and e", 0, /* a3 */
"and h", 0, /* a4 */
"and l", 0, /* a5 */
"and (hl)", 0, /* a6 */
"and a", 0, /* a7 */
"xor b", 0, /* a8 */
"xor c", 0, /* a9 */
"xor d", 0, /* aa */
"xor e", 0, /* ab */
"xor h", 0, /* ac */
"xor l", 0, /* ad */
"xor (hl)", 0, /* ae */
"xor a", 0, /* af */
"or b", 0, /* b0 */
"or c", 0, /* b1 */
"or d", 0, /* b2 */
"or e", 0, /* b3 */
"or h", 0, /* b4 */
"or l", 0, /* b5 */
"or (hl)", 0, /* b6 */
"or a", 0, /* b7 */
"cp b", 0, /* b8 */
"cp c", 0, /* b9 */
"cp d", 0, /* ba */
"cp e", 0, /* bb */
"cp h", 0, /* bc */
"cp l", 0, /* bd */
"cp (hl)", 0, /* be */
"cp a", 0, /* bf */
"ret nz", 0, /* c0 */
"pop bc", 0, /* c1 */
"jp nz, 0%04.4xh", 2, /* c2 */
"jp 0%04.4xh", 2, /* c3 */
"call nz, 0%04.4xh", 2, /* c4 */
"push bc", 0, /* c5 */
"add a, 0%02.2xh", 1, /* c6 */
"rst 0", 0, /* c7 */
"ret z", 0, /* c8 */
"ret", 0, /* c9 */
"jp z, 0%04.4xh", 2, /* ca */
0, 0, /* cb */
"call z, 0%04.4xh", 2, /* cc */
"call 0%04.4xh", 2, /* cd */
"adc a, 0%022.2xh", 1, /* ce */
"rst 8", 0, /* cf */
"ret nc", 0, /* d0 */
"pop de", 0, /* d1 */
"jp nc, 0%04.4xh", 2, /* d2 */
"out (0%02.2xh), a", 1, /* d3 */
"call nc, 0%04.4xh", 2, /* d4 */
"push de", 0, /* d5 */
"sub 0%02.2xh", 1, /* d6 */
"rst 10h", 0, /* d7 */
"ret c", 0, /* d8 */
"exx", 0, /* d9 */
"jp c, 0%04.4xh", 2, /* da */
"in a, (0%02.2xh)", 1, /* db */
"call c, 0%04.4xh", 2, /* dc */
0, 1, /* dd */
"sbc a, 0%02.2xh", 1, /* de */
"rst 18h", 0, /* df */
"ret po", 0, /* e0 */
"pop hl", 0, /* e1 */
"jp po, 0%04.4xh", 2, /* e2 */
"ex (sp), hl", 0, /* e3 */
"call po, 0%04.4xh", 2, /* e4 */
"push hl", 0, /* e5 */
"and 0%02.2xh", 1, /* e6 */
"rst 20h", 0, /* e7 */
"ret pe", 0, /* e8 */
"jp (hl)", 0, /* e9 */
"jp pe, 0%04.4xh", 2, /* ea */
"ex de, hl", 0, /* eb */
"call pe, 0%04.4xh", 2, /* ec */
0, 2, /* ed */
"xor 0%02.2xh", 1, /* ee */
"rst 28h", 0, /* ef */
"ret p", 0, /* f0 */
"pop af", 0, /* f1 */
"jp p, 0%04.4xh", 2, /* f2 */
"di", 0, /* f3 */
"call p, 0%04.4xh", 2, /* f4 */
"push af", 0, /* f5 */
"or 0%02.2xh", 1, /* f6 */
"rst 30h", 0, /* f7 */
"ret m", 0, /* f8 */
"ld sp, hl", 0, /* f9 */
"jp m, 0%04.4xh", 2, /* fa */
"ei", 0, /* fb */
"call m, 0%04.4xh", 2, /* fc */
0, 3, /* fd */
"cp 0%02.2xh", 1, /* fe */
"rst 38h", 0, /* ff */
};
struct opcode minor[4][256] = {
/* cb */
"rlc b", 0, /* cb00 */
"rlc c", 0, /* cb01 */
"rlc d", 0, /* cb02 */
"rlc e", 0, /* cb03 */
"rlc h", 0, /* cb04 */
"rlc l", 0, /* cb05 */
"rlc (hl)", 0, /* cb06 */
"rlc a", 0, /* cb07 */
"rrc b", 0, /* cb08 */
"rrc c", 0, /* cb09 */
"rrc d", 0, /* cb0a */
"rrc e", 0, /* cb0b */
"rrc h", 0, /* cb0c */
"rrc l", 0, /* cb0d */
"rrc (hl)", 0, /* cb0e */
"rrc a", 0, /* cb0f */
"rl b", 0, /* cb10 */
"rl c", 0, /* cb11 */
"rl d", 0, /* cb12 */
"rl e", 0, /* cb13 */
"rl h", 0, /* cb14 */
"rl l", 0, /* cb15 */
"rl (hl)", 0, /* cb16 */
"rl a", 0, /* cb17 */
"rr b", 0, /* cb18 */
"rr c", 0, /* cb19 */
"rr d", 0, /* cb1a */
"rr e", 0, /* cb1b */
"rr h", 0, /* cb1c */
"rr l", 0, /* cb1d */
"rr (hl)", 0, /* cb1e */
"rr a", 0, /* cb1f */
"sla b", 0, /* cb20 */
"sla c", 0, /* cb21 */
"sla d", 0, /* cb22 */
"sla e", 0, /* cb23 */
"sla h", 0, /* cb24 */
"sla l", 0, /* cb25 */
"sla (hl)", 0, /* cb26 */
"sla a", 0, /* cb27 */
"sra b", 0, /* cb28 */
"sra c", 0, /* cb29 */
"sra d", 0, /* cb2a */
"sra e", 0, /* cb2b */
"sra h", 0, /* cb2c */
"sra l", 0, /* cb2d */
"sra (hl)", 0, /* cb2e */
"sra a", 0, /* cb2f */
undefined, 0, /* cb30 */
undefined, 0, /* cb31 */
undefined, 0, /* cb32 */
undefined, 0, /* cb33 */
undefined, 0, /* cb34 */
undefined, 0, /* cb35 */
undefined, 0, /* cb36 */
undefined, 0, /* cb37 */
"srl b", 0, /* cb38 */
"srl c", 0, /* cb39 */
"srl d", 0, /* cb3a */
"srl e", 0, /* cb3b */
"srl h", 0, /* cb3c */
"srl l", 0, /* cb3d */
"srl (hl)", 0, /* cb3e */
"srl a", 0, /* cb3f */
"bit 0, b", 0, /* cb40 */
"bit 0, c", 0, /* cb41 */
"bit 0, d", 0, /* cb42 */
"bit 0, e", 0, /* cb43 */
"bit 0, h", 0, /* cb44 */
"bit 0, l", 0, /* cb45 */
"bit 0, (hl)", 0, /* cb46 */
"bit 0, a", 0, /* cb47 */
"bit 1, b", 0, /* cb48 */
"bit 1, c", 0, /* cb49 */
"bit 1, d", 0, /* cb4a */
"bit 1, e", 0, /* cb4b */
"bit 1, h", 0, /* cb4c */
"bit 1, l", 0, /* cb4d */
"bit 1, (hl)", 0, /* cb4e */
"bit 1, a", 0, /* cb4f */
"bit 2, b", 0, /* cb50 */
"bit 2, c", 0, /* cb51 */
"bit 2, d", 0, /* cb52 */
"bit 2, e", 0, /* cb53 */
"bit 2, h", 0, /* cb54 */
"bit 2, l", 0, /* cb55 */
"bit 2, (hl)", 0, /* cb56 */
"bit 2, a", 0, /* cb57 */
"bit 3, b", 0, /* cb58 */
"bit 3, c", 0, /* cb59 */
"bit 3, d", 0, /* cb5a */
"bit 3, e", 0, /* cb5b */
"bit 3, h", 0, /* cb5c */
"bit 3, l", 0, /* cb5d */
"bit 3, (hl)", 0, /* cb5e */
"bit 3, a", 0, /* cb5f */
"bit 4, b", 0, /* cb60 */
"bit 4, c", 0, /* cb61 */
"bit 4, d", 0, /* cb62 */
"bit 4, e", 0, /* cb63 */
"bit 4, h", 0, /* cb64 */
"bit 4, l", 0, /* cb65 */
"bit 4, (hl)", 0, /* cb66 */
"bit 4, a", 0, /* cb67 */
"bit 5, b", 0, /* cb68 */
"bit 5, c", 0, /* cb69 */
"bit 5, d", 0, /* cb6a */
"bit 5, e", 0, /* cb6b */
"bit 5, h", 0, /* cb6c */
"bit 5, l", 0, /* cb6d */
"bit 5, (hl)", 0, /* cb6e */
"bit 5, a", 0, /* cb6f */
"bit 6, b", 0, /* cb70 */
"bit 6, c", 0, /* cb71 */
"bit 6, d", 0, /* cb72 */
"bit 6, e", 0, /* cb73 */
"bit 6, h", 0, /* cb74 */
"bit 6, l", 0, /* cb75 */
"bit 6, (hl)", 0, /* cb76 */
"bit 6, a", 0, /* cb77 */
"bit 7, b", 0, /* cb78 */
"bit 7, c", 0, /* cb79 */
"bit 7, d", 0, /* cb7a */
"bit 7, e", 0, /* cb7b */
"bit 7, h", 0, /* cb7c */
"bit 7, l", 0, /* cb7d */
"bit 7, (hl)", 0, /* cb7e */
"bit 7, a", 0, /* cb7f */
"res 0, b", 0, /* cb80 */
"res 0, c", 0, /* cb81 */
"res 0, d", 0, /* cb82 */
"res 0, e", 0, /* cb83 */
"res 0, h", 0, /* cb84 */
"res 0, l", 0, /* cb85 */
"res 0, (hl)", 0, /* cb86 */
"res 0, a", 0, /* cb87 */
"res 1, b", 0, /* cb88 */
"res 1, c", 0, /* cb89 */
"res 1, d", 0, /* cb8a */
"res 1, e", 0, /* cb8b */
"res 1, h", 0, /* cb8c */
"res 1, l", 0, /* cb8d */
"res 1, (hl)", 0, /* cb8e */
"res 1, a", 0, /* cb8f */
"res 2, b", 0, /* cb90 */
"res 2, c", 0, /* cb91 */
"res 2, d", 0, /* cb92 */
"res 2, e", 0, /* cb93 */
"res 2, h", 0, /* cb94 */
"res 2, l", 0, /* cb95 */
"res 2, (hl)", 0, /* cb96 */
"res 2, a", 0, /* cb97 */
"res 3, b", 0, /* cb98 */
"res 3, c", 0, /* cb99 */
"res 3, d", 0, /* cb9a */
"res 3, e", 0, /* cb9b */
"res 3, h", 0, /* cb9c */
"res 3, l", 0, /* cb9d */
"res 3, (hl)", 0, /* cb9e */
"res 3 ,a", 0, /* cb9f */
"res 4, b", 0, /* cba0 */
"res 4, c", 0, /* cba1 */
"res 4, d", 0, /* cba2 */
"res 4, e", 0, /* cba3 */
"res 4, h", 0, /* cba4 */
"res 4, l", 0, /* cba5 */
"res 4, (hl)", 0, /* cba6 */
"res 4, a", 0, /* cba7 */
"res 5, b", 0, /* cba8 */
"res 5, c", 0, /* cba9 */
"res 5, d", 0, /* cbaa */
"res 5, e", 0, /* cbab */
"res 5, h", 0, /* cbac */
"res 5, l", 0, /* cbad */
"res 5, (hl)", 0, /* cbae */
"res 5, a", 0, /* cbaf */
"res 6, b", 0, /* cbb0 */
"res 6, c", 0, /* cbb1 */
"res 6, d", 0, /* cbb2 */
"res 6, e", 0, /* cbb3 */
"res 6, h", 0, /* cbb4 */
"res 6, l", 0, /* cbb5 */
"res 6, (hl)", 0, /* cbb6 */
"res 6, a", 0, /* cbb7 */
"res 7, b", 0, /* cbb8 */
"res 7, c", 0, /* cbb9 */
"res 7, d", 0, /* cbba */
"res 7, e", 0, /* cbbb */
"res 7, h", 0, /* cbbc */
"res 7, l", 0, /* cbbd */
"res 7, (hl)", 0, /* cbbe */
"res 7, a", 0, /* cbbf */
"set 0, b", 0, /* cbc0 */
"set 0, c", 0, /* cbc1 */
"set 0, d", 0, /* cbc2 */
"set 0, e", 0, /* cbc3 */
"set 0, h", 0, /* cbc4 */
"set 0, l", 0, /* cbc5 */
"set 0, (hl)", 0, /* cbc6 */
"set 0, a", 0, /* cbc7 */
"set 1, b", 0, /* cbc8 */
"set 1, c", 0, /* cbc9 */
"set 1, d", 0, /* cbca */
"set 1, e", 0, /* cbcb */
"set 1, h", 0, /* cbcc */
"set 1, l", 0, /* cbcd */
"set 1, (hl)", 0, /* cbce */
"set 1, a", 0, /* cbcf */
"set 2, b", 0, /* cbd0 */
"set 2, c", 0, /* cbd1 */
"set 2, d", 0, /* cbd2 */
"set 2, e", 0, /* cbd3 */
"set 2, h", 0, /* cbd4 */
"set 2, l", 0, /* cbd5 */
"set 2, (hl)", 0, /* cbd6 */
"set 2, a", 0, /* cbd7 */
"set 3, b", 0, /* cbd8 */
"set 3, c", 0, /* cbd9 */
"set 3, d", 0, /* cbda */
"set 3, e", 0, /* cbdb */
"set 3, h", 0, /* cbdc */
"set 3, l", 0, /* cbdd */
"set 3, (hl)", 0, /* cbde */
"set 3, a", 0, /* cbdf */
"set 4, b", 0, /* cbe0 */
"set 4, c", 0, /* cbe1 */
"set 4, d", 0, /* cbe2 */
"set 4, e", 0, /* cbe3 */
"set 4, h", 0, /* cbe4 */
"set 4, l", 0, /* cbe5 */
"set 4, (hl)", 0, /* cbe6 */
"set 4, a", 0, /* cbe7 */
"set 5, b", 0, /* cbe8 */
"set 5, c", 0, /* cbe9 */
"set 5, d", 0, /* cbea */
"set 5, e", 0, /* cbeb */
"set 5 ,h", 0, /* cbec */
"set 5, l", 0, /* cbed */
"set 5, (hl)", 0, /* cbee */
"set 5, a", 0, /* cbef */
"set 6, b", 0, /* cbf0 */
"set 6, c", 0, /* cbf1 */
"set 6, d", 0, /* cbf2 */
"set 6, e", 0, /* cbf3 */
"set 6, h", 0, /* cbf4 */
"set 6, l", 0, /* cbf5 */
"set 6, (hl)", 0, /* cbf6 */
"set 6, a", 0, /* cbf7 */
"set 7, b", 0, /* cbf8 */
"set 7, c", 0, /* cbf9 */
"set 7, d", 0, /* cbfa */
"set 7, e", 0, /* cbfb */
"set 7, h", 0, /* cbfc */
"set 7, l", 0, /* cbfd */
"set 7, (hl)", 0, /* cbfe */
"set 7, a", 0, /* cbff */
/* dd */
undefined, 0, /* dd00 */
undefined, 0, /* dd01 */
undefined, 0, /* dd02 */
undefined, 0, /* dd03 */
undefined, 0, /* dd04 */
undefined, 0, /* dd05 */
undefined, 0, /* dd06 */
undefined, 0, /* dd07 */
undefined, 0, /* dd08 */
"add ix, bc", 0, /* dd09 */
undefined, 0, /* dd0a */
undefined, 0, /* dd0b */
undefined, 0, /* dd0c */
undefined, 0, /* dd0d */
undefined, 0, /* dd0e */
undefined, 0, /* dd0f */
undefined , 0, /* dd10 */
undefined , 0, /* dd11 */
undefined , 0, /* dd12 */
undefined , 0, /* dd13 */
undefined , 0, /* dd14 */
undefined , 0, /* dd15 */
undefined , 0, /* dd16 */
undefined , 0, /* dd17 */
undefined , 0, /* dd18 */
"add ix, de", 0, /* dd19 */
undefined , 0, /* dd1a */
undefined , 0, /* dd1b */
undefined , 0, /* dd1c */
undefined , 0, /* dd1d */
undefined , 0, /* dd1e */
undefined , 0, /* dd1f */
undefined , 0, /* dd20 */
"ld ix, 0%04.4xh", 2, /* dd21 */
"ld (0%04.4xh), ix",2, /* dd22 */
"inc ix", 0, /* dd23 */
undefined , 0, /* dd24 */
undefined , 0, /* dd25 */
undefined , 0, /* dd26 */
undefined , 0, /* dd27 */
undefined , 0, /* dd28 */
"add ix, ix", 0, /* dd29 */
"ld ix, (0%04.4xh)",2, /* dd2a */
"dec ix", 0, /* dd2b */
undefined , 0, /* dd2c */
undefined , 0, /* dd2d */
undefined , 0, /* dd2e */
undefined , 0, /* dd2f */
undefined , 0, /* dd30 */
undefined , 0, /* dd31 */
undefined , 0, /* dd32 */
undefined , 0, /* dd33 */
"inc (ix+0%02.2xh)", 1, /* dd34 */
"dec (ix+0%02.2xh)", 1, /* dd35 */
"ld (ix+0%02.2xh), 0%02.2xh",2,/* dd36 */
undefined , 0, /* dd37 */
undefined , 0, /* dd38 */
"add ix, sp", 0, /* dd39 */
undefined , 0, /* dd3a */
undefined , 0, /* dd3b */
undefined , 0, /* dd3c */
undefined , 0, /* dd3d */
undefined , 0, /* dd3e */
undefined , 0, /* dd3f */
undefined , 0, /* dd40 */
undefined , 0, /* dd41 */
undefined , 0, /* dd42 */
undefined , 0, /* dd43 */
undefined , 0, /* dd44 */
undefined , 0, /* dd45 */
"ld b, (ix+0%02.2xh)",1, /* dd46 */
undefined , 0, /* dd47 */
undefined , 0, /* dd48 */
undefined , 0, /* dd49 */
undefined , 0, /* dd4a */
undefined , 0, /* dd4b */
undefined , 0, /* dd4c */
undefined , 0, /* dd4d */
"ld c, (ix+0%02.2xh)",1, /* dd4e */
undefined , 0, /* dd4f */
undefined , 0, /* dd50 */
undefined , 0, /* dd51 */
undefined , 0, /* dd52 */
undefined , 0, /* dd53 */
undefined , 0, /* dd54 */
undefined , 0, /* dd55 */
"ld d, (ix+0%02.2xh)",1, /* dd56 */
undefined , 0, /* dd57 */
undefined , 0, /* dd58 */
undefined , 0, /* dd59 */
undefined , 0, /* dd5a */
undefined , 0, /* dd5b */
undefined , 0, /* dd5c */
undefined , 0, /* dd5d */
"ld e, (ix+0%02.2xh)",1, /* dd5e */
undefined , 0, /* dd5f */
undefined , 0, /* dd60 */
undefined , 0, /* dd61 */
undefined , 0, /* dd62 */
undefined , 0, /* dd63 */
undefined , 0, /* dd64 */
undefined , 0, /* dd65 */
"ld h, (ix+0%02.2xh)",1, /* dd66 */
undefined , 0, /* dd67 */
undefined , 0, /* dd68 */
undefined , 0, /* dd69 */
undefined , 0, /* dd6a */
undefined , 0, /* dd6b */
undefined , 0, /* dd6c */
undefined , 0, /* dd6d */
"ld l, (ix+0%02.2xh)",1, /* dd6e */
undefined , 0, /* dd6f */
"ld (ix+0%02.2xh), b",1, /* dd70 */
"ld (ix+0%02.2xh), c",1, /* dd71 */
"ld (ix+0%02.2xh), d",1, /* dd72 */
"ld (ix+0%02.2xh), e",1, /* dd73 */
"ld (ix+0%02.2xh), h",1, /* dd74 */
"ld (ix+0%02.2xh), l",1, /* dd75 */
undefined , 0, /* dd76 */
"ld (ix+0%02.2xh), a",1, /* dd77 */
undefined , 0, /* dd78 */
undefined , 0, /* dd79 */
undefined , 0, /* dd7a */
undefined , 0, /* dd7b */
undefined , 0, /* dd7c */
undefined , 0, /* dd7d */
"ld a, (ix+0%02.2xh)",1, /* dd7e */
undefined , 0, /* dd7f */
undefined , 0, /* dd80 */
undefined , 0, /* dd81 */
undefined , 0, /* dd82 */
undefined , 0, /* dd83 */
undefined , 0, /* dd84 */
undefined , 0, /* dd85 */
"add a, (ix+0%02.2xh)",1, /* dd86 */
undefined , 0, /* dd87 */
undefined , 0, /* dd88 */
undefined , 0, /* dd89 */
undefined , 0, /* dd8a */
undefined , 0, /* dd8b */
undefined , 0, /* dd8c */
undefined , 0, /* dd8d */
"adc a, (ix+0%02.2xh)",1, /* dd8e */
undefined , 0, /* dd8f */
undefined , 0, /* dd90 */
undefined , 0, /* dd91 */
undefined , 0, /* dd92 */
undefined , 0, /* dd93 */
undefined , 0, /* dd94 */
undefined , 0, /* dd95 */
"sub (ix+0%02.2xh)",1, /* dd96 */
undefined , 0, /* dd97 */
undefined , 0, /* dd98 */
undefined , 0, /* dd99 */
undefined , 0, /* dd9a */
undefined , 0, /* dd9b */
undefined , 0, /* dd9c */
undefined , 0, /* dd9d */
"sbc a, (ix+0%02.2xh)",1, /* dd9e */
undefined , 0, /* dd9f */
undefined , 0, /* dda0 */
undefined , 0, /* dda1 */
undefined , 0, /* dda2 */
undefined , 0, /* dda3 */
undefined , 0, /* dda4 */
undefined , 0, /* dda5 */
"and (ix+0%02.2xh)",1, /* dda6 */
undefined , 0, /* dda7 */
undefined , 0, /* dda8 */
undefined , 0, /* dda9 */
undefined , 0, /* ddaa */
undefined , 0, /* ddab */
undefined , 0, /* ddac */
undefined , 0, /* ddad */
"xor (ix+0%02.2xh)",1, /* ddae */
undefined , 0, /* ddaf */
undefined , 0, /* ddb0 */
undefined , 0, /* ddb1 */
undefined , 0, /* ddb2 */
undefined , 0, /* ddb3 */
undefined , 0, /* ddb4 */
undefined , 0, /* ddb5 */
"or (ix+0%02.2xh)", 1, /* ddb6 */
undefined , 0, /* ddb7 */
undefined , 0, /* ddb8 */
undefined , 0, /* ddb9 */
undefined , 0, /* ddba */
undefined , 0, /* ddbb */
undefined , 0, /* ddbc */
undefined , 0, /* ddbd */
"cp (ix+0%02.2xh)", 1, /* ddbe */
undefined , 0, /* ddbf */
undefined , 0, /* ddc0 */
undefined , 0, /* ddc1 */
undefined , 0, /* ddc2 */
undefined , 0, /* ddc3 */
undefined , 0, /* ddc4 */
undefined , 0, /* ddc5 */
undefined , 0, /* ddc6 */
undefined , 0, /* ddc7 */
undefined , 0, /* ddc8 */
undefined , 0, /* ddc9 */
undefined , 0, /* ddca */
"dd cb 0%02.2x, 0%02.2x",4, /* ddcb */
undefined , 0, /* ddcc */
undefined , 0, /* ddcd */
undefined , 0, /* ddce */
undefined , 0, /* ddcf */
undefined , 0, /* ddd0 */
undefined , 0, /* ddd1 */
undefined , 0, /* ddd2 */
undefined , 0, /* ddd3 */
undefined , 0, /* ddd4 */
undefined , 0, /* ddd5 */
undefined , 0, /* ddd6 */
undefined , 0, /* ddd7 */
undefined , 0, /* ddd8 */
undefined , 0, /* ddd9 */
undefined , 0, /* ddda */
undefined , 0, /* dddb */
undefined , 0, /* dddc */
undefined , 0, /* dddd */
undefined , 0, /* ddde */
undefined , 0, /* dddf */
undefined , 0, /* dde0 */
"pop ix", 0, /* dde1 */
undefined , 0, /* dde2 */
"ex (sp), ix", 0, /* dde3 */
undefined , 0, /* dde4 */
"push ix", 0, /* dde5 */
undefined , 0, /* dde6 */
undefined , 0, /* dde7 */
undefined , 0, /* dde8 */
"jp (ix)", 0, /* dde9 */
undefined , 0, /* ddea */
undefined , 0, /* ddeb */
undefined , 0, /* ddec */
undefined , 0, /* dded */
undefined , 0, /* ddee */
undefined , 0, /* ddef */
undefined , 0, /* ddf0 */
undefined , 0, /* ddf1 */
undefined , 0, /* ddf2 */
undefined , 0, /* ddf3 */
undefined , 0, /* ddf4 */
undefined , 0, /* ddf5 */
undefined , 0, /* ddf6 */
undefined , 0, /* ddf7 */
undefined , 0, /* ddf8 */
"ld sp, ix", 0, /* ddf9 */
undefined , 0, /* ddfa */
undefined , 0, /* ddfb */
undefined , 0, /* ddfc */
undefined , 0, /* ddfd */
undefined , 0, /* ddfe */
undefined , 0, /* ddff */
/* ed */
undefined , 0, /* ed00 */
undefined , 0, /* ed01 */
undefined , 0, /* ed02 */
undefined , 0, /* ed03 */
undefined , 0, /* ed04 */
undefined , 0, /* ed05 */
undefined , 0, /* ed06 */
undefined , 0, /* ed07 */
undefined , 0, /* ed08 */
undefined , 0, /* ed09 */
undefined , 0, /* ed0a */
undefined , 0, /* ed0b */
undefined , 0, /* ed0c */
undefined , 0, /* ed0d */
undefined , 0, /* ed0e */
undefined , 0, /* ed0f */
undefined , 0, /* ed10 */
undefined , 0, /* ed11 */
undefined , 0, /* ed12 */
undefined , 0, /* ed13 */
undefined , 0, /* ed14 */
undefined , 0, /* ed15 */
undefined , 0, /* ed16 */
undefined , 0, /* ed17 */
undefined , 0, /* ed18 */
undefined , 0, /* ed19 */
undefined , 0, /* ed1a */
undefined , 0, /* ed1b */
undefined , 0, /* ed1c */
undefined , 0, /* ed1d */
undefined , 0, /* ed1e */
undefined , 0, /* ed1f */
undefined , 0, /* ed20 */
undefined , 0, /* ed21 */
undefined , 0, /* ed22 */
undefined , 0, /* ed23 */
undefined , 0, /* ed24 */
undefined , 0, /* ed25 */
undefined , 0, /* ed26 */
undefined , 0, /* ed27 */
undefined , 0, /* ed28 */
undefined , 0, /* ed29 */
undefined , 0, /* ed2a */
undefined , 0, /* ed2b */
undefined , 0, /* ed2c */
undefined , 0, /* ed2d */
undefined , 0, /* ed2e */
undefined , 0, /* ed2f */
undefined , 0, /* ed30 */
undefined , 0, /* ed31 */
undefined , 0, /* ed32 */
undefined , 0, /* ed33 */
undefined , 0, /* ed34 */
undefined , 0, /* ed35 */
undefined , 0, /* ed36 */
undefined , 0, /* ed37 */
undefined , 0, /* ed38 */
undefined , 0, /* ed39 */
undefined , 0, /* ed3a */
undefined , 0, /* ed3b */
undefined , 0, /* ed3c */
undefined , 0, /* ed3d */
undefined , 0, /* ed3e */
undefined , 0, /* ed3f */
"in b, (c)", 0, /* ed40 */
"out (c), b", 0, /* ed41 */
"sbc hl, bc", 0, /* ed42 */
"ld (0%04.4xh), bc",2, /* ed43 */
"neg", 0, /* ed44 */
"retn", 0, /* ed45 */
"im 0", 0, /* ed46 */
"ld i, a", 0, /* ed47 */
"in c, (c)", 0, /* ed48 */
"out (c), c", 0, /* ed49 */
"adc hl, bc", 0, /* ed4a */
"ld bc, (0%04.4xh)",2, /* ed4b */
undefined , 0, /* ed4c */
"reti", 0, /* ed4d */
undefined , 0, /* ed4e */
undefined , 0, /* ed4f */
"in d, (c)", 0, /* ed50 */
"out (c), d", 0, /* ed51 */
"sbc hl, de", 0, /* ed52 */
"ld (0%04.4xh), de",2, /* ed53 */
undefined , 0, /* ed54 */
undefined , 0, /* ed55 */
"im 1", 0, /* ed56 */
"ld a, i", 0, /* ed57 */
"in e, (c)", 0, /* ed58 */
"out (c), e", 0, /* ed59 */
"adc hl, de", 0, /* ed5a */
"ld de, (0%04.4xh)",2, /* ed5b */
undefined , 0, /* ed5c */
undefined , 0, /* ed5d */
"im 2", 0, /* ed5e */
undefined , 0, /* ed5f */
"in h, (c)", 0, /* ed60 */
"out (c), h", 0, /* ed61 */
"sbc hl, hl", 0, /* ed62 */
undefined , 0, /* ed63 */
undefined , 0, /* ed64 */
undefined , 0, /* ed65 */
undefined , 0, /* ed66 */
"rrd", 0, /* ed67 */
"in l, (c)", 0, /* ed68 */
"out (c), l", 0, /* ed69 */
"adc hl, hl", 0, /* ed6a */
undefined , 0, /* ed6b */
undefined , 0, /* ed6c */
undefined , 0, /* ed6d */
undefined , 0, /* ed6e */
"rld", 0, /* ed6f */
undefined , 0, /* ed70 */
undefined , 0, /* ed71 */
"sbc hl, sp", 0, /* ed72 */
"ld (0%04.4xh), sp",2, /* ed73 */
undefined , 0, /* ed74 */
undefined , 0, /* ed75 */
undefined , 0, /* ed76 */
undefined , 0, /* ed77 */
"in a, (c)", 0, /* ed78 */
"out (c), a", 0, /* ed79 */
"adc hl, sp", 0, /* ed7a */
"ld sp, (0%04.4xh)",2, /* ed7b */
undefined , 0, /* ed7c */
undefined , 0, /* ed7d */
undefined , 0, /* ed7e */
undefined , 0, /* ed7f */
undefined , 0, /* ed80 */
undefined , 0, /* ed81 */
undefined , 0, /* ed82 */
undefined , 0, /* ed83 */
undefined , 0, /* ed84 */
undefined , 0, /* ed85 */
undefined , 0, /* ed86 */
undefined , 0, /* ed87 */
undefined , 0, /* ed88 */
undefined , 0, /* ed89 */
undefined , 0, /* ed8a */
undefined , 0, /* ed8b */
undefined , 0, /* ed8c */
undefined , 0, /* ed8d */
undefined , 0, /* ed8e */
undefined , 0, /* ed8f */
undefined , 0, /* ed90 */
undefined , 0, /* ed91 */
undefined , 0, /* ed92 */
undefined , 0, /* ed93 */
undefined , 0, /* ed94 */
undefined , 0, /* ed95 */
undefined , 0, /* ed96 */
undefined , 0, /* ed97 */
undefined , 0, /* ed98 */
undefined , 0, /* ed99 */
undefined , 0, /* ed9a */
undefined , 0, /* ed9b */
undefined , 0, /* ed9c */
undefined , 0, /* ed9d */
undefined , 0, /* ed9e */
undefined , 0, /* ed9f */
"ldi", 0, /* eda0 */
"cpi", 0, /* eda1 */
"ini", 0, /* eda2 */
"outi", 0, /* eda3 */
undefined , 0, /* eda4 */
undefined , 0, /* eda5 */
undefined , 0, /* eda6 */
undefined , 0, /* eda7 */
"ldd", 0, /* eda8 */
"cpd", 0, /* eda9 */
"ind", 0, /* edaa */
"outd", 0, /* edab */
undefined , 0, /* edac */
undefined , 0, /* edad */
undefined , 0, /* edae */
undefined , 0, /* edaf */
"ldir", 0, /* edb0 */
"cpir", 0, /* edb1 */
"inir", 0, /* edb2 */
"otir", 0, /* edb3 */
undefined , 0, /* edb4 */
undefined , 0, /* edb5 */
undefined , 0, /* edb6 */
undefined , 0, /* edb7 */
"lddr", 0, /* edb8 */
"cpdr", 0, /* edb9 */
"indr", 0, /* edba */
"otdr", 0, /* edbb */
undefined , 0, /* edbc */
undefined , 0, /* edbd */
undefined , 0, /* edbe */
undefined , 0, /* edbf */
undefined , 0, /* edc0 */
undefined , 0, /* edc1 */
undefined , 0, /* edc2 */
undefined , 0, /* edc3 */
undefined , 0, /* edc4 */
undefined , 0, /* edc5 */
undefined , 0, /* edc6 */
undefined , 0, /* edc7 */
undefined , 0, /* edc8 */
undefined , 0, /* edc9 */
undefined , 0, /* edca */
undefined , 0, /* edcb */
undefined , 0, /* edcc */
undefined , 0, /* edcd */
undefined , 0, /* edce */
undefined , 0, /* edcf */
undefined , 0, /* edd0 */
undefined , 0, /* edd1 */
undefined , 0, /* edd2 */
undefined , 0, /* edd3 */
undefined , 0, /* edd4 */
undefined , 0, /* edd5 */
undefined , 0, /* edd6 */
undefined , 0, /* edd7 */
undefined , 0, /* edd8 */
undefined , 0, /* edd9 */
undefined , 0, /* edda */
undefined , 0, /* eddb */
undefined , 0, /* eddc */
undefined , 0, /* eddd */
undefined , 0, /* edde */
undefined , 0, /* eddf */
undefined , 0, /* ede0 */
undefined , 0, /* ede1 */
undefined , 0, /* ede2 */
undefined , 0, /* ede3 */
undefined , 0, /* ede4 */
undefined , 0, /* ede5 */
undefined , 0, /* ede6 */
undefined , 0, /* ede7 */
undefined , 0, /* ede8 */
undefined , 0, /* ede9 */
undefined , 0, /* edea */
undefined , 0, /* edeb */
undefined , 0, /* edec */
undefined , 0, /* eded */
undefined , 0, /* edee */
undefined , 0, /* edef */
undefined , 0, /* edf0 */
undefined , 0, /* edf1 */
undefined , 0, /* edf2 */
undefined , 0, /* edf3 */
undefined , 0, /* edf4 */
undefined , 0, /* edf5 */
undefined , 0, /* edf6 */
undefined , 0, /* edf7 */
undefined , 0, /* edf8 */
undefined , 0, /* edf9 */
undefined , 0, /* edfa */
undefined , 0, /* edfb */
undefined , 0, /* edfc */
undefined , 0, /* edfd */
undefined , 0, /* edfe */
undefined , 0, /* edff */
/* fd */
undefined , 0, /* fd00 */
undefined , 0, /* fd01 */
undefined , 0, /* fd02 */
undefined , 0, /* fd03 */
undefined , 0, /* fd04 */
undefined , 0, /* fd05 */
undefined , 0, /* fd06 */
undefined , 0, /* fd07 */
undefined , 0, /* fd08 */
"add iy, bc", 0, /* fd09 */
undefined , 0, /* fd0a */
undefined , 0, /* fd0b */
undefined , 0, /* fd0c */
undefined , 0, /* fd0d */
undefined , 0, /* fd0e */
undefined , 0, /* fd0f */
undefined , 0, /* fd10 */
undefined , 0, /* fd11 */
undefined , 0, /* fd12 */
undefined , 0, /* fd13 */
undefined , 0, /* fd14 */
undefined , 0, /* fd15 */
undefined , 0, /* fd16 */
undefined , 0, /* fd17 */
undefined , 0, /* fd18 */
"add iy, de", 0, /* fd19 */
undefined , 0, /* fd1a */
undefined , 0, /* fd1b */
undefined , 0, /* fd1c */
undefined , 0, /* fd1d */
undefined , 0, /* fd1e */
undefined , 0, /* fd1f */
undefined , 0, /* fd20 */
"ld iy, 0%04.4xh", 2, /* fd21 */
"ld (0%04.4xh), iy",2, /* fd22 */
"inc iy", 0, /* fd23 */
undefined , 0, /* fd24 */
undefined , 0, /* fd25 */
undefined , 0, /* fd26 */
undefined , 0, /* fd27 */
undefined , 0, /* fd28 */
"add iy, iy", 0, /* fd29 */
"ld iy, (0%04.4xh)",2, /* fd2a */
"dec iy", 0, /* fd2b */
undefined , 0, /* fd2c */
undefined , 0, /* fd2d */
undefined , 0, /* fd2e */
undefined , 0, /* fd2f */
undefined , 0, /* fd30 */
undefined , 0, /* fd31 */
undefined , 0, /* fd32 */
undefined , 0, /* fd33 */
"inc (iy+0%02.2xh)", 1, /* fd34 */
"dec (iy+0%02.2xh)", 1, /* fd35 */
"ld (iy+0%02.2xh), 0%02.2xh",2,/* fd36 */
undefined , 0, /* fd37 */
undefined , 0, /* fd38 */
"add iy, sp", 0, /* fd39 */
undefined , 0, /* fd3a */
undefined , 0, /* fd3b */
undefined , 0, /* fd3c */
undefined , 0, /* fd3d */
undefined , 0, /* fd3e */
undefined , 0, /* fd3f */
undefined , 0, /* fd40 */
undefined , 0, /* fd41 */
undefined , 0, /* fd42 */
undefined , 0, /* fd43 */
undefined , 0, /* fd44 */
undefined , 0, /* fd45 */
"ld b, (iy+0%02.2xh)",1, /* fd46 */
undefined , 0, /* fd47 */
undefined , 0, /* fd48 */
undefined , 0, /* fd49 */
undefined , 0, /* fd4a */
undefined , 0, /* fd4b */
undefined , 0, /* fd4c */
undefined , 0, /* fd4d */
"ld c, (iy+0%02.2xh)",1, /* fd4e */
undefined , 0, /* fd4f */
undefined , 0, /* fd50 */
undefined , 0, /* fd51 */
undefined , 0, /* fd52 */
undefined , 0, /* fd53 */
undefined , 0, /* fd54 */
undefined , 0, /* fd55 */
"ld d, (iy+0%02.2xh)",1, /* fd56 */
undefined , 0, /* fd57 */
undefined , 0, /* fd58 */
undefined , 0, /* fd59 */
undefined , 0, /* fd5a */
undefined , 0, /* fd5b */
undefined , 0, /* fd5c */
undefined , 0, /* fd5d */
"ld e, (iy+0%02.2xh)",1, /* fd5e */
undefined , 0, /* fd5f */
undefined , 0, /* fd60 */
undefined , 0, /* fd61 */
undefined , 0, /* fd62 */
undefined , 0, /* fd63 */
undefined , 0, /* fd64 */
undefined , 0, /* fd65 */
"ld h, (iy+0%02.2xh)",1, /* fd66 */
undefined , 0, /* fd67 */
undefined , 0, /* fd68 */
undefined , 0, /* fd69 */
undefined , 0, /* fd6a */
undefined , 0, /* fd6b */
undefined , 0, /* fd6c */
undefined , 0, /* fd6d */
"ld l, (iy+0%02.2xh)",1, /* fd6e */
undefined , 0, /* fd6f */
"ld (iy+0%02.2xh), b",1, /* fd70 */
"ld (iy+0%02.2xh), c",1, /* fd71 */
"ld (iy+0%02.2xh), d",1, /* fd72 */
"ld (iy+0%02.2xh), e",1, /* fd73 */
"ld (iy+0%02.2xh), h",1, /* fd74 */
"ld (iy+0%02.2xh), l",1, /* fd75 */
undefined , 0, /* fd76 */
"ld (iy+0%02.2xh), a",1, /* fd77 */
undefined , 0, /* fd78 */
undefined , 0, /* fd79 */
undefined , 0, /* fd7a */
undefined , 0, /* fd7b */
undefined , 0, /* fd7c */
undefined , 0, /* fd7d */
"ld a, (iy+0%02.2xh)", 1, /* fd7e */
undefined , 0, /* fd7f */
undefined , 0, /* fd80 */
undefined , 0, /* fd81 */
undefined , 0, /* fd82 */
undefined , 0, /* fd83 */
undefined , 0, /* fd84 */
undefined , 0, /* fd85 */
"add a, (iy+0%02.2xh)",1, /* fd86 */
undefined , 0, /* fd87 */
undefined , 0, /* fd88 */
undefined , 0, /* fd89 */
undefined , 0, /* fd8a */
undefined , 0, /* fd8b */
undefined , 0, /* fd8c */
undefined , 0, /* fd8d */
"adc a, (iy+0%02.2xh)",1, /* fd8e */
undefined , 0, /* fd8f */
undefined , 0, /* fd90 */
undefined , 0, /* fd91 */
undefined , 0, /* fd92 */
undefined , 0, /* fd93 */
undefined , 0, /* fd94 */
undefined , 0, /* fd95 */
"sub (iy+0%02.2xh)", 1, /* fd96 */
undefined , 0, /* fd97 */
undefined , 0, /* fd98 */
undefined , 0, /* fd99 */
undefined , 0, /* fd9a */
undefined , 0, /* fd9b */
undefined , 0, /* fd9c */
undefined , 0, /* fd9d */
"sbc a, (iy+0%02.2xh)",1, /* fd9e */
undefined , 0, /* fd9f */
undefined , 0, /* fda0 */
undefined , 0, /* fda1 */
undefined , 0, /* fda2 */
undefined , 0, /* fda3 */
undefined , 0, /* fda4 */
undefined , 0, /* fda5 */
"and (iy+0%02.2xh)", 1, /* fda6 */
undefined , 0, /* fda7 */
undefined , 0, /* fda8 */
undefined , 0, /* fda9 */
undefined , 0, /* fdaa */
undefined , 0, /* fdab */
undefined , 0, /* fdac */
undefined , 0, /* fdad */
"xor (iy+0%02.2xh)", 1, /* fdae */
undefined , 0, /* fdaf */
undefined , 0, /* fdb0 */
undefined , 0, /* fdb1 */
undefined , 0, /* fdb2 */
undefined , 0, /* fdb3 */
undefined , 0, /* fdb4 */
undefined , 0, /* fdb5 */
"or (iy+0%02.2xh)", 1, /* fdb6 */
undefined , 0, /* fdb7 */
undefined , 0, /* fdb8 */
undefined , 0, /* fdb9 */
undefined , 0, /* fdba */
undefined , 0, /* fdbb */
undefined , 0, /* fdbc */
undefined , 0, /* fdbd */
"cp (iy+0%02.2xh)", 1, /* fdbe */
undefined , 0, /* fdbf */
undefined , 0, /* fdc0 */
undefined , 0, /* fdc1 */
undefined , 0, /* fdc2 */
undefined , 0, /* fdc3 */
undefined , 0, /* fdc4 */
undefined , 0, /* fdc5 */
undefined , 0, /* fdc6 */
undefined , 0, /* fdc7 */
undefined , 0, /* fdc8 */
undefined , 0, /* fdc9 */
undefined , 0, /* fdca */
"fd cb 0%02.2x, 0%02.2x",4, /* fdcb */
undefined , 0, /* fdcc */
undefined , 0, /* fdcd */
undefined , 0, /* fdce */
undefined , 0, /* fdcf */
undefined , 0, /* fdd0 */
undefined , 0, /* fdd1 */
undefined , 0, /* fdd2 */
undefined , 0, /* fdd3 */
undefined , 0, /* fdd4 */
undefined , 0, /* fdd5 */
undefined , 0, /* fdd6 */
undefined , 0, /* fdd7 */
undefined , 0, /* fdd8 */
undefined , 0, /* fdd9 */
undefined , 0, /* fdda */
undefined , 0, /* fddb */
undefined , 0, /* fddc */
undefined , 0, /* fddd */
undefined , 0, /* fdde */
undefined , 0, /* fddf */
undefined , 0, /* fde0 */
"pop iy", 0, /* fde1 */
undefined , 0, /* fde2 */
"ex (sp), iy", 0, /* fde3 */
undefined , 0, /* fde4 */
"push iy", 0, /* fde5 */
undefined , 0, /* fde6 */
undefined , 0, /* fde7 */
undefined , 0, /* fde8 */
"jp (iy)", 0, /* fde9 */
undefined , 0, /* fdea */
undefined , 0, /* fdeb */
undefined , 0, /* fdec */
undefined , 0, /* fded */
undefined , 0, /* fdee */
undefined , 0, /* fdef */
undefined , 0, /* fdf0 */
undefined , 0, /* fdf1 */
undefined , 0, /* fdf2 */
undefined , 0, /* fdf3 */
undefined , 0, /* fdf4 */
undefined , 0, /* fdf5 */
undefined , 0, /* fdf6 */
undefined , 0, /* fdf7 */
undefined , 0, /* fdf8 */
"ld sp, iy", 0, /* fdf9 */
undefined , 0, /* fdfa */
undefined , 0, /* fdfb */
undefined , 0, /* fdfc */
undefined , 0, /* fdfd */
undefined , 0, /* fdfe */
undefined , 0, /* fdff */
};
static int relative(int r)
{
if (r & 0x80)
r |= -256;
return(PC + r + 2);
}
const char *dasm(const byte *buf)
{
static char str[32];
struct opcode *code;
if (!(code = &major[buf[0]])->name)
{
buf++;
code = &minor[code->args][buf[0]];
}
switch (code->args)
{
case 0:
strcpy(str, code->name);
break;
case 1:
sprintf(str, code->name, get_prog_byte(buf, 0));
break;
case 2:
sprintf(str, code->name, get_prog_word(buf));
break;
case 3:
sprintf(str, code->name, relative(get_prog_byte(buf, 0)));
break;
case 4:
sprintf(str, code->name,get_prog_byte(buf,0),get_prog_byte(buf,1));
break;
}
return(str);
}