1 |
2 |
MichaelA |
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 1
|
2 |
|
|
--------------------------------------------------------- m65c02_tst3.a65 ---------------------------------------------------------
|
3 |
|
|
|
4 |
|
|
---------------------------------------------------------- Symbol Table -----------------------------------------------------------
|
5 |
|
|
|
6 |
|
|
Symbol Value Decimal
|
7 |
|
|
|
8 |
|
|
Abs : $0200 512
|
9 |
|
|
AbsI_Dst : $f83c 63548
|
10 |
|
|
AbsX : $0201 513
|
11 |
|
|
AbsXI_Dst : $f840 63552
|
12 |
|
|
AbsY : $0202 514
|
13 |
|
|
Abs_Dst : $f838 63544
|
14 |
|
|
BBRx :
|
15 |
|
|
BBSx :
|
16 |
|
|
BCD_Tst : $fbdf 64479
|
17 |
|
|
Clr_MSB : $fcb8 64696
|
18 |
|
|
Continue : $f867 63591
|
19 |
|
|
DP : $0010 16
|
20 |
|
|
DPX : $0011 17
|
21 |
|
|
DPY : $0012 18
|
22 |
|
|
Err_BCC : $f84f 63567
|
23 |
|
|
Err_BCS : $f855 63573
|
24 |
|
|
Err_BCS2 : $f861 63585
|
25 |
|
|
Err_BEQ : $f857 63575
|
26 |
|
|
Err_BMI : $f84c 63564
|
27 |
|
|
Err_BNE : $f85e 63582
|
28 |
|
|
Err_BPL : $f848 63560
|
29 |
|
|
Err_BVC : $f853 63571
|
30 |
|
|
Err_BVS : $f85c 63580
|
31 |
|
|
Fwd : $f865 63589
|
32 |
|
|
Hi_Return : $0000 0
|
33 |
|
|
Init_RAM : $f815 63509
|
34 |
|
|
Interrupt : $f808 63496
|
35 |
|
|
IRQ_Off : $fff9 65529
|
36 |
|
|
IRQ_On : $fff8 65528
|
37 |
|
|
IRQ_Tst : $fbf6 64502
|
38 |
|
|
IRQ_Tst2 : $fbfe 64510
|
39 |
|
|
IRQ_Tst3 : $fc05 64517
|
40 |
|
|
IRQ_Tst4 : $fc08 64520
|
41 |
|
|
IRQ_Vector : $fffe 65534
|
42 |
|
|
ISR_End : $f814 63508
|
43 |
|
|
Jmp_AbsI : $f803 63491
|
44 |
|
|
Jmp_AbsXI : $f805 63493
|
45 |
|
|
Last_Addrs : $fcd8 64728
|
46 |
|
|
LBL0002 : $fc63 64611
|
47 |
|
|
LBL0004 : $fc68 64616
|
48 |
|
|
LBL0006 : $fc6d 64621
|
49 |
|
|
LBL0008 : $fc72 64626
|
50 |
|
|
LBL0010 : $fc77 64631
|
51 |
|
|
LBL0012 : $fc7c 64636
|
52 |
|
|
LBL0014 : $fc81 64641
|
53 |
|
|
LBL0016 : $fc86 64646
|
54 |
|
|
LBL0018 : $fc8b 64651
|
55 |
|
|
LBL0020 : $fc90 64656
|
56 |
|
|
LBL0022 : $fc95 64661
|
57 |
|
|
LBL0024 : $fc9a 64666
|
58 |
|
|
LBL0026 : $fc9f 64671
|
59 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 2
|
60 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
61 |
|
|
|
62 |
|
|
LBL0028 : $fca4 64676
|
63 |
|
|
LBL0030 : $fca9 64681
|
64 |
|
|
LBL0032 : $fcae 64686
|
65 |
|
|
LBL0033 : $fcb5 64693
|
66 |
|
|
LBL0035 : $fcba 64698
|
67 |
|
|
Lo_Return : $00ff 255
|
68 |
|
|
MSB_Clr : $fcbf 64703
|
69 |
|
|
MSB_Set : $fcbd 64701
|
70 |
|
|
Neg_Return : $0001 1
|
71 |
|
|
NMI_Vector : $fffa 65530
|
72 |
|
|
pDPI : $0008 8
|
73 |
|
|
pDPIY : $000c 12
|
74 |
|
|
pDPXI : $000a 10
|
75 |
|
|
Return : $f837 63543
|
76 |
|
|
RMBx :
|
77 |
|
|
ROM_Start : $f800 63488
|
78 |
|
|
RST_Vector : $fffc 65532
|
79 |
|
|
SMBx :
|
80 |
|
|
STP :
|
81 |
|
|
Start : $f800 63488
|
82 |
|
|
Test_Main : $f844 63556
|
83 |
|
|
Tst_BPL : $f846 63558
|
84 |
|
|
WAI :
|
85 |
|
|
__65SC02__ : $0001 1
|
86 |
|
|
|
87 |
|
|
69 labels used
|
88 |
|
|
|
89 |
|
|
1009 lines read, no errors in pass 1.
|
90 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 3
|
91 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
92 |
|
|
|
93 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
94 |
|
|
;;
|
95 |
|
|
;; Copyright 2012 by Michael A. Morris, dba M. A. Morris & Associates
|
96 |
|
|
;;
|
97 |
|
|
;; All rights reserved. The source code contained herein is publicly released
|
98 |
|
|
;; under the terms and conditions of the GNU Lesser Public License. No part of
|
99 |
|
|
;; this source code may be reproduced or transmitted in any form or by any
|
100 |
|
|
;; means, electronic or mechanical, including photocopying, recording, or any
|
101 |
|
|
;; information storage and retrieval system in violation of the license under
|
102 |
|
|
;; which the source code is released.
|
103 |
|
|
;;
|
104 |
|
|
;; The souce code contained herein is free; it may be redistributed and/or
|
105 |
|
|
;; modified in accordance with the terms of the GNU Lesser General Public
|
106 |
|
|
;; License as published by the Free Software Foundation; either version 2.1 of
|
107 |
|
|
;; the GNU Lesser General Public License, or any later version.
|
108 |
|
|
;;
|
109 |
|
|
;; The souce code contained herein is freely released WITHOUT ANY WARRANTY;
|
110 |
|
|
;; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
111 |
|
|
;; PARTICULAR PURPOSE. (Refer to the GNU Lesser General Public License for
|
112 |
|
|
;; more details.)
|
113 |
|
|
;;
|
114 |
|
|
;; A copy of the GNU Lesser General Public License should have been received
|
115 |
|
|
;; along with the source code contained herein; if not, a copy can be obtained
|
116 |
|
|
;; by writing to:
|
117 |
|
|
;;
|
118 |
|
|
;; Free Software Foundation, Inc.
|
119 |
|
|
;; 51 Franklin Street, Fifth Floor
|
120 |
|
|
;; Boston, MA 02110-1301 USA
|
121 |
|
|
;;
|
122 |
|
|
;; Further, no use of this source code is permitted in any form or means
|
123 |
|
|
;; without inclusion of this banner prominently in any derived works.
|
124 |
|
|
;;
|
125 |
|
|
;; Michael A. Morris
|
126 |
|
|
;; Huntsville, AL
|
127 |
|
|
;;
|
128 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
129 |
|
|
;;
|
130 |
|
|
; #------------------------------------------------------------------------#
|
131 |
|
|
; | |
|
132 |
|
|
; | M65C02_Tst2.A65 |
|
133 |
|
|
; | |
|
134 |
|
|
; | Test program for M65C02_Core.v |
|
135 |
|
|
; | |
|
136 |
|
|
; | Copyright 2012, Michael A. Morris |
|
137 |
|
|
; | |
|
138 |
|
|
; #------------------------------------------------------------------------#
|
139 |
|
|
;
|
140 |
|
|
; File created 11-Feb-2012
|
141 |
|
|
;
|
142 |
|
|
; Modified 09-Dec-2012 mam Changed to a "ROM" type of test program
|
143 |
|
|
; where the program is at the top of memory
|
144 |
|
|
; and includes the three vectors. Intent is to
|
145 |
|
|
; convert core so it indirectly jump through
|
146 |
|
|
; the normal processor vectors when an excep-
|
147 |
|
|
; is performed: Reset, NMI, or IRQ/BRK.
|
148 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 4
|
149 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
150 |
|
|
|
151 |
|
|
;
|
152 |
|
|
; To make this change need to add code to
|
153 |
|
|
; initialize page 0, 1, and 2 RAM locations.
|
154 |
|
|
;
|
155 |
|
|
; Modified 15-Dec-2012 mam Modified to remove Rockwell instruction op-
|
156 |
|
|
; codes from the NOP/Invalid instruction list.
|
157 |
|
|
;
|
158 |
|
|
title "M65C02_Core Test Program - all instructions"
|
159 |
|
|
;;
|
160 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
161 |
|
|
;;
|
162 |
|
|
;; Define macros for the Rockwell instructions
|
163 |
|
|
;;
|
164 |
|
|
RMBx macro BitNum, ZP
|
165 |
|
|
db ((BitNum+0)*16)+7
|
166 |
|
|
db ZP
|
167 |
|
|
endm
|
168 |
|
|
;;
|
169 |
|
|
SMBx macro BitNum, ZP
|
170 |
|
|
db ((BitNum+8)*16)+7
|
171 |
|
|
db ZP
|
172 |
|
|
endm
|
173 |
|
|
;;
|
174 |
|
|
BBRx macro BitNum, ZP, Dst
|
175 |
|
|
LBL\? db ((BitNum+0)*16)+15
|
176 |
|
|
db ZP
|
177 |
|
|
if(Dst < LBL\?+3)
|
178 |
|
|
db -(Dst-LBL\?+1)
|
179 |
|
|
else
|
180 |
|
|
db (Dst-LBL\?-3)
|
181 |
|
|
endif
|
182 |
|
|
endm
|
183 |
|
|
;;
|
184 |
|
|
BBSx macro BitNum, ZP, Dst
|
185 |
|
|
LBL\? db ((BitNum+8)*16)+15
|
186 |
|
|
db ZP
|
187 |
|
|
if(Dst < LBL\?+3)
|
188 |
|
|
db -(Dst-LBL\?+1)
|
189 |
|
|
else
|
190 |
|
|
db (Dst-LBL\?-3)
|
191 |
|
|
endif
|
192 |
|
|
endm
|
193 |
|
|
;;
|
194 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
195 |
|
|
;;
|
196 |
|
|
;; Define macros for the W65802/65816 instructions implemented in W65C02S
|
197 |
|
|
;;
|
198 |
|
|
STP macro
|
199 |
|
|
db $DB
|
200 |
|
|
endm
|
201 |
|
|
;;
|
202 |
|
|
WAI macro
|
203 |
|
|
db $CB
|
204 |
|
|
endm
|
205 |
|
|
;;
|
206 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 5
|
207 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
208 |
|
|
|
209 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
210 |
|
|
;;
|
211 |
|
|
f800 = ROM_Start equ $F800 ;; Boot "ROM" Start Address
|
212 |
|
|
;;
|
213 |
|
|
fffa = NMI_Vector equ $FFFA ;; Normal Non-maskable Interrupt Vector
|
214 |
|
|
fffc = RST_Vector equ $FFFC ;; Normal Reset Vector
|
215 |
|
|
fffe = IRQ_Vector equ $FFFE ;; Normal Maskable Interrupt or BRK Vector
|
216 |
|
|
;;
|
217 |
|
|
fff8 = IRQ_On equ $FFF8 ;; Set External Interrupt Request
|
218 |
|
|
fff9 = IRQ_Off equ $FFF9 ;; Clr External Interrupt Request
|
219 |
|
|
;;
|
220 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
221 |
|
|
;;
|
222 |
|
|
bss
|
223 |
|
|
0000 = org $0000
|
224 |
|
|
;;
|
225 |
|
|
0000 = Hi_Return ds 1
|
226 |
|
|
0001 = Neg_Return ds 2
|
227 |
|
|
;;
|
228 |
|
|
0008 = org $0008
|
229 |
|
|
;;
|
230 |
|
|
0008 = pDPI ds 2 ;; DP = (pDPI)
|
231 |
|
|
000a = pDPXI ds 2 ;; DPX = (pDPI,X) {X = 2}
|
232 |
|
|
000c = pDPIY ds 2 ;; DPY = (pDPI),Y {Y = 2}
|
233 |
|
|
;;
|
234 |
|
|
0010 = org $0010
|
235 |
|
|
;;
|
236 |
|
|
0010 = DP ds 1 ;; DP; DP,X (X = 0); DP,Y (Y = 0)
|
237 |
|
|
0011 = DPX ds 1 ;; DPX; DP,X (X = 1); DP,Y (Y = 1)
|
238 |
|
|
0012 = DPY ds 1 ;; DPY; DP,X (X = 2); DP,Y (Y = 2)
|
239 |
|
|
;;
|
240 |
|
|
00ff = org $00FF
|
241 |
|
|
;;
|
242 |
|
|
00ff = Lo_Return ds 1
|
243 |
|
|
;;
|
244 |
|
|
bss
|
245 |
|
|
0100 = Stack_Page org $0100
|
246 |
|
|
;;
|
247 |
|
|
0200 = RAM_Start org $0200
|
248 |
|
|
;;
|
249 |
|
|
0200 = Abs ds 1
|
250 |
|
|
0201 = AbsX ds 1
|
251 |
|
|
0202 = AbsY ds 1
|
252 |
|
|
;;
|
253 |
|
|
code
|
254 |
|
|
f800 = org ROM_Start
|
255 |
|
|
f800 : 4c38f8 [ 3] Start jmp Abs_Dst
|
256 |
|
|
;;
|
257 |
|
|
f803 : 3cf8 Jmp_AbsI dw AbsI_Dst
|
258 |
|
|
f805 : 40f8 Jmp_AbsXI dw AbsXI_Dst
|
259 |
|
|
;;
|
260 |
|
|
f807 : 00 ds 1
|
261 |
|
|
;;
|
262 |
|
|
f808 : 48 [ 3] Interrupt pha ;; preserve Acc
|
263 |
|
|
f809 : 08 [ 3] php ;; push current PSW, on entry D cleared and
|
264 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 6
|
265 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
266 |
|
|
|
267 |
|
|
f80a : 68 [ 4] pla ;; I should be set
|
268 |
|
|
f80b : 8908 [ 2] bit #$08 ;; check if BCD mode not set
|
269 |
|
|
f80d : d0fe [ 3] bne * ;; if <> 0, error
|
270 |
|
|
f80f : 8904 [ 2] bit #$04 ;; check is Interrupt Mask set
|
271 |
|
|
f811 : f0fe [ 3] beq * ;; if == 0, error
|
272 |
|
|
f813 : 68 [ 4] pla ;; restore Acc
|
273 |
|
|
f814 : 40 [ 6] ISR_End rti ;; Exit ISR
|
274 |
|
|
;;
|
275 |
|
|
f815 : a937 [ 2] Init_RAM lda #(lo Return)
|
276 |
|
|
f817 : 85ff [ 3] sta Lo_Return
|
277 |
|
|
f819 : a9f8 [ 2] lda #(hi Return)
|
278 |
|
|
f81b : 8500 [ 3] sta Hi_Return
|
279 |
|
|
;;
|
280 |
|
|
f81d : a9c9 [ 2] lda #(lo -Return)
|
281 |
|
|
f81f : 8501 [ 3] sta Hi_Return+1
|
282 |
|
|
f821 : a907 [ 2] lda #(hi -Return)
|
283 |
|
|
f823 : 8502 [ 3] sta Hi_Return+2
|
284 |
|
|
;;
|
285 |
|
|
f825 : a910 [ 2] lda #(lo DP)
|
286 |
|
|
f827 : 8508 [ 3] sta pDPI
|
287 |
|
|
f829 : 6409 [ 3] stz pDPI+1
|
288 |
|
|
;;
|
289 |
|
|
f82b : a911 [ 2] lda #(lo DPX)
|
290 |
|
|
f82d : 850a [ 3] sta pDPXI
|
291 |
|
|
f82f : 640b [ 3] stz pDPXI+1
|
292 |
|
|
;;
|
293 |
|
|
f831 : a912 [ 2] lda #(lo DPY)
|
294 |
|
|
f833 : 850c [ 3] sta pDPIY
|
295 |
|
|
f835 : 640d [ 3] stz pDPIY+1
|
296 |
|
|
;;
|
297 |
|
|
f837 : 60 [ 6] Return rts
|
298 |
|
|
;;
|
299 |
|
|
f838 : 6c03f8 [ 6] Abs_Dst jmp (Jmp_AbsI)
|
300 |
|
|
f83b : ea [ 2] nop
|
301 |
|
|
f83c : 7c05f8 [ 6] AbsI_Dst jmp (Jmp_AbsXI, x)
|
302 |
|
|
f83f : ea [ 2] nop
|
303 |
|
|
;;
|
304 |
|
|
f840 : 2037f8 [ 6] AbsXI_Dst jsr Return
|
305 |
|
|
f843 : ea [ 2] nop
|
306 |
|
|
f844 : 801f [ 3] Test_Main bra Fwd ;; Rel, P = {N, V, 1'b1, B, D, I, Z, C}
|
307 |
|
|
f846 : a980 [ 2] Tst_BPL lda #$80 ;; Imm, A = 0x80, P = 0xA4
|
308 |
|
|
f848 : 10fe [ 3] Err_BPL bpl Err_BPL ;; Rel, P = {N, V, 1'b1, B, D, I, Z, C}
|
309 |
|
|
f84a : 4980 [ 2] eor #$80 ;; Imm, A = 0x00, P = 0x26
|
310 |
|
|
f84c : 30fe [ 3] Err_BMI bmi Err_BMI ;; Rel, P = {N, V, 1'b1, B, D, I, Z, C}
|
311 |
|
|
f84e : 38 [ 2] sec ;; Imp, A = 0x00, P = 0x27
|
312 |
|
|
f84f : 90fe [ 3] Err_BCC bcc Err_BCC ;; Rel, P = {N, V, 1'b1, B, D, I, Z, C}
|
313 |
|
|
f851 : e980 [ 2] sbc #$80 ;; Imm, A = 0x80, P = 0xE4
|
314 |
|
|
f853 : 50fe [ 3] Err_BVC bvc Err_BVC ;; Rel, P = {N, V, 1'b1, B, D, I, Z, C}
|
315 |
|
|
f855 : b0fe [ 3] Err_BCS bcs Err_BCS ;; Rel, P = {N, V, 1'b1, B, D, I, Z, C}
|
316 |
|
|
f857 : f0fe [ 3] Err_BEQ beq Err_BEQ ;; Rel, P = {N, V, 1'b1, B, D, I, Z, C}
|
317 |
|
|
f859 : e97f [ 2] sbc #$7F ;; Imm, A = 0x00, P = 0x67
|
318 |
|
|
f85b : b8 [ 2] clv ;; Imp, A = 0x00, P = 0x27
|
319 |
|
|
f85c : 70fe [ 3] Err_BVS bvs Err_BVS ;; Rel, P = {N, V, 1'b1, B, D, I, Z, C}
|
320 |
|
|
f85e : d0fe [ 3] Err_BNE bne Err_BNE ;; Rel, P = {N, V, 1'b1, B, D, I, Z, C}
|
321 |
|
|
f860 : 18 [ 2] clc ;; Imp, A = 0x00, P = 0x26
|
322 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 7
|
323 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
324 |
|
|
|
325 |
|
|
f861 : b0fe [ 3] Err_BCS2 bcs Err_BCS2 ;; Rel, P = {N, V, 1'b1, B, D, I, Z, C}
|
326 |
|
|
f863 : 8002 [ 3] bra Continue
|
327 |
|
|
f865 : 80df [ 3] Fwd bra Tst_BPL ;; Test Conditional Branch Instructions
|
328 |
|
|
;;
|
329 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
330 |
|
|
;;
|
331 |
|
|
;; Implicit/Accumulator/Immediate Address Instructions
|
332 |
|
|
;;
|
333 |
|
|
f867 : ea [ 2] Continue nop ;; Imp, A = 0x00, P = 0x26
|
334 |
|
|
;;
|
335 |
|
|
f868 : 58 [ 2] cli ;; Imp, A = 0x00, P = 0x22
|
336 |
|
|
f869 : 08 [ 3] php ;; Psh, (S) = 0x22, P = 0x22
|
337 |
|
|
f86a : 68 [ 4] pla ;; Pop, A = 0x22, P = 0x20
|
338 |
|
|
f86b : 2904 [ 2] and #$04 ;; Imm, A = 0x00, P = 0x22
|
339 |
|
|
f86d : d0fe [ 3] bne * ;; Rel, A = 0x00, P = 0x22
|
340 |
|
|
f86f : ea [ 2] nop ;; Imp, A = 0x00, P = 0x22
|
341 |
|
|
;;
|
342 |
|
|
f870 : 78 [ 2] sei ;; Imp, A = 0x00, P = 0x26
|
343 |
|
|
f871 : 08 [ 3] php ;; Psh, (S) = 0x26, P = 0x26
|
344 |
|
|
f872 : 68 [ 4] pla ;; Pop, A = 0x26, P = 0x24
|
345 |
|
|
f873 : 2904 [ 2] and #$04 ;; Imm, A = 0x04, P = 0x24
|
346 |
|
|
f875 : f0fe [ 3] beq * ;; Rel, A = 0x04, P = 0x24
|
347 |
|
|
f877 : ea [ 2] nop ;; Imp, A = 0x04, P = 0x24
|
348 |
|
|
;;
|
349 |
|
|
f878 : f8 [ 2] sed ;; Imp, A = 0x04, P = 0x2C
|
350 |
|
|
f879 : 08 [ 3] php ;; Psh, (S) = 0x2C, P = 0x2C
|
351 |
|
|
f87a : 68 [ 4] pla ;; Pop, A = 0x2C, P = 0x2C
|
352 |
|
|
f87b : 2908 [ 2] and #$08 ;; Imm, A = 0x08, P = 0x2C
|
353 |
|
|
f87d : f0fe [ 3] beq * ;; Rel, A = 0x08, P = 0x2C
|
354 |
|
|
f87f : ea [ 2] nop ;; Imp, A = 0x08, P = 0x2C
|
355 |
|
|
;;
|
356 |
|
|
f880 : d8 [ 2] cld ;; Imp, A = 0x08, P = 0x24
|
357 |
|
|
f881 : 08 [ 3] php ;; Psh, A = 0x08, P = 0x24
|
358 |
|
|
f882 : 68 [ 4] pla ;; Pop, A = 0x24, P = 0x24
|
359 |
|
|
f883 : 2908 [ 2] and #$08 ;; Imm, A = 0x00, P = 0x26
|
360 |
|
|
f885 : d0fe [ 3] bne * ;; Rel, P = {N, V, 1'b1, B, D, I, Z, C}
|
361 |
|
|
f887 : ea [ 2] nop ;; Imp, A = 0x00, P = 0x26
|
362 |
|
|
;;
|
363 |
|
|
f888 : a955 [ 2] lda #$55 ;; Imm, A = 0x55, P = 0x24
|
364 |
|
|
f88a : 09aa [ 2] ora #$AA ;; Imm, A = 0xFF, P = 0xA4
|
365 |
|
|
f88c : 48 [ 3] pha ;; Psh, A = 0xFF, P = 0xA4
|
366 |
|
|
f88d : 28 [ 4] plp ;; Pop, A = 0xFF, P = 0xEF
|
367 |
|
|
f88e : 50fe [ 3] bvc * ;; Stop if ~V
|
368 |
|
|
f890 : d0fe [ 3] bne * ;; Stop if ~Z
|
369 |
|
|
f892 : 90fe [ 3] bcc * ;; Stop if ~C
|
370 |
|
|
f894 : 10fe [ 3] bpl * ;; Stop if ~N
|
371 |
|
|
;;
|
372 |
|
|
f896 : c9ff [ 2] cmp #$FF ;; Imm, A = 0xFF, P = 0x6F Make sure A is -1
|
373 |
|
|
f898 : d0fe [ 3] bne * ;; Rel, A = 0xFF, P = 0x6F
|
374 |
|
|
f89a : 30fe [ 3] bmi * ;; Rel, A = 0xFF, P = 0x6F
|
375 |
|
|
f89c : 90fe [ 3] bcc * ;; Rel, A = 0xFF, P = 0x6F
|
376 |
|
|
;;
|
377 |
|
|
f89e : 18 [ 2] clc ;; Imp, A = 0xFF, P = 0x6E
|
378 |
|
|
f89f : d8 [ 2] cld ;; Imp, A = 0xFF, P = 0x66
|
379 |
|
|
f8a0 : b8 [ 2] clv ;; Imm, A = 0xFF, P = 0x66
|
380 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 8
|
381 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
382 |
|
|
|
383 |
|
|
f8a1 : 6901 [ 2] adc #$01 ;; Imm, A = 0x00, P = 0x27
|
384 |
|
|
f8a3 : 0904 [ 2] ora #$04 ;; Imm, A = 0x04, P = 0x25
|
385 |
|
|
f8a5 : 48 [ 3] pha ;; Psh, A = 0x04, P = 0x25
|
386 |
|
|
f8a6 : 28 [ 4] plp ;; Pop, A = 0x04, P = 0x24
|
387 |
|
|
;;
|
388 |
|
|
f8a7 : a0aa [ 2] ldy #$AA ;; Imm, Y = 0xAA, P = 0xA4
|
389 |
|
|
f8a9 : c0aa [ 2] cpy #$AA ;; Imm, Y = 0xAA, P = 0x27
|
390 |
|
|
f8ab : d0fe [ 3] bne * ;; Rel, Y = 0xAA, P = 0x27
|
391 |
|
|
f8ad : 30fe [ 3] bmi * ;; Rel, Y = 0xAA, P = 0x27
|
392 |
|
|
f8af : 90fe [ 3] bcc * ;; Rel, Y = 0xAA, P = 0x27
|
393 |
|
|
f8b1 : 5a [ 3] phy
|
394 |
|
|
;;
|
395 |
|
|
f8b2 : a255 [ 2] ldx #$55 ;; Imm, X = 0x55, P = 0x25
|
396 |
|
|
f8b4 : e055 [ 2] cpx #$55 ;; Imm, X = 0x55, P = 0x27
|
397 |
|
|
f8b6 : d0fe [ 3] bne * ;; Rel, X = 0x55, P = 0x27
|
398 |
|
|
f8b8 : 30fe [ 3] bmi * ;; Rel, X = 0x55, P = 0x27
|
399 |
|
|
f8ba : 90fe [ 3] bcc * ;; Rel, X = 0x55, P = 0x27
|
400 |
|
|
f8bc : da [ 3] phx
|
401 |
|
|
;;
|
402 |
|
|
f8bd : 7a [ 4] ply ;; Imm, Y = 0x55, P = 0x25
|
403 |
|
|
f8be : c055 [ 2] cpy #$55 ;; Imm, Y = 0x55, P = 0x27
|
404 |
|
|
f8c0 : d0fe [ 3] bne * ;; Rel, Y = 0x55, P = 0x27
|
405 |
|
|
f8c2 : 30fe [ 3] bmi * ;; Rel, Y = 0x55, P = 0x27
|
406 |
|
|
f8c4 : 90fe [ 3] bcc * ;; Rel, Y = 0x55, P = 0x27
|
407 |
|
|
;;
|
408 |
|
|
f8c6 : fa [ 4] plx ;; Imm, X = 0xAA, P = 0xA5
|
409 |
|
|
f8c7 : e0aa [ 2] cpx #$AA ;; Imm, X = 0xAA, P = 0x27
|
410 |
|
|
f8c9 : d0fe [ 3] bne * ;; Rel, X = 0xAA, P = 0x27
|
411 |
|
|
f8cb : 30fe [ 3] bmi * ;; Rel, X = 0xAA, P = 0x27
|
412 |
|
|
f8cd : 90fe [ 3] bcc * ;; Rel, X = 0xAA, P = 0x27
|
413 |
|
|
;;
|
414 |
|
|
f8cf : 8904 [ 2] bit #$04 ;; Imm, A = 0x04, P = 0x25
|
415 |
|
|
f8d1 : f0fe [ 3] beq * ;; Rel, A = 0x04, P = 0x25
|
416 |
|
|
f8d3 : 8900 [ 2] bit #$00 ;; Imm, A = 0x04, P = 0x27
|
417 |
|
|
f8d5 : d0fe [ 3] bne * ;; Rel, A = 0x04, P = 0x27
|
418 |
|
|
;;
|
419 |
|
|
f8d7 : 98 [ 2] tya ;; Imm, A = 0x55, P = 0x25
|
420 |
|
|
f8d8 : c955 [ 2] cmp #$55 ;; Imm, A = 0x55, P = 0x27
|
421 |
|
|
f8da : d0fe [ 3] bne * ;; Rel, A = 0x55, P = 0x27
|
422 |
|
|
f8dc : 30fe [ 3] bmi * ;; Rel, A = 0x55, P = 0x27
|
423 |
|
|
f8de : 90fe [ 3] bcc * ;; Rel, A = 0x55, P = 0x27
|
424 |
|
|
;;
|
425 |
|
|
f8e0 : a8 [ 2] tay ;; Imm, Y = 0x55, P = 0x25
|
426 |
|
|
f8e1 : c055 [ 2] cpy #$55 ;; Imm, Y = 0x55, P = 0x27
|
427 |
|
|
f8e3 : d0fe [ 3] bne * ;; Rel, Y = 0x55, P = 0x27
|
428 |
|
|
f8e5 : 30fe [ 3] bmi * ;; Rel, Y = 0x55, P = 0x27
|
429 |
|
|
f8e7 : 90fe [ 3] bcc * ;; Rel, Y = 0x55, P = 0x27
|
430 |
|
|
;;
|
431 |
|
|
f8e9 : 8a [ 2] txa ;; Imm, A = 0xAA, P = 0xA5
|
432 |
|
|
f8ea : c9aa [ 2] cmp #$AA ;; Imm, A = 0xAA, P = 0x27
|
433 |
|
|
f8ec : d0fe [ 3] bne * ;; Rel, A = 0xAA, P = 0x27
|
434 |
|
|
f8ee : 30fe [ 3] bmi * ;; Rel, A = 0xAA, P = 0x27
|
435 |
|
|
f8f0 : 90fe [ 3] bcc * ;; Rel, A = 0xAA, P = 0x27
|
436 |
|
|
;;
|
437 |
|
|
f8f2 : aa [ 2] tax ;; Imm, X = 0xAA, P = 0xA5
|
438 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 9
|
439 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
440 |
|
|
|
441 |
|
|
f8f3 : e0aa [ 2] cpx #$AA ;; Imm, X = 0xAA, P = 0x27
|
442 |
|
|
f8f5 : d0fe [ 3] bne * ;; Rel, X = 0xAA, P = 0x27
|
443 |
|
|
f8f7 : 30fe [ 3] bmi * ;; Rel, X = 0xAA, P = 0x27
|
444 |
|
|
f8f9 : 90fe [ 3] bcc * ;; Rel, X = 0xAA, P = 0x27
|
445 |
|
|
;;
|
446 |
|
|
f8fb : ba [ 2] tsx ;; Imm, X = 0xFF, P = 0xA5
|
447 |
|
|
f8fc : 9a [ 2] txs ;; Imm, S = 0xFF, P = 0xA5
|
448 |
|
|
f8fd : e0ff [ 2] cpx #$FF ;; Imm, X = 0xFF, P = 0x27
|
449 |
|
|
f8ff : d0fe [ 3] bne * ;; Rel, X = 0xFF, P = 0x27
|
450 |
|
|
f901 : 30fe [ 3] bmi * ;; Rel, X = 0xFF, P = 0x27
|
451 |
|
|
f903 : 90fe [ 3] bcc * ;; Rel, X = 0xFF, P = 0x27
|
452 |
|
|
;;
|
453 |
|
|
f905 : 0a [ 2] asl a ;; Acc, A = 0x54, P = 0x25
|
454 |
|
|
f906 : 30fe [ 3] bmi * ;; Rel, A = 0x54, P = 0x25
|
455 |
|
|
f908 : 90fe [ 3] bcc * ;; Rel, A = 0x54, P = 0x25
|
456 |
|
|
f90a : c954 [ 2] cmp #$54 ;; Imm, A = 0x54, P = 0x27
|
457 |
|
|
f90c : d0fe [ 3] bne * ;; Rel, A = 0x54, P = 0x27
|
458 |
|
|
;;
|
459 |
|
|
f90e : 2a [ 2] rol a ;; Acc, A = 0xA9, P = 0xA5
|
460 |
|
|
f90f : 10fe [ 3] bpl * ;; Rel, A = 0xA9, P = 0xA4
|
461 |
|
|
f911 : b0fe [ 3] bcs * ;; Rel, A = 0xA9, P = 0xA4
|
462 |
|
|
f913 : c9a9 [ 2] cmp #$A9 ;; Imm, A = 0xA9, P = 0x26
|
463 |
|
|
f915 : d0fe [ 3] bne * ;; Rel, A = 0xA9, P = 0x26
|
464 |
|
|
;;
|
465 |
|
|
f917 : 4a [ 2] lsr a ;; Acc, A = 0x54, P = 0x25
|
466 |
|
|
f918 : 30fe [ 3] bmi * ;; Rel, A = 0x54, P = 0x25
|
467 |
|
|
f91a : 90fe [ 3] bcc * ;; Rel, A = 0x54, P = 0x25
|
468 |
|
|
f91c : c954 [ 2] cmp #$54 ;; Imm, A = 0x54, P = 0x27
|
469 |
|
|
f91e : d0fe [ 3] bne * ;; Rel, A = 0x54, P = 0x27
|
470 |
|
|
;;
|
471 |
|
|
f920 : 6a [ 2] ror a ;; Acc, A = 0xAA, P = 0xA4
|
472 |
|
|
f921 : 10fe [ 3] bpl * ;; Rel, A = 0xA9, P = 0xA4
|
473 |
|
|
f923 : b0fe [ 3] bcs * ;; Rel, A = 0xA9, P = 0xA4
|
474 |
|
|
f925 : c9aa [ 2] cmp #$AA ;; Imm, A = 0xAA, P = 0x27
|
475 |
|
|
f927 : d0fe [ 3] bne * ;; Rel, A = 0xAA, P = 0x27
|
476 |
|
|
;;
|
477 |
|
|
f929 : 1a [ 2] inc a ;; Acc, A = 0xAB, P = 0xA5
|
478 |
|
|
f92a : c9ab [ 2] cmp #$AB ;; Imm, A = 0xAB, P = 0x27
|
479 |
|
|
f92c : d0fe [ 3] bne * ;; Rel, A = 0xAB, P = 0x27
|
480 |
|
|
f92e : 30fe [ 3] bmi * ;; Rel, A = 0xAB, P = 0x27
|
481 |
|
|
f930 : 90fe [ 3] bcc * ;; Rel, A = 0xAB, P = 0x27
|
482 |
|
|
;;
|
483 |
|
|
f932 : e8 [ 2] inx ;; Imp, X = 0x00, P = 0x27
|
484 |
|
|
f933 : e000 [ 2] cpx #$00 ;; Imm, X = 0x00, P = 0x27
|
485 |
|
|
f935 : d0fe [ 3] bne * ;; Rel, X = 0x00, P = 0x27
|
486 |
|
|
f937 : 30fe [ 3] bmi * ;; Rel, X = 0x00, P = 0x27
|
487 |
|
|
f939 : 90fe [ 3] bcc * ;; Rel, X = 0x00, P = 0x27
|
488 |
|
|
;;
|
489 |
|
|
f93b : c8 [ 2] iny ;; Imp, Y = 0x56, P = 0x25
|
490 |
|
|
f93c : c056 [ 2] cpy #$56 ;; Imm, Y = 0x56, P = 0x27
|
491 |
|
|
f93e : d0fe [ 3] bne * ;; Rel, Y = 0x56, P = 0x27
|
492 |
|
|
f940 : 30fe [ 3] bmi * ;; Rel, Y = 0x56, P = 0x27
|
493 |
|
|
f942 : 90fe [ 3] bcc * ;; Rel, Y = 0x56, P = 0x27
|
494 |
|
|
;;
|
495 |
|
|
f944 : 3a [ 2] dec a ;; Acc, A = 0xAA, P = 0xA5
|
496 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 10
|
497 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
498 |
|
|
|
499 |
|
|
f945 : c9aa [ 2] cmp #$AA ;; Imm, A = 0xAA, P = 0x27
|
500 |
|
|
f947 : d0fe [ 3] bne * ;; Rel, A = 0xAA, P = 0x27
|
501 |
|
|
f949 : 30fe [ 3] bmi * ;; Rel, A = 0xAA, P = 0x27
|
502 |
|
|
f94b : 90fe [ 3] bcc * ;; Rel, A = 0xAA, P = 0x27
|
503 |
|
|
;;
|
504 |
|
|
f94d : ca [ 2] dex ;; Imp, X = 0xFF, P = 0xA5
|
505 |
|
|
f94e : e0ff [ 2] cpx #$FF ;; Imm, X = 0xFF, P = 0x27
|
506 |
|
|
f950 : d0fe [ 3] bne * ;; Rel, X = 0xFF, P = 0x27
|
507 |
|
|
f952 : 30fe [ 3] bmi * ;; Rel, X = 0xFF, P = 0x27
|
508 |
|
|
f954 : 90fe [ 3] bcc * ;; Rel, X = 0xFF, P = 0x27
|
509 |
|
|
;;
|
510 |
|
|
f956 : 88 [ 2] dey ;; Imp, Y = 0x55, P = 0x25
|
511 |
|
|
f957 : c055 [ 2] cpy #$55 ;; Imm, Y = 0x55, P = 0x27
|
512 |
|
|
f959 : d0fe [ 3] bne * ;; Rel, Y = 0x55, P = 0x27
|
513 |
|
|
f95b : 30fe [ 3] bmi * ;; Rel, Y = 0x55, P = 0x27
|
514 |
|
|
f95d : 90fe [ 3] bcc * ;; Rel, Y = 0x55, P = 0x27
|
515 |
|
|
;;
|
516 |
|
|
f95f : a900 [ 2] lda #$00 ;; Imm, A = 0x00, P = 0x27
|
517 |
|
|
f961 : aa [ 2] tax ;; Imp, X = 0x00, P = 0x27
|
518 |
|
|
f962 : a8 [ 2] tay ;; Imp, Y = 0x00, P = 0x27
|
519 |
|
|
;;
|
520 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
521 |
|
|
;;
|
522 |
|
|
;; Direct/Zero Page Instructions
|
523 |
|
|
;;
|
524 |
|
|
f963 : 3a [ 2] dec a ;; Acc, A = 0xFF, P = 0xA5
|
525 |
|
|
f964 : 8510 [ 3] sta DP ;; WO_DP, DP = 0xFF, P = 0xA5
|
526 |
|
|
f966 : 2a [ 2] rol a ;; Acc, A = 0xFF, P = 0xA5
|
527 |
|
|
f967 : 0510 [ 3] ora DP ;; RO_DP, A = 0xFF, P = 0xA5
|
528 |
|
|
f969 : c9ff [ 2] cmp #$FF ;; Imm, A = 0xFF, P = 0x27
|
529 |
|
|
f96b : d0fe [ 3] bne * ;; Rel, A = 0xFF, P = 0x27
|
530 |
|
|
;;
|
531 |
|
|
f96d : 6410 [ 3] stz DP ;; WO_DP, DP = 0x00, P = 0x27
|
532 |
|
|
f96f : 3a [ 2] dec a ;; Acc, A = 0xFE, P = 0xA5
|
533 |
|
|
f970 : a510 [ 3] lda DP ;; RO_DP, A = 0x00, P = 0x27
|
534 |
|
|
f972 : d0fe [ 3] bne * ;; Rel, A = 0x00, P = 0x27
|
535 |
|
|
f974 : c510 [ 3] cmp DP ;; RO_DP, A = 0x00, P = 0x27
|
536 |
|
|
f976 : d0fe [ 3] bne * ;; Rel, A = 0x00, P = 0x27
|
537 |
|
|
;;
|
538 |
|
|
f978 : 6410 [ 3] stz DP ;; WO_DP, DP = 0x00, p = 0x27
|
539 |
|
|
f97a : 88 [ 2] dey ;; Imp, Y = 0xFF, P = 0xA5
|
540 |
|
|
f97b : 8410 [ 3] sty DP ;; RO_DP, Y = 0xFF, P = 0xA5
|
541 |
|
|
f97d : c8 [ 2] iny ;; Imp, Y = 0x00, P = 0x27
|
542 |
|
|
f97e : a410 [ 3] ldy DP ;; RO_DP, Y = 0xFF, P = 0xA5
|
543 |
|
|
f980 : c0ff [ 2] cpy #$FF ;; Imm, Y = 0xFF, P = 0x27
|
544 |
|
|
f982 : d0fe [ 3] bne *
|
545 |
|
|
f984 : c410 [ 3] cpy DP ;; RO_DP, Y = 0xFF, P = 0x27
|
546 |
|
|
f986 : d0fe [ 3] bne *
|
547 |
|
|
;;
|
548 |
|
|
f988 : 6410 [ 3] stz DP ;; WO_DP, DP = 0x00, p = 0x27
|
549 |
|
|
f98a : ca [ 2] dex ;; Imp, X = 0xFF, P = 0xA5
|
550 |
|
|
f98b : 8610 [ 3] stx DP ;; RO_DP, DP = 0xFF, P = 0xA5
|
551 |
|
|
f98d : e8 [ 2] inx ;; Imp, X = 0x00, P = 0x27
|
552 |
|
|
f98e : a610 [ 3] ldx DP ;; RO_DP, X = 0xFF, P = 0xA5
|
553 |
|
|
f990 : e0ff [ 2] cpx #$FF ;; Imm, X = 0xFF, P = 0x27
|
554 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 11
|
555 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
556 |
|
|
|
557 |
|
|
f992 : d0fe [ 3] bne *
|
558 |
|
|
f994 : e410 [ 3] cpx DP ;; RO_DP, X = 0xFF, P = 0x27
|
559 |
|
|
f996 : d0fe [ 3] bne *
|
560 |
|
|
;;
|
561 |
|
|
f998 : 8a [ 2] txa ;; Imp, A = 0xFF, P = 0xA5
|
562 |
|
|
f999 : 4510 [ 3] eor DP ;; RO_DP, A = 0x00, P = 0x27
|
563 |
|
|
f99b : d0fe [ 3] bne *
|
564 |
|
|
;;
|
565 |
|
|
f99d : a955 [ 2] lda #$55 ;; Imm, A = 0x55, P = 0x25
|
566 |
|
|
f99f : 8510 [ 3] sta DP ;; WO_DO, DP = 0x55, P = 0x25
|
567 |
|
|
f9a1 : a9ff [ 2] lda #$FF ;; Imm, A = 0xFF, P = 0xA5
|
568 |
|
|
f9a3 : 2510 [ 3] and DP ;; RO_DP, A = 0x55, P = 0x25
|
569 |
|
|
f9a5 : c955 [ 2] cmp #$55 ;; Imm, A = 0x55, P = 0x27
|
570 |
|
|
f9a7 : d0fe [ 3] bne *
|
571 |
|
|
;;
|
572 |
|
|
f9a9 : 6510 [ 3] adc DP ;; RO_DP, A = 0xAB, P = 0xE4
|
573 |
|
|
f9ab : c9ab [ 2] cmp #$AB ;; Imm, A = 0xAB, P = 0x67
|
574 |
|
|
f9ad : d0fe [ 3] bne *
|
575 |
|
|
f9af : e510 [ 3] sbc DP ;; RO_DP, A = 0x55, P = 0x65
|
576 |
|
|
f9b1 : c956 [ 2] cmp #$56 ;; Imm, A = 0x56, P = 0x67
|
577 |
|
|
f9b3 : d0fe [ 3] bne *
|
578 |
|
|
f9b5 : a982 [ 2] lda #$82 ;; Imm, A = 0x82, P = 0xE5
|
579 |
|
|
f9b7 : 2410 [ 3] bit DP ;; RO_DP A = 0x82, P = 0x67
|
580 |
|
|
f9b9 : 30fe [ 3] bmi *
|
581 |
|
|
f9bb : 50fe [ 3] bvc *
|
582 |
|
|
;;
|
583 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
584 |
|
|
;;
|
585 |
|
|
;; Direct/Zero Page Indexed Instructions
|
586 |
|
|
;;
|
587 |
|
|
f9bd : a924 [ 2] lda #$24 ;; Imm, A = 0x24, P = 0x65
|
588 |
|
|
f9bf : 48 [ 3] pha ;; Imp, A = 0x24, P = 0x65
|
589 |
|
|
f9c0 : 28 [ 4] plp ;; Imp, A = 0x24, P = 0x24
|
590 |
|
|
;;
|
591 |
|
|
f9c1 : 6410 [ 3] stz DP ;; DP, DP = 0x00, P = 0x24
|
592 |
|
|
f9c3 : 6411 [ 3] stz DP+1 ;; DP, DPX = 0x00, P = 0x24
|
593 |
|
|
f9c5 : 6412 [ 3] stz DP+2 ;; DP, DPY = 0x00, P = 0x24
|
594 |
|
|
;;
|
595 |
|
|
f9c7 : a955 [ 2] lda #$55 ;; Imm, A = 0x55, P = 0x24
|
596 |
|
|
f9c9 : 8512 [ 3] sta DPY ;; DP, DPY = 0x55, P = 0x24
|
597 |
|
|
f9cb : 0a [ 2] asl a ;; Acc, A = 0xAA, P = 0xA4
|
598 |
|
|
f9cc : a611 [ 3] ldx DPX ;; DP, X = 0x00, P = 0x26
|
599 |
|
|
f9ce : a412 [ 3] ldy DPY ;; DP, Y = 0x55, P = 0x26
|
600 |
|
|
;;
|
601 |
|
|
f9d0 : e8 [ 2] inx ;; Imp, X = 0x01, P = 0x24
|
602 |
|
|
f9d1 : 9510 [ 4] sta DP,x ;; WO_DPX, DPX = 0xAA, P = 0x24
|
603 |
|
|
f9d3 : 4a [ 2] lsr a ;; Acc, A = 0x55, P = 0x24
|
604 |
|
|
f9d4 : e8 [ 2] inx ;; Imp, X = 0x02, P = 0x24
|
605 |
|
|
f9d5 : 9510 [ 4] sta DP,x ;; WO_DPX, DPY = 0x55, P = 0x24
|
606 |
|
|
f9d7 : ca [ 2] dex ;; Imp, X = 0x01, P = 0x24
|
607 |
|
|
f9d8 : 1510 [ 4] ora DP,x ;; RO_DPX, A = 0xFF, P = 0xA4
|
608 |
|
|
f9da : 3510 [ 4] and DP,x ;; RO_DPX, A = 0xAA, P = 0xA4
|
609 |
|
|
f9dc : 5510 [ 4] eor DP,x ;; RO_DPX, A = 0x00, P = 0x26
|
610 |
|
|
f9de : d0fe [ 3] bne * ;; Rel, A = 0x00, P = 0x26
|
611 |
|
|
f9e0 : 7410 [ 4] stz DP,x ;; WO_DPX, DPX = 0x00, P = 0x26
|
612 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 12
|
613 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
614 |
|
|
|
615 |
|
|
f9e2 : d510 [ 4] cmp DP,x ;; RO_DPX, A = 0x00, P = 0x27
|
616 |
|
|
f9e4 : d0fe [ 3] bne * ;; Rel, A = 0x00, P = 0x27
|
617 |
|
|
f9e6 : 90fe [ 3] bcc * ;; Rel, A = 0x00, P = 0x27
|
618 |
|
|
f9e8 : e8 [ 2] inx ;; Imp, X = 0x02, P = 0x25
|
619 |
|
|
f9e9 : b410 [ 4] ldy DP,x ;; RO_DPX, Y = 0x55, P = 0x25
|
620 |
|
|
f9eb : 98 [ 2] tya ;; Imp, A = 0x55, P = 0x25
|
621 |
|
|
f9ec : 0a [ 2] asl a ;; Acc, A = 0xAA, P = 0xA4
|
622 |
|
|
f9ed : 3410 [ 4] bit DP,x ;; RO_DPX, A = 0xAA, M = 0x55, P = 0x66
|
623 |
|
|
f9ef : 30fe [ 3] bmi * ;; Rel, A = 0xAA, P = 0x66
|
624 |
|
|
f9f1 : 50fe [ 3] bvc * ;; Rel, A = 0xAA, P = 0x66
|
625 |
|
|
f9f3 : d0fe [ 3] bne * ;; Rel, A = 0xAA, P = 0x66
|
626 |
|
|
f9f5 : b8 [ 2] clv ;; Imp, A = 0xAA, P = 0x26
|
627 |
|
|
f9f6 : 38 [ 2] sec ;; Imp, A = 0xAA, P = 0x27
|
628 |
|
|
f9f7 : 7510 [ 4] adc DP,x ;; RO_DPX, A = 0x00, P = 0x27
|
629 |
|
|
f9f9 : 18 [ 2] clc
|
630 |
|
|
f9fa : f510 [ 4] sbc DP,x ;; RO_DPX, A = 0xAA, P = 0xA4
|
631 |
|
|
f9fc : 10fe [ 3] bpl * ;; Rel, A = 0xAA, P = 0xA4
|
632 |
|
|
f9fe : 70fe [ 3] bvs * ;; Rel, A = 0xAA, P = 0xA4
|
633 |
|
|
fa00 : f0fe [ 3] beq * ;; Rel, A = 0xAA, P = 0xA4
|
634 |
|
|
fa02 : b0fe [ 3] bcs * ;; Rel, A = 0xAA, P = 0xA4
|
635 |
|
|
;;
|
636 |
|
|
fa04 : b50e [ 4] lda DP-2,x ;; RO_DPX, A = 0x00, P = 0x26
|
637 |
|
|
fa06 : a8 [ 2] tay ;; Imp, Y = 0x00, P = 0x26
|
638 |
|
|
fa07 : 9410 [ 4] sty DP,x ;; WO_DPX, DPY = 0x00, P = 0x26
|
639 |
|
|
;;
|
640 |
|
|
fa09 : b610 [ 4] ldx DP,y ;; RO_DPY, X = 0x00, P = 0x26
|
641 |
|
|
fa0b : c8 [ 2] iny ;; Imp, Y = 0x01, P = 0x24
|
642 |
|
|
fa0c : 9610 [ 4] stx DP,y ;; WO_DPY, DPX = 0x00, P = 0x24
|
643 |
|
|
;;
|
644 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
645 |
|
|
;;
|
646 |
|
|
;; Absolute Address Instructions
|
647 |
|
|
;;
|
648 |
|
|
fa0e : a924 [ 2] lda #$24 ;; Imm, A = 0x24, P = 0x67
|
649 |
|
|
fa10 : 48 [ 3] pha ;; Imp, A = 0x24, P = 0x67
|
650 |
|
|
fa11 : 28 [ 4] plp ;; Imp, A = 0x24, P = 0x24
|
651 |
|
|
;;
|
652 |
|
|
fa12 : 9c0002 [ 4] stz Abs ;; WO_Abs, Abs = 0x00, P = 0x24
|
653 |
|
|
fa15 : 9c0102 [ 4] stz Abs+1 ;; WO_Abs, AbsX = 0x00, P = 0x24
|
654 |
|
|
fa18 : 9c0202 [ 4] stz Abs+2 ;; WO_Abs, AbsY = 0x00, P = 0x24
|
655 |
|
|
;;
|
656 |
|
|
fa1b : a955 [ 2] lda #$55 ;; Imm, A = 0x55, P = 0x24
|
657 |
|
|
fa1d : 8d0202 [ 4] sta AbsY ;; WO_Abs, AbsY = 0x55, P = 0x24
|
658 |
|
|
fa20 : 0a [ 2] asl a ;; Acc, A = 0xAA, P = 0xA4
|
659 |
|
|
fa21 : ae0102 [ 4] ldx AbsX ;; RO_Abs, X = 0x00, P = 0x26
|
660 |
|
|
fa24 : ac0202 [ 4] ldy AbsY ;; RO_Abs, Y = 0x55, P = 0x26
|
661 |
|
|
;;
|
662 |
|
|
fa27 : 8d0102 [ 4] sta AbsX ;; WO_Abs, AbsX = 0xAA, P = 0x24
|
663 |
|
|
fa2a : 4a [ 2] lsr a ;; Acc, A = 0x55, P = 0x24
|
664 |
|
|
fa2b : 8d0202 [ 4] sta AbsY ;; WO_Abs, AbsY = 0x55, P = 0x24
|
665 |
|
|
;;
|
666 |
|
|
fa2e : 0d0102 [ 4] ora AbsX ;; RO_Abs, A = 0xFF, P = 0xA4
|
667 |
|
|
fa31 : 2d0102 [ 4] and AbsX ;; RO_Abs, A = 0xAA, P = 0xA4
|
668 |
|
|
fa34 : 4d0102 [ 4] eor AbsX ;; RO_Abs, A = 0x00, P = 0x26
|
669 |
|
|
fa37 : d0fe [ 3] bne * ;; Rel, A = 0x00, P = 0x26
|
670 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 13
|
671 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
672 |
|
|
|
673 |
|
|
fa39 : 9c0102 [ 4] stz AbsX ;; WO_Abs, AbsX = 0x00, P = 0x26
|
674 |
|
|
fa3c : cd0102 [ 4] cmp AbsX ;; RO_Abs, A = 0x00, P = 0x27
|
675 |
|
|
fa3f : d0fe [ 3] bne * ;; Rel, A = 0x00, P = 0x27
|
676 |
|
|
fa41 : 90fe [ 3] bcc * ;; Rel, A = 0x00, P = 0x27
|
677 |
|
|
fa43 : ac0202 [ 4] ldy AbsY ;; RO_Abs, Y = 0x55, P = 0x25
|
678 |
|
|
fa46 : 98 [ 2] tya ;; Imp, A = 0x55, P = 0x25
|
679 |
|
|
fa47 : 0a [ 2] asl a ;; Acc, A = 0xAA, P = 0xA4
|
680 |
|
|
fa48 : 2c0202 [ 4] bit AbsY ;; RO_Abs, A = 0xAA, M = 0x55, P = 0x66
|
681 |
|
|
fa4b : 30fe [ 3] bmi * ;; Rel, A = 0xAA, P = 0x66
|
682 |
|
|
fa4d : 50fe [ 3] bvc * ;; Rel, A = 0xAA, P = 0x66
|
683 |
|
|
fa4f : d0fe [ 3] bne * ;; Rel, A = 0xAA, P = 0x66
|
684 |
|
|
fa51 : b8 [ 2] clv ;; Imp, A = 0xAA, P = 0x26
|
685 |
|
|
fa52 : 38 [ 2] sec ;; Imp, A = 0xAA, P = 0x27
|
686 |
|
|
fa53 : 6d0202 [ 4] adc AbsY ;; RO_Abs, A = 0x00, P = 0x27
|
687 |
|
|
fa56 : 18 [ 2] clc
|
688 |
|
|
fa57 : ed0202 [ 4] sbc AbsY ;; RO_Abs, A = 0xAA, P = 0xA4
|
689 |
|
|
fa5a : 10fe [ 3] bpl * ;; Rel, A = 0xAA, P = 0xA4
|
690 |
|
|
fa5c : 70fe [ 3] bvs * ;; Rel, A = 0xAA, P = 0xA4
|
691 |
|
|
fa5e : f0fe [ 3] beq * ;; Rel, A = 0xAA, P = 0xA4
|
692 |
|
|
fa60 : b0fe [ 3] bcs * ;; Rel, A = 0xAA, P = 0xA4
|
693 |
|
|
;;
|
694 |
|
|
fa62 : ad0002 [ 4] lda Abs ;; RO_Abs, A = 0x00, P = 0x26
|
695 |
|
|
fa65 : a8 [ 2] tay ;; Imp, Y = 0x00, P = 0x26
|
696 |
|
|
fa66 : 8c0202 [ 4] sty AbsY ;; WO_Abs, AbsY = 0x00, P = 0x26
|
697 |
|
|
fa69 : cc0002 [ 4] cpy Abs ;; RO_Abs, Y = 0x00, Abs = 0x00, P = 0x26
|
698 |
|
|
fa6c : d0fe [ 3] bne * ;; Rel, A = 0xAA, P = 0x66
|
699 |
|
|
;;
|
700 |
|
|
fa6e : ae0002 [ 4] ldx Abs ;; RO_Abs, X = 0x00, P = 0x26
|
701 |
|
|
fa71 : 8e0102 [ 4] stx AbsX ;; WO_Abs, AbsX = 0x00, P = 0x26
|
702 |
|
|
fa74 : ec0002 [ 4] cpx Abs ;; RO_Abs, X = 0x00, Abs = 0x00, P = 0x26
|
703 |
|
|
fa77 : d0fe [ 3] bne * ;; Rel, A = 0xAA, P = 0x26
|
704 |
|
|
;;
|
705 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
706 |
|
|
;;
|
707 |
|
|
;; Absolute Indexed Address Instructions
|
708 |
|
|
;;
|
709 |
|
|
fa79 : a924 [ 2] lda #$24 ;; Imm, A = 0x24, P = 0x67
|
710 |
|
|
fa7b : 48 [ 3] pha ;; Imp, A = 0x24, P = 0x67
|
711 |
|
|
fa7c : 28 [ 4] plp ;; Imp, A = 0x24, P = 0x24
|
712 |
|
|
;;
|
713 |
|
|
fa7d : 9c0002 [ 4] stz Abs ;; Abs, Abs = 0x00, P = 0x24
|
714 |
|
|
fa80 : 9c0102 [ 4] stz Abs+1 ;; Abs, AbsX = 0x00, P = 0x24
|
715 |
|
|
fa83 : 9c0202 [ 4] stz Abs+2 ;; Abs, AbsY = 0x00, P = 0x24
|
716 |
|
|
;;
|
717 |
|
|
fa86 : a955 [ 2] lda #$55 ;; Imm, A = 0x55, P = 0x24
|
718 |
|
|
fa88 : 8d0202 [ 4] sta AbsY ;; Abs, AbsY = 0x55, P = 0x24
|
719 |
|
|
fa8b : 0a [ 2] asl a ;; Acc, A = 0xAA, P = 0xA4
|
720 |
|
|
fa8c : ae0102 [ 4] ldx AbsX ;; Abs, X = 0x00, P = 0x26
|
721 |
|
|
fa8f : ac0202 [ 4] ldy AbsY ;; Abs, Y = 0x55, P = 0x26
|
722 |
|
|
;;
|
723 |
|
|
fa92 : e8 [ 2] inx ;; Imp, X = 0x01, P = 0x24
|
724 |
|
|
fa93 : 9d0002 [ 5] sta Abs,x ;; WO_AbsX, AbsX = 0xAA, P = 0x24
|
725 |
|
|
fa96 : 4a [ 2] lsr a ;; Acc, A = 0x55, P = 0x24
|
726 |
|
|
fa97 : e8 [ 2] inx ;; Imp, X = 0x02, P = 0x24
|
727 |
|
|
fa98 : 9d0002 [ 5] sta Abs,x ;; WO_AbsX, AbsX = 0x55, P = 0x24
|
728 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 14
|
729 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
730 |
|
|
|
731 |
|
|
fa9b : ca [ 2] dex ;; Imp, X = 0x01, P = 0x24
|
732 |
|
|
fa9c : 1d0002 [ 4] ora Abs,x ;; RO_AbsX, A = 0xFF, P = 0xA4
|
733 |
|
|
fa9f : 3d0002 [ 4] and Abs,x ;; RO_AbsX, A = 0xAA, P = 0xA4
|
734 |
|
|
faa2 : 5d0002 [ 4] eor Abs,x ;; RO_AbsX, A = 0x00, P = 0x26
|
735 |
|
|
faa5 : d0fe [ 3] bne * ;; Rel, A = 0x00, P = 0x26
|
736 |
|
|
faa7 : 9e0002 [ 5] stz Abs,x ;; WO_AbsX, AbsX = 0x00, P = 0x26
|
737 |
|
|
faaa : dd0002 [ 4] cmp Abs,x ;; RO_AbsX, A = 0x00, P = 0x27
|
738 |
|
|
faad : d0fe [ 3] bne * ;; Rel, A = 0x00, P = 0x27
|
739 |
|
|
faaf : 90fe [ 3] bcc * ;; Rel, A = 0x00, P = 0x27
|
740 |
|
|
fab1 : e8 [ 2] inx ;; Imp, X = 0x02, P = 0x25
|
741 |
|
|
fab2 : bc0002 [ 4] ldy Abs,x ;; RO_AbsX, Y = 0x55, P = 0x25
|
742 |
|
|
fab5 : 98 [ 2] tya ;; Imp, A = 0x55, P = 0x25
|
743 |
|
|
fab6 : 0a [ 2] asl a ;; Acc, A = 0xAA, P = 0xA4
|
744 |
|
|
fab7 : 3c0002 [ 4] bit Abs,x ;; RO_AbsX, A = 0xAA, M = 0x55, P = 0x66
|
745 |
|
|
faba : 30fe [ 3] bmi * ;; Rel, A = 0xAA, P = 0x66
|
746 |
|
|
fabc : 50fe [ 3] bvc * ;; Rel, A = 0xAA, P = 0x66
|
747 |
|
|
fabe : d0fe [ 3] bne * ;; Rel, A = 0xAA, P = 0x66
|
748 |
|
|
fac0 : b8 [ 2] clv ;; Imp, A = 0xAA, P = 0x26
|
749 |
|
|
fac1 : 38 [ 2] sec ;; Imp, A = 0xAA, P = 0x27
|
750 |
|
|
fac2 : 7d0002 [ 4] adc Abs,x ;; RO_AbsX, A = 0x00, P = 0x27
|
751 |
|
|
fac5 : 18 [ 2] clc
|
752 |
|
|
fac6 : fd0002 [ 4] sbc Abs,x ;; RO_AbsX, A = 0xAA, P = 0xA4
|
753 |
|
|
fac9 : 10fe [ 3] bpl * ;; Rel, A = 0xAA, P = 0xA4
|
754 |
|
|
facb : 70fe [ 3] bvs * ;; Rel, A = 0xAA, P = 0xA4
|
755 |
|
|
facd : f0fe [ 3] beq * ;; Rel, A = 0xAA, P = 0xA4
|
756 |
|
|
facf : b0fe [ 3] bcs * ;; Rel, A = 0xAA, P = 0xA4
|
757 |
|
|
;;
|
758 |
|
|
fad1 : bdfe01 [ 4] lda Abs-2,x ;; RO_AbsX, A = 0x00, P = 0x26
|
759 |
|
|
fad4 : a8 [ 2] tay ;; Imp, Y = 0x00, P = 0x26
|
760 |
|
|
fad5 : 8c0202 [ 4] sty AbsY ;; WO_Abs, AbsY = 0x00, P = 0x26
|
761 |
|
|
;;
|
762 |
|
|
fad8 : be0002 [ 4] ldx Abs,y ;; RO_AbsY, X = 0x00, P = 0x26
|
763 |
|
|
fadb : 8e0102 [ 4] stx AbsX ;; WO_Abs, AbsX = 0x00, P = 0x24
|
764 |
|
|
;;
|
765 |
|
|
fade : a002 [ 2] ldy #$02 ;; Imm, Y = 0x02, P = 0x24
|
766 |
|
|
fae0 : a9aa [ 2] lda #$AA ;; Imm, A = 0xAA, P = 0xA4
|
767 |
|
|
;;
|
768 |
|
|
fae2 : 990002 [ 5] sta Abs,y ;; WO_AbsY, AbsY = 0xAA, P = 0xA4
|
769 |
|
|
fae5 : 590002 [ 4] eor Abs,y ;; RO_AbsY, A = 0x00, P = 0x26
|
770 |
|
|
fae8 : b90002 [ 4] lda Abs,y ;; RO_AbsY, A = 0xAA, P = 0xA4
|
771 |
|
|
faeb : 4a [ 2] lsr a ;; Acc, A = 0x55, P = 0x24
|
772 |
|
|
faec : 190002 [ 4] ora Abs,y ;; RO_AbsY, A = 0xFF, P = 0xA4
|
773 |
|
|
faef : 390002 [ 4] and Abs,y ;; RO_AbsY, A = 0xAA, P = 0xA4
|
774 |
|
|
faf2 : d90002 [ 4] cmp Abs,y ;; RO_AbsY, A = 0xAA, P = 0x27
|
775 |
|
|
;;
|
776 |
|
|
faf5 : f90002 [ 4] sbc Abs,y ;; RO_AbsY, A = 0x00, P = 0x27
|
777 |
|
|
faf8 : 18 [ 2] clc ;; Imp, A = 0x00, P = 0x26
|
778 |
|
|
faf9 : 790002 [ 4] adc Abs,y ;; RO_AbsY, A = 0xAA, P = 0xA4
|
779 |
|
|
;;
|
780 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
781 |
|
|
;;
|
782 |
|
|
;; Direct/Zero Page RMW Instructions
|
783 |
|
|
;;
|
784 |
|
|
fafc : a924 [ 2] lda #$24 ;; Imm, A = 0x24, P = 0xXX
|
785 |
|
|
fafe : 48 [ 3] pha ;; Imp, A = 0x24, P = 0xXX
|
786 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 15
|
787 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
788 |
|
|
|
789 |
|
|
faff : 28 [ 4] plp ;; Imp, A = 0x24, P = 0x24
|
790 |
|
|
;;
|
791 |
|
|
fb00 : a9aa [ 2] lda #$AA ;; Imm, A = 0xAA, P = 0xA4
|
792 |
|
|
fb02 : 8510 [ 3] sta DP ;; WO_DP, DP = 0xAA, P = 0xA4
|
793 |
|
|
;;
|
794 |
|
|
fb04 : 0610 [ 5] asl DP ;; RMW_DP, DP = 0x54, P = 0x25
|
795 |
|
|
fb06 : 2610 [ 5] rol DP ;; RMW_DP, DP = 0xA9, P = 0xA4
|
796 |
|
|
fb08 : 4610 [ 5] lsr DP ;; RMW_DP, DP = 0x54, P = 0x25
|
797 |
|
|
fb0a : 6610 [ 5] ror DP ;; RMW_DP, DP = 0xAA, P = 0xA4
|
798 |
|
|
;;
|
799 |
|
|
fb0c : c610 [ 5] dec DP ;; RMW_DP, DP = 0xA9, P = 0xA4
|
800 |
|
|
fb0e : e610 [ 5] inc DP ;; RMW_DP, DP = 0xAA, P = 0xA4
|
801 |
|
|
;;
|
802 |
|
|
fb10 : 4a [ 2] lsr a ;; Acc, A = 0x55, P = 0x24
|
803 |
|
|
;;
|
804 |
|
|
fb11 : 0410 [ 2] tsb DP ;; RMW_DP, DP = 0xFF, P = 0x26
|
805 |
|
|
fb13 : 1410 [ 2] trb DP ;; RMW_DP, DP = 0xAA, P = 0x24
|
806 |
|
|
;;
|
807 |
|
|
fb15 : a201 [ 2] ldx #$01 ;; Imm, X = 0x01, P = 0x24
|
808 |
|
|
fb17 : 0a [ 2] asl a ;; Acc, A = 0xAA, P = 0x24
|
809 |
|
|
fb18 : 9510 [ 4] sta DP,x ;; WO_DPX, DPX = 0xAA, P = 0x24
|
810 |
|
|
;;
|
811 |
|
|
fb1a : 1610 [ 6] asl DP,x ;; RMW_DPX, DPX = 0x54, P = 0x25
|
812 |
|
|
fb1c : 3610 [ 6] rol DP,x ;; RMW_DPX, DPX = 0xA9, P = 0xA4
|
813 |
|
|
fb1e : 5610 [ 6] lsr DP,x ;; RMW_DPX, DPX = 0x54, P = 0x25
|
814 |
|
|
fb20 : 7610 [ 6] ror DP,x ;; RMW_DPX, DPX = 0xAA, P = 0xA4
|
815 |
|
|
;;
|
816 |
|
|
fb22 : d610 [ 6] dec DP,x ;; RMW_DPX, DPX = 0xA9, P = 0xA4
|
817 |
|
|
fb24 : f610 [ 6] inc DP,x ;; RMW_DPX, DPX = 0xAA, P = 0xA4
|
818 |
|
|
;;
|
819 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
820 |
|
|
;;
|
821 |
|
|
;; Absolute Address RMW Instructions
|
822 |
|
|
;;
|
823 |
|
|
fb26 : a924 [ 2] lda #$24 ;; Imm, A = 0x24, P = 0xXX
|
824 |
|
|
fb28 : 48 [ 3] pha ;; Imp, A = 0x24, P = 0xXX
|
825 |
|
|
fb29 : 28 [ 4] plp ;; Imp, A = 0x24, P = 0x24
|
826 |
|
|
;;
|
827 |
|
|
fb2a : a9aa [ 2] lda #$AA ;; Imm, A = 0xAA, P = 0xA4
|
828 |
|
|
fb2c : 8d0002 [ 4] sta Abs ;; WO_Abs, Abs = 0xAA, P = 0xA4
|
829 |
|
|
;;
|
830 |
|
|
fb2f : 0e0002 [ 6] asl Abs ;; RMW_Abs, Abs = 0x54, P = 0x25
|
831 |
|
|
fb32 : 2e0002 [ 6] rol Abs ;; RMW_Abs, Abs = 0xA9, P = 0xA4
|
832 |
|
|
fb35 : 4e0002 [ 6] lsr Abs ;; RMW_Abs, Abs = 0x54, P = 0x25
|
833 |
|
|
fb38 : 6e0002 [ 6] ror Abs ;; RMW_Abs, Abs = 0xAA, P = 0xA4
|
834 |
|
|
;;
|
835 |
|
|
fb3b : ce0002 [ 6] dec Abs ;; RMW_Abs, Abs = 0xA9, P = 0xA5
|
836 |
|
|
fb3e : ee0002 [ 6] inc Abs ;; RMW_Abs, Abs = 0xAA, P = 0xA4
|
837 |
|
|
;;
|
838 |
|
|
fb41 : 4a [ 2] lsr a ;; Acc, A = 0x55, P = 0x24
|
839 |
|
|
;;
|
840 |
|
|
fb42 : 0c0002 [ 3] tsb Abs ;; RMW_Abs, Abs = 0xFF, P = 0x26
|
841 |
|
|
fb45 : 1c0002 [ 3] trb Abs ;; RMW_Abs, Abs = 0xAA, P = 0x24
|
842 |
|
|
;;
|
843 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
844 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 16
|
845 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
846 |
|
|
|
847 |
|
|
;;
|
848 |
|
|
;; Absolute Address Indexed RMW Instructions
|
849 |
|
|
;;
|
850 |
|
|
fb48 : a201 [ 2] ldx #$01 ;; Imm, X = 0x01, P = 0x24
|
851 |
|
|
fb4a : 0a [ 2] asl a ;; Acc, A = 0xAA, P = 0xA4
|
852 |
|
|
fb4b : 9d0002 [ 5] sta Abs,x ;; WO_AbsX, AbsX = 0xAA, P = 0xA4
|
853 |
|
|
;;
|
854 |
|
|
fb4e : 1e0002 [ 6] asl Abs,x ;; RMW_AbsX, AbsX = 0x54, P = 0x25
|
855 |
|
|
fb51 : 3e0002 [ 6] rol Abs,x ;; RMW_AbsX, AbsX = 0xA9, P = 0xA4
|
856 |
|
|
fb54 : 5e0002 [ 6] lsr Abs,x ;; RMW_AbsX, AbsX = 0x54, P = 0x25
|
857 |
|
|
fb57 : 7e0002 [ 6] ror Abs,x ;; RMW_AbsX, AbsX = 0xAA, P = 0xA4
|
858 |
|
|
;;
|
859 |
|
|
fb5a : de0002 [ 6] dec Abs,x ;; RMW_AbsX, AbsX = 0xA9, P = 0xA4
|
860 |
|
|
fb5d : fe0002 [ 6] inc Abs,x ;; RMW_AbsX, AbsX = 0xAA, P = 0xA4
|
861 |
|
|
;;
|
862 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
863 |
|
|
;;
|
864 |
|
|
;; Direct/Zero Page Indirect Instructions
|
865 |
|
|
;;
|
866 |
|
|
fb60 : 2015f8 [ 6] jsr Init_RAM ;; Initialize RAM used for pointers
|
867 |
|
|
;;
|
868 |
|
|
fb63 : a924 [ 2] lda #$24 ;; Imm, A = 0x24, P = 0xXX
|
869 |
|
|
fb65 : 48 [ 3] pha ;; Imp, A = 0x24, P = 0xXX
|
870 |
|
|
fb66 : 28 [ 4] plp ;; Imp, A = 0x24, P = 0x24
|
871 |
|
|
;;
|
872 |
|
|
fb67 : a9aa [ 2] lda #$AA ;; Imm, A = 0xAA, P = 0xA4
|
873 |
|
|
fb69 : 8510 [ 3] sta DP ;; WO_DP, DP = 0xAA, P = 0xA4
|
874 |
|
|
fb6b : a900 [ 2] lda #$00 ;; Imm, A = 0x00, P = 0x26
|
875 |
|
|
;;
|
876 |
|
|
fb6d : 1208 [ 5] ora (pDPI) ;; RO_DPI A = 0xAA, P = 0xA4
|
877 |
|
|
fb6f : 4a [ 2] lsr a ;; Acc, A = 0x55, P = 0x24
|
878 |
|
|
fb70 : 5208 [ 5] eor (pDPI) ;; RO_DPI, A = 0xFF, P = 0xA4
|
879 |
|
|
fb72 : 38 [ 2] sec ;; Imp, A = 0xFF, P = 0xA5
|
880 |
|
|
fb73 : 7208 [ 5] adc (pDPI) ;; RO_DPI, A = 0xAA, P = 0xA5
|
881 |
|
|
fb75 : 18 [ 2] clc ;; Imp, A = 0xAA, P = 0xA4
|
882 |
|
|
fb76 : f208 [ 5] sbc (pDPI) ;; RO_DPI, A = 0xFF, P = 0xA4
|
883 |
|
|
fb78 : 3208 [ 5] and (pDPI) ;; RO_DPI, A = 0xAA, P = 0xA4
|
884 |
|
|
fb7a : d208 [ 5] cmp (pDPI) ;; RO_DPI, A = 0xAA, P = 0x27
|
885 |
|
|
;;
|
886 |
|
|
fb7c : b208 [ 5] lda (pDPI) ;; RO_DPI, A = 0xAA, P = 0xA5
|
887 |
|
|
fb7e : 4a [ 2] lsr a ;; Acc, A = 0x55, P = 0x24
|
888 |
|
|
fb7f : 9208 [ 5] sta (pDPI) ;; WO_DPI DP = 0x55, P = 0x24
|
889 |
|
|
fb81 : c510 [ 3] cmp DP ;; RO_DP A = 0x55, P = 0x27
|
890 |
|
|
;;
|
891 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
892 |
|
|
;;
|
893 |
|
|
;; Direct/Zero Page Pre-Indexed Indirect Instructions
|
894 |
|
|
;;
|
895 |
|
|
fb83 : a202 [ 2] ldx #$02 ;; Imm, X = 0x02, P = 0x25
|
896 |
|
|
fb85 : 0108 [ 6] ora (pDPI,x) ;; RO_DPXI, A = 0xFF, P = 0xA5
|
897 |
|
|
fb87 : 2108 [ 6] and (pDPI,x) ;; RO_DPXI, A = 0xAA, P = 0xA5
|
898 |
|
|
fb89 : 4108 [ 6] eor (pDPI,x) ;; RO_DPXI, A = 0x00, P = 0x27
|
899 |
|
|
fb8b : 18 [ 2] clc ;; Imp, A = 0x00, P = 0x26
|
900 |
|
|
fb8c : 6108 [ 6] adc (pDPI,x) ;; RO_DPXI, A = 0xAA, P = 0xA4
|
901 |
|
|
fb8e : c108 [ 6] cmp (pDPI,x) ;; RO_DPXI, A = 0xAA, P = 0x27
|
902 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 17
|
903 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
904 |
|
|
|
905 |
|
|
fb90 : e108 [ 6] sbc (pDPI,x) ;; RO_DPXI, A = 0x00, P = 0x27
|
906 |
|
|
fb92 : a108 [ 6] lda (pDPI,x) ;; RO_DPXI, A = 0xAA, P = 0xA5
|
907 |
|
|
fb94 : a204 [ 2] ldx #$04 ;; Imm, X = 0x04, P = 0x25
|
908 |
|
|
fb96 : 8108 [ 6] sta (pDPI,x) ;; WO_DPXI, DPY = 0xAA, P = 0x25
|
909 |
|
|
;;
|
910 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
911 |
|
|
;;
|
912 |
|
|
;; Direct/Zero Page Post-Indexed Indirect Instructions
|
913 |
|
|
;;
|
914 |
|
|
fb98 : a000 [ 2] ldy #$00 ;; Imm, Y = 0x00, P = 0x27
|
915 |
|
|
;;
|
916 |
|
|
fb9a : 1108 [ 5] ora (pDPI),y ;; RO_DPIY, A = 0xFF, P = 0xA5
|
917 |
|
|
fb9c : c8 [ 2] iny ;; Imp, Y = 0x01, P = 0x25
|
918 |
|
|
fb9d : 3108 [ 5] and (pDPI),y ;; RO_DPIY, A = 0xAA, P = 0xA5
|
919 |
|
|
fb9f : 88 [ 2] dey ;; Imp, Y = 0x00, P = 0x27
|
920 |
|
|
fba0 : 5108 [ 5] eor (pDPI),y ;; RO_DPIY, A = 0xFF, P = 0xA5
|
921 |
|
|
fba2 : 7108 [ 5] adc (pDPI),y ;; RO_DPIY, A = 0x55, P = 0x25
|
922 |
|
|
fba4 : d108 [ 5] cmp (pDPI),y ;; RO_DPIY, A = 0x55, P = 0x27
|
923 |
|
|
fba6 : f108 [ 5] sbc (pDPI),y ;; RO_DPIY, A = 0x00, P = 0x27
|
924 |
|
|
fba8 : c8 [ 2] iny ;; Imp, Y = 0x01, P = 0x25
|
925 |
|
|
fba9 : 9108 [ 5] sta (pDPI),y ;; WO_DPIY, DPX = 0x00, P = 0x25
|
926 |
|
|
fbab : 88 [ 2] dey ;; Imp, Y = 0x00, P = 0x26
|
927 |
|
|
fbac : b108 [ 5] lda (pDPI),y ;; RO_DPIY, A = 0x55, P = 0x24
|
928 |
|
|
;;
|
929 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
930 |
|
|
;;
|
931 |
|
|
;; All Unused Op-codes - Expected to execute in single cycle as NOPs.
|
932 |
|
|
;;
|
933 |
|
|
|
934 |
|
|
fbae : 0222426282c2e2 db $02, $22, $42, $62, $82, $C2, $E2
|
935 |
|
|
fbb5 : 0313233343536373 db $03, $13, $23, $33, $43, $53, $63, $73
|
936 |
|
|
fbbd : 8393a3b3c3d3e3f3 db $83, $93, $A3, $B3, $C3, $D3, $E3, $F3
|
937 |
|
|
fbc5 : 4454d4f4 db $44, $54, $D4, $F4
|
938 |
|
|
;; db $07, $17, $27, $37, $47, $57, $67, $77 ;; RMBx dp
|
939 |
|
|
;; db $87, $97, $A7, $B7, $C7, $D7, $E7, $F7 ;; SMBx dp
|
940 |
|
|
fbc9 : 0b1b2b3b4b5b6b7b db $0B, $1B, $2B, $3B, $4B, $5B, $6B, $7B
|
941 |
|
|
fbd1 : 8b9babbbebfb db $8B, $9B, $AB, $BB, $EB, $FB
|
942 |
|
|
fbd7 : 5cdcfc db $5C, $DC, $FC
|
943 |
|
|
;; db $0F, $1F, $2F, $3F, $4F, $5F, $6F, $7F ;; BBRx dp,rel
|
944 |
|
|
;; db $8F, $9F, $AF, $BF, $CF, $DF, $EF, $FF ;; BBSx dp,rel
|
945 |
|
|
;;
|
946 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
947 |
|
|
;;
|
948 |
|
|
;; BRK Instruction
|
949 |
|
|
;;
|
950 |
|
|
fbda : f8 [ 2] sed ;; Set Decimal Mode Flag
|
951 |
|
|
fbdb : 58 [ 2] cli ;; Clear Interrupt Mask
|
952 |
|
|
;;
|
953 |
|
|
fbdc : 00 [ 7] brk ;; Single Cycle, Nxt
|
954 |
|
|
fbdd : ff db $FF ;; Simple tag so ISR does not need to return PC
|
955 |
|
|
;;
|
956 |
|
|
fbde : 78 [ 2] sei
|
957 |
|
|
;;
|
958 |
|
|
fbdf : 18 [ 2] BCD_Tst: clc
|
959 |
|
|
fbe0 : a999 [ 2] lda #$99
|
960 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 18
|
961 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
962 |
|
|
|
963 |
|
|
fbe2 : 6901 [ 2] adc #$01
|
964 |
|
|
fbe4 : 90fe [ 3] bcc *
|
965 |
|
|
fbe6 : d0fe [ 3] bne *
|
966 |
|
|
fbe8 : e901 [ 2] sbc #$01
|
967 |
|
|
fbea : f0fe [ 3] beq *
|
968 |
|
|
fbec : b0fe [ 3] bcs *
|
969 |
|
|
fbee : c999 [ 2] cmp #$99
|
970 |
|
|
fbf0 : d0fe [ 3] bne *
|
971 |
|
|
fbf2 : 18 [ 2] clc
|
972 |
|
|
;;
|
973 |
|
|
fbf3 : 9cf8ff [ 4] stz IRQ_On
|
974 |
|
|
;;
|
975 |
|
|
fbf6 : f8 [ 2] IRQ_Tst: sed
|
976 |
|
|
fbf7 : 58 [ 2] cli
|
977 |
|
|
fbf8 : ea [ 2] nop
|
978 |
|
|
fbf9 : 38 [ 2] sec
|
979 |
|
|
fbfa : a900 [ 2] lda #$00
|
980 |
|
|
fbfc : d007 [ 4] bne IRQ_Tst3
|
981 |
|
|
fbfe : e901 [ 2] IRQ_Tst2: sbc #$01
|
982 |
|
|
fc00 : 2037f8 [ 6] jsr Return
|
983 |
|
|
fc03 : 8003 [ 3] bra IRQ_Tst4
|
984 |
|
|
fc05 : 4cfefb [ 3] IRQ_Tst3: jmp IRQ_Tst2
|
985 |
|
|
fc08 : 78 [ 2] IRQ_Tst4: sei
|
986 |
|
|
fc09 : d8 [ 2] cld
|
987 |
|
|
;;
|
988 |
|
|
fc0a : 9cf9ff [ 4] stz IRQ_Off
|
989 |
|
|
;;
|
990 |
|
|
;; Test zp,x and zp,y page zero wrapping
|
991 |
|
|
;;
|
992 |
|
|
fc0d : a900 [ 2] lda #$00 ;; clear Accumulator
|
993 |
|
|
fc0f : a201 [ 2] ldx #$01 ;; Set X to test first page 0 index operation
|
994 |
|
|
fc11 : a002 [ 2] ldy #$02 ;; Set Y to test second index operation
|
995 |
|
|
;; tax ;; clear X
|
996 |
|
|
;; tay ;; clear Y
|
997 |
|
|
;; inx ;; increment X to test first index operation
|
998 |
|
|
;; iny ;; increment Y twice to force it to point to
|
999 |
|
|
;; iny ;; wrapped negative of the wrapped pointer.
|
1000 |
|
|
;;
|
1001 |
|
|
fc13 : 18 [ 2] clc ;; clear carry before summation
|
1002 |
|
|
fc14 : b5fe [ 4] lda $FE,x ;; load low byte of the
|
1003 |
|
|
fc16 : 79ffff [ 4] adc $FFFF,y ;; add low bytes of Return and -Return
|
1004 |
|
|
;;
|
1005 |
|
|
fc19 : d0fe [ 3] bne * ;; halt here if sum is not zero
|
1006 |
|
|
;;
|
1007 |
|
|
fc1b : e8 [ 2] inx ;; point to wrapped high bytes
|
1008 |
|
|
fc1c : c8 [ 2] iny
|
1009 |
|
|
fc1d : b5fe [ 4] lda $FE,x ;; load high byte of Return
|
1010 |
|
|
fc1f : 79ffff [ 4] adc $FFFF,y ;; add high bytes of Return and -Return
|
1011 |
|
|
;;
|
1012 |
|
|
fc22 : d0fe [ 3] bne * ;; halt here if the sum is not zero
|
1013 |
|
|
;;
|
1014 |
|
|
fc24 : 88 [ 2] dey ;; point back to lsb
|
1015 |
|
|
fc25 : b6ff [ 4] ldx $ff,y ;; load lsb of -Return value
|
1016 |
|
|
fc27 : e0c9 [ 2] cpx #(lo -Return) ;; compare
|
1017 |
|
|
;;
|
1018 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 19
|
1019 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
1020 |
|
|
|
1021 |
|
|
fc29 : d0fe [ 3] bne * ;; halt here if the values are not equal
|
1022 |
|
|
;;
|
1023 |
|
|
fc2b : 8a [ 2] txa ;; complement value and store back
|
1024 |
|
|
fc2c : 49ff [ 2] eor #$ff ;; pointer will point to location Return-1
|
1025 |
|
|
fc2e : aa [ 2] tax ;; because of 1's complement math
|
1026 |
|
|
fc2f : 96ff [ 4] stx $ff,y
|
1027 |
|
|
;;
|
1028 |
|
|
fc31 : c8 [ 2] iny ;; point to msb
|
1029 |
|
|
fc32 : b6ff [ 4] ldx $ff,y ;; load msb of -Return value
|
1030 |
|
|
fc34 : e007 [ 2] cpx #(hi -Return) ;; compare
|
1031 |
|
|
;;
|
1032 |
|
|
fc36 : d0fe [ 3] bne * ;; halt here if the values are not equal
|
1033 |
|
|
;;
|
1034 |
|
|
fc38 : 8a [ 2] txa ;; complement value and store back
|
1035 |
|
|
fc39 : 49ff [ 2] eor #$ff ;; pointer will point to location Return-1
|
1036 |
|
|
fc3b : aa [ 2] tax ;; because of 1's complement math
|
1037 |
|
|
fc3c : 96ff [ 4] stx $ff,y
|
1038 |
|
|
;;
|
1039 |
|
|
;; Test (dp), (dp,x), and (dp,y) address mode page 0 wrapping
|
1040 |
|
|
;;
|
1041 |
|
|
fc3e : b2ff [ 5] lda ($ff) ;; load value stored in Return
|
1042 |
|
|
fc40 : a001 [ 2] ldy #$01 ;; ptr stored at $0001 points to Return-1
|
1043 |
|
|
fc42 : d101 [ 5] cmp ($01),y ;; compare
|
1044 |
|
|
;;
|
1045 |
|
|
fc44 : d0fe [ 3] bne * ;; halt here if the *($ff) <> *(*($01)+1)
|
1046 |
|
|
;;
|
1047 |
|
|
fc46 : a202 [ 2] ldx #$02 ;; increment pointer at $0001
|
1048 |
|
|
fc48 : 18 [ 2] clc
|
1049 |
|
|
fc49 : b5ff [ 4] lda $FF,x ;; load lsb from $0001
|
1050 |
|
|
fc4b : 6901 [ 2] adc #$01 ;; increment
|
1051 |
|
|
fc4d : 95ff [ 4] sta $FF,x ;; store lsb
|
1052 |
|
|
fc4f : e8 [ 2] inx ;; point to msb
|
1053 |
|
|
fc50 : b5ff [ 4] lda $FF,x ;; load lsb from $0002
|
1054 |
|
|
fc52 : 6900 [ 2] adc #$00 ;; increment msb if carry out of lsb
|
1055 |
|
|
fc54 : 95ff [ 4] sta $FF,x
|
1056 |
|
|
;;
|
1057 |
|
|
fc56 : ca [ 2] dex ;; point back to lsb
|
1058 |
|
|
fc57 : a1ff [ 6] lda ($ff,x) ;; load opcode at Return
|
1059 |
|
|
fc59 : c6ff [ 5] dec $ff ;; change pointer to point to Return-1
|
1060 |
|
|
fc5b : d1ff [ 5] cmp ($ff),y ;; both pointers (after indexing) -> Return
|
1061 |
|
|
;;
|
1062 |
|
|
fc5d : d0fe [ 3] bne *
|
1063 |
|
|
;;
|
1064 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
1065 |
|
|
;;
|
1066 |
|
|
;; Test Rockwell Instructions
|
1067 |
|
|
;;
|
1068 |
|
|
fc5f : 6480 [ 3] stz $80 ;; ZP location for Rockwell Instruction Test
|
1069 |
|
|
;;
|
1070 |
|
|
SMBx 0,$80
|
1071 |
|
|
fc61 : 87 > db ((0+8)*16)+7
|
1072 |
|
|
fc62 : 80 > db $80
|
1073 |
|
|
|
1074 |
|
|
BBRx 0,$80,$
|
1075 |
|
|
fc63 : 0f >LBL0002 db ((0+0)*16)+15
|
1076 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 20
|
1077 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
1078 |
|
|
|
1079 |
|
|
fc64 : 80 > db $80
|
1080 |
|
|
> if($ < LBL0002+3)
|
1081 |
|
|
fc65 : fd > db -($-LBL0002+1)
|
1082 |
|
|
> else
|
1083 |
|
|
> db ($-LBL0002-3)
|
1084 |
|
|
> endif
|
1085 |
|
|
|
1086 |
|
|
RMBx 0,$80
|
1087 |
|
|
fc66 : 07 > db ((0+0)*16)+7
|
1088 |
|
|
fc67 : 80 > db $80
|
1089 |
|
|
|
1090 |
|
|
BBSx 0,$80,$
|
1091 |
|
|
fc68 : 8f >LBL0004 db ((0+8)*16)+15
|
1092 |
|
|
fc69 : 80 > db $80
|
1093 |
|
|
> if($ < LBL0004+3)
|
1094 |
|
|
fc6a : fd > db -($-LBL0004+1)
|
1095 |
|
|
> else
|
1096 |
|
|
> db ($-LBL0004-3)
|
1097 |
|
|
> endif
|
1098 |
|
|
|
1099 |
|
|
;;
|
1100 |
|
|
SMBx 1,$80
|
1101 |
|
|
fc6b : 97 > db ((1+8)*16)+7
|
1102 |
|
|
fc6c : 80 > db $80
|
1103 |
|
|
|
1104 |
|
|
BBRx 1,$80,$
|
1105 |
|
|
fc6d : 1f >LBL0006 db ((1+0)*16)+15
|
1106 |
|
|
fc6e : 80 > db $80
|
1107 |
|
|
> if($ < LBL0006+3)
|
1108 |
|
|
fc6f : fd > db -($-LBL0006+1)
|
1109 |
|
|
> else
|
1110 |
|
|
> db ($-LBL0006-3)
|
1111 |
|
|
> endif
|
1112 |
|
|
|
1113 |
|
|
RMBx 1,$80
|
1114 |
|
|
fc70 : 17 > db ((1+0)*16)+7
|
1115 |
|
|
fc71 : 80 > db $80
|
1116 |
|
|
|
1117 |
|
|
BBSx 1,$80,$
|
1118 |
|
|
fc72 : 9f >LBL0008 db ((1+8)*16)+15
|
1119 |
|
|
fc73 : 80 > db $80
|
1120 |
|
|
> if($ < LBL0008+3)
|
1121 |
|
|
fc74 : fd > db -($-LBL0008+1)
|
1122 |
|
|
> else
|
1123 |
|
|
> db ($-LBL0008-3)
|
1124 |
|
|
> endif
|
1125 |
|
|
|
1126 |
|
|
;;
|
1127 |
|
|
SMBx 2,$80
|
1128 |
|
|
fc75 : a7 > db ((2+8)*16)+7
|
1129 |
|
|
fc76 : 80 > db $80
|
1130 |
|
|
|
1131 |
|
|
BBRx 2,$80,$
|
1132 |
|
|
fc77 : 2f >LBL0010 db ((2+0)*16)+15
|
1133 |
|
|
fc78 : 80 > db $80
|
1134 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 21
|
1135 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
1136 |
|
|
|
1137 |
|
|
> if($ < LBL0010+3)
|
1138 |
|
|
fc79 : fd > db -($-LBL0010+1)
|
1139 |
|
|
> else
|
1140 |
|
|
> db ($-LBL0010-3)
|
1141 |
|
|
> endif
|
1142 |
|
|
|
1143 |
|
|
RMBx 2,$80
|
1144 |
|
|
fc7a : 27 > db ((2+0)*16)+7
|
1145 |
|
|
fc7b : 80 > db $80
|
1146 |
|
|
|
1147 |
|
|
BBSx 2,$80,$
|
1148 |
|
|
fc7c : af >LBL0012 db ((2+8)*16)+15
|
1149 |
|
|
fc7d : 80 > db $80
|
1150 |
|
|
> if($ < LBL0012+3)
|
1151 |
|
|
fc7e : fd > db -($-LBL0012+1)
|
1152 |
|
|
> else
|
1153 |
|
|
> db ($-LBL0012-3)
|
1154 |
|
|
> endif
|
1155 |
|
|
|
1156 |
|
|
;;
|
1157 |
|
|
SMBx 3,$80
|
1158 |
|
|
fc7f : b7 > db ((3+8)*16)+7
|
1159 |
|
|
fc80 : 80 > db $80
|
1160 |
|
|
|
1161 |
|
|
BBRx 3,$80,$
|
1162 |
|
|
fc81 : 3f >LBL0014 db ((3+0)*16)+15
|
1163 |
|
|
fc82 : 80 > db $80
|
1164 |
|
|
> if($ < LBL0014+3)
|
1165 |
|
|
fc83 : fd > db -($-LBL0014+1)
|
1166 |
|
|
> else
|
1167 |
|
|
> db ($-LBL0014-3)
|
1168 |
|
|
> endif
|
1169 |
|
|
|
1170 |
|
|
RMBx 3,$80
|
1171 |
|
|
fc84 : 37 > db ((3+0)*16)+7
|
1172 |
|
|
fc85 : 80 > db $80
|
1173 |
|
|
|
1174 |
|
|
BBSx 3,$80,$
|
1175 |
|
|
fc86 : bf >LBL0016 db ((3+8)*16)+15
|
1176 |
|
|
fc87 : 80 > db $80
|
1177 |
|
|
> if($ < LBL0016+3)
|
1178 |
|
|
fc88 : fd > db -($-LBL0016+1)
|
1179 |
|
|
> else
|
1180 |
|
|
> db ($-LBL0016-3)
|
1181 |
|
|
> endif
|
1182 |
|
|
|
1183 |
|
|
;;
|
1184 |
|
|
SMBx 4,$80
|
1185 |
|
|
fc89 : c7 > db ((4+8)*16)+7
|
1186 |
|
|
fc8a : 80 > db $80
|
1187 |
|
|
|
1188 |
|
|
BBRx 4,$80,$
|
1189 |
|
|
fc8b : 4f >LBL0018 db ((4+0)*16)+15
|
1190 |
|
|
fc8c : 80 > db $80
|
1191 |
|
|
> if($ < LBL0018+3)
|
1192 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 22
|
1193 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
1194 |
|
|
|
1195 |
|
|
fc8d : fd > db -($-LBL0018+1)
|
1196 |
|
|
> else
|
1197 |
|
|
> db ($-LBL0018-3)
|
1198 |
|
|
> endif
|
1199 |
|
|
|
1200 |
|
|
RMBx 4,$80
|
1201 |
|
|
fc8e : 47 > db ((4+0)*16)+7
|
1202 |
|
|
fc8f : 80 > db $80
|
1203 |
|
|
|
1204 |
|
|
BBSx 4,$80,$
|
1205 |
|
|
fc90 : cf >LBL0020 db ((4+8)*16)+15
|
1206 |
|
|
fc91 : 80 > db $80
|
1207 |
|
|
> if($ < LBL0020+3)
|
1208 |
|
|
fc92 : fd > db -($-LBL0020+1)
|
1209 |
|
|
> else
|
1210 |
|
|
> db ($-LBL0020-3)
|
1211 |
|
|
> endif
|
1212 |
|
|
|
1213 |
|
|
;;
|
1214 |
|
|
SMBx 5,$80
|
1215 |
|
|
fc93 : d7 > db ((5+8)*16)+7
|
1216 |
|
|
fc94 : 80 > db $80
|
1217 |
|
|
|
1218 |
|
|
BBRx 5,$80,$
|
1219 |
|
|
fc95 : 5f >LBL0022 db ((5+0)*16)+15
|
1220 |
|
|
fc96 : 80 > db $80
|
1221 |
|
|
> if($ < LBL0022+3)
|
1222 |
|
|
fc97 : fd > db -($-LBL0022+1)
|
1223 |
|
|
> else
|
1224 |
|
|
> db ($-LBL0022-3)
|
1225 |
|
|
> endif
|
1226 |
|
|
|
1227 |
|
|
RMBx 5,$80
|
1228 |
|
|
fc98 : 57 > db ((5+0)*16)+7
|
1229 |
|
|
fc99 : 80 > db $80
|
1230 |
|
|
|
1231 |
|
|
BBSx 5,$80,$
|
1232 |
|
|
fc9a : df >LBL0024 db ((5+8)*16)+15
|
1233 |
|
|
fc9b : 80 > db $80
|
1234 |
|
|
> if($ < LBL0024+3)
|
1235 |
|
|
fc9c : fd > db -($-LBL0024+1)
|
1236 |
|
|
> else
|
1237 |
|
|
> db ($-LBL0024-3)
|
1238 |
|
|
> endif
|
1239 |
|
|
|
1240 |
|
|
;;
|
1241 |
|
|
SMBx 6,$80
|
1242 |
|
|
fc9d : e7 > db ((6+8)*16)+7
|
1243 |
|
|
fc9e : 80 > db $80
|
1244 |
|
|
|
1245 |
|
|
BBRx 6,$80,$
|
1246 |
|
|
fc9f : 6f >LBL0026 db ((6+0)*16)+15
|
1247 |
|
|
fca0 : 80 > db $80
|
1248 |
|
|
> if($ < LBL0026+3)
|
1249 |
|
|
fca1 : fd > db -($-LBL0026+1)
|
1250 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 23
|
1251 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
1252 |
|
|
|
1253 |
|
|
> else
|
1254 |
|
|
> db ($-LBL0026-3)
|
1255 |
|
|
> endif
|
1256 |
|
|
|
1257 |
|
|
RMBx 6,$80
|
1258 |
|
|
fca2 : 67 > db ((6+0)*16)+7
|
1259 |
|
|
fca3 : 80 > db $80
|
1260 |
|
|
|
1261 |
|
|
BBSx 6,$80,$
|
1262 |
|
|
fca4 : ef >LBL0028 db ((6+8)*16)+15
|
1263 |
|
|
fca5 : 80 > db $80
|
1264 |
|
|
> if($ < LBL0028+3)
|
1265 |
|
|
fca6 : fd > db -($-LBL0028+1)
|
1266 |
|
|
> else
|
1267 |
|
|
> db ($-LBL0028-3)
|
1268 |
|
|
> endif
|
1269 |
|
|
|
1270 |
|
|
;;
|
1271 |
|
|
SMBx 7,$80
|
1272 |
|
|
fca7 : f7 > db ((7+8)*16)+7
|
1273 |
|
|
fca8 : 80 > db $80
|
1274 |
|
|
|
1275 |
|
|
BBRx 7,$80,$
|
1276 |
|
|
fca9 : 7f >LBL0030 db ((7+0)*16)+15
|
1277 |
|
|
fcaa : 80 > db $80
|
1278 |
|
|
> if($ < LBL0030+3)
|
1279 |
|
|
fcab : fd > db -($-LBL0030+1)
|
1280 |
|
|
> else
|
1281 |
|
|
> db ($-LBL0030-3)
|
1282 |
|
|
> endif
|
1283 |
|
|
|
1284 |
|
|
RMBx 7,$80
|
1285 |
|
|
fcac : 77 > db ((7+0)*16)+7
|
1286 |
|
|
fcad : 80 > db $80
|
1287 |
|
|
|
1288 |
|
|
BBSx 7,$80,$
|
1289 |
|
|
fcae : ff >LBL0032 db ((7+8)*16)+15
|
1290 |
|
|
fcaf : 80 > db $80
|
1291 |
|
|
> if($ < LBL0032+3)
|
1292 |
|
|
fcb0 : fd > db -($-LBL0032+1)
|
1293 |
|
|
> else
|
1294 |
|
|
> db ($-LBL0032-3)
|
1295 |
|
|
> endif
|
1296 |
|
|
|
1297 |
|
|
;;
|
1298 |
|
|
fcb1 : a9ff [ 2] lda #$ff
|
1299 |
|
|
fcb3 : 8580 [ 3] sta $80
|
1300 |
|
|
;;
|
1301 |
|
|
BBSx 7,$80,MSB_Set
|
1302 |
|
|
fcb5 : ff >LBL0033 db ((7+8)*16)+15
|
1303 |
|
|
fcb6 : 80 > db $80
|
1304 |
|
|
> if(MSB_Set < LBL0033+3)
|
1305 |
|
|
> db -(MSB_Set-LBL0033+1)
|
1306 |
|
|
> else
|
1307 |
|
|
fcb7 : 05 > db (MSB_Set-LBL0033-3)
|
1308 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 24
|
1309 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
1310 |
|
|
|
1311 |
|
|
> endif
|
1312 |
|
|
|
1313 |
|
|
fcb8 : Clr_MSB:
|
1314 |
|
|
RMBx 7,$80
|
1315 |
|
|
fcb8 : 77 > db ((7+0)*16)+7
|
1316 |
|
|
fcb9 : 80 > db $80
|
1317 |
|
|
|
1318 |
|
|
BBRx 7,$80,MSB_Clr
|
1319 |
|
|
fcba : 7f >LBL0035 db ((7+0)*16)+15
|
1320 |
|
|
fcbb : 80 > db $80
|
1321 |
|
|
> if(MSB_Clr < LBL0035+3)
|
1322 |
|
|
> db -(MSB_Clr-LBL0035+1)
|
1323 |
|
|
> else
|
1324 |
|
|
fcbc : 02 > db (MSB_Clr-LBL0035-3)
|
1325 |
|
|
> endif
|
1326 |
|
|
|
1327 |
|
|
fcbd : 80f9 [ 3] MSB_Set bra Clr_MSB
|
1328 |
|
|
fcbf : MSB_Clr:
|
1329 |
|
|
WAI
|
1330 |
|
|
fcbf : cb > db $CB
|
1331 |
|
|
|
1332 |
|
|
fcc0 : eaeaeaea [ 8] nop 4
|
1333 |
|
|
fcc4 : 9cf8ff [ 4] stz IRQ_On
|
1334 |
|
|
fcc7 : eaeaeaea [ 8] nop 4
|
1335 |
|
|
fccb : 58 [ 2] cli
|
1336 |
|
|
WAI
|
1337 |
|
|
fccc : cb > db $CB
|
1338 |
|
|
|
1339 |
|
|
fccd : 78 [ 2] sei
|
1340 |
|
|
fcce : 9cf9ff [ 4] stz IRQ_Off
|
1341 |
|
|
;;
|
1342 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
1343 |
|
|
;;
|
1344 |
|
|
;; Prepare Registers for looping to start of the test program
|
1345 |
|
|
;;
|
1346 |
|
|
fcd1 : a900 [ 2] lda #$00 ;; Imm, A = 0x00, P = 0x26
|
1347 |
|
|
fcd3 : aa [ 2] tax ;; Imp, X = 0x00, P = 0x26
|
1348 |
|
|
fcd4 : a8 [ 2] tay ;; Imp, Y = 0x00, P = 0x26
|
1349 |
|
|
;;
|
1350 |
|
|
fcd5 : 4c00f8 [ 3] jmp Start ;; Imp, A = X = Y = 0x00, P = 0x26
|
1351 |
|
|
;;
|
1352 |
|
|
fcd8 : Last_Addrs:
|
1353 |
|
|
;;
|
1354 |
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
1355 |
|
|
;;
|
1356 |
|
|
;; Vector Table
|
1357 |
|
|
;;
|
1358 |
|
|
fffa = Vect_Table org $FFFA
|
1359 |
|
|
;;
|
1360 |
|
|
fffa : 00f8 dw Start ;; NMI Interrupt Vector
|
1361 |
|
|
fffc : 00f8 dw Start ;; Reset Vector
|
1362 |
|
|
fffe : 08f8 dw Interrupt ;; IRQ/BRK Interrupt Vector
|
1363 |
|
|
;;
|
1364 |
|
|
end Start
|
1365 |
|
|
No errors in pass 2.
|
1366 |
|
|
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 25
|
1367 |
|
|
------------------------------------------- M65C02_Core Test Program - all instructions -------------------------------------------
|
1368 |
|
|
|
1369 |
|
|
Wrote binary from address $f800 through $ffff.
|
1370 |
|
|
Total size 2048 bytes.
|
1371 |
|
|
|