1 /*
2     $Id: opcodes.c 2209 2020-05-19 05:03:31Z soci $
3 
4     This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation; either version 2 of the License, or
7     (at your option) any later version.
8 
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13 
14     You should have received a copy of the GNU General Public License along
15     with this program; if not, write to the Free Software Foundation, Inc.,
16     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 
18 */
19 #include "opcodes.h"
20 
21 static const uint8_t opcode_w65816[] = {
22     0, 1, 2, 3, 4, 5, 4, 6, 3, 7, 8, 9, 10, 11, 12, 13,
23     14, 15, 16, 17, 18, 19, 20, 21, 22, 21, 23, 24, 22, 25, 26, 27,
24     28, 29, 30, 31, 32, 31, 30, 33, 34, 35, 36, 37, 38, 39, 40, 41,
25     42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
26     58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 18, 72,
27     73, 74, 75, 76, 77, 78, 79, 80, 81, 2, 51, 82, 39, 83, 84, 19,
28     85, 86, 87, 88, 89, 86, 87, 90, 90, 91, 92, 93, 92, 94, 95, 96,
29     97, 98, 99, 100, 101, 85, 102
30 };
31 
32 static const uint32_t mnemonic_w65816[] = {
33     0x616463, 0x616e64, 0x61736c, 0x626363, 0x626373, 0x626571, 0x626765, 0x626974,
34     0x626c74, 0x626d69, 0x626e65, 0x62706c, 0x627261, 0x62726b, 0x62726c, 0x627663,
35     0x627673, 0x636c63, 0x636c64, 0x636c69, 0x636c70, 0x636c72, 0x636c76, 0x636d70,
36     0x636f70, 0x637061, 0x637078, 0x637079, 0x637370, 0x646561, 0x646563, 0x646578,
37     0x646579, 0x656f72, 0x676363, 0x676373, 0x676571, 0x676765, 0x676c74, 0x676d69,
38     0x676e65, 0x67706c, 0x677261, 0x677663, 0x677673, 0x686c74, 0x696e61, 0x696e63,
39     0x696e78, 0x696e79, 0x6a6d6c, 0x6a6d70, 0x6a736c, 0x6a7372, 0x6c6461, 0x6c6478,
40     0x6c6479, 0x6c7372, 0x6d766e, 0x6d7670, 0x6e6f70, 0x6f7261, 0x706561, 0x706569,
41     0x706572, 0x706861, 0x706862, 0x706864, 0x70686b, 0x706870, 0x706878, 0x706879,
42     0x706c61, 0x706c62, 0x706c64, 0x706c70, 0x706c78, 0x706c79, 0x726570, 0x726f6c,
43     0x726f72, 0x727469, 0x72746c, 0x727473, 0x736263, 0x736563, 0x736564, 0x736569,
44     0x736570, 0x73686c, 0x736872, 0x737461, 0x737470, 0x737478, 0x737479, 0x73747a,
45     0x737761, 0x746164, 0x746173, 0x746178, 0x746179, 0x746364, 0x746373, 0x746461,
46     0x746463, 0x747262, 0x747361, 0x747362, 0x747363, 0x747378, 0x747861, 0x747873,
47     0x747879, 0x747961, 0x747978, 0x776169, 0x77646d, 0x786261, 0x786365
48 };
49 
50 static const uint16_t disasm_w65816[] = {
51     0x020d, 0x0a3d, 0x0218, 0x0b3d, 0x056b, 0x053d, 0x0502, 0x123d,
52     0x0145, 0x023d, 0x0002, 0x0143, 0x046b, 0x043d, 0x0402, 0x033d,
53     0x160b, 0x103d, 0x143d, 0x0c3d, 0x0569, 0x083d, 0x0802, 0x0f3d,
54     0x0111, 0x0d3d, 0x002f, 0x0166, 0x0469, 0x073d, 0x0702, 0x063d,
55     0x0435, 0x0a01, 0x0334, 0x0b01, 0x0507, 0x0501, 0x054f, 0x1201,
56     0x014b, 0x0201, 0x004f, 0x014a, 0x0407, 0x0401, 0x044f, 0x0301,
57     0x1609, 0x1001, 0x1401, 0x0c01, 0x0807, 0x0801, 0x084f, 0x0f01,
58     0x0155, 0x0d01, 0x001e, 0x016c, 0x0707, 0x0701, 0x074f, 0x0601,
59     0x0151, 0x0a21, 0x0274, 0x0b21, 0x173b, 0x0521, 0x0539, 0x1221,
60     0x0141, 0x0221, 0x0039, 0x0144, 0x0433, 0x0421, 0x0439, 0x0321,
61     0x160f, 0x1021, 0x1421, 0x0c21, 0x173a, 0x0821, 0x0839, 0x0f21,
62     0x0113, 0x0d21, 0x0147, 0x0165, 0x0333, 0x0721, 0x0739, 0x0621,
63     0x0153, 0x0a00, 0x1540, 0x0b00, 0x055f, 0x0500, 0x0550, 0x1200,
64     0x0148, 0x0200, 0x0050, 0x0152, 0x1333, 0x0400, 0x0450, 0x0300,
65     0x1610, 0x1000, 0x1400, 0x0c00, 0x085f, 0x0800, 0x0850, 0x0f00,
66     0x0157, 0x0d00, 0x014d, 0x0168, 0x0933, 0x0700, 0x0750, 0x0600,
67     0x160c, 0x0a5b, 0x150e, 0x0b5b, 0x055e, 0x055b, 0x055d, 0x125b,
68     0x0120, 0x0207, 0x016e, 0x0142, 0x045e, 0x045b, 0x045d, 0x035b,
69     0x1603, 0x105b, 0x145b, 0x0c5b, 0x085e, 0x085b, 0x0e5d, 0x0f5b,
70     0x0171, 0x0d5b, 0x016f, 0x0170, 0x045f, 0x075b, 0x075f, 0x065b,
71     0x0238, 0x0a36, 0x0237, 0x0b36, 0x0538, 0x0536, 0x0537, 0x1236,
72     0x0164, 0x0236, 0x0163, 0x0149, 0x0438, 0x0436, 0x0437, 0x0336,
73     0x1604, 0x1036, 0x1436, 0x0c36, 0x0838, 0x0836, 0x0e37, 0x0f36,
74     0x0116, 0x0d36, 0x016d, 0x0172, 0x0738, 0x0736, 0x0d37, 0x0636,
75     0x021b, 0x0a17, 0x024e, 0x0b17, 0x051b, 0x0517, 0x051e, 0x1217,
76     0x0131, 0x0217, 0x011f, 0x0173, 0x041b, 0x0417, 0x041e, 0x0317,
77     0x160a, 0x1017, 0x1417, 0x0c17, 0x053f, 0x0817, 0x081e, 0x0f17,
78     0x0112, 0x0d17, 0x0146, 0x015c, 0x1133, 0x0717, 0x071e, 0x0617,
79     0x021a, 0x0a54, 0x0258, 0x0b54, 0x051a, 0x0554, 0x052f, 0x1254,
80     0x0130, 0x0254, 0x013c, 0x0175, 0x041a, 0x0454, 0x042f, 0x0354,
81     0x1605, 0x1054, 0x1454, 0x0c54, 0x023e, 0x0854, 0x082f, 0x0f54,
82     0x0156, 0x0d54, 0x014c, 0x0176, 0x0935, 0x0754, 0x072f, 0x0654
83 };
84 
85 static const uint8_t alias_w65816[] = {
86     0, 1, 2, 3, 4, 5, 4, 7, 3, 9, 10, 11, 12, 13, 14, 15,
87     16, 17, 18, 19, 78, 95, 22, 23, 24, 23, 26, 27, 24, 30, 30, 31,
88     32, 33, 34, 35, 36, 35, 34, 39, 40, 41, 42, 43, 44, 92, 47, 47,
89     48, 49, 51, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
90     64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
91     80, 81, 82, 83, 84, 85, 86, 87, 88, 2, 57, 91, 92, 93, 94, 95,
92     117, 101, 102, 99, 100, 101, 102, 104, 104, 105, 108, 107, 108, 109, 110, 111,
93     112, 113, 114, 115, 116, 117, 118
94 };
95 
96 const struct cpu_s w65816 = {
97     "65816",
98     mnemonic_w65816,
99     opcode_w65816,
100     disasm_w65816,
101     alias_w65816,
102     0x184840b,
103     119,
104     0xffffff,
105     51,
106     14
107 };
108 
109 static const uint8_t opcode_c6502[] = {
110     103, 104, 2, 3, 4, 5, 4, 105, 3, 7, 8, 9, 11, 13, 14, 15,
111     16, 17, 20, 106, 106, 23, 24, 107, 27, 28, 108, 30, 31, 32, 31, 30,
112     33, 34, 35, 37, 38, 109, 42, 43, 110, 111, 112, 113, 114, 51, 54, 115,
113     59, 63, 66, 69, 72, 73, 74, 76, 116, 78, 79, 80, 2, 51, 117, 83,
114     84, 88, 89, 94, 95, 96, 98
115 };
116 
117 static const uint32_t mnemonic_c6502[] = {
118     0x616463, 0x616e64, 0x61736c, 0x626363, 0x626373, 0x626571, 0x626765, 0x626974,
119     0x626c74, 0x626d69, 0x626e65, 0x62706c, 0x62726b, 0x627663, 0x627673, 0x636c63,
120     0x636c64, 0x636c69, 0x636c76, 0x636d70, 0x637061, 0x637078, 0x637079, 0x646563,
121     0x646578, 0x646579, 0x656f72, 0x676363, 0x676373, 0x676571, 0x676765, 0x676c74,
122     0x676d69, 0x676e65, 0x67706c, 0x677663, 0x677673, 0x696e63, 0x696e78, 0x696e79,
123     0x6a6d70, 0x6a7372, 0x6c6461, 0x6c6478, 0x6c6479, 0x6c7372, 0x6e6f70, 0x6f7261,
124     0x706861, 0x706870, 0x706c61, 0x706c70, 0x726f6c, 0x726f72, 0x727469, 0x727473,
125     0x736263, 0x736563, 0x736564, 0x736569, 0x73686c, 0x736872, 0x737461, 0x737478,
126     0x737479, 0x746178, 0x746179, 0x747378, 0x747861, 0x747873, 0x747961
127 };
128 
129 static const uint16_t disasm_c6502[] = {
130     0x020c, 0x0a2f, 0x012e, 0x012e, 0x012e, 0x052f, 0x0502, 0x012e,
131     0x0131, 0x022f, 0x0002, 0x012e, 0x012e, 0x042f, 0x0402, 0x012e,
132     0x160b, 0x102f, 0x012e, 0x012e, 0x012e, 0x082f, 0x0802, 0x012e,
133     0x010f, 0x0d2f, 0x012e, 0x012e, 0x012e, 0x072f, 0x0702, 0x012e,
134     0x0429, 0x0a01, 0x012e, 0x012e, 0x0507, 0x0501, 0x0534, 0x012e,
135     0x0133, 0x0201, 0x0034, 0x012e, 0x0407, 0x0401, 0x0434, 0x012e,
136     0x1609, 0x1001, 0x012e, 0x012e, 0x012e, 0x0801, 0x0834, 0x012e,
137     0x0139, 0x0d01, 0x012e, 0x012e, 0x012e, 0x0701, 0x0734, 0x012e,
138     0x0136, 0x0a1a, 0x012e, 0x012e, 0x012e, 0x051a, 0x052d, 0x012e,
139     0x0130, 0x021a, 0x002d, 0x012e, 0x0428, 0x041a, 0x042d, 0x012e,
140     0x160d, 0x101a, 0x012e, 0x012e, 0x012e, 0x081a, 0x082d, 0x012e,
141     0x0111, 0x0d1a, 0x012e, 0x012e, 0x012e, 0x071a, 0x072d, 0x012e,
142     0x0137, 0x0a00, 0x012e, 0x012e, 0x012e, 0x0500, 0x0535, 0x012e,
143     0x0132, 0x0200, 0x0035, 0x012e, 0x1328, 0x0400, 0x0435, 0x012e,
144     0x160e, 0x1000, 0x012e, 0x012e, 0x012e, 0x0800, 0x0835, 0x012e,
145     0x013b, 0x0d00, 0x012e, 0x012e, 0x012e, 0x0700, 0x0735, 0x012e,
146     0x012e, 0x0a3e, 0x012e, 0x012e, 0x0540, 0x053e, 0x053f, 0x012e,
147     0x0119, 0x012e, 0x0144, 0x012e, 0x0440, 0x043e, 0x043f, 0x012e,
148     0x1603, 0x103e, 0x012e, 0x012e, 0x0840, 0x083e, 0x0e3f, 0x012e,
149     0x0146, 0x0d3e, 0x0145, 0x012e, 0x012e, 0x073e, 0x012e, 0x012e,
150     0x022c, 0x0a2a, 0x022b, 0x012e, 0x052c, 0x052a, 0x052b, 0x012e,
151     0x0142, 0x022a, 0x0141, 0x012e, 0x042c, 0x042a, 0x042b, 0x012e,
152     0x1604, 0x102a, 0x012e, 0x012e, 0x082c, 0x082a, 0x0e2b, 0x012e,
153     0x0112, 0x0d2a, 0x0143, 0x012e, 0x072c, 0x072a, 0x0d2b, 0x012e,
154     0x0216, 0x0a13, 0x012e, 0x012e, 0x0516, 0x0513, 0x0517, 0x012e,
155     0x0127, 0x0213, 0x0118, 0x012e, 0x0416, 0x0413, 0x0417, 0x012e,
156     0x160a, 0x1013, 0x012e, 0x012e, 0x012e, 0x0813, 0x0817, 0x012e,
157     0x0110, 0x0d13, 0x012e, 0x012e, 0x012e, 0x0713, 0x0717, 0x012e,
158     0x0215, 0x0a38, 0x012e, 0x012e, 0x0515, 0x0538, 0x0525, 0x012e,
159     0x0126, 0x0238, 0x012e, 0x012e, 0x0415, 0x0438, 0x0425, 0x012e,
160     0x1605, 0x1038, 0x012e, 0x012e, 0x012e, 0x0838, 0x0825, 0x012e,
161     0x013a, 0x0d38, 0x012e, 0x012e, 0x012e, 0x0738, 0x0725, 0x012e
162 };
163 
164 static const uint8_t alias_c6502[] = {
165     0, 1, 2, 3, 4, 5, 4, 7, 3, 9, 10, 11, 12, 13, 14, 15,
166     16, 17, 18, 19, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 28, 27,
167     32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
168     48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 2, 45, 62, 63,
169     64, 65, 66, 67, 68, 69, 70
170 };
171 
172 const struct cpu_s c6502 = {
173     "6502",
174     mnemonic_c6502,
175     opcode_c6502,
176     disasm_c6502,
177     alias_c6502,
178     0x1848001,
179     71,
180     0xffff,
181     40,
182     -1
183 };
184 
185 static const uint8_t opcode_c65c02[] = {
186     118, 119, 2, 3, 4, 5, 4, 6, 3, 7, 8, 9, 10, 11, 13, 14,
187     15, 16, 17, 19, 20, 120, 120, 23, 24, 25, 26, 27, 28, 121, 30, 31,
188     32, 31, 30, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 122, 111, 123,
189     113, 114, 51, 54, 124, 59, 63, 64, 65, 66, 69, 70, 71, 72, 73, 74,
190     76, 125, 78, 79, 80, 2, 51, 126, 83, 84, 19, 88, 89, 91, 93, 94,
191     95, 96, 98
192 };
193 
194 static const uint32_t mnemonic_c65c02[] = {
195     0x616463, 0x616e64, 0x61736c, 0x626363, 0x626373, 0x626571, 0x626765, 0x626974,
196     0x626c74, 0x626d69, 0x626e65, 0x62706c, 0x627261, 0x62726b, 0x627663, 0x627673,
197     0x636c63, 0x636c64, 0x636c69, 0x636c72, 0x636c76, 0x636d70, 0x637061, 0x637078,
198     0x637079, 0x646561, 0x646563, 0x646578, 0x646579, 0x656f72, 0x676363, 0x676373,
199     0x676571, 0x676765, 0x676c74, 0x676d69, 0x676e65, 0x67706c, 0x677261, 0x677663,
200     0x677673, 0x696e61, 0x696e63, 0x696e78, 0x696e79, 0x6a6d70, 0x6a7372, 0x6c6461,
201     0x6c6478, 0x6c6479, 0x6c7372, 0x6e6f70, 0x6f7261, 0x706861, 0x706870, 0x706878,
202     0x706879, 0x706c61, 0x706c70, 0x706c78, 0x706c79, 0x726f6c, 0x726f72, 0x727469,
203     0x727473, 0x736263, 0x736563, 0x736564, 0x736569, 0x73686c, 0x736872, 0x737461,
204     0x737478, 0x737479, 0x73747a, 0x746178, 0x746179, 0x747262, 0x747362, 0x747378,
205     0x747861, 0x747873, 0x747961
206 };
207 
208 static const uint16_t disasm_c65c02[] = {
209     0x020d, 0x0a34, 0x0133, 0x0133, 0x054e, 0x0534, 0x0502, 0x0133,
210     0x0136, 0x0234, 0x0002, 0x0133, 0x044e, 0x0434, 0x0402, 0x0133,
211     0x160b, 0x1034, 0x1434, 0x0133, 0x054d, 0x0834, 0x0802, 0x0133,
212     0x0110, 0x0d34, 0x002a, 0x0133, 0x044d, 0x0734, 0x0702, 0x0133,
213     0x042e, 0x0a01, 0x0133, 0x0133, 0x0507, 0x0501, 0x053d, 0x0133,
214     0x013a, 0x0201, 0x003d, 0x0133, 0x0407, 0x0401, 0x043d, 0x0133,
215     0x1609, 0x1001, 0x1401, 0x0133, 0x0807, 0x0801, 0x083d, 0x0133,
216     0x0142, 0x0d01, 0x001a, 0x0133, 0x0707, 0x0701, 0x073d, 0x0133,
217     0x013f, 0x0a1d, 0x0133, 0x0133, 0x0133, 0x051d, 0x0532, 0x0133,
218     0x0135, 0x021d, 0x0032, 0x0133, 0x042d, 0x041d, 0x0432, 0x0133,
219     0x160e, 0x101d, 0x141d, 0x0133, 0x0133, 0x081d, 0x0832, 0x0133,
220     0x0112, 0x0d1d, 0x0138, 0x0133, 0x0133, 0x071d, 0x0732, 0x0133,
221     0x0140, 0x0a00, 0x0133, 0x0133, 0x054a, 0x0500, 0x053e, 0x0133,
222     0x0139, 0x0200, 0x003e, 0x0133, 0x132d, 0x0400, 0x043e, 0x0133,
223     0x160f, 0x1000, 0x1400, 0x0133, 0x084a, 0x0800, 0x083e, 0x0133,
224     0x0144, 0x0d00, 0x013c, 0x0133, 0x092d, 0x0700, 0x073e, 0x0133,
225     0x160c, 0x0a47, 0x0133, 0x0133, 0x0549, 0x0547, 0x0548, 0x0133,
226     0x011c, 0x0207, 0x0150, 0x0133, 0x0449, 0x0447, 0x0448, 0x0133,
227     0x1603, 0x1047, 0x1447, 0x0133, 0x0849, 0x0847, 0x0e48, 0x0133,
228     0x0152, 0x0d47, 0x0151, 0x0133, 0x044a, 0x0747, 0x074a, 0x0133,
229     0x0231, 0x0a2f, 0x0230, 0x0133, 0x0531, 0x052f, 0x0530, 0x0133,
230     0x014c, 0x022f, 0x014b, 0x0133, 0x0431, 0x042f, 0x0430, 0x0133,
231     0x1604, 0x102f, 0x142f, 0x0133, 0x0831, 0x082f, 0x0e30, 0x0133,
232     0x0114, 0x0d2f, 0x014f, 0x0133, 0x0731, 0x072f, 0x0d30, 0x0133,
233     0x0218, 0x0a15, 0x0133, 0x0133, 0x0518, 0x0515, 0x051a, 0x0133,
234     0x012c, 0x0215, 0x011b, 0x0133, 0x0418, 0x0415, 0x041a, 0x0133,
235     0x160a, 0x1015, 0x1415, 0x0133, 0x0133, 0x0815, 0x081a, 0x0133,
236     0x0111, 0x0d15, 0x0137, 0x0133, 0x0133, 0x0715, 0x071a, 0x0133,
237     0x0217, 0x0a41, 0x0133, 0x0133, 0x0517, 0x0541, 0x052a, 0x0133,
238     0x012b, 0x0241, 0x0133, 0x0133, 0x0417, 0x0441, 0x042a, 0x0133,
239     0x1605, 0x1041, 0x1441, 0x0133, 0x0133, 0x0841, 0x082a, 0x0133,
240     0x0143, 0x0d41, 0x013b, 0x0133, 0x0133, 0x0741, 0x072a, 0x0133
241 };
242 
243 static const uint8_t alias_c65c02[] = {
244     0, 1, 2, 3, 4, 5, 4, 7, 3, 9, 10, 11, 12, 13, 14, 15,
245     16, 17, 18, 74, 20, 21, 21, 23, 24, 26, 26, 27, 28, 29, 30, 31,
246     32, 31, 30, 35, 36, 37, 38, 39, 40, 42, 42, 43, 44, 45, 46, 47,
247     48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
248     64, 65, 66, 67, 68, 2, 50, 71, 72, 73, 74, 75, 76, 77, 78, 79,
249     80, 81, 82
250 };
251 
252 const struct cpu_s c65c02 = {
253     "65c02",
254     mnemonic_c65c02,
255     opcode_c65c02,
256     disasm_c65c02,
257     alias_c65c02,
258     0x1848001,
259     83,
260     0xffff,
261     45,
262     -1
263 };
264 
265 static const uint8_t opcode_c6502i[] = {
266     103, 127, 128, 129, 104, 130, 131, 2, 128, 132, 3, 4, 5, 4, 105, 3,
267     7, 8, 9, 11, 13, 14, 15, 16, 17, 20, 106, 106, 23, 24, 133, 133,
268     107, 27, 28, 108, 30, 31, 32, 31, 30, 33, 34, 35, 37, 38, 109, 134,
269     42, 43, 134, 134, 135, 110, 111, 136, 136, 137, 112, 136, 113, 114, 51, 138,
270     139, 115, 59, 63, 66, 69, 140, 72, 73, 141, 74, 76, 142, 116, 132, 78,
271     79, 80, 127, 2, 51, 143, 144, 145, 146, 147, 117, 83, 84, 143, 88, 89,
272     94, 95, 96, 98, 130
273 };
274 
275 static const uint32_t mnemonic_c6502i[] = {
276     0x616463, 0x616878, 0x616c72, 0x616e63, 0x616e64, 0x616e65, 0x617272, 0x61736c,
277     0x617372, 0x617873, 0x626363, 0x626373, 0x626571, 0x626765, 0x626974, 0x626c74,
278     0x626d69, 0x626e65, 0x62706c, 0x62726b, 0x627663, 0x627673, 0x636c63, 0x636c64,
279     0x636c69, 0x636c76, 0x636d70, 0x637061, 0x637078, 0x637079, 0x64636d, 0x646370,
280     0x646563, 0x646578, 0x646579, 0x656f72, 0x676363, 0x676373, 0x676571, 0x676765,
281     0x676c74, 0x676d69, 0x676e65, 0x67706c, 0x677663, 0x677673, 0x696e63, 0x696e73,
282     0x696e78, 0x696e79, 0x697362, 0x697363, 0x6a616d, 0x6a6d70, 0x6a7372, 0x6c6165,
283     0x6c6173, 0x6c6178, 0x6c6461, 0x6c6473, 0x6c6478, 0x6c6479, 0x6c7372, 0x6c7861,
284     0x6e6f70, 0x6f7261, 0x706861, 0x706870, 0x706c61, 0x706c70, 0x726c61, 0x726f6c,
285     0x726f72, 0x727261, 0x727469, 0x727473, 0x736178, 0x736263, 0x736278, 0x736563,
286     0x736564, 0x736569, 0x736861, 0x73686c, 0x736872, 0x736873, 0x736878, 0x736879,
287     0x736c6f, 0x737265, 0x737461, 0x737478, 0x737479, 0x746173, 0x746178, 0x746179,
288     0x747378, 0x747861, 0x747873, 0x747961, 0x786161
289 };
290 
291 static const uint16_t disasm_c6502i[] = {
292     0x0213, 0x0a41, 0x0134, 0x0a58, 0x0540, 0x0541, 0x0507, 0x0558,
293     0x0143, 0x0241, 0x0007, 0x0203, 0x0440, 0x0441, 0x0407, 0x0458,
294     0x1612, 0x1041, 0x0140, 0x1058, 0x0840, 0x0841, 0x0807, 0x0858,
295     0x0116, 0x0d41, 0x0140, 0x0d58, 0x0740, 0x0741, 0x0707, 0x0758,
296     0x0436, 0x0a04, 0x0140, 0x0a46, 0x050e, 0x0504, 0x0547, 0x0546,
297     0x0145, 0x0204, 0x0047, 0x0140, 0x040e, 0x0404, 0x0447, 0x0446,
298     0x1610, 0x1004, 0x0140, 0x1046, 0x0140, 0x0804, 0x0847, 0x0846,
299     0x014f, 0x0d04, 0x0140, 0x0d46, 0x0140, 0x0704, 0x0747, 0x0746,
300     0x014a, 0x0a23, 0x0140, 0x0a59, 0x0140, 0x0523, 0x053e, 0x0559,
301     0x0142, 0x0223, 0x003e, 0x0208, 0x0435, 0x0423, 0x043e, 0x0459,
302     0x1614, 0x1023, 0x0140, 0x1059, 0x0140, 0x0823, 0x083e, 0x0859,
303     0x0118, 0x0d23, 0x0140, 0x0d59, 0x0140, 0x0723, 0x073e, 0x0759,
304     0x014b, 0x0a00, 0x0140, 0x0a49, 0x0140, 0x0500, 0x0548, 0x0549,
305     0x0144, 0x0200, 0x0048, 0x0206, 0x1335, 0x0400, 0x0448, 0x0449,
306     0x1615, 0x1000, 0x0140, 0x1049, 0x0140, 0x0800, 0x0848, 0x0849,
307     0x0151, 0x0d00, 0x0140, 0x0d49, 0x0140, 0x0700, 0x0748, 0x0749,
308     0x0240, 0x0a5a, 0x0140, 0x0a4c, 0x055c, 0x055a, 0x055b, 0x054c,
309     0x0122, 0x0140, 0x0161, 0x0205, 0x045c, 0x045a, 0x045b, 0x044c,
310     0x160a, 0x105a, 0x0140, 0x1052, 0x085c, 0x085a, 0x0e5b, 0x0e4c,
311     0x0163, 0x0d5a, 0x0162, 0x0d55, 0x0757, 0x075a, 0x0d56, 0x0d52,
312     0x023d, 0x0a3a, 0x023c, 0x0a39, 0x053d, 0x053a, 0x053c, 0x0539,
313     0x015f, 0x023a, 0x015e, 0x0239, 0x043d, 0x043a, 0x043c, 0x0439,
314     0x160b, 0x103a, 0x0140, 0x1039, 0x083d, 0x083a, 0x0e3c, 0x0e39,
315     0x0119, 0x0d3a, 0x0160, 0x0d3b, 0x073d, 0x073a, 0x0d3c, 0x0d39,
316     0x021d, 0x0a1a, 0x0140, 0x0a1f, 0x051d, 0x051a, 0x0520, 0x051f,
317     0x0131, 0x021a, 0x0121, 0x024e, 0x041d, 0x041a, 0x0420, 0x041f,
318     0x1611, 0x101a, 0x0140, 0x101f, 0x0140, 0x081a, 0x0820, 0x081f,
319     0x0117, 0x0d1a, 0x0140, 0x0d1f, 0x0140, 0x071a, 0x0720, 0x071f,
320     0x021c, 0x0a4d, 0x0140, 0x0a32, 0x051c, 0x054d, 0x052e, 0x0532,
321     0x0130, 0x024d, 0x0140, 0x0140, 0x041c, 0x044d, 0x042e, 0x0432,
322     0x160c, 0x104d, 0x0140, 0x1032, 0x0140, 0x084d, 0x082e, 0x0832,
323     0x0150, 0x0d4d, 0x0140, 0x0d32, 0x0140, 0x074d, 0x072e, 0x0732
324 };
325 
326 static const uint8_t alias_c6502i[] = {
327     0, 82, 8, 3, 4, 5, 6, 7, 8, 78, 10, 11, 12, 11, 14, 10,
328     16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 26, 28, 29, 31, 31,
329     32, 33, 34, 35, 36, 37, 38, 37, 36, 41, 42, 43, 44, 45, 46, 50,
330     48, 49, 50, 50, 52, 53, 54, 59, 59, 57, 58, 59, 60, 61, 62, 57,
331     64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
332     80, 81, 82, 7, 62, 85, 86, 87, 88, 89, 90, 91, 92, 85, 94, 95,
333     96, 97, 98, 99, 5
334 };
335 
336 const struct cpu_s c6502i = {
337     "6502i",
338     mnemonic_c6502i,
339     opcode_c6502i,
340     disasm_c6502i,
341     alias_c6502i,
342     0x1848001,
343     101,
344     0xffff,
345     53,
346     -1
347 };
348 
349 static const uint8_t opcode_c65dtv02[] = {
350     103, 128, 104, 130, 131, 2, 128, 3, 4, 5, 4, 105, 3, 7, 8, 9,
351     148, 11, 13, 14, 15, 16, 17, 20, 106, 106, 23, 24, 133, 133, 107, 27,
352     28, 108, 30, 31, 32, 31, 30, 33, 34, 35, 149, 37, 38, 109, 134, 42,
353     43, 134, 134, 110, 111, 137, 112, 113, 114, 51, 138, 54, 115, 59, 63, 66,
354     69, 140, 72, 73, 141, 74, 76, 150, 142, 116, 78, 79, 80, 2, 51, 101,
355     146, 147, 117, 83, 84, 88, 89, 94, 95, 96, 98, 130
356 };
357 
358 static const uint32_t mnemonic_c65dtv02[] = {
359     0x616463, 0x616c72, 0x616e64, 0x616e65, 0x617272, 0x61736c, 0x617372, 0x626363,
360     0x626373, 0x626571, 0x626765, 0x626974, 0x626c74, 0x626d69, 0x626e65, 0x62706c,
361     0x627261, 0x62726b, 0x627663, 0x627673, 0x636c63, 0x636c64, 0x636c69, 0x636c76,
362     0x636d70, 0x637061, 0x637078, 0x637079, 0x64636d, 0x646370, 0x646563, 0x646578,
363     0x646579, 0x656f72, 0x676363, 0x676373, 0x676571, 0x676765, 0x676c74, 0x676d69,
364     0x676e65, 0x67706c, 0x677261, 0x677663, 0x677673, 0x696e63, 0x696e73, 0x696e78,
365     0x696e79, 0x697362, 0x697363, 0x6a6d70, 0x6a7372, 0x6c6178, 0x6c6461, 0x6c6478,
366     0x6c6479, 0x6c7372, 0x6c7861, 0x6e6f70, 0x6f7261, 0x706861, 0x706870, 0x706c61,
367     0x706c70, 0x726c61, 0x726f6c, 0x726f72, 0x727261, 0x727469, 0x727473, 0x736163,
368     0x736178, 0x736263, 0x736563, 0x736564, 0x736569, 0x73686c, 0x736872, 0x736972,
369     0x736c6f, 0x737265, 0x737461, 0x737478, 0x737479, 0x746178, 0x746179, 0x747378,
370     0x747861, 0x747873, 0x747961, 0x786161
371 };
372 
373 static const uint16_t disasm_c65dtv02[] = {
374     0x0211, 0x0a3c, 0x013b, 0x0a50, 0x013b, 0x053c, 0x0505, 0x0550,
375     0x013e, 0x023c, 0x0005, 0x013b, 0x013b, 0x043c, 0x0405, 0x0450,
376     0x160f, 0x103c, 0x1610, 0x1050, 0x013b, 0x083c, 0x0805, 0x0850,
377     0x0114, 0x0d3c, 0x013b, 0x0d50, 0x013b, 0x073c, 0x0705, 0x0750,
378     0x0434, 0x0a02, 0x013b, 0x0a41, 0x050b, 0x0502, 0x0542, 0x0541,
379     0x0140, 0x0202, 0x0042, 0x013b, 0x040b, 0x0402, 0x0442, 0x0441,
380     0x160d, 0x1002, 0x0247, 0x1041, 0x013b, 0x0802, 0x0842, 0x0841,
381     0x014a, 0x0d02, 0x013b, 0x0d41, 0x013b, 0x0702, 0x0742, 0x0741,
382     0x0145, 0x0a21, 0x024f, 0x0a51, 0x013b, 0x0521, 0x0539, 0x0551,
383     0x013d, 0x0221, 0x0039, 0x0206, 0x0433, 0x0421, 0x0439, 0x0451,
384     0x1612, 0x1021, 0x013b, 0x1051, 0x013b, 0x0821, 0x0839, 0x0851,
385     0x0116, 0x0d21, 0x013b, 0x0d51, 0x013b, 0x0721, 0x0739, 0x0751,
386     0x0146, 0x0a00, 0x013b, 0x0a44, 0x013b, 0x0500, 0x0543, 0x0544,
387     0x013f, 0x0200, 0x0043, 0x0204, 0x1333, 0x0400, 0x0443, 0x0444,
388     0x1613, 0x1000, 0x013b, 0x1044, 0x013b, 0x0800, 0x0843, 0x0844,
389     0x014c, 0x0d00, 0x013b, 0x0d44, 0x013b, 0x0700, 0x0743, 0x0744,
390     0x013b, 0x0a52, 0x013b, 0x0a48, 0x0554, 0x0552, 0x0553, 0x0548,
391     0x0120, 0x013b, 0x0158, 0x0203, 0x0454, 0x0452, 0x0453, 0x0448,
392     0x1607, 0x1052, 0x013b, 0x013b, 0x0854, 0x0852, 0x0e53, 0x0e48,
393     0x015a, 0x0d52, 0x0159, 0x013b, 0x013b, 0x0752, 0x013b, 0x013b,
394     0x0238, 0x0a36, 0x0237, 0x0a35, 0x0538, 0x0536, 0x0537, 0x0535,
395     0x0156, 0x0236, 0x0155, 0x0235, 0x0438, 0x0436, 0x0437, 0x0435,
396     0x1608, 0x1036, 0x013b, 0x1035, 0x0838, 0x0836, 0x0e37, 0x0e35,
397     0x0117, 0x0d36, 0x0157, 0x013b, 0x0738, 0x0736, 0x0d37, 0x0d35,
398     0x021b, 0x0a18, 0x013b, 0x0a1d, 0x051b, 0x0518, 0x051e, 0x051d,
399     0x0130, 0x0218, 0x011f, 0x013b, 0x041b, 0x0418, 0x041e, 0x041d,
400     0x160e, 0x1018, 0x013b, 0x101d, 0x013b, 0x0818, 0x081e, 0x081d,
401     0x0115, 0x0d18, 0x013b, 0x0d1d, 0x013b, 0x0718, 0x071e, 0x071d,
402     0x021a, 0x0a49, 0x013b, 0x0a31, 0x051a, 0x0549, 0x052d, 0x0531,
403     0x012f, 0x0249, 0x013b, 0x013b, 0x041a, 0x0449, 0x042d, 0x0431,
404     0x1609, 0x1049, 0x013b, 0x1031, 0x013b, 0x0849, 0x082d, 0x0831,
405     0x014b, 0x0d49, 0x013b, 0x0d31, 0x013b, 0x0749, 0x072d, 0x0731
406 };
407 
408 static const uint8_t alias_c65dtv02[] = {
409     0, 6, 2, 3, 4, 5, 6, 7, 8, 9, 8, 11, 7, 13, 14, 15,
410     16, 17, 18, 19, 20, 21, 22, 23, 24, 24, 26, 27, 29, 29, 30, 31,
411     32, 33, 34, 35, 36, 35, 34, 39, 40, 41, 42, 43, 44, 45, 49, 47,
412     48, 49, 49, 51, 52, 53, 54, 55, 56, 57, 53, 59, 60, 61, 62, 63,
413     64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 5, 57, 79,
414     80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 3
415 };
416 
417 const struct cpu_s c65dtv02 = {
418     "65dtv02",
419     mnemonic_c65dtv02,
420     opcode_c65dtv02,
421     disasm_c65dtv02,
422     alias_c65dtv02,
423     0x1848001,
424     92,
425     0xffff,
426     51,
427     -1
428 };
429 
430 static const uint8_t opcode_c65el02[] = {
431     151, 152, 2, 3, 4, 5, 4, 6, 3, 7, 8, 9, 10, 11, 13, 14,
432     15, 16, 17, 18, 19, 20, 153, 153, 23, 24, 25, 26, 27, 28, 154, 155,
433     156, 30, 31, 32, 31, 30, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
434     43, 122, 47, 157, 158, 50, 51, 159, 160, 54, 161, 135, 162, 56, 57, 58,
435     59, 163, 63, 64, 65, 66, 164, 69, 70, 71, 165, 166, 18, 167, 62, 61,
436     87, 86, 75, 68, 92, 90, 72, 73, 74, 76, 168, 169, 78, 79, 80, 81,
437     2, 51, 170, 39, 83, 84, 19, 85, 171, 88, 89, 172, 173, 91, 67, 93,
438     94, 95, 174, 60, 96, 97, 98, 99, 100, 85, 102, 175
439 };
440 
441 static const uint32_t mnemonic_c65el02[] = {
442     0x616463, 0x616e64, 0x61736c, 0x626363, 0x626373, 0x626571, 0x626765, 0x626974,
443     0x626c74, 0x626d69, 0x626e65, 0x62706c, 0x627261, 0x62726b, 0x627663, 0x627673,
444     0x636c63, 0x636c64, 0x636c69, 0x636c70, 0x636c72, 0x636c76, 0x636d70, 0x637061,
445     0x637078, 0x637079, 0x646561, 0x646563, 0x646578, 0x646579, 0x646976, 0x656e74,
446     0x656f72, 0x676363, 0x676373, 0x676571, 0x676765, 0x676c74, 0x676d69, 0x676e65,
447     0x67706c, 0x677261, 0x677663, 0x677673, 0x686c74, 0x696e61, 0x696e63, 0x696e78,
448     0x696e79, 0x6a6d70, 0x6a7372, 0x6c6461, 0x6c6478, 0x6c6479, 0x6c7372, 0x6d6d75,
449     0x6d756c, 0x6e6f70, 0x6e7861, 0x6e7874, 0x6f7261, 0x706561, 0x706569, 0x706572,
450     0x706861, 0x706864, 0x706870, 0x706878, 0x706879, 0x706c61, 0x706c64, 0x706c70,
451     0x706c78, 0x706c79, 0x726561, 0x726569, 0x726570, 0x726572, 0x726861, 0x726869,
452     0x726878, 0x726879, 0x726c61, 0x726c69, 0x726c78, 0x726c79, 0x726f6c, 0x726f72,
453     0x727469, 0x727473, 0x736263, 0x736561, 0x736563, 0x736564, 0x736569, 0x736570,
454     0x73686c, 0x736872, 0x737461, 0x737470, 0x737478, 0x737479, 0x73747a, 0x737761,
455     0x746164, 0x746178, 0x746179, 0x746461, 0x746978, 0x747262, 0x747278, 0x747362,
456     0x747378, 0x747861, 0x747869, 0x747872, 0x747873, 0x747879, 0x747961, 0x747978,
457     0x776169, 0x786261, 0x786365, 0x7a6561
458 };
459 
460 static const uint16_t disasm_c65el02[] = {
461     0x020d, 0x0a3c, 0x013b, 0x0b3c, 0x056f, 0x053c, 0x0502, 0x183c,
462     0x0142, 0x023c, 0x0002, 0x014f, 0x046f, 0x043c, 0x0402, 0x0538,
463     0x160b, 0x103c, 0x143c, 0x0c3c, 0x056d, 0x083c, 0x0802, 0x193c,
464     0x0110, 0x0d3c, 0x002e, 0x0150, 0x046d, 0x073c, 0x0702, 0x0838,
465     0x0432, 0x0a01, 0x011f, 0x0b01, 0x0507, 0x0501, 0x0556, 0x1801,
466     0x0147, 0x0201, 0x0056, 0x0153, 0x0407, 0x0401, 0x0456, 0x0438,
467     0x1609, 0x1001, 0x1401, 0x0c01, 0x0807, 0x0801, 0x0856, 0x1901,
468     0x015c, 0x0d01, 0x001b, 0x0154, 0x0707, 0x0701, 0x0756, 0x0738,
469     0x0158, 0x0a20, 0x013a, 0x0b20, 0x024a, 0x0520, 0x0536, 0x1820,
470     0x0140, 0x0220, 0x0036, 0x014e, 0x0431, 0x0420, 0x0436, 0x051e,
471     0x160e, 0x1020, 0x1420, 0x0c20, 0x054b, 0x0820, 0x0836, 0x1920,
472     0x0112, 0x0d20, 0x0144, 0x0151, 0x0172, 0x0720, 0x0736, 0x081e,
473     0x0159, 0x0a00, 0x153f, 0x0b00, 0x0566, 0x0500, 0x0557, 0x1800,
474     0x0145, 0x0200, 0x0057, 0x0152, 0x1331, 0x0400, 0x0457, 0x041e,
475     0x160f, 0x1000, 0x1400, 0x0c00, 0x0866, 0x0800, 0x0857, 0x1900,
476     0x015e, 0x0d00, 0x0149, 0x0155, 0x0931, 0x0700, 0x0757, 0x071e,
477     0x160c, 0x0a62, 0x164d, 0x0b62, 0x0565, 0x0562, 0x0564, 0x1862,
478     0x011d, 0x0207, 0x0171, 0x0173, 0x0465, 0x0462, 0x0464, 0x017b,
479     0x1603, 0x1062, 0x1462, 0x0c62, 0x0865, 0x0862, 0x0e64, 0x1962,
480     0x0176, 0x0d62, 0x0174, 0x0175, 0x0466, 0x0762, 0x0766, 0x015b,
481     0x0235, 0x0a33, 0x0234, 0x0b33, 0x0535, 0x0533, 0x0534, 0x1833,
482     0x016a, 0x0233, 0x0169, 0x016e, 0x0435, 0x0433, 0x0434, 0x016b,
483     0x1604, 0x1033, 0x1433, 0x0c33, 0x0835, 0x0833, 0x0e34, 0x1933,
484     0x0115, 0x0d33, 0x0170, 0x0177, 0x0735, 0x0733, 0x0d34, 0x0168,
485     0x0219, 0x0a16, 0x024c, 0x0b16, 0x0519, 0x0516, 0x051b, 0x1816,
486     0x0130, 0x0216, 0x011c, 0x0178, 0x0419, 0x0416, 0x041b, 0x0146,
487     0x160a, 0x1016, 0x1416, 0x0c16, 0x053e, 0x0816, 0x081b, 0x1916,
488     0x0111, 0x0d16, 0x0143, 0x0163, 0x016c, 0x0716, 0x071b, 0x0141,
489     0x0218, 0x0a5a, 0x025f, 0x0b5a, 0x0518, 0x055a, 0x052e, 0x185a,
490     0x012f, 0x025a, 0x0139, 0x0179, 0x0418, 0x045a, 0x042e, 0x0237,
491     0x1605, 0x105a, 0x145a, 0x0c5a, 0x023d, 0x085a, 0x082e, 0x195a,
492     0x015d, 0x0d5a, 0x0148, 0x017a, 0x0932, 0x075a, 0x072e, 0x0139
493 };
494 
495 static const uint8_t alias_c65el02[] = {
496     0, 1, 2, 3, 4, 5, 4, 7, 3, 9, 10, 11, 12, 13, 14, 15,
497     16, 17, 18, 76, 102, 21, 22, 22, 24, 25, 27, 27, 28, 29, 30, 31,
498     32, 33, 34, 35, 34, 33, 38, 39, 40, 41, 42, 43, 99, 46, 46, 47,
499     48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
500     64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
501     80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
502     2, 54, 98, 99, 100, 101, 102, 121, 104, 105, 106, 107, 108, 109, 110, 111,
503     112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123
504 };
505 
506 const struct cpu_s c65el02 = {
507     "65el02",
508     mnemonic_c65el02,
509     opcode_c65el02,
510     disasm_c65el02,
511     alias_c65el02,
512     0x1868109,
513     124,
514     0xffff,
515     49,
516     -1
517 };
518 
519 static const uint8_t opcode_r65c02[] = {
520     118, 119, 2, 176, 177, 3, 4, 5, 4, 6, 3, 7, 8, 9, 10, 11,
521     13, 14, 15, 16, 17, 19, 20, 120, 120, 23, 24, 25, 26, 27, 28, 121,
522     30, 31, 32, 31, 30, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 122,
523     111, 123, 113, 114, 51, 178, 124, 59, 63, 64, 65, 66, 69, 70, 71, 179,
524     72, 73, 74, 76, 125, 78, 79, 80, 2, 51, 180, 126, 83, 84, 19, 88,
525     89, 91, 93, 94, 95, 96, 98
526 };
527 
528 static const uint32_t mnemonic_r65c02[] = {
529     0x616463, 0x616e64, 0x61736c, 0x626272, 0x626273, 0x626363, 0x626373, 0x626571,
530     0x626765, 0x626974, 0x626c74, 0x626d69, 0x626e65, 0x62706c, 0x627261, 0x62726b,
531     0x627663, 0x627673, 0x636c63, 0x636c64, 0x636c69, 0x636c72, 0x636c76, 0x636d70,
532     0x637061, 0x637078, 0x637079, 0x646561, 0x646563, 0x646578, 0x646579, 0x656f72,
533     0x676363, 0x676373, 0x676571, 0x676765, 0x676c74, 0x676d69, 0x676e65, 0x67706c,
534     0x677261, 0x677663, 0x677673, 0x696e61, 0x696e63, 0x696e78, 0x696e79, 0x6a6d70,
535     0x6a7372, 0x6c6461, 0x6c6478, 0x6c6479, 0x6c7372, 0x6e6f70, 0x6f7261, 0x706861,
536     0x706870, 0x706878, 0x706879, 0x706c61, 0x706c70, 0x706c78, 0x706c79, 0x726d62,
537     0x726f6c, 0x726f72, 0x727469, 0x727473, 0x736263, 0x736563, 0x736564, 0x736569,
538     0x73686c, 0x736872, 0x736d62, 0x737461, 0x737478, 0x737479, 0x73747a, 0x746178,
539     0x746179, 0x747262, 0x747362, 0x747378, 0x747861, 0x747873, 0x747961
540 };
541 
542 static const uint16_t disasm_r65c02[] = {
543     0x020f, 0x0a36, 0x0135, 0x0135, 0x0552, 0x0536, 0x0502, 0x1a3f,
544     0x0138, 0x0236, 0x0002, 0x0135, 0x0452, 0x0436, 0x0402, 0x1b03,
545     0x160d, 0x1036, 0x1436, 0x0135, 0x0551, 0x0836, 0x0802, 0x1a3f,
546     0x0112, 0x0d36, 0x002c, 0x0135, 0x0451, 0x0736, 0x0702, 0x1b03,
547     0x0430, 0x0a01, 0x0135, 0x0135, 0x0509, 0x0501, 0x0540, 0x1a3f,
548     0x013c, 0x0201, 0x0040, 0x0135, 0x0409, 0x0401, 0x0440, 0x1b03,
549     0x160b, 0x1001, 0x1401, 0x0135, 0x0809, 0x0801, 0x0840, 0x1a3f,
550     0x0145, 0x0d01, 0x001c, 0x0135, 0x0709, 0x0701, 0x0740, 0x1b03,
551     0x0142, 0x0a1f, 0x0135, 0x0135, 0x0535, 0x051f, 0x0534, 0x1a3f,
552     0x0137, 0x021f, 0x0034, 0x0135, 0x042f, 0x041f, 0x0434, 0x1b03,
553     0x1610, 0x101f, 0x141f, 0x0135, 0x0835, 0x081f, 0x0834, 0x1a3f,
554     0x0114, 0x0d1f, 0x013a, 0x0135, 0x0135, 0x071f, 0x0734, 0x1b03,
555     0x0143, 0x0a00, 0x0135, 0x0135, 0x054e, 0x0500, 0x0541, 0x1a3f,
556     0x013b, 0x0200, 0x0041, 0x0135, 0x132f, 0x0400, 0x0441, 0x1b03,
557     0x1611, 0x1000, 0x1400, 0x0135, 0x084e, 0x0800, 0x0841, 0x1a3f,
558     0x0147, 0x0d00, 0x013e, 0x0135, 0x092f, 0x0700, 0x0741, 0x1b03,
559     0x160e, 0x0a4b, 0x0235, 0x0135, 0x054d, 0x054b, 0x054c, 0x1a4a,
560     0x011e, 0x0209, 0x0154, 0x0135, 0x044d, 0x044b, 0x044c, 0x1b04,
561     0x1605, 0x104b, 0x144b, 0x0135, 0x084d, 0x084b, 0x0e4c, 0x1a4a,
562     0x0156, 0x0d4b, 0x0155, 0x0135, 0x044e, 0x074b, 0x074e, 0x1b04,
563     0x0233, 0x0a31, 0x0232, 0x0135, 0x0533, 0x0531, 0x0532, 0x1a4a,
564     0x0150, 0x0231, 0x014f, 0x0135, 0x0433, 0x0431, 0x0432, 0x1b04,
565     0x1606, 0x1031, 0x1431, 0x0135, 0x0833, 0x0831, 0x0e32, 0x1a4a,
566     0x0116, 0x0d31, 0x0153, 0x0135, 0x0733, 0x0731, 0x0d32, 0x1b04,
567     0x021a, 0x0a17, 0x0135, 0x0135, 0x051a, 0x0517, 0x051c, 0x1a4a,
568     0x012e, 0x0217, 0x011d, 0x0135, 0x041a, 0x0417, 0x041c, 0x1b04,
569     0x160c, 0x1017, 0x1417, 0x0135, 0x0135, 0x0817, 0x081c, 0x1a4a,
570     0x0113, 0x0d17, 0x0139, 0x0135, 0x0435, 0x0717, 0x071c, 0x1b04,
571     0x0219, 0x0a44, 0x0135, 0x0135, 0x0519, 0x0544, 0x052c, 0x1a4a,
572     0x012d, 0x0244, 0x0135, 0x0135, 0x0419, 0x0444, 0x042c, 0x1b04,
573     0x1607, 0x1044, 0x1444, 0x0135, 0x0135, 0x0844, 0x082c, 0x1a4a,
574     0x0146, 0x0d44, 0x013d, 0x0135, 0x0135, 0x0744, 0x072c, 0x1b04
575 };
576 
577 static const uint8_t alias_r65c02[] = {
578     0, 1, 2, 3, 4, 5, 6, 7, 6, 9, 5, 11, 12, 13, 14, 15,
579     16, 17, 18, 19, 20, 78, 22, 23, 23, 25, 26, 28, 28, 29, 30, 31,
580     32, 33, 34, 33, 32, 37, 38, 39, 40, 41, 42, 44, 44, 45, 46, 47,
581     48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
582     64, 65, 66, 67, 68, 69, 70, 71, 2, 52, 74, 75, 76, 77, 78, 79,
583     80, 81, 82, 83, 84, 85, 86
584 };
585 
586 const struct cpu_s r65c02 = {
587     "r65c02",
588     mnemonic_r65c02,
589     opcode_r65c02,
590     disasm_r65c02,
591     alias_r65c02,
592     0x1848001,
593     87,
594     0xffff,
595     47,
596     -1
597 };
598 
599 static const uint8_t opcode_w65c02[] = {
600     118, 119, 2, 176, 177, 3, 4, 5, 4, 6, 3, 7, 8, 9, 10, 11,
601     13, 14, 15, 16, 17, 19, 20, 120, 120, 23, 24, 25, 26, 27, 28, 121,
602     30, 31, 32, 31, 30, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
603     122, 111, 123, 113, 114, 51, 178, 124, 59, 63, 64, 65, 66, 69, 70, 71,
604     179, 72, 73, 74, 76, 125, 78, 79, 80, 2, 51, 180, 126, 39, 83, 84,
605     19, 88, 89, 91, 93, 94, 95, 96, 98, 100
606 };
607 
608 static const uint32_t mnemonic_w65c02[] = {
609     0x616463, 0x616e64, 0x61736c, 0x626272, 0x626273, 0x626363, 0x626373, 0x626571,
610     0x626765, 0x626974, 0x626c74, 0x626d69, 0x626e65, 0x62706c, 0x627261, 0x62726b,
611     0x627663, 0x627673, 0x636c63, 0x636c64, 0x636c69, 0x636c72, 0x636c76, 0x636d70,
612     0x637061, 0x637078, 0x637079, 0x646561, 0x646563, 0x646578, 0x646579, 0x656f72,
613     0x676363, 0x676373, 0x676571, 0x676765, 0x676c74, 0x676d69, 0x676e65, 0x67706c,
614     0x677261, 0x677663, 0x677673, 0x686c74, 0x696e61, 0x696e63, 0x696e78, 0x696e79,
615     0x6a6d70, 0x6a7372, 0x6c6461, 0x6c6478, 0x6c6479, 0x6c7372, 0x6e6f70, 0x6f7261,
616     0x706861, 0x706870, 0x706878, 0x706879, 0x706c61, 0x706c70, 0x706c78, 0x706c79,
617     0x726d62, 0x726f6c, 0x726f72, 0x727469, 0x727473, 0x736263, 0x736563, 0x736564,
618     0x736569, 0x73686c, 0x736872, 0x736d62, 0x737461, 0x737470, 0x737478, 0x737479,
619     0x73747a, 0x746178, 0x746179, 0x747262, 0x747362, 0x747378, 0x747861, 0x747873,
620     0x747961, 0x776169
621 };
622 
623 static const uint16_t disasm_w65c02[] = {
624     0x020f, 0x0a37, 0x0136, 0x0136, 0x0554, 0x0537, 0x0502, 0x1a40,
625     0x0139, 0x0237, 0x0002, 0x0136, 0x0454, 0x0437, 0x0402, 0x1b03,
626     0x160d, 0x1037, 0x1437, 0x0136, 0x0553, 0x0837, 0x0802, 0x1a40,
627     0x0112, 0x0d37, 0x002d, 0x0136, 0x0453, 0x0737, 0x0702, 0x1b03,
628     0x0431, 0x0a01, 0x0136, 0x0136, 0x0509, 0x0501, 0x0541, 0x1a40,
629     0x013d, 0x0201, 0x0041, 0x0136, 0x0409, 0x0401, 0x0441, 0x1b03,
630     0x160b, 0x1001, 0x1401, 0x0136, 0x0809, 0x0801, 0x0841, 0x1a40,
631     0x0146, 0x0d01, 0x001c, 0x0136, 0x0709, 0x0701, 0x0741, 0x1b03,
632     0x0143, 0x0a1f, 0x0136, 0x0136, 0x0536, 0x051f, 0x0535, 0x1a40,
633     0x0138, 0x021f, 0x0035, 0x0136, 0x0430, 0x041f, 0x0435, 0x1b03,
634     0x1610, 0x101f, 0x141f, 0x0136, 0x0836, 0x081f, 0x0835, 0x1a40,
635     0x0114, 0x0d1f, 0x013b, 0x0136, 0x0136, 0x071f, 0x0735, 0x1b03,
636     0x0144, 0x0a00, 0x0136, 0x0136, 0x0550, 0x0500, 0x0542, 0x1a40,
637     0x013c, 0x0200, 0x0042, 0x0136, 0x1330, 0x0400, 0x0442, 0x1b03,
638     0x1611, 0x1000, 0x1400, 0x0136, 0x0850, 0x0800, 0x0842, 0x1a40,
639     0x0148, 0x0d00, 0x013f, 0x0136, 0x0930, 0x0700, 0x0742, 0x1b03,
640     0x160e, 0x0a4c, 0x0236, 0x0136, 0x054f, 0x054c, 0x054e, 0x1a4b,
641     0x011e, 0x0209, 0x0156, 0x0136, 0x044f, 0x044c, 0x044e, 0x1b04,
642     0x1605, 0x104c, 0x144c, 0x0136, 0x084f, 0x084c, 0x0e4e, 0x1a4b,
643     0x0158, 0x0d4c, 0x0157, 0x0136, 0x0450, 0x074c, 0x0750, 0x1b04,
644     0x0234, 0x0a32, 0x0233, 0x0136, 0x0534, 0x0532, 0x0533, 0x1a4b,
645     0x0152, 0x0232, 0x0151, 0x0136, 0x0434, 0x0432, 0x0433, 0x1b04,
646     0x1606, 0x1032, 0x1432, 0x0136, 0x0834, 0x0832, 0x0e33, 0x1a4b,
647     0x0116, 0x0d32, 0x0155, 0x0136, 0x0734, 0x0732, 0x0d33, 0x1b04,
648     0x021a, 0x0a17, 0x0136, 0x0136, 0x051a, 0x0517, 0x051c, 0x1a4b,
649     0x012f, 0x0217, 0x011d, 0x0159, 0x041a, 0x0417, 0x041c, 0x1b04,
650     0x160c, 0x1017, 0x1417, 0x0136, 0x0136, 0x0817, 0x081c, 0x1a4b,
651     0x0113, 0x0d17, 0x013a, 0x014d, 0x0436, 0x0717, 0x071c, 0x1b04,
652     0x0219, 0x0a45, 0x0136, 0x0136, 0x0519, 0x0545, 0x052d, 0x1a4b,
653     0x012e, 0x0245, 0x0136, 0x0136, 0x0419, 0x0445, 0x042d, 0x1b04,
654     0x1607, 0x1045, 0x1445, 0x0136, 0x0136, 0x0845, 0x082d, 0x1a4b,
655     0x0147, 0x0d45, 0x013e, 0x0136, 0x0136, 0x0745, 0x072d, 0x1b04
656 };
657 
658 static const uint8_t alias_w65c02[] = {
659     0, 1, 2, 3, 4, 5, 6, 7, 6, 9, 5, 11, 12, 13, 14, 15,
660     16, 17, 18, 19, 20, 80, 22, 23, 23, 25, 26, 28, 28, 29, 30, 31,
661     32, 33, 34, 33, 32, 37, 38, 39, 40, 41, 42, 77, 45, 45, 46, 47,
662     48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
663     64, 65, 66, 67, 68, 69, 70, 71, 72, 2, 53, 75, 76, 77, 78, 79,
664     80, 81, 82, 83, 84, 85, 86, 87, 88, 89
665 };
666 
667 const struct cpu_s w65c02 = {
668     "w65c02",
669     mnemonic_w65c02,
670     opcode_w65c02,
671     disasm_w65c02,
672     alias_w65c02,
673     0x1848001,
674     90,
675     0xffff,
676     48,
677     -1
678 };
679 
680 static const uint8_t opcode_c65ce02[] = {
681     118, 119, 2, 181, 182, 176, 177, 183, 184, 185, 184, 6, 183, 186, 187, 188,
682     189, 11, 190, 191, 192, 15, 16, 135, 17, 20, 120, 120, 23, 24, 193, 25,
683     194, 195, 27, 28, 92, 121, 30, 31, 32, 31, 30, 33, 34, 35, 36, 37,
684     38, 40, 196, 197, 42, 43, 87, 122, 198, 199, 113, 200, 201, 51, 202, 54,
685     124, 59, 63, 203, 64, 65, 39, 66, 69, 70, 71, 102, 179, 72, 73, 204,
686     74, 205, 206, 125, 78, 79, 207, 80, 2, 51, 180, 208, 209, 210, 19, 86,
687     88, 89, 62, 90, 91, 93, 94, 61, 95, 96, 98, 68, 75
688 };
689 
690 static const uint32_t mnemonic_c65ce02[] = {
691     0x616463, 0x616e64, 0x61736c, 0x617372, 0x617377, 0x626272, 0x626273, 0x626363,
692     0x626373, 0x626571, 0x626765, 0x626974, 0x626c74, 0x626d69, 0x626e65, 0x62706c,
693     0x627261, 0x62726b, 0x627372, 0x627663, 0x627673, 0x636c63, 0x636c64, 0x636c65,
694     0x636c69, 0x636c76, 0x636d70, 0x637061, 0x637078, 0x637079, 0x63707a, 0x646561,
695     0x646563, 0x646577, 0x646578, 0x646579, 0x64657a, 0x656f72, 0x676363, 0x676373,
696     0x676571, 0x676765, 0x676c74, 0x676d69, 0x676e65, 0x67706c, 0x677261, 0x677663,
697     0x677673, 0x696e61, 0x696e63, 0x696e77, 0x696e78, 0x696e79, 0x696e7a, 0x6a6d70,
698     0x6a7372, 0x6c6461, 0x6c6478, 0x6c6479, 0x6c647a, 0x6c7372, 0x6e6567, 0x6e6f70,
699     0x6f7261, 0x706861, 0x706870, 0x706877, 0x706878, 0x706879, 0x70687a, 0x706c61,
700     0x706c70, 0x706c78, 0x706c79, 0x706c7a, 0x726d62, 0x726f6c, 0x726f72, 0x726f77,
701     0x727469, 0x72746e, 0x727473, 0x736263, 0x736563, 0x736564, 0x736565, 0x736569,
702     0x73686c, 0x736872, 0x736d62, 0x737461, 0x737478, 0x737479, 0x73747a, 0x746162,
703     0x746178, 0x746179, 0x74617a, 0x746261, 0x747262, 0x747362, 0x747378, 0x747379,
704     0x747861, 0x747873, 0x747961, 0x747973, 0x747a61
705 };
706 
707 static const uint16_t disasm_c65ce02[] = {
708     0x0211, 0x0a40, 0x0117, 0x0156, 0x0565, 0x0540, 0x0502, 0x1a4c,
709     0x0142, 0x0240, 0x0002, 0x0167, 0x0465, 0x0440, 0x0402, 0x1b05,
710     0x160f, 0x1040, 0x1c40, 0x150f, 0x0564, 0x0840, 0x0802, 0x1a4c,
711     0x0115, 0x0d40, 0x0032, 0x0136, 0x0464, 0x0740, 0x0702, 0x1b05,
712     0x0438, 0x0a01, 0x1338, 0x0938, 0x050b, 0x0501, 0x054d, 0x1a4c,
713     0x0148, 0x0201, 0x004d, 0x016b, 0x040b, 0x0401, 0x044d, 0x1b05,
714     0x160d, 0x1001, 0x1c01, 0x150d, 0x080b, 0x0801, 0x084d, 0x1a4c,
715     0x0154, 0x0d01, 0x0020, 0x0124, 0x070b, 0x0701, 0x074d, 0x1b05,
716     0x0150, 0x0a25, 0x003e, 0x0003, 0x0503, 0x0525, 0x053d, 0x1a4c,
717     0x0141, 0x0225, 0x003d, 0x0162, 0x0437, 0x0425, 0x043d, 0x1b05,
718     0x1613, 0x1025, 0x1c25, 0x1513, 0x0803, 0x0825, 0x083d, 0x1a4c,
719     0x0118, 0x0d25, 0x0145, 0x015f, 0x013f, 0x0725, 0x073d, 0x1b05,
720     0x0152, 0x0a00, 0x0252, 0x1512, 0x055e, 0x0500, 0x054e, 0x1a4c,
721     0x0147, 0x0200, 0x004e, 0x016c, 0x1337, 0x0400, 0x044e, 0x1b05,
722     0x1614, 0x1000, 0x1c00, 0x1514, 0x085e, 0x0800, 0x084e, 0x1a4c,
723     0x0157, 0x0d00, 0x014a, 0x0163, 0x0937, 0x0700, 0x074e, 0x1b05,
724     0x1610, 0x0a5b, 0x0c5b, 0x1510, 0x055d, 0x055b, 0x055c, 0x1a5a,
725     0x0123, 0x020b, 0x0168, 0x075d, 0x045d, 0x045b, 0x045c, 0x1b06,
726     0x1607, 0x105b, 0x1c5b, 0x1507, 0x085d, 0x085b, 0x0e5c, 0x1a5a,
727     0x016a, 0x0d5b, 0x0169, 0x0d5c, 0x045e, 0x075b, 0x075e, 0x1b06,
728     0x023b, 0x0a39, 0x023a, 0x023c, 0x053b, 0x0539, 0x053a, 0x1a5a,
729     0x0161, 0x0239, 0x0160, 0x043c, 0x043b, 0x0439, 0x043a, 0x1b06,
730     0x1608, 0x1039, 0x1c39, 0x1508, 0x083b, 0x0839, 0x0e3a, 0x1a5a,
731     0x0119, 0x0d39, 0x0166, 0x073c, 0x073b, 0x0739, 0x0d3a, 0x1b06,
732     0x021d, 0x0a1a, 0x021e, 0x0521, 0x051d, 0x051a, 0x0520, 0x1a5a,
733     0x0135, 0x021a, 0x0122, 0x0404, 0x041d, 0x041a, 0x0420, 0x1b06,
734     0x160e, 0x101a, 0x1c1a, 0x150e, 0x051e, 0x081a, 0x0820, 0x1a5a,
735     0x0116, 0x0d1a, 0x0144, 0x0146, 0x041e, 0x071a, 0x0720, 0x1b06,
736     0x021c, 0x0a53, 0x0c39, 0x0533, 0x051c, 0x0553, 0x0532, 0x1a5a,
737     0x0134, 0x0253, 0x013f, 0x044f, 0x041c, 0x0453, 0x0432, 0x1b06,
738     0x1609, 0x1053, 0x1c53, 0x1509, 0x0243, 0x0853, 0x0832, 0x1a5a,
739     0x0155, 0x0d53, 0x0149, 0x014b, 0x0443, 0x0753, 0x0732, 0x1b06
740 };
741 
742 static const uint8_t alias_c65ce02[] = {
743     0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 11, 7, 13, 14, 15,
744     16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 26, 28, 29, 30, 32,
745     32, 33, 34, 35, 36, 37, 38, 39, 40, 39, 38, 43, 44, 45, 46, 47,
746     48, 50, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
747     64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
748     80, 82, 82, 83, 84, 85, 86, 87, 2, 61, 90, 91, 92, 93, 94, 95,
749     96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108
750 };
751 
752 const struct cpu_s c65ce02 = {
753     "65ce02",
754     mnemonic_c65ce02,
755     opcode_c65ce02,
756     disasm_c65ce02,
757     alias_c65ce02,
758     0x3848003,
759     109,
760     0xffff,
761     55,
762     -1
763 };
764 
765 static const uint8_t opcode_c4510[] = {
766     118, 119, 2, 181, 182, 176, 177, 183, 184, 185, 184, 6, 183, 186, 187, 188,
767     189, 11, 190, 191, 192, 15, 16, 135, 17, 20, 120, 120, 23, 24, 193, 25,
768     194, 195, 27, 28, 92, 54, 121, 30, 31, 32, 31, 30, 33, 34, 35, 36,
769     37, 38, 40, 196, 197, 42, 43, 87, 122, 198, 199, 113, 200, 201, 51, 174,
770     202, 54, 124, 59, 63, 203, 64, 65, 39, 66, 69, 70, 71, 102, 179, 72,
771     73, 204, 74, 205, 206, 125, 78, 79, 207, 80, 2, 51, 180, 208, 209, 210,
772     19, 86, 88, 89, 62, 90, 91, 93, 94, 61, 95, 96, 98, 68, 75
773 };
774 
775 static const uint32_t mnemonic_c4510[] = {
776     0x616463, 0x616e64, 0x61736c, 0x617372, 0x617377, 0x626272, 0x626273, 0x626363,
777     0x626373, 0x626571, 0x626765, 0x626974, 0x626c74, 0x626d69, 0x626e65, 0x62706c,
778     0x627261, 0x62726b, 0x627372, 0x627663, 0x627673, 0x636c63, 0x636c64, 0x636c65,
779     0x636c69, 0x636c76, 0x636d70, 0x637061, 0x637078, 0x637079, 0x63707a, 0x646561,
780     0x646563, 0x646577, 0x646578, 0x646579, 0x64657a, 0x656f6d, 0x656f72, 0x676363,
781     0x676373, 0x676571, 0x676765, 0x676c74, 0x676d69, 0x676e65, 0x67706c, 0x677261,
782     0x677663, 0x677673, 0x696e61, 0x696e63, 0x696e77, 0x696e78, 0x696e79, 0x696e7a,
783     0x6a6d70, 0x6a7372, 0x6c6461, 0x6c6478, 0x6c6479, 0x6c647a, 0x6c7372, 0x6d6170,
784     0x6e6567, 0x6e6f70, 0x6f7261, 0x706861, 0x706870, 0x706877, 0x706878, 0x706879,
785     0x70687a, 0x706c61, 0x706c70, 0x706c78, 0x706c79, 0x706c7a, 0x726d62, 0x726f6c,
786     0x726f72, 0x726f77, 0x727469, 0x72746e, 0x727473, 0x736263, 0x736563, 0x736564,
787     0x736565, 0x736569, 0x73686c, 0x736872, 0x736d62, 0x737461, 0x737478, 0x737479,
788     0x73747a, 0x746162, 0x746178, 0x746179, 0x74617a, 0x746261, 0x747262, 0x747362,
789     0x747378, 0x747379, 0x747861, 0x747873, 0x747961, 0x747973, 0x747a61
790 };
791 
792 static const uint16_t disasm_c4510[] = {
793     0x0211, 0x0a42, 0x0117, 0x0158, 0x0567, 0x0542, 0x0502, 0x1a4e,
794     0x0144, 0x0242, 0x0002, 0x0169, 0x0467, 0x0442, 0x0402, 0x1b05,
795     0x160f, 0x1042, 0x1c42, 0x150f, 0x0566, 0x0842, 0x0802, 0x1a4e,
796     0x0115, 0x0d42, 0x0033, 0x0137, 0x0466, 0x0742, 0x0702, 0x1b05,
797     0x0439, 0x0a01, 0x1339, 0x0939, 0x050b, 0x0501, 0x054f, 0x1a4e,
798     0x014a, 0x0201, 0x004f, 0x016d, 0x040b, 0x0401, 0x044f, 0x1b05,
799     0x160d, 0x1001, 0x1c01, 0x150d, 0x080b, 0x0801, 0x084f, 0x1a4e,
800     0x0156, 0x0d01, 0x0020, 0x0124, 0x070b, 0x0701, 0x074f, 0x1b05,
801     0x0152, 0x0a26, 0x0040, 0x0003, 0x0503, 0x0526, 0x053e, 0x1a4e,
802     0x0143, 0x0226, 0x003e, 0x0164, 0x0438, 0x0426, 0x043e, 0x1b05,
803     0x1613, 0x1026, 0x1c26, 0x1513, 0x0803, 0x0826, 0x083e, 0x1a4e,
804     0x0118, 0x0d26, 0x0147, 0x0161, 0x013f, 0x0726, 0x073e, 0x1b05,
805     0x0154, 0x0a00, 0x0254, 0x1512, 0x0560, 0x0500, 0x0550, 0x1a4e,
806     0x0149, 0x0200, 0x0050, 0x016e, 0x1338, 0x0400, 0x0450, 0x1b05,
807     0x1614, 0x1000, 0x1c00, 0x1514, 0x0860, 0x0800, 0x0850, 0x1a4e,
808     0x0159, 0x0d00, 0x014c, 0x0165, 0x0938, 0x0700, 0x0750, 0x1b05,
809     0x1610, 0x0a5d, 0x0c5d, 0x1510, 0x055f, 0x055d, 0x055e, 0x1a5c,
810     0x0123, 0x020b, 0x016a, 0x075f, 0x045f, 0x045d, 0x045e, 0x1b06,
811     0x1607, 0x105d, 0x1c5d, 0x1507, 0x085f, 0x085d, 0x0e5e, 0x1a5c,
812     0x016c, 0x0d5d, 0x016b, 0x0d5e, 0x0460, 0x075d, 0x0760, 0x1b06,
813     0x023c, 0x0a3a, 0x023b, 0x023d, 0x053c, 0x053a, 0x053b, 0x1a5c,
814     0x0163, 0x023a, 0x0162, 0x043d, 0x043c, 0x043a, 0x043b, 0x1b06,
815     0x1608, 0x103a, 0x1c3a, 0x1508, 0x083c, 0x083a, 0x0e3b, 0x1a5c,
816     0x0119, 0x0d3a, 0x0168, 0x073d, 0x073c, 0x073a, 0x0d3b, 0x1b06,
817     0x021d, 0x0a1a, 0x021e, 0x0521, 0x051d, 0x051a, 0x0520, 0x1a5c,
818     0x0136, 0x021a, 0x0122, 0x0404, 0x041d, 0x041a, 0x0420, 0x1b06,
819     0x160e, 0x101a, 0x1c1a, 0x150e, 0x051e, 0x081a, 0x0820, 0x1a5c,
820     0x0116, 0x0d1a, 0x0146, 0x0148, 0x041e, 0x071a, 0x0720, 0x1b06,
821     0x021c, 0x0a55, 0x0c3a, 0x0534, 0x051c, 0x0555, 0x0533, 0x1a5c,
822     0x0135, 0x0255, 0x0141, 0x0451, 0x041c, 0x0455, 0x0433, 0x1b06,
823     0x1609, 0x1055, 0x1c55, 0x1509, 0x0245, 0x0855, 0x0833, 0x1a5c,
824     0x0157, 0x0d55, 0x014b, 0x014d, 0x0445, 0x0755, 0x0733, 0x1b06
825 };
826 
827 static const uint8_t alias_c4510[] = {
828     0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 11, 7, 13, 14, 15,
829     16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 26, 28, 29, 30, 32,
830     32, 33, 34, 35, 36, 65, 38, 39, 40, 41, 40, 39, 44, 45, 46, 47,
831     48, 49, 51, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
832     64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
833     80, 81, 82, 84, 84, 85, 86, 87, 88, 89, 2, 62, 92, 93, 94, 95,
834     96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110
835 };
836 
837 const struct cpu_s c4510 = {
838     "4510",
839     mnemonic_c4510,
840     opcode_c4510,
841     disasm_c4510,
842     alias_c4510,
843     0x3848003,
844     111,
845     0xffff,
846     56,
847     -1
848 };
849 
850 const char *reg_names = "axysdrizbkp";
851 
852 const char * const addr_modes[ADR_LEN+1] = {
853     "a",      /* ADR_REG */
854     " ",      /* ADR_IMPLIED */
855     "#",      /* ADR_IMMEDIATE */
856     " ",      /* ADR_LONG */
857     " ",      /* ADR_ADDR */
858     " ",      /* ADR_ZP */
859     " ,x",    /* ADR_LONG_X */
860     " ,x",    /* ADR_ADDR_X */
861     " ,x",    /* ADR_ZP_X */
862     "(,x)",   /* ADR_ADDR_X_I */
863     "(,x)",   /* ADR_ZP_X_I */
864     " ,s",    /* ADR_ZP_S */
865     "(,s),y", /* ADR_ZP_S_I_Y */
866     " ,y",    /* ADR_ADDR_Y */
867     " ,y",    /* ADR_ZP_Y */
868     "[],y",   /* ADR_ZP_LI_Y */
869     "(),y",   /* ADR_ZP_I_Y */
870     "[]",     /* ADR_ADDR_LI */
871     "[]",     /* ADR_ZP_LI */
872     "()",     /* ADR_ADDR_I */
873     "()",     /* ADR_ZP_I */
874     " ",      /* ADR_REL_L */
875     " ",      /* ADR_REL */
876     "#",      /* ADR_MOVE */
877     " ,r",    /* ADR_ZP_R */
878     "(,r),y", /* ADR_ZP_R_I_Y */
879     " ",      /* ADR_BIT_ZP */
880     " ",      /* ADR_BIT_ZP_REL */
881     "(),z",   /* ADR_ZP_I_Z */
882 };
883 
884 const uint8_t regopcode_table[][REG_LEN] = {
885     { ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ___ */
886     { 0x0A, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ASL, SHL */
887     { 0x3A, 0xCA, 0x88, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DEC */
888     { 0x1A, 0xE8, 0xC8, ____, ____, ____, ____, ____, ____, ____, ____ }, /* INC */
889     { ____, 0x8A, 0x98, 0x3B, 0x7B, ____, ____, ____, ____, ____, ____ }, /* LDA */
890     { 0xAA, ____, 0xBB, 0xBA, ____, ____, ____, ____, ____, ____, ____ }, /* LDX */
891     { 0xA8, 0x9B, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDY */
892     { 0x4A, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LSR, SHR */
893     { 0x2A, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ROL */
894     { 0x6A, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ROR */
895     { ____, ____, ____, 0x1B, ____, ____, ____, ____, ____, ____, ____ }, /* STA */
896     { ____, ____, ____, 0x9A, ____, ____, ____, ____, ____, ____, ____ }, /* STX */
897     { ____, 0xCA, 0x88, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DEC */
898     { ____, 0xE8, 0xC8, ____, ____, ____, ____, ____, ____, ____, ____ }, /* INC */
899     { ____, 0x8A, 0x98, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDA */
900     { 0xAA, ____, ____, 0xBA, ____, ____, ____, ____, ____, ____, ____ }, /* LDX */
901     { 0xA8, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDY */
902     { ____, 0x8A, 0x98, ____, 0xAF, ____, ____, ____, ____, ____, ____ }, /* LDA */
903     { 0xAA, ____, 0xBB, 0xBA, ____, 0xAB, 0xDC, ____, ____, ____, ____ }, /* LDX */
904     { 0x43, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ASR */
905     { 0x3A, 0xCA, 0x88, ____, ____, ____, ____, 0x3B, ____, ____, ____ }, /* DEC */
906     { 0x1A, 0xE8, 0xC8, ____, ____, ____, ____, 0x1B, ____, ____, ____ }, /* INC */
907     { ____, 0x8A, 0x98, ____, ____, ____, ____, 0x6B, 0x7B, ____, ____ }, /* LDA */
908     { 0xA8, ____, ____, 0x0B, ____, ____, ____, ____, ____, ____, ____ }, /* LDY */
909     { 0x4B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDZ */
910     { 0x42, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* NEG */
911     { ____, ____, ____, ____, ____, ____, ____, ____, 0x5B, ____, ____ }, /* STA */
912     { ____, ____, ____, 0x2B, ____, ____, ____, ____, ____, ____, ____ }  /* STY */
913 };
914 
915 const uint8_t opcode_table[][ADR_LEN] = {
916     {  0, ____, 0x69, 0x6F, 0x6D, 0x65, 0x7F, 0x7D, 0x75, ____, 0x61, 0x63, 0x73, 0x79, ____, 0x77, 0x71, ____, 0x67, ____, 0x72, ____, ____, ____, ____, ____, ____, ____ }, /* ADC */
917     {  0, ____, 0x29, 0x2F, 0x2D, 0x25, 0x3F, 0x3D, 0x35, ____, 0x21, 0x23, 0x33, 0x39, ____, 0x37, 0x31, ____, 0x27, ____, 0x32, ____, ____, ____, ____, ____, ____, ____ }, /* AND */
918     {  1, 0x0A, ____, ____, 0x0E, 0x06, ____, 0x1E, 0x16, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ASL, SHL */
919     {  0, ____, 0x90, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x90, ____, ____, ____, ____, ____ }, /* BCC, BLT */
920     {  0, ____, 0xB0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xB0, ____, ____, ____, ____, ____ }, /* BCS, BGE */
921     {  0, ____, 0xF0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xF0, ____, ____, ____, ____, ____ }, /* BEQ */
922     {  0, ____, 0x89, ____, 0x2C, 0x24, ____, 0x3C, 0x34, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* BIT */
923     {  0, ____, 0x30, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x30, ____, ____, ____, ____, ____ }, /* BMI */
924     {  0, ____, 0xD0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xD0, ____, ____, ____, ____, ____ }, /* BNE */
925     {  0, ____, 0x10, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x10, ____, ____, ____, ____, ____ }, /* BPL */
926     {  0, ____, 0x80, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x80, ____, ____, ____, ____, ____ }, /* BRA */
927     {  0, 0x00, 0x00, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* BRK */
928     {  0, ____, 0x82, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x82, ____, ____, ____, ____, ____, ____ }, /* BRL */
929     {  0, ____, 0x50, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x50, ____, ____, ____, ____, ____ }, /* BVC */
930     {  0, ____, 0x70, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x70, ____, ____, ____, ____, ____ }, /* BVS */
931     {  0, 0x18, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* CLC */
932     {  0, 0xD8, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* CLD */
933     {  0, 0x58, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* CLI */
934     {  0, ____, 0xC2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* CLP, REP */
935     {  0, ____, ____, ____, 0x9C, 0x64, ____, 0x9E, 0x74, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* CLR, STZ */
936     {  0, 0xB8, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* CLV */
937     {  0, ____, 0xC9, 0xCF, 0xCD, 0xC5, 0xDF, 0xDD, 0xD5, ____, 0xC1, 0xC3, 0xD3, 0xD9, ____, 0xD7, 0xD1, ____, 0xC7, ____, 0xD2, ____, ____, ____, ____, ____, ____, ____ }, /* CMP, CPA */
938     {  0, 0x02, 0x02, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* COP, CSP */
939     {  0, ____, 0xE0, ____, 0xEC, 0xE4, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* CPX */
940     {  0, ____, 0xC0, ____, 0xCC, 0xC4, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* CPY */
941     {  0, 0x3A, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DEA */
942     {  2, ____, ____, ____, 0xCE, 0xC6, ____, 0xDE, 0xD6, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DEC */
943     {  0, 0xCA, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DEX */
944     {  0, 0x88, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DEY */
945     {  0, ____, 0x49, 0x4F, 0x4D, 0x45, 0x5F, 0x5D, 0x55, ____, 0x41, 0x43, 0x53, 0x59, ____, 0x57, 0x51, ____, 0x47, ____, 0x52, ____, ____, ____, ____, ____, ____, ____ }, /* EOR */
946     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x90, ____, ____, ____, ____, ____ }, /* GCC, GLT */
947     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xB0, ____, ____, ____, ____, ____ }, /* GCS, GGE */
948     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xF0, ____, ____, ____, ____, ____ }, /* GEQ */
949     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x30, ____, ____, ____, ____, ____ }, /* GMI */
950     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xD0, ____, ____, ____, ____, ____ }, /* GNE */
951     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x10, ____, ____, ____, ____, ____ }, /* GPL */
952     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x80, ____, ____, ____, ____, ____ }, /* GRA */
953     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x50, ____, ____, ____, ____, ____ }, /* GVC */
954     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x70, ____, ____, ____, ____, ____ }, /* GVS */
955     {  0, 0xDB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* HLT, PHZ, STP */
956     {  0, 0x1A, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* INA */
957     {  3, ____, ____, ____, 0xEE, 0xE6, ____, 0xFE, 0xF6, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* INC */
958     {  0, 0xE8, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* INX */
959     {  0, 0xC8, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* INY */
960     {  0, ____, ____, 0x5C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xDC, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* JML */
961     {  0, ____, ____, 0x5C, 0x4C, ____, ____, ____, ____, 0x7C, ____, ____, ____, ____, ____, ____, ____, 0xDC, ____, 0x6C, ____, ____, ____, ____, ____, ____, ____, ____ }, /* JMP */
962     {  0, ____, ____, 0x22, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* JSL */
963     {  0, ____, ____, ____, 0x20, ____, ____, ____, ____, 0xFC, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* JSR */
964     {  4, ____, 0xA9, 0xAF, 0xAD, 0xA5, 0xBF, 0xBD, 0xB5, ____, 0xA1, 0xA3, 0xB3, 0xB9, ____, 0xB7, 0xB1, ____, 0xA7, ____, 0xB2, ____, ____, ____, ____, ____, ____, ____ }, /* LDA */
965     {  5, ____, 0xA2, ____, 0xAE, 0xA6, ____, ____, ____, ____, ____, ____, ____, 0xBE, 0xB6, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDX */
966     {  6, ____, 0xA0, ____, 0xAC, 0xA4, ____, 0xBC, 0xB4, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDY */
967     {  7, 0x4A, ____, ____, 0x4E, 0x46, ____, 0x5E, 0x56, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LSR, SHR */
968     {  0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x54, ____, ____, ____, ____ }, /* MVN */
969     {  0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x44, ____, ____, ____, ____ }, /* MVP */
970     {  0, 0xEA, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* EOM, NOP */
971     {  0, ____, 0x09, 0x0F, 0x0D, 0x05, 0x1F, 0x1D, 0x15, ____, 0x01, 0x03, 0x13, 0x19, ____, 0x17, 0x11, ____, 0x07, ____, 0x12, ____, ____, ____, ____, ____, ____, ____ }, /* ORA */
972     {  0, ____, 0xF4, ____, 0xF4, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PEA */
973     {  0, ____, ____, ____, ____, 0xD4, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xD4, ____, ____, ____, ____, ____, ____, ____ }, /* PEI */
974     {  0, ____, 0x62, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x62, ____, ____, ____, ____, ____, ____ }, /* PER */
975     {  0, 0x48, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PHA */
976     {  0, 0x8B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PHB, TXR */
977     {  0, 0x0B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PHD, RHI, TSY */
978     {  0, 0x4B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PHK, RHA, TAZ */
979     {  0, 0x08, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PHP */
980     {  0, 0xDA, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PHX */
981     {  0, 0x5A, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PHY */
982     {  0, 0x68, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PLA */
983     {  0, 0xAB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PLB, TRX */
984     {  0, 0x2B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PLD, RLI, TYS */
985     {  0, 0x28, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PLP */
986     {  0, 0xFA, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PLX */
987     {  0, 0x7A, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PLY */
988     {  8, 0x2A, ____, ____, 0x2E, 0x26, ____, 0x3E, 0x36, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ROL */
989     {  9, 0x6A, ____, ____, 0x6E, 0x66, ____, 0x7E, 0x76, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ROR */
990     {  0, 0x40, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* RTI */
991     {  0, 0x6B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* RLA, RTL, TZA */
992     {  0, 0x60, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* RTS */
993     {  0, ____, 0xE9, 0xEF, 0xED, 0xE5, 0xFF, 0xFD, 0xF5, ____, 0xE1, 0xE3, 0xF3, 0xF9, ____, 0xF7, 0xF1, ____, 0xE7, ____, 0xF2, ____, ____, ____, ____, ____, ____, ____ }, /* SBC */
994     {  0, 0x38, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SEC */
995     {  0, 0xF8, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SED */
996     {  0, 0x78, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SEI */
997     {  0, ____, 0xE2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SEP */
998     { 10, ____, ____, 0x8F, 0x8D, 0x85, 0x9F, 0x9D, 0x95, ____, 0x81, 0x83, 0x93, 0x99, ____, 0x97, 0x91, ____, 0x87, ____, 0x92, ____, ____, ____, ____, ____, ____, ____ }, /* STA */
999     { 11, ____, ____, ____, 0x8E, 0x86, ____, ____, ____, ____, ____, ____, ____, ____, 0x96, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* STX */
1000     {  0, ____, ____, ____, 0x8C, 0x84, ____, ____, 0x94, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* STY */
1001     {  0, 0xEB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SWA, XBA */
1002     {  0, 0x5B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* RHY, TAB, TAD, TCD */
1003     {  0, 0x1B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* INZ, RHX, TAS, TCS */
1004     {  0, 0xAA, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TAX */
1005     {  0, 0xA8, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TAY */
1006     {  0, 0x7B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* RLY, TBA, TDA, TDC */
1007     {  0, ____, ____, ____, 0x1C, 0x14, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TRB */
1008     {  0, 0x3B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DEZ, RLX, TSA, TSC */
1009     {  0, ____, ____, ____, 0x0C, 0x04, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TSB */
1010     {  0, 0xBA, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TSX */
1011     {  0, 0x8A, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TXA */
1012     {  0, 0x9A, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TXS */
1013     {  0, 0x9B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TXY */
1014     {  0, 0x98, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TYA */
1015     {  0, 0xBB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TYX */
1016     {  0, 0xCB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* WAI */
1017     {  0, ____, 0x42, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SIR, WDM */
1018     {  0, 0xFB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PLZ, XCE */
1019     {  0, ____, 0x69, ____, 0x6D, 0x65, ____, 0x7D, 0x75, ____, 0x61, ____, ____, 0x79, ____, ____, 0x71, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ADC */
1020     {  0, ____, 0x29, ____, 0x2D, 0x25, ____, 0x3D, 0x35, ____, 0x21, ____, ____, 0x39, ____, ____, 0x31, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* AND */
1021     {  0, ____, ____, ____, 0x2C, 0x24, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* BIT */
1022     {  0, ____, 0xC9, ____, 0xCD, 0xC5, ____, 0xDD, 0xD5, ____, 0xC1, ____, ____, 0xD9, ____, ____, 0xD1, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* CMP, CPA */
1023     { 12, ____, ____, ____, 0xCE, 0xC6, ____, 0xDE, 0xD6, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DEC */
1024     {  0, ____, 0x49, ____, 0x4D, 0x45, ____, 0x5D, 0x55, ____, 0x41, ____, ____, 0x59, ____, ____, 0x51, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* EOR */
1025     { 13, ____, ____, ____, 0xEE, 0xE6, ____, 0xFE, 0xF6, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* INC */
1026     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x6C, ____, ____, ____, ____, ____, ____, ____, ____ }, /* JMP */
1027     {  0, ____, ____, ____, 0x20, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* JSR */
1028     { 14, ____, 0xA9, ____, 0xAD, 0xA5, ____, 0xBD, 0xB5, ____, 0xA1, ____, ____, 0xB9, ____, ____, 0xB1, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDA */
1029     { 15, ____, 0xA2, ____, 0xAE, 0xA6, ____, ____, ____, ____, ____, ____, ____, 0xBE, 0xB6, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDX */
1030     { 16, ____, 0xA0, ____, 0xAC, 0xA4, ____, 0xBC, 0xB4, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDY */
1031     {  0, ____, 0x09, ____, 0x0D, 0x05, ____, 0x1D, 0x15, ____, 0x01, ____, ____, 0x19, ____, ____, 0x11, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ORA */
1032     {  0, ____, 0xE9, ____, 0xED, 0xE5, ____, 0xFD, 0xF5, ____, 0xE1, ____, ____, 0xF9, ____, ____, 0xF1, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SBC */
1033     {  0, ____, ____, ____, 0x8D, 0x85, ____, 0x9D, 0x95, ____, 0x81, ____, ____, 0x99, ____, ____, 0x91, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* STA */
1034     {  0, ____, 0x69, ____, 0x6D, 0x65, ____, 0x7D, 0x75, ____, 0x61, ____, ____, 0x79, ____, ____, 0x71, ____, ____, ____, 0x72, ____, ____, ____, ____, ____, ____, ____ }, /* ADC */
1035     {  0, ____, 0x29, ____, 0x2D, 0x25, ____, 0x3D, 0x35, ____, 0x21, ____, ____, 0x39, ____, ____, 0x31, ____, ____, ____, 0x32, ____, ____, ____, ____, ____, ____, ____ }, /* AND */
1036     {  0, ____, 0xC9, ____, 0xCD, 0xC5, ____, 0xDD, 0xD5, ____, 0xC1, ____, ____, 0xD9, ____, ____, 0xD1, ____, ____, ____, 0xD2, ____, ____, ____, ____, ____, ____, ____ }, /* CMP, CPA */
1037     {  0, ____, 0x49, ____, 0x4D, 0x45, ____, 0x5D, 0x55, ____, 0x41, ____, ____, 0x59, ____, ____, 0x51, ____, ____, ____, 0x52, ____, ____, ____, ____, ____, ____, ____ }, /* EOR */
1038     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, 0x7C, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x6C, ____, ____, ____, ____, ____, ____, ____, ____ }, /* JMP */
1039     { 14, ____, 0xA9, ____, 0xAD, 0xA5, ____, 0xBD, 0xB5, ____, 0xA1, ____, ____, 0xB9, ____, ____, 0xB1, ____, ____, ____, 0xB2, ____, ____, ____, ____, ____, ____, ____ }, /* LDA */
1040     {  0, ____, 0x09, ____, 0x0D, 0x05, ____, 0x1D, 0x15, ____, 0x01, ____, ____, 0x19, ____, ____, 0x11, ____, ____, ____, 0x12, ____, ____, ____, ____, ____, ____, ____ }, /* ORA */
1041     {  0, ____, 0xE9, ____, 0xED, 0xE5, ____, 0xFD, 0xF5, ____, 0xE1, ____, ____, 0xF9, ____, ____, 0xF1, ____, ____, ____, 0xF2, ____, ____, ____, ____, ____, ____, ____ }, /* SBC */
1042     {  0, ____, ____, ____, 0x8D, 0x85, ____, 0x9D, 0x95, ____, 0x81, ____, ____, 0x99, ____, ____, 0x91, ____, ____, ____, 0x92, ____, ____, ____, ____, ____, ____, ____ }, /* STA */
1043     {  0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x9F, ____, ____, 0x93, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* AHX, SHA */
1044     {  0, ____, 0x4B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ALR, ASR */
1045     {  0, ____, 0x0B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ANC */
1046     {  0, ____, 0x8B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ANE, XAA */
1047     {  0, ____, 0x6B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ARR */
1048     {  0, ____, 0xCB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* AXS, SBX */
1049     {  0, ____, ____, ____, 0xCF, 0xC7, ____, 0xDF, 0xD7, ____, 0xC3, ____, ____, 0xDB, ____, ____, 0xD3, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DCM, DCP */
1050     {  0, ____, ____, ____, 0xEF, 0xE7, ____, 0xFF, 0xF7, ____, 0xE3, ____, ____, 0xFB, ____, ____, 0xF3, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* INS, ISB, ISC */
1051     {  0, 0x02, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* CLE, JAM, NXT */
1052     {  0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xBB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LAE, LAS, LDS */
1053     {  0, ____, 0xAB, ____, 0xAF, 0xA7, ____, ____, ____, ____, 0xA3, ____, ____, 0xBF, 0xB7, ____, 0xB3, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LAX */
1054     {  0, ____, 0xAB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LXA */
1055     {  0, 0xEA, 0x80, ____, 0x0C, 0x04, ____, 0x1C, 0x14, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* NOP */
1056     {  0, ____, ____, ____, 0x2F, 0x27, ____, 0x3F, 0x37, ____, 0x23, ____, ____, 0x3B, ____, ____, 0x33, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* RLA */
1057     {  0, ____, ____, ____, 0x6F, 0x67, ____, 0x7F, 0x77, ____, 0x63, ____, ____, 0x7B, ____, ____, 0x73, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* RRA */
1058     {  0, ____, ____, ____, 0x8F, 0x87, ____, ____, ____, ____, 0x83, ____, ____, ____, 0x97, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SAX */
1059     {  0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x9B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SHS, TAS */
1060     {  0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x9E, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SHX */
1061     {  0, ____, ____, ____, ____, ____, ____, 0x9C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SHY */
1062     {  0, ____, ____, ____, 0x0F, 0x07, ____, 0x1F, 0x17, ____, 0x03, ____, ____, 0x1B, ____, ____, 0x13, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SLO */
1063     {  0, ____, ____, ____, 0x4F, 0x47, ____, 0x5F, 0x57, ____, 0x43, ____, ____, 0x5B, ____, ____, 0x53, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SRE */
1064     {  0, ____, 0x12, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x12, ____, ____, ____, ____, ____ }, /* BRA */
1065     {  0, ____, ____, ____, 0x4C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x12, ____, ____, ____, ____, ____ }, /* GRA */
1066     {  0, ____, 0x32, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SAC */
1067     {  0, ____, 0x69, ____, 0x6D, 0x65, ____, 0x7D, 0x75, ____, 0x61, 0x63, 0x73, 0x79, ____, ____, 0x71, ____, ____, ____, 0x72, ____, ____, ____, 0x67, 0x77, ____, ____ }, /* ADC */
1068     {  0, ____, 0x29, ____, 0x2D, 0x25, ____, 0x3D, 0x35, ____, 0x21, 0x23, 0x33, 0x39, ____, ____, 0x31, ____, ____, ____, 0x32, ____, ____, ____, 0x27, 0x37, ____, ____ }, /* AND */
1069     {  0, ____, 0xC9, ____, 0xCD, 0xC5, ____, 0xDD, 0xD5, ____, 0xC1, 0xC3, 0xD3, 0xD9, ____, ____, 0xD1, ____, ____, ____, 0xD2, ____, ____, ____, 0xC7, 0xD7, ____, ____ }, /* CMP, CPA */
1070     {  0, ____, ____, ____, 0x6F, 0x4F, ____, 0x7F, 0x5F, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DIV */
1071     {  0, 0x22, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ENT */
1072     {  0, ____, 0x49, ____, 0x4D, 0x45, ____, 0x5D, 0x55, ____, 0x41, 0x43, 0x53, 0x59, ____, ____, 0x51, ____, ____, ____, 0x52, ____, ____, ____, 0x47, 0x57, ____, ____ }, /* EOR */
1073     { 17, ____, 0xA9, ____, 0xAD, 0xA5, ____, 0xBD, 0xB5, ____, 0xA1, 0xA3, 0xB3, 0xB9, ____, ____, 0xB1, ____, ____, ____, 0xB2, ____, ____, ____, 0xA7, 0xB7, ____, ____ }, /* LDA */
1074     { 18, ____, 0xA2, ____, 0xAE, 0xA6, ____, ____, ____, ____, ____, ____, ____, 0xBE, 0xB6, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDX */
1075     {  0, ____, 0xEF, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* MMU */
1076     {  0, ____, ____, ____, 0x2F, 0x0F, ____, 0x3F, 0x1F, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* MUL */
1077     {  0, 0x42, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* NXA */
1078     {  0, ____, 0x09, ____, 0x0D, 0x05, ____, 0x1D, 0x15, ____, 0x01, 0x03, 0x13, 0x19, ____, ____, 0x11, ____, ____, ____, 0x12, ____, ____, ____, 0x07, 0x17, ____, ____ }, /* ORA */
1079     {  0, 0xDF, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PHD */
1080     {  0, 0xCF, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PLD */
1081     {  0, ____, 0x44, ____, 0x44, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* REA */
1082     {  0, ____, ____, ____, ____, 0x54, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x54, ____, ____, ____, ____, ____, ____, ____ }, /* REI */
1083     {  0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x82, ____, ____, ____, ____, ____ }, /* RER */
1084     {  0, ____, 0xE9, ____, 0xED, 0xE5, ____, 0xFD, 0xF5, ____, 0xE1, 0xE3, 0xF3, 0xF9, ____, ____, 0xF1, ____, ____, ____, 0xF2, ____, ____, ____, 0xE7, 0xF7, ____, ____ }, /* SBC */
1085     {  0, 0x9F, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SEA */
1086     {  0, ____, ____, ____, 0x8D, 0x85, ____, 0x9D, 0x95, ____, 0x81, 0x83, 0x93, 0x99, ____, ____, 0x91, ____, ____, ____, 0x92, ____, ____, ____, 0x87, 0x97, ____, ____ }, /* STA */
1087     {  0, 0xBF, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TAD */
1088     {  0, 0xAF, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TDA */
1089     {  0, 0xDC, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* TIX */
1090     {  0, 0x5C, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* MAP, TXI */
1091     {  0, 0x8F, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ZEA */
1092     {  0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x0F }, /* BBR */
1093     {  0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x8F }, /* BBS */
1094     {  0, 0xEA, 0x82, ____, 0xDC, 0x44, ____, ____, 0x54, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* NOP */
1095     {  0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x07, ____ }, /* RMB */
1096     {  0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x87, ____ }, /* SMB */
1097     { 19, 0x43, ____, ____, ____, 0x44, ____, ____, 0x54, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ASR */
1098     {  0, ____, ____, ____, 0xCB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ASW */
1099     {  0, ____, 0x90, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x93, 0x90, ____, ____, ____, ____, ____ }, /* BCC, BLT */
1100     {  0, ____, 0xB0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xB3, 0xB0, ____, ____, ____, ____, ____ }, /* BCS, BGE */
1101     {  0, ____, 0xF0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xF3, 0xF0, ____, ____, ____, ____, ____ }, /* BEQ */
1102     {  0, ____, 0x30, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x33, 0x30, ____, ____, ____, ____, ____ }, /* BMI */
1103     {  0, ____, 0xD0, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0xD3, 0xD0, ____, ____, ____, ____, ____ }, /* BNE */
1104     {  0, ____, 0x10, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x13, 0x10, ____, ____, ____, ____, ____ }, /* BPL */
1105     {  0, ____, 0x80, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x83, 0x80, ____, ____, ____, ____, ____ }, /* BRA */
1106     {  0, ____, 0x63, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x63, ____, ____, ____, ____, ____, ____ }, /* BSR */
1107     {  0, ____, 0x50, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x53, 0x50, ____, ____, ____, ____, ____ }, /* BVC */
1108     {  0, ____, 0x70, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x73, 0x70, ____, ____, ____, ____, ____ }, /* BVS */
1109     {  0, ____, 0xC2, ____, 0xDC, 0xD4, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* CPZ */
1110     { 20, ____, ____, ____, 0xCE, 0xC6, ____, 0xDE, 0xD6, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DEC */
1111     {  0, ____, ____, ____, ____, 0xC3, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* DEW */
1112     { 21, ____, ____, ____, 0xEE, 0xE6, ____, 0xFE, 0xF6, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* INC */
1113     {  0, ____, ____, ____, ____, 0xE3, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* INW */
1114     {  0, ____, ____, ____, 0x20, ____, ____, ____, ____, 0x23, ____, ____, ____, ____, ____, ____, ____, ____, ____, 0x22, ____, ____, ____, ____, ____, ____, ____, ____ }, /* JSR */
1115     { 22, ____, 0xA9, ____, 0xAD, 0xA5, ____, 0xBD, 0xB5, ____, 0xA1, ____, 0xE2, 0xB9, ____, ____, 0xB1, ____, ____, ____, 0xB2, ____, ____, ____, ____, ____, ____, ____ }, /* LDA */
1116     { 23, ____, 0xA0, ____, 0xAC, 0xA4, ____, 0xBC, 0xB4, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDY */
1117     { 24, ____, 0xA3, ____, 0xAB, ____, ____, 0xBB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* LDZ */
1118     { 25, 0x42, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* NEG */
1119     {  0, ____, 0xF4, ____, 0xFC, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* PHW */
1120     {  0, ____, ____, ____, 0xEB, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* ROW */
1121     {  0, ____, 0x62, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* RTN */
1122     {  0, 0x60, 0x62, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* RTS */
1123     {  0, 0x03, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* SEE */
1124     { 26, ____, ____, ____, 0x8D, 0x85, ____, 0x9D, 0x95, ____, 0x81, ____, 0x82, 0x99, ____, ____, 0x91, ____, ____, ____, 0x92, ____, ____, ____, ____, ____, ____, ____ }, /* STA */
1125     { 11, ____, ____, ____, 0x8E, 0x86, ____, ____, ____, ____, ____, ____, ____, 0x9B, 0x96, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }, /* STX */
1126     { 27, ____, ____, ____, 0x8C, 0x84, ____, 0x8B, 0x94, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ }  /* STY */
1127 };
1128