snes_utils 0.1.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/png2snes +20 -1
- data/bin/tmx2snes +2 -1
- data/bin/vas +17 -0
- data/lib/mini_assembler/definitions.rb +16 -9
- data/lib/mini_assembler/mini_assembler.rb +236 -88
- data/lib/mini_assembler/spc700/definitions.rb +457 -455
- data/lib/mini_assembler/superfx/definitions.rb +158 -0
- data/lib/mini_assembler/wdc65816/definitions.rb +61 -59
- data/lib/png2snes/png2snes.rb +53 -21
- data/lib/snes_utils.rb +4 -4
- data/lib/tmx2snes/tmx2snes.rb +2 -7
- data/lib/vas/vas.rb +609 -0
- data/spec/mini_assembler_spec.rb +136 -0
- data/spec/spc700_spec.rb +322 -0
- data/spec/spec_helper.rb +100 -0
- data/spec/vas_spec.rb +5 -0
- data/spec/wdc65816_spec.rb +322 -0
- metadata +21 -26
@@ -1,470 +1,472 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SnesUtils
|
2
4
|
module Spc700
|
3
5
|
class Definitions
|
4
6
|
HEX_DIGIT = '[0-9a-f]'
|
5
|
-
BIT =
|
7
|
+
BIT = '([0-7])'
|
6
8
|
HEX8 = "\\$?(#{HEX_DIGIT}{1,2})"
|
7
9
|
HEX16 = "\\$?(#{HEX_DIGIT}{3,4})"
|
8
10
|
|
9
|
-
SINGLE_OPERAND_INSTRUCTIONS = [
|
10
|
-
DOUBLE_OPERAND_INSTRUCTIONS = [
|
11
|
-
REL_INSTRUCTIONS = [
|
12
|
-
BIT_INSTRUCTIONS = [
|
11
|
+
SINGLE_OPERAND_INSTRUCTIONS = %i[abs abspxa abspya absa absx absy absix dpixacc dpiyacc accabs accabsx accabsy accimp accdpix accdpiy accdp accdpx dp dppx dppxa dppxy dppyx dpa dpx dpy dpya dp0 dp1 dp2 dp3 dp4 dp5 dp6 dp7 rel upage xabs ximm xdp xdpy yabs yimm ydp ydpx yrel yadp].freeze
|
12
|
+
DOUBLE_OPERAND_INSTRUCTIONS = %i[cnmb cmb dpxrel dpimm dprel dp0rel dp1rel dp2rel dp3rel dp4rel dp5rel dp6rel dp7rel ddds mb mbc].freeze
|
13
|
+
REL_INSTRUCTIONS = %i[dpxrel dprel dp0rel dp1rel dp2rel dp3rel dp4rel dp5rel dp6rel dp7rel rel yrel].freeze
|
14
|
+
BIT_INSTRUCTIONS = %i[cnmb cmb mb mbc].freeze
|
13
15
|
|
14
16
|
MODES_REGEXES = {
|
15
|
-
imp:
|
16
|
-
abs:
|
17
|
-
abspxa:
|
18
|
-
abspya:
|
19
|
-
absa:
|
20
|
-
absx:
|
21
|
-
absy:
|
22
|
-
idxpacc:
|
23
|
-
idxidy:
|
24
|
-
idxacc:
|
25
|
-
t0:
|
26
|
-
t1:
|
27
|
-
t2:
|
28
|
-
t3:
|
29
|
-
t4:
|
30
|
-
t5:
|
31
|
-
t6:
|
32
|
-
t7:
|
33
|
-
t8:
|
34
|
-
t9:
|
35
|
-
t10:
|
36
|
-
t11:
|
37
|
-
t12:
|
38
|
-
t13:
|
39
|
-
t14:
|
40
|
-
t15:
|
41
|
-
absix:
|
42
|
-
dpixacc:
|
43
|
-
dpiyacc:
|
44
|
-
acc:
|
45
|
-
accabs:
|
46
|
-
accabsx:
|
47
|
-
accabsy:
|
48
|
-
accimp:
|
49
|
-
accidx:
|
50
|
-
accidxp:
|
51
|
-
accdpix:
|
52
|
-
accdpiy:
|
53
|
-
accdp:
|
54
|
-
accdpx:
|
55
|
-
accx:
|
56
|
-
accy:
|
57
|
-
cnmb:
|
58
|
-
cmb:
|
59
|
-
dp:
|
60
|
-
dppx:
|
61
|
-
dppxa:
|
62
|
-
dpxrel:
|
63
|
-
dppxy:
|
64
|
-
dppyx:
|
65
|
-
dpimm:
|
66
|
-
dpa:
|
67
|
-
dprel:
|
68
|
-
dpx:
|
69
|
-
dpy:
|
70
|
-
dpya:
|
71
|
-
dp0:
|
72
|
-
dp0rel:
|
73
|
-
dp1:
|
74
|
-
dp1rel:
|
75
|
-
dp2:
|
76
|
-
dp2rel:
|
77
|
-
dp3:
|
78
|
-
dp3rel:
|
79
|
-
dp4:
|
80
|
-
dp4rel:
|
81
|
-
dp5:
|
82
|
-
dp5rel:
|
83
|
-
dp6:
|
84
|
-
dp6rel:
|
85
|
-
dp7:
|
86
|
-
dp7rel:
|
87
|
-
ddds:
|
88
|
-
mb:
|
89
|
-
mbc:
|
90
|
-
psw:
|
91
|
-
rel:
|
92
|
-
spx:
|
93
|
-
upage:
|
94
|
-
x:
|
95
|
-
xabs:
|
96
|
-
ximm:
|
97
|
-
xa:
|
98
|
-
xdp:
|
99
|
-
xdpy:
|
100
|
-
xsp:
|
101
|
-
y:
|
102
|
-
yabs:
|
103
|
-
yimm:
|
104
|
-
yacc:
|
105
|
-
ydp:
|
106
|
-
ydpx:
|
107
|
-
yrel:
|
108
|
-
ya:
|
109
|
-
yadp:
|
110
|
-
yax:
|
111
|
-
}
|
17
|
+
imp: /^$/,
|
18
|
+
abs: /^#{HEX16}$/i, # !a
|
19
|
+
abspxa: /^#{HEX16}\+x,a$/i, # !a+X, A
|
20
|
+
abspya: /^#{HEX16}\+y,a$/i, # !a+Y, A
|
21
|
+
absa: /^#{HEX16},a$/i, # !a, A
|
22
|
+
absx: /^#{HEX16},x$/i, # !a, X
|
23
|
+
absy: /^#{HEX16},y$/i, # !a, Y
|
24
|
+
idxpacc: /^\(x\)\+,a$/i, # (X)+, A
|
25
|
+
idxidy: /^\(x\),\(y\)$/i, # (X), (Y)
|
26
|
+
idxacc: /^\(x\),a$/i, # (X), A
|
27
|
+
t0: /^0$/i, # 0
|
28
|
+
t1: /^1$/i, # 1
|
29
|
+
t2: /^2$/i, # 2
|
30
|
+
t3: /^3$/i, # 3
|
31
|
+
t4: /^4$/i, # 4
|
32
|
+
t5: /^5$/i, # 5
|
33
|
+
t6: /^6$/i, # 6
|
34
|
+
t7: /^7$/i, # 7
|
35
|
+
t8: /^8$/i, # 8
|
36
|
+
t9: /^9$/i, # 9
|
37
|
+
t10: /^10$/i, # 10
|
38
|
+
t11: /^11$/i, # 11
|
39
|
+
t12: /^12$/i, # 12
|
40
|
+
t13: /^13$/i, # 13
|
41
|
+
t14: /^14$/i, # 14
|
42
|
+
t15: /^15$/i, # 15
|
43
|
+
absix: /^\[#{HEX16}\+x\]$/i, # [!a+X]
|
44
|
+
dpixacc: /^\[#{HEX8}\+x\],a$/i, # [d+X], A
|
45
|
+
dpiyacc: /^\[#{HEX8}\]\+y,a$/i, # [d]+Y, A
|
46
|
+
acc: /^a$/i, # A
|
47
|
+
accabs: /^a,#{HEX16}$/i, # A, !a
|
48
|
+
accabsx: /^a,#{HEX16}\+x$/i, # A, !a+X
|
49
|
+
accabsy: /^a,#{HEX16}\+y$/i, # A, !a+Y
|
50
|
+
accimp: /^a,##{HEX8}$/i, # A, #i
|
51
|
+
accidx: /^a,\(x\)$/i, # A, (X)
|
52
|
+
accidxp: /^a,\(x\)\+$/i, # A, (X)+
|
53
|
+
accdpix: /^a,\[#{HEX8}\+x\]$/i, # A, [d+X]
|
54
|
+
accdpiy: /^a,\[#{HEX8}\]\+y$/i, # A, [d]+Y
|
55
|
+
accdp: /^a,#{HEX8}$/i, # A, d
|
56
|
+
accdpx: /^a,#{HEX8}\+x$/i, # A, d+X
|
57
|
+
accx: /^a,x$/i, # A, X
|
58
|
+
accy: /^a,y$/i, # A, Y
|
59
|
+
cnmb: %r{^c,/#{HEX16}\.#{BIT}$}i, # C, /m.b
|
60
|
+
cmb: /^c,#{HEX16}\.#{BIT}$/i, # C, m.b
|
61
|
+
dp: /^#{HEX8}$/i, # d
|
62
|
+
dppx: /^#{HEX8}\+x$/i, # d+X
|
63
|
+
dppxa: /^#{HEX8}\+x,a$/i, # d+X, A
|
64
|
+
dpxrel: /^#{HEX8}\+x,#{HEX16}$/i, # d+X, r
|
65
|
+
dppxy: /^#{HEX8}\+x,y$/i, # d+X, Y
|
66
|
+
dppyx: /^#{HEX8}\+y,x$/i, # d+Y, X
|
67
|
+
dpimm: /^#{HEX8},##{HEX8}$/i, # d, #i
|
68
|
+
dpa: /^#{HEX8},a$/i, # d, A
|
69
|
+
dprel: /^#{HEX8},#{HEX16}$/i, # d, r
|
70
|
+
dpx: /^#{HEX8},x$/i, # d, X
|
71
|
+
dpy: /^#{HEX8},y$/i, # d, Y
|
72
|
+
dpya: /^#{HEX8},ya$/i, # d, YA
|
73
|
+
dp0: /^#{HEX8}\.0$/i, # d.0
|
74
|
+
dp0rel: /^#{HEX8}\.0,#{HEX16}$/i, # d.0, r
|
75
|
+
dp1: /^#{HEX8}\.1$/i, # d.1
|
76
|
+
dp1rel: /^#{HEX8}\.1,#{HEX16}$/i, # d.1, r
|
77
|
+
dp2: /^#{HEX8}\.2$/i, # d.2
|
78
|
+
dp2rel: /^#{HEX8}\.2,#{HEX16}$/i, # d.2, r
|
79
|
+
dp3: /^#{HEX8}\.3$/i, # d.3
|
80
|
+
dp3rel: /^#{HEX8}\.3,#{HEX16}$/i, # d.3, r
|
81
|
+
dp4: /^#{HEX8}\.4$/i, # d.4
|
82
|
+
dp4rel: /^#{HEX8}\.4,#{HEX16}$/i, # d.4, r
|
83
|
+
dp5: /^#{HEX8}\.5$/i, # d.5
|
84
|
+
dp5rel: /^#{HEX8}\.5,#{HEX16}$/i, # d.5, r
|
85
|
+
dp6: /^#{HEX8}\.6$/i, # d.6
|
86
|
+
dp6rel: /^#{HEX8}\.6,#{HEX16}$/i, # d.6, r
|
87
|
+
dp7: /^#{HEX8}\.7$/i, # d.7
|
88
|
+
dp7rel: /^#{HEX8}\.7,#{HEX16}$/i, # d.7, r
|
89
|
+
ddds: /^#{HEX8}<d>,#{HEX8}<s>$/i, # d<d>, d<s>
|
90
|
+
mb: /^#{HEX16}\.#{BIT}$/i, # m.b
|
91
|
+
mbc: /^#{HEX16}\.#{BIT},c$/i, # m.b, C
|
92
|
+
psw: /^psw$/i, # PSW
|
93
|
+
rel: /^#{HEX16}$/i, # r
|
94
|
+
spx: /^sp,x$/i, # SP, X
|
95
|
+
upage: /^#{HEX8}$/i, # u
|
96
|
+
x: /^x$/i, # X
|
97
|
+
xabs: /^x,#{HEX16}$/i, # X, !a
|
98
|
+
ximm: /^x,##{HEX8}$/i, # X, #i
|
99
|
+
xa: /^x,a$/i, # X, A
|
100
|
+
xdp: /^x,#{HEX8}$/i, # X, d
|
101
|
+
xdpy: /^x,#{HEX8}\+y$/i, # X, d+Y
|
102
|
+
xsp: /^x,sp$/i, # X, SP
|
103
|
+
y: /^y$/i, # Y
|
104
|
+
yabs: /^y,#{HEX16}$/i, # Y, !a
|
105
|
+
yimm: /^y,##{HEX8}$/i, # Y, #i
|
106
|
+
yacc: /^y,a$/i, # Y, A
|
107
|
+
ydp: /^y,#{HEX8}$/i, # Y, d
|
108
|
+
ydpx: /^y,#{HEX8}\+x$/i, # Y, d+X
|
109
|
+
yrel: /^y,#{HEX16}$/i, # Y, r
|
110
|
+
ya: /^ya$/i, # YA
|
111
|
+
yadp: /^ya,#{HEX8}$/i, # YA, d
|
112
|
+
yax: /^ya,x$/i # YA, X
|
113
|
+
}.freeze
|
112
114
|
|
113
115
|
MODES_FORMATS = {
|
114
|
-
imp:
|
115
|
-
abs:
|
116
|
-
abspxa:
|
117
|
-
abspya:
|
118
|
-
absa:
|
119
|
-
absx:
|
120
|
-
absy:
|
121
|
-
idxpacc:
|
122
|
-
idxidy:
|
123
|
-
idxacc:
|
124
|
-
t0:
|
125
|
-
t1:
|
126
|
-
t2:
|
127
|
-
t3:
|
128
|
-
t4:
|
129
|
-
t5:
|
130
|
-
t6:
|
131
|
-
t7:
|
132
|
-
t8:
|
133
|
-
t9:
|
134
|
-
t10:
|
135
|
-
t11:
|
136
|
-
t12:
|
137
|
-
t13:
|
138
|
-
t14:
|
139
|
-
t15:
|
140
|
-
absix:
|
141
|
-
dpixacc:
|
142
|
-
dpiyacc:
|
143
|
-
acc:
|
144
|
-
accabs:
|
145
|
-
accabsx:
|
146
|
-
accabsy:
|
147
|
-
accimp:
|
148
|
-
accidx:
|
149
|
-
accidxp:
|
150
|
-
accdpix:
|
151
|
-
accdpiy:
|
152
|
-
accdp:
|
153
|
-
accdpx:
|
154
|
-
accx:
|
155
|
-
accy:
|
156
|
-
cnmb:
|
157
|
-
cmb:
|
158
|
-
dp:
|
159
|
-
dppx:
|
160
|
-
dppxa:
|
161
|
-
dpxrel:
|
162
|
-
dppxy:
|
163
|
-
dppyx:
|
164
|
-
dpimm:
|
165
|
-
dpa:
|
166
|
-
dprel:
|
167
|
-
dpx:
|
168
|
-
dpy:
|
169
|
-
dpya:
|
170
|
-
dp0:
|
171
|
-
dp0rel:
|
172
|
-
dp1:
|
173
|
-
dp1rel:
|
174
|
-
dp2:
|
175
|
-
dp2rel:
|
176
|
-
dp3:
|
177
|
-
dp3rel:
|
178
|
-
dp4:
|
179
|
-
dp4rel:
|
180
|
-
dp5:
|
181
|
-
dp5rel:
|
182
|
-
dp6:
|
183
|
-
dp6rel:
|
184
|
-
dp7:
|
185
|
-
dp7rel:
|
186
|
-
ddds:
|
187
|
-
mb:
|
188
|
-
mbc:
|
189
|
-
psw:
|
190
|
-
rel:
|
191
|
-
spx:
|
192
|
-
upage:
|
193
|
-
x:
|
194
|
-
xabs:
|
195
|
-
ximm:
|
196
|
-
xa:
|
197
|
-
xdp:
|
198
|
-
xdpy:
|
199
|
-
xsp:
|
200
|
-
y:
|
201
|
-
yabs:
|
202
|
-
yimm:
|
203
|
-
yacc:
|
204
|
-
ydp:
|
205
|
-
ydpx:
|
206
|
-
yrel:
|
207
|
-
ya:
|
208
|
-
yadp:
|
209
|
-
yax:
|
210
|
-
}
|
116
|
+
imp: '%s',
|
117
|
+
abs: '%-5s !%04X',
|
118
|
+
abspxa: '%-5s !%04X+X,A',
|
119
|
+
abspya: '%-5s !%04X+Y,A',
|
120
|
+
absa: '%-5s !%04X,A',
|
121
|
+
absx: '%-5s !%04X,X',
|
122
|
+
absy: '%-5s !%04X,Y',
|
123
|
+
idxpacc: '%-5s (X)+,A',
|
124
|
+
idxidy: '%-5s (X),(Y)',
|
125
|
+
idxacc: '%-5s (X),A',
|
126
|
+
t0: '%-5s 0',
|
127
|
+
t1: '%-5s 1',
|
128
|
+
t2: '%-5s 2',
|
129
|
+
t3: '%-5s 3',
|
130
|
+
t4: '%-5s 4',
|
131
|
+
t5: '%-5s 5',
|
132
|
+
t6: '%-5s 6',
|
133
|
+
t7: '%-5s 7',
|
134
|
+
t8: '%-5s 8',
|
135
|
+
t9: '%-5s 9',
|
136
|
+
t10: '%-5s 10',
|
137
|
+
t11: '%-5s 11',
|
138
|
+
t12: '%-5s 12',
|
139
|
+
t13: '%-5s 13',
|
140
|
+
t14: '%-5s 14',
|
141
|
+
t15: '%-5s 15',
|
142
|
+
absix: '%-5s [!%04X+X]',
|
143
|
+
dpixacc: '%-5s [%02X+X],A',
|
144
|
+
dpiyacc: '%-5s [%02X]+Y,A',
|
145
|
+
acc: '%-5s A',
|
146
|
+
accabs: '%-5s A,!%04X',
|
147
|
+
accabsx: '%-5s A,!%04X+X',
|
148
|
+
accabsy: '%-5s A,!%04X+Y',
|
149
|
+
accimp: '%-5s A,#%02X',
|
150
|
+
accidx: '%-5s A,(X)',
|
151
|
+
accidxp: '%-5s A,(X)+',
|
152
|
+
accdpix: '%-5s A,[%02X+X]',
|
153
|
+
accdpiy: '%-5s A,[%02X]+Y',
|
154
|
+
accdp: '%-5s A,%02X',
|
155
|
+
accdpx: '%-5s A,%02X+X',
|
156
|
+
accx: '%-5s A,X',
|
157
|
+
accy: '%-5s A,Y',
|
158
|
+
cnmb: '%-5s C,/%04X.%X',
|
159
|
+
cmb: '%-5s C,%04X.%X',
|
160
|
+
dp: '%-5s %02X',
|
161
|
+
dppx: '%-5s %02X+X',
|
162
|
+
dppxa: '%-5s %02X+X,A',
|
163
|
+
dpxrel: '%-5s %02X+X,%04X {%s}',
|
164
|
+
dppxy: '%-5s %02X+X,Y',
|
165
|
+
dppyx: '%-5s %02X+Y,X',
|
166
|
+
dpimm: '%-5s %02X,#%02X',
|
167
|
+
dpa: '%-5s %02X,A',
|
168
|
+
dprel: '%-5s %02X,%04X {%s}',
|
169
|
+
dpx: '%-5s %02X,X',
|
170
|
+
dpy: '%-5s %02X,Y',
|
171
|
+
dpya: '%-5s %02X,YA',
|
172
|
+
dp0: '%-5s %02X.0',
|
173
|
+
dp0rel: '%-5s %02X.0,%04X {%s}',
|
174
|
+
dp1: '%-5s %02X.1',
|
175
|
+
dp1rel: '%-5s %02X.1,%04X {%s}',
|
176
|
+
dp2: '%-5s %02X.2',
|
177
|
+
dp2rel: '%-5s %02X.2,%04X {%s}',
|
178
|
+
dp3: '%-5s %02X.3',
|
179
|
+
dp3rel: '%-5s %02X.3,%04X {%s}',
|
180
|
+
dp4: '%-5s %02X.4',
|
181
|
+
dp4rel: '%-5s %02X.4,%04X {%s}',
|
182
|
+
dp5: '%-5s %02X.5',
|
183
|
+
dp5rel: '%-5s %02X.5,%04X {%s}',
|
184
|
+
dp6: '%-5s %02X.6',
|
185
|
+
dp6rel: '%-5s %02X.6,%04X {%s}',
|
186
|
+
dp7: '%-5s %02X.7',
|
187
|
+
dp7rel: '%-5s %02X.7,%04X {%s}',
|
188
|
+
ddds: '%-5s %02X<d>,%02X<s>',
|
189
|
+
mb: '%-5s %04X.%X',
|
190
|
+
mbc: '%-5s %04X.%X,C',
|
191
|
+
psw: '%-5s PSW',
|
192
|
+
rel: '%-5s %04X {%s}',
|
193
|
+
spx: '%-5s SP,X',
|
194
|
+
upage: '%-5s %02X',
|
195
|
+
x: '%-5s X',
|
196
|
+
xabs: '%-5s X,!%04X',
|
197
|
+
ximm: '%-5s X,#%02X',
|
198
|
+
xa: '%-5s X,A',
|
199
|
+
xdp: '%-5s X,%02X',
|
200
|
+
xdpy: '%-5s X,%02X+Y',
|
201
|
+
xsp: '%-5s X,SP',
|
202
|
+
y: '%-5s Y',
|
203
|
+
yabs: '%-5s Y,!%04X',
|
204
|
+
yimm: '%-5s Y,#%02X',
|
205
|
+
yacc: '%-5s Y,A',
|
206
|
+
ydp: '%-5s Y,%02X',
|
207
|
+
ydpx: '%-5s Y,%02X+X',
|
208
|
+
yrel: '%-5s Y,%04X {%s}',
|
209
|
+
ya: '%-5s YA',
|
210
|
+
yadp: '%-5s YA,%02X',
|
211
|
+
yax: '%-5s YA,X'
|
212
|
+
}.freeze
|
211
213
|
|
212
|
-
OPCODES_DATA = [{ opcode: 0x99, mnemonic:
|
213
|
-
{ opcode: 0x88, mnemonic:
|
214
|
-
{ opcode: 0x86, mnemonic:
|
215
|
-
{ opcode: 0x97, mnemonic:
|
216
|
-
{ opcode: 0x87, mnemonic:
|
217
|
-
{ opcode: 0x84, mnemonic:
|
218
|
-
{ opcode: 0x94, mnemonic:
|
219
|
-
{ opcode: 0x85, mnemonic:
|
220
|
-
{ opcode: 0x95, mnemonic:
|
221
|
-
{ opcode: 0x96, mnemonic:
|
222
|
-
{ opcode: 0x89, mnemonic:
|
223
|
-
{ opcode: 0x98, mnemonic:
|
224
|
-
{ opcode: 0x7A, mnemonic:
|
225
|
-
{ opcode: 0x39, mnemonic:
|
226
|
-
{ opcode: 0x28, mnemonic:
|
227
|
-
{ opcode: 0x26, mnemonic:
|
228
|
-
{ opcode: 0x37, mnemonic:
|
229
|
-
{ opcode: 0x27, mnemonic:
|
230
|
-
{ opcode: 0x24, mnemonic:
|
231
|
-
{ opcode: 0x34, mnemonic:
|
232
|
-
{ opcode: 0x25, mnemonic:
|
233
|
-
{ opcode: 0x35, mnemonic:
|
234
|
-
{ opcode: 0x36, mnemonic:
|
235
|
-
{ opcode: 0x29, mnemonic:
|
236
|
-
{ opcode: 0x38, mnemonic:
|
237
|
-
{ opcode: 0x6A, mnemonic:
|
238
|
-
{ opcode: 0x4A, mnemonic:
|
239
|
-
{ opcode: 0x1C, mnemonic:
|
240
|
-
{ opcode: 0x0B, mnemonic:
|
241
|
-
{ opcode: 0x1B, mnemonic:
|
242
|
-
{ opcode: 0x0C, mnemonic:
|
243
|
-
{ opcode: 0x13, mnemonic:
|
244
|
-
{ opcode: 0x33, mnemonic:
|
245
|
-
{ opcode: 0x53, mnemonic:
|
246
|
-
{ opcode: 0x73, mnemonic:
|
247
|
-
{ opcode: 0x93, mnemonic:
|
248
|
-
{ opcode: 0xB3, mnemonic:
|
249
|
-
{ opcode: 0xD3, mnemonic:
|
250
|
-
{ opcode: 0xF3, mnemonic:
|
251
|
-
{ opcode: 0x03, mnemonic:
|
252
|
-
{ opcode: 0x23, mnemonic:
|
253
|
-
{ opcode: 0x43, mnemonic:
|
254
|
-
{ opcode: 0x63, mnemonic:
|
255
|
-
{ opcode: 0x83, mnemonic:
|
256
|
-
{ opcode: 0xA3, mnemonic:
|
257
|
-
{ opcode: 0xC3, mnemonic:
|
258
|
-
{ opcode: 0xE3, mnemonic:
|
259
|
-
{ opcode: 0x90, mnemonic:
|
260
|
-
{ opcode: 0xB0, mnemonic:
|
261
|
-
{ opcode: 0xF0, mnemonic:
|
262
|
-
{ opcode: 0x30, mnemonic:
|
263
|
-
{ opcode: 0xD0, mnemonic:
|
264
|
-
{ opcode: 0x10, mnemonic:
|
265
|
-
{ opcode: 0x50, mnemonic:
|
266
|
-
{ opcode: 0x70, mnemonic:
|
267
|
-
{ opcode: 0x2F, mnemonic:
|
268
|
-
{ opcode: 0x0F, mnemonic:
|
269
|
-
{ opcode: 0x3F, mnemonic:
|
270
|
-
{ opcode: 0xDE, mnemonic:
|
271
|
-
{ opcode: 0x2E, mnemonic:
|
272
|
-
{ opcode: 0x12, mnemonic:
|
273
|
-
{ opcode: 0x32, mnemonic:
|
274
|
-
{ opcode: 0x52, mnemonic:
|
275
|
-
{ opcode: 0x72, mnemonic:
|
276
|
-
{ opcode: 0x92, mnemonic:
|
277
|
-
{ opcode: 0xB2, mnemonic:
|
278
|
-
{ opcode: 0xD2, mnemonic:
|
279
|
-
{ opcode: 0xF2, mnemonic:
|
280
|
-
{ opcode: 0x60, mnemonic:
|
281
|
-
{ opcode: 0x20, mnemonic:
|
282
|
-
{ opcode: 0xE0, mnemonic:
|
283
|
-
{ opcode: 0x79, mnemonic:
|
284
|
-
{ opcode: 0x68, mnemonic:
|
285
|
-
{ opcode: 0x66, mnemonic:
|
286
|
-
{ opcode: 0x77, mnemonic:
|
287
|
-
{ opcode: 0x67, mnemonic:
|
288
|
-
{ opcode: 0x64, mnemonic:
|
289
|
-
{ opcode: 0x74, mnemonic:
|
290
|
-
{ opcode: 0x65, mnemonic:
|
291
|
-
{ opcode: 0x75, mnemonic:
|
292
|
-
{ opcode: 0x76, mnemonic:
|
293
|
-
{ opcode: 0xC8, mnemonic:
|
294
|
-
{ opcode: 0x3E, mnemonic:
|
295
|
-
{ opcode: 0x1E, mnemonic:
|
296
|
-
{ opcode: 0xAD, mnemonic:
|
297
|
-
{ opcode: 0x7E, mnemonic:
|
298
|
-
{ opcode: 0x5E, mnemonic:
|
299
|
-
{ opcode: 0x69, mnemonic:
|
300
|
-
{ opcode: 0x78, mnemonic:
|
301
|
-
{ opcode: 0x5A, mnemonic:
|
302
|
-
{ opcode: 0xDF, mnemonic:
|
303
|
-
{ opcode: 0xBE, mnemonic:
|
304
|
-
{ opcode: 0xFE, mnemonic:
|
305
|
-
{ opcode: 0x6E, mnemonic:
|
306
|
-
{ opcode: 0x9C, mnemonic:
|
307
|
-
{ opcode: 0x1D, mnemonic:
|
308
|
-
{ opcode: 0xDC, mnemonic:
|
309
|
-
{ opcode: 0x8B, mnemonic:
|
310
|
-
{ opcode: 0x9B, mnemonic:
|
311
|
-
{ opcode: 0x8C, mnemonic:
|
312
|
-
{ opcode: 0x1A, mnemonic:
|
313
|
-
{ opcode: 0xC0, mnemonic:
|
314
|
-
{ opcode: 0x9E, mnemonic:
|
315
|
-
{ opcode: 0xA0, mnemonic:
|
316
|
-
{ opcode: 0x59, mnemonic:
|
317
|
-
{ opcode: 0x48, mnemonic:
|
318
|
-
{ opcode: 0x46, mnemonic:
|
319
|
-
{ opcode: 0x57, mnemonic:
|
320
|
-
{ opcode: 0x47, mnemonic:
|
321
|
-
{ opcode: 0x44, mnemonic:
|
322
|
-
{ opcode: 0x54, mnemonic:
|
323
|
-
{ opcode: 0x45, mnemonic:
|
324
|
-
{ opcode: 0x55, mnemonic:
|
325
|
-
{ opcode: 0x56, mnemonic:
|
326
|
-
{ opcode: 0x49, mnemonic:
|
327
|
-
{ opcode: 0x58, mnemonic:
|
328
|
-
{ opcode: 0x8A, mnemonic:
|
329
|
-
{ opcode: 0xBC, mnemonic:
|
330
|
-
{ opcode: 0x3D, mnemonic:
|
331
|
-
{ opcode: 0xFC, mnemonic:
|
332
|
-
{ opcode: 0xAB, mnemonic:
|
333
|
-
{ opcode: 0xBB, mnemonic:
|
334
|
-
{ opcode: 0xAC, mnemonic:
|
335
|
-
{ opcode: 0x3A, mnemonic:
|
336
|
-
{ opcode: 0x1F, mnemonic:
|
337
|
-
{ opcode: 0x5F, mnemonic:
|
338
|
-
{ opcode: 0x5C, mnemonic:
|
339
|
-
{ opcode: 0x4B, mnemonic:
|
340
|
-
{ opcode: 0x5B, mnemonic:
|
341
|
-
{ opcode: 0x4C, mnemonic:
|
342
|
-
{ opcode: 0xAF, mnemonic:
|
343
|
-
{ opcode: 0xC6, mnemonic:
|
344
|
-
{ opcode: 0xD7, mnemonic:
|
345
|
-
{ opcode: 0xC7, mnemonic:
|
346
|
-
{ opcode: 0xE8, mnemonic:
|
347
|
-
{ opcode: 0xE6, mnemonic:
|
348
|
-
{ opcode: 0xBF, mnemonic:
|
349
|
-
{ opcode: 0xF7, mnemonic:
|
350
|
-
{ opcode: 0xE7, mnemonic:
|
351
|
-
{ opcode: 0x7D, mnemonic:
|
352
|
-
{ opcode: 0xDD, mnemonic:
|
353
|
-
{ opcode: 0xE4, mnemonic:
|
354
|
-
{ opcode: 0xF4, mnemonic:
|
355
|
-
{ opcode: 0xE5, mnemonic:
|
356
|
-
{ opcode: 0xF5, mnemonic:
|
357
|
-
{ opcode: 0xF6, mnemonic:
|
358
|
-
{ opcode: 0xBD, mnemonic:
|
359
|
-
{ opcode: 0xCD, mnemonic:
|
360
|
-
{ opcode: 0x5D, mnemonic:
|
361
|
-
{ opcode: 0x9D, mnemonic:
|
362
|
-
{ opcode: 0xF8, mnemonic:
|
363
|
-
{ opcode: 0xF9, mnemonic:
|
364
|
-
{ opcode: 0xE9, mnemonic:
|
365
|
-
{ opcode: 0x8D, mnemonic:
|
366
|
-
{ opcode: 0xFD, mnemonic:
|
367
|
-
{ opcode: 0xEB, mnemonic:
|
368
|
-
{ opcode: 0xFB, mnemonic:
|
369
|
-
{ opcode: 0xEC, mnemonic:
|
370
|
-
{ opcode: 0xFA, mnemonic:
|
371
|
-
{ opcode: 0xD4, mnemonic:
|
372
|
-
{ opcode: 0xDB, mnemonic:
|
373
|
-
{ opcode: 0xD9, mnemonic:
|
374
|
-
{ opcode: 0x8F, mnemonic:
|
375
|
-
{ opcode: 0xC4, mnemonic:
|
376
|
-
{ opcode: 0xD8, mnemonic:
|
377
|
-
{ opcode: 0xCB, mnemonic:
|
378
|
-
{ opcode: 0xD5, mnemonic:
|
379
|
-
{ opcode: 0xD6, mnemonic:
|
380
|
-
{ opcode: 0xC5, mnemonic:
|
381
|
-
{ opcode: 0xC9, mnemonic:
|
382
|
-
{ opcode: 0xCC, mnemonic:
|
383
|
-
{ opcode: 0xAA, mnemonic:
|
384
|
-
{ opcode: 0xCA, mnemonic:
|
385
|
-
{ opcode: 0xBA, mnemonic:
|
386
|
-
{ opcode: 0xDA, mnemonic:
|
387
|
-
{ opcode: 0xCF, mnemonic:
|
388
|
-
{ opcode: 0x00, mnemonic:
|
389
|
-
{ opcode: 0xEA, mnemonic:
|
390
|
-
{ opcode: 0xED, mnemonic:
|
391
|
-
{ opcode: 0x19, mnemonic:
|
392
|
-
{ opcode: 0x08, mnemonic:
|
393
|
-
{ opcode: 0x06, mnemonic:
|
394
|
-
{ opcode: 0x17, mnemonic:
|
395
|
-
{ opcode: 0x07, mnemonic:
|
396
|
-
{ opcode: 0x04, mnemonic:
|
397
|
-
{ opcode: 0x14, mnemonic:
|
398
|
-
{ opcode: 0x05, mnemonic:
|
399
|
-
{ opcode: 0x15, mnemonic:
|
400
|
-
{ opcode: 0x16, mnemonic:
|
401
|
-
{ opcode: 0x09, mnemonic:
|
402
|
-
{ opcode: 0x18, mnemonic:
|
403
|
-
{ opcode: 0x2A, mnemonic:
|
404
|
-
{ opcode: 0x0A, mnemonic:
|
405
|
-
{ opcode: 0x4F, mnemonic:
|
406
|
-
{ opcode: 0xAE, mnemonic:
|
407
|
-
{ opcode: 0x8E, mnemonic:
|
408
|
-
{ opcode: 0xCE, mnemonic:
|
409
|
-
{ opcode: 0xEE, mnemonic:
|
410
|
-
{ opcode: 0x2D, mnemonic:
|
411
|
-
{ opcode: 0x0D, mnemonic:
|
412
|
-
{ opcode: 0x4D, mnemonic:
|
413
|
-
{ opcode: 0x6D, mnemonic:
|
414
|
-
{ opcode: 0x6F, mnemonic:
|
415
|
-
{ opcode: 0x7F, mnemonic:
|
416
|
-
{ opcode: 0x3C, mnemonic:
|
417
|
-
{ opcode: 0x2B, mnemonic:
|
418
|
-
{ opcode: 0x3B, mnemonic:
|
419
|
-
{ opcode: 0x2C, mnemonic:
|
420
|
-
{ opcode: 0x7C, mnemonic:
|
421
|
-
{ opcode: 0x6B, mnemonic:
|
422
|
-
{ opcode: 0x7B, mnemonic:
|
423
|
-
{ opcode: 0x6C, mnemonic:
|
424
|
-
{ opcode: 0xB9, mnemonic:
|
425
|
-
{ opcode: 0xA8, mnemonic:
|
426
|
-
{ opcode: 0xA6, mnemonic:
|
427
|
-
{ opcode: 0xB7, mnemonic:
|
428
|
-
{ opcode: 0xA7, mnemonic:
|
429
|
-
{ opcode: 0xA4, mnemonic:
|
430
|
-
{ opcode: 0xB4, mnemonic:
|
431
|
-
{ opcode: 0xA5, mnemonic:
|
432
|
-
{ opcode: 0xB5, mnemonic:
|
433
|
-
{ opcode: 0xB6, mnemonic:
|
434
|
-
{ opcode: 0xA9, mnemonic:
|
435
|
-
{ opcode: 0xB8, mnemonic:
|
436
|
-
{ opcode: 0x02, mnemonic:
|
437
|
-
{ opcode: 0x22, mnemonic:
|
438
|
-
{ opcode: 0x42, mnemonic:
|
439
|
-
{ opcode: 0x62, mnemonic:
|
440
|
-
{ opcode: 0x82, mnemonic:
|
441
|
-
{ opcode: 0xA2, mnemonic:
|
442
|
-
{ opcode: 0xC2, mnemonic:
|
443
|
-
{ opcode: 0xE2, mnemonic:
|
444
|
-
{ opcode: 0x80, mnemonic:
|
445
|
-
{ opcode: 0x40, mnemonic:
|
446
|
-
{ opcode: 0xEF, mnemonic:
|
447
|
-
{ opcode: 0xFF, mnemonic:
|
448
|
-
{ opcode: 0x9A, mnemonic:
|
449
|
-
{ opcode: 0x01, mnemonic:
|
450
|
-
{ opcode: 0x11, mnemonic:
|
451
|
-
{ opcode: 0x21, mnemonic:
|
452
|
-
{ opcode: 0x31, mnemonic:
|
453
|
-
{ opcode: 0x41, mnemonic:
|
454
|
-
{ opcode: 0x51, mnemonic:
|
455
|
-
{ opcode: 0x61, mnemonic:
|
456
|
-
{ opcode: 0x71, mnemonic:
|
457
|
-
{ opcode: 0x81, mnemonic:
|
458
|
-
{ opcode: 0x91, mnemonic:
|
459
|
-
{ opcode: 0xA1, mnemonic:
|
460
|
-
{ opcode: 0xB1, mnemonic:
|
461
|
-
{ opcode: 0xC1, mnemonic:
|
462
|
-
{ opcode: 0xD1, mnemonic:
|
463
|
-
{ opcode: 0xE1, mnemonic:
|
464
|
-
{ opcode: 0xF1, mnemonic:
|
465
|
-
{ opcode: 0x4E, mnemonic:
|
466
|
-
{ opcode: 0x0E, mnemonic:
|
467
|
-
{ opcode: 0x9F, mnemonic:
|
214
|
+
OPCODES_DATA = [{ opcode: 0x99, mnemonic: 'ADC', mode: :idxidy, length: 1 },
|
215
|
+
{ opcode: 0x88, mnemonic: 'ADC', mode: :accimp, length: 2 },
|
216
|
+
{ opcode: 0x86, mnemonic: 'ADC', mode: :accidx, length: 1 },
|
217
|
+
{ opcode: 0x97, mnemonic: 'ADC', mode: :accdpiy, length: 2 },
|
218
|
+
{ opcode: 0x87, mnemonic: 'ADC', mode: :accdpix, length: 2 },
|
219
|
+
{ opcode: 0x84, mnemonic: 'ADC', mode: :accdp, length: 2 },
|
220
|
+
{ opcode: 0x94, mnemonic: 'ADC', mode: :accdpx, length: 2 },
|
221
|
+
{ opcode: 0x85, mnemonic: 'ADC', mode: :accabs, length: 3 },
|
222
|
+
{ opcode: 0x95, mnemonic: 'ADC', mode: :accabsx, length: 3 },
|
223
|
+
{ opcode: 0x96, mnemonic: 'ADC', mode: :accabsy, length: 3 },
|
224
|
+
{ opcode: 0x89, mnemonic: 'ADC', mode: :ddds, length: 3 },
|
225
|
+
{ opcode: 0x98, mnemonic: 'ADC', mode: :dpimm, length: 3 },
|
226
|
+
{ opcode: 0x7A, mnemonic: 'ADDW', mode: :yadp, length: 2 },
|
227
|
+
{ opcode: 0x39, mnemonic: 'AND', mode: :idxidy, length: 1 },
|
228
|
+
{ opcode: 0x28, mnemonic: 'AND', mode: :accimp, length: 2 },
|
229
|
+
{ opcode: 0x26, mnemonic: 'AND', mode: :accidx, length: 1 },
|
230
|
+
{ opcode: 0x37, mnemonic: 'AND', mode: :accdpiy, length: 2 },
|
231
|
+
{ opcode: 0x27, mnemonic: 'AND', mode: :accdpix, length: 2 },
|
232
|
+
{ opcode: 0x24, mnemonic: 'AND', mode: :accdp, length: 2 },
|
233
|
+
{ opcode: 0x34, mnemonic: 'AND', mode: :accdpx, length: 2 },
|
234
|
+
{ opcode: 0x25, mnemonic: 'AND', mode: :accabs, length: 3 },
|
235
|
+
{ opcode: 0x35, mnemonic: 'AND', mode: :accabsx, length: 3 },
|
236
|
+
{ opcode: 0x36, mnemonic: 'AND', mode: :accabsy, length: 3 },
|
237
|
+
{ opcode: 0x29, mnemonic: 'AND', mode: :ddds, length: 3 },
|
238
|
+
{ opcode: 0x38, mnemonic: 'AND', mode: :dpimm, length: 3 },
|
239
|
+
{ opcode: 0x6A, mnemonic: 'AND1', mode: :cnmb, length: 3 },
|
240
|
+
{ opcode: 0x4A, mnemonic: 'AND1', mode: :cmb, length: 3 },
|
241
|
+
{ opcode: 0x1C, mnemonic: 'ASL', mode: :acc, length: 1 },
|
242
|
+
{ opcode: 0x0B, mnemonic: 'ASL', mode: :dp, length: 2 },
|
243
|
+
{ opcode: 0x1B, mnemonic: 'ASL', mode: :dppx, length: 2 },
|
244
|
+
{ opcode: 0x0C, mnemonic: 'ASL', mode: :abs, length: 3 },
|
245
|
+
{ opcode: 0x13, mnemonic: 'BBC', mode: :dp0rel, length: 3 },
|
246
|
+
{ opcode: 0x33, mnemonic: 'BBC', mode: :dp1rel, length: 3 },
|
247
|
+
{ opcode: 0x53, mnemonic: 'BBC', mode: :dp2rel, length: 3 },
|
248
|
+
{ opcode: 0x73, mnemonic: 'BBC', mode: :dp3rel, length: 3 },
|
249
|
+
{ opcode: 0x93, mnemonic: 'BBC', mode: :dp4rel, length: 3 },
|
250
|
+
{ opcode: 0xB3, mnemonic: 'BBC', mode: :dp5rel, length: 3 },
|
251
|
+
{ opcode: 0xD3, mnemonic: 'BBC', mode: :dp6rel, length: 3 },
|
252
|
+
{ opcode: 0xF3, mnemonic: 'BBC', mode: :dp7rel, length: 3 },
|
253
|
+
{ opcode: 0x03, mnemonic: 'BBS', mode: :dp0rel, length: 3 },
|
254
|
+
{ opcode: 0x23, mnemonic: 'BBS', mode: :dp1rel, length: 3 },
|
255
|
+
{ opcode: 0x43, mnemonic: 'BBS', mode: :dp2rel, length: 3 },
|
256
|
+
{ opcode: 0x63, mnemonic: 'BBS', mode: :dp3rel, length: 3 },
|
257
|
+
{ opcode: 0x83, mnemonic: 'BBS', mode: :dp4rel, length: 3 },
|
258
|
+
{ opcode: 0xA3, mnemonic: 'BBS', mode: :dp5rel, length: 3 },
|
259
|
+
{ opcode: 0xC3, mnemonic: 'BBS', mode: :dp6rel, length: 3 },
|
260
|
+
{ opcode: 0xE3, mnemonic: 'BBS', mode: :dp7rel, length: 3 },
|
261
|
+
{ opcode: 0x90, mnemonic: 'BCC', mode: :rel, length: 2 },
|
262
|
+
{ opcode: 0xB0, mnemonic: 'BCS', mode: :rel, length: 2 },
|
263
|
+
{ opcode: 0xF0, mnemonic: 'BEQ', mode: :rel, length: 2 },
|
264
|
+
{ opcode: 0x30, mnemonic: 'BMI', mode: :rel, length: 2 },
|
265
|
+
{ opcode: 0xD0, mnemonic: 'BNE', mode: :rel, length: 2 },
|
266
|
+
{ opcode: 0x10, mnemonic: 'BPL', mode: :rel, length: 2 },
|
267
|
+
{ opcode: 0x50, mnemonic: 'BVC', mode: :rel, length: 2 },
|
268
|
+
{ opcode: 0x70, mnemonic: 'BVS', mode: :rel, length: 2 },
|
269
|
+
{ opcode: 0x2F, mnemonic: 'BRA', mode: :rel, length: 2 },
|
270
|
+
{ opcode: 0x0F, mnemonic: 'BRK', mode: :imp, length: 1 },
|
271
|
+
{ opcode: 0x3F, mnemonic: 'CALL', mode: :abs, length: 3 },
|
272
|
+
{ opcode: 0xDE, mnemonic: 'CBNE', mode: :dpxrel, length: 3 },
|
273
|
+
{ opcode: 0x2E, mnemonic: 'CBNE', mode: :dprel, length: 3 },
|
274
|
+
{ opcode: 0x12, mnemonic: 'CLR1', mode: :dp0, length: 2 },
|
275
|
+
{ opcode: 0x32, mnemonic: 'CLR1', mode: :dp1, length: 2 },
|
276
|
+
{ opcode: 0x52, mnemonic: 'CLR1', mode: :dp2, length: 2 },
|
277
|
+
{ opcode: 0x72, mnemonic: 'CLR1', mode: :dp3, length: 2 },
|
278
|
+
{ opcode: 0x92, mnemonic: 'CLR1', mode: :dp4, length: 2 },
|
279
|
+
{ opcode: 0xB2, mnemonic: 'CLR1', mode: :dp5, length: 2 },
|
280
|
+
{ opcode: 0xD2, mnemonic: 'CLR1', mode: :dp6, length: 2 },
|
281
|
+
{ opcode: 0xF2, mnemonic: 'CLR1', mode: :dp7, length: 2 },
|
282
|
+
{ opcode: 0x60, mnemonic: 'CLRC', mode: :imp, length: 1 },
|
283
|
+
{ opcode: 0x20, mnemonic: 'CLRP', mode: :imp, length: 1 },
|
284
|
+
{ opcode: 0xE0, mnemonic: 'CLRV', mode: :imp, length: 1 },
|
285
|
+
{ opcode: 0x79, mnemonic: 'CMP', mode: :idxidy, length: 1 },
|
286
|
+
{ opcode: 0x68, mnemonic: 'CMP', mode: :accimp, length: 2 },
|
287
|
+
{ opcode: 0x66, mnemonic: 'CMP', mode: :accidx, length: 1 },
|
288
|
+
{ opcode: 0x77, mnemonic: 'CMP', mode: :accdpiy, length: 2 },
|
289
|
+
{ opcode: 0x67, mnemonic: 'CMP', mode: :accdpix, length: 2 },
|
290
|
+
{ opcode: 0x64, mnemonic: 'CMP', mode: :accdp, length: 2 },
|
291
|
+
{ opcode: 0x74, mnemonic: 'CMP', mode: :accdpx, length: 2 },
|
292
|
+
{ opcode: 0x65, mnemonic: 'CMP', mode: :accabs, length: 3 },
|
293
|
+
{ opcode: 0x75, mnemonic: 'CMP', mode: :accabsx, length: 3 },
|
294
|
+
{ opcode: 0x76, mnemonic: 'CMP', mode: :accabsy, length: 3 },
|
295
|
+
{ opcode: 0xC8, mnemonic: 'CMP', mode: :ximm, length: 2 },
|
296
|
+
{ opcode: 0x3E, mnemonic: 'CMP', mode: :xdp, length: 2 },
|
297
|
+
{ opcode: 0x1E, mnemonic: 'CMP', mode: :xabs, length: 3 },
|
298
|
+
{ opcode: 0xAD, mnemonic: 'CMP', mode: :yimm, length: 2 },
|
299
|
+
{ opcode: 0x7E, mnemonic: 'CMP', mode: :ydp, length: 2 },
|
300
|
+
{ opcode: 0x5E, mnemonic: 'CMP', mode: :yabs, length: 3 },
|
301
|
+
{ opcode: 0x69, mnemonic: 'CMP', mode: :ddds, length: 3 },
|
302
|
+
{ opcode: 0x78, mnemonic: 'CMP', mode: :dpimm, length: 3 },
|
303
|
+
{ opcode: 0x5A, mnemonic: 'CMPW', mode: :yadp, length: 2 },
|
304
|
+
{ opcode: 0xDF, mnemonic: 'DAA', mode: :acc, length: 1 },
|
305
|
+
{ opcode: 0xBE, mnemonic: 'DAS', mode: :acc, length: 1 },
|
306
|
+
{ opcode: 0xFE, mnemonic: 'DBNZ', mode: :yrel, length: 2 },
|
307
|
+
{ opcode: 0x6E, mnemonic: 'DBNZ', mode: :dprel, length: 3 },
|
308
|
+
{ opcode: 0x9C, mnemonic: 'DEC', mode: :acc, length: 1 },
|
309
|
+
{ opcode: 0x1D, mnemonic: 'DEC', mode: :x, length: 1 },
|
310
|
+
{ opcode: 0xDC, mnemonic: 'DEC', mode: :y, length: 1 },
|
311
|
+
{ opcode: 0x8B, mnemonic: 'DEC', mode: :dp, length: 2 },
|
312
|
+
{ opcode: 0x9B, mnemonic: 'DEC', mode: :dppx, length: 2 },
|
313
|
+
{ opcode: 0x8C, mnemonic: 'DEC', mode: :abs, length: 3 },
|
314
|
+
{ opcode: 0x1A, mnemonic: 'DECW', mode: :dp, length: 2 },
|
315
|
+
{ opcode: 0xC0, mnemonic: 'DI', mode: :imp, length: 1 },
|
316
|
+
{ opcode: 0x9E, mnemonic: 'DIV', mode: :yax, length: 1 },
|
317
|
+
{ opcode: 0xA0, mnemonic: 'EI', mode: :imp, length: 1 },
|
318
|
+
{ opcode: 0x59, mnemonic: 'EOR', mode: :idxidy, length: 1 },
|
319
|
+
{ opcode: 0x48, mnemonic: 'EOR', mode: :accimp, length: 2 },
|
320
|
+
{ opcode: 0x46, mnemonic: 'EOR', mode: :accidx, length: 1 },
|
321
|
+
{ opcode: 0x57, mnemonic: 'EOR', mode: :accdpiy, length: 2 },
|
322
|
+
{ opcode: 0x47, mnemonic: 'EOR', mode: :accdpix, length: 2 },
|
323
|
+
{ opcode: 0x44, mnemonic: 'EOR', mode: :accdp, length: 2 },
|
324
|
+
{ opcode: 0x54, mnemonic: 'EOR', mode: :accdpx, length: 2 },
|
325
|
+
{ opcode: 0x45, mnemonic: 'EOR', mode: :accabs, length: 3 },
|
326
|
+
{ opcode: 0x55, mnemonic: 'EOR', mode: :accabsx, length: 3 },
|
327
|
+
{ opcode: 0x56, mnemonic: 'EOR', mode: :accabsy, length: 3 },
|
328
|
+
{ opcode: 0x49, mnemonic: 'EOR', mode: :ddds, length: 3 },
|
329
|
+
{ opcode: 0x58, mnemonic: 'EOR', mode: :dpimm, length: 3 },
|
330
|
+
{ opcode: 0x8A, mnemonic: 'EOR1', mode: :cmb, length: 3 },
|
331
|
+
{ opcode: 0xBC, mnemonic: 'INC', mode: :acc, length: 1 },
|
332
|
+
{ opcode: 0x3D, mnemonic: 'INC', mode: :x, length: 1 },
|
333
|
+
{ opcode: 0xFC, mnemonic: 'INC', mode: :y, length: 1 },
|
334
|
+
{ opcode: 0xAB, mnemonic: 'INC', mode: :dp, length: 2 },
|
335
|
+
{ opcode: 0xBB, mnemonic: 'INC', mode: :dppx, length: 2 },
|
336
|
+
{ opcode: 0xAC, mnemonic: 'INC', mode: :abs, length: 3 },
|
337
|
+
{ opcode: 0x3A, mnemonic: 'INCW', mode: :dp, length: 2 },
|
338
|
+
{ opcode: 0x1F, mnemonic: 'JMP', mode: :absix, length: 3 },
|
339
|
+
{ opcode: 0x5F, mnemonic: 'JMP', mode: :abs, length: 3 },
|
340
|
+
{ opcode: 0x5C, mnemonic: 'LSR', mode: :acc, length: 1 },
|
341
|
+
{ opcode: 0x4B, mnemonic: 'LSR', mode: :dp, length: 2 },
|
342
|
+
{ opcode: 0x5B, mnemonic: 'LSR', mode: :dppx, length: 2 },
|
343
|
+
{ opcode: 0x4C, mnemonic: 'LSR', mode: :abs, length: 3 },
|
344
|
+
{ opcode: 0xAF, mnemonic: 'MOV', mode: :idxpacc, length: 1 },
|
345
|
+
{ opcode: 0xC6, mnemonic: 'MOV', mode: :idxacc, length: 1 },
|
346
|
+
{ opcode: 0xD7, mnemonic: 'MOV', mode: :dpiyacc, length: 2 },
|
347
|
+
{ opcode: 0xC7, mnemonic: 'MOV', mode: :dpixacc, length: 2 },
|
348
|
+
{ opcode: 0xE8, mnemonic: 'MOV', mode: :accimp, length: 2 },
|
349
|
+
{ opcode: 0xE6, mnemonic: 'MOV', mode: :accidx, length: 1 },
|
350
|
+
{ opcode: 0xBF, mnemonic: 'MOV', mode: :accidxp, length: 1 },
|
351
|
+
{ opcode: 0xF7, mnemonic: 'MOV', mode: :accdpiy, length: 2 },
|
352
|
+
{ opcode: 0xE7, mnemonic: 'MOV', mode: :accdpix, length: 2 },
|
353
|
+
{ opcode: 0x7D, mnemonic: 'MOV', mode: :accx, length: 1 },
|
354
|
+
{ opcode: 0xDD, mnemonic: 'MOV', mode: :accy, length: 1 },
|
355
|
+
{ opcode: 0xE4, mnemonic: 'MOV', mode: :accdp, length: 2 },
|
356
|
+
{ opcode: 0xF4, mnemonic: 'MOV', mode: :accdpx, length: 2 },
|
357
|
+
{ opcode: 0xE5, mnemonic: 'MOV', mode: :accabs, length: 3 },
|
358
|
+
{ opcode: 0xF5, mnemonic: 'MOV', mode: :accabsx, length: 3 },
|
359
|
+
{ opcode: 0xF6, mnemonic: 'MOV', mode: :accabsy, length: 3 },
|
360
|
+
{ opcode: 0xBD, mnemonic: 'MOV', mode: :spx, length: 1 },
|
361
|
+
{ opcode: 0xCD, mnemonic: 'MOV', mode: :ximm, length: 2 },
|
362
|
+
{ opcode: 0x5D, mnemonic: 'MOV', mode: :xa, length: 1 },
|
363
|
+
{ opcode: 0x9D, mnemonic: 'MOV', mode: :xsp, length: 1 },
|
364
|
+
{ opcode: 0xF8, mnemonic: 'MOV', mode: :xdp, length: 2 },
|
365
|
+
{ opcode: 0xF9, mnemonic: 'MOV', mode: :xdpy, length: 2 },
|
366
|
+
{ opcode: 0xE9, mnemonic: 'MOV', mode: :xabs, length: 3 },
|
367
|
+
{ opcode: 0x8D, mnemonic: 'MOV', mode: :yimm, length: 2 },
|
368
|
+
{ opcode: 0xFD, mnemonic: 'MOV', mode: :yacc, length: 1 },
|
369
|
+
{ opcode: 0xEB, mnemonic: 'MOV', mode: :ydp, length: 2 },
|
370
|
+
{ opcode: 0xFB, mnemonic: 'MOV', mode: :ydpx, length: 2 },
|
371
|
+
{ opcode: 0xEC, mnemonic: 'MOV', mode: :yabs, length: 3 },
|
372
|
+
{ opcode: 0xFA, mnemonic: 'MOV', mode: :ddds, length: 3 },
|
373
|
+
{ opcode: 0xD4, mnemonic: 'MOV', mode: :dppxa, length: 2 },
|
374
|
+
{ opcode: 0xDB, mnemonic: 'MOV', mode: :dppxy, length: 2 },
|
375
|
+
{ opcode: 0xD9, mnemonic: 'MOV', mode: :dppyx, length: 2 },
|
376
|
+
{ opcode: 0x8F, mnemonic: 'MOV', mode: :dpimm, length: 3 },
|
377
|
+
{ opcode: 0xC4, mnemonic: 'MOV', mode: :dpa, length: 2 },
|
378
|
+
{ opcode: 0xD8, mnemonic: 'MOV', mode: :dpx, length: 2 },
|
379
|
+
{ opcode: 0xCB, mnemonic: 'MOV', mode: :dpy, length: 2 },
|
380
|
+
{ opcode: 0xD5, mnemonic: 'MOV', mode: :abspxa, length: 3 },
|
381
|
+
{ opcode: 0xD6, mnemonic: 'MOV', mode: :abspya, length: 3 },
|
382
|
+
{ opcode: 0xC5, mnemonic: 'MOV', mode: :absa, length: 3 },
|
383
|
+
{ opcode: 0xC9, mnemonic: 'MOV', mode: :absx, length: 3 },
|
384
|
+
{ opcode: 0xCC, mnemonic: 'MOV', mode: :absy, length: 3 },
|
385
|
+
{ opcode: 0xAA, mnemonic: 'MOV1', mode: :cmb, length: 3 },
|
386
|
+
{ opcode: 0xCA, mnemonic: 'MOV1', mode: :mbc, length: 3 },
|
387
|
+
{ opcode: 0xBA, mnemonic: 'MOVW', mode: :yadp, length: 2 },
|
388
|
+
{ opcode: 0xDA, mnemonic: 'MOVW', mode: :dpya, length: 2 },
|
389
|
+
{ opcode: 0xCF, mnemonic: 'MUL', mode: :ya, length: 1 },
|
390
|
+
{ opcode: 0x00, mnemonic: 'NOP', mode: :imp, length: 1 },
|
391
|
+
{ opcode: 0xEA, mnemonic: 'NOT1', mode: :mb, length: 3 },
|
392
|
+
{ opcode: 0xED, mnemonic: 'NOTC', mode: :imp, length: 1 },
|
393
|
+
{ opcode: 0x19, mnemonic: 'OR', mode: :idxidy, length: 1 },
|
394
|
+
{ opcode: 0x08, mnemonic: 'OR', mode: :accimp, length: 2 },
|
395
|
+
{ opcode: 0x06, mnemonic: 'OR', mode: :accidx, length: 1 },
|
396
|
+
{ opcode: 0x17, mnemonic: 'OR', mode: :accdpiy, length: 2 },
|
397
|
+
{ opcode: 0x07, mnemonic: 'OR', mode: :accdpix, length: 2 },
|
398
|
+
{ opcode: 0x04, mnemonic: 'OR', mode: :accdp, length: 2 },
|
399
|
+
{ opcode: 0x14, mnemonic: 'OR', mode: :accdpx, length: 2 },
|
400
|
+
{ opcode: 0x05, mnemonic: 'OR', mode: :accabs, length: 3 },
|
401
|
+
{ opcode: 0x15, mnemonic: 'OR', mode: :accabsx, length: 3 },
|
402
|
+
{ opcode: 0x16, mnemonic: 'OR', mode: :accabsy, length: 3 },
|
403
|
+
{ opcode: 0x09, mnemonic: 'OR', mode: :ddds, length: 3 },
|
404
|
+
{ opcode: 0x18, mnemonic: 'OR', mode: :dpimm, length: 3 },
|
405
|
+
{ opcode: 0x2A, mnemonic: 'OR1', mode: :cnmb, length: 3 },
|
406
|
+
{ opcode: 0x0A, mnemonic: 'OR1', mode: :cmb, length: 3 },
|
407
|
+
{ opcode: 0x4F, mnemonic: 'PCALL', mode: :upage, length: 2 },
|
408
|
+
{ opcode: 0xAE, mnemonic: 'POP', mode: :acc, length: 1 },
|
409
|
+
{ opcode: 0x8E, mnemonic: 'POP', mode: :psw, length: 1 },
|
410
|
+
{ opcode: 0xCE, mnemonic: 'POP', mode: :x, length: 1 },
|
411
|
+
{ opcode: 0xEE, mnemonic: 'POP', mode: :y, length: 1 },
|
412
|
+
{ opcode: 0x2D, mnemonic: 'PUSH', mode: :acc, length: 1 },
|
413
|
+
{ opcode: 0x0D, mnemonic: 'PUSH', mode: :psw, length: 1 },
|
414
|
+
{ opcode: 0x4D, mnemonic: 'PUSH', mode: :x, length: 1 },
|
415
|
+
{ opcode: 0x6D, mnemonic: 'PUSH', mode: :y, length: 1 },
|
416
|
+
{ opcode: 0x6F, mnemonic: 'RET', mode: :imp, length: 1 },
|
417
|
+
{ opcode: 0x7F, mnemonic: 'RETI', mode: :imp, length: 1 },
|
418
|
+
{ opcode: 0x3C, mnemonic: 'ROL', mode: :acc, length: 1 },
|
419
|
+
{ opcode: 0x2B, mnemonic: 'ROL', mode: :dp, length: 2 },
|
420
|
+
{ opcode: 0x3B, mnemonic: 'ROL', mode: :dppx, length: 2 },
|
421
|
+
{ opcode: 0x2C, mnemonic: 'ROL', mode: :abs, length: 3 },
|
422
|
+
{ opcode: 0x7C, mnemonic: 'ROR', mode: :acc, length: 1 },
|
423
|
+
{ opcode: 0x6B, mnemonic: 'ROR', mode: :dp, length: 2 },
|
424
|
+
{ opcode: 0x7B, mnemonic: 'ROR', mode: :dppx, length: 2 },
|
425
|
+
{ opcode: 0x6C, mnemonic: 'ROR', mode: :abs, length: 3 },
|
426
|
+
{ opcode: 0xB9, mnemonic: 'SBC', mode: :idxidy, length: 1 },
|
427
|
+
{ opcode: 0xA8, mnemonic: 'SBC', mode: :accimp, length: 2 },
|
428
|
+
{ opcode: 0xA6, mnemonic: 'SBC', mode: :accidx, length: 1 },
|
429
|
+
{ opcode: 0xB7, mnemonic: 'SBC', mode: :accdpiy, length: 2 },
|
430
|
+
{ opcode: 0xA7, mnemonic: 'SBC', mode: :accdpix, length: 2 },
|
431
|
+
{ opcode: 0xA4, mnemonic: 'SBC', mode: :accdp, length: 2 },
|
432
|
+
{ opcode: 0xB4, mnemonic: 'SBC', mode: :accdpx, length: 2 },
|
433
|
+
{ opcode: 0xA5, mnemonic: 'SBC', mode: :accabs, length: 3 },
|
434
|
+
{ opcode: 0xB5, mnemonic: 'SBC', mode: :accabsx, length: 3 },
|
435
|
+
{ opcode: 0xB6, mnemonic: 'SBC', mode: :accabsy, length: 3 },
|
436
|
+
{ opcode: 0xA9, mnemonic: 'SBC', mode: :ddds, length: 3 },
|
437
|
+
{ opcode: 0xB8, mnemonic: 'SBC', mode: :dpimm, length: 3 },
|
438
|
+
{ opcode: 0x02, mnemonic: 'SET1', mode: :dp0, length: 2 },
|
439
|
+
{ opcode: 0x22, mnemonic: 'SET1', mode: :dp1, length: 2 },
|
440
|
+
{ opcode: 0x42, mnemonic: 'SET1', mode: :dp2, length: 2 },
|
441
|
+
{ opcode: 0x62, mnemonic: 'SET1', mode: :dp3, length: 2 },
|
442
|
+
{ opcode: 0x82, mnemonic: 'SET1', mode: :dp4, length: 2 },
|
443
|
+
{ opcode: 0xA2, mnemonic: 'SET1', mode: :dp5, length: 2 },
|
444
|
+
{ opcode: 0xC2, mnemonic: 'SET1', mode: :dp6, length: 2 },
|
445
|
+
{ opcode: 0xE2, mnemonic: 'SET1', mode: :dp7, length: 2 },
|
446
|
+
{ opcode: 0x80, mnemonic: 'SETC', mode: :imp, length: 1 },
|
447
|
+
{ opcode: 0x40, mnemonic: 'SETP', mode: :imp, length: 1 },
|
448
|
+
{ opcode: 0xEF, mnemonic: 'SLEEP', mode: :imp, length: 1 },
|
449
|
+
{ opcode: 0xFF, mnemonic: 'STOP', mode: :imp, length: 1 },
|
450
|
+
{ opcode: 0x9A, mnemonic: 'SUBW', mode: :yadp, length: 2 },
|
451
|
+
{ opcode: 0x01, mnemonic: 'TCALL', mode: :t0, length: 1 },
|
452
|
+
{ opcode: 0x11, mnemonic: 'TCALL', mode: :t1, length: 1 },
|
453
|
+
{ opcode: 0x21, mnemonic: 'TCALL', mode: :t2, length: 1 },
|
454
|
+
{ opcode: 0x31, mnemonic: 'TCALL', mode: :t3, length: 1 },
|
455
|
+
{ opcode: 0x41, mnemonic: 'TCALL', mode: :t4, length: 1 },
|
456
|
+
{ opcode: 0x51, mnemonic: 'TCALL', mode: :t5, length: 1 },
|
457
|
+
{ opcode: 0x61, mnemonic: 'TCALL', mode: :t6, length: 1 },
|
458
|
+
{ opcode: 0x71, mnemonic: 'TCALL', mode: :t7, length: 1 },
|
459
|
+
{ opcode: 0x81, mnemonic: 'TCALL', mode: :t8, length: 1 },
|
460
|
+
{ opcode: 0x91, mnemonic: 'TCALL', mode: :t9, length: 1 },
|
461
|
+
{ opcode: 0xA1, mnemonic: 'TCALL', mode: :t10, length: 1 },
|
462
|
+
{ opcode: 0xB1, mnemonic: 'TCALL', mode: :t11, length: 1 },
|
463
|
+
{ opcode: 0xC1, mnemonic: 'TCALL', mode: :t12, length: 1 },
|
464
|
+
{ opcode: 0xD1, mnemonic: 'TCALL', mode: :t13, length: 1 },
|
465
|
+
{ opcode: 0xE1, mnemonic: 'TCALL', mode: :t14, length: 1 },
|
466
|
+
{ opcode: 0xF1, mnemonic: 'TCALL', mode: :t15, length: 1 },
|
467
|
+
{ opcode: 0x4E, mnemonic: 'TCLR1', mode: :abs, length: 3 },
|
468
|
+
{ opcode: 0x0E, mnemonic: 'TSET1', mode: :abs, length: 3 },
|
469
|
+
{ opcode: 0x9F, mnemonic: 'XCN', mode: :acc, length: 1 }].freeze
|
468
470
|
end
|
469
471
|
end
|
470
472
|
end
|