forked from wwarthen/RomWBW
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTEST65.ASM
298 lines (247 loc) · 5.77 KB
/
TEST65.ASM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; $Id: test65.asm 1.2 1997/11/29 13:07:53 toma Exp $
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; TASM test file
; Test all instructions and addressing modes.
; Processor: 6502
;
#define FLAG1
#define TORG $1234
.org $56
zlabel .byte $12
.word $1234
.word $1234/3
.word 1234h
.word %0101010
.word 0101010b
.word @1234
.word 1234o
.word 1234
.word 1234d
.word 0d
.word 1d
.word 2d
.word 3d
.word 4d
.word 10d
.word 20d
.word 100d
.word *
.word $
.word 3 * 7
.word 3 + 7
.word 3 - 7
.word 73 % 7
.word $1234 >> 4
.word $1234 << 4
.word 1 = 1
.word 1 = 0
.word 1 >= 1
.word 1 >= 2
.word 1 >= 0
.word 1 <= 1
.word 1 <= 2
.word 1 <= 0
.word 1 <= -1
.word TORG
.org $0234
alabel
ADC #zlabel
ADC (zlabel,X)
ADC (zlabel),Y
ADC (zlabel)
ADC (alabel & $ff) ; suppress UNUSED DATA error
ADC zlabel,X
ADC zlabel,Y
ADC zlabel
ADC alabel
AND #zlabel
AND (zlabel,X)
AND (zlabel),Y
AND (zlabel)
AND zlabel,X
AND zlabel,Y
AND zlabel
AND alabel
ASL A
ASL zlabel,X
ASL zlabel
loop
BCC loop
BCS loop
BEQ loop
BNE loop
BMI loop
BPL loop
BVC loop
BVS loop
BIT #zlabel
BIT zlabel,X
BIT zlabel
BIT alabel
BRK
CLC
CLD
CLI
CLV
CMP #zlabel
CMP (zlabel,X)
CMP (zlabel),Y
CMP (zlabel)
CMP zlabel,X
CMP zlabel,Y
CMP zlabel
CMP alabel
CPX #zlabel
CPX zlabel
CPX alabel
CPY #zlabel
CPY zlabel
CPY alabel
DEC A
DEC zlabel,X
DEC alabel,X
DEC zlabel
DEC alabel
DEX
DEY
EOR #zlabel
EOR (zlabel,X)
EOR (zlabel),Y
EOR (zlabel)
EOR zlabel,X
EOR zlabel,Y
EOR zlabel
EOR alabel
INC A
INC zlabel,X
INC alabel,X
INC zlabel
INC alabel
INX
INY
JMP (zlabel,X)
JMP (zlabel)
JMP zlabel
JSR zlabel
JSR alabel
LDA #zlabel
LDA (zlabel,X)
LDA (zlabel),Y
LDA (zlabel)
LDA zlabel,X
LDA zlabel,Y
LDA zlabel
LDA alabel
LDX #zlabel
LDX zlabel,Y
LDX zlabel
LDX alabel
LDY #zlabel
LDY zlabel,X
LDY zlabel
LDY alabel
LSR A
LSR zlabel,X
LSR zlabel
LSR alabel
NOP
ORA #zlabel
ORA (zlabel,X)
ORA (zlabel),Y
ORA (zlabel)
ORA zlabel,X
ORA zlabel,Y
ORA zlabel
ORA alabel
PHA
PHP
PLA
PLP
ROL A
ROL zlabel,X
ROL zlabel
ROL alabel
ROR A
ROR zlabel,X
ROR alabel,X
ROR zlabel
ROR alabel
RTI
RTS
SBC #zlabel
SBC (zlabel,X)
SBC (zlabel),Y
SBC (zlabel)
SBC zlabel,X
SBC zlabel,Y
SBC zlabel
SBC alabel
SEC
SED
SEI
STA (zlabel,X)
STA (zlabel),Y
STA (zlabel)
STA zlabel,X
STA zlabel,Y
STA zlabel
STA alabel
STX zlabel,Y
STX zlabel
STX alabel
STY zlabel,X
STY zlabel
STY alabel
TAX
TAY
TSX
TXA
TXS
TYA
BRA loop2
loop2
BBR0 zlabel,loop2
BBR1 zlabel,loop2
BBR2 zlabel,loop2
BBR3 zlabel,loop2
BBR4 zlabel,loop2
BBR5 zlabel,loop2
BBR6 zlabel,loop2
BBR7 zlabel,loop2
BBS0 zlabel,loop2
BBS1 zlabel,loop2
BBS2 zlabel,loop2
BBS3 zlabel,loop2
BBS4 zlabel,loop2
BBS5 zlabel,loop2
BBS6 zlabel,loop2
BBS7 zlabel,loop2
MUL
PHX
PHY
PLX
PLY
RMB0 zlabel
RMB1 zlabel
RMB2 zlabel
RMB3 zlabel
RMB4 zlabel
RMB5 zlabel
RMB6 zlabel
RMB7 zlabel
SMB0 zlabel
SMB1 zlabel
SMB2 zlabel
SMB3 zlabel
SMB4 zlabel
SMB5 zlabel
SMB6 zlabel
SMB7 zlabel
STZ zlabel,X
STZ zlabel
STZ alabel
TRB zlabel
TSB zlabel
.end