Add the generated files to the repo

There's no real reason not to include the generated files.

Closes: #1
This commit is contained in:
Stephen Checkoway 2021-05-25 13:30:25 -04:00
parent cda14c65c3
commit e392e05c87
9 changed files with 1981 additions and 2 deletions

2
.gitignore vendored
View File

@ -1,8 +1,6 @@
libzel.a
include/zel/z80_instruction_types.h
*.o
doc
tables/*.tab
tests/itest_arithmetic
tests/itest_load
tests/itest_set

View File

@ -0,0 +1,189 @@
/* Copyright (c) 2008, 2017 Stephen Checkoway
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
/*! \file
*
* z80 instruction types.
* \author Stephen Checkoway
* \version 0.1
* \date 2008, 2017
*/
#ifndef ZEL_Z80_INSTRUCTION_TYPES_H
#define ZEL_Z80_INSTRUCTION_TYPES_H
#ifdef __cplusplus
extern "C" {
#endif
typedef enum
{
ADC_RR_RR, //!< adc
ADC_R_I, //!< adc
ADC_R_MRR, //!< adc
ADC_R_N, //!< adc
ADC_R_R, //!< adc
ADD_RR_RR, //!< add
ADD_R_I, //!< add
ADD_R_MRR, //!< add
ADD_R_N, //!< add
ADD_R_R, //!< add
AND_I, //!< and
AND_MRR, //!< and
AND_N, //!< and
AND_R, //!< and
BIT_I, //!< bit
BIT_MRR, //!< bit
BIT_R, //!< bit
CALL_C_MNN, //!< call
CALL_MNN, //!< call
CCF, //!< ccf
CPD, //!< cpd
CPDR, //!< cpdr
CPI, //!< cpi
CPIR, //!< cpir
CPL, //!< cpl
CP_I, //!< cp
CP_MRR, //!< cp
CP_N, //!< cp
CP_R, //!< cp
DAA, //!< daa
DEC_I, //!< dec
DEC_MRR, //!< dec
DEC_R, //!< dec
DEC_RR, //!< dec
DI, //!< di
DJNZ, //!< djnz
EI, //!< ei
EXX, //!< exx
EX_MRR_RR, //!< ex
EX_RR_RR, //!< ex
HALT, //!< halt
IM, //!< im
INC_I, //!< inc
INC_MRR, //!< inc
INC_R, //!< inc
INC_RR, //!< inc
IND, //!< ind
INDR, //!< indr
INI, //!< ini
INIR, //!< inir
IN_R_MN, //!< in
IN_R_R, //!< in
JP_C_MNN, //!< jp
JP_MNN, //!< jp
JP_MRR, //!< jp
JR, //!< jr
JR_C, //!< jr
LDD, //!< ldd
LDDR, //!< lddr
LDI, //!< ldi
LDIR, //!< ldir
LD_I_N, //!< ld
LD_I_R, //!< ld
LD_MNN_R, //!< ld
LD_MNN_RR, //!< ld
LD_MRR_N, //!< ld
LD_MRR_R, //!< ld
LD_RR_MNN, //!< ld
LD_RR_NN, //!< ld
LD_RR_RR, //!< ld
LD_R_I, //!< ld
LD_R_MNN, //!< ld
LD_R_MRR, //!< ld
LD_R_N, //!< ld
LD_R_R, //!< ld
NEG, //!< neg
NOP, //!< nop
OR_I, //!< or
OR_MRR, //!< or
OR_N, //!< or
OR_R, //!< or
OTDR, //!< otdr
OTIR, //!< otir
OUTD, //!< outd
OUTI, //!< outi
OUT_MN_R, //!< out
OUT_R, //!< out
OUT_R_R, //!< out
POP_RR, //!< pop
PUSH_RR, //!< push
RES_I, //!< res
RES_MRR, //!< res
RES_R, //!< res
RET, //!< ret
RETI, //!< reti
RETN, //!< retn
RET_C, //!< ret
RLA, //!< rla
RLCA, //!< rlca
RLC_I, //!< rlc
RLC_MRR, //!< rlc
RLC_R, //!< rlc
RLD, //!< rld
RL_I, //!< rl
RL_MRR, //!< rl
RL_R, //!< rl
RRA, //!< rra
RRCA, //!< rrca
RRC_I, //!< rrc
RRC_MRR, //!< rrc
RRC_R, //!< rrc
RRD, //!< rrd
RR_I, //!< rr
RR_MRR, //!< rr
RR_R, //!< rr
RST, //!< rst
SBC_RR_RR, //!< sbc
SBC_R_I, //!< sbc
SBC_R_MRR, //!< sbc
SBC_R_N, //!< sbc
SBC_R_R, //!< sbc
SCF, //!< scf
SET_I, //!< set
SET_MRR, //!< set
SET_R, //!< set
SLA_I, //!< sla
SLA_MRR, //!< sla
SLA_R, //!< sla
SLL_I, //!< sll
SLL_MRR, //!< sll
SLL_R, //!< sll
SRA_I, //!< sra
SRA_MRR, //!< sra
SRA_R, //!< sra
SRL_I, //!< srl
SRL_MRR, //!< srl
SRL_R, //!< srl
SUB_I, //!< sub
SUB_MRR, //!< sub
SUB_N, //!< sub
SUB_R, //!< sub
XOR_I, //!< xor
XOR_MRR, //!< xor
XOR_N, //!< xor
XOR_R, //!< xor
} InstructionType;
#ifdef __cplusplus
}
#endif
#endif

256
tables/cb_prefix.tab Normal file
View File

@ -0,0 +1,256 @@
{ RLC_R, REG_B, INV, INV, 8, TYPE_NONE, "rlc b" }, // 00
{ RLC_R, REG_C, INV, INV, 8, TYPE_NONE, "rlc c" }, // 01
{ RLC_R, REG_D, INV, INV, 8, TYPE_NONE, "rlc d" }, // 02
{ RLC_R, REG_E, INV, INV, 8, TYPE_NONE, "rlc e" }, // 03
{ RLC_R, REG_H, INV, INV, 8, TYPE_NONE, "rlc h" }, // 04
{ RLC_R, REG_L, INV, INV, 8, TYPE_NONE, "rlc l" }, // 05
{ RLC_MRR, REG_HL, INV, INV, 15, TYPE_NONE, "rlc (hl)" }, // 06
{ RLC_R, REG_A, INV, INV, 8, TYPE_NONE, "rlc a" }, // 07
{ RRC_R, REG_B, INV, INV, 8, TYPE_NONE, "rrc b" }, // 08
{ RRC_R, REG_C, INV, INV, 8, TYPE_NONE, "rrc c" }, // 09
{ RRC_R, REG_D, INV, INV, 8, TYPE_NONE, "rrc d" }, // 0a
{ RRC_R, REG_E, INV, INV, 8, TYPE_NONE, "rrc e" }, // 0b
{ RRC_R, REG_H, INV, INV, 8, TYPE_NONE, "rrc h" }, // 0c
{ RRC_R, REG_L, INV, INV, 8, TYPE_NONE, "rrc l" }, // 0d
{ RRC_MRR, REG_HL, INV, INV, 15, TYPE_NONE, "rrc (hl)" }, // 0e
{ RRC_R, REG_A, INV, INV, 8, TYPE_NONE, "rrc a" }, // 0f
{ RL_R, REG_B, INV, INV, 8, TYPE_NONE, "rl b" }, // 10
{ RL_R, REG_C, INV, INV, 8, TYPE_NONE, "rl c" }, // 11
{ RL_R, REG_D, INV, INV, 8, TYPE_NONE, "rl d" }, // 12
{ RL_R, REG_E, INV, INV, 8, TYPE_NONE, "rl e" }, // 13
{ RL_R, REG_H, INV, INV, 8, TYPE_NONE, "rl h" }, // 14
{ RL_R, REG_L, INV, INV, 8, TYPE_NONE, "rl l" }, // 15
{ RL_MRR, REG_HL, INV, INV, 15, TYPE_NONE, "rl (hl)" }, // 16
{ RL_R, REG_A, INV, INV, 8, TYPE_NONE, "rl a" }, // 17
{ RR_R, REG_B, INV, INV, 8, TYPE_NONE, "rr b" }, // 18
{ RR_R, REG_C, INV, INV, 8, TYPE_NONE, "rr c" }, // 19
{ RR_R, REG_D, INV, INV, 8, TYPE_NONE, "rr d" }, // 1a
{ RR_R, REG_E, INV, INV, 8, TYPE_NONE, "rr e" }, // 1b
{ RR_R, REG_H, INV, INV, 8, TYPE_NONE, "rr h" }, // 1c
{ RR_R, REG_L, INV, INV, 8, TYPE_NONE, "rr l" }, // 1d
{ RR_MRR, REG_HL, INV, INV, 15, TYPE_NONE, "rr (hl)" }, // 1e
{ RR_R, REG_A, INV, INV, 8, TYPE_NONE, "rr a" }, // 1f
{ SLA_R, REG_B, INV, INV, 8, TYPE_NONE, "sla b" }, // 20
{ SLA_R, REG_C, INV, INV, 8, TYPE_NONE, "sla c" }, // 21
{ SLA_R, REG_D, INV, INV, 8, TYPE_NONE, "sla d" }, // 22
{ SLA_R, REG_E, INV, INV, 8, TYPE_NONE, "sla e" }, // 23
{ SLA_R, REG_H, INV, INV, 8, TYPE_NONE, "sla h" }, // 24
{ SLA_R, REG_L, INV, INV, 8, TYPE_NONE, "sla l" }, // 25
{ SLA_MRR, REG_HL, INV, INV, 15, TYPE_NONE, "sla (hl)" }, // 26
{ SLA_R, REG_A, INV, INV, 8, TYPE_NONE, "sla a" }, // 27
{ SRA_R, REG_B, INV, INV, 8, TYPE_NONE, "sra b" }, // 28
{ SRA_R, REG_C, INV, INV, 8, TYPE_NONE, "sra c" }, // 29
{ SRA_R, REG_D, INV, INV, 8, TYPE_NONE, "sra d" }, // 2a
{ SRA_R, REG_E, INV, INV, 8, TYPE_NONE, "sra e" }, // 2b
{ SRA_R, REG_H, INV, INV, 8, TYPE_NONE, "sra h" }, // 2c
{ SRA_R, REG_L, INV, INV, 8, TYPE_NONE, "sra l" }, // 2d
{ SRA_MRR, REG_HL, INV, INV, 15, TYPE_NONE, "sra (hl)" }, // 2e
{ SRA_R, REG_A, INV, INV, 8, TYPE_NONE, "sra a" }, // 2f
{ SLL_R, REG_B, INV, INV, 8, TYPE_NONE, "sll b" }, // 30
{ SLL_R, REG_C, INV, INV, 8, TYPE_NONE, "sll c" }, // 31
{ SLL_R, REG_D, INV, INV, 8, TYPE_NONE, "sll d" }, // 32
{ SLL_R, REG_E, INV, INV, 8, TYPE_NONE, "sll e" }, // 33
{ SLL_R, REG_H, INV, INV, 8, TYPE_NONE, "sll h" }, // 34
{ SLL_R, REG_L, INV, INV, 8, TYPE_NONE, "sll l" }, // 35
{ SLL_MRR, REG_HL, INV, INV, 15, TYPE_NONE, "sll (hl)" }, // 36
{ SLL_R, REG_A, INV, INV, 8, TYPE_NONE, "sll a" }, // 37
{ SRL_R, REG_B, INV, INV, 8, TYPE_NONE, "srl b" }, // 38
{ SRL_R, REG_C, INV, INV, 8, TYPE_NONE, "srl c" }, // 39
{ SRL_R, REG_D, INV, INV, 8, TYPE_NONE, "srl d" }, // 3a
{ SRL_R, REG_E, INV, INV, 8, TYPE_NONE, "srl e" }, // 3b
{ SRL_R, REG_H, INV, INV, 8, TYPE_NONE, "srl h" }, // 3c
{ SRL_R, REG_L, INV, INV, 8, TYPE_NONE, "srl l" }, // 3d
{ SRL_MRR, REG_HL, INV, INV, 15, TYPE_NONE, "srl (hl)" }, // 3e
{ SRL_R, REG_A, INV, INV, 8, TYPE_NONE, "srl a" }, // 3f
{ BIT_R, 0, REG_B, INV, 8, TYPE_NONE, "bit 0,b" }, // 40
{ BIT_R, 0, REG_C, INV, 8, TYPE_NONE, "bit 0,c" }, // 41
{ BIT_R, 0, REG_D, INV, 8, TYPE_NONE, "bit 0,d" }, // 42
{ BIT_R, 0, REG_E, INV, 8, TYPE_NONE, "bit 0,e" }, // 43
{ BIT_R, 0, REG_H, INV, 8, TYPE_NONE, "bit 0,h" }, // 44
{ BIT_R, 0, REG_L, INV, 8, TYPE_NONE, "bit 0,l" }, // 45
{ BIT_MRR, 0, REG_HL, INV, 12, TYPE_NONE, "bit 0,(hl)" }, // 46
{ BIT_R, 0, REG_A, INV, 8, TYPE_NONE, "bit 0,a" }, // 47
{ BIT_R, 1, REG_B, INV, 8, TYPE_NONE, "bit 1,b" }, // 48
{ BIT_R, 1, REG_C, INV, 8, TYPE_NONE, "bit 1,c" }, // 49
{ BIT_R, 1, REG_D, INV, 8, TYPE_NONE, "bit 1,d" }, // 4a
{ BIT_R, 1, REG_E, INV, 8, TYPE_NONE, "bit 1,e" }, // 4b
{ BIT_R, 1, REG_H, INV, 8, TYPE_NONE, "bit 1,h" }, // 4c
{ BIT_R, 1, REG_L, INV, 8, TYPE_NONE, "bit 1,l" }, // 4d
{ BIT_MRR, 1, REG_HL, INV, 12, TYPE_NONE, "bit 1,(hl)" }, // 4e
{ BIT_R, 1, REG_A, INV, 8, TYPE_NONE, "bit 1,a" }, // 4f
{ BIT_R, 2, REG_B, INV, 8, TYPE_NONE, "bit 2,b" }, // 50
{ BIT_R, 2, REG_C, INV, 8, TYPE_NONE, "bit 2,c" }, // 51
{ BIT_R, 2, REG_D, INV, 8, TYPE_NONE, "bit 2,d" }, // 52
{ BIT_R, 2, REG_E, INV, 8, TYPE_NONE, "bit 2,e" }, // 53
{ BIT_R, 2, REG_H, INV, 8, TYPE_NONE, "bit 2,h" }, // 54
{ BIT_R, 2, REG_L, INV, 8, TYPE_NONE, "bit 2,l" }, // 55
{ BIT_MRR, 2, REG_HL, INV, 12, TYPE_NONE, "bit 2,(hl)" }, // 56
{ BIT_R, 2, REG_A, INV, 8, TYPE_NONE, "bit 2,a" }, // 57
{ BIT_R, 3, REG_B, INV, 8, TYPE_NONE, "bit 3,b" }, // 58
{ BIT_R, 3, REG_C, INV, 8, TYPE_NONE, "bit 3,c" }, // 59
{ BIT_R, 3, REG_D, INV, 8, TYPE_NONE, "bit 3,d" }, // 5a
{ BIT_R, 3, REG_E, INV, 8, TYPE_NONE, "bit 3,e" }, // 5b
{ BIT_R, 3, REG_H, INV, 8, TYPE_NONE, "bit 3,h" }, // 5c
{ BIT_R, 3, REG_L, INV, 8, TYPE_NONE, "bit 3,l" }, // 5d
{ BIT_MRR, 3, REG_HL, INV, 12, TYPE_NONE, "bit 3,(hl)" }, // 5e
{ BIT_R, 3, REG_A, INV, 8, TYPE_NONE, "bit 3,a" }, // 5f
{ BIT_R, 4, REG_B, INV, 8, TYPE_NONE, "bit 4,b" }, // 60
{ BIT_R, 4, REG_C, INV, 8, TYPE_NONE, "bit 4,c" }, // 61
{ BIT_R, 4, REG_D, INV, 8, TYPE_NONE, "bit 4,d" }, // 62
{ BIT_R, 4, REG_E, INV, 8, TYPE_NONE, "bit 4,e" }, // 63
{ BIT_R, 4, REG_H, INV, 8, TYPE_NONE, "bit 4,h" }, // 64
{ BIT_R, 4, REG_L, INV, 8, TYPE_NONE, "bit 4,l" }, // 65
{ BIT_MRR, 4, REG_HL, INV, 12, TYPE_NONE, "bit 4,(hl)" }, // 66
{ BIT_R, 4, REG_A, INV, 8, TYPE_NONE, "bit 4,a" }, // 67
{ BIT_R, 5, REG_B, INV, 8, TYPE_NONE, "bit 5,b" }, // 68
{ BIT_R, 5, REG_C, INV, 8, TYPE_NONE, "bit 5,c" }, // 69
{ BIT_R, 5, REG_D, INV, 8, TYPE_NONE, "bit 5,d" }, // 6a
{ BIT_R, 5, REG_E, INV, 8, TYPE_NONE, "bit 5,e" }, // 6b
{ BIT_R, 5, REG_H, INV, 8, TYPE_NONE, "bit 5,h" }, // 6c
{ BIT_R, 5, REG_L, INV, 8, TYPE_NONE, "bit 5,l" }, // 6d
{ BIT_MRR, 5, REG_HL, INV, 12, TYPE_NONE, "bit 5,(hl)" }, // 6e
{ BIT_R, 5, REG_A, INV, 8, TYPE_NONE, "bit 5,a" }, // 6f
{ BIT_R, 6, REG_B, INV, 8, TYPE_NONE, "bit 6,b" }, // 70
{ BIT_R, 6, REG_C, INV, 8, TYPE_NONE, "bit 6,c" }, // 71
{ BIT_R, 6, REG_D, INV, 8, TYPE_NONE, "bit 6,d" }, // 72
{ BIT_R, 6, REG_E, INV, 8, TYPE_NONE, "bit 6,e" }, // 73
{ BIT_R, 6, REG_H, INV, 8, TYPE_NONE, "bit 6,h" }, // 74
{ BIT_R, 6, REG_L, INV, 8, TYPE_NONE, "bit 6,l" }, // 75
{ BIT_MRR, 6, REG_HL, INV, 12, TYPE_NONE, "bit 6,(hl)" }, // 76
{ BIT_R, 6, REG_A, INV, 8, TYPE_NONE, "bit 6,a" }, // 77
{ BIT_R, 7, REG_B, INV, 8, TYPE_NONE, "bit 7,b" }, // 78
{ BIT_R, 7, REG_C, INV, 8, TYPE_NONE, "bit 7,c" }, // 79
{ BIT_R, 7, REG_D, INV, 8, TYPE_NONE, "bit 7,d" }, // 7a
{ BIT_R, 7, REG_E, INV, 8, TYPE_NONE, "bit 7,e" }, // 7b
{ BIT_R, 7, REG_H, INV, 8, TYPE_NONE, "bit 7,h" }, // 7c
{ BIT_R, 7, REG_L, INV, 8, TYPE_NONE, "bit 7,l" }, // 7d
{ BIT_MRR, 7, REG_HL, INV, 12, TYPE_NONE, "bit 7,(hl)" }, // 7e
{ BIT_R, 7, REG_A, INV, 8, TYPE_NONE, "bit 7,a" }, // 7f
{ RES_R, 0, REG_B, INV, 8, TYPE_NONE, "res 0,b" }, // 80
{ RES_R, 0, REG_C, INV, 8, TYPE_NONE, "res 0,c" }, // 81
{ RES_R, 0, REG_D, INV, 8, TYPE_NONE, "res 0,d" }, // 82
{ RES_R, 0, REG_E, INV, 8, TYPE_NONE, "res 0,e" }, // 83
{ RES_R, 0, REG_H, INV, 8, TYPE_NONE, "res 0,h" }, // 84
{ RES_R, 0, REG_L, INV, 8, TYPE_NONE, "res 0,l" }, // 85
{ RES_MRR, 0, REG_HL, INV, 15, TYPE_NONE, "res 0,(hl)" }, // 86
{ RES_R, 0, REG_A, INV, 8, TYPE_NONE, "res 0,a" }, // 87
{ RES_R, 1, REG_B, INV, 8, TYPE_NONE, "res 1,b" }, // 88
{ RES_R, 1, REG_C, INV, 8, TYPE_NONE, "res 1,c" }, // 89
{ RES_R, 1, REG_D, INV, 8, TYPE_NONE, "res 1,d" }, // 8a
{ RES_R, 1, REG_E, INV, 8, TYPE_NONE, "res 1,e" }, // 8b
{ RES_R, 1, REG_H, INV, 8, TYPE_NONE, "res 1,h" }, // 8c
{ RES_R, 1, REG_L, INV, 8, TYPE_NONE, "res 1,l" }, // 8d
{ RES_MRR, 1, REG_HL, INV, 15, TYPE_NONE, "res 1,(hl)" }, // 8e
{ RES_R, 1, REG_A, INV, 8, TYPE_NONE, "res 1,a" }, // 8f
{ RES_R, 2, REG_B, INV, 8, TYPE_NONE, "res 2,b" }, // 90
{ RES_R, 2, REG_C, INV, 8, TYPE_NONE, "res 2,c" }, // 91
{ RES_R, 2, REG_D, INV, 8, TYPE_NONE, "res 2,d" }, // 92
{ RES_R, 2, REG_E, INV, 8, TYPE_NONE, "res 2,e" }, // 93
{ RES_R, 2, REG_H, INV, 8, TYPE_NONE, "res 2,h" }, // 94
{ RES_R, 2, REG_L, INV, 8, TYPE_NONE, "res 2,l" }, // 95
{ RES_MRR, 2, REG_HL, INV, 15, TYPE_NONE, "res 2,(hl)" }, // 96
{ RES_R, 2, REG_A, INV, 8, TYPE_NONE, "res 2,a" }, // 97
{ RES_R, 3, REG_B, INV, 8, TYPE_NONE, "res 3,b" }, // 98
{ RES_R, 3, REG_C, INV, 8, TYPE_NONE, "res 3,c" }, // 99
{ RES_R, 3, REG_D, INV, 8, TYPE_NONE, "res 3,d" }, // 9a
{ RES_R, 3, REG_E, INV, 8, TYPE_NONE, "res 3,e" }, // 9b
{ RES_R, 3, REG_H, INV, 8, TYPE_NONE, "res 3,h" }, // 9c
{ RES_R, 3, REG_L, INV, 8, TYPE_NONE, "res 3,l" }, // 9d
{ RES_MRR, 3, REG_HL, INV, 15, TYPE_NONE, "res 3,(hl)" }, // 9e
{ RES_R, 3, REG_A, INV, 8, TYPE_NONE, "res 3,a" }, // 9f
{ RES_R, 4, REG_B, INV, 8, TYPE_NONE, "res 4,b" }, // a0
{ RES_R, 4, REG_C, INV, 8, TYPE_NONE, "res 4,c" }, // a1
{ RES_R, 4, REG_D, INV, 8, TYPE_NONE, "res 4,d" }, // a2
{ RES_R, 4, REG_E, INV, 8, TYPE_NONE, "res 4,e" }, // a3
{ RES_R, 4, REG_H, INV, 8, TYPE_NONE, "res 4,h" }, // a4
{ RES_R, 4, REG_L, INV, 8, TYPE_NONE, "res 4,l" }, // a5
{ RES_MRR, 4, REG_HL, INV, 15, TYPE_NONE, "res 4,(hl)" }, // a6
{ RES_R, 4, REG_A, INV, 8, TYPE_NONE, "res 4,a" }, // a7
{ RES_R, 5, REG_B, INV, 8, TYPE_NONE, "res 5,b" }, // a8
{ RES_R, 5, REG_C, INV, 8, TYPE_NONE, "res 5,c" }, // a9
{ RES_R, 5, REG_D, INV, 8, TYPE_NONE, "res 5,d" }, // aa
{ RES_R, 5, REG_E, INV, 8, TYPE_NONE, "res 5,e" }, // ab
{ RES_R, 5, REG_H, INV, 8, TYPE_NONE, "res 5,h" }, // ac
{ RES_R, 5, REG_L, INV, 8, TYPE_NONE, "res 5,l" }, // ad
{ RES_MRR, 5, REG_HL, INV, 15, TYPE_NONE, "res 5,(hl)" }, // ae
{ RES_R, 5, REG_A, INV, 8, TYPE_NONE, "res 5,a" }, // af
{ RES_R, 6, REG_B, INV, 8, TYPE_NONE, "res 6,b" }, // b0
{ RES_R, 6, REG_C, INV, 8, TYPE_NONE, "res 6,c" }, // b1
{ RES_R, 6, REG_D, INV, 8, TYPE_NONE, "res 6,d" }, // b2
{ RES_R, 6, REG_E, INV, 8, TYPE_NONE, "res 6,e" }, // b3
{ RES_R, 6, REG_H, INV, 8, TYPE_NONE, "res 6,h" }, // b4
{ RES_R, 6, REG_L, INV, 8, TYPE_NONE, "res 6,l" }, // b5
{ RES_MRR, 6, REG_HL, INV, 15, TYPE_NONE, "res 6,(hl)" }, // b6
{ RES_R, 6, REG_A, INV, 8, TYPE_NONE, "res 6,a" }, // b7
{ RES_R, 7, REG_B, INV, 8, TYPE_NONE, "res 7,b" }, // b8
{ RES_R, 7, REG_C, INV, 8, TYPE_NONE, "res 7,c" }, // b9
{ RES_R, 7, REG_D, INV, 8, TYPE_NONE, "res 7,d" }, // ba
{ RES_R, 7, REG_E, INV, 8, TYPE_NONE, "res 7,e" }, // bb
{ RES_R, 7, REG_H, INV, 8, TYPE_NONE, "res 7,h" }, // bc
{ RES_R, 7, REG_L, INV, 8, TYPE_NONE, "res 7,l" }, // bd
{ RES_MRR, 7, REG_HL, INV, 15, TYPE_NONE, "res 7,(hl)" }, // be
{ RES_R, 7, REG_A, INV, 8, TYPE_NONE, "res 7,a" }, // bf
{ SET_R, 0, REG_B, INV, 8, TYPE_NONE, "set 0,b" }, // c0
{ SET_R, 0, REG_C, INV, 8, TYPE_NONE, "set 0,c" }, // c1
{ SET_R, 0, REG_D, INV, 8, TYPE_NONE, "set 0,d" }, // c2
{ SET_R, 0, REG_E, INV, 8, TYPE_NONE, "set 0,e" }, // c3
{ SET_R, 0, REG_H, INV, 8, TYPE_NONE, "set 0,h" }, // c4
{ SET_R, 0, REG_L, INV, 8, TYPE_NONE, "set 0,l" }, // c5
{ SET_MRR, 0, REG_HL, INV, 15, TYPE_NONE, "set 0,(hl)" }, // c6
{ SET_R, 0, REG_A, INV, 8, TYPE_NONE, "set 0,a" }, // c7
{ SET_R, 1, REG_B, INV, 8, TYPE_NONE, "set 1,b" }, // c8
{ SET_R, 1, REG_C, INV, 8, TYPE_NONE, "set 1,c" }, // c9
{ SET_R, 1, REG_D, INV, 8, TYPE_NONE, "set 1,d" }, // ca
{ SET_R, 1, REG_E, INV, 8, TYPE_NONE, "set 1,e" }, // cb
{ SET_R, 1, REG_H, INV, 8, TYPE_NONE, "set 1,h" }, // cc
{ SET_R, 1, REG_L, INV, 8, TYPE_NONE, "set 1,l" }, // cd
{ SET_MRR, 1, REG_HL, INV, 15, TYPE_NONE, "set 1,(hl)" }, // ce
{ SET_R, 1, REG_A, INV, 8, TYPE_NONE, "set 1,a" }, // cf
{ SET_R, 2, REG_B, INV, 8, TYPE_NONE, "set 2,b" }, // d0
{ SET_R, 2, REG_C, INV, 8, TYPE_NONE, "set 2,c" }, // d1
{ SET_R, 2, REG_D, INV, 8, TYPE_NONE, "set 2,d" }, // d2
{ SET_R, 2, REG_E, INV, 8, TYPE_NONE, "set 2,e" }, // d3
{ SET_R, 2, REG_H, INV, 8, TYPE_NONE, "set 2,h" }, // d4
{ SET_R, 2, REG_L, INV, 8, TYPE_NONE, "set 2,l" }, // d5
{ SET_MRR, 2, REG_HL, INV, 15, TYPE_NONE, "set 2,(hl)" }, // d6
{ SET_R, 2, REG_A, INV, 8, TYPE_NONE, "set 2,a" }, // d7
{ SET_R, 3, REG_B, INV, 8, TYPE_NONE, "set 3,b" }, // d8
{ SET_R, 3, REG_C, INV, 8, TYPE_NONE, "set 3,c" }, // d9
{ SET_R, 3, REG_D, INV, 8, TYPE_NONE, "set 3,d" }, // da
{ SET_R, 3, REG_E, INV, 8, TYPE_NONE, "set 3,e" }, // db
{ SET_R, 3, REG_H, INV, 8, TYPE_NONE, "set 3,h" }, // dc
{ SET_R, 3, REG_L, INV, 8, TYPE_NONE, "set 3,l" }, // dd
{ SET_MRR, 3, REG_HL, INV, 15, TYPE_NONE, "set 3,(hl)" }, // de
{ SET_R, 3, REG_A, INV, 8, TYPE_NONE, "set 3,a" }, // df
{ SET_R, 4, REG_B, INV, 8, TYPE_NONE, "set 4,b" }, // e0
{ SET_R, 4, REG_C, INV, 8, TYPE_NONE, "set 4,c" }, // e1
{ SET_R, 4, REG_D, INV, 8, TYPE_NONE, "set 4,d" }, // e2
{ SET_R, 4, REG_E, INV, 8, TYPE_NONE, "set 4,e" }, // e3
{ SET_R, 4, REG_H, INV, 8, TYPE_NONE, "set 4,h" }, // e4
{ SET_R, 4, REG_L, INV, 8, TYPE_NONE, "set 4,l" }, // e5
{ SET_MRR, 4, REG_HL, INV, 15, TYPE_NONE, "set 4,(hl)" }, // e6
{ SET_R, 4, REG_A, INV, 8, TYPE_NONE, "set 4,a" }, // e7
{ SET_R, 5, REG_B, INV, 8, TYPE_NONE, "set 5,b" }, // e8
{ SET_R, 5, REG_C, INV, 8, TYPE_NONE, "set 5,c" }, // e9
{ SET_R, 5, REG_D, INV, 8, TYPE_NONE, "set 5,d" }, // ea
{ SET_R, 5, REG_E, INV, 8, TYPE_NONE, "set 5,e" }, // eb
{ SET_R, 5, REG_H, INV, 8, TYPE_NONE, "set 5,h" }, // ec
{ SET_R, 5, REG_L, INV, 8, TYPE_NONE, "set 5,l" }, // ed
{ SET_MRR, 5, REG_HL, INV, 15, TYPE_NONE, "set 5,(hl)" }, // ee
{ SET_R, 5, REG_A, INV, 8, TYPE_NONE, "set 5,a" }, // ef
{ SET_R, 6, REG_B, INV, 8, TYPE_NONE, "set 6,b" }, // f0
{ SET_R, 6, REG_C, INV, 8, TYPE_NONE, "set 6,c" }, // f1
{ SET_R, 6, REG_D, INV, 8, TYPE_NONE, "set 6,d" }, // f2
{ SET_R, 6, REG_E, INV, 8, TYPE_NONE, "set 6,e" }, // f3
{ SET_R, 6, REG_H, INV, 8, TYPE_NONE, "set 6,h" }, // f4
{ SET_R, 6, REG_L, INV, 8, TYPE_NONE, "set 6,l" }, // f5
{ SET_MRR, 6, REG_HL, INV, 15, TYPE_NONE, "set 6,(hl)" }, // f6
{ SET_R, 6, REG_A, INV, 8, TYPE_NONE, "set 6,a" }, // f7
{ SET_R, 7, REG_B, INV, 8, TYPE_NONE, "set 7,b" }, // f8
{ SET_R, 7, REG_C, INV, 8, TYPE_NONE, "set 7,c" }, // f9
{ SET_R, 7, REG_D, INV, 8, TYPE_NONE, "set 7,d" }, // fa
{ SET_R, 7, REG_E, INV, 8, TYPE_NONE, "set 7,e" }, // fb
{ SET_R, 7, REG_H, INV, 8, TYPE_NONE, "set 7,h" }, // fc
{ SET_R, 7, REG_L, INV, 8, TYPE_NONE, "set 7,l" }, // fd
{ SET_MRR, 7, REG_HL, INV, 15, TYPE_NONE, "set 7,(hl)" }, // fe
{ SET_R, 7, REG_A, INV, 8, TYPE_NONE, "set 7,a" }, // ff

256
tables/dd_prefix.tab Normal file
View File

@ -0,0 +1,256 @@
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 00
{ LD_RR_NN, REG_BC, INV, INV, 14, TYPE_IMM_NN, "ld bc,%04hXh" }, // 01
{ LD_MRR_R, REG_BC, REG_A, INV, 11, TYPE_NONE, "ld (bc),a" }, // 02
{ INC_RR, REG_BC, INV, INV, 10, TYPE_NONE, "inc bc" }, // 03
{ INC_R, REG_B, INV, INV, 8, TYPE_NONE, "inc b" }, // 04
{ DEC_R, REG_B, INV, INV, 8, TYPE_NONE, "dec b" }, // 05
{ LD_R_N, REG_B, INV, INV, 11, TYPE_IMM_N, "ld b,%02hhXh" }, // 06
{ RLCA, INV, INV, INV, 8, TYPE_NONE, "rlca" }, // 07
{ EX_RR_RR, REG_AF, REG_AFP, INV, 8, TYPE_NONE, "ex af,af'" }, // 08
{ ADD_RR_RR, REG_IX, REG_BC, INV, 15, TYPE_NONE, "add ix,bc" }, // 09
{ LD_R_MRR, REG_A, REG_BC, INV, 11, TYPE_NONE, "ld a,(bc)" }, // 0a
{ DEC_RR, REG_BC, INV, INV, 10, TYPE_NONE, "dec bc" }, // 0b
{ INC_R, REG_C, INV, INV, 8, TYPE_NONE, "inc c" }, // 0c
{ DEC_R, REG_C, INV, INV, 8, TYPE_NONE, "dec c" }, // 0d
{ LD_R_N, REG_C, INV, INV, 11, TYPE_IMM_N, "ld c,%02hhXh" }, // 0e
{ RRCA, INV, INV, INV, 8, TYPE_NONE, "rrca" }, // 0f
{ DJNZ, INV, INV, 12, 17, TYPE_DISP, "djnz (pc%c%Xh)" }, // 10
{ LD_RR_NN, REG_DE, INV, INV, 14, TYPE_IMM_NN, "ld de,%04hXh" }, // 11
{ LD_MRR_R, REG_DE, REG_A, INV, 11, TYPE_NONE, "ld (de),a" }, // 12
{ INC_RR, REG_DE, INV, INV, 10, TYPE_NONE, "inc de" }, // 13
{ INC_R, REG_D, INV, INV, 8, TYPE_NONE, "inc d" }, // 14
{ DEC_R, REG_D, INV, INV, 8, TYPE_NONE, "dec d" }, // 15
{ LD_R_N, REG_D, INV, INV, 11, TYPE_IMM_N, "ld d,%02hhXh" }, // 16
{ RLA, INV, INV, INV, 8, TYPE_NONE, "rla" }, // 17
{ JR, INV, INV, INV, 16, TYPE_DISP, "jr (pc%c%Xh)" }, // 18
{ ADD_RR_RR, REG_IX, REG_DE, INV, 15, TYPE_NONE, "add ix,de" }, // 19
{ LD_R_MRR, REG_A, REG_DE, INV, 11, TYPE_NONE, "ld a,(de)" }, // 1a
{ DEC_RR, REG_DE, INV, INV, 10, TYPE_NONE, "dec de" }, // 1b
{ INC_R, REG_E, INV, INV, 8, TYPE_NONE, "inc e" }, // 1c
{ DEC_R, REG_E, INV, INV, 8, TYPE_NONE, "dec e" }, // 1d
{ LD_R_N, REG_E, INV, INV, 11, TYPE_IMM_N, "ld e,%02hhXh" }, // 1e
{ RRA, INV, INV, INV, 8, TYPE_NONE, "rra" }, // 1f
{ JR_C, COND_NZ, INV, 11, 16, TYPE_DISP, "jr nz,(pc%c%Xh)" }, // 20
{ LD_RR_NN, REG_IX, INV, INV, 14, TYPE_IMM_NN, "ld ix,%04hXh" }, // 21
{ LD_MNN_RR, INV, REG_IX, INV, 16, TYPE_IMM_NN, "ld (%04hXh),ix" }, // 22
{ INC_RR, REG_IX, INV, INV, 10, TYPE_NONE, "inc ix" }, // 23
{ INC_R, REG_IXH, INV, INV, 10, TYPE_NONE, "inc ixh" }, // 24
{ DEC_R, REG_IXH, INV, INV, 10, TYPE_NONE, "dec ixh" }, // 25
{ LD_R_N, REG_IXH, INV, INV, 11, TYPE_IMM_N, "ld ixh,%02hhXh" }, // 26
{ DAA, INV, INV, INV, 8, TYPE_NONE, "daa" }, // 27
{ JR_C, COND_Z, INV, 11, 16, TYPE_DISP, "jr z,(pc%c%Xh)" }, // 28
{ ADD_RR_RR, REG_IX, REG_IX, INV, 15, TYPE_NONE, "add ix,ix" }, // 29
{ LD_RR_MNN, REG_IX, INV, INV, 14, TYPE_IMM_NN, "ld ix,(%04hXh)" }, // 2a
{ DEC_RR, REG_IX, INV, INV, 10, TYPE_NONE, "dec ix" }, // 2b
{ INC_R, REG_IXL, INV, INV, 10, TYPE_NONE, "inc ixl" }, // 2c
{ DEC_R, REG_IXL, INV, INV, 10, TYPE_NONE, "dec ixl" }, // 2d
{ LD_R_N, REG_IXL, INV, INV, 11, TYPE_IMM_N, "ld ixl,%02hhXh" }, // 2e
{ CPL, INV, INV, INV, 8, TYPE_NONE, "cpl" }, // 2f
{ JR_C, COND_NC, INV, 11, 16, TYPE_DISP, "jr nc,(pc%c%Xh)" }, // 30
{ LD_RR_NN, REG_SP, INV, INV, 14, TYPE_IMM_NN, "ld sp,%04hXh" }, // 31
{ LD_MNN_R, INV, REG_A, INV, 17, TYPE_IMM_NN, "ld (%04hXh),a" }, // 32
{ INC_RR, REG_SP, INV, INV, 10, TYPE_NONE, "inc sp" }, // 33
{ INC_I, REG_IX, INV, INV, 23, TYPE_OFFSET, "inc (ix%c%02Xh)" }, // 34
{ DEC_I, REG_IX, INV, INV, 23, TYPE_OFFSET, "dec (ix%c%02Xh)" }, // 35
{ LD_I_N, REG_IX, INV, INV, 19, TYPE_OFFSET_IMM_N, "ld (ix%c%02Xh),%02hhXh" }, // 36
{ SCF, INV, INV, INV, 8, TYPE_NONE, "scf" }, // 37
{ JR_C, COND_C, INV, 11, 16, TYPE_DISP, "jr c,(pc%c%Xh)" }, // 38
{ ADD_RR_RR, REG_IX, REG_SP, INV, 15, TYPE_NONE, "add ix,sp" }, // 39
{ LD_R_MNN, REG_A, INV, INV, 17, TYPE_IMM_NN, "ld a,(%04hXh)" }, // 3a
{ DEC_RR, REG_SP, INV, INV, 10, TYPE_NONE, "dec sp" }, // 3b
{ INC_R, REG_A, INV, INV, 8, TYPE_NONE, "inc a" }, // 3c
{ DEC_R, REG_A, INV, INV, 8, TYPE_NONE, "dec a" }, // 3d
{ LD_R_N, REG_A, INV, INV, 11, TYPE_IMM_N, "ld a,%02hhXh" }, // 3e
{ CCF, INV, INV, INV, 8, TYPE_NONE, "ccf" }, // 3f
{ LD_R_R, REG_B, REG_B, INV, 8, TYPE_NONE, "ld b,b" }, // 40
{ LD_R_R, REG_B, REG_C, INV, 8, TYPE_NONE, "ld b,c" }, // 41
{ LD_R_R, REG_B, REG_D, INV, 8, TYPE_NONE, "ld b,d" }, // 42
{ LD_R_R, REG_B, REG_E, INV, 8, TYPE_NONE, "ld b,e" }, // 43
{ LD_R_R, REG_B, REG_IXH, INV, 8, TYPE_NONE, "ld b,ixh" }, // 44
{ LD_R_R, REG_B, REG_IXL, INV, 8, TYPE_NONE, "ld b,ixl" }, // 45
{ LD_R_I, REG_B, REG_IX, INV, 19, TYPE_OFFSET, "ld b,(ix%c%02Xh)" }, // 46
{ LD_R_R, REG_B, REG_A, INV, 8, TYPE_NONE, "ld b,a" }, // 47
{ LD_R_R, REG_C, REG_B, INV, 8, TYPE_NONE, "ld c,b" }, // 48
{ LD_R_R, REG_C, REG_C, INV, 8, TYPE_NONE, "ld c,c" }, // 49
{ LD_R_R, REG_C, REG_D, INV, 8, TYPE_NONE, "ld c,d" }, // 4a
{ LD_R_R, REG_C, REG_E, INV, 8, TYPE_NONE, "ld c,e" }, // 4b
{ LD_R_R, REG_C, REG_IXH, INV, 8, TYPE_NONE, "ld c,ixh" }, // 4c
{ LD_R_R, REG_C, REG_IXL, INV, 8, TYPE_NONE, "ld c,ixl" }, // 4d
{ LD_R_I, REG_C, REG_IX, INV, 19, TYPE_OFFSET, "ld c,(ix%c%02Xh)" }, // 4e
{ LD_R_R, REG_C, REG_A, INV, 8, TYPE_NONE, "ld c,a" }, // 4f
{ LD_R_R, REG_D, REG_B, INV, 8, TYPE_NONE, "ld d,b" }, // 50
{ LD_R_R, REG_D, REG_C, INV, 8, TYPE_NONE, "ld d,c" }, // 51
{ LD_R_R, REG_D, REG_D, INV, 8, TYPE_NONE, "ld d,d" }, // 52
{ LD_R_R, REG_D, REG_E, INV, 8, TYPE_NONE, "ld d,e" }, // 53
{ LD_R_R, REG_D, REG_IXH, INV, 8, TYPE_NONE, "ld d,ixh" }, // 54
{ LD_R_R, REG_D, REG_IXL, INV, 8, TYPE_NONE, "ld d,ixl" }, // 55
{ LD_R_I, REG_D, REG_IX, INV, 19, TYPE_OFFSET, "ld d,(ix%c%02Xh)" }, // 56
{ LD_R_R, REG_D, REG_A, INV, 8, TYPE_NONE, "ld d,a" }, // 57
{ LD_R_R, REG_E, REG_B, INV, 8, TYPE_NONE, "ld e,b" }, // 58
{ LD_R_R, REG_E, REG_C, INV, 8, TYPE_NONE, "ld e,c" }, // 59
{ LD_R_R, REG_E, REG_D, INV, 8, TYPE_NONE, "ld e,d" }, // 5a
{ LD_R_R, REG_E, REG_E, INV, 8, TYPE_NONE, "ld e,e" }, // 5b
{ LD_R_R, REG_E, REG_IXH, INV, 8, TYPE_NONE, "ld e,ixh" }, // 5c
{ LD_R_R, REG_E, REG_IXL, INV, 8, TYPE_NONE, "ld e,ixl" }, // 5d
{ LD_R_I, REG_E, REG_IX, INV, 19, TYPE_OFFSET, "ld e,(ix%c%02Xh)" }, // 5e
{ LD_R_R, REG_E, REG_A, INV, 8, TYPE_NONE, "ld e,a" }, // 5f
{ LD_R_R, REG_IXH, REG_B, INV, 8, TYPE_NONE, "ld ixh,b" }, // 60
{ LD_R_R, REG_IXH, REG_C, INV, 8, TYPE_NONE, "ld ixh,c" }, // 61
{ LD_R_R, REG_IXH, REG_D, INV, 8, TYPE_NONE, "ld ixh,d" }, // 62
{ LD_R_R, REG_IXH, REG_E, INV, 8, TYPE_NONE, "ld ixh,e" }, // 63
{ LD_R_R, REG_IXH, REG_IXH, INV, 8, TYPE_NONE, "ld ixh,ixh" }, // 64
{ LD_R_R, REG_IXH, REG_IXL, INV, 8, TYPE_NONE, "ld ixh,ixl" }, // 65
{ LD_R_I, REG_H, REG_IX, INV, 19, TYPE_OFFSET, "ld h,(ix%c%02Xh)" }, // 66
{ LD_R_R, REG_IXH, REG_A, INV, 8, TYPE_NONE, "ld ixh,a" }, // 67
{ LD_R_R, REG_IXL, REG_B, INV, 8, TYPE_NONE, "ld ixl,b" }, // 68
{ LD_R_R, REG_IXL, REG_C, INV, 8, TYPE_NONE, "ld ixl,c" }, // 69
{ LD_R_R, REG_IXL, REG_D, INV, 8, TYPE_NONE, "ld ixl,d" }, // 6a
{ LD_R_R, REG_IXL, REG_E, INV, 8, TYPE_NONE, "ld ixl,e" }, // 6b
{ LD_R_R, REG_IXL, REG_IXH, INV, 8, TYPE_NONE, "ld ixl,ixh" }, // 6c
{ LD_R_R, REG_IXL, REG_IXL, INV, 8, TYPE_NONE, "ld ixl,ixl" }, // 6d
{ LD_R_I, REG_L, REG_IX, INV, 19, TYPE_OFFSET, "ld l,(ix%c%02Xh)" }, // 6e
{ LD_R_R, REG_IXL, REG_A, INV, 8, TYPE_NONE, "ld ixl,a" }, // 6f
{ LD_I_R, REG_IX, REG_B, INV, 19, TYPE_OFFSET, "ld (ix%c%02Xh),b" }, // 70
{ LD_I_R, REG_IX, REG_C, INV, 19, TYPE_OFFSET, "ld (ix%c%02Xh),c" }, // 71
{ LD_I_R, REG_IX, REG_D, INV, 19, TYPE_OFFSET, "ld (ix%c%02Xh),d" }, // 72
{ LD_I_R, REG_IX, REG_E, INV, 19, TYPE_OFFSET, "ld (ix%c%02Xh),e" }, // 73
{ LD_I_R, REG_IX, REG_H, INV, 19, TYPE_OFFSET, "ld (ix%c%02Xh),h" }, // 74
{ LD_I_R, REG_IX, REG_L, INV, 19, TYPE_OFFSET, "ld (ix%c%02Xh),l" }, // 75
{ HALT, INV, INV, INV, 8, TYPE_NONE, "halt" }, // 76
{ LD_I_R, REG_IX, REG_A, INV, 19, TYPE_OFFSET, "ld (ix%c%02Xh),a" }, // 77
{ LD_R_R, REG_A, REG_B, INV, 8, TYPE_NONE, "ld a,b" }, // 78
{ LD_R_R, REG_A, REG_C, INV, 8, TYPE_NONE, "ld a,c" }, // 79
{ LD_R_R, REG_A, REG_D, INV, 8, TYPE_NONE, "ld a,d" }, // 7a
{ LD_R_R, REG_A, REG_E, INV, 8, TYPE_NONE, "ld a,e" }, // 7b
{ LD_R_R, REG_A, REG_IXH, INV, 8, TYPE_NONE, "ld a,ixh" }, // 7c
{ LD_R_R, REG_A, REG_IXL, INV, 8, TYPE_NONE, "ld a,ixl" }, // 7d
{ LD_R_I, REG_A, REG_IX, INV, 19, TYPE_OFFSET, "ld a,(ix%c%02Xh)" }, // 7e
{ LD_R_R, REG_A, REG_A, INV, 8, TYPE_NONE, "ld a,a" }, // 7f
{ ADD_R_R, REG_A, REG_B, INV, 8, TYPE_NONE, "add a,b" }, // 80
{ ADD_R_R, REG_A, REG_C, INV, 8, TYPE_NONE, "add a,c" }, // 81
{ ADD_R_R, REG_A, REG_D, INV, 8, TYPE_NONE, "add a,d" }, // 82
{ ADD_R_R, REG_A, REG_E, INV, 8, TYPE_NONE, "add a,e" }, // 83
{ ADD_R_R, REG_A, REG_IXH, INV, 8, TYPE_NONE, "add a,ixh" }, // 84
{ ADD_R_R, REG_A, REG_IXL, INV, 8, TYPE_NONE, "add a,ixl" }, // 85
{ ADD_R_I, REG_A, REG_IX, INV, 19, TYPE_OFFSET, "add a,(ix%c%02Xh)" }, // 86
{ ADD_R_R, REG_A, REG_A, INV, 8, TYPE_NONE, "add a,a" }, // 87
{ ADC_R_R, REG_A, REG_B, INV, 8, TYPE_NONE, "adc a,b" }, // 88
{ ADC_R_R, REG_A, REG_C, INV, 8, TYPE_NONE, "adc a,c" }, // 89
{ ADC_R_R, REG_A, REG_D, INV, 8, TYPE_NONE, "adc a,d" }, // 8a
{ ADC_R_R, REG_A, REG_E, INV, 8, TYPE_NONE, "adc a,e" }, // 8b
{ ADC_R_R, REG_A, REG_IXH, INV, 8, TYPE_NONE, "adc a,ixh" }, // 8c
{ ADC_R_R, REG_A, REG_IXL, INV, 8, TYPE_NONE, "adc a,ixl" }, // 8d
{ ADC_R_I, REG_A, REG_IX, INV, 19, TYPE_OFFSET, "adc a,(ix%c%02Xh)" }, // 8e
{ ADC_R_R, REG_A, REG_A, INV, 8, TYPE_NONE, "adc a,a" }, // 8f
{ SUB_R, REG_B, INV, INV, 8, TYPE_NONE, "sub b" }, // 90
{ SUB_R, REG_C, INV, INV, 8, TYPE_NONE, "sub c" }, // 91
{ SUB_R, REG_D, INV, INV, 8, TYPE_NONE, "sub d" }, // 92
{ SUB_R, REG_E, INV, INV, 8, TYPE_NONE, "sub e" }, // 93
{ SUB_R, REG_IXH, INV, INV, 8, TYPE_NONE, "sub ixh" }, // 94
{ SUB_R, REG_IXL, INV, INV, 8, TYPE_NONE, "sub ixl" }, // 95
{ SUB_I, REG_IX, INV, INV, 19, TYPE_OFFSET, "sub (ix%c%02Xh)" }, // 96
{ SUB_R, REG_A, INV, INV, 8, TYPE_NONE, "sub a" }, // 97
{ SBC_R_R, REG_A, REG_B, INV, 8, TYPE_NONE, "sbc a,b" }, // 98
{ SBC_R_R, REG_A, REG_C, INV, 8, TYPE_NONE, "sbc a,c" }, // 99
{ SBC_R_R, REG_A, REG_D, INV, 8, TYPE_NONE, "sbc a,d" }, // 9a
{ SBC_R_R, REG_A, REG_E, INV, 8, TYPE_NONE, "sbc a,e" }, // 9b
{ SBC_R_R, REG_A, REG_IXH, INV, 8, TYPE_NONE, "sbc a,ixh" }, // 9c
{ SBC_R_R, REG_A, REG_IXL, INV, 8, TYPE_NONE, "sbc a,ixl" }, // 9d
{ SBC_R_I, REG_A, REG_IX, INV, 19, TYPE_OFFSET, "sbc a,(ix%c%02Xh)" }, // 9e
{ SBC_R_R, REG_A, REG_A, INV, 8, TYPE_NONE, "sbc a,a" }, // 9f
{ AND_R, REG_B, INV, INV, 8, TYPE_NONE, "and b" }, // a0
{ AND_R, REG_C, INV, INV, 8, TYPE_NONE, "and c" }, // a1
{ AND_R, REG_D, INV, INV, 8, TYPE_NONE, "and d" }, // a2
{ AND_R, REG_E, INV, INV, 8, TYPE_NONE, "and e" }, // a3
{ AND_R, REG_IXH, INV, INV, 8, TYPE_NONE, "and ixh" }, // a4
{ AND_R, REG_IXL, INV, INV, 8, TYPE_NONE, "and ixl" }, // a5
{ AND_I, REG_IX, INV, INV, 19, TYPE_OFFSET, "and (ix%c%02Xh)" }, // a6
{ AND_R, REG_A, INV, INV, 8, TYPE_NONE, "and a" }, // a7
{ XOR_R, REG_B, INV, INV, 8, TYPE_NONE, "xor b" }, // a8
{ XOR_R, REG_C, INV, INV, 8, TYPE_NONE, "xor c" }, // a9
{ XOR_R, REG_D, INV, INV, 8, TYPE_NONE, "xor d" }, // aa
{ XOR_R, REG_E, INV, INV, 8, TYPE_NONE, "xor e" }, // ab
{ XOR_R, REG_IXH, INV, INV, 8, TYPE_NONE, "xor ixh" }, // ac
{ XOR_R, REG_IXL, INV, INV, 8, TYPE_NONE, "xor ixl" }, // ad
{ XOR_I, REG_IX, INV, INV, 19, TYPE_OFFSET, "xor (ix%c%02Xh)" }, // ae
{ XOR_R, REG_A, INV, INV, 8, TYPE_NONE, "xor a" }, // af
{ OR_R, REG_B, INV, INV, 8, TYPE_NONE, "or b" }, // b0
{ OR_R, REG_C, INV, INV, 8, TYPE_NONE, "or c" }, // b1
{ OR_R, REG_D, INV, INV, 8, TYPE_NONE, "or d" }, // b2
{ OR_R, REG_E, INV, INV, 8, TYPE_NONE, "or e" }, // b3
{ OR_R, REG_IXH, INV, INV, 8, TYPE_NONE, "or ixh" }, // b4
{ OR_R, REG_IXL, INV, INV, 8, TYPE_NONE, "or ixl" }, // b5
{ OR_I, REG_IX, INV, INV, 19, TYPE_OFFSET, "or (ix%c%02Xh)" }, // b6
{ OR_R, REG_A, INV, INV, 8, TYPE_NONE, "or a" }, // b7
{ CP_R, REG_B, INV, INV, 8, TYPE_NONE, "cp b" }, // b8
{ CP_R, REG_C, INV, INV, 8, TYPE_NONE, "cp c" }, // b9
{ CP_R, REG_D, INV, INV, 8, TYPE_NONE, "cp d" }, // ba
{ CP_R, REG_E, INV, INV, 8, TYPE_NONE, "cp e" }, // bb
{ CP_R, REG_IXH, INV, INV, 8, TYPE_NONE, "cp ixh" }, // bc
{ CP_R, REG_IXL, INV, INV, 8, TYPE_NONE, "cp ixl" }, // bd
{ CP_I, REG_IX, INV, INV, 19, TYPE_OFFSET, "cp (ix%c%02Xh)" }, // be
{ CP_R, REG_A, INV, INV, 8, TYPE_NONE, "cp a" }, // bf
{ RET_C, COND_NZ, INV, 9, 15, TYPE_NONE, "ret nz" }, // c0
{ POP_RR, REG_BC, INV, INV, 14, TYPE_NONE, "pop bc" }, // c1
{ JP_C_MNN, COND_NZ, INV, INV, 14, TYPE_IMM_NN, "jp nz,(%04hXh)" }, // c2
{ JP_MNN, INV, INV, INV, 14, TYPE_IMM_NN, "jp (%04hXh)" }, // c3
{ CALL_C_MNN, COND_NZ, INV, 14, 21, TYPE_IMM_NN, "call nz,(%04hXh)" }, // c4
{ PUSH_RR, REG_BC, INV, INV, 15, TYPE_NONE, "push bc" }, // c5
{ ADD_R_N, REG_A, INV, INV, 11, TYPE_IMM_N, "add a,%02hhXh" }, // c6
{ RST, 0x0, INV, INV, 15, TYPE_NONE, "rst 0h" }, // c7
{ RET_C, COND_Z, INV, 9, 15, TYPE_NONE, "ret z" }, // c8
{ RET, INV, INV, INV, 14, TYPE_NONE, "ret" }, // c9
{ JP_C_MNN, COND_Z, INV, INV, 14, TYPE_IMM_NN, "jp z,(%04hXh)" }, // ca
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // cb
{ CALL_C_MNN, COND_Z, INV, 14, 21, TYPE_IMM_NN, "call z,(%04hXh)" }, // cc
{ CALL_MNN, INV, INV, INV, 21, TYPE_IMM_NN, "call (%04hXh)" }, // cd
{ ADC_R_N, REG_A, INV, INV, 11, TYPE_IMM_N, "adc a,%02hhXh" }, // ce
{ RST, 0x8, INV, INV, 15, TYPE_NONE, "rst 8h" }, // cf
{ RET_C, COND_NC, INV, INV, 9, TYPE_NONE, "ret nc" }, // d0
{ POP_RR, REG_DE, INV, INV, 14, TYPE_NONE, "pop de" }, // d1
{ JP_C_MNN, COND_NC, INV, INV, 14, TYPE_IMM_NN, "jp nc,(%04hXh)" }, // d2
{ OUT_MN_R, INV, REG_A, INV, 15, TYPE_IMM_N, "out (%02hhXh),a" }, // d3
{ CALL_C_MNN, COND_NC, INV, 14, 21, TYPE_IMM_NN, "call nc,(%04hXh)" }, // d4
{ PUSH_RR, REG_DE, INV, INV, 15, TYPE_NONE, "push de" }, // d5
{ SUB_N, INV, INV, INV, 11, TYPE_IMM_N, "sub %02hhXh" }, // d6
{ RST, 0x10, INV, INV, 15, TYPE_NONE, "rst 10h" }, // d7
{ RET_C, COND_C, INV, INV, 9, TYPE_NONE, "ret c" }, // d8
{ EXX, INV, INV, INV, 8, TYPE_NONE, "exx" }, // d9
{ JP_C_MNN, COND_C, INV, INV, 14, TYPE_IMM_NN, "jp c,(%04hXh)" }, // da
{ IN_R_MN, REG_A, INV, INV, 15, TYPE_IMM_N, "in a,(%02hhXh)" }, // db
{ CALL_C_MNN, COND_C, INV, 14, 21, TYPE_IMM_NN, "call c,(%04hXh)" }, // dc
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // dd
{ SBC_R_N, REG_A, INV, INV, 19, TYPE_IMM_N, "sbc a,%02hhXh" }, // de
{ RST, 0x18, INV, INV, 15, TYPE_NONE, "rst 18h" }, // df
{ RET_C, COND_PO, INV, 9, 15, TYPE_NONE, "ret po" }, // e0
{ POP_RR, REG_IX, INV, INV, 14, TYPE_NONE, "pop ix" }, // e1
{ JP_C_MNN, COND_PO, INV, INV, 14, TYPE_IMM_NN, "jp po,(%04hXh)" }, // e2
{ EX_MRR_RR, REG_SP, REG_IX, INV, 23, TYPE_NONE, "ex (sp),ix" }, // e3
{ CALL_C_MNN, COND_PO, INV, 14, 21, TYPE_IMM_NN, "call po,(%04hXh)" }, // e4
{ PUSH_RR, REG_IX, INV, INV, 15, TYPE_NONE, "push ix" }, // e5
{ AND_N, INV, INV, INV, 11, TYPE_IMM_N, "and %02hhXh" }, // e6
{ RST, 0x20, INV, INV, 15, TYPE_NONE, "rst 20h" }, // e7
{ RET_C, COND_PE, INV, 9, 15, TYPE_NONE, "ret pe" }, // e8
{ JP_MRR, REG_IX, INV, INV, 8, TYPE_NONE, "jp (ix)" }, // e9
{ JP_C_MNN, COND_PE, INV, INV, 14, TYPE_IMM_NN, "jp pe,(%04hXh)" }, // ea
{ EX_RR_RR, REG_DE, REG_HL, INV, 8, TYPE_NONE, "ex de,hl" }, // eb
{ CALL_C_MNN, COND_PE, INV, 14, 21, TYPE_IMM_NN, "call pe,(%04hXh)" }, // ec
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ed
{ XOR_N, INV, INV, INV, 11, TYPE_IMM_N, "xor %02hhXh" }, // ee
{ RST, 0x28, INV, INV, 15, TYPE_NONE, "rst 28h" }, // ef
{ RET_C, COND_P, INV, 9, 15, TYPE_NONE, "ret p" }, // f0
{ POP_RR, REG_AF, INV, INV, 14, TYPE_NONE, "pop af" }, // f1
{ JP_C_MNN, COND_P, INV, INV, 14, TYPE_IMM_NN, "jp p,(%04hXh)" }, // f2
{ DI, INV, INV, INV, 8, TYPE_NONE, "di" }, // f3
{ CALL_C_MNN, COND_P, INV, 14, 21, TYPE_IMM_NN, "call p,(%04hXh)" }, // f4
{ PUSH_RR, REG_AF, INV, INV, 15, TYPE_NONE, "push af" }, // f5
{ OR_N, INV, INV, INV, 11, TYPE_IMM_N, "or %02hhXh" }, // f6
{ RST, 0x30, INV, INV, 15, TYPE_NONE, "rst 30h" }, // f7
{ RET_C, COND_M, INV, 9, 15, TYPE_NONE, "ret m" }, // f8
{ LD_RR_RR, REG_SP, REG_IX, INV, 10, TYPE_NONE, "ld sp,ix" }, // f9
{ JP_C_MNN, COND_M, INV, INV, 14, TYPE_IMM_NN, "jp m,(%04hXh)" }, // fa
{ EI, INV, INV, INV, 8, TYPE_NONE, "ei" }, // fb
{ CALL_C_MNN, COND_M, INV, 14, 21, TYPE_IMM_NN, "call m,(%04hXh)" }, // fc
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // fd
{ CP_N, INV, INV, INV, 11, TYPE_IMM_N, "cp %02hhXh" }, // fe
{ RST, 0x38, INV, INV, 15, TYPE_NONE, "rst 38h" }, // ff

256
tables/ddcb_prefix.tab Normal file
View File

@ -0,0 +1,256 @@
{ RLC_I, REG_IX, INV, REG_B, 23, TYPE_OFFSET, "ld b,rlc (ix%c%02Xh)" }, // 00
{ RLC_I, REG_IX, INV, REG_C, 23, TYPE_OFFSET, "ld c,rlc (ix%c%02Xh)" }, // 01
{ RLC_I, REG_IX, INV, REG_D, 23, TYPE_OFFSET, "ld d,rlc (ix%c%02Xh)" }, // 02
{ RLC_I, REG_IX, INV, REG_E, 23, TYPE_OFFSET, "ld e,rlc (ix%c%02Xh)" }, // 03
{ RLC_I, REG_IX, INV, REG_H, 23, TYPE_OFFSET, "ld h,rlc (ix%c%02Xh)" }, // 04
{ RLC_I, REG_IX, INV, REG_L, 23, TYPE_OFFSET, "ld l,rlc (ix%c%02Xh)" }, // 05
{ RLC_I, REG_IX, INV, INV, 23, TYPE_OFFSET, "rlc (ix%c%02Xh)" }, // 06
{ RLC_I, REG_IX, INV, REG_A, 23, TYPE_OFFSET, "ld a,rlc (ix%c%02Xh)" }, // 07
{ RRC_I, REG_IX, INV, REG_B, 23, TYPE_OFFSET, "ld b,rrc (ix%c%02Xh)" }, // 08
{ RRC_I, REG_IX, INV, REG_C, 23, TYPE_OFFSET, "ld c,rrc (ix%c%02Xh)" }, // 09
{ RRC_I, REG_IX, INV, REG_D, 23, TYPE_OFFSET, "ld d,rrc (ix%c%02Xh)" }, // 0a
{ RRC_I, REG_IX, INV, REG_E, 23, TYPE_OFFSET, "ld e,rrc (ix%c%02Xh)" }, // 0b
{ RRC_I, REG_IX, INV, REG_H, 23, TYPE_OFFSET, "ld h,rrc (ix%c%02Xh)" }, // 0c
{ RRC_I, REG_IX, INV, REG_L, 23, TYPE_OFFSET, "ld l,rrc (ix%c%02Xh)" }, // 0d
{ RRC_I, REG_IX, INV, INV, 23, TYPE_OFFSET, "rrc (ix%c%02Xh)" }, // 0e
{ RRC_I, REG_IX, INV, REG_A, 23, TYPE_OFFSET, "ld a,rrc (ix%c%02Xh)" }, // 0f
{ RL_I, REG_IX, INV, REG_B, 23, TYPE_OFFSET, "ld b,rl (ix%c%02Xh)" }, // 10
{ RL_I, REG_IX, INV, REG_C, 23, TYPE_OFFSET, "ld c,rl (ix%c%02Xh)" }, // 11
{ RL_I, REG_IX, INV, REG_D, 23, TYPE_OFFSET, "ld d,rl (ix%c%02Xh)" }, // 12
{ RL_I, REG_IX, INV, REG_E, 23, TYPE_OFFSET, "ld e,rl (ix%c%02Xh)" }, // 13
{ RL_I, REG_IX, INV, REG_H, 23, TYPE_OFFSET, "ld h,rl (ix%c%02Xh)" }, // 14
{ RL_I, REG_IX, INV, REG_L, 23, TYPE_OFFSET, "ld l,rl (ix%c%02Xh)" }, // 15
{ RL_I, REG_IX, INV, INV, 23, TYPE_OFFSET, "rl (ix%c%02Xh)" }, // 16
{ RL_I, REG_IX, INV, REG_A, 23, TYPE_OFFSET, "ld a,rl (ix%c%02Xh)" }, // 17
{ RR_I, REG_IX, INV, REG_B, 23, TYPE_OFFSET, "ld b,rr (ix%c%02Xh)" }, // 18
{ RR_I, REG_IX, INV, REG_C, 23, TYPE_OFFSET, "ld c,rr (ix%c%02Xh)" }, // 19
{ RR_I, REG_IX, INV, REG_D, 23, TYPE_OFFSET, "ld d,rr (ix%c%02Xh)" }, // 1a
{ RR_I, REG_IX, INV, REG_E, 23, TYPE_OFFSET, "ld e,rr (ix%c%02Xh)" }, // 1b
{ RR_I, REG_IX, INV, REG_H, 23, TYPE_OFFSET, "ld h,rr (ix%c%02Xh)" }, // 1c
{ RR_I, REG_IX, INV, REG_L, 23, TYPE_OFFSET, "ld l,rr (ix%c%02Xh)" }, // 1d
{ RR_I, REG_IX, INV, INV, 23, TYPE_OFFSET, "rr (ix%c%02Xh)" }, // 1e
{ RR_I, REG_IX, INV, REG_A, 23, TYPE_OFFSET, "ld a,rr (ix%c%02Xh)" }, // 1f
{ SLA_I, REG_IX, INV, REG_B, 23, TYPE_OFFSET, "ld b,sla (ix%c%02Xh)" }, // 20
{ SLA_I, REG_IX, INV, REG_C, 23, TYPE_OFFSET, "ld c,sla (ix%c%02Xh)" }, // 21
{ SLA_I, REG_IX, INV, REG_D, 23, TYPE_OFFSET, "ld d,sla (ix%c%02Xh)" }, // 22
{ SLA_I, REG_IX, INV, REG_E, 23, TYPE_OFFSET, "ld e,sla (ix%c%02Xh)" }, // 23
{ SLA_I, REG_IX, INV, REG_H, 23, TYPE_OFFSET, "ld h,sla (ix%c%02Xh)" }, // 24
{ SLA_I, REG_IX, INV, REG_L, 23, TYPE_OFFSET, "ld l,sla (ix%c%02Xh)" }, // 25
{ SLA_I, REG_IX, INV, INV, 23, TYPE_OFFSET, "sla (ix%c%02Xh)" }, // 26
{ SLA_I, REG_IX, INV, REG_A, 23, TYPE_OFFSET, "ld a,sla (ix%c%02Xh)" }, // 27
{ SRA_I, REG_IX, INV, REG_B, 23, TYPE_OFFSET, "ld b,sra (ix%c%02Xh)" }, // 28
{ SRA_I, REG_IX, INV, REG_C, 23, TYPE_OFFSET, "ld c,sra (ix%c%02Xh)" }, // 29
{ SRA_I, REG_IX, INV, REG_D, 23, TYPE_OFFSET, "ld d,sra (ix%c%02Xh)" }, // 2a
{ SRA_I, REG_IX, INV, REG_E, 23, TYPE_OFFSET, "ld e,sra (ix%c%02Xh)" }, // 2b
{ SRA_I, REG_IX, INV, REG_H, 23, TYPE_OFFSET, "ld h,sra (ix%c%02Xh)" }, // 2c
{ SRA_I, REG_IX, INV, REG_L, 23, TYPE_OFFSET, "ld l,sra (ix%c%02Xh)" }, // 2d
{ SRA_I, REG_IX, INV, INV, 23, TYPE_OFFSET, "sra (ix%c%02Xh)" }, // 2e
{ SRA_I, REG_IX, INV, REG_A, 23, TYPE_OFFSET, "ld a,sra (ix%c%02Xh)" }, // 2f
{ SLL_I, REG_IX, INV, REG_B, 23, TYPE_OFFSET, "ld b,sll (ix%c%02Xh)" }, // 30
{ SLL_I, REG_IX, INV, REG_C, 23, TYPE_OFFSET, "ld c,sll (ix%c%02Xh)" }, // 31
{ SLL_I, REG_IX, INV, REG_D, 23, TYPE_OFFSET, "ld d,sll (ix%c%02Xh)" }, // 32
{ SLL_I, REG_IX, INV, REG_E, 23, TYPE_OFFSET, "ld e,sll (ix%c%02Xh)" }, // 33
{ SLL_I, REG_IX, INV, REG_H, 23, TYPE_OFFSET, "ld h,sll (ix%c%02Xh)" }, // 34
{ SLL_I, REG_IX, INV, REG_L, 23, TYPE_OFFSET, "ld l,sll (ix%c%02Xh)" }, // 35
{ SLL_I, REG_IX, INV, INV, 23, TYPE_OFFSET, "sll (ix%c%02Xh)" }, // 36
{ SLL_I, REG_IX, INV, REG_A, 23, TYPE_OFFSET, "ld a,sll (ix%c%02Xh)" }, // 37
{ SRL_I, REG_IX, INV, REG_B, 23, TYPE_OFFSET, "ld b,srl (ix%c%02Xh)" }, // 38
{ SRL_I, REG_IX, INV, REG_C, 23, TYPE_OFFSET, "ld c,srl (ix%c%02Xh)" }, // 39
{ SRL_I, REG_IX, INV, REG_D, 23, TYPE_OFFSET, "ld d,srl (ix%c%02Xh)" }, // 3a
{ SRL_I, REG_IX, INV, REG_E, 23, TYPE_OFFSET, "ld e,srl (ix%c%02Xh)" }, // 3b
{ SRL_I, REG_IX, INV, REG_H, 23, TYPE_OFFSET, "ld h,srl (ix%c%02Xh)" }, // 3c
{ SRL_I, REG_IX, INV, REG_L, 23, TYPE_OFFSET, "ld l,srl (ix%c%02Xh)" }, // 3d
{ SRL_I, REG_IX, INV, INV, 23, TYPE_OFFSET, "srl (ix%c%02Xh)" }, // 3e
{ SRL_I, REG_IX, INV, REG_A, 23, TYPE_OFFSET, "ld a,srl (ix%c%02Xh)" }, // 3f
{ BIT_I, 0, REG_IX, INV, 20, TYPE_OFFSET, "bit 0,(ix%c%02Xh)" }, // 40
{ BIT_I, 0, REG_IX, INV, 20, TYPE_OFFSET, "bit 0,(ix%c%02Xh)" }, // 41
{ BIT_I, 0, REG_IX, INV, 20, TYPE_OFFSET, "bit 0,(ix%c%02Xh)" }, // 42
{ BIT_I, 0, REG_IX, INV, 20, TYPE_OFFSET, "bit 0,(ix%c%02Xh)" }, // 43
{ BIT_I, 0, REG_IX, INV, 20, TYPE_OFFSET, "bit 0,(ix%c%02Xh)" }, // 44
{ BIT_I, 0, REG_IX, INV, 20, TYPE_OFFSET, "bit 0,(ix%c%02Xh)" }, // 45
{ BIT_I, 0, REG_IX, INV, 20, TYPE_OFFSET, "bit 0,(ix%c%02Xh)" }, // 46
{ BIT_I, 0, REG_IX, INV, 20, TYPE_OFFSET, "bit 0,(ix%c%02Xh)" }, // 47
{ BIT_I, 1, REG_IX, INV, 20, TYPE_OFFSET, "bit 1,(ix%c%02Xh)" }, // 48
{ BIT_I, 1, REG_IX, INV, 20, TYPE_OFFSET, "bit 1,(ix%c%02Xh)" }, // 49
{ BIT_I, 1, REG_IX, INV, 20, TYPE_OFFSET, "bit 1,(ix%c%02Xh)" }, // 4a
{ BIT_I, 1, REG_IX, INV, 20, TYPE_OFFSET, "bit 1,(ix%c%02Xh)" }, // 4b
{ BIT_I, 1, REG_IX, INV, 20, TYPE_OFFSET, "bit 1,(ix%c%02Xh)" }, // 4c
{ BIT_I, 1, REG_IX, INV, 20, TYPE_OFFSET, "bit 1,(ix%c%02Xh)" }, // 4d
{ BIT_I, 1, REG_IX, INV, 20, TYPE_OFFSET, "bit 1,(ix%c%02Xh)" }, // 4e
{ BIT_I, 1, REG_IX, INV, 20, TYPE_OFFSET, "bit 1,(ix%c%02Xh)" }, // 4f
{ BIT_I, 2, REG_IX, INV, 20, TYPE_OFFSET, "bit 2,(ix%c%02Xh)" }, // 50
{ BIT_I, 2, REG_IX, INV, 20, TYPE_OFFSET, "bit 2,(ix%c%02Xh)" }, // 51
{ BIT_I, 2, REG_IX, INV, 20, TYPE_OFFSET, "bit 2,(ix%c%02Xh)" }, // 52
{ BIT_I, 2, REG_IX, INV, 20, TYPE_OFFSET, "bit 2,(ix%c%02Xh)" }, // 53
{ BIT_I, 2, REG_IX, INV, 20, TYPE_OFFSET, "bit 2,(ix%c%02Xh)" }, // 54
{ BIT_I, 2, REG_IX, INV, 20, TYPE_OFFSET, "bit 2,(ix%c%02Xh)" }, // 55
{ BIT_I, 2, REG_IX, INV, 20, TYPE_OFFSET, "bit 2,(ix%c%02Xh)" }, // 56
{ BIT_I, 2, REG_IX, INV, 20, TYPE_OFFSET, "bit 2,(ix%c%02Xh)" }, // 57
{ BIT_I, 3, REG_IX, INV, 20, TYPE_OFFSET, "bit 3,(ix%c%02Xh)" }, // 58
{ BIT_I, 3, REG_IX, INV, 20, TYPE_OFFSET, "bit 3,(ix%c%02Xh)" }, // 59
{ BIT_I, 3, REG_IX, INV, 20, TYPE_OFFSET, "bit 3,(ix%c%02Xh)" }, // 5a
{ BIT_I, 3, REG_IX, INV, 20, TYPE_OFFSET, "bit 3,(ix%c%02Xh)" }, // 5b
{ BIT_I, 3, REG_IX, INV, 20, TYPE_OFFSET, "bit 3,(ix%c%02Xh)" }, // 5c
{ BIT_I, 3, REG_IX, INV, 20, TYPE_OFFSET, "bit 3,(ix%c%02Xh)" }, // 5d
{ BIT_I, 3, REG_IX, INV, 20, TYPE_OFFSET, "bit 3,(ix%c%02Xh)" }, // 5e
{ BIT_I, 3, REG_IX, INV, 20, TYPE_OFFSET, "bit 3,(ix%c%02Xh)" }, // 5f
{ BIT_I, 4, REG_IX, INV, 20, TYPE_OFFSET, "bit 4,(ix%c%02Xh)" }, // 60
{ BIT_I, 4, REG_IX, INV, 20, TYPE_OFFSET, "bit 4,(ix%c%02Xh)" }, // 61
{ BIT_I, 4, REG_IX, INV, 20, TYPE_OFFSET, "bit 4,(ix%c%02Xh)" }, // 62
{ BIT_I, 4, REG_IX, INV, 20, TYPE_OFFSET, "bit 4,(ix%c%02Xh)" }, // 63
{ BIT_I, 4, REG_IX, INV, 20, TYPE_OFFSET, "bit 4,(ix%c%02Xh)" }, // 64
{ BIT_I, 4, REG_IX, INV, 20, TYPE_OFFSET, "bit 4,(ix%c%02Xh)" }, // 65
{ BIT_I, 4, REG_IX, INV, 20, TYPE_OFFSET, "bit 4,(ix%c%02Xh)" }, // 66
{ BIT_I, 4, REG_IX, INV, 20, TYPE_OFFSET, "bit 4,(ix%c%02Xh)" }, // 67
{ BIT_I, 5, REG_IX, INV, 20, TYPE_OFFSET, "bit 5,(ix%c%02Xh)" }, // 68
{ BIT_I, 5, REG_IX, INV, 20, TYPE_OFFSET, "bit 5,(ix%c%02Xh)" }, // 69
{ BIT_I, 5, REG_IX, INV, 20, TYPE_OFFSET, "bit 5,(ix%c%02Xh)" }, // 6a
{ BIT_I, 5, REG_IX, INV, 20, TYPE_OFFSET, "bit 5,(ix%c%02Xh)" }, // 6b
{ BIT_I, 5, REG_IX, INV, 20, TYPE_OFFSET, "bit 5,(ix%c%02Xh)" }, // 6c
{ BIT_I, 5, REG_IX, INV, 20, TYPE_OFFSET, "bit 5,(ix%c%02Xh)" }, // 6d
{ BIT_I, 5, REG_IX, INV, 20, TYPE_OFFSET, "bit 5,(ix%c%02Xh)" }, // 6e
{ BIT_I, 5, REG_IX, INV, 20, TYPE_OFFSET, "bit 5,(ix%c%02Xh)" }, // 6f
{ BIT_I, 6, REG_IX, INV, 20, TYPE_OFFSET, "bit 6,(ix%c%02Xh)" }, // 70
{ BIT_I, 6, REG_IX, INV, 20, TYPE_OFFSET, "bit 6,(ix%c%02Xh)" }, // 71
{ BIT_I, 6, REG_IX, INV, 20, TYPE_OFFSET, "bit 6,(ix%c%02Xh)" }, // 72
{ BIT_I, 6, REG_IX, INV, 20, TYPE_OFFSET, "bit 6,(ix%c%02Xh)" }, // 73
{ BIT_I, 6, REG_IX, INV, 20, TYPE_OFFSET, "bit 6,(ix%c%02Xh)" }, // 74
{ BIT_I, 6, REG_IX, INV, 20, TYPE_OFFSET, "bit 6,(ix%c%02Xh)" }, // 75
{ BIT_I, 6, REG_IX, INV, 20, TYPE_OFFSET, "bit 6,(ix%c%02Xh)" }, // 76
{ BIT_I, 6, REG_IX, INV, 20, TYPE_OFFSET, "bit 6,(ix%c%02Xh)" }, // 77
{ BIT_I, 7, REG_IX, INV, 20, TYPE_OFFSET, "bit 7,(ix%c%02Xh)" }, // 78
{ BIT_I, 7, REG_IX, INV, 20, TYPE_OFFSET, "bit 7,(ix%c%02Xh)" }, // 79
{ BIT_I, 7, REG_IX, INV, 20, TYPE_OFFSET, "bit 7,(ix%c%02Xh)" }, // 7a
{ BIT_I, 7, REG_IX, INV, 20, TYPE_OFFSET, "bit 7,(ix%c%02Xh)" }, // 7b
{ BIT_I, 7, REG_IX, INV, 20, TYPE_OFFSET, "bit 7,(ix%c%02Xh)" }, // 7c
{ BIT_I, 7, REG_IX, INV, 20, TYPE_OFFSET, "bit 7,(ix%c%02Xh)" }, // 7d
{ BIT_I, 7, REG_IX, INV, 20, TYPE_OFFSET, "bit 7,(ix%c%02Xh)" }, // 7e
{ BIT_I, 7, REG_IX, INV, 20, TYPE_OFFSET, "bit 7,(ix%c%02Xh)" }, // 7f
{ RES_I, 0, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,res 0,(ix%c%02Xh)" }, // 80
{ RES_I, 0, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,res 0,(ix%c%02Xh)" }, // 81
{ RES_I, 0, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,res 0,(ix%c%02Xh)" }, // 82
{ RES_I, 0, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,res 0,(ix%c%02Xh)" }, // 83
{ RES_I, 0, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,res 0,(ix%c%02Xh)" }, // 84
{ RES_I, 0, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,res 0,(ix%c%02Xh)" }, // 85
{ RES_I, 0, REG_IX, INV, 23, TYPE_OFFSET, "res 0,(ix%c%02Xh)" }, // 86
{ RES_I, 0, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,res 0,(ix%c%02Xh)" }, // 87
{ RES_I, 1, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,res 1,(ix%c%02Xh)" }, // 88
{ RES_I, 1, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,res 1,(ix%c%02Xh)" }, // 89
{ RES_I, 1, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,res 1,(ix%c%02Xh)" }, // 8a
{ RES_I, 1, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,res 1,(ix%c%02Xh)" }, // 8b
{ RES_I, 1, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,res 1,(ix%c%02Xh)" }, // 8c
{ RES_I, 1, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,res 1,(ix%c%02Xh)" }, // 8d
{ RES_I, 1, REG_IX, INV, 23, TYPE_OFFSET, "res 1,(ix%c%02Xh)" }, // 8e
{ RES_I, 1, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,res 1,(ix%c%02Xh)" }, // 8f
{ RES_I, 2, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,res 2,(ix%c%02Xh)" }, // 90
{ RES_I, 2, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,res 2,(ix%c%02Xh)" }, // 91
{ RES_I, 2, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,res 2,(ix%c%02Xh)" }, // 92
{ RES_I, 2, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,res 2,(ix%c%02Xh)" }, // 93
{ RES_I, 2, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,res 2,(ix%c%02Xh)" }, // 94
{ RES_I, 2, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,res 2,(ix%c%02Xh)" }, // 95
{ RES_I, 2, REG_IX, INV, 23, TYPE_OFFSET, "res 2,(ix%c%02Xh)" }, // 96
{ RES_I, 2, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,res 2,(ix%c%02Xh)" }, // 97
{ RES_I, 3, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,res 3,(ix%c%02Xh)" }, // 98
{ RES_I, 3, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,res 3,(ix%c%02Xh)" }, // 99
{ RES_I, 3, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,res 3,(ix%c%02Xh)" }, // 9a
{ RES_I, 3, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,res 3,(ix%c%02Xh)" }, // 9b
{ RES_I, 3, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,res 3,(ix%c%02Xh)" }, // 9c
{ RES_I, 3, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,res 3,(ix%c%02Xh)" }, // 9d
{ RES_I, 3, REG_IX, INV, 23, TYPE_OFFSET, "res 3,(ix%c%02Xh)" }, // 9e
{ RES_I, 3, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,res 3,(ix%c%02Xh)" }, // 9f
{ RES_I, 4, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,res 4,(ix%c%02Xh)" }, // a0
{ RES_I, 4, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,res 4,(ix%c%02Xh)" }, // a1
{ RES_I, 4, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,res 4,(ix%c%02Xh)" }, // a2
{ RES_I, 4, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,res 4,(ix%c%02Xh)" }, // a3
{ RES_I, 4, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,res 4,(ix%c%02Xh)" }, // a4
{ RES_I, 4, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,res 4,(ix%c%02Xh)" }, // a5
{ RES_I, 4, REG_IX, INV, 23, TYPE_OFFSET, "res 4,(ix%c%02Xh)" }, // a6
{ RES_I, 4, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,res 4,(ix%c%02Xh)" }, // a7
{ RES_I, 5, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,res 5,(ix%c%02Xh)" }, // a8
{ RES_I, 5, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,res 5,(ix%c%02Xh)" }, // a9
{ RES_I, 5, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,res 5,(ix%c%02Xh)" }, // aa
{ RES_I, 5, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,res 5,(ix%c%02Xh)" }, // ab
{ RES_I, 5, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,res 5,(ix%c%02Xh)" }, // ac
{ RES_I, 5, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,res 5,(ix%c%02Xh)" }, // ad
{ RES_I, 5, REG_IX, INV, 23, TYPE_OFFSET, "res 5,(ix%c%02Xh)" }, // ae
{ RES_I, 5, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,res 5,(ix%c%02Xh)" }, // af
{ RES_I, 6, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,res 6,(ix%c%02Xh)" }, // b0
{ RES_I, 6, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,res 6,(ix%c%02Xh)" }, // b1
{ RES_I, 6, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,res 6,(ix%c%02Xh)" }, // b2
{ RES_I, 6, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,res 6,(ix%c%02Xh)" }, // b3
{ RES_I, 6, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,res 6,(ix%c%02Xh)" }, // b4
{ RES_I, 6, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,res 6,(ix%c%02Xh)" }, // b5
{ RES_I, 6, REG_IX, INV, 23, TYPE_OFFSET, "res 6,(ix%c%02Xh)" }, // b6
{ RES_I, 6, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,res 6,(ix%c%02Xh)" }, // b7
{ RES_I, 7, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,res 7,(ix%c%02Xh)" }, // b8
{ RES_I, 7, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,res 7,(ix%c%02Xh)" }, // b9
{ RES_I, 7, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,res 7,(ix%c%02Xh)" }, // ba
{ RES_I, 7, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,res 7,(ix%c%02Xh)" }, // bb
{ RES_I, 7, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,res 7,(ix%c%02Xh)" }, // bc
{ RES_I, 7, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,res 7,(ix%c%02Xh)" }, // bd
{ RES_I, 7, REG_IX, INV, 23, TYPE_OFFSET, "res 7,(ix%c%02Xh)" }, // be
{ RES_I, 7, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,res 7,(ix%c%02Xh)" }, // bf
{ SET_I, 0, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,set 0,(ix%c%02Xh)" }, // c0
{ SET_I, 0, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,set 0,(ix%c%02Xh)" }, // c1
{ SET_I, 0, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,set 0,(ix%c%02Xh)" }, // c2
{ SET_I, 0, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,set 0,(ix%c%02Xh)" }, // c3
{ SET_I, 0, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,set 0,(ix%c%02Xh)" }, // c4
{ SET_I, 0, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,set 0,(ix%c%02Xh)" }, // c5
{ SET_I, 0, REG_IX, INV, 23, TYPE_OFFSET, "set 0,(ix%c%02Xh)" }, // c6
{ SET_I, 0, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,set 0,(ix%c%02Xh)" }, // c7
{ SET_I, 1, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,set 1,(ix%c%02Xh)" }, // c8
{ SET_I, 1, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,set 1,(ix%c%02Xh)" }, // c9
{ SET_I, 1, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,set 1,(ix%c%02Xh)" }, // ca
{ SET_I, 1, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,set 1,(ix%c%02Xh)" }, // cb
{ SET_I, 1, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,set 1,(ix%c%02Xh)" }, // cc
{ SET_I, 1, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,set 1,(ix%c%02Xh)" }, // cd
{ SET_I, 1, REG_IX, INV, 23, TYPE_OFFSET, "set 1,(ix%c%02Xh)" }, // ce
{ SET_I, 1, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,set 1,(ix%c%02Xh)" }, // cf
{ SET_I, 2, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,set 2,(ix%c%02Xh)" }, // d0
{ SET_I, 2, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,set 2,(ix%c%02Xh)" }, // d1
{ SET_I, 2, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,set 2,(ix%c%02Xh)" }, // d2
{ SET_I, 2, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,set 2,(ix%c%02Xh)" }, // d3
{ SET_I, 2, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,set 2,(ix%c%02Xh)" }, // d4
{ SET_I, 2, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,set 2,(ix%c%02Xh)" }, // d5
{ SET_I, 2, REG_IX, INV, 23, TYPE_OFFSET, "set 2,(ix%c%02Xh)" }, // d6
{ SET_I, 2, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,set 2,(ix%c%02Xh)" }, // d7
{ SET_I, 3, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,set 3,(ix%c%02Xh)" }, // d8
{ SET_I, 3, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,set 3,(ix%c%02Xh)" }, // d9
{ SET_I, 3, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,set 3,(ix%c%02Xh)" }, // da
{ SET_I, 3, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,set 3,(ix%c%02Xh)" }, // db
{ SET_I, 3, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,set 3,(ix%c%02Xh)" }, // dc
{ SET_I, 3, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,set 3,(ix%c%02Xh)" }, // dd
{ SET_I, 3, REG_IX, INV, 23, TYPE_OFFSET, "set 3,(ix%c%02Xh)" }, // de
{ SET_I, 3, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,set 3,(ix%c%02Xh)" }, // df
{ SET_I, 4, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,set 4,(ix%c%02Xh)" }, // e0
{ SET_I, 4, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,set 4,(ix%c%02Xh)" }, // e1
{ SET_I, 4, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,set 4,(ix%c%02Xh)" }, // e2
{ SET_I, 4, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,set 4,(ix%c%02Xh)" }, // e3
{ SET_I, 4, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,set 4,(ix%c%02Xh)" }, // e4
{ SET_I, 4, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,set 4,(ix%c%02Xh)" }, // e5
{ SET_I, 4, REG_IX, INV, 23, TYPE_OFFSET, "set 4,(ix%c%02Xh)" }, // e6
{ SET_I, 4, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,set 4,(ix%c%02Xh)" }, // e7
{ SET_I, 5, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,set 5,(ix%c%02Xh)" }, // e8
{ SET_I, 5, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,set 5,(ix%c%02Xh)" }, // e9
{ SET_I, 5, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,set 5,(ix%c%02Xh)" }, // ea
{ SET_I, 5, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,set 5,(ix%c%02Xh)" }, // eb
{ SET_I, 5, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,set 5,(ix%c%02Xh)" }, // ec
{ SET_I, 5, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,set 5,(ix%c%02Xh)" }, // ed
{ SET_I, 5, REG_IX, INV, 23, TYPE_OFFSET, "set 5,(ix%c%02Xh)" }, // ee
{ SET_I, 5, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,set 5,(ix%c%02Xh)" }, // ef
{ SET_I, 6, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,set 6,(ix%c%02Xh)" }, // f0
{ SET_I, 6, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,set 6,(ix%c%02Xh)" }, // f1
{ SET_I, 6, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,set 6,(ix%c%02Xh)" }, // f2
{ SET_I, 6, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,set 6,(ix%c%02Xh)" }, // f3
{ SET_I, 6, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,set 6,(ix%c%02Xh)" }, // f4
{ SET_I, 6, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,set 6,(ix%c%02Xh)" }, // f5
{ SET_I, 6, REG_IX, INV, 23, TYPE_OFFSET, "set 6,(ix%c%02Xh)" }, // f6
{ SET_I, 6, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,set 6,(ix%c%02Xh)" }, // f7
{ SET_I, 7, REG_IX, REG_B, 23, TYPE_OFFSET, "ld b,set 7,(ix%c%02Xh)" }, // f8
{ SET_I, 7, REG_IX, REG_C, 23, TYPE_OFFSET, "ld c,set 7,(ix%c%02Xh)" }, // f9
{ SET_I, 7, REG_IX, REG_D, 23, TYPE_OFFSET, "ld d,set 7,(ix%c%02Xh)" }, // fa
{ SET_I, 7, REG_IX, REG_E, 23, TYPE_OFFSET, "ld e,set 7,(ix%c%02Xh)" }, // fb
{ SET_I, 7, REG_IX, REG_H, 23, TYPE_OFFSET, "ld h,set 7,(ix%c%02Xh)" }, // fc
{ SET_I, 7, REG_IX, REG_L, 23, TYPE_OFFSET, "ld l,set 7,(ix%c%02Xh)" }, // fd
{ SET_I, 7, REG_IX, INV, 23, TYPE_OFFSET, "set 7,(ix%c%02Xh)" }, // fe
{ SET_I, 7, REG_IX, REG_A, 23, TYPE_OFFSET, "ld a,set 7,(ix%c%02Xh)" }, // ff

256
tables/ed_prefix.tab Normal file
View File

@ -0,0 +1,256 @@
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 00
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 01
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 02
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 03
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 04
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 05
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 06
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 07
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 08
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 09
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 0a
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 0b
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 0c
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 0d
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 0e
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 0f
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 10
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 11
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 12
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 13
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 14
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 15
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 16
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 17
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 18
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 19
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 1a
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 1b
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 1c
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 1d
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 1e
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 1f
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 20
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 21
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 22
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 23
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 24
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 25
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 26
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 27
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 28
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 29
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 2a
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 2b
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 2c
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 2d
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 2e
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 2f
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 30
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 31
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 32
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 33
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 34
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 35
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 36
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 37
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 38
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 39
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 3a
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 3b
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 3c
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 3d
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 3e
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 3f
{ IN_R_R, REG_B, REG_C, INV, 12, TYPE_NONE, "in b,(c)" }, // 40
{ OUT_R_R, REG_C, REG_B, INV, 12, TYPE_NONE, "out (c),b" }, // 41
{ SBC_RR_RR, REG_HL, REG_BC, INV, 15, TYPE_NONE, "sbc hl,bc" }, // 42
{ LD_MNN_RR, INV, REG_BC, INV, 20, TYPE_IMM_NN, "ld (%04hXh),bc" }, // 43
{ NEG, INV, INV, INV, 8, TYPE_NONE, "neg" }, // 44
{ RETN, INV, INV, INV, 14, TYPE_NONE, "retn" }, // 45
{ IM, 0, INV, INV, 8, TYPE_NONE, "im 0" }, // 46
{ LD_R_R, REG_I, REG_A, INV, 9, TYPE_NONE, "ld i,a" }, // 47
{ IN_R_R, REG_C, REG_C, INV, 12, TYPE_NONE, "in c,(c)" }, // 48
{ OUT_R_R, REG_C, REG_C, INV, 12, TYPE_NONE, "out (c),c" }, // 49
{ ADC_RR_RR, REG_HL, REG_BC, INV, 15, TYPE_NONE, "adc hl,bc" }, // 4a
{ LD_RR_MNN, REG_BC, INV, INV, 20, TYPE_IMM_NN, "ld bc,(%04hXh)" }, // 4b
{ NEG, INV, INV, INV, 8, TYPE_NONE, "neg" }, // 4c
{ RETI, INV, INV, INV, 14, TYPE_NONE, "reti" }, // 4d
{ IM, 0, INV, INV, 8, TYPE_NONE, "im 0" }, // 4e
{ LD_R_R, REG_R, REG_A, INV, 9, TYPE_NONE, "ld r,a" }, // 4f
{ IN_R_R, REG_D, REG_C, INV, 12, TYPE_NONE, "in d,(c)" }, // 50
{ OUT_R_R, REG_C, REG_D, INV, 12, TYPE_NONE, "out (c),d" }, // 51
{ SBC_RR_RR, REG_HL, REG_DE, INV, 15, TYPE_NONE, "sbc hl,de" }, // 52
{ LD_MNN_RR, INV, REG_DE, INV, 20, TYPE_IMM_NN, "ld (%04hXh),de" }, // 53
{ NEG, INV, INV, INV, 8, TYPE_NONE, "neg" }, // 54
{ RETN, INV, INV, INV, 14, TYPE_NONE, "retn" }, // 55
{ IM, 1, INV, INV, 8, TYPE_NONE, "im 1" }, // 56
{ LD_R_R, REG_A, REG_I, INV, 9, TYPE_NONE, "ld a,i" }, // 57
{ IN_R_R, REG_E, REG_C, INV, 12, TYPE_NONE, "in e,(c)" }, // 58
{ OUT_R_R, REG_C, REG_E, INV, 12, TYPE_NONE, "out (c),e" }, // 59
{ ADC_RR_RR, REG_HL, REG_DE, INV, 15, TYPE_NONE, "adc hl,de" }, // 5a
{ LD_RR_MNN, REG_DE, INV, INV, 20, TYPE_IMM_NN, "ld de,(%04hXh)" }, // 5b
{ NEG, INV, INV, INV, 8, TYPE_NONE, "neg" }, // 5c
{ RETN, INV, INV, INV, 14, TYPE_NONE, "retn" }, // 5d
{ IM, 2, INV, INV, 8, TYPE_NONE, "im 2" }, // 5e
{ LD_R_R, REG_A, REG_R, INV, 9, TYPE_NONE, "ld a,r" }, // 5f
{ IN_R_R, REG_H, REG_C, INV, 12, TYPE_NONE, "in h,(c)" }, // 60
{ OUT_R_R, REG_C, REG_H, INV, 12, TYPE_NONE, "out (c),h" }, // 61
{ SBC_RR_RR, REG_HL, REG_HL, INV, 15, TYPE_NONE, "sbc hl,hl" }, // 62
{ LD_MNN_RR, INV, REG_HL, INV, 16, TYPE_IMM_NN, "ld (%04hXh),hl" }, // 63
{ NEG, INV, INV, INV, 8, TYPE_NONE, "neg" }, // 64
{ RETN, INV, INV, INV, 14, TYPE_NONE, "retn" }, // 65
{ IM, 0, INV, INV, 8, TYPE_NONE, "im 0" }, // 66
{ RRD, INV, INV, INV, 18, TYPE_NONE, "rrd" }, // 67
{ IN_R_R, REG_L, REG_C, INV, 12, TYPE_NONE, "in l,(c)" }, // 68
{ OUT_R_R, REG_C, REG_L, INV, 12, TYPE_NONE, "out (c),l" }, // 69
{ ADC_RR_RR, REG_HL, REG_HL, INV, 15, TYPE_NONE, "adc hl,hl" }, // 6a
{ LD_RR_MNN, REG_HL, INV, INV, 16, TYPE_IMM_NN, "ld hl,(%04hXh)" }, // 6b
{ NEG, INV, INV, INV, 8, TYPE_NONE, "neg" }, // 6c
{ RETN, INV, INV, INV, 14, TYPE_NONE, "retn" }, // 6d
{ IM, 0, INV, INV, 8, TYPE_NONE, "im 0" }, // 6e
{ RLD, INV, INV, INV, 18, TYPE_NONE, "rld" }, // 6f
{ IN_R_R, REG_F, REG_C, INV, 12, TYPE_NONE, "in f,(c)" }, // 70
{ OUT_R, REG_C, 0, INV, 12, TYPE_NONE, "out (c),0" }, // 71
{ SBC_RR_RR, REG_HL, REG_SP, INV, 15, TYPE_NONE, "sbc hl,sp" }, // 72
{ LD_MNN_RR, INV, REG_SP, INV, 20, TYPE_IMM_NN, "ld (%04hXh),sp" }, // 73
{ NEG, INV, INV, INV, 8, TYPE_NONE, "neg" }, // 74
{ RETN, INV, INV, INV, 14, TYPE_NONE, "retn" }, // 75
{ IM, 1, INV, INV, 8, TYPE_NONE, "im 1" }, // 76
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 77
{ IN_R_R, REG_A, REG_C, INV, 12, TYPE_NONE, "in a,(c)" }, // 78
{ OUT_R_R, REG_C, REG_A, INV, 12, TYPE_NONE, "out (c),a" }, // 79
{ ADC_RR_RR, REG_HL, REG_SP, INV, 15, TYPE_NONE, "adc hl,sp" }, // 7a
{ LD_RR_MNN, REG_SP, INV, INV, 20, TYPE_IMM_NN, "ld sp,(%04hXh)" }, // 7b
{ NEG, INV, INV, INV, 8, TYPE_NONE, "neg" }, // 7c
{ RETN, INV, INV, INV, 14, TYPE_NONE, "retn" }, // 7d
{ IM, 2, INV, INV, 8, TYPE_NONE, "im 2" }, // 7e
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 7f
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 80
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 81
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 82
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 83
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 84
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 85
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 86
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 87
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 88
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 89
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 8a
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 8b
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 8c
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 8d
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 8e
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 8f
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 90
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 91
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 92
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 93
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 94
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 95
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 96
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 97
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 98
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 99
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 9a
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 9b
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 9c
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 9d
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 9e
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 9f
{ LDI, INV, INV, INV, 16, TYPE_NONE, "ldi" }, // a0
{ CPI, INV, INV, INV, 16, TYPE_NONE, "cpi" }, // a1
{ INI, INV, INV, INV, 16, TYPE_NONE, "ini" }, // a2
{ OUTI, INV, INV, INV, 16, TYPE_NONE, "outi" }, // a3
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // a4
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // a5
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // a6
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // a7
{ LDD, INV, INV, INV, 16, TYPE_NONE, "ldd" }, // a8
{ CPD, INV, INV, INV, 16, TYPE_NONE, "cpd" }, // a9
{ IND, INV, INV, INV, 16, TYPE_NONE, "ind" }, // aa
{ OUTD, INV, INV, INV, 16, TYPE_NONE, "outd" }, // ab
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ac
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ad
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ae
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // af
{ LDIR, INV, INV, 16, 21, TYPE_NONE, "ldir" }, // b0
{ CPIR, INV, INV, 16, 21, TYPE_NONE, "cpir" }, // b1
{ INIR, INV, INV, 16, 21, TYPE_NONE, "inir" }, // b2
{ OTIR, INV, INV, 16, 21, TYPE_NONE, "otir" }, // b3
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // b4
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // b5
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // b6
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // b7
{ LDDR, INV, INV, 16, 21, TYPE_NONE, "lddr" }, // b8
{ CPDR, INV, INV, 16, 21, TYPE_NONE, "cpdr" }, // b9
{ INDR, INV, INV, 16, 21, TYPE_NONE, "indr" }, // ba
{ OTDR, INV, INV, 16, 21, TYPE_NONE, "otdr" }, // bb
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // bc
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // bd
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // be
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // bf
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // c0
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // c1
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // c2
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // c3
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // c4
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // c5
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // c6
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // c7
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // c8
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // c9
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ca
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // cb
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // cc
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // cd
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ce
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // cf
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // d0
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // d1
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // d2
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // d3
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // d4
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // d5
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // d6
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // d7
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // d8
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // d9
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // da
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // db
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // dc
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // dd
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // de
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // df
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // e0
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // e1
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // e2
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // e3
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // e4
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // e5
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // e6
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // e7
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // e8
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // e9
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ea
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // eb
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ec
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ed
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ee
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ef
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // f0
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // f1
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // f2
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // f3
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // f4
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // f5
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // f6
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // f7
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // f8
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // f9
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // fa
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // fb
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // fc
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // fd
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // fe
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ff

256
tables/fd_prefix.tab Normal file
View File

@ -0,0 +1,256 @@
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // 00
{ LD_RR_NN, REG_BC, INV, INV, 14, TYPE_IMM_NN, "ld bc,%04hXh" }, // 01
{ LD_MRR_R, REG_BC, REG_A, INV, 11, TYPE_NONE, "ld (bc),a" }, // 02
{ INC_RR, REG_BC, INV, INV, 10, TYPE_NONE, "inc bc" }, // 03
{ INC_R, REG_B, INV, INV, 8, TYPE_NONE, "inc b" }, // 04
{ DEC_R, REG_B, INV, INV, 8, TYPE_NONE, "dec b" }, // 05
{ LD_R_N, REG_B, INV, INV, 11, TYPE_IMM_N, "ld b,%02hhXh" }, // 06
{ RLCA, INV, INV, INV, 8, TYPE_NONE, "rlca" }, // 07
{ EX_RR_RR, REG_AF, REG_AFP, INV, 8, TYPE_NONE, "ex af,af'" }, // 08
{ ADD_RR_RR, REG_IY, REG_BC, INV, 15, TYPE_NONE, "add iy,bc" }, // 09
{ LD_R_MRR, REG_A, REG_BC, INV, 11, TYPE_NONE, "ld a,(bc)" }, // 0a
{ DEC_RR, REG_BC, INV, INV, 10, TYPE_NONE, "dec bc" }, // 0b
{ INC_R, REG_C, INV, INV, 8, TYPE_NONE, "inc c" }, // 0c
{ DEC_R, REG_C, INV, INV, 8, TYPE_NONE, "dec c" }, // 0d
{ LD_R_N, REG_C, INV, INV, 11, TYPE_IMM_N, "ld c,%02hhXh" }, // 0e
{ RRCA, INV, INV, INV, 8, TYPE_NONE, "rrca" }, // 0f
{ DJNZ, INV, INV, 12, 17, TYPE_DISP, "djnz (pc%c%Xh)" }, // 10
{ LD_RR_NN, REG_DE, INV, INV, 14, TYPE_IMM_NN, "ld de,%04hXh" }, // 11
{ LD_MRR_R, REG_DE, REG_A, INV, 11, TYPE_NONE, "ld (de),a" }, // 12
{ INC_RR, REG_DE, INV, INV, 10, TYPE_NONE, "inc de" }, // 13
{ INC_R, REG_D, INV, INV, 8, TYPE_NONE, "inc d" }, // 14
{ DEC_R, REG_D, INV, INV, 8, TYPE_NONE, "dec d" }, // 15
{ LD_R_N, REG_D, INV, INV, 11, TYPE_IMM_N, "ld d,%02hhXh" }, // 16
{ RLA, INV, INV, INV, 8, TYPE_NONE, "rla" }, // 17
{ JR, INV, INV, INV, 16, TYPE_DISP, "jr (pc%c%Xh)" }, // 18
{ ADD_RR_RR, REG_IY, REG_DE, INV, 15, TYPE_NONE, "add iy,de" }, // 19
{ LD_R_MRR, REG_A, REG_DE, INV, 11, TYPE_NONE, "ld a,(de)" }, // 1a
{ DEC_RR, REG_DE, INV, INV, 10, TYPE_NONE, "dec de" }, // 1b
{ INC_R, REG_E, INV, INV, 8, TYPE_NONE, "inc e" }, // 1c
{ DEC_R, REG_E, INV, INV, 8, TYPE_NONE, "dec e" }, // 1d
{ LD_R_N, REG_E, INV, INV, 11, TYPE_IMM_N, "ld e,%02hhXh" }, // 1e
{ RRA, INV, INV, INV, 8, TYPE_NONE, "rra" }, // 1f
{ JR_C, COND_NZ, INV, 11, 16, TYPE_DISP, "jr nz,(pc%c%Xh)" }, // 20
{ LD_RR_NN, REG_IY, INV, INV, 14, TYPE_IMM_NN, "ld iy,%04hXh" }, // 21
{ LD_MNN_RR, INV, REG_IY, INV, 16, TYPE_IMM_NN, "ld (%04hXh),iy" }, // 22
{ INC_RR, REG_IY, INV, INV, 10, TYPE_NONE, "inc iy" }, // 23
{ INC_R, REG_IYH, INV, INV, 10, TYPE_NONE, "inc iyh" }, // 24
{ DEC_R, REG_IYH, INV, INV, 10, TYPE_NONE, "dec iyh" }, // 25
{ LD_R_N, REG_IYH, INV, INV, 11, TYPE_IMM_N, "ld iyh,%02hhXh" }, // 26
{ DAA, INV, INV, INV, 8, TYPE_NONE, "daa" }, // 27
{ JR_C, COND_Z, INV, 11, 16, TYPE_DISP, "jr z,(pc%c%Xh)" }, // 28
{ ADD_RR_RR, REG_IY, REG_IY, INV, 15, TYPE_NONE, "add iy,iy" }, // 29
{ LD_RR_MNN, REG_IY, INV, INV, 14, TYPE_IMM_NN, "ld iy,(%04hXh)" }, // 2a
{ DEC_RR, REG_IY, INV, INV, 10, TYPE_NONE, "dec iy" }, // 2b
{ INC_R, REG_IYL, INV, INV, 10, TYPE_NONE, "inc iyl" }, // 2c
{ DEC_R, REG_IYL, INV, INV, 10, TYPE_NONE, "dec iyl" }, // 2d
{ LD_R_N, REG_IYL, INV, INV, 11, TYPE_IMM_N, "ld iyl,%02hhXh" }, // 2e
{ CPL, INV, INV, INV, 8, TYPE_NONE, "cpl" }, // 2f
{ JR_C, COND_NC, INV, 11, 16, TYPE_DISP, "jr nc,(pc%c%Xh)" }, // 30
{ LD_RR_NN, REG_SP, INV, INV, 14, TYPE_IMM_NN, "ld sp,%04hXh" }, // 31
{ LD_MNN_R, INV, REG_A, INV, 17, TYPE_IMM_NN, "ld (%04hXh),a" }, // 32
{ INC_RR, REG_SP, INV, INV, 10, TYPE_NONE, "inc sp" }, // 33
{ INC_I, REG_IY, INV, INV, 23, TYPE_OFFSET, "inc (iy%c%02Xh)" }, // 34
{ DEC_I, REG_IY, INV, INV, 23, TYPE_OFFSET, "dec (iy%c%02Xh)" }, // 35
{ LD_I_N, REG_IY, INV, INV, 19, TYPE_OFFSET_IMM_N, "ld (iy%c%02Xh),%02hhXh" }, // 36
{ SCF, INV, INV, INV, 8, TYPE_NONE, "scf" }, // 37
{ JR_C, COND_C, INV, 11, 16, TYPE_DISP, "jr c,(pc%c%Xh)" }, // 38
{ ADD_RR_RR, REG_IY, REG_SP, INV, 15, TYPE_NONE, "add iy,sp" }, // 39
{ LD_R_MNN, REG_A, INV, INV, 17, TYPE_IMM_NN, "ld a,(%04hXh)" }, // 3a
{ DEC_RR, REG_SP, INV, INV, 10, TYPE_NONE, "dec sp" }, // 3b
{ INC_R, REG_A, INV, INV, 8, TYPE_NONE, "inc a" }, // 3c
{ DEC_R, REG_A, INV, INV, 8, TYPE_NONE, "dec a" }, // 3d
{ LD_R_N, REG_A, INV, INV, 11, TYPE_IMM_N, "ld a,%02hhXh" }, // 3e
{ CCF, INV, INV, INV, 8, TYPE_NONE, "ccf" }, // 3f
{ LD_R_R, REG_B, REG_B, INV, 8, TYPE_NONE, "ld b,b" }, // 40
{ LD_R_R, REG_B, REG_C, INV, 8, TYPE_NONE, "ld b,c" }, // 41
{ LD_R_R, REG_B, REG_D, INV, 8, TYPE_NONE, "ld b,d" }, // 42
{ LD_R_R, REG_B, REG_E, INV, 8, TYPE_NONE, "ld b,e" }, // 43
{ LD_R_R, REG_B, REG_IYH, INV, 8, TYPE_NONE, "ld b,iyh" }, // 44
{ LD_R_R, REG_B, REG_IYL, INV, 8, TYPE_NONE, "ld b,iyl" }, // 45
{ LD_R_I, REG_B, REG_IY, INV, 19, TYPE_OFFSET, "ld b,(iy%c%02Xh)" }, // 46
{ LD_R_R, REG_B, REG_A, INV, 8, TYPE_NONE, "ld b,a" }, // 47
{ LD_R_R, REG_C, REG_B, INV, 8, TYPE_NONE, "ld c,b" }, // 48
{ LD_R_R, REG_C, REG_C, INV, 8, TYPE_NONE, "ld c,c" }, // 49
{ LD_R_R, REG_C, REG_D, INV, 8, TYPE_NONE, "ld c,d" }, // 4a
{ LD_R_R, REG_C, REG_E, INV, 8, TYPE_NONE, "ld c,e" }, // 4b
{ LD_R_R, REG_C, REG_IYH, INV, 8, TYPE_NONE, "ld c,iyh" }, // 4c
{ LD_R_R, REG_C, REG_IYL, INV, 8, TYPE_NONE, "ld c,iyl" }, // 4d
{ LD_R_I, REG_C, REG_IY, INV, 19, TYPE_OFFSET, "ld c,(iy%c%02Xh)" }, // 4e
{ LD_R_R, REG_C, REG_A, INV, 8, TYPE_NONE, "ld c,a" }, // 4f
{ LD_R_R, REG_D, REG_B, INV, 8, TYPE_NONE, "ld d,b" }, // 50
{ LD_R_R, REG_D, REG_C, INV, 8, TYPE_NONE, "ld d,c" }, // 51
{ LD_R_R, REG_D, REG_D, INV, 8, TYPE_NONE, "ld d,d" }, // 52
{ LD_R_R, REG_D, REG_E, INV, 8, TYPE_NONE, "ld d,e" }, // 53
{ LD_R_R, REG_D, REG_IYH, INV, 8, TYPE_NONE, "ld d,iyh" }, // 54
{ LD_R_R, REG_D, REG_IYL, INV, 8, TYPE_NONE, "ld d,iyl" }, // 55
{ LD_R_I, REG_D, REG_IY, INV, 19, TYPE_OFFSET, "ld d,(iy%c%02Xh)" }, // 56
{ LD_R_R, REG_D, REG_A, INV, 8, TYPE_NONE, "ld d,a" }, // 57
{ LD_R_R, REG_E, REG_B, INV, 8, TYPE_NONE, "ld e,b" }, // 58
{ LD_R_R, REG_E, REG_C, INV, 8, TYPE_NONE, "ld e,c" }, // 59
{ LD_R_R, REG_E, REG_D, INV, 8, TYPE_NONE, "ld e,d" }, // 5a
{ LD_R_R, REG_E, REG_E, INV, 8, TYPE_NONE, "ld e,e" }, // 5b
{ LD_R_R, REG_E, REG_IYH, INV, 8, TYPE_NONE, "ld e,iyh" }, // 5c
{ LD_R_R, REG_E, REG_IYL, INV, 8, TYPE_NONE, "ld e,iyl" }, // 5d
{ LD_R_I, REG_E, REG_IY, INV, 19, TYPE_OFFSET, "ld e,(iy%c%02Xh)" }, // 5e
{ LD_R_R, REG_E, REG_A, INV, 8, TYPE_NONE, "ld e,a" }, // 5f
{ LD_R_R, REG_IYH, REG_B, INV, 8, TYPE_NONE, "ld iyh,b" }, // 60
{ LD_R_R, REG_IYH, REG_C, INV, 8, TYPE_NONE, "ld iyh,c" }, // 61
{ LD_R_R, REG_IYH, REG_D, INV, 8, TYPE_NONE, "ld iyh,d" }, // 62
{ LD_R_R, REG_IYH, REG_E, INV, 8, TYPE_NONE, "ld iyh,e" }, // 63
{ LD_R_R, REG_IYH, REG_IYH, INV, 8, TYPE_NONE, "ld iyh,iyh" }, // 64
{ LD_R_R, REG_IYH, REG_IYL, INV, 8, TYPE_NONE, "ld iyh,iyl" }, // 65
{ LD_R_I, REG_H, REG_IY, INV, 19, TYPE_OFFSET, "ld h,(iy%c%02Xh)" }, // 66
{ LD_R_R, REG_IYH, REG_A, INV, 8, TYPE_NONE, "ld iyh,a" }, // 67
{ LD_R_R, REG_IYL, REG_B, INV, 8, TYPE_NONE, "ld iyl,b" }, // 68
{ LD_R_R, REG_IYL, REG_C, INV, 8, TYPE_NONE, "ld iyl,c" }, // 69
{ LD_R_R, REG_IYL, REG_D, INV, 8, TYPE_NONE, "ld iyl,d" }, // 6a
{ LD_R_R, REG_IYL, REG_E, INV, 8, TYPE_NONE, "ld iyl,e" }, // 6b
{ LD_R_R, REG_IYL, REG_IYH, INV, 8, TYPE_NONE, "ld iyl,iyh" }, // 6c
{ LD_R_R, REG_IYL, REG_IYL, INV, 8, TYPE_NONE, "ld iyl,iyl" }, // 6d
{ LD_R_I, REG_L, REG_IY, INV, 19, TYPE_OFFSET, "ld l,(iy%c%02Xh)" }, // 6e
{ LD_R_R, REG_IYL, REG_A, INV, 8, TYPE_NONE, "ld iyl,a" }, // 6f
{ LD_I_R, REG_IY, REG_B, INV, 19, TYPE_OFFSET, "ld (iy%c%02Xh),b" }, // 70
{ LD_I_R, REG_IY, REG_C, INV, 19, TYPE_OFFSET, "ld (iy%c%02Xh),c" }, // 71
{ LD_I_R, REG_IY, REG_D, INV, 19, TYPE_OFFSET, "ld (iy%c%02Xh),d" }, // 72
{ LD_I_R, REG_IY, REG_E, INV, 19, TYPE_OFFSET, "ld (iy%c%02Xh),e" }, // 73
{ LD_I_R, REG_IY, REG_H, INV, 19, TYPE_OFFSET, "ld (iy%c%02Xh),h" }, // 74
{ LD_I_R, REG_IY, REG_L, INV, 19, TYPE_OFFSET, "ld (iy%c%02Xh),l" }, // 75
{ HALT, INV, INV, INV, 8, TYPE_NONE, "halt" }, // 76
{ LD_I_R, REG_IY, REG_A, INV, 19, TYPE_OFFSET, "ld (iy%c%02Xh),a" }, // 77
{ LD_R_R, REG_A, REG_B, INV, 8, TYPE_NONE, "ld a,b" }, // 78
{ LD_R_R, REG_A, REG_C, INV, 8, TYPE_NONE, "ld a,c" }, // 79
{ LD_R_R, REG_A, REG_D, INV, 8, TYPE_NONE, "ld a,d" }, // 7a
{ LD_R_R, REG_A, REG_E, INV, 8, TYPE_NONE, "ld a,e" }, // 7b
{ LD_R_R, REG_A, REG_IYH, INV, 8, TYPE_NONE, "ld a,iyh" }, // 7c
{ LD_R_R, REG_A, REG_IYL, INV, 8, TYPE_NONE, "ld a,iyl" }, // 7d
{ LD_R_I, REG_A, REG_IY, INV, 19, TYPE_OFFSET, "ld a,(iy%c%02Xh)" }, // 7e
{ LD_R_R, REG_A, REG_A, INV, 8, TYPE_NONE, "ld a,a" }, // 7f
{ ADD_R_R, REG_A, REG_B, INV, 8, TYPE_NONE, "add a,b" }, // 80
{ ADD_R_R, REG_A, REG_C, INV, 8, TYPE_NONE, "add a,c" }, // 81
{ ADD_R_R, REG_A, REG_D, INV, 8, TYPE_NONE, "add a,d" }, // 82
{ ADD_R_R, REG_A, REG_E, INV, 8, TYPE_NONE, "add a,e" }, // 83
{ ADD_R_R, REG_A, REG_IYH, INV, 8, TYPE_NONE, "add a,iyh" }, // 84
{ ADD_R_R, REG_A, REG_IYL, INV, 8, TYPE_NONE, "add a,iyl" }, // 85
{ ADD_R_I, REG_A, REG_IY, INV, 19, TYPE_OFFSET, "add a,(iy%c%02Xh)" }, // 86
{ ADD_R_R, REG_A, REG_A, INV, 8, TYPE_NONE, "add a,a" }, // 87
{ ADC_R_R, REG_A, REG_B, INV, 8, TYPE_NONE, "adc a,b" }, // 88
{ ADC_R_R, REG_A, REG_C, INV, 8, TYPE_NONE, "adc a,c" }, // 89
{ ADC_R_R, REG_A, REG_D, INV, 8, TYPE_NONE, "adc a,d" }, // 8a
{ ADC_R_R, REG_A, REG_E, INV, 8, TYPE_NONE, "adc a,e" }, // 8b
{ ADC_R_R, REG_A, REG_IYH, INV, 8, TYPE_NONE, "adc a,iyh" }, // 8c
{ ADC_R_R, REG_A, REG_IYL, INV, 8, TYPE_NONE, "adc a,iyl" }, // 8d
{ ADC_R_I, REG_A, REG_IY, INV, 19, TYPE_OFFSET, "adc a,(iy%c%02Xh)" }, // 8e
{ ADC_R_R, REG_A, REG_A, INV, 8, TYPE_NONE, "adc a,a" }, // 8f
{ SUB_R, REG_B, INV, INV, 8, TYPE_NONE, "sub b" }, // 90
{ SUB_R, REG_C, INV, INV, 8, TYPE_NONE, "sub c" }, // 91
{ SUB_R, REG_D, INV, INV, 8, TYPE_NONE, "sub d" }, // 92
{ SUB_R, REG_E, INV, INV, 8, TYPE_NONE, "sub e" }, // 93
{ SUB_R, REG_IYH, INV, INV, 8, TYPE_NONE, "sub iyh" }, // 94
{ SUB_R, REG_IYL, INV, INV, 8, TYPE_NONE, "sub iyl" }, // 95
{ SUB_I, REG_IY, INV, INV, 19, TYPE_OFFSET, "sub (iy%c%02Xh)" }, // 96
{ SUB_R, REG_A, INV, INV, 8, TYPE_NONE, "sub a" }, // 97
{ SBC_R_R, REG_A, REG_B, INV, 8, TYPE_NONE, "sbc a,b" }, // 98
{ SBC_R_R, REG_A, REG_C, INV, 8, TYPE_NONE, "sbc a,c" }, // 99
{ SBC_R_R, REG_A, REG_D, INV, 8, TYPE_NONE, "sbc a,d" }, // 9a
{ SBC_R_R, REG_A, REG_E, INV, 8, TYPE_NONE, "sbc a,e" }, // 9b
{ SBC_R_R, REG_A, REG_IYH, INV, 8, TYPE_NONE, "sbc a,iyh" }, // 9c
{ SBC_R_R, REG_A, REG_IYL, INV, 8, TYPE_NONE, "sbc a,iyl" }, // 9d
{ SBC_R_I, REG_A, REG_IY, INV, 19, TYPE_OFFSET, "sbc a,(iy%c%02Xh)" }, // 9e
{ SBC_R_R, REG_A, REG_A, INV, 8, TYPE_NONE, "sbc a,a" }, // 9f
{ AND_R, REG_B, INV, INV, 8, TYPE_NONE, "and b" }, // a0
{ AND_R, REG_C, INV, INV, 8, TYPE_NONE, "and c" }, // a1
{ AND_R, REG_D, INV, INV, 8, TYPE_NONE, "and d" }, // a2
{ AND_R, REG_E, INV, INV, 8, TYPE_NONE, "and e" }, // a3
{ AND_R, REG_IYH, INV, INV, 8, TYPE_NONE, "and iyh" }, // a4
{ AND_R, REG_IYL, INV, INV, 8, TYPE_NONE, "and iyl" }, // a5
{ AND_I, REG_IY, INV, INV, 19, TYPE_OFFSET, "and (iy%c%02Xh)" }, // a6
{ AND_R, REG_A, INV, INV, 8, TYPE_NONE, "and a" }, // a7
{ XOR_R, REG_B, INV, INV, 8, TYPE_NONE, "xor b" }, // a8
{ XOR_R, REG_C, INV, INV, 8, TYPE_NONE, "xor c" }, // a9
{ XOR_R, REG_D, INV, INV, 8, TYPE_NONE, "xor d" }, // aa
{ XOR_R, REG_E, INV, INV, 8, TYPE_NONE, "xor e" }, // ab
{ XOR_R, REG_IYH, INV, INV, 8, TYPE_NONE, "xor iyh" }, // ac
{ XOR_R, REG_IYL, INV, INV, 8, TYPE_NONE, "xor iyl" }, // ad
{ XOR_I, REG_IY, INV, INV, 19, TYPE_OFFSET, "xor (iy%c%02Xh)" }, // ae
{ XOR_R, REG_A, INV, INV, 8, TYPE_NONE, "xor a" }, // af
{ OR_R, REG_B, INV, INV, 8, TYPE_NONE, "or b" }, // b0
{ OR_R, REG_C, INV, INV, 8, TYPE_NONE, "or c" }, // b1
{ OR_R, REG_D, INV, INV, 8, TYPE_NONE, "or d" }, // b2
{ OR_R, REG_E, INV, INV, 8, TYPE_NONE, "or e" }, // b3
{ OR_R, REG_IYH, INV, INV, 8, TYPE_NONE, "or iyh" }, // b4
{ OR_R, REG_IYL, INV, INV, 8, TYPE_NONE, "or iyl" }, // b5
{ OR_I, REG_IY, INV, INV, 19, TYPE_OFFSET, "or (iy%c%02Xh)" }, // b6
{ OR_R, REG_A, INV, INV, 8, TYPE_NONE, "or a" }, // b7
{ CP_R, REG_B, INV, INV, 8, TYPE_NONE, "cp b" }, // b8
{ CP_R, REG_C, INV, INV, 8, TYPE_NONE, "cp c" }, // b9
{ CP_R, REG_D, INV, INV, 8, TYPE_NONE, "cp d" }, // ba
{ CP_R, REG_E, INV, INV, 8, TYPE_NONE, "cp e" }, // bb
{ CP_R, REG_IYH, INV, INV, 8, TYPE_NONE, "cp iyh" }, // bc
{ CP_R, REG_IYL, INV, INV, 8, TYPE_NONE, "cp iyl" }, // bd
{ CP_I, REG_IY, INV, INV, 19, TYPE_OFFSET, "cp (iy%c%02Xh)" }, // be
{ CP_R, REG_A, INV, INV, 8, TYPE_NONE, "cp a" }, // bf
{ RET_C, COND_NZ, INV, 9, 15, TYPE_NONE, "ret nz" }, // c0
{ POP_RR, REG_BC, INV, INV, 14, TYPE_NONE, "pop bc" }, // c1
{ JP_C_MNN, COND_NZ, INV, INV, 14, TYPE_IMM_NN, "jp nz,(%04hXh)" }, // c2
{ JP_MNN, INV, INV, INV, 14, TYPE_IMM_NN, "jp (%04hXh)" }, // c3
{ CALL_C_MNN, COND_NZ, INV, 14, 21, TYPE_IMM_NN, "call nz,(%04hXh)" }, // c4
{ PUSH_RR, REG_BC, INV, INV, 15, TYPE_NONE, "push bc" }, // c5
{ ADD_R_N, REG_A, INV, INV, 11, TYPE_IMM_N, "add a,%02hhXh" }, // c6
{ RST, 0x0, INV, INV, 15, TYPE_NONE, "rst 0h" }, // c7
{ RET_C, COND_Z, INV, 9, 15, TYPE_NONE, "ret z" }, // c8
{ RET, INV, INV, INV, 14, TYPE_NONE, "ret" }, // c9
{ JP_C_MNN, COND_Z, INV, INV, 14, TYPE_IMM_NN, "jp z,(%04hXh)" }, // ca
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // cb
{ CALL_C_MNN, COND_Z, INV, 14, 21, TYPE_IMM_NN, "call z,(%04hXh)" }, // cc
{ CALL_MNN, INV, INV, INV, 21, TYPE_IMM_NN, "call (%04hXh)" }, // cd
{ ADC_R_N, REG_A, INV, INV, 11, TYPE_IMM_N, "adc a,%02hhXh" }, // ce
{ RST, 0x8, INV, INV, 15, TYPE_NONE, "rst 8h" }, // cf
{ RET_C, COND_NC, INV, INV, 9, TYPE_NONE, "ret nc" }, // d0
{ POP_RR, REG_DE, INV, INV, 14, TYPE_NONE, "pop de" }, // d1
{ JP_C_MNN, COND_NC, INV, INV, 14, TYPE_IMM_NN, "jp nc,(%04hXh)" }, // d2
{ OUT_MN_R, INV, REG_A, INV, 15, TYPE_IMM_N, "out (%02hhXh),a" }, // d3
{ CALL_C_MNN, COND_NC, INV, 14, 21, TYPE_IMM_NN, "call nc,(%04hXh)" }, // d4
{ PUSH_RR, REG_DE, INV, INV, 15, TYPE_NONE, "push de" }, // d5
{ SUB_N, INV, INV, INV, 11, TYPE_IMM_N, "sub %02hhXh" }, // d6
{ RST, 0x10, INV, INV, 15, TYPE_NONE, "rst 10h" }, // d7
{ RET_C, COND_C, INV, INV, 9, TYPE_NONE, "ret c" }, // d8
{ EXX, INV, INV, INV, 8, TYPE_NONE, "exx" }, // d9
{ JP_C_MNN, COND_C, INV, INV, 14, TYPE_IMM_NN, "jp c,(%04hXh)" }, // da
{ IN_R_MN, REG_A, INV, INV, 15, TYPE_IMM_N, "in a,(%02hhXh)" }, // db
{ CALL_C_MNN, COND_C, INV, 14, 21, TYPE_IMM_NN, "call c,(%04hXh)" }, // dc
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // dd
{ SBC_R_N, REG_A, INV, INV, 19, TYPE_IMM_N, "sbc a,%02hhXh" }, // de
{ RST, 0x18, INV, INV, 15, TYPE_NONE, "rst 18h" }, // df
{ RET_C, COND_PO, INV, 9, 15, TYPE_NONE, "ret po" }, // e0
{ POP_RR, REG_IY, INV, INV, 14, TYPE_NONE, "pop iy" }, // e1
{ JP_C_MNN, COND_PO, INV, INV, 14, TYPE_IMM_NN, "jp po,(%04hXh)" }, // e2
{ EX_MRR_RR, REG_SP, REG_IY, INV, 23, TYPE_NONE, "ex (sp),iy" }, // e3
{ CALL_C_MNN, COND_PO, INV, 14, 21, TYPE_IMM_NN, "call po,(%04hXh)" }, // e4
{ PUSH_RR, REG_IY, INV, INV, 15, TYPE_NONE, "push iy" }, // e5
{ AND_N, INV, INV, INV, 11, TYPE_IMM_N, "and %02hhXh" }, // e6
{ RST, 0x20, INV, INV, 15, TYPE_NONE, "rst 20h" }, // e7
{ RET_C, COND_PE, INV, 9, 15, TYPE_NONE, "ret pe" }, // e8
{ JP_MRR, REG_IY, INV, INV, 8, TYPE_NONE, "jp (iy)" }, // e9
{ JP_C_MNN, COND_PE, INV, INV, 14, TYPE_IMM_NN, "jp pe,(%04hXh)" }, // ea
{ EX_RR_RR, REG_DE, REG_HL, INV, 8, TYPE_NONE, "ex de,hl" }, // eb
{ CALL_C_MNN, COND_PE, INV, 14, 21, TYPE_IMM_NN, "call pe,(%04hXh)" }, // ec
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ed
{ XOR_N, INV, INV, INV, 11, TYPE_IMM_N, "xor %02hhXh" }, // ee
{ RST, 0x28, INV, INV, 15, TYPE_NONE, "rst 28h" }, // ef
{ RET_C, COND_P, INV, 9, 15, TYPE_NONE, "ret p" }, // f0
{ POP_RR, REG_AF, INV, INV, 14, TYPE_NONE, "pop af" }, // f1
{ JP_C_MNN, COND_P, INV, INV, 14, TYPE_IMM_NN, "jp p,(%04hXh)" }, // f2
{ DI, INV, INV, INV, 8, TYPE_NONE, "di" }, // f3
{ CALL_C_MNN, COND_P, INV, 14, 21, TYPE_IMM_NN, "call p,(%04hXh)" }, // f4
{ PUSH_RR, REG_AF, INV, INV, 15, TYPE_NONE, "push af" }, // f5
{ OR_N, INV, INV, INV, 11, TYPE_IMM_N, "or %02hhXh" }, // f6
{ RST, 0x30, INV, INV, 15, TYPE_NONE, "rst 30h" }, // f7
{ RET_C, COND_M, INV, 9, 15, TYPE_NONE, "ret m" }, // f8
{ LD_RR_RR, REG_SP, REG_IY, INV, 10, TYPE_NONE, "ld sp,iy" }, // f9
{ JP_C_MNN, COND_M, INV, INV, 14, TYPE_IMM_NN, "jp m,(%04hXh)" }, // fa
{ EI, INV, INV, INV, 8, TYPE_NONE, "ei" }, // fb
{ CALL_C_MNN, COND_M, INV, 14, 21, TYPE_IMM_NN, "call m,(%04hXh)" }, // fc
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // fd
{ CP_N, INV, INV, INV, 11, TYPE_IMM_N, "cp %02hhXh" }, // fe
{ RST, 0x38, INV, INV, 15, TYPE_NONE, "rst 38h" }, // ff

256
tables/fdcb_prefix.tab Normal file
View File

@ -0,0 +1,256 @@
{ RLC_I, REG_IY, INV, REG_B, 23, TYPE_OFFSET, "ld b,rlc (iy%c%02Xh)" }, // 00
{ RLC_I, REG_IY, INV, REG_C, 23, TYPE_OFFSET, "ld c,rlc (iy%c%02Xh)" }, // 01
{ RLC_I, REG_IY, INV, REG_D, 23, TYPE_OFFSET, "ld d,rlc (iy%c%02Xh)" }, // 02
{ RLC_I, REG_IY, INV, REG_E, 23, TYPE_OFFSET, "ld e,rlc (iy%c%02Xh)" }, // 03
{ RLC_I, REG_IY, INV, REG_H, 23, TYPE_OFFSET, "ld h,rlc (iy%c%02Xh)" }, // 04
{ RLC_I, REG_IY, INV, REG_L, 23, TYPE_OFFSET, "ld l,rlc (iy%c%02Xh)" }, // 05
{ RLC_I, REG_IY, INV, INV, 23, TYPE_OFFSET, "rlc (iy%c%02Xh)" }, // 06
{ RLC_I, REG_IY, INV, REG_A, 23, TYPE_OFFSET, "ld a,rlc (iy%c%02Xh)" }, // 07
{ RRC_I, REG_IY, INV, REG_B, 23, TYPE_OFFSET, "ld b,rrc (iy%c%02Xh)" }, // 08
{ RRC_I, REG_IY, INV, REG_C, 23, TYPE_OFFSET, "ld c,rrc (iy%c%02Xh)" }, // 09
{ RRC_I, REG_IY, INV, REG_D, 23, TYPE_OFFSET, "ld d,rrc (iy%c%02Xh)" }, // 0a
{ RRC_I, REG_IY, INV, REG_E, 23, TYPE_OFFSET, "ld e,rrc (iy%c%02Xh)" }, // 0b
{ RRC_I, REG_IY, INV, REG_H, 23, TYPE_OFFSET, "ld h,rrc (iy%c%02Xh)" }, // 0c
{ RRC_I, REG_IY, INV, REG_L, 23, TYPE_OFFSET, "ld l,rrc (iy%c%02Xh)" }, // 0d
{ RRC_I, REG_IY, INV, INV, 23, TYPE_OFFSET, "rrc (iy%c%02Xh)" }, // 0e
{ RRC_I, REG_IY, INV, REG_A, 23, TYPE_OFFSET, "ld a,rrc (iy%c%02Xh)" }, // 0f
{ RL_I, REG_IY, INV, REG_B, 23, TYPE_OFFSET, "ld b,rl (iy%c%02Xh)" }, // 10
{ RL_I, REG_IY, INV, REG_C, 23, TYPE_OFFSET, "ld c,rl (iy%c%02Xh)" }, // 11
{ RL_I, REG_IY, INV, REG_D, 23, TYPE_OFFSET, "ld d,rl (iy%c%02Xh)" }, // 12
{ RL_I, REG_IY, INV, REG_E, 23, TYPE_OFFSET, "ld e,rl (iy%c%02Xh)" }, // 13
{ RL_I, REG_IY, INV, REG_H, 23, TYPE_OFFSET, "ld h,rl (iy%c%02Xh)" }, // 14
{ RL_I, REG_IY, INV, REG_L, 23, TYPE_OFFSET, "ld l,rl (iy%c%02Xh)" }, // 15
{ RL_I, REG_IY, INV, INV, 23, TYPE_OFFSET, "rl (iy%c%02Xh)" }, // 16
{ RL_I, REG_IY, INV, REG_A, 23, TYPE_OFFSET, "ld a,rl (iy%c%02Xh)" }, // 17
{ RR_I, REG_IY, INV, REG_B, 23, TYPE_OFFSET, "ld b,rr (iy%c%02Xh)" }, // 18
{ RR_I, REG_IY, INV, REG_C, 23, TYPE_OFFSET, "ld c,rr (iy%c%02Xh)" }, // 19
{ RR_I, REG_IY, INV, REG_D, 23, TYPE_OFFSET, "ld d,rr (iy%c%02Xh)" }, // 1a
{ RR_I, REG_IY, INV, REG_E, 23, TYPE_OFFSET, "ld e,rr (iy%c%02Xh)" }, // 1b
{ RR_I, REG_IY, INV, REG_H, 23, TYPE_OFFSET, "ld h,rr (iy%c%02Xh)" }, // 1c
{ RR_I, REG_IY, INV, REG_L, 23, TYPE_OFFSET, "ld l,rr (iy%c%02Xh)" }, // 1d
{ RR_I, REG_IY, INV, INV, 23, TYPE_OFFSET, "rr (iy%c%02Xh)" }, // 1e
{ RR_I, REG_IY, INV, REG_A, 23, TYPE_OFFSET, "ld a,rr (iy%c%02Xh)" }, // 1f
{ SLA_I, REG_IY, INV, REG_B, 23, TYPE_OFFSET, "ld b,sla (iy%c%02Xh)" }, // 20
{ SLA_I, REG_IY, INV, REG_C, 23, TYPE_OFFSET, "ld c,sla (iy%c%02Xh)" }, // 21
{ SLA_I, REG_IY, INV, REG_D, 23, TYPE_OFFSET, "ld d,sla (iy%c%02Xh)" }, // 22
{ SLA_I, REG_IY, INV, REG_E, 23, TYPE_OFFSET, "ld e,sla (iy%c%02Xh)" }, // 23
{ SLA_I, REG_IY, INV, REG_H, 23, TYPE_OFFSET, "ld h,sla (iy%c%02Xh)" }, // 24
{ SLA_I, REG_IY, INV, REG_L, 23, TYPE_OFFSET, "ld l,sla (iy%c%02Xh)" }, // 25
{ SLA_I, REG_IY, INV, INV, 23, TYPE_OFFSET, "sla (iy%c%02Xh)" }, // 26
{ SLA_I, REG_IY, INV, REG_A, 23, TYPE_OFFSET, "ld a,sla (iy%c%02Xh)" }, // 27
{ SRA_I, REG_IY, INV, REG_B, 23, TYPE_OFFSET, "ld b,sra (iy%c%02Xh)" }, // 28
{ SRA_I, REG_IY, INV, REG_C, 23, TYPE_OFFSET, "ld c,sra (iy%c%02Xh)" }, // 29
{ SRA_I, REG_IY, INV, REG_D, 23, TYPE_OFFSET, "ld d,sra (iy%c%02Xh)" }, // 2a
{ SRA_I, REG_IY, INV, REG_E, 23, TYPE_OFFSET, "ld e,sra (iy%c%02Xh)" }, // 2b
{ SRA_I, REG_IY, INV, REG_H, 23, TYPE_OFFSET, "ld h,sra (iy%c%02Xh)" }, // 2c
{ SRA_I, REG_IY, INV, REG_L, 23, TYPE_OFFSET, "ld l,sra (iy%c%02Xh)" }, // 2d
{ SRA_I, REG_IY, INV, INV, 23, TYPE_OFFSET, "sra (iy%c%02Xh)" }, // 2e
{ SRA_I, REG_IY, INV, REG_A, 23, TYPE_OFFSET, "ld a,sra (iy%c%02Xh)" }, // 2f
{ SLL_I, REG_IY, INV, REG_B, 23, TYPE_OFFSET, "ld b,sll (iy%c%02Xh)" }, // 30
{ SLL_I, REG_IY, INV, REG_C, 23, TYPE_OFFSET, "ld c,sll (iy%c%02Xh)" }, // 31
{ SLL_I, REG_IY, INV, REG_D, 23, TYPE_OFFSET, "ld d,sll (iy%c%02Xh)" }, // 32
{ SLL_I, REG_IY, INV, REG_E, 23, TYPE_OFFSET, "ld e,sll (iy%c%02Xh)" }, // 33
{ SLL_I, REG_IY, INV, REG_H, 23, TYPE_OFFSET, "ld h,sll (iy%c%02Xh)" }, // 34
{ SLL_I, REG_IY, INV, REG_L, 23, TYPE_OFFSET, "ld l,sll (iy%c%02Xh)" }, // 35
{ SLL_I, REG_IY, INV, INV, 23, TYPE_OFFSET, "sll (iy%c%02Xh)" }, // 36
{ SLL_I, REG_IY, INV, REG_A, 23, TYPE_OFFSET, "ld a,sll (iy%c%02Xh)" }, // 37
{ SRL_I, REG_IY, INV, REG_B, 23, TYPE_OFFSET, "ld b,srl (iy%c%02Xh)" }, // 38
{ SRL_I, REG_IY, INV, REG_C, 23, TYPE_OFFSET, "ld c,srl (iy%c%02Xh)" }, // 39
{ SRL_I, REG_IY, INV, REG_D, 23, TYPE_OFFSET, "ld d,srl (iy%c%02Xh)" }, // 3a
{ SRL_I, REG_IY, INV, REG_E, 23, TYPE_OFFSET, "ld e,srl (iy%c%02Xh)" }, // 3b
{ SRL_I, REG_IY, INV, REG_H, 23, TYPE_OFFSET, "ld h,srl (iy%c%02Xh)" }, // 3c
{ SRL_I, REG_IY, INV, REG_L, 23, TYPE_OFFSET, "ld l,srl (iy%c%02Xh)" }, // 3d
{ SRL_I, REG_IY, INV, INV, 23, TYPE_OFFSET, "srl (iy%c%02Xh)" }, // 3e
{ SRL_I, REG_IY, INV, REG_A, 23, TYPE_OFFSET, "ld a,srl (iy%c%02Xh)" }, // 3f
{ BIT_I, 0, REG_IY, INV, 20, TYPE_OFFSET, "bit 0,(iy%c%02Xh)" }, // 40
{ BIT_I, 0, REG_IY, INV, 20, TYPE_OFFSET, "bit 0,(iy%c%02Xh)" }, // 41
{ BIT_I, 0, REG_IY, INV, 20, TYPE_OFFSET, "bit 0,(iy%c%02Xh)" }, // 42
{ BIT_I, 0, REG_IY, INV, 20, TYPE_OFFSET, "bit 0,(iy%c%02Xh)" }, // 43
{ BIT_I, 0, REG_IY, INV, 20, TYPE_OFFSET, "bit 0,(iy%c%02Xh)" }, // 44
{ BIT_I, 0, REG_IY, INV, 20, TYPE_OFFSET, "bit 0,(iy%c%02Xh)" }, // 45
{ BIT_I, 0, REG_IY, INV, 20, TYPE_OFFSET, "bit 0,(iy%c%02Xh)" }, // 46
{ BIT_I, 0, REG_IY, INV, 20, TYPE_OFFSET, "bit 0,(iy%c%02Xh)" }, // 47
{ BIT_I, 1, REG_IY, INV, 20, TYPE_OFFSET, "bit 1,(iy%c%02Xh)" }, // 48
{ BIT_I, 1, REG_IY, INV, 20, TYPE_OFFSET, "bit 1,(iy%c%02Xh)" }, // 49
{ BIT_I, 1, REG_IY, INV, 20, TYPE_OFFSET, "bit 1,(iy%c%02Xh)" }, // 4a
{ BIT_I, 1, REG_IY, INV, 20, TYPE_OFFSET, "bit 1,(iy%c%02Xh)" }, // 4b
{ BIT_I, 1, REG_IY, INV, 20, TYPE_OFFSET, "bit 1,(iy%c%02Xh)" }, // 4c
{ BIT_I, 1, REG_IY, INV, 20, TYPE_OFFSET, "bit 1,(iy%c%02Xh)" }, // 4d
{ BIT_I, 1, REG_IY, INV, 20, TYPE_OFFSET, "bit 1,(iy%c%02Xh)" }, // 4e
{ BIT_I, 1, REG_IY, INV, 20, TYPE_OFFSET, "bit 1,(iy%c%02Xh)" }, // 4f
{ BIT_I, 2, REG_IY, INV, 20, TYPE_OFFSET, "bit 2,(iy%c%02Xh)" }, // 50
{ BIT_I, 2, REG_IY, INV, 20, TYPE_OFFSET, "bit 2,(iy%c%02Xh)" }, // 51
{ BIT_I, 2, REG_IY, INV, 20, TYPE_OFFSET, "bit 2,(iy%c%02Xh)" }, // 52
{ BIT_I, 2, REG_IY, INV, 20, TYPE_OFFSET, "bit 2,(iy%c%02Xh)" }, // 53
{ BIT_I, 2, REG_IY, INV, 20, TYPE_OFFSET, "bit 2,(iy%c%02Xh)" }, // 54
{ BIT_I, 2, REG_IY, INV, 20, TYPE_OFFSET, "bit 2,(iy%c%02Xh)" }, // 55
{ BIT_I, 2, REG_IY, INV, 20, TYPE_OFFSET, "bit 2,(iy%c%02Xh)" }, // 56
{ BIT_I, 2, REG_IY, INV, 20, TYPE_OFFSET, "bit 2,(iy%c%02Xh)" }, // 57
{ BIT_I, 3, REG_IY, INV, 20, TYPE_OFFSET, "bit 3,(iy%c%02Xh)" }, // 58
{ BIT_I, 3, REG_IY, INV, 20, TYPE_OFFSET, "bit 3,(iy%c%02Xh)" }, // 59
{ BIT_I, 3, REG_IY, INV, 20, TYPE_OFFSET, "bit 3,(iy%c%02Xh)" }, // 5a
{ BIT_I, 3, REG_IY, INV, 20, TYPE_OFFSET, "bit 3,(iy%c%02Xh)" }, // 5b
{ BIT_I, 3, REG_IY, INV, 20, TYPE_OFFSET, "bit 3,(iy%c%02Xh)" }, // 5c
{ BIT_I, 3, REG_IY, INV, 20, TYPE_OFFSET, "bit 3,(iy%c%02Xh)" }, // 5d
{ BIT_I, 3, REG_IY, INV, 20, TYPE_OFFSET, "bit 3,(iy%c%02Xh)" }, // 5e
{ BIT_I, 3, REG_IY, INV, 20, TYPE_OFFSET, "bit 3,(iy%c%02Xh)" }, // 5f
{ BIT_I, 4, REG_IY, INV, 20, TYPE_OFFSET, "bit 4,(iy%c%02Xh)" }, // 60
{ BIT_I, 4, REG_IY, INV, 20, TYPE_OFFSET, "bit 4,(iy%c%02Xh)" }, // 61
{ BIT_I, 4, REG_IY, INV, 20, TYPE_OFFSET, "bit 4,(iy%c%02Xh)" }, // 62
{ BIT_I, 4, REG_IY, INV, 20, TYPE_OFFSET, "bit 4,(iy%c%02Xh)" }, // 63
{ BIT_I, 4, REG_IY, INV, 20, TYPE_OFFSET, "bit 4,(iy%c%02Xh)" }, // 64
{ BIT_I, 4, REG_IY, INV, 20, TYPE_OFFSET, "bit 4,(iy%c%02Xh)" }, // 65
{ BIT_I, 4, REG_IY, INV, 20, TYPE_OFFSET, "bit 4,(iy%c%02Xh)" }, // 66
{ BIT_I, 4, REG_IY, INV, 20, TYPE_OFFSET, "bit 4,(iy%c%02Xh)" }, // 67
{ BIT_I, 5, REG_IY, INV, 20, TYPE_OFFSET, "bit 5,(iy%c%02Xh)" }, // 68
{ BIT_I, 5, REG_IY, INV, 20, TYPE_OFFSET, "bit 5,(iy%c%02Xh)" }, // 69
{ BIT_I, 5, REG_IY, INV, 20, TYPE_OFFSET, "bit 5,(iy%c%02Xh)" }, // 6a
{ BIT_I, 5, REG_IY, INV, 20, TYPE_OFFSET, "bit 5,(iy%c%02Xh)" }, // 6b
{ BIT_I, 5, REG_IY, INV, 20, TYPE_OFFSET, "bit 5,(iy%c%02Xh)" }, // 6c
{ BIT_I, 5, REG_IY, INV, 20, TYPE_OFFSET, "bit 5,(iy%c%02Xh)" }, // 6d
{ BIT_I, 5, REG_IY, INV, 20, TYPE_OFFSET, "bit 5,(iy%c%02Xh)" }, // 6e
{ BIT_I, 5, REG_IY, INV, 20, TYPE_OFFSET, "bit 5,(iy%c%02Xh)" }, // 6f
{ BIT_I, 6, REG_IY, INV, 20, TYPE_OFFSET, "bit 6,(iy%c%02Xh)" }, // 70
{ BIT_I, 6, REG_IY, INV, 20, TYPE_OFFSET, "bit 6,(iy%c%02Xh)" }, // 71
{ BIT_I, 6, REG_IY, INV, 20, TYPE_OFFSET, "bit 6,(iy%c%02Xh)" }, // 72
{ BIT_I, 6, REG_IY, INV, 20, TYPE_OFFSET, "bit 6,(iy%c%02Xh)" }, // 73
{ BIT_I, 6, REG_IY, INV, 20, TYPE_OFFSET, "bit 6,(iy%c%02Xh)" }, // 74
{ BIT_I, 6, REG_IY, INV, 20, TYPE_OFFSET, "bit 6,(iy%c%02Xh)" }, // 75
{ BIT_I, 6, REG_IY, INV, 20, TYPE_OFFSET, "bit 6,(iy%c%02Xh)" }, // 76
{ BIT_I, 6, REG_IY, INV, 20, TYPE_OFFSET, "bit 6,(iy%c%02Xh)" }, // 77
{ BIT_I, 7, REG_IY, INV, 20, TYPE_OFFSET, "bit 7,(iy%c%02Xh)" }, // 78
{ BIT_I, 7, REG_IY, INV, 20, TYPE_OFFSET, "bit 7,(iy%c%02Xh)" }, // 79
{ BIT_I, 7, REG_IY, INV, 20, TYPE_OFFSET, "bit 7,(iy%c%02Xh)" }, // 7a
{ BIT_I, 7, REG_IY, INV, 20, TYPE_OFFSET, "bit 7,(iy%c%02Xh)" }, // 7b
{ BIT_I, 7, REG_IY, INV, 20, TYPE_OFFSET, "bit 7,(iy%c%02Xh)" }, // 7c
{ BIT_I, 7, REG_IY, INV, 20, TYPE_OFFSET, "bit 7,(iy%c%02Xh)" }, // 7d
{ BIT_I, 7, REG_IY, INV, 20, TYPE_OFFSET, "bit 7,(iy%c%02Xh)" }, // 7e
{ BIT_I, 7, REG_IY, INV, 20, TYPE_OFFSET, "bit 7,(iy%c%02Xh)" }, // 7f
{ RES_I, 0, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,res 0,(iy%c%02Xh)" }, // 80
{ RES_I, 0, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,res 0,(iy%c%02Xh)" }, // 81
{ RES_I, 0, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,res 0,(iy%c%02Xh)" }, // 82
{ RES_I, 0, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,res 0,(iy%c%02Xh)" }, // 83
{ RES_I, 0, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,res 0,(iy%c%02Xh)" }, // 84
{ RES_I, 0, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,res 0,(iy%c%02Xh)" }, // 85
{ RES_I, 0, REG_IY, INV, 23, TYPE_OFFSET, "res 0,(iy%c%02Xh)" }, // 86
{ RES_I, 0, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,res 0,(iy%c%02Xh)" }, // 87
{ RES_I, 1, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,res 1,(iy%c%02Xh)" }, // 88
{ RES_I, 1, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,res 1,(iy%c%02Xh)" }, // 89
{ RES_I, 1, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,res 1,(iy%c%02Xh)" }, // 8a
{ RES_I, 1, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,res 1,(iy%c%02Xh)" }, // 8b
{ RES_I, 1, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,res 1,(iy%c%02Xh)" }, // 8c
{ RES_I, 1, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,res 1,(iy%c%02Xh)" }, // 8d
{ RES_I, 1, REG_IY, INV, 23, TYPE_OFFSET, "res 1,(iy%c%02Xh)" }, // 8e
{ RES_I, 1, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,res 1,(iy%c%02Xh)" }, // 8f
{ RES_I, 2, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,res 2,(iy%c%02Xh)" }, // 90
{ RES_I, 2, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,res 2,(iy%c%02Xh)" }, // 91
{ RES_I, 2, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,res 2,(iy%c%02Xh)" }, // 92
{ RES_I, 2, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,res 2,(iy%c%02Xh)" }, // 93
{ RES_I, 2, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,res 2,(iy%c%02Xh)" }, // 94
{ RES_I, 2, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,res 2,(iy%c%02Xh)" }, // 95
{ RES_I, 2, REG_IY, INV, 23, TYPE_OFFSET, "res 2,(iy%c%02Xh)" }, // 96
{ RES_I, 2, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,res 2,(iy%c%02Xh)" }, // 97
{ RES_I, 3, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,res 3,(iy%c%02Xh)" }, // 98
{ RES_I, 3, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,res 3,(iy%c%02Xh)" }, // 99
{ RES_I, 3, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,res 3,(iy%c%02Xh)" }, // 9a
{ RES_I, 3, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,res 3,(iy%c%02Xh)" }, // 9b
{ RES_I, 3, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,res 3,(iy%c%02Xh)" }, // 9c
{ RES_I, 3, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,res 3,(iy%c%02Xh)" }, // 9d
{ RES_I, 3, REG_IY, INV, 23, TYPE_OFFSET, "res 3,(iy%c%02Xh)" }, // 9e
{ RES_I, 3, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,res 3,(iy%c%02Xh)" }, // 9f
{ RES_I, 4, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,res 4,(iy%c%02Xh)" }, // a0
{ RES_I, 4, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,res 4,(iy%c%02Xh)" }, // a1
{ RES_I, 4, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,res 4,(iy%c%02Xh)" }, // a2
{ RES_I, 4, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,res 4,(iy%c%02Xh)" }, // a3
{ RES_I, 4, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,res 4,(iy%c%02Xh)" }, // a4
{ RES_I, 4, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,res 4,(iy%c%02Xh)" }, // a5
{ RES_I, 4, REG_IY, INV, 23, TYPE_OFFSET, "res 4,(iy%c%02Xh)" }, // a6
{ RES_I, 4, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,res 4,(iy%c%02Xh)" }, // a7
{ RES_I, 5, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,res 5,(iy%c%02Xh)" }, // a8
{ RES_I, 5, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,res 5,(iy%c%02Xh)" }, // a9
{ RES_I, 5, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,res 5,(iy%c%02Xh)" }, // aa
{ RES_I, 5, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,res 5,(iy%c%02Xh)" }, // ab
{ RES_I, 5, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,res 5,(iy%c%02Xh)" }, // ac
{ RES_I, 5, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,res 5,(iy%c%02Xh)" }, // ad
{ RES_I, 5, REG_IY, INV, 23, TYPE_OFFSET, "res 5,(iy%c%02Xh)" }, // ae
{ RES_I, 5, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,res 5,(iy%c%02Xh)" }, // af
{ RES_I, 6, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,res 6,(iy%c%02Xh)" }, // b0
{ RES_I, 6, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,res 6,(iy%c%02Xh)" }, // b1
{ RES_I, 6, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,res 6,(iy%c%02Xh)" }, // b2
{ RES_I, 6, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,res 6,(iy%c%02Xh)" }, // b3
{ RES_I, 6, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,res 6,(iy%c%02Xh)" }, // b4
{ RES_I, 6, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,res 6,(iy%c%02Xh)" }, // b5
{ RES_I, 6, REG_IY, INV, 23, TYPE_OFFSET, "res 6,(iy%c%02Xh)" }, // b6
{ RES_I, 6, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,res 6,(iy%c%02Xh)" }, // b7
{ RES_I, 7, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,res 7,(iy%c%02Xh)" }, // b8
{ RES_I, 7, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,res 7,(iy%c%02Xh)" }, // b9
{ RES_I, 7, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,res 7,(iy%c%02Xh)" }, // ba
{ RES_I, 7, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,res 7,(iy%c%02Xh)" }, // bb
{ RES_I, 7, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,res 7,(iy%c%02Xh)" }, // bc
{ RES_I, 7, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,res 7,(iy%c%02Xh)" }, // bd
{ RES_I, 7, REG_IY, INV, 23, TYPE_OFFSET, "res 7,(iy%c%02Xh)" }, // be
{ RES_I, 7, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,res 7,(iy%c%02Xh)" }, // bf
{ SET_I, 0, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,set 0,(iy%c%02Xh)" }, // c0
{ SET_I, 0, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,set 0,(iy%c%02Xh)" }, // c1
{ SET_I, 0, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,set 0,(iy%c%02Xh)" }, // c2
{ SET_I, 0, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,set 0,(iy%c%02Xh)" }, // c3
{ SET_I, 0, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,set 0,(iy%c%02Xh)" }, // c4
{ SET_I, 0, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,set 0,(iy%c%02Xh)" }, // c5
{ SET_I, 0, REG_IY, INV, 23, TYPE_OFFSET, "set 0,(iy%c%02Xh)" }, // c6
{ SET_I, 0, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,set 0,(iy%c%02Xh)" }, // c7
{ SET_I, 1, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,set 1,(iy%c%02Xh)" }, // c8
{ SET_I, 1, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,set 1,(iy%c%02Xh)" }, // c9
{ SET_I, 1, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,set 1,(iy%c%02Xh)" }, // ca
{ SET_I, 1, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,set 1,(iy%c%02Xh)" }, // cb
{ SET_I, 1, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,set 1,(iy%c%02Xh)" }, // cc
{ SET_I, 1, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,set 1,(iy%c%02Xh)" }, // cd
{ SET_I, 1, REG_IY, INV, 23, TYPE_OFFSET, "set 1,(iy%c%02Xh)" }, // ce
{ SET_I, 1, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,set 1,(iy%c%02Xh)" }, // cf
{ SET_I, 2, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,set 2,(iy%c%02Xh)" }, // d0
{ SET_I, 2, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,set 2,(iy%c%02Xh)" }, // d1
{ SET_I, 2, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,set 2,(iy%c%02Xh)" }, // d2
{ SET_I, 2, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,set 2,(iy%c%02Xh)" }, // d3
{ SET_I, 2, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,set 2,(iy%c%02Xh)" }, // d4
{ SET_I, 2, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,set 2,(iy%c%02Xh)" }, // d5
{ SET_I, 2, REG_IY, INV, 23, TYPE_OFFSET, "set 2,(iy%c%02Xh)" }, // d6
{ SET_I, 2, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,set 2,(iy%c%02Xh)" }, // d7
{ SET_I, 3, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,set 3,(iy%c%02Xh)" }, // d8
{ SET_I, 3, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,set 3,(iy%c%02Xh)" }, // d9
{ SET_I, 3, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,set 3,(iy%c%02Xh)" }, // da
{ SET_I, 3, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,set 3,(iy%c%02Xh)" }, // db
{ SET_I, 3, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,set 3,(iy%c%02Xh)" }, // dc
{ SET_I, 3, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,set 3,(iy%c%02Xh)" }, // dd
{ SET_I, 3, REG_IY, INV, 23, TYPE_OFFSET, "set 3,(iy%c%02Xh)" }, // de
{ SET_I, 3, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,set 3,(iy%c%02Xh)" }, // df
{ SET_I, 4, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,set 4,(iy%c%02Xh)" }, // e0
{ SET_I, 4, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,set 4,(iy%c%02Xh)" }, // e1
{ SET_I, 4, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,set 4,(iy%c%02Xh)" }, // e2
{ SET_I, 4, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,set 4,(iy%c%02Xh)" }, // e3
{ SET_I, 4, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,set 4,(iy%c%02Xh)" }, // e4
{ SET_I, 4, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,set 4,(iy%c%02Xh)" }, // e5
{ SET_I, 4, REG_IY, INV, 23, TYPE_OFFSET, "set 4,(iy%c%02Xh)" }, // e6
{ SET_I, 4, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,set 4,(iy%c%02Xh)" }, // e7
{ SET_I, 5, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,set 5,(iy%c%02Xh)" }, // e8
{ SET_I, 5, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,set 5,(iy%c%02Xh)" }, // e9
{ SET_I, 5, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,set 5,(iy%c%02Xh)" }, // ea
{ SET_I, 5, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,set 5,(iy%c%02Xh)" }, // eb
{ SET_I, 5, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,set 5,(iy%c%02Xh)" }, // ec
{ SET_I, 5, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,set 5,(iy%c%02Xh)" }, // ed
{ SET_I, 5, REG_IY, INV, 23, TYPE_OFFSET, "set 5,(iy%c%02Xh)" }, // ee
{ SET_I, 5, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,set 5,(iy%c%02Xh)" }, // ef
{ SET_I, 6, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,set 6,(iy%c%02Xh)" }, // f0
{ SET_I, 6, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,set 6,(iy%c%02Xh)" }, // f1
{ SET_I, 6, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,set 6,(iy%c%02Xh)" }, // f2
{ SET_I, 6, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,set 6,(iy%c%02Xh)" }, // f3
{ SET_I, 6, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,set 6,(iy%c%02Xh)" }, // f4
{ SET_I, 6, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,set 6,(iy%c%02Xh)" }, // f5
{ SET_I, 6, REG_IY, INV, 23, TYPE_OFFSET, "set 6,(iy%c%02Xh)" }, // f6
{ SET_I, 6, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,set 6,(iy%c%02Xh)" }, // f7
{ SET_I, 7, REG_IY, REG_B, 23, TYPE_OFFSET, "ld b,set 7,(iy%c%02Xh)" }, // f8
{ SET_I, 7, REG_IY, REG_C, 23, TYPE_OFFSET, "ld c,set 7,(iy%c%02Xh)" }, // f9
{ SET_I, 7, REG_IY, REG_D, 23, TYPE_OFFSET, "ld d,set 7,(iy%c%02Xh)" }, // fa
{ SET_I, 7, REG_IY, REG_E, 23, TYPE_OFFSET, "ld e,set 7,(iy%c%02Xh)" }, // fb
{ SET_I, 7, REG_IY, REG_H, 23, TYPE_OFFSET, "ld h,set 7,(iy%c%02Xh)" }, // fc
{ SET_I, 7, REG_IY, REG_L, 23, TYPE_OFFSET, "ld l,set 7,(iy%c%02Xh)" }, // fd
{ SET_I, 7, REG_IY, INV, 23, TYPE_OFFSET, "set 7,(iy%c%02Xh)" }, // fe
{ SET_I, 7, REG_IY, REG_A, 23, TYPE_OFFSET, "ld a,set 7,(iy%c%02Xh)" }, // ff

256
tables/no_prefix.tab Normal file
View File

@ -0,0 +1,256 @@
{ NOP, INV, INV, INV, 4, TYPE_NONE, "nop" }, // 00
{ LD_RR_NN, REG_BC, INV, INV, 10, TYPE_IMM_NN, "ld bc,%04hXh" }, // 01
{ LD_MRR_R, REG_BC, REG_A, INV, 7, TYPE_NONE, "ld (bc),a" }, // 02
{ INC_RR, REG_BC, INV, INV, 6, TYPE_NONE, "inc bc" }, // 03
{ INC_R, REG_B, INV, INV, 4, TYPE_NONE, "inc b" }, // 04
{ DEC_R, REG_B, INV, INV, 4, TYPE_NONE, "dec b" }, // 05
{ LD_R_N, REG_B, INV, INV, 7, TYPE_IMM_N, "ld b,%02hhXh" }, // 06
{ RLCA, INV, INV, INV, 4, TYPE_NONE, "rlca" }, // 07
{ EX_RR_RR, REG_AF, REG_AFP, INV, 4, TYPE_NONE, "ex af,af'" }, // 08
{ ADD_RR_RR, REG_HL, REG_BC, INV, 11, TYPE_NONE, "add hl,bc" }, // 09
{ LD_R_MRR, REG_A, REG_BC, INV, 7, TYPE_NONE, "ld a,(bc)" }, // 0a
{ DEC_RR, REG_BC, INV, INV, 6, TYPE_NONE, "dec bc" }, // 0b
{ INC_R, REG_C, INV, INV, 4, TYPE_NONE, "inc c" }, // 0c
{ DEC_R, REG_C, INV, INV, 4, TYPE_NONE, "dec c" }, // 0d
{ LD_R_N, REG_C, INV, INV, 7, TYPE_IMM_N, "ld c,%02hhXh" }, // 0e
{ RRCA, INV, INV, INV, 4, TYPE_NONE, "rrca" }, // 0f
{ DJNZ, INV, INV, 8, 13, TYPE_DISP, "djnz (pc%c%Xh)" }, // 10
{ LD_RR_NN, REG_DE, INV, INV, 10, TYPE_IMM_NN, "ld de,%04hXh" }, // 11
{ LD_MRR_R, REG_DE, REG_A, INV, 7, TYPE_NONE, "ld (de),a" }, // 12
{ INC_RR, REG_DE, INV, INV, 6, TYPE_NONE, "inc de" }, // 13
{ INC_R, REG_D, INV, INV, 4, TYPE_NONE, "inc d" }, // 14
{ DEC_R, REG_D, INV, INV, 4, TYPE_NONE, "dec d" }, // 15
{ LD_R_N, REG_D, INV, INV, 7, TYPE_IMM_N, "ld d,%02hhXh" }, // 16
{ RLA, INV, INV, INV, 4, TYPE_NONE, "rla" }, // 17
{ JR, INV, INV, INV, 12, TYPE_DISP, "jr (pc%c%Xh)" }, // 18
{ ADD_RR_RR, REG_HL, REG_DE, INV, 11, TYPE_NONE, "add hl,de" }, // 19
{ LD_R_MRR, REG_A, REG_DE, INV, 7, TYPE_NONE, "ld a,(de)" }, // 1a
{ DEC_RR, REG_DE, INV, INV, 6, TYPE_NONE, "dec de" }, // 1b
{ INC_R, REG_E, INV, INV, 4, TYPE_NONE, "inc e" }, // 1c
{ DEC_R, REG_E, INV, INV, 4, TYPE_NONE, "dec e" }, // 1d
{ LD_R_N, REG_E, INV, INV, 7, TYPE_IMM_N, "ld e,%02hhXh" }, // 1e
{ RRA, INV, INV, INV, 4, TYPE_NONE, "rra" }, // 1f
{ JR_C, COND_NZ, INV, 7, 12, TYPE_DISP, "jr nz,(pc%c%Xh)" }, // 20
{ LD_RR_NN, REG_HL, INV, INV, 10, TYPE_IMM_NN, "ld hl,%04hXh" }, // 21
{ LD_MNN_RR, INV, REG_HL, INV, 16, TYPE_IMM_NN, "ld (%04hXh),hl" }, // 22
{ INC_RR, REG_HL, INV, INV, 6, TYPE_NONE, "inc hl" }, // 23
{ INC_R, REG_H, INV, INV, 4, TYPE_NONE, "inc h" }, // 24
{ DEC_R, REG_H, INV, INV, 4, TYPE_NONE, "dec h" }, // 25
{ LD_R_N, REG_H, INV, INV, 7, TYPE_IMM_N, "ld h,%02hhXh" }, // 26
{ DAA, INV, INV, INV, 4, TYPE_NONE, "daa" }, // 27
{ JR_C, COND_Z, INV, 7, 12, TYPE_DISP, "jr z,(pc%c%Xh)" }, // 28
{ ADD_RR_RR, REG_HL, REG_HL, INV, 11, TYPE_NONE, "add hl,hl" }, // 29
{ LD_RR_MNN, REG_HL, INV, INV, 16, TYPE_IMM_NN, "ld hl,(%04hXh)" }, // 2a
{ DEC_RR, REG_HL, INV, INV, 6, TYPE_NONE, "dec hl" }, // 2b
{ INC_R, REG_L, INV, INV, 4, TYPE_NONE, "inc l" }, // 2c
{ DEC_R, REG_L, INV, INV, 4, TYPE_NONE, "dec l" }, // 2d
{ LD_R_N, REG_L, INV, INV, 7, TYPE_IMM_N, "ld l,%02hhXh" }, // 2e
{ CPL, INV, INV, INV, 4, TYPE_NONE, "cpl" }, // 2f
{ JR_C, COND_NC, INV, 7, 12, TYPE_DISP, "jr nc,(pc%c%Xh)" }, // 30
{ LD_RR_NN, REG_SP, INV, INV, 10, TYPE_IMM_NN, "ld sp,%04hXh" }, // 31
{ LD_MNN_R, INV, REG_A, INV, 13, TYPE_IMM_NN, "ld (%04hXh),a" }, // 32
{ INC_RR, REG_SP, INV, INV, 6, TYPE_NONE, "inc sp" }, // 33
{ INC_MRR, REG_HL, INV, INV, 11, TYPE_NONE, "inc (hl)" }, // 34
{ DEC_MRR, REG_HL, INV, INV, 11, TYPE_NONE, "dec (hl)" }, // 35
{ LD_MRR_N, REG_HL, INV, INV, 10, TYPE_IMM_N, "ld (hl),%02hhXh" }, // 36
{ SCF, INV, INV, INV, 4, TYPE_NONE, "scf" }, // 37
{ JR_C, COND_C, INV, 7, 12, TYPE_DISP, "jr c,(pc%c%Xh)" }, // 38
{ ADD_RR_RR, REG_HL, REG_SP, INV, 11, TYPE_NONE, "add hl,sp" }, // 39
{ LD_R_MNN, REG_A, INV, INV, 13, TYPE_IMM_NN, "ld a,(%04hXh)" }, // 3a
{ DEC_RR, REG_SP, INV, INV, 6, TYPE_NONE, "dec sp" }, // 3b
{ INC_R, REG_A, INV, INV, 4, TYPE_NONE, "inc a" }, // 3c
{ DEC_R, REG_A, INV, INV, 4, TYPE_NONE, "dec a" }, // 3d
{ LD_R_N, REG_A, INV, INV, 7, TYPE_IMM_N, "ld a,%02hhXh" }, // 3e
{ CCF, INV, INV, INV, 4, TYPE_NONE, "ccf" }, // 3f
{ LD_R_R, REG_B, REG_B, INV, 4, TYPE_NONE, "ld b,b" }, // 40
{ LD_R_R, REG_B, REG_C, INV, 4, TYPE_NONE, "ld b,c" }, // 41
{ LD_R_R, REG_B, REG_D, INV, 4, TYPE_NONE, "ld b,d" }, // 42
{ LD_R_R, REG_B, REG_E, INV, 4, TYPE_NONE, "ld b,e" }, // 43
{ LD_R_R, REG_B, REG_H, INV, 4, TYPE_NONE, "ld b,h" }, // 44
{ LD_R_R, REG_B, REG_L, INV, 4, TYPE_NONE, "ld b,l" }, // 45
{ LD_R_MRR, REG_B, REG_HL, INV, 7, TYPE_NONE, "ld b,(hl)" }, // 46
{ LD_R_R, REG_B, REG_A, INV, 4, TYPE_NONE, "ld b,a" }, // 47
{ LD_R_R, REG_C, REG_B, INV, 4, TYPE_NONE, "ld c,b" }, // 48
{ LD_R_R, REG_C, REG_C, INV, 4, TYPE_NONE, "ld c,c" }, // 49
{ LD_R_R, REG_C, REG_D, INV, 4, TYPE_NONE, "ld c,d" }, // 4a
{ LD_R_R, REG_C, REG_E, INV, 4, TYPE_NONE, "ld c,e" }, // 4b
{ LD_R_R, REG_C, REG_H, INV, 4, TYPE_NONE, "ld c,h" }, // 4c
{ LD_R_R, REG_C, REG_L, INV, 4, TYPE_NONE, "ld c,l" }, // 4d
{ LD_R_MRR, REG_C, REG_HL, INV, 7, TYPE_NONE, "ld c,(hl)" }, // 4e
{ LD_R_R, REG_C, REG_A, INV, 4, TYPE_NONE, "ld c,a" }, // 4f
{ LD_R_R, REG_D, REG_B, INV, 4, TYPE_NONE, "ld d,b" }, // 50
{ LD_R_R, REG_D, REG_C, INV, 4, TYPE_NONE, "ld d,c" }, // 51
{ LD_R_R, REG_D, REG_D, INV, 4, TYPE_NONE, "ld d,d" }, // 52
{ LD_R_R, REG_D, REG_E, INV, 4, TYPE_NONE, "ld d,e" }, // 53
{ LD_R_R, REG_D, REG_H, INV, 4, TYPE_NONE, "ld d,h" }, // 54
{ LD_R_R, REG_D, REG_L, INV, 4, TYPE_NONE, "ld d,l" }, // 55
{ LD_R_MRR, REG_D, REG_HL, INV, 7, TYPE_NONE, "ld d,(hl)" }, // 56
{ LD_R_R, REG_D, REG_A, INV, 4, TYPE_NONE, "ld d,a" }, // 57
{ LD_R_R, REG_E, REG_B, INV, 4, TYPE_NONE, "ld e,b" }, // 58
{ LD_R_R, REG_E, REG_C, INV, 4, TYPE_NONE, "ld e,c" }, // 59
{ LD_R_R, REG_E, REG_D, INV, 4, TYPE_NONE, "ld e,d" }, // 5a
{ LD_R_R, REG_E, REG_E, INV, 4, TYPE_NONE, "ld e,e" }, // 5b
{ LD_R_R, REG_E, REG_H, INV, 4, TYPE_NONE, "ld e,h" }, // 5c
{ LD_R_R, REG_E, REG_L, INV, 4, TYPE_NONE, "ld e,l" }, // 5d
{ LD_R_MRR, REG_E, REG_HL, INV, 7, TYPE_NONE, "ld e,(hl)" }, // 5e
{ LD_R_R, REG_E, REG_A, INV, 4, TYPE_NONE, "ld e,a" }, // 5f
{ LD_R_R, REG_H, REG_B, INV, 4, TYPE_NONE, "ld h,b" }, // 60
{ LD_R_R, REG_H, REG_C, INV, 4, TYPE_NONE, "ld h,c" }, // 61
{ LD_R_R, REG_H, REG_D, INV, 4, TYPE_NONE, "ld h,d" }, // 62
{ LD_R_R, REG_H, REG_E, INV, 4, TYPE_NONE, "ld h,e" }, // 63
{ LD_R_R, REG_H, REG_H, INV, 4, TYPE_NONE, "ld h,h" }, // 64
{ LD_R_R, REG_H, REG_L, INV, 4, TYPE_NONE, "ld h,l" }, // 65
{ LD_R_MRR, REG_H, REG_HL, INV, 7, TYPE_NONE, "ld h,(hl)" }, // 66
{ LD_R_R, REG_H, REG_A, INV, 4, TYPE_NONE, "ld h,a" }, // 67
{ LD_R_R, REG_L, REG_B, INV, 4, TYPE_NONE, "ld l,b" }, // 68
{ LD_R_R, REG_L, REG_C, INV, 4, TYPE_NONE, "ld l,c" }, // 69
{ LD_R_R, REG_L, REG_D, INV, 4, TYPE_NONE, "ld l,d" }, // 6a
{ LD_R_R, REG_L, REG_E, INV, 4, TYPE_NONE, "ld l,e" }, // 6b
{ LD_R_R, REG_L, REG_H, INV, 4, TYPE_NONE, "ld l,h" }, // 6c
{ LD_R_R, REG_L, REG_L, INV, 4, TYPE_NONE, "ld l,l" }, // 6d
{ LD_R_MRR, REG_L, REG_HL, INV, 7, TYPE_NONE, "ld l,(hl)" }, // 6e
{ LD_R_R, REG_L, REG_A, INV, 4, TYPE_NONE, "ld l,a" }, // 6f
{ LD_MRR_R, REG_HL, REG_B, INV, 7, TYPE_NONE, "ld (hl),b" }, // 70
{ LD_MRR_R, REG_HL, REG_C, INV, 7, TYPE_NONE, "ld (hl),c" }, // 71
{ LD_MRR_R, REG_HL, REG_D, INV, 7, TYPE_NONE, "ld (hl),d" }, // 72
{ LD_MRR_R, REG_HL, REG_E, INV, 7, TYPE_NONE, "ld (hl),e" }, // 73
{ LD_MRR_R, REG_HL, REG_H, INV, 7, TYPE_NONE, "ld (hl),h" }, // 74
{ LD_MRR_R, REG_HL, REG_L, INV, 7, TYPE_NONE, "ld (hl),l" }, // 75
{ HALT, INV, INV, INV, 4, TYPE_NONE, "halt" }, // 76
{ LD_MRR_R, REG_HL, REG_A, INV, 7, TYPE_NONE, "ld (hl),a" }, // 77
{ LD_R_R, REG_A, REG_B, INV, 4, TYPE_NONE, "ld a,b" }, // 78
{ LD_R_R, REG_A, REG_C, INV, 4, TYPE_NONE, "ld a,c" }, // 79
{ LD_R_R, REG_A, REG_D, INV, 4, TYPE_NONE, "ld a,d" }, // 7a
{ LD_R_R, REG_A, REG_E, INV, 4, TYPE_NONE, "ld a,e" }, // 7b
{ LD_R_R, REG_A, REG_H, INV, 4, TYPE_NONE, "ld a,h" }, // 7c
{ LD_R_R, REG_A, REG_L, INV, 4, TYPE_NONE, "ld a,l" }, // 7d
{ LD_R_MRR, REG_A, REG_HL, INV, 7, TYPE_NONE, "ld a,(hl)" }, // 7e
{ LD_R_R, REG_A, REG_A, INV, 4, TYPE_NONE, "ld a,a" }, // 7f
{ ADD_R_R, REG_A, REG_B, INV, 4, TYPE_NONE, "add a,b" }, // 80
{ ADD_R_R, REG_A, REG_C, INV, 4, TYPE_NONE, "add a,c" }, // 81
{ ADD_R_R, REG_A, REG_D, INV, 4, TYPE_NONE, "add a,d" }, // 82
{ ADD_R_R, REG_A, REG_E, INV, 4, TYPE_NONE, "add a,e" }, // 83
{ ADD_R_R, REG_A, REG_H, INV, 4, TYPE_NONE, "add a,h" }, // 84
{ ADD_R_R, REG_A, REG_L, INV, 4, TYPE_NONE, "add a,l" }, // 85
{ ADD_R_MRR, REG_A, REG_HL, INV, 7, TYPE_NONE, "add a,(hl)" }, // 86
{ ADD_R_R, REG_A, REG_A, INV, 4, TYPE_NONE, "add a,a" }, // 87
{ ADC_R_R, REG_A, REG_B, INV, 4, TYPE_NONE, "adc a,b" }, // 88
{ ADC_R_R, REG_A, REG_C, INV, 4, TYPE_NONE, "adc a,c" }, // 89
{ ADC_R_R, REG_A, REG_D, INV, 4, TYPE_NONE, "adc a,d" }, // 8a
{ ADC_R_R, REG_A, REG_E, INV, 4, TYPE_NONE, "adc a,e" }, // 8b
{ ADC_R_R, REG_A, REG_H, INV, 4, TYPE_NONE, "adc a,h" }, // 8c
{ ADC_R_R, REG_A, REG_L, INV, 4, TYPE_NONE, "adc a,l" }, // 8d
{ ADC_R_MRR, REG_A, REG_HL, INV, 7, TYPE_NONE, "adc a,(hl)" }, // 8e
{ ADC_R_R, REG_A, REG_A, INV, 4, TYPE_NONE, "adc a,a" }, // 8f
{ SUB_R, REG_B, INV, INV, 4, TYPE_NONE, "sub b" }, // 90
{ SUB_R, REG_C, INV, INV, 4, TYPE_NONE, "sub c" }, // 91
{ SUB_R, REG_D, INV, INV, 4, TYPE_NONE, "sub d" }, // 92
{ SUB_R, REG_E, INV, INV, 4, TYPE_NONE, "sub e" }, // 93
{ SUB_R, REG_H, INV, INV, 4, TYPE_NONE, "sub h" }, // 94
{ SUB_R, REG_L, INV, INV, 4, TYPE_NONE, "sub l" }, // 95
{ SUB_MRR, REG_HL, INV, INV, 7, TYPE_NONE, "sub (hl)" }, // 96
{ SUB_R, REG_A, INV, INV, 4, TYPE_NONE, "sub a" }, // 97
{ SBC_R_R, REG_A, REG_B, INV, 4, TYPE_NONE, "sbc a,b" }, // 98
{ SBC_R_R, REG_A, REG_C, INV, 4, TYPE_NONE, "sbc a,c" }, // 99
{ SBC_R_R, REG_A, REG_D, INV, 4, TYPE_NONE, "sbc a,d" }, // 9a
{ SBC_R_R, REG_A, REG_E, INV, 4, TYPE_NONE, "sbc a,e" }, // 9b
{ SBC_R_R, REG_A, REG_H, INV, 4, TYPE_NONE, "sbc a,h" }, // 9c
{ SBC_R_R, REG_A, REG_L, INV, 4, TYPE_NONE, "sbc a,l" }, // 9d
{ SBC_R_MRR, REG_A, REG_HL, INV, 7, TYPE_NONE, "sbc a,(hl)" }, // 9e
{ SBC_R_R, REG_A, REG_A, INV, 4, TYPE_NONE, "sbc a,a" }, // 9f
{ AND_R, REG_B, INV, INV, 4, TYPE_NONE, "and b" }, // a0
{ AND_R, REG_C, INV, INV, 4, TYPE_NONE, "and c" }, // a1
{ AND_R, REG_D, INV, INV, 4, TYPE_NONE, "and d" }, // a2
{ AND_R, REG_E, INV, INV, 4, TYPE_NONE, "and e" }, // a3
{ AND_R, REG_H, INV, INV, 4, TYPE_NONE, "and h" }, // a4
{ AND_R, REG_L, INV, INV, 4, TYPE_NONE, "and l" }, // a5
{ AND_MRR, REG_HL, INV, INV, 7, TYPE_NONE, "and (hl)" }, // a6
{ AND_R, REG_A, INV, INV, 4, TYPE_NONE, "and a" }, // a7
{ XOR_R, REG_B, INV, INV, 4, TYPE_NONE, "xor b" }, // a8
{ XOR_R, REG_C, INV, INV, 4, TYPE_NONE, "xor c" }, // a9
{ XOR_R, REG_D, INV, INV, 4, TYPE_NONE, "xor d" }, // aa
{ XOR_R, REG_E, INV, INV, 4, TYPE_NONE, "xor e" }, // ab
{ XOR_R, REG_H, INV, INV, 4, TYPE_NONE, "xor h" }, // ac
{ XOR_R, REG_L, INV, INV, 4, TYPE_NONE, "xor l" }, // ad
{ XOR_MRR, REG_HL, INV, INV, 7, TYPE_NONE, "xor (hl)" }, // ae
{ XOR_R, REG_A, INV, INV, 4, TYPE_NONE, "xor a" }, // af
{ OR_R, REG_B, INV, INV, 4, TYPE_NONE, "or b" }, // b0
{ OR_R, REG_C, INV, INV, 4, TYPE_NONE, "or c" }, // b1
{ OR_R, REG_D, INV, INV, 4, TYPE_NONE, "or d" }, // b2
{ OR_R, REG_E, INV, INV, 4, TYPE_NONE, "or e" }, // b3
{ OR_R, REG_H, INV, INV, 4, TYPE_NONE, "or h" }, // b4
{ OR_R, REG_L, INV, INV, 4, TYPE_NONE, "or l" }, // b5
{ OR_MRR, REG_HL, INV, INV, 7, TYPE_NONE, "or (hl)" }, // b6
{ OR_R, REG_A, INV, INV, 4, TYPE_NONE, "or a" }, // b7
{ CP_R, REG_B, INV, INV, 4, TYPE_NONE, "cp b" }, // b8
{ CP_R, REG_C, INV, INV, 4, TYPE_NONE, "cp c" }, // b9
{ CP_R, REG_D, INV, INV, 4, TYPE_NONE, "cp d" }, // ba
{ CP_R, REG_E, INV, INV, 4, TYPE_NONE, "cp e" }, // bb
{ CP_R, REG_H, INV, INV, 4, TYPE_NONE, "cp h" }, // bc
{ CP_R, REG_L, INV, INV, 4, TYPE_NONE, "cp l" }, // bd
{ CP_MRR, REG_HL, INV, INV, 7, TYPE_NONE, "cp (hl)" }, // be
{ CP_R, REG_A, INV, INV, 4, TYPE_NONE, "cp a" }, // bf
{ RET_C, COND_NZ, INV, 5, 11, TYPE_NONE, "ret nz" }, // c0
{ POP_RR, REG_BC, INV, INV, 10, TYPE_NONE, "pop bc" }, // c1
{ JP_C_MNN, COND_NZ, INV, INV, 10, TYPE_IMM_NN, "jp nz,(%04hXh)" }, // c2
{ JP_MNN, INV, INV, INV, 10, TYPE_IMM_NN, "jp (%04hXh)" }, // c3
{ CALL_C_MNN, COND_NZ, INV, 10, 17, TYPE_IMM_NN, "call nz,(%04hXh)" }, // c4
{ PUSH_RR, REG_BC, INV, INV, 11, TYPE_NONE, "push bc" }, // c5
{ ADD_R_N, REG_A, INV, INV, 7, TYPE_IMM_N, "add a,%02hhXh" }, // c6
{ RST, 0x0, INV, INV, 11, TYPE_NONE, "rst 0h" }, // c7
{ RET_C, COND_Z, INV, 5, 11, TYPE_NONE, "ret z" }, // c8
{ RET, INV, INV, INV, 10, TYPE_NONE, "ret" }, // c9
{ JP_C_MNN, COND_Z, INV, INV, 10, TYPE_IMM_NN, "jp z,(%04hXh)" }, // ca
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // cb
{ CALL_C_MNN, COND_Z, INV, 10, 17, TYPE_IMM_NN, "call z,(%04hXh)" }, // cc
{ CALL_MNN, INV, INV, INV, 17, TYPE_IMM_NN, "call (%04hXh)" }, // cd
{ ADC_R_N, REG_A, INV, INV, 7, TYPE_IMM_N, "adc a,%02hhXh" }, // ce
{ RST, 0x8, INV, INV, 11, TYPE_NONE, "rst 8h" }, // cf
{ RET_C, COND_NC, INV, INV, 5, TYPE_NONE, "ret nc" }, // d0
{ POP_RR, REG_DE, INV, INV, 10, TYPE_NONE, "pop de" }, // d1
{ JP_C_MNN, COND_NC, INV, INV, 10, TYPE_IMM_NN, "jp nc,(%04hXh)" }, // d2
{ OUT_MN_R, INV, REG_A, INV, 11, TYPE_IMM_N, "out (%02hhXh),a" }, // d3
{ CALL_C_MNN, COND_NC, INV, 10, 17, TYPE_IMM_NN, "call nc,(%04hXh)" }, // d4
{ PUSH_RR, REG_DE, INV, INV, 11, TYPE_NONE, "push de" }, // d5
{ SUB_N, INV, INV, INV, 7, TYPE_IMM_N, "sub %02hhXh" }, // d6
{ RST, 0x10, INV, INV, 11, TYPE_NONE, "rst 10h" }, // d7
{ RET_C, COND_C, INV, INV, 5, TYPE_NONE, "ret c" }, // d8
{ EXX, INV, INV, INV, 4, TYPE_NONE, "exx" }, // d9
{ JP_C_MNN, COND_C, INV, INV, 10, TYPE_IMM_NN, "jp c,(%04hXh)" }, // da
{ IN_R_MN, REG_A, INV, INV, 11, TYPE_IMM_N, "in a,(%02hhXh)" }, // db
{ CALL_C_MNN, COND_C, INV, 10, 17, TYPE_IMM_NN, "call c,(%04hXh)" }, // dc
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // dd
{ SBC_R_N, REG_A, INV, INV, 15, TYPE_IMM_N, "sbc a,%02hhXh" }, // de
{ RST, 0x18, INV, INV, 11, TYPE_NONE, "rst 18h" }, // df
{ RET_C, COND_PO, INV, 5, 11, TYPE_NONE, "ret po" }, // e0
{ POP_RR, REG_HL, INV, INV, 10, TYPE_NONE, "pop hl" }, // e1
{ JP_C_MNN, COND_PO, INV, INV, 10, TYPE_IMM_NN, "jp po,(%04hXh)" }, // e2
{ EX_MRR_RR, REG_SP, REG_HL, INV, 19, TYPE_NONE, "ex (sp),hl" }, // e3
{ CALL_C_MNN, COND_PO, INV, 10, 17, TYPE_IMM_NN, "call po,(%04hXh)" }, // e4
{ PUSH_RR, REG_HL, INV, INV, 11, TYPE_NONE, "push hl" }, // e5
{ AND_N, INV, INV, INV, 7, TYPE_IMM_N, "and %02hhXh" }, // e6
{ RST, 0x20, INV, INV, 11, TYPE_NONE, "rst 20h" }, // e7
{ RET_C, COND_PE, INV, 5, 11, TYPE_NONE, "ret pe" }, // e8
{ JP_MRR, REG_HL, INV, INV, 4, TYPE_NONE, "jp (hl)" }, // e9
{ JP_C_MNN, COND_PE, INV, INV, 10, TYPE_IMM_NN, "jp pe,(%04hXh)" }, // ea
{ EX_RR_RR, REG_DE, REG_HL, INV, 4, TYPE_NONE, "ex de,hl" }, // eb
{ CALL_C_MNN, COND_PE, INV, 10, 17, TYPE_IMM_NN, "call pe,(%04hXh)" }, // ec
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // ed
{ XOR_N, INV, INV, INV, 7, TYPE_IMM_N, "xor %02hhXh" }, // ee
{ RST, 0x28, INV, INV, 11, TYPE_NONE, "rst 28h" }, // ef
{ RET_C, COND_P, INV, 5, 11, TYPE_NONE, "ret p" }, // f0
{ POP_RR, REG_AF, INV, INV, 10, TYPE_NONE, "pop af" }, // f1
{ JP_C_MNN, COND_P, INV, INV, 10, TYPE_IMM_NN, "jp p,(%04hXh)" }, // f2
{ DI, INV, INV, INV, 4, TYPE_NONE, "di" }, // f3
{ CALL_C_MNN, COND_P, INV, 10, 17, TYPE_IMM_NN, "call p,(%04hXh)" }, // f4
{ PUSH_RR, REG_AF, INV, INV, 11, TYPE_NONE, "push af" }, // f5
{ OR_N, INV, INV, INV, 7, TYPE_IMM_N, "or %02hhXh" }, // f6
{ RST, 0x30, INV, INV, 11, TYPE_NONE, "rst 30h" }, // f7
{ RET_C, COND_M, INV, 5, 11, TYPE_NONE, "ret m" }, // f8
{ LD_RR_RR, REG_SP, REG_HL, INV, 6, TYPE_NONE, "ld sp,hl" }, // f9
{ JP_C_MNN, COND_M, INV, INV, 10, TYPE_IMM_NN, "jp m,(%04hXh)" }, // fa
{ EI, INV, INV, INV, 4, TYPE_NONE, "ei" }, // fb
{ CALL_C_MNN, COND_M, INV, 10, 17, TYPE_IMM_NN, "call m,(%04hXh)" }, // fc
{ NOP, INV, INV, INV, 8, TYPE_NONE, "nop" }, // fd
{ CP_N, INV, INV, INV, 7, TYPE_IMM_N, "cp %02hhXh" }, // fe
{ RST, 0x38, INV, INV, 11, TYPE_NONE, "rst 38h" }, // ff