/* 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 #include #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); }