mirror of
https://github.com/michaelcmartin/Ophis.git
synced 2024-12-30 10:30:47 +00:00
158 lines
2.0 KiB
Plaintext
158 lines
2.0 KiB
Plaintext
|
; Test file for base 6502 opcode compliance
|
||
|
; This odd little source file uses every addressing mode
|
||
|
; of every opcode, and uses the opcode itself as the argument
|
||
|
; to each instruction that takes one. The resulting binary's
|
||
|
; bytes are thus in strictly increasing numerical order.
|
||
|
|
||
|
BRK
|
||
|
ORA ($01, X)
|
||
|
ORA $05
|
||
|
ASL $06
|
||
|
PHP
|
||
|
ORA #$09
|
||
|
ASL
|
||
|
ORA $0D0D
|
||
|
ASL $0E0E
|
||
|
BPL ^+$12
|
||
|
ORA ($11), Y
|
||
|
ORA $15, X
|
||
|
ASL $16, X
|
||
|
CLC
|
||
|
ORA $1919, Y
|
||
|
ORA $1D1D, X
|
||
|
ASL $1E1E, X
|
||
|
JSR $2020
|
||
|
AND ($21, X)
|
||
|
BIT $24
|
||
|
AND $25
|
||
|
ROL $26
|
||
|
PLP
|
||
|
AND #$29
|
||
|
ROL
|
||
|
BIT $2C2C
|
||
|
AND $2D2D
|
||
|
ROL $2E2E
|
||
|
BMI ^+$32
|
||
|
AND ($31), Y
|
||
|
AND $35, X
|
||
|
ROL $36, X
|
||
|
SEC
|
||
|
AND $3939, Y
|
||
|
AND $3D3D, X
|
||
|
ROL $3E3E, X
|
||
|
RTI
|
||
|
EOR ($41, X)
|
||
|
EOR $45
|
||
|
LSR $46
|
||
|
PHA
|
||
|
EOR #$49
|
||
|
LSR
|
||
|
JMP $4C4C
|
||
|
EOR $4D4D
|
||
|
LSR $4E4E
|
||
|
BVC ^+$52
|
||
|
EOR ($51), Y
|
||
|
EOR $55, X
|
||
|
LSR $56, X
|
||
|
CLI
|
||
|
EOR $5959, Y
|
||
|
EOR $5D5D, X
|
||
|
LSR $5E5E, X
|
||
|
RTS
|
||
|
ADC ($61, X)
|
||
|
ADC $65
|
||
|
ROR $66
|
||
|
PLA
|
||
|
ADC #$69
|
||
|
ROR
|
||
|
JMP ($6C6C)
|
||
|
ADC $6D6D
|
||
|
ROR $6E6E
|
||
|
BVS ^+$72
|
||
|
ADC ($71), Y
|
||
|
ADC $75, X
|
||
|
ROR $76, X
|
||
|
SEI
|
||
|
ADC $7979, Y
|
||
|
ADC $7D7D, X
|
||
|
ROR $7E7E, X
|
||
|
STA ($81, X)
|
||
|
STY $84
|
||
|
STA $85
|
||
|
STX $86
|
||
|
DEY
|
||
|
TXA
|
||
|
STY $8C8C
|
||
|
STA $8D8D
|
||
|
STX $8E8E
|
||
|
BCC ^-$6E
|
||
|
STA ($91), Y
|
||
|
STY $94, X
|
||
|
STA $95, X
|
||
|
STX $96, Y
|
||
|
TYA
|
||
|
STA $9999, Y
|
||
|
TXS
|
||
|
STA $9D9D, X
|
||
|
LDY #$A0
|
||
|
LDA ($A1, X)
|
||
|
LDX #$A2
|
||
|
LDY $A4
|
||
|
LDA $A5
|
||
|
LDX $A6
|
||
|
TAY
|
||
|
LDA #$A9
|
||
|
TAX
|
||
|
LDY $ACAC
|
||
|
LDA $ADAD
|
||
|
LDX $AEAE
|
||
|
BCS ^-$4e
|
||
|
LDA ($B1), Y
|
||
|
LDY $B4, X
|
||
|
LDA $B5, X
|
||
|
LDX $B6, Y
|
||
|
CLV
|
||
|
LDA $B9B9,Y
|
||
|
TSX
|
||
|
LDY $BCBC, X
|
||
|
LDA $BDBD, X
|
||
|
LDX $BEBE, Y
|
||
|
CPY #$C0
|
||
|
CMP ($C1, X)
|
||
|
CPY $C4
|
||
|
CMP $C5
|
||
|
DEC $C6
|
||
|
INY
|
||
|
CMP #$C9
|
||
|
DEX
|
||
|
CPY $CCCC
|
||
|
CMP $CDCD
|
||
|
DEC $CECE
|
||
|
BNE ^-$2E
|
||
|
CMP ($D1), Y
|
||
|
CMP $D5, X
|
||
|
DEC $D6, X
|
||
|
CLD
|
||
|
CMP $D9D9, Y
|
||
|
CMP $DDDD, X
|
||
|
DEC $DEDE, X
|
||
|
CPX #$E0
|
||
|
SBC ($E1, X)
|
||
|
CPX $E4
|
||
|
SBC $E5
|
||
|
INC $E6
|
||
|
INX
|
||
|
SBC #$E9
|
||
|
NOP
|
||
|
CPX $ECEC
|
||
|
SBC $EDED
|
||
|
INC $EEEE
|
||
|
BEQ ^-$0E
|
||
|
SBC ($F1), Y
|
||
|
SBC $F5, X
|
||
|
INC $F6, X
|
||
|
SED
|
||
|
SBC $F9F9, Y
|
||
|
SBC $FDFD, X
|
||
|
INC $FEFE, X
|