]> Shamusworld >> Repos - rmac/blob - tests/6502tester.s
Version bump for last commit. :-)
[rmac] / tests / 6502tester.s
1 ; Compile me using "rmac -l6502tester.lst 6502tester.s" and open
2 ; 6502tester.lst to see and compare the output opcodes
3
4     .6502
5
6 label:
7
8 ;ADC (ADd with Carry)
9
10 ;   SYNTAX     HEX LEN   MODE        
11  ADC #$44      ;$69  2   Immediate    
12  ADC $44       ;$65  2   Zero Page    
13  ADC $44,X     ;$75  2   Zero Page,X  
14  ADC $4400     ;$6D  3   Absolute     
15  ADC $4400,X   ;$7D  3   Absolute,X   
16  ADC $4400,Y   ;$79  3   Absolute,Y   
17  ADC ($44,X)   ;$61  2   Indirect,X   
18  ADC ($44),Y   ;$71  2   Indirect,Y   
19
20 ;AND (bitwise AND with accumulator) 
21
22 ;  SYNTAX       HEX LEN  MODE
23  AND #$44      ;$29  2   Immediate
24  AND $44       ;$25  2   Zero Page
25  AND $44,X     ;$35  2   Zero Page,X
26  AND $4400     ;$2D  3   Absolute
27  AND $4400,X   ;$3D  3   Absolute,X
28  AND $4400,Y   ;$39  3   Absolute,Y
29  AND ($44,X)   ;$21  2   Indirect,X
30  AND ($44),Y   ;$31  2   Indirect,Y
31
32 ;ASL (Arithmetic Shift Left) 
33
34 ;  SYNTAX       HEX LEN          MODE        
35  ASL           ;$0A  1    Accumulator (Implied)
36  ASL $44       ;$06  2    Zero Page    
37  ASL $44,X     ;$16  2    Zero Page,X  
38  ASL $4400     ;$0E  3    Absolute     
39  ASL $4400,X   ;$1E  3    Absolute,X   
40
41 ;BIT (test BITs) 
42
43 ;   SYNTAX       HEX LEN        MODE        
44  BIT $44       ;$24  2      Zero Page    
45  BIT $4400     ;$2C  3      Absolute     
46
47 ;Branch Instructions
48
49 ;MNEMONIC   HEX
50 BPL label               ;$10  (Branch on PLus)          
51 BMI label               ;$30  (Branch on MInus)         
52 BVC label               ;$50  (Branch on oVerflow Clear)
53 BVS label               ;$70  (Branch on oVerflow Set)  
54 BCC label               ;$90  (Branch on Carry Clear)   
55 BCS label               ;$B0  (Branch on Carry Set)     
56 BNE label               ;$D0  (Branch on Not Equal)     
57 BEQ label               ;$F0  (Branch on EQual)         
58
59 ;BRK (BReaK) 
60 ;  SYNTAX       HEX LEN         ;MODE         
61  BRK           ;$00  1   ;Implied      
62
63 ;CMP (CoMPare accumulator) 
64
65 ;  SYNTAX       HEX LEN MODE         
66  CMP #$44      ;$C9  2   Immediate    
67  CMP $44       ;$C5  2   Zero Page    
68  CMP $44,X     ;$D5  2   Zero Page,X  
69  CMP $4400     ;$CD  3   Absolute     
70  CMP $4400,X   ;$DD  3   Absolute,X   
71  CMP $4400,Y   ;$D9  3   Absolute,Y   
72  CMP ($44,X)   ;$C1  2   Indirect,X   
73  CMP ($44),Y   ;$D1  2   Indirect,Y   
74
75 ;CPX (ComPare X register) 
76
77 ;  SYNTAX       HEX LEN MODE         
78  CPX #$44      ;$E0  2  Immediate    
79  CPX $44       ;$E4  2  Zero Page    
80  CPX $4400     ;$EC  3  Absolute     
81
82 ;CPY (ComPare Y register) 
83
84 ;  SYNTAX       HEX LEN MODE         
85  CPY #$44      ;$C0  2  Immediate    
86  CPY $44       ;$C4  2  Zero Page    
87  CPY $4400     ;$CC  3  Absolute     
88
89 ;DEC (DECrement memory) 
90
91 ;  SYNTAX       HEX LEN MODE         
92  DEC $44       ;$C6  2  Zero Page    
93  DEC $44,X     ;$D6  2  Zero Page,X  
94  DEC $4400     ;$CE  3  Absolute     
95  DEC $4400,X   ;$DE  3  Absolute,X   
96
97 ;EOR (bitwise Exclusive OR) 
98
99 ;  SYNTAX       HEX LEN MODE         
100  EOR #$44      ;$49  2  Immediate    
101  EOR $44       ;$45  2  Zero Page    
102  EOR $44,X     ;$55  2  Zero Page,X  
103  EOR $4400     ;$4D  3  Absolute     
104  EOR $4400,X   ;$5D  3  Absolute,X   
105  EOR $4400,Y   ;$59  3  Absolute,Y   
106  EOR ($44,X)   ;$41  2  Indirect,X   
107  EOR ($44),Y   ;$51  2  Indirect,Y   
108
109 ;Flag (Processor Status) Instructions
110
111 ;MNEMONIC                       HEX
112 CLC ;(CLear Carry)              $18
113 SEC ;(SEt Carry)                $38
114 CLI ;(CLear Interrupt)          $58
115 SEI ;(SEt Interrupt)            $78
116 CLV ;(CLear oVerflow)           $B8
117 CLD ;(CLear Decimal)            $D8
118 SED ;(SEt Decimal)              $F8
119
120 ;INC (INCrement memory) 
121
122 ;  SYNTAX       HEX LEN MODE         
123  INC $44       ;$E6  2  ;Zero Page    
124  INC $44,X     ;$F6  2  ;Zero Page,X  
125  INC $4400     ;$EE  3  ;Absolute     
126  INC $4400,X   ;$FE  3  ;Absolute,X   
127  
128 ;JMP (JuMP) 
129
130 ;  SYNTAX       HEX LEN MODE         
131  JMP $5597     ;$4C  3  Absolute     
132  JMP ($5597)   ;$6C  3  Indirect     
133
134 ;JSR (Jump to SubRoutine) 
135
136 ;  SYNTAX       HEX LEN MODE         
137  JSR $5597     ;$20  3  Absolute     
138
139 ;LDA (LoaD Accumulator) 
140
141 ;  SYNTAX       HEX LEN MODE         
142  LDA #$44      ;$A9  2  Immediate    
143  LDA $44       ;$A5  2  Zero Page    
144  LDA $44,X     ;$B5  2  Zero Page,X  
145  LDA $4400     ;$AD  3  Absolute     
146  LDA $4400,X   ;$BD  3  Absolute,X   
147  LDA $4400,Y   ;$B9  3  Absolute,Y   
148  LDA ($44,X)   ;$A1  2  Indirect,X   
149  LDA ($44),Y   ;$B1  2  Indirect,Y   
150
151 ;LDX (LoaD X register) 
152
153 ;  SYNTAX       HEX LEN MODE         
154  LDX #$44      ;$A2  2  Immediate    
155  LDX $44       ;$A6  2  Zero Page    
156  LDX $44,Y     ;$B6  2  Zero Page,Y  
157  LDX $4400     ;$AE  3  Absolute     
158  LDX $4400,Y   ;$BE  3  Absolute,Y   
159
160 ;LDY (LoaD Y register) 
161
162 ;  SYNTAX       HEX LEN MODE         
163  LDY #$44      ;$A0  2  Immediate    
164  LDY $44       ;$A4  2  Zero Page    
165  LDY $44,X     ;$B4  2  Zero Page,X  
166  LDY $4400     ;$AC  3  Absolute     
167  LDY $4400,X   ;$BC  3  Absolute,X   
168
169 ;LSR (Logical Shift Right) 
170
171 ;  SYNTAX       HEX LEN MODE         
172  LSR           ;$4A  1  Accumulator (Implied)
173  LSR $44       ;$46  2  Zero Page    
174  LSR $44,X     ;$56  2  Zero Page,X  
175  LSR $4400     ;$4E  3  Absolute     
176  LSR $4400,X   ;$5E  3  Absolute,X   
177
178 ;NOP (No OPeration) 
179
180 ;  SYNTAX       HEX LEN MODE         
181  NOP           ;$EA  1  Implied      
182
183 ;ORA (bitwise OR with Accumulator) 
184
185 ;  SYNTAX       HEX LEN MODE         
186  ORA #$44      ;$09  2  Immediate    
187  ORA $44       ;$05  2  Zero Page    
188  ORA $44,X     ;$15  2  Zero Page,X  
189  ORA $4400     ;$0D  3  Absolute     
190  ORA $4400,X   ;$1D  3  Absolute,X   
191  ORA $4400,Y   ;$19  3  Absolute,Y   
192  ORA ($44,X)   ;$01  2  Indirect,X   
193  ORA ($44),Y   ;$11  2  Indirect,Y   
194
195 ;Register Instructions 
196
197 ;MNEMONIC                 HEX
198 TAX ;(Transfer A to X)    $AA
199 TXA ;(Transfer X to A)    $8A
200 DEX ;(DEcrement X)        $CA
201 INX ;(INcrement X)        $E8
202 TAY ;(Transfer A to Y)    $A8
203 TYA ;(Transfer Y to A)    $98
204 DEY ;(DEcrement Y)        $88
205 INY ;(INcrement Y)        $C8
206   
207 ;ROL (ROtate Left) 
208
209 ;  SYNTAX       HEX LEN MODE         
210  ROL           ;$2A  1  Accumulator (Implied)
211  ROL $44       ;$26  2  Zero Page    
212  ROL $44,X     ;$36  2  Zero Page,X  
213  ROL $4400     ;$2E  3  Absolute     
214  ROL $4400,X   ;$3E  3  Absolute,X   
215
216 ;ROR (ROtate Right) 
217
218 ;  SYNTAX       HEX LEN MODE         
219  ROR           ;$6A  1  Accumulator (Implied)
220  ROR $44       ;$66  2  Zero Page    
221  ROR $44,X     ;$76  2  Zero Page,X  
222  ROR $4400     ;$6E  3  Absolute     
223  ROR $4400,X   ;$7E  3  Absolute,X   
224
225 ;RTI (ReTurn from Interrupt) 
226
227 ;  SYNTAX       HEX LEN MODE         
228  RTI           ;$40  1  Implied      
229
230 ;RTS (ReTurn from Subroutine) 
231
232 ;  SYNTAX       HEX LEN MODE         
233  RTS           ;$60  1  Implied      
234
235 ;SBC (SuBtract with Carry)
236
237 ;  SYNTAX       HEX LEN MODE         
238  SBC #$44      ;$E9  2  Immediate    
239  SBC $44       ;$E5  2  Zero Page    
240  SBC $44,X     ;$F5  2  Zero Page,X  
241  SBC $4400     ;$ED  3  Absolute     
242  SBC $4400,X   ;$FD  3  Absolute,X   
243  SBC $4400,Y   ;$F9  3  Absolute,Y   
244  SBC ($44,X)   ;$E1  2  Indirect,X   
245  SBC ($44),Y   ;$F1  2  Indirect,Y   
246
247 ;STA (STore Accumulator) 
248
249 ;  SYNTAX       HEX LEN MODE         
250  STA $44       ;$85  2  Zero Page    
251  STA $44,X     ;$95  2  Zero Page,X  
252  STA $4400     ;$8D  3  Absolute     
253  STA $4400,X   ;$9D  3  Absolute,X   
254  STA $4400,Y   ;$99  3  Absolute,Y   
255  STA ($44,X)   ;$81  2  Indirect,X   
256  STA ($44),Y   ;$91  2  Indirect,Y   
257
258 ;Stack Instructions
259 ;MNEMONIC                        HEX 
260 TXS ;(Transfer X to Stack ptr)   $9A 
261 TSX ;(Transfer Stack ptr to X)   $BA 
262 PHA ;(PusH Accumulator)          $48 
263 PLA ;(PuLl Accumulator)          $68 
264 PHP ;(PusH Processor status)     $08 
265 PLP ;(PuLl Processor status)     $28 
266
267 ;STX (STore X register)
268
269 ;  SYNTAX       HEX LEN MODE         
270  STX $44       ;$86  2  ;Zero Page    
271  STX $44,Y     ;$96  2  ;Zero Page,Y  
272  STX $4400     ;$8E  3  ;Absolute     
273   
274 ;STY (STore Y register)
275
276 ;  SYNTAX       HEX LEN MODE         
277  STY $44       ;$84  2  ;Zero Page    
278  STY $44,X     ;$94  2  ;Zero Page,X  
279  STY $4400     ;$8C  3  ;Absolute