Ophis/tests/testbase.oph
Michael C. Martin 14a37ca879 Massive code modernization spree.
Full PEP8 compliance. Also, booleans have been inserted where
they make sense (introduced in 2.3!) and I haven't knowingly
added anything that will break 2.3 compatibility.

At this point the code really doesn't look like it was written
ten years ago. Hooray!
2012-06-02 00:04:15 -07:00

158 lines
1.8 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