Package envi :: Package archs :: Package z80 :: Module z80opcode
[hide private]
[frames] | no frames]

Source Code for Module envi.archs.z80.z80opcode

  1  from envi.archs.z80.regs import * 
  2  from envi.archs.z80.const import * 
  3  # (patrn,mask), mnem, o1type, o1info, o2type, o2info, oplen, immoff, iflags 
  4  z80table = [ 
  5  (('00', 'ff'), 'nop', None, None, None, None, 1, 0, 0), 
  6  (('010000', 'ff0000'), 'ld', OPTYPE_Reg, REG_BC, OPTYPE_imm16, None, 3, 1, 0), 
  7  (('02', 'ff'), 'ld', OPTYPE_RegMem, REG_BC, OPTYPE_Reg, REG_A, 1, 0, 0), 
  8  (('03', 'ff'), 'inc', OPTYPE_Reg, REG_BC, None, None, 1, 0, 0), 
  9  (('04', 'ff'), 'inc', OPTYPE_Reg, REG_B, None, None, 1, 0, 0), 
 10  (('05', 'ff'), 'dec', OPTYPE_Reg, REG_B, None, None, 1, 0, 0), 
 11  (('0600', 'ff00'), 'ld', OPTYPE_Reg, REG_B, OPTYPE_imm8, None, 2, 1, 0), 
 12  (('07', 'ff'), 'rlca', None, None, None, None, 1, 0, 0), 
 13  (('08', 'ff'), 'ex', OPTYPE_Reg, REG_AF, OPTYPE_RegAlt, REG_AF, 1, 0, 0), 
 14  (('09', 'ff'), 'add', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_BC, 1, 0, 0), 
 15  (('0a', 'ff'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_RegMem, REG_BC, 1, 0, 0), 
 16  (('0b', 'ff'), 'dec', OPTYPE_Reg, REG_BC, None, None, 1, 0, 0), 
 17  (('0c', 'ff'), 'inc', OPTYPE_Reg, REG_C, None, None, 1, 0, 0), 
 18  (('0d', 'ff'), 'dec', OPTYPE_Reg, REG_C, None, None, 1, 0, 0), 
 19  (('0e00', 'ff00'), 'ld', OPTYPE_Reg, REG_C, OPTYPE_imm8, None, 2, 1, 0), 
 20  (('0f', 'ff'), 'rrca', None, None, None, None, 1, 0, 0), 
 21  (('1000', 'ff00'), 'djnz', OPTYPE_Ind, None, None, None, 2, 1, 0), 
 22  (('110000', 'ff0000'), 'ld', OPTYPE_Reg, REG_DE, OPTYPE_imm16, None, 3, 1, 0), 
 23  (('12', 'ff'), 'ld', OPTYPE_RegMem, REG_DE, OPTYPE_Reg, REG_A, 1, 0, 0), 
 24  (('13', 'ff'), 'inc', OPTYPE_Reg, REG_DE, None, None, 1, 0, 0), 
 25  (('14', 'ff'), 'inc', OPTYPE_Reg, REG_D, None, None, 1, 0, 0), 
 26  (('15', 'ff'), 'dec', OPTYPE_Reg, REG_D, None, None, 1, 0, 0), 
 27  (('1600', 'ff00'), 'ld', OPTYPE_Reg, REG_D, OPTYPE_imm8, None, 2, 1, 0), 
 28  (('17', 'ff'), 'rla', None, None, None, None, 1, 0, 0), 
 29  (('1800', 'ff00'), 'jr', OPTYPE_Ind, None, None, None, 2, 1, 0), 
 30  (('19', 'ff'), 'add', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_DE, 1, 0, 0), 
 31  (('1a', 'ff'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_RegMem, REG_DE, 1, 0, 0), 
 32  (('1b', 'ff'), 'dec', OPTYPE_Reg, REG_DE, None, None, 1, 0, 0), 
 33  (('1c', 'ff'), 'inc', OPTYPE_Reg, REG_E, None, None, 1, 0, 0), 
 34  (('1d', 'ff'), 'dec', OPTYPE_Reg, REG_E, None, None, 1, 0, 0), 
 35  (('1e00', 'ff00'), 'ld', OPTYPE_Reg, REG_E, OPTYPE_imm8, None, 2, 1, 0), 
 36  (('1f', 'ff'), 'rra', None, None, None, None, 1, 0, 0), 
 37  (('2000', 'ff00'), 'jr', OPTYPE_Cond, COND_NZ, OPTYPE_Ind, None, 2, 1, 0), 
 38  (('210000', 'ff0000'), 'ld', OPTYPE_Reg, REG_HL, OPTYPE_imm16, None, 3, 1, 0), 
 39  (('220000', 'ff0000'), 'ld', OPTYPE_immmem16, None, OPTYPE_Reg, REG_HL, 3, 1, 0), 
 40  (('23', 'ff'), 'inc', OPTYPE_Reg, REG_HL, None, None, 1, 0, 0), 
 41  (('24', 'ff'), 'inc', OPTYPE_Reg, REG_H, None, None, 1, 0, 0), 
 42  (('25', 'ff'), 'dec', OPTYPE_Reg, REG_H, None, None, 1, 0, 0), 
 43  (('2600', 'ff00'), 'ld', OPTYPE_Reg, REG_H, OPTYPE_imm8, None, 2, 1, 0), 
 44  (('27', 'ff'), 'daa', None, None, None, None, 1, 0, 0), 
 45  (('2800', 'ff00'), 'jr', OPTYPE_Cond, COND_Z, OPTYPE_Ind, None, 2, 1, 0), 
 46  (('29', 'ff'), 'add', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_HL, 1, 0, 0), 
 47  (('2a0000', 'ff0000'), 'ld', OPTYPE_Reg, REG_HL, OPTYPE_immmem16, None, 3, 1, 0), 
 48  (('2b', 'ff'), 'dec', OPTYPE_Reg, REG_HL, None, None, 1, 0, 0), 
 49  (('2c', 'ff'), 'inc', OPTYPE_Reg, REG_L, None, None, 1, 0, 0), 
 50  (('2d', 'ff'), 'dec', OPTYPE_Reg, REG_L, None, None, 1, 0, 0), 
 51  (('2e00', 'ff00'), 'ld', OPTYPE_Reg, REG_L, OPTYPE_imm8, None, 2, 1, 0), 
 52  (('2f', 'ff'), 'cpl', None, None, None, None, 1, 0, 0), 
 53  (('3000', 'ff00'), 'jr', OPTYPE_Cond, COND_NC, OPTYPE_Ind, None, 2, 1, 0), 
 54  (('310000', 'ff0000'), 'ld', OPTYPE_Reg, REG_SP, OPTYPE_imm16, None, 3, 1, 0), 
 55  (('320000', 'ff0000'), 'ld', OPTYPE_immmem16, None, OPTYPE_Reg, REG_A, 3, 1, 0), 
 56  (('33', 'ff'), 'inc', OPTYPE_Reg, REG_SP, None, None, 1, 0, 0), 
 57  (('34', 'ff'), 'inc', OPTYPE_RegMem, REG_HL, None, None, 1, 0, 0), 
 58  (('35', 'ff'), 'dec', OPTYPE_RegMem, REG_HL, None, None, 1, 0, 0), 
 59  (('3600', 'ff00'), 'ld', OPTYPE_RegMem, REG_HL, OPTYPE_imm8, None, 2, 1, 0), 
 60  (('37', 'ff'), 'scf', None, None, None, None, 1, 0, 0), 
 61  (('3800', 'ff00'), 'jr', OPTYPE_Cond, COND_C, OPTYPE_Ind, None, 2, 1, 0), 
 62  (('39', 'ff'), 'add', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_SP, 1, 0, 0), 
 63  (('3a0000', 'ff0000'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_immmem16, None, 3, 1, 0), 
 64  (('3b', 'ff'), 'dec', OPTYPE_Reg, REG_SP, None, None, 1, 0, 0), 
 65  (('3c', 'ff'), 'inc', OPTYPE_Reg, REG_A, None, None, 1, 0, 0), 
 66  (('3d', 'ff'), 'dec', OPTYPE_Reg, REG_A, None, None, 1, 0, 0), 
 67  (('3e00', 'ff00'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_imm8, None, 2, 1, 0), 
 68  (('3f', 'ff'), 'ccf', None, None, None, None, 1, 0, 0), 
 69  (('40', 'ff'), 'ld', OPTYPE_Reg, REG_B, OPTYPE_Reg, REG_B, 1, 0, 0), 
 70  (('41', 'ff'), 'ld', OPTYPE_Reg, REG_B, OPTYPE_Reg, REG_C, 1, 0, 0), 
 71  (('42', 'ff'), 'ld', OPTYPE_Reg, REG_B, OPTYPE_Reg, REG_D, 1, 0, 0), 
 72  (('43', 'ff'), 'ld', OPTYPE_Reg, REG_B, OPTYPE_Reg, REG_E, 1, 0, 0), 
 73  (('44', 'ff'), 'ld', OPTYPE_Reg, REG_B, OPTYPE_Reg, REG_H, 1, 0, 0), 
 74  (('45', 'ff'), 'ld', OPTYPE_Reg, REG_B, OPTYPE_Reg, REG_L, 1, 0, 0), 
 75  (('46', 'ff'), 'ld', OPTYPE_Reg, REG_B, OPTYPE_RegMem, REG_HL, 1, 0, 0), 
 76  (('47', 'ff'), 'ld', OPTYPE_Reg, REG_B, OPTYPE_Reg, REG_A, 1, 0, 0), 
 77  (('48', 'ff'), 'ld', OPTYPE_Reg, REG_C, OPTYPE_Reg, REG_B, 1, 0, 0), 
 78  (('49', 'ff'), 'ld', OPTYPE_Reg, REG_C, OPTYPE_Reg, REG_C, 1, 0, 0), 
 79  (('4a', 'ff'), 'ld', OPTYPE_Reg, REG_C, OPTYPE_Reg, REG_D, 1, 0, 0), 
 80  (('4b', 'ff'), 'ld', OPTYPE_Reg, REG_C, OPTYPE_Reg, REG_E, 1, 0, 0), 
 81  (('4c', 'ff'), 'ld', OPTYPE_Reg, REG_C, OPTYPE_Reg, REG_H, 1, 0, 0), 
 82  (('4d', 'ff'), 'ld', OPTYPE_Reg, REG_C, OPTYPE_Reg, REG_L, 1, 0, 0), 
 83  (('4e', 'ff'), 'ld', OPTYPE_Reg, REG_C, OPTYPE_RegMem, REG_HL, 1, 0, 0), 
 84  (('4f', 'ff'), 'ld', OPTYPE_Reg, REG_C, OPTYPE_Reg, REG_A, 1, 0, 0), 
 85  (('50', 'ff'), 'ld', OPTYPE_Reg, REG_D, OPTYPE_Reg, REG_B, 1, 0, 0), 
 86  (('51', 'ff'), 'ld', OPTYPE_Reg, REG_D, OPTYPE_Reg, REG_C, 1, 0, 0), 
 87  (('52', 'ff'), 'ld', OPTYPE_Reg, REG_D, OPTYPE_Reg, REG_D, 1, 0, 0), 
 88  (('53', 'ff'), 'ld', OPTYPE_Reg, REG_D, OPTYPE_Reg, REG_E, 1, 0, 0), 
 89  (('54', 'ff'), 'ld', OPTYPE_Reg, REG_D, OPTYPE_Reg, REG_H, 1, 0, 0), 
 90  (('55', 'ff'), 'ld', OPTYPE_Reg, REG_D, OPTYPE_Reg, REG_L, 1, 0, 0), 
 91  (('56', 'ff'), 'ld', OPTYPE_Reg, REG_D, OPTYPE_RegMem, REG_HL, 1, 0, 0), 
 92  (('57', 'ff'), 'ld', OPTYPE_Reg, REG_D, OPTYPE_Reg, REG_A, 1, 0, 0), 
 93  (('58', 'ff'), 'ld', OPTYPE_Reg, REG_E, OPTYPE_Reg, REG_B, 1, 0, 0), 
 94  (('59', 'ff'), 'ld', OPTYPE_Reg, REG_E, OPTYPE_Reg, REG_C, 1, 0, 0), 
 95  (('5a', 'ff'), 'ld', OPTYPE_Reg, REG_E, OPTYPE_Reg, REG_D, 1, 0, 0), 
 96  (('5b', 'ff'), 'ld', OPTYPE_Reg, REG_E, OPTYPE_Reg, REG_E, 1, 0, 0), 
 97  (('5c', 'ff'), 'ld', OPTYPE_Reg, REG_E, OPTYPE_Reg, REG_H, 1, 0, 0), 
 98  (('5d', 'ff'), 'ld', OPTYPE_Reg, REG_E, OPTYPE_Reg, REG_L, 1, 0, 0), 
 99  (('5e', 'ff'), 'ld', OPTYPE_Reg, REG_E, OPTYPE_RegMem, REG_HL, 1, 0, 0), 
100  (('5f', 'ff'), 'ld', OPTYPE_Reg, REG_E, OPTYPE_Reg, REG_A, 1, 0, 0), 
101  (('60', 'ff'), 'ld', OPTYPE_Reg, REG_H, OPTYPE_Reg, REG_B, 1, 0, 0), 
102  (('61', 'ff'), 'ld', OPTYPE_Reg, REG_H, OPTYPE_Reg, REG_C, 1, 0, 0), 
103  (('62', 'ff'), 'ld', OPTYPE_Reg, REG_H, OPTYPE_Reg, REG_D, 1, 0, 0), 
104  (('63', 'ff'), 'ld', OPTYPE_Reg, REG_H, OPTYPE_Reg, REG_E, 1, 0, 0), 
105  (('64', 'ff'), 'ld', OPTYPE_Reg, REG_H, OPTYPE_Reg, REG_H, 1, 0, 0), 
106  (('65', 'ff'), 'ld', OPTYPE_Reg, REG_H, OPTYPE_Reg, REG_L, 1, 0, 0), 
107  (('66', 'ff'), 'ld', OPTYPE_Reg, REG_H, OPTYPE_RegMem, REG_HL, 1, 0, 0), 
108  (('67', 'ff'), 'ld', OPTYPE_Reg, REG_H, OPTYPE_Reg, REG_A, 1, 0, 0), 
109  (('68', 'ff'), 'ld', OPTYPE_Reg, REG_L, OPTYPE_Reg, REG_B, 1, 0, 0), 
110  (('69', 'ff'), 'ld', OPTYPE_Reg, REG_L, OPTYPE_Reg, REG_C, 1, 0, 0), 
111  (('6a', 'ff'), 'ld', OPTYPE_Reg, REG_L, OPTYPE_Reg, REG_D, 1, 0, 0), 
112  (('6b', 'ff'), 'ld', OPTYPE_Reg, REG_L, OPTYPE_Reg, REG_E, 1, 0, 0), 
113  (('6c', 'ff'), 'ld', OPTYPE_Reg, REG_L, OPTYPE_Reg, REG_H, 1, 0, 0), 
114  (('6d', 'ff'), 'ld', OPTYPE_Reg, REG_L, OPTYPE_Reg, REG_L, 1, 0, 0), 
115  (('6e', 'ff'), 'ld', OPTYPE_Reg, REG_L, OPTYPE_RegMem, REG_HL, 1, 0, 0), 
116  (('6f', 'ff'), 'ld', OPTYPE_Reg, REG_L, OPTYPE_Reg, REG_A, 1, 0, 0), 
117  (('70', 'ff'), 'ld', OPTYPE_RegMem, REG_HL, OPTYPE_Reg, REG_B, 1, 0, 0), 
118  (('71', 'ff'), 'ld', OPTYPE_RegMem, REG_HL, OPTYPE_Reg, REG_C, 1, 0, 0), 
119  (('72', 'ff'), 'ld', OPTYPE_RegMem, REG_HL, OPTYPE_Reg, REG_D, 1, 0, 0), 
120  (('73', 'ff'), 'ld', OPTYPE_RegMem, REG_HL, OPTYPE_Reg, REG_E, 1, 0, 0), 
121  (('74', 'ff'), 'ld', OPTYPE_RegMem, REG_HL, OPTYPE_Reg, REG_H, 1, 0, 0), 
122  (('75', 'ff'), 'ld', OPTYPE_RegMem, REG_HL, OPTYPE_Reg, REG_L, 1, 0, 0), 
123  (('76', 'ff'), 'halt', None, None, None, None, 1, 0, 0), 
124  (('77', 'ff'), 'ld', OPTYPE_RegMem, REG_HL, OPTYPE_Reg, REG_A, 1, 0, 0), 
125  (('78', 'ff'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_B, 1, 0, 0), 
126  (('79', 'ff'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_C, 1, 0, 0), 
127  (('7a', 'ff'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_D, 1, 0, 0), 
128  (('7b', 'ff'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_E, 1, 0, 0), 
129  (('7c', 'ff'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_H, 1, 0, 0), 
130  (('7d', 'ff'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_L, 1, 0, 0), 
131  (('7e', 'ff'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_RegMem, REG_HL, 1, 0, 0), 
132  (('7f', 'ff'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_A, 1, 0, 0), 
133  (('80', 'ff'), 'add', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_B, 1, 0, 0), 
134  (('81', 'ff'), 'add', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_C, 1, 0, 0), 
135  (('82', 'ff'), 'add', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_D, 1, 0, 0), 
136  (('83', 'ff'), 'add', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_E, 1, 0, 0), 
137  (('84', 'ff'), 'add', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_H, 1, 0, 0), 
138  (('85', 'ff'), 'add', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_L, 1, 0, 0), 
139  (('86', 'ff'), 'add', OPTYPE_Reg, REG_A, OPTYPE_RegMem, REG_HL, 1, 0, 0), 
140  (('87', 'ff'), 'add', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_A, 1, 0, 0), 
141  (('88', 'ff'), 'adc', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_B, 1, 0, 0), 
142  (('89', 'ff'), 'adc', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_C, 1, 0, 0), 
143  (('8a', 'ff'), 'adc', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_D, 1, 0, 0), 
144  (('8b', 'ff'), 'adc', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_E, 1, 0, 0), 
145  (('8c', 'ff'), 'adc', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_H, 1, 0, 0), 
146  (('8d', 'ff'), 'adc', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_L, 1, 0, 0), 
147  (('8e', 'ff'), 'adc', OPTYPE_Reg, REG_A, OPTYPE_RegMem, REG_HL, 1, 0, 0), 
148  (('8f', 'ff'), 'adc', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_A, 1, 0, 0), 
149  (('90', 'ff'), 'sub', OPTYPE_Reg, REG_B, None, None, 1, 0, 0), 
150  (('91', 'ff'), 'sub', OPTYPE_Reg, REG_C, None, None, 1, 0, 0), 
151  (('92', 'ff'), 'sub', OPTYPE_Reg, REG_D, None, None, 1, 0, 0), 
152  (('93', 'ff'), 'sub', OPTYPE_Reg, REG_E, None, None, 1, 0, 0), 
153  (('94', 'ff'), 'sub', OPTYPE_Reg, REG_H, None, None, 1, 0, 0), 
154  (('95', 'ff'), 'sub', OPTYPE_Reg, REG_L, None, None, 1, 0, 0), 
155  (('96', 'ff'), 'sub', OPTYPE_RegMem, REG_HL, None, None, 1, 0, 0), 
156  (('97', 'ff'), 'sub', OPTYPE_Reg, REG_A, None, None, 1, 0, 0), 
157  (('98', 'ff'), 'sbc', OPTYPE_Reg, REG_B, None, None, 1, 0, 0), 
158  (('99', 'ff'), 'sbc', OPTYPE_Reg, REG_C, None, None, 1, 0, 0), 
159  (('9a', 'ff'), 'sbc', OPTYPE_Reg, REG_D, None, None, 1, 0, 0), 
160  (('9b', 'ff'), 'sbc', OPTYPE_Reg, REG_E, None, None, 1, 0, 0), 
161  (('9c', 'ff'), 'sbc', OPTYPE_Reg, REG_H, None, None, 1, 0, 0), 
162  (('9d', 'ff'), 'sbc', OPTYPE_Reg, REG_L, None, None, 1, 0, 0), 
163  (('9e', 'ff'), 'sbc', OPTYPE_RegMem, REG_HL, None, None, 1, 0, 0), 
164  (('9f', 'ff'), 'sbc', OPTYPE_Reg, REG_A, None, None, 1, 0, 0), 
165  (('a0', 'ff'), 'and', OPTYPE_Reg, REG_B, None, None, 1, 0, 0), 
166  (('a1', 'ff'), 'and', OPTYPE_Reg, REG_C, None, None, 1, 0, 0), 
167  (('a2', 'ff'), 'and', OPTYPE_Reg, REG_D, None, None, 1, 0, 0), 
168  (('a3', 'ff'), 'and', OPTYPE_Reg, REG_E, None, None, 1, 0, 0), 
169  (('a4', 'ff'), 'and', OPTYPE_Reg, REG_H, None, None, 1, 0, 0), 
170  (('a5', 'ff'), 'and', OPTYPE_Reg, REG_L, None, None, 1, 0, 0), 
171  (('a6', 'ff'), 'and', OPTYPE_RegMem, REG_HL, None, None, 1, 0, 0), 
172  (('a7', 'ff'), 'and', OPTYPE_Reg, REG_A, None, None, 1, 0, 0), 
173  (('a8', 'ff'), 'xor', OPTYPE_Reg, REG_B, None, None, 1, 0, 0), 
174  (('a9', 'ff'), 'xor', OPTYPE_Reg, REG_C, None, None, 1, 0, 0), 
175  (('aa', 'ff'), 'xor', OPTYPE_Reg, REG_D, None, None, 1, 0, 0), 
176  (('ab', 'ff'), 'xor', OPTYPE_Reg, REG_E, None, None, 1, 0, 0), 
177  (('ac', 'ff'), 'xor', OPTYPE_Reg, REG_H, None, None, 1, 0, 0), 
178  (('ad', 'ff'), 'xor', OPTYPE_Reg, REG_L, None, None, 1, 0, 0), 
179  (('ae', 'ff'), 'xor', OPTYPE_RegMem, REG_HL, None, None, 1, 0, 0), 
180  (('af', 'ff'), 'xor', OPTYPE_Reg, REG_A, None, None, 1, 0, 0), 
181  (('b0', 'ff'), 'or', OPTYPE_Reg, REG_B, None, None, 1, 0, 0), 
182  (('b1', 'ff'), 'or', OPTYPE_Reg, REG_C, None, None, 1, 0, 0), 
183  (('b2', 'ff'), 'or', OPTYPE_Reg, REG_D, None, None, 1, 0, 0), 
184  (('b3', 'ff'), 'or', OPTYPE_Reg, REG_E, None, None, 1, 0, 0), 
185  (('b4', 'ff'), 'or', OPTYPE_Reg, REG_H, None, None, 1, 0, 0), 
186  (('b5', 'ff'), 'or', OPTYPE_Reg, REG_L, None, None, 1, 0, 0), 
187  (('b6', 'ff'), 'or', OPTYPE_RegMem, REG_HL, None, None, 1, 0, 0), 
188  (('b7', 'ff'), 'or', OPTYPE_Reg, REG_A, None, None, 1, 0, 0), 
189  (('b8', 'ff'), 'cp', OPTYPE_Reg, REG_B, None, None, 1, 0, 0), 
190  (('b9', 'ff'), 'cp', OPTYPE_Reg, REG_C, None, None, 1, 0, 0), 
191  (('ba', 'ff'), 'cp', OPTYPE_Reg, REG_D, None, None, 1, 0, 0), 
192  (('bb', 'ff'), 'cp', OPTYPE_Reg, REG_E, None, None, 1, 0, 0), 
193  (('bc', 'ff'), 'cp', OPTYPE_Reg, REG_H, None, None, 1, 0, 0), 
194  (('bd', 'ff'), 'cp', OPTYPE_Reg, REG_L, None, None, 1, 0, 0), 
195  (('be', 'ff'), 'cp', OPTYPE_RegMem, REG_HL, None, None, 1, 0, 0), 
196  (('bf', 'ff'), 'cp', OPTYPE_Reg, REG_A, None, None, 1, 0, 0), 
197  (('c0', 'ff'), 'ret', OPTYPE_Cond, COND_NZ, None, None, 1, 0, 0), 
198  (('c1', 'ff'), 'pop', OPTYPE_Reg, REG_BC, None, None, 1, 0, 0), 
199  (('c2', 'ff'), 'jp', OPTYPE_Cond, COND_NZ, OPTYPE_Ind, None, 1, 0, 0), 
200  (('c3', 'ff'), 'jp', OPTYPE_imm16, None, None, None, 3, 1, 0), 
201  (('c40000', 'ff0000'), 'call', OPTYPE_Cond, COND_NZ, OPTYPE_imm16, None, 3, 1, 0), 
202  (('c5', 'ff'), 'push', OPTYPE_Reg, REG_BC, None, None, 1, 0, 0), 
203  (('c600', 'ff00'), 'add', OPTYPE_Reg, REG_A, OPTYPE_imm8, None, 2, 1, 0), 
204  (('c7', 'ff'), 'rst', OPTYPE_const, 0, None, None, 1, 0, 0), 
205  (('c8', 'ff'), 'ret', OPTYPE_Cond, COND_Z, None, None, 1, 0, 0), 
206  (('c9', 'ff'), 'ret', None, None, None, None, 1, 0, 0), 
207  (('ca', 'ff'), 'jp', OPTYPE_Cond, COND_Z, OPTYPE_Ind, None, 1, 0, 0), 
208  (('cb00', 'ffff'), 'rlc', OPTYPE_Reg, REG_B, None, None, 2, 0, 0), 
209  (('cb01', 'ffff'), 'rlc', OPTYPE_Reg, REG_C, None, None, 2, 0, 0), 
210  (('cb02', 'ffff'), 'rlc', OPTYPE_Reg, REG_D, None, None, 2, 0, 0), 
211  (('cb03', 'ffff'), 'rlc', OPTYPE_Reg, REG_E, None, None, 2, 0, 0), 
212  (('cb04', 'ffff'), 'rlc', OPTYPE_Reg, REG_H, None, None, 2, 0, 0), 
213  (('cb05', 'ffff'), 'rlc', OPTYPE_Reg, REG_L, None, None, 2, 0, 0), 
214  (('cb06', 'ffff'), 'rlc', OPTYPE_RegMem, REG_HL, None, None, 2, 0, 0), 
215  (('cb07', 'ffff'), 'rlc', OPTYPE_Reg, REG_A, None, None, 2, 0, 0), 
216  (('cb08', 'ffff'), 'rrc', OPTYPE_Reg, REG_B, None, None, 2, 0, 0), 
217  (('cb09', 'ffff'), 'rrc', OPTYPE_Reg, REG_C, None, None, 2, 0, 0), 
218  (('cb0a', 'ffff'), 'rrc', OPTYPE_Reg, REG_D, None, None, 2, 0, 0), 
219  (('cb0b', 'ffff'), 'rrc', OPTYPE_Reg, REG_E, None, None, 2, 0, 0), 
220  (('cb0c', 'ffff'), 'rrc', OPTYPE_Reg, REG_H, None, None, 2, 0, 0), 
221  (('cb0d', 'ffff'), 'rrc', OPTYPE_Reg, REG_L, None, None, 2, 0, 0), 
222  (('cb0e', 'ffff'), 'rrc', OPTYPE_RegMem, REG_HL, None, None, 2, 0, 0), 
223  (('cb0f', 'ffff'), 'rrc', OPTYPE_Reg, REG_A, None, None, 2, 0, 0), 
224  (('cb10', 'ffff'), 'rl', OPTYPE_Reg, REG_B, None, None, 2, 0, 0), 
225  (('cb11', 'ffff'), 'rl', OPTYPE_Reg, REG_C, None, None, 2, 0, 0), 
226  (('cb12', 'ffff'), 'rl', OPTYPE_Reg, REG_D, None, None, 2, 0, 0), 
227  (('cb13', 'ffff'), 'rl', OPTYPE_Reg, REG_E, None, None, 2, 0, 0), 
228  (('cb14', 'ffff'), 'rl', OPTYPE_Reg, REG_H, None, None, 2, 0, 0), 
229  (('cb15', 'ffff'), 'rl', OPTYPE_Reg, REG_L, None, None, 2, 0, 0), 
230  (('cb16', 'ffff'), 'rl', OPTYPE_RegMem, REG_HL, None, None, 2, 0, 0), 
231  (('cb17', 'ffff'), 'rl', OPTYPE_Reg, REG_A, None, None, 2, 0, 0), 
232  (('cb18', 'ffff'), 'rr', OPTYPE_Reg, REG_B, None, None, 2, 0, 0), 
233  (('cb19', 'ffff'), 'rr', OPTYPE_Reg, REG_C, None, None, 2, 0, 0), 
234  (('cb1a', 'ffff'), 'rr', OPTYPE_Reg, REG_D, None, None, 2, 0, 0), 
235  (('cb1b', 'ffff'), 'rr', OPTYPE_Reg, REG_E, None, None, 2, 0, 0), 
236  (('cb1c', 'ffff'), 'rr', OPTYPE_Reg, REG_H, None, None, 2, 0, 0), 
237  (('cb1d', 'ffff'), 'rr', OPTYPE_Reg, REG_L, None, None, 2, 0, 0), 
238  (('cb1e', 'ffff'), 'rr', OPTYPE_RegMem, REG_HL, None, None, 2, 0, 0), 
239  (('cb1f', 'ffff'), 'rr', OPTYPE_Reg, REG_A, None, None, 2, 0, 0), 
240  (('cb20', 'ffff'), 'sla', OPTYPE_Reg, REG_B, None, None, 2, 0, 0), 
241  (('cb21', 'ffff'), 'sla', OPTYPE_Reg, REG_C, None, None, 2, 0, 0), 
242  (('cb22', 'ffff'), 'sla', OPTYPE_Reg, REG_D, None, None, 2, 0, 0), 
243  (('cb23', 'ffff'), 'sla', OPTYPE_Reg, REG_E, None, None, 2, 0, 0), 
244  (('cb24', 'ffff'), 'sla', OPTYPE_Reg, REG_H, None, None, 2, 0, 0), 
245  (('cb25', 'ffff'), 'sla', OPTYPE_Reg, REG_L, None, None, 2, 0, 0), 
246  (('cb26', 'ffff'), 'sla', OPTYPE_RegMem, REG_HL, None, None, 2, 0, 0), 
247  (('cb27', 'ffff'), 'sla', OPTYPE_Reg, REG_A, None, None, 2, 0, 0), 
248  (('cb28', 'ffff'), 'sra', OPTYPE_Reg, REG_B, None, None, 2, 0, 0), 
249  (('cb29', 'ffff'), 'sra', OPTYPE_Reg, REG_C, None, None, 2, 0, 0), 
250  (('cb2a', 'ffff'), 'sra', OPTYPE_Reg, REG_D, None, None, 2, 0, 0), 
251  (('cb2b', 'ffff'), 'sra', OPTYPE_Reg, REG_E, None, None, 2, 0, 0), 
252  (('cb2c', 'ffff'), 'sra', OPTYPE_Reg, REG_H, None, None, 2, 0, 0), 
253  (('cb2d', 'ffff'), 'sra', OPTYPE_Reg, REG_L, None, None, 2, 0, 0), 
254  (('cb2e', 'ffff'), 'sra', OPTYPE_RegMem, REG_HL, None, None, 2, 0, 0), 
255  (('cb2f', 'ffff'), 'sra', OPTYPE_Reg, REG_A, None, None, 2, 0, 0), 
256  (('cb38', 'ffff'), 'srl', OPTYPE_Reg, REG_B, None, None, 2, 0, 0), 
257  (('cb39', 'ffff'), 'srl', OPTYPE_Reg, REG_C, None, None, 2, 0, 0), 
258  (('cb3a', 'ffff'), 'srl', OPTYPE_Reg, REG_D, None, None, 2, 0, 0), 
259  (('cb3b', 'ffff'), 'srl', OPTYPE_Reg, REG_E, None, None, 2, 0, 0), 
260  (('cb3c', 'ffff'), 'srl', OPTYPE_Reg, REG_H, None, None, 2, 0, 0), 
261  (('cb3d', 'ffff'), 'srl', OPTYPE_Reg, REG_L, None, None, 2, 0, 0), 
262  (('cb3e', 'ffff'), 'srl', OPTYPE_RegMem, REG_HL, None, None, 2, 0, 0), 
263  (('cb3f', 'ffff'), 'srl', OPTYPE_Reg, REG_A, None, None, 2, 0, 0), 
264  (('cb40', 'ffff'), 'bit', OPTYPE_const, 0, OPTYPE_Reg, REG_B, 2, 0, 0), 
265  (('cb41', 'ffff'), 'bit', OPTYPE_const, 0, OPTYPE_Reg, REG_C, 2, 0, 0), 
266  (('cb42', 'ffff'), 'bit', OPTYPE_const, 0, OPTYPE_Reg, REG_D, 2, 0, 0), 
267  (('cb43', 'ffff'), 'bit', OPTYPE_const, 0, OPTYPE_Reg, REG_E, 2, 0, 0), 
268  (('cb44', 'ffff'), 'bit', OPTYPE_const, 0, OPTYPE_Reg, REG_H, 2, 0, 0), 
269  (('cb45', 'ffff'), 'bit', OPTYPE_const, 0, OPTYPE_Reg, REG_L, 2, 0, 0), 
270  (('cb46', 'ffff'), 'bit', OPTYPE_const, 0, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
271  (('cb47', 'ffff'), 'bit', OPTYPE_const, 0, OPTYPE_Reg, REG_A, 2, 0, 0), 
272  (('cb48', 'ffff'), 'bit', OPTYPE_const, 1, OPTYPE_Reg, REG_B, 2, 0, 0), 
273  (('cb49', 'ffff'), 'bit', OPTYPE_const, 1, OPTYPE_Reg, REG_C, 2, 0, 0), 
274  (('cb4a', 'ffff'), 'bit', OPTYPE_const, 1, OPTYPE_Reg, REG_D, 2, 0, 0), 
275  (('cb4b', 'ffff'), 'bit', OPTYPE_const, 1, OPTYPE_Reg, REG_E, 2, 0, 0), 
276  (('cb4c', 'ffff'), 'bit', OPTYPE_const, 1, OPTYPE_Reg, REG_H, 2, 0, 0), 
277  (('cb4d', 'ffff'), 'bit', OPTYPE_const, 1, OPTYPE_Reg, REG_L, 2, 0, 0), 
278  (('cb4e', 'ffff'), 'bit', OPTYPE_const, 1, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
279  (('cb4f', 'ffff'), 'bit', OPTYPE_const, 1, OPTYPE_Reg, REG_A, 2, 0, 0), 
280  (('cb50', 'ffff'), 'bit', OPTYPE_const, 2, OPTYPE_Reg, REG_B, 2, 0, 0), 
281  (('cb51', 'ffff'), 'bit', OPTYPE_const, 2, OPTYPE_Reg, REG_C, 2, 0, 0), 
282  (('cb52', 'ffff'), 'bit', OPTYPE_const, 2, OPTYPE_Reg, REG_D, 2, 0, 0), 
283  (('cb53', 'ffff'), 'bit', OPTYPE_const, 2, OPTYPE_Reg, REG_E, 2, 0, 0), 
284  (('cb54', 'ffff'), 'bit', OPTYPE_const, 2, OPTYPE_Reg, REG_H, 2, 0, 0), 
285  (('cb55', 'ffff'), 'bit', OPTYPE_const, 2, OPTYPE_Reg, REG_L, 2, 0, 0), 
286  (('cb56', 'ffff'), 'bit', OPTYPE_const, 2, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
287  (('cb57', 'ffff'), 'bit', OPTYPE_const, 2, OPTYPE_Reg, REG_A, 2, 0, 0), 
288  (('cb58', 'ffff'), 'bit', OPTYPE_const, 3, OPTYPE_Reg, REG_B, 2, 0, 0), 
289  (('cb59', 'ffff'), 'bit', OPTYPE_const, 3, OPTYPE_Reg, REG_C, 2, 0, 0), 
290  (('cb5a', 'ffff'), 'bit', OPTYPE_const, 3, OPTYPE_Reg, REG_D, 2, 0, 0), 
291  (('cb5b', 'ffff'), 'bit', OPTYPE_const, 3, OPTYPE_Reg, REG_E, 2, 0, 0), 
292  (('cb5c', 'ffff'), 'bit', OPTYPE_const, 3, OPTYPE_Reg, REG_H, 2, 0, 0), 
293  (('cb5d', 'ffff'), 'bit', OPTYPE_const, 3, OPTYPE_Reg, REG_L, 2, 0, 0), 
294  (('cb5e', 'ffff'), 'bit', OPTYPE_const, 3, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
295  (('cb5f', 'ffff'), 'bit', OPTYPE_const, 3, OPTYPE_Reg, REG_A, 2, 0, 0), 
296  (('cb60', 'ffff'), 'bit', OPTYPE_const, 4, OPTYPE_Reg, REG_B, 2, 0, 0), 
297  (('cb61', 'ffff'), 'bit', OPTYPE_const, 4, OPTYPE_Reg, REG_C, 2, 0, 0), 
298  (('cb62', 'ffff'), 'bit', OPTYPE_const, 4, OPTYPE_Reg, REG_D, 2, 0, 0), 
299  (('cb63', 'ffff'), 'bit', OPTYPE_const, 4, OPTYPE_Reg, REG_E, 2, 0, 0), 
300  (('cb64', 'ffff'), 'bit', OPTYPE_const, 4, OPTYPE_Reg, REG_H, 2, 0, 0), 
301  (('cb65', 'ffff'), 'bit', OPTYPE_const, 4, OPTYPE_Reg, REG_L, 2, 0, 0), 
302  (('cb66', 'ffff'), 'bit', OPTYPE_const, 4, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
303  (('cb67', 'ffff'), 'bit', OPTYPE_const, 4, OPTYPE_Reg, REG_A, 2, 0, 0), 
304  (('cb68', 'ffff'), 'bit', OPTYPE_const, 5, OPTYPE_Reg, REG_B, 2, 0, 0), 
305  (('cb69', 'ffff'), 'bit', OPTYPE_const, 5, OPTYPE_Reg, REG_C, 2, 0, 0), 
306  (('cb6a', 'ffff'), 'bit', OPTYPE_const, 5, OPTYPE_Reg, REG_D, 2, 0, 0), 
307  (('cb6b', 'ffff'), 'bit', OPTYPE_const, 5, OPTYPE_Reg, REG_E, 2, 0, 0), 
308  (('cb6c', 'ffff'), 'bit', OPTYPE_const, 5, OPTYPE_Reg, REG_H, 2, 0, 0), 
309  (('cb6d', 'ffff'), 'bit', OPTYPE_const, 5, OPTYPE_Reg, REG_L, 2, 0, 0), 
310  (('cb6e', 'ffff'), 'bit', OPTYPE_const, 5, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
311  (('cb6f', 'ffff'), 'bit', OPTYPE_const, 5, OPTYPE_Reg, REG_A, 2, 0, 0), 
312  (('cb70', 'ffff'), 'bit', OPTYPE_const, 6, OPTYPE_Reg, REG_B, 2, 0, 0), 
313  (('cb71', 'ffff'), 'bit', OPTYPE_const, 6, OPTYPE_Reg, REG_C, 2, 0, 0), 
314  (('cb72', 'ffff'), 'bit', OPTYPE_const, 6, OPTYPE_Reg, REG_D, 2, 0, 0), 
315  (('cb73', 'ffff'), 'bit', OPTYPE_const, 6, OPTYPE_Reg, REG_E, 2, 0, 0), 
316  (('cb74', 'ffff'), 'bit', OPTYPE_const, 6, OPTYPE_Reg, REG_H, 2, 0, 0), 
317  (('cb75', 'ffff'), 'bit', OPTYPE_const, 6, OPTYPE_Reg, REG_L, 2, 0, 0), 
318  (('cb76', 'ffff'), 'bit', OPTYPE_const, 6, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
319  (('cb77', 'ffff'), 'bit', OPTYPE_const, 6, OPTYPE_Reg, REG_A, 2, 0, 0), 
320  (('cb78', 'ffff'), 'bit', OPTYPE_const, 7, OPTYPE_Reg, REG_B, 2, 0, 0), 
321  (('cb79', 'ffff'), 'bit', OPTYPE_const, 7, OPTYPE_Reg, REG_C, 2, 0, 0), 
322  (('cb7a', 'ffff'), 'bit', OPTYPE_const, 7, OPTYPE_Reg, REG_D, 2, 0, 0), 
323  (('cb7b', 'ffff'), 'bit', OPTYPE_const, 7, OPTYPE_Reg, REG_E, 2, 0, 0), 
324  (('cb7c', 'ffff'), 'bit', OPTYPE_const, 7, OPTYPE_Reg, REG_H, 2, 0, 0), 
325  (('cb7d', 'ffff'), 'bit', OPTYPE_const, 7, OPTYPE_Reg, REG_L, 2, 0, 0), 
326  (('cb7e', 'ffff'), 'bit', OPTYPE_const, 7, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
327  (('cb7f', 'ffff'), 'bit', OPTYPE_const, 7, OPTYPE_Reg, REG_A, 2, 0, 0), 
328  (('cb80', 'ffff'), 'res', OPTYPE_const, 0, OPTYPE_Reg, REG_B, 2, 0, 0), 
329  (('cb81', 'ffff'), 'res', OPTYPE_const, 0, OPTYPE_Reg, REG_C, 2, 0, 0), 
330  (('cb82', 'ffff'), 'res', OPTYPE_const, 0, OPTYPE_Reg, REG_D, 2, 0, 0), 
331  (('cb83', 'ffff'), 'res', OPTYPE_const, 0, OPTYPE_Reg, REG_E, 2, 0, 0), 
332  (('cb84', 'ffff'), 'res', OPTYPE_const, 0, OPTYPE_Reg, REG_H, 2, 0, 0), 
333  (('cb85', 'ffff'), 'res', OPTYPE_const, 0, OPTYPE_Reg, REG_L, 2, 0, 0), 
334  (('cb86', 'ffff'), 'res', OPTYPE_const, 0, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
335  (('cb87', 'ffff'), 'res', OPTYPE_const, 0, OPTYPE_Reg, REG_A, 2, 0, 0), 
336  (('cb88', 'ffff'), 'res', OPTYPE_const, 1, OPTYPE_Reg, REG_B, 2, 0, 0), 
337  (('cb89', 'ffff'), 'res', OPTYPE_const, 1, OPTYPE_Reg, REG_C, 2, 0, 0), 
338  (('cb8a', 'ffff'), 'res', OPTYPE_const, 1, OPTYPE_Reg, REG_D, 2, 0, 0), 
339  (('cb8b', 'ffff'), 'res', OPTYPE_const, 1, OPTYPE_Reg, REG_E, 2, 0, 0), 
340  (('cb8c', 'ffff'), 'res', OPTYPE_const, 1, OPTYPE_Reg, REG_H, 2, 0, 0), 
341  (('cb8d', 'ffff'), 'res', OPTYPE_const, 1, OPTYPE_Reg, REG_L, 2, 0, 0), 
342  (('cb8e', 'ffff'), 'res', OPTYPE_const, 1, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
343  (('cb8f', 'ffff'), 'res', OPTYPE_const, 1, OPTYPE_Reg, REG_A, 2, 0, 0), 
344  (('cb90', 'ffff'), 'res', OPTYPE_const, 2, OPTYPE_Reg, REG_B, 2, 0, 0), 
345  (('cb91', 'ffff'), 'res', OPTYPE_const, 2, OPTYPE_Reg, REG_C, 2, 0, 0), 
346  (('cb92', 'ffff'), 'res', OPTYPE_const, 2, OPTYPE_Reg, REG_D, 2, 0, 0), 
347  (('cb93', 'ffff'), 'res', OPTYPE_const, 2, OPTYPE_Reg, REG_E, 2, 0, 0), 
348  (('cb94', 'ffff'), 'res', OPTYPE_const, 2, OPTYPE_Reg, REG_H, 2, 0, 0), 
349  (('cb95', 'ffff'), 'res', OPTYPE_const, 2, OPTYPE_Reg, REG_L, 2, 0, 0), 
350  (('cb96', 'ffff'), 'res', OPTYPE_const, 2, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
351  (('cb97', 'ffff'), 'res', OPTYPE_const, 2, OPTYPE_Reg, REG_A, 2, 0, 0), 
352  (('cb98', 'ffff'), 'res', OPTYPE_const, 3, OPTYPE_Reg, REG_B, 2, 0, 0), 
353  (('cb99', 'ffff'), 'res', OPTYPE_const, 3, OPTYPE_Reg, REG_C, 2, 0, 0), 
354  (('cb9a', 'ffff'), 'res', OPTYPE_const, 3, OPTYPE_Reg, REG_D, 2, 0, 0), 
355  (('cb9b', 'ffff'), 'res', OPTYPE_const, 3, OPTYPE_Reg, REG_E, 2, 0, 0), 
356  (('cb9c', 'ffff'), 'res', OPTYPE_const, 3, OPTYPE_Reg, REG_H, 2, 0, 0), 
357  (('cb9d', 'ffff'), 'res', OPTYPE_const, 3, OPTYPE_Reg, REG_L, 2, 0, 0), 
358  (('cb9e', 'ffff'), 'res', OPTYPE_const, 3, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
359  (('cb9f', 'ffff'), 'res', OPTYPE_const, 3, OPTYPE_Reg, REG_A, 2, 0, 0), 
360  (('cba0', 'ffff'), 'res', OPTYPE_const, 4, OPTYPE_Reg, REG_B, 2, 0, 0), 
361  (('cba1', 'ffff'), 'res', OPTYPE_const, 4, OPTYPE_Reg, REG_C, 2, 0, 0), 
362  (('cba2', 'ffff'), 'res', OPTYPE_const, 4, OPTYPE_Reg, REG_D, 2, 0, 0), 
363  (('cba3', 'ffff'), 'res', OPTYPE_const, 4, OPTYPE_Reg, REG_E, 2, 0, 0), 
364  (('cba4', 'ffff'), 'res', OPTYPE_const, 4, OPTYPE_Reg, REG_H, 2, 0, 0), 
365  (('cba5', 'ffff'), 'res', OPTYPE_const, 4, OPTYPE_Reg, REG_L, 2, 0, 0), 
366  (('cba6', 'ffff'), 'res', OPTYPE_const, 4, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
367  (('cba7', 'ffff'), 'res', OPTYPE_const, 4, OPTYPE_Reg, REG_A, 2, 0, 0), 
368  (('cba8', 'ffff'), 'res', OPTYPE_const, 5, OPTYPE_Reg, REG_B, 2, 0, 0), 
369  (('cba9', 'ffff'), 'res', OPTYPE_const, 5, OPTYPE_Reg, REG_C, 2, 0, 0), 
370  (('cbaa', 'ffff'), 'res', OPTYPE_const, 5, OPTYPE_Reg, REG_D, 2, 0, 0), 
371  (('cbab', 'ffff'), 'res', OPTYPE_const, 5, OPTYPE_Reg, REG_E, 2, 0, 0), 
372  (('cbac', 'ffff'), 'res', OPTYPE_const, 5, OPTYPE_Reg, REG_H, 2, 0, 0), 
373  (('cbad', 'ffff'), 'res', OPTYPE_const, 5, OPTYPE_Reg, REG_L, 2, 0, 0), 
374  (('cbae', 'ffff'), 'res', OPTYPE_const, 5, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
375  (('cbaf', 'ffff'), 'res', OPTYPE_const, 5, OPTYPE_Reg, REG_A, 2, 0, 0), 
376  (('cbb0', 'ffff'), 'res', OPTYPE_const, 6, OPTYPE_Reg, REG_B, 2, 0, 0), 
377  (('cbb1', 'ffff'), 'res', OPTYPE_const, 6, OPTYPE_Reg, REG_C, 2, 0, 0), 
378  (('cbb2', 'ffff'), 'res', OPTYPE_const, 6, OPTYPE_Reg, REG_D, 2, 0, 0), 
379  (('cbb3', 'ffff'), 'res', OPTYPE_const, 6, OPTYPE_Reg, REG_E, 2, 0, 0), 
380  (('cbb4', 'ffff'), 'res', OPTYPE_const, 6, OPTYPE_Reg, REG_H, 2, 0, 0), 
381  (('cbb5', 'ffff'), 'res', OPTYPE_const, 6, OPTYPE_Reg, REG_L, 2, 0, 0), 
382  (('cbb6', 'ffff'), 'res', OPTYPE_const, 6, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
383  (('cbb7', 'ffff'), 'res', OPTYPE_const, 6, OPTYPE_Reg, REG_A, 2, 0, 0), 
384  (('cbb8', 'ffff'), 'res', OPTYPE_const, 7, OPTYPE_Reg, REG_B, 2, 0, 0), 
385  (('cbb9', 'ffff'), 'res', OPTYPE_const, 7, OPTYPE_Reg, REG_C, 2, 0, 0), 
386  (('cbba', 'ffff'), 'res', OPTYPE_const, 7, OPTYPE_Reg, REG_D, 2, 0, 0), 
387  (('cbbb', 'ffff'), 'res', OPTYPE_const, 7, OPTYPE_Reg, REG_E, 2, 0, 0), 
388  (('cbbc', 'ffff'), 'res', OPTYPE_const, 7, OPTYPE_Reg, REG_H, 2, 0, 0), 
389  (('cbbd', 'ffff'), 'res', OPTYPE_const, 7, OPTYPE_Reg, REG_L, 2, 0, 0), 
390  (('cbbe', 'ffff'), 'res', OPTYPE_const, 7, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
391  (('cbbf', 'ffff'), 'res', OPTYPE_const, 7, OPTYPE_Reg, REG_A, 2, 0, 0), 
392  (('cbc0', 'ffff'), 'set', OPTYPE_const, 0, OPTYPE_Reg, REG_B, 2, 0, 0), 
393  (('cbc1', 'ffff'), 'set', OPTYPE_const, 0, OPTYPE_Reg, REG_C, 2, 0, 0), 
394  (('cbc2', 'ffff'), 'set', OPTYPE_const, 0, OPTYPE_Reg, REG_D, 2, 0, 0), 
395  (('cbc3', 'ffff'), 'set', OPTYPE_const, 0, OPTYPE_Reg, REG_E, 2, 0, 0), 
396  (('cbc4', 'ffff'), 'set', OPTYPE_const, 0, OPTYPE_Reg, REG_H, 2, 0, 0), 
397  (('cbc5', 'ffff'), 'set', OPTYPE_const, 0, OPTYPE_Reg, REG_L, 2, 0, 0), 
398  (('cbc6', 'ffff'), 'set', OPTYPE_const, 0, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
399  (('cbc7', 'ffff'), 'set', OPTYPE_const, 0, OPTYPE_Reg, REG_A, 2, 0, 0), 
400  (('cbc8', 'ffff'), 'set', OPTYPE_const, 1, OPTYPE_Reg, REG_B, 2, 0, 0), 
401  (('cbc9', 'ffff'), 'set', OPTYPE_const, 1, OPTYPE_Reg, REG_C, 2, 0, 0), 
402  (('cbca', 'ffff'), 'set', OPTYPE_const, 1, OPTYPE_Reg, REG_D, 2, 0, 0), 
403  (('cbcb', 'ffff'), 'set', OPTYPE_const, 1, OPTYPE_Reg, REG_E, 2, 0, 0), 
404  (('cbcc', 'ffff'), 'set', OPTYPE_const, 1, OPTYPE_Reg, REG_H, 2, 0, 0), 
405  (('cbcd', 'ffff'), 'set', OPTYPE_const, 1, OPTYPE_Reg, REG_L, 2, 0, 0), 
406  (('cbce', 'ffff'), 'set', OPTYPE_const, 1, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
407  (('cbcf', 'ffff'), 'set', OPTYPE_const, 1, OPTYPE_Reg, REG_A, 2, 0, 0), 
408  (('cbd0', 'ffff'), 'set', OPTYPE_const, 2, OPTYPE_Reg, REG_B, 2, 0, 0), 
409  (('cbd1', 'ffff'), 'set', OPTYPE_const, 2, OPTYPE_Reg, REG_C, 2, 0, 0), 
410  (('cbd2', 'ffff'), 'set', OPTYPE_const, 2, OPTYPE_Reg, REG_D, 2, 0, 0), 
411  (('cbd3', 'ffff'), 'set', OPTYPE_const, 2, OPTYPE_Reg, REG_E, 2, 0, 0), 
412  (('cbd4', 'ffff'), 'set', OPTYPE_const, 2, OPTYPE_Reg, REG_H, 2, 0, 0), 
413  (('cbd5', 'ffff'), 'set', OPTYPE_const, 2, OPTYPE_Reg, REG_L, 2, 0, 0), 
414  (('cbd6', 'ffff'), 'set', OPTYPE_const, 2, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
415  (('cbd7', 'ffff'), 'set', OPTYPE_const, 2, OPTYPE_Reg, REG_A, 2, 0, 0), 
416  (('cbd8', 'ffff'), 'set', OPTYPE_const, 3, OPTYPE_Reg, REG_B, 2, 0, 0), 
417  (('cbd9', 'ffff'), 'set', OPTYPE_const, 3, OPTYPE_Reg, REG_C, 2, 0, 0), 
418  (('cbda', 'ffff'), 'set', OPTYPE_const, 3, OPTYPE_Reg, REG_D, 2, 0, 0), 
419  (('cbdb', 'ffff'), 'set', OPTYPE_const, 3, OPTYPE_Reg, REG_E, 2, 0, 0), 
420  (('cbdc', 'ffff'), 'set', OPTYPE_const, 3, OPTYPE_Reg, REG_H, 2, 0, 0), 
421  (('cbdd', 'ffff'), 'set', OPTYPE_const, 3, OPTYPE_Reg, REG_L, 2, 0, 0), 
422  (('cbde', 'ffff'), 'set', OPTYPE_const, 3, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
423  (('cbdf', 'ffff'), 'set', OPTYPE_const, 3, OPTYPE_Reg, REG_A, 2, 0, 0), 
424  (('cbe0', 'ffff'), 'set', OPTYPE_const, 4, OPTYPE_Reg, REG_B, 2, 0, 0), 
425  (('cbe1', 'ffff'), 'set', OPTYPE_const, 4, OPTYPE_Reg, REG_C, 2, 0, 0), 
426  (('cbe2', 'ffff'), 'set', OPTYPE_const, 4, OPTYPE_Reg, REG_D, 2, 0, 0), 
427  (('cbe3', 'ffff'), 'set', OPTYPE_const, 4, OPTYPE_Reg, REG_E, 2, 0, 0), 
428  (('cbe4', 'ffff'), 'set', OPTYPE_const, 4, OPTYPE_Reg, REG_H, 2, 0, 0), 
429  (('cbe5', 'ffff'), 'set', OPTYPE_const, 4, OPTYPE_Reg, REG_L, 2, 0, 0), 
430  (('cbe6', 'ffff'), 'set', OPTYPE_const, 4, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
431  (('cbe7', 'ffff'), 'set', OPTYPE_const, 4, OPTYPE_Reg, REG_A, 2, 0, 0), 
432  (('cbe8', 'ffff'), 'set', OPTYPE_const, 5, OPTYPE_Reg, REG_B, 2, 0, 0), 
433  (('cbe9', 'ffff'), 'set', OPTYPE_const, 5, OPTYPE_Reg, REG_C, 2, 0, 0), 
434  (('cbea', 'ffff'), 'set', OPTYPE_const, 5, OPTYPE_Reg, REG_D, 2, 0, 0), 
435  (('cbeb', 'ffff'), 'set', OPTYPE_const, 5, OPTYPE_Reg, REG_E, 2, 0, 0), 
436  (('cbec', 'ffff'), 'set', OPTYPE_const, 5, OPTYPE_Reg, REG_H, 2, 0, 0), 
437  (('cbed', 'ffff'), 'set', OPTYPE_const, 5, OPTYPE_Reg, REG_L, 2, 0, 0), 
438  (('cbee', 'ffff'), 'set', OPTYPE_const, 5, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
439  (('cbef', 'ffff'), 'set', OPTYPE_const, 5, OPTYPE_Reg, REG_A, 2, 0, 0), 
440  (('cbf0', 'ffff'), 'set', OPTYPE_const, 6, OPTYPE_Reg, REG_B, 2, 0, 0), 
441  (('cbf1', 'ffff'), 'set', OPTYPE_const, 6, OPTYPE_Reg, REG_C, 2, 0, 0), 
442  (('cbf2', 'ffff'), 'set', OPTYPE_const, 6, OPTYPE_Reg, REG_D, 2, 0, 0), 
443  (('cbf3', 'ffff'), 'set', OPTYPE_const, 6, OPTYPE_Reg, REG_E, 2, 0, 0), 
444  (('cbf4', 'ffff'), 'set', OPTYPE_const, 6, OPTYPE_Reg, REG_H, 2, 0, 0), 
445  (('cbf5', 'ffff'), 'set', OPTYPE_const, 6, OPTYPE_Reg, REG_L, 2, 0, 0), 
446  (('cbf6', 'ffff'), 'set', OPTYPE_const, 6, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
447  (('cbf7', 'ffff'), 'set', OPTYPE_const, 6, OPTYPE_Reg, REG_A, 2, 0, 0), 
448  (('cbf8', 'ffff'), 'set', OPTYPE_const, 7, OPTYPE_Reg, REG_B, 2, 0, 0), 
449  (('cbf9', 'ffff'), 'set', OPTYPE_const, 7, OPTYPE_Reg, REG_C, 2, 0, 0), 
450  (('cbfa', 'ffff'), 'set', OPTYPE_const, 7, OPTYPE_Reg, REG_D, 2, 0, 0), 
451  (('cbfb', 'ffff'), 'set', OPTYPE_const, 7, OPTYPE_Reg, REG_E, 2, 0, 0), 
452  (('cbfc', 'ffff'), 'set', OPTYPE_const, 7, OPTYPE_Reg, REG_H, 2, 0, 0), 
453  (('cbfd', 'ffff'), 'set', OPTYPE_const, 7, OPTYPE_Reg, REG_L, 2, 0, 0), 
454  (('cbfe', 'ffff'), 'set', OPTYPE_const, 7, OPTYPE_RegMem, REG_HL, 2, 0, 0), 
455  (('cbff', 'ffff'), 'set', OPTYPE_const, 7, OPTYPE_Reg, REG_A, 2, 0, 0), 
456  (('cc0000', 'ff0000'), 'call', OPTYPE_Cond, COND_Z, OPTYPE_imm16, None, 3, 1, 0), 
457  (('cd0000', 'ff0000'), 'call', OPTYPE_imm16, None, None, None, 3, 1, 0), 
458  (('ce00', 'ff00'), 'adc', OPTYPE_Reg, REG_A, OPTYPE_imm8, None, 2, 1, 0), 
459  (('cf', 'ff'), 'rst', OPTYPE_const, 8, None, None, 1, 0, 0), 
460  (('d0', 'ff'), 'ret', OPTYPE_Cond, COND_NC, None, None, 1, 0, 0), 
461  (('d1', 'ff'), 'pop', OPTYPE_Reg, REG_DE, None, None, 1, 0, 0), 
462  (('d2', 'ff'), 'jp', OPTYPE_Cond, COND_NC, OPTYPE_Ind, None, 1, 0, 0), 
463  (('d300', 'ff00'), 'out', OPTYPE_immmem8, None, OPTYPE_Reg, REG_A, 2, 1, 0), 
464  (('d40000', 'ff0000'), 'call', OPTYPE_Cond, COND_NC, OPTYPE_imm16, None, 3, 1, 0), 
465  (('d40000', 'ff0000'), 'call', OPTYPE_Cond, COND_NC, OPTYPE_imm16, None, 3, 1, 0), 
466  (('d5', 'ff'), 'push', OPTYPE_Reg, REG_DE, None, None, 1, 0, 0), 
467  (('d600', 'ff00'), 'sub', OPTYPE_imm8, None, None, None, 2, 1, 0), 
468  (('d7', 'ff'), 'rst', OPTYPE_const, 16, None, None, 1, 0, 0), 
469  (('d8', 'ff'), 'ret', OPTYPE_Reg, REG_C, None, None, 1, 0, 0), 
470  (('d9', 'ff'), 'exx', None, None, None, None, 1, 0, 0), 
471  (('da', 'ff'), 'jp', OPTYPE_Reg, REG_C, OPTYPE_Ind, None, 1, 0, 0), 
472  (('db00', 'ff00'), 'in', OPTYPE_Reg, REG_A, OPTYPE_immmem8, None, 2, 1, 0), 
473  (('dc0000', 'ff0000'), 'call', OPTYPE_Reg, REG_C, OPTYPE_imm16, None, 3, 1, 0), 
474  (('dd09', 'ffff'), 'add', OPTYPE_Reg, REG_IX, OPTYPE_Reg, REG_BC, 2, 0, 0), 
475  (('dd19', 'ffff'), 'add', OPTYPE_Reg, REG_IX, OPTYPE_Reg, REG_DE, 2, 0, 0), 
476  (('dd210000', 'ffff0000'), 'ld', OPTYPE_Reg, REG_IX, OPTYPE_imm16, None, 4, 2, 0), 
477  (('dd220000', 'ffff0000'), 'ld', OPTYPE_immmem16, None, OPTYPE_Reg, REG_IX, 4, 2, 0), 
478  (('dd23', 'ffff'), 'inc', OPTYPE_Reg, REG_IX, None, None, 2, 0, 0), 
479  (('dd29', 'ffff'), 'add', OPTYPE_Reg, REG_IX, OPTYPE_Reg, REG_IX, 2, 0, 0), 
480  (('dd2a0000', 'ffff0000'), 'ld', OPTYPE_Reg, REG_IX, OPTYPE_immmem16, None, 4, 2, 0), 
481  (('dd2b', 'ffff'), 'dec', OPTYPE_Reg, REG_IX, None, None, 2, 0, 0), 
482  (('dd3400', 'ffff00'), 'inc', OPTYPE_RegMemDisp, REG_IX, None, None, 3, 2, 0), 
483  (('dd3500', 'ffff00'), 'dec', OPTYPE_RegMemDisp, REG_IX, None, None, 3, 2, 0), 
484  (('dd360000', 'ffff0000'), 'ld', OPTYPE_RegMemDisp, REG_IX, OPTYPE_imm8, None, 4, 2, 0), 
485  (('dd39', 'ffff'), 'add', OPTYPE_Reg, REG_IX, OPTYPE_Reg, REG_SP, 2, 0, 0), 
486  (('dd4600', 'ffff00'), 'ld', OPTYPE_Reg, REG_B, OPTYPE_RegMemDisp, REG_IX, 3, 2, 0), 
487  (('dd4e00', 'ffff00'), 'ld', OPTYPE_Reg, REG_C, OPTYPE_RegMemDisp, REG_IX, 3, 2, 0), 
488  (('dd5600', 'ffff00'), 'ld', OPTYPE_Reg, REG_D, OPTYPE_RegMemDisp, REG_IX, 3, 2, 0), 
489  (('dd5e00', 'ffff00'), 'ld', OPTYPE_Reg, REG_E, OPTYPE_RegMemDisp, REG_IX, 3, 2, 0), 
490  (('dd6600', 'ffff00'), 'ld', OPTYPE_Reg, REG_H, OPTYPE_RegMemDisp, REG_IX, 3, 2, 0), 
491  (('dd6e00', 'ffff00'), 'ld', OPTYPE_Reg, REG_L, OPTYPE_RegMemDisp, REG_IX, 3, 2, 0), 
492  (('dd7000', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IX, OPTYPE_Reg, REG_B, 3, 2, 0), 
493  (('dd7100', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IX, OPTYPE_Reg, REG_C, 3, 2, 0), 
494  (('dd7200', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IX, OPTYPE_Reg, REG_D, 3, 2, 0), 
495  (('dd7300', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IX, OPTYPE_Reg, REG_E, 3, 2, 0), 
496  (('dd7400', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IX, OPTYPE_Reg, REG_H, 3, 2, 0), 
497  (('dd7500', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IX, OPTYPE_Reg, REG_L, 3, 2, 0), 
498  (('dd7700', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IX, OPTYPE_Reg, REG_A, 3, 2, 0), 
499  (('dd7e00', 'ffff00'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_RegMemDisp, REG_IX, 3, 2, 0), 
500  (('dd8600', 'ffff00'), 'add', OPTYPE_Reg, REG_A, OPTYPE_RegMemDisp, REG_IX, 3, 2, 0), 
501  (('dd8e00', 'ffff00'), 'adc', OPTYPE_Reg, REG_A, OPTYPE_RegMemDisp, REG_IX, 3, 2, 0), 
502  (('dd9600', 'ffff00'), 'sub', OPTYPE_RegMemDisp, REG_IX, None, None, 3, 2, 0), 
503  (('dd9e00', 'ffff00'), 'sbc', OPTYPE_Reg, REG_A, OPTYPE_RegMemDisp, REG_IX, 3, 2, 0), 
504  (('dda600', 'ffff00'), 'and', OPTYPE_RegMemDisp, REG_IX, None, None, 3, 2, 0), 
505  (('ddae00', 'ffff00'), 'xor', OPTYPE_RegMemDisp, REG_IX, None, None, 3, 2, 0), 
506  (('ddb600', 'ffff00'), 'or', OPTYPE_RegMemDisp, REG_IX, None, None, 3, 2, 0), 
507  (('ddbe00', 'ffff00'), 'cp', OPTYPE_RegMemDisp, REG_IX, None, None, 3, 2, 0), 
508  (('ddcb0006', 'ffff00ff'), 'rlc', OPTYPE_RegMemDisp, REG_IX, None, None, 4, 2, 0), 
509  (('ddcb000e', 'ffff00ff'), 'rrc', OPTYPE_RegMemDisp, REG_IX, None, None, 4, 2, 0), 
510  (('ddcb0016', 'ffff00ff'), 'rl', OPTYPE_RegMemDisp, REG_IX, None, None, 4, 2, 0), 
511  (('ddcb001e', 'ffff00ff'), 'rr', OPTYPE_RegMemDisp, REG_IX, None, None, 4, 2, 0), 
512  (('ddcb0026', 'ffff00ff'), 'sla', OPTYPE_RegMemDisp, REG_IX, None, None, 4, 2, 0), 
513  (('ddcb002e', 'ffff00ff'), 'sra', OPTYPE_RegMemDisp, REG_IX, None, None, 4, 2, 0), 
514  (('ddcb0046', 'ffff00ff'), 'bit', OPTYPE_const, 0, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
515  (('ddcb004e', 'ffff00ff'), 'bit', OPTYPE_const, 1, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
516  (('ddcb0056', 'ffff00ff'), 'bit', OPTYPE_const, 2, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
517  (('ddcb005e', 'ffff00ff'), 'bit', OPTYPE_const, 3, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
518  (('ddcb0066', 'ffff00ff'), 'bit', OPTYPE_const, 4, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
519  (('ddcb006e', 'ffff00ff'), 'bit', OPTYPE_const, 5, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
520  (('ddcb0076', 'ffff00ff'), 'bit', OPTYPE_const, 6, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
521  (('ddcb007e', 'ffff00ff'), 'bit', OPTYPE_const, 7, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
522  (('ddcb0086', 'ffff00ff'), 'res', OPTYPE_const, 0, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
523  (('ddcb008e', 'ffff00ff'), 'res', OPTYPE_const, 1, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
524  (('ddcb0096', 'ffff00ff'), 'res', OPTYPE_const, 2, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
525  (('ddcb009e', 'ffff00ff'), 'res', OPTYPE_const, 3, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
526  (('ddcb00a6', 'ffff00ff'), 'res', OPTYPE_const, 4, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
527  (('ddcb00ae', 'ffff00ff'), 'res', OPTYPE_const, 5, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
528  (('ddcb00b6', 'ffff00ff'), 'res', OPTYPE_const, 6, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
529  (('ddcb00be', 'ffff00ff'), 'res', OPTYPE_const, 7, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
530  (('ddcb00c6', 'ffff00ff'), 'set', OPTYPE_const, 0, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
531  (('ddcb00ce', 'ffff00ff'), 'set', OPTYPE_const, 1, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
532  (('ddcb00d6', 'ffff00ff'), 'set', OPTYPE_const, 2, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
533  (('ddcb00de', 'ffff00ff'), 'set', OPTYPE_const, 3, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
534  (('ddcb00e6', 'ffff00ff'), 'set', OPTYPE_const, 4, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
535  (('ddcb00ee', 'ffff00ff'), 'set', OPTYPE_const, 5, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
536  (('ddcb00f6', 'ffff00ff'), 'set', OPTYPE_const, 6, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
537  (('ddcb00fe', 'ffff00ff'), 'set', OPTYPE_const, 7, OPTYPE_RegMemDisp, REG_IX, 4, 2, 0), 
538  (('dde1', 'ffff'), 'pop', OPTYPE_Reg, REG_IX, None, None, 2, 0, 0), 
539  (('dde3', 'ffff'), 'ex', OPTYPE_RegMem, REG_SP, OPTYPE_Reg, REG_IX, 2, 0, 0), 
540  (('dde5', 'ffff'), 'push', OPTYPE_Reg, REG_IX, None, None, 2, 0, 0), 
541  (('dde9', 'ffff'), 'jp', OPTYPE_RegMem, REG_IX, None, None, 2, 0, 0), 
542  (('ddf9', 'ffff'), 'ld', OPTYPE_Reg, REG_SP, OPTYPE_Reg, REG_IX, 2, 0, 0), 
543  (('de00', 'ff00'), 'sbc', OPTYPE_Reg, REG_A, OPTYPE_imm8, None, 2, 1, 0), 
544  (('df', 'ff'), 'rst', OPTYPE_const, 24, None, None, 1, 0, 0), 
545  (('e0', 'ff'), 'ret', OPTYPE_Cond, COND_PO, None, None, 1, 0, 0), 
546  (('e1', 'ff'), 'pop', OPTYPE_Reg, REG_HL, None, None, 1, 0, 0), 
547  (('e2', 'ff'), 'jp', OPTYPE_Cond, COND_PO, OPTYPE_Ind, None, 1, 0, 0), 
548  (('e3', 'ff'), 'ex', OPTYPE_RegMem, REG_SP, OPTYPE_Reg, REG_HL, 1, 0, 0), 
549  (('e40000', 'ff0000'), 'call', OPTYPE_Cond, COND_PO, OPTYPE_imm16, None, 3, 1, 0), 
550  (('e5', 'ff'), 'push', OPTYPE_Reg, REG_HL, None, None, 1, 0, 0), 
551  (('e600', 'ff00'), 'and', OPTYPE_imm8, None, None, None, 2, 1, 0), 
552  (('e7', 'ff'), 'rst', OPTYPE_const, 32, None, None, 1, 0, 0), 
553  (('e8', 'ff'), 'ret', OPTYPE_Cond, COND_PE, None, None, 1, 0, 0), 
554  (('e9', 'ff'), 'jp', OPTYPE_RegMem, REG_HL, None, None, 1, 0, 0), 
555  (('ea', 'ff'), 'jp', OPTYPE_Cond, COND_PE, OPTYPE_Ind, None, 1, 0, 0), 
556  (('eb', 'ff'), 'ex', OPTYPE_Reg, REG_DE, OPTYPE_Reg, REG_HL, 1, 0, 0), 
557  (('ec0000', 'ff0000'), 'call', OPTYPE_Cond, COND_PE, OPTYPE_imm16, None, 3, 1, 0), 
558  (('ed40', 'ffff'), 'in', OPTYPE_Reg, REG_B, OPTYPE_RegMem, REG_C, 2, 0, 0), 
559  (('ed41', 'ffff'), 'out', OPTYPE_RegMem, REG_C, OPTYPE_Reg, REG_B, 2, 0, 0), 
560  (('ed42', 'ffff'), 'sbc', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_BC, 2, 0, 0), 
561  (('ed430000', 'ffff0000'), 'ld', OPTYPE_immmem16, None, OPTYPE_Reg, REG_BC, 4, 2, 0), 
562  (('ed44', 'ffff'), 'neg', None, None, None, None, 2, 0, 0), 
563  (('ed45', 'ffff'), 'retn', None, None, None, None, 2, 0, 0), 
564  (('ed46', 'ffff'), 'im', OPTYPE_const, 0, None, None, 2, 0, 0), 
565  (('ed47', 'ffff'), 'ld', OPTYPE_Reg, REG_I, OPTYPE_Reg, REG_A, 2, 0, 0), 
566  (('ed48', 'ffff'), 'in', OPTYPE_Reg, REG_C, OPTYPE_RegMem, REG_C, 2, 0, 0), 
567  (('ed49', 'ffff'), 'out', OPTYPE_RegMem, REG_C, OPTYPE_Reg, REG_C, 2, 0, 0), 
568  (('ed4a', 'ffff'), 'adc', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_BC, 2, 0, 0), 
569  (('ed4b0000', 'ffff0000'), 'ld', OPTYPE_Reg, REG_BC, OPTYPE_immmem16, None, 4, 2, 0), 
570  (('ed4d', 'ffff'), 'reti', None, None, None, None, 2, 0, 0), 
571  (('ed50', 'ffff'), 'in', OPTYPE_Reg, REG_D, OPTYPE_RegMem, REG_C, 2, 0, 0), 
572  (('ed51', 'ffff'), 'out', OPTYPE_RegMem, REG_C, OPTYPE_Reg, REG_D, 2, 0, 0), 
573  (('ed52', 'ffff'), 'sbc', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_DE, 2, 0, 0), 
574  (('ed530000', 'ffff0000'), 'ld', OPTYPE_immmem16, None, OPTYPE_Reg, REG_DE, 4, 2, 0), 
575  (('ed56', 'ffff'), 'im', OPTYPE_const, 1, None, None, 2, 0, 0), 
576  (('ed57', 'ffff'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_Reg, REG_I, 2, 0, 0), 
577  (('ed58', 'ffff'), 'in', OPTYPE_Reg, REG_E, OPTYPE_RegMem, REG_C, 2, 0, 0), 
578  (('ed59', 'ffff'), 'out', OPTYPE_RegMem, REG_C, OPTYPE_Reg, REG_E, 2, 0, 0), 
579  (('ed5a', 'ffff'), 'adc', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_DE, 2, 0, 0), 
580  (('ed5b0000', 'ffff0000'), 'ld', OPTYPE_Reg, REG_DE, OPTYPE_immmem16, None, 4, 2, 0), 
581  (('ed5e', 'ffff'), 'im', OPTYPE_const, 2, None, None, 2, 0, 0), 
582  (('ed60', 'ffff'), 'in', OPTYPE_Reg, REG_H, OPTYPE_RegMem, REG_C, 2, 0, 0), 
583  (('ed61', 'ffff'), 'out', OPTYPE_RegMem, REG_C, OPTYPE_Reg, REG_H, 2, 0, 0), 
584  (('ed62', 'ffff'), 'sbc', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_HL, 2, 0, 0), 
585  (('ed67', 'ffff'), 'rrd', None, None, None, None, 2, 0, 0), 
586  (('ed68', 'ffff'), 'in', OPTYPE_Reg, REG_L, OPTYPE_RegMem, REG_C, 2, 0, 0), 
587  (('ed69', 'ffff'), 'out', OPTYPE_RegMem, REG_C, OPTYPE_Reg, REG_L, 2, 0, 0), 
588  (('ed6a', 'ffff'), 'adc', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_HL, 2, 0, 0), 
589  (('ed6f', 'ffff'), 'rld', None, None, None, None, 2, 0, 0), 
590  (('ed72', 'ffff'), 'sbc', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_SP, 2, 0, 0), 
591  (('ed730000', 'ffff0000'), 'ld', OPTYPE_immmem16, None, OPTYPE_Reg, REG_SP, 4, 2, 0), 
592  (('ed78', 'ffff'), 'in', OPTYPE_Reg, REG_A, OPTYPE_RegMem, REG_C, 2, 0, 0), 
593  (('ed79', 'ffff'), 'out', OPTYPE_RegMem, REG_C, OPTYPE_Reg, REG_A, 2, 0, 0), 
594  (('ed7a', 'ffff'), 'adc', OPTYPE_Reg, REG_HL, OPTYPE_Reg, REG_SP, 2, 0, 0), 
595  (('ed7b0000', 'ffff0000'), 'ld', OPTYPE_Reg, REG_SP, OPTYPE_immmem16, None, 4, 2, 0), 
596  (('eda0', 'ffff'), 'ldi', None, None, None, None, 2, 0, 0), 
597  (('eda1', 'ffff'), 'cpi', None, None, None, None, 2, 0, 0), 
598  (('eda2', 'ffff'), 'ini', None, None, None, None, 2, 0, 0), 
599  (('eda3', 'ffff'), 'outi', None, None, None, None, 2, 0, 0), 
600  (('eda8', 'ffff'), 'ldd', None, None, None, None, 2, 0, 0), 
601  (('eda9', 'ffff'), 'cpd', None, None, None, None, 2, 0, 0), 
602  (('edaa', 'ffff'), 'ind', None, None, None, None, 2, 0, 0), 
603  (('edab', 'ffff'), 'outd', None, None, None, None, 2, 0, 0), 
604  (('edb0', 'ffff'), 'ldir', None, None, None, None, 2, 0, 0), 
605  (('edb1', 'ffff'), 'cpir', None, None, None, None, 2, 0, 0), 
606  (('edb2', 'ffff'), 'inir', None, None, None, None, 2, 0, 0), 
607  (('edb3', 'ffff'), 'otir', None, None, None, None, 2, 0, 0), 
608  (('edb8', 'ffff'), 'lddr', None, None, None, None, 2, 0, 0), 
609  (('edb9', 'ffff'), 'cpdr', None, None, None, None, 2, 0, 0), 
610  (('edba', 'ffff'), 'indr', None, None, None, None, 2, 0, 0), 
611  (('edbb', 'ffff'), 'otdr', None, None, None, None, 2, 0, 0), 
612  (('ee00', 'ff00'), 'xor', OPTYPE_imm8, None, None, None, 2, 1, 0), 
613  (('ef', 'ff'), 'rst', OPTYPE_const, 40, None, None, 1, 0, 0), 
614  (('f0', 'ff'), 'ret', OPTYPE_Cond, COND_P, None, None, 1, 0, 0), 
615  (('f1', 'ff'), 'pop', OPTYPE_Reg, REG_AF, None, None, 1, 0, 0), 
616  (('f2', 'ff'), 'jp', OPTYPE_Cond, COND_P, OPTYPE_Ind, None, 1, 0, 0), 
617  (('f3', 'ff'), 'di', None, None, None, None, 1, 0, 0), 
618  (('f40000', 'ff0000'), 'call', OPTYPE_Cond, COND_P, OPTYPE_imm16, None, 3, 1, 0), 
619  (('f5', 'ff'), 'push', OPTYPE_Reg, REG_AF, None, None, 1, 0, 0), 
620  (('f600', 'ff00'), 'or', OPTYPE_imm8, None, None, None, 2, 1, 0), 
621  (('f7', 'ff'), 'rst', OPTYPE_const, 48, None, None, 1, 0, 0), 
622  (('f8', 'ff'), 'ret', OPTYPE_Cond, COND_M, None, None, 1, 0, 0), 
623  (('f9', 'ff'), 'ld', OPTYPE_Reg, REG_SP, OPTYPE_Reg, REG_HL, 1, 0, 0), 
624  (('fa', 'ff'), 'jp', OPTYPE_Cond, COND_M, OPTYPE_Ind, None, 1, 0, 0), 
625  (('fb', 'ff'), 'ei', None, None, None, None, 1, 0, 0), 
626  (('fc0000', 'ff0000'), 'call', OPTYPE_Cond, COND_M, OPTYPE_imm16, None, 3, 1, 0), 
627  (('fd09', 'ffff'), 'add', OPTYPE_Reg, REG_IY, OPTYPE_Reg, REG_BC, 2, 0, 0), 
628  (('fd19', 'ffff'), 'add', OPTYPE_Reg, REG_IY, OPTYPE_Reg, REG_DE, 2, 0, 0), 
629  (('fd210000', 'ffff0000'), 'ld', OPTYPE_Reg, REG_IY, OPTYPE_imm16, None, 4, 2, 0), 
630  (('fd220000', 'ffff0000'), 'ld', OPTYPE_immmem16, None, OPTYPE_Reg, REG_IY, 4, 2, 0), 
631  (('fd23', 'ffff'), 'inc', OPTYPE_Reg, REG_IY, None, None, 2, 0, 0), 
632  (('fd29', 'ffff'), 'add', OPTYPE_Reg, REG_IY, OPTYPE_Reg, REG_IY, 2, 0, 0), 
633  (('fd2a0000', 'ffff0000'), 'ld', OPTYPE_Reg, REG_IY, OPTYPE_immmem16, None, 4, 2, 0), 
634  (('fd2b', 'ffff'), 'dec', OPTYPE_Reg, REG_IY, None, None, 2, 0, 0), 
635  (('fd3400', 'ffff00'), 'inc', OPTYPE_RegMemDisp, REG_IY, None, None, 3, 2, 0), 
636  (('fd3500', 'ffff00'), 'dec', OPTYPE_RegMemDisp, REG_IY, None, None, 3, 2, 0), 
637  (('fd360000', 'ffff0000'), 'ld', OPTYPE_RegMemDisp, REG_IY, OPTYPE_imm8, None, 4, 2, 0), 
638  (('fd39', 'ffff'), 'add', OPTYPE_Reg, REG_IY, OPTYPE_Reg, REG_SP, 2, 0, 0), 
639  (('fd4600', 'ffff00'), 'ld', OPTYPE_Reg, REG_B, OPTYPE_RegMemDisp, REG_IY, 3, 2, 0), 
640  (('fd4e00', 'ffff00'), 'ld', OPTYPE_Reg, REG_C, OPTYPE_RegMemDisp, REG_IY, 3, 2, 0), 
641  (('fd5600', 'ffff00'), 'ld', OPTYPE_Reg, REG_D, OPTYPE_RegMemDisp, REG_IY, 3, 2, 0), 
642  (('fd5e00', 'ffff00'), 'ld', OPTYPE_Reg, REG_E, OPTYPE_RegMemDisp, REG_IY, 3, 2, 0), 
643  (('fd6600', 'ffff00'), 'ld', OPTYPE_Reg, REG_H, OPTYPE_RegMemDisp, REG_IY, 3, 2, 0), 
644  (('fd6e00', 'ffff00'), 'ld', OPTYPE_Reg, REG_L, OPTYPE_RegMemDisp, REG_IY, 3, 2, 0), 
645  (('fd7000', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IY, OPTYPE_Reg, REG_B, 3, 2, 0), 
646  (('fd7100', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IY, OPTYPE_Reg, REG_C, 3, 2, 0), 
647  (('fd7200', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IY, OPTYPE_Reg, REG_D, 3, 2, 0), 
648  (('fd7300', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IY, OPTYPE_Reg, REG_E, 3, 2, 0), 
649  (('fd7400', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IY, OPTYPE_Reg, REG_H, 3, 2, 0), 
650  (('fd7500', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IY, OPTYPE_Reg, REG_L, 3, 2, 0), 
651  (('fd7700', 'ffff00'), 'ld', OPTYPE_RegMemDisp, REG_IY, OPTYPE_Reg, REG_A, 3, 2, 0), 
652  (('fd7e00', 'ffff00'), 'ld', OPTYPE_Reg, REG_A, OPTYPE_RegMemDisp, REG_IY, 3, 2, 0), 
653  (('fd8600', 'ffff00'), 'add', OPTYPE_Reg, REG_A, OPTYPE_RegMemDisp, REG_IY, 3, 2, 0), 
654  (('fd8e00', 'ffff00'), 'adc', OPTYPE_Reg, REG_A, OPTYPE_RegMemDisp, REG_IY, 3, 2, 0), 
655  (('fd9600', 'ffff00'), 'sub', OPTYPE_RegMemDisp, REG_IY, None, None, 3, 2, 0), 
656  (('fd9e00', 'ffff00'), 'sbc', OPTYPE_Reg, REG_A, OPTYPE_RegMemDisp, REG_IY, 3, 2, 0), 
657  (('fda600', 'ffff00'), 'and', OPTYPE_RegMemDisp, REG_IY, None, None, 3, 2, 0), 
658  (('fdae00', 'ffff00'), 'xor', OPTYPE_RegMemDisp, REG_IY, None, None, 3, 2, 0), 
659  (('fdb600', 'ffff00'), 'or', OPTYPE_RegMemDisp, REG_IY, None, None, 3, 2, 0), 
660  (('fdbe00', 'ffff00'), 'cp', OPTYPE_RegMemDisp, REG_IY, None, None, 3, 2, 0), 
661  (('fdcb0006', 'ffff00ff'), 'rlc', OPTYPE_RegMemDisp, REG_IY, None, None, 4, 2, 0), 
662  (('fdcb000e', 'ffff00ff'), 'rrc', OPTYPE_RegMemDisp, REG_IY, None, None, 4, 2, 0), 
663  (('fdcb0016', 'ffff00ff'), 'rl', OPTYPE_RegMemDisp, REG_IY, None, None, 4, 2, 0), 
664  (('fdcb001e', 'ffff00ff'), 'rr', OPTYPE_RegMemDisp, REG_IY, None, None, 4, 2, 0), 
665  (('fdcb0026', 'ffff00ff'), 'sla', OPTYPE_RegMemDisp, REG_IY, None, None, 4, 2, 0), 
666  (('fdcb002e', 'ffff00ff'), 'sra', OPTYPE_RegMemDisp, REG_IY, None, None, 4, 2, 0), 
667  (('fdcb0046', 'ffff00ff'), 'bit', OPTYPE_const, 0, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
668  (('fdcb004e', 'ffff00ff'), 'bit', OPTYPE_const, 1, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
669  (('fdcb0056', 'ffff00ff'), 'bit', OPTYPE_const, 2, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
670  (('fdcb005e', 'ffff00ff'), 'bit', OPTYPE_const, 3, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
671  (('fdcb0066', 'ffff00ff'), 'bit', OPTYPE_const, 4, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
672  (('fdcb006e', 'ffff00ff'), 'bit', OPTYPE_const, 5, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
673  (('fdcb0076', 'ffff00ff'), 'bit', OPTYPE_const, 6, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
674  (('fdcb007e', 'ffff00ff'), 'bit', OPTYPE_const, 7, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
675  (('fdcb0086', 'ffff00ff'), 'res', OPTYPE_const, 0, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
676  (('fdcb008e', 'ffff00ff'), 'res', OPTYPE_const, 1, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
677  (('fdcb0096', 'ffff00ff'), 'res', OPTYPE_const, 2, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
678  (('fdcb009e', 'ffff00ff'), 'res', OPTYPE_const, 3, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
679  (('fdcb00a6', 'ffff00ff'), 'res', OPTYPE_const, 4, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
680  (('fdcb00ae', 'ffff00ff'), 'res', OPTYPE_const, 5, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
681  (('fdcb00b6', 'ffff00ff'), 'res', OPTYPE_const, 6, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
682  (('fdcb00be', 'ffff00ff'), 'res', OPTYPE_const, 7, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
683  (('fdcb00c6', 'ffff00ff'), 'set', OPTYPE_const, 0, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
684  (('fdcb00ce', 'ffff00ff'), 'set', OPTYPE_const, 1, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
685  (('fdcb00d6', 'ffff00ff'), 'set', OPTYPE_const, 2, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
686  (('fdcb00de', 'ffff00ff'), 'set', OPTYPE_const, 3, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
687  (('fdcb00e6', 'ffff00ff'), 'set', OPTYPE_const, 4, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
688  (('fdcb00ee', 'ffff00ff'), 'set', OPTYPE_const, 5, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
689  (('fdcb00f6', 'ffff00ff'), 'set', OPTYPE_const, 6, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
690  (('fdcb00fe', 'ffff00ff'), 'set', OPTYPE_const, 7, OPTYPE_RegMemDisp, REG_IY, 4, 2, 0), 
691  (('fde1', 'ffff'), 'pop', OPTYPE_Reg, REG_IY, None, None, 2, 0, 0), 
692  (('fde3', 'ffff'), 'ex', OPTYPE_RegMem, REG_SP, OPTYPE_Reg, REG_IY, 2, 0, 0), 
693  (('fde5', 'ffff'), 'push', OPTYPE_Reg, REG_IY, None, None, 2, 0, 0), 
694  (('fde9', 'ffff'), 'jp', OPTYPE_RegMem, REG_IY, None, None, 2, 0, 0), 
695  (('fdf9', 'ffff'), 'ld', OPTYPE_Reg, REG_SP, OPTYPE_Reg, REG_IY, 2, 0, 0), 
696  (('fe00', 'ff00'), 'cp', OPTYPE_imm8, None, None, None, 2, 1, 0), 
697  (('ff', 'ff'), 'rst', OPTYPE_const, 56, None, None, 1, 0, 0), 
698  ] 
699   
700  from envi.bits import binbytes as bb 
701   
702  nbits = '00000000' 
703  nnbits = '0000000000000000' 
704   
705  newtab = ( 
706   
707    # 8bit ld variants... 
708    (bb('01000000'), bb('11000000'), 'ld', OPTYPE_Reg, (2, 3), OPTYPE_Reg, (5, 3)), 
709    (bb('00000110'), bb('11000111'), 'ld', OPTYPE_Reg, (2, 3), OPTYPE_Imm, (8, 8)), 
710    (bb('01000110'), bb('11000111'), 'ld', OPTYPE_Reg, (2, 3), OPTYPE_OpReg, REG_HL), 
711    (bb('110111010100011000000000'), bb('111111111100011100000000'), 'ld', OPTYPE_Reg, (10, 3), OPTYPE_RegMemDisp, (REG_IX, 16, 8)), 
712    (bb('111111010100011000000000'), bb('111111111100011100000000'), 'ld', OPTYPE_Reg, (10, 3), OPTYPE_RegMemDisp, (REG_IY, 16, 8)), 
713    (bb('01110000'), bb('11111000'), 'ld', OPTYPE_RegMem, (REG_HL, None, None), OPTYPE_Reg, (5, 3)), 
714    (bb('110111010111000000000000'), bb('111111111111100000000000'), 'ld', OPTYPE_RegMemDisp, (REG_IX, 16, 8), OPTYPE_Reg, (13, 3)), 
715    (bb('111111010111000000000000'), bb('111111111111100000000000'), 'ld', OPTYPE_RegMemDisp, (REG_IY, 16, 8), OPTYPE_Reg, (13, 3)), 
716    (bb('0011011000000000'), bb('1111111100000000'), 'ld', OPTYPE_RegMem, (REG_HL, None, None), OPTYPE_Imm, (8, 8)), 
717    (bb('11011101001101100000000000000000'), bb('11111111111111110000000000000000'), 'ld', OPTYPE_RegMemDisp, (REG_IX, 16, 8), OPTYPE_Imm, (24, 8)), 
718    (bb('11111101001101100000000000000000'), bb('11111111111111110000000000000000'), 'ld', OPTYPE_RegMemDisp, (REG_IY, 16, 8), OPTYPE_Imm, (24, 8)), 
719    (bb('00001010'), bb('11111111'), 'ld', OPTYPE_OpReg, REG_A, OPTYPE_RegMem, (REG_BC, None, None)), 
720    (bb('00011010'), bb('11111111'), 'ld', OPTYPE_OpReg, REG_A, OPTYPE_RegMem, (REG_DE, None, None)), 
721    (bb('001110100000000000000000'), bb('111111110000000000000000'), 'ld', OPTYPE_OpReg, REG_A, OPTYPE_ImmMem, (8, 16)), 
722    (bb('00000010'), bb('11111111'), 'ld', OPTYPE_RegMem, (REG_BC, None, None), OPTYPE_OpReg, REG_A), 
723    (bb('00010010'), bb('11111111'), 'ld', OPTYPE_RegMem, (REG_DE, None, None), OPTYPE_OpReg, REG_A), 
724    (bb('001100100000000000000000'), bb('111111110000000000000000'), 'ld', OPTYPE_ImmMem, (8, 16), OPTYPE_OpReg, REG_A), 
725    (bb('1110110101010111'), bb('1111111111111111'), 'ld', OPTYPE_OpReg, REG_A, OPTYPE_OpReg, REG_I), 
726    (bb('1110110101011111'), bb('1111111111111111'), 'ld', OPTYPE_OpReg, REG_A, OPTYPE_OpReg, REG_R), 
727    (bb('1110110101000111'), bb('1111111111111111'), 'ld', OPTYPE_OpReg, REG_I, OPTYPE_OpReg, REG_A), 
728    (bb('111011010100f111'), bb('1111111111111111'), 'ld', OPTYPE_OpReg, REG_R, OPTYPE_OpReg, REG_A), 
729   
730    # 16 bit ld variants 
731    (bb('000000010000000000000000'), bb('110011110000000000000000'), 'ld', OPTYPE_RegPair, (2, 2), OPTYPE_Imm, (8, 16)), 
732    (bb('11011101001000010000000000000000'), bb('11111111111111110000000000000000'), 'ld', OPTYPE_OpReg, REG_IX, OPTYPE_Imm, (16, 16)), 
733    (bb('11111101001000010000000000000000'), bb('11111111111111110000000000000000'), 'ld', OPTYPE_OpReg, REG_IY, OPTYPE_Imm, (16, 16)), 
734    (bb('001010100000000000000000'), bb('111111110000000000000000'), 'ld', OPTYPE_OpReg, REG_HL, OPTYPE_ImmMem, (8,16)), 
735    (bb('11101101010010110000000000000000'), bb('11111111110011110000000000000000'), 'ld', OPTYPE_RegPair, (10, 2), OPTYPE_ImmMem, (16, 16)), 
736    (bb('11011101001010100000000000000000'), bb('11111111111111110000000000000000'), 'ld', OPTYPE_OpReg, REG_IX, OPTYPE_ImmMem, (16, 16)), 
737    (bb('11111101001010100000000000000000'), bb('11111111111111110000000000000000'), 'ld', OPTYPE_OpReg, REG_IY, OPTYPE_ImmMem, (16, 16)), 
738    (bb('001000100000000000000000'), bb('111111110000000000000000'), 'ld', OPTYPE_ImmMem, (8, 16), OPTYPE_OpReg, REG_HL), 
739  ) 
740