mirror of
https://github.com/fadden/6502bench.git
synced 2024-08-21 02:29:33 +00:00
The 65816 definition makes it a two-byte instruction, like COP. On the 6502 it acted like a two-byte instruction, but in practice very few assemblers treat it that way. Very few humans, for that matter. So it's now treated as a single byte instruction, with the following byte encoded as a data value.
277 lines
5.6 KiB
ArmAsm
277 lines
5.6 KiB
ArmAsm
.setcpu "65C02"
|
|
; .segment "SEG000"
|
|
.org $1000
|
|
jsr L1014
|
|
jsr L108A
|
|
jsr L10C4
|
|
jsr L10D8
|
|
jsr L10F6
|
|
nop
|
|
nop
|
|
nop
|
|
brk
|
|
|
|
.byte $ff
|
|
|
|
L1014: ora ($ff,x)
|
|
.byte $02,$ff
|
|
.byte $03
|
|
tsb $ff
|
|
ora $ff
|
|
asl $ff
|
|
.byte $07
|
|
php
|
|
ora #$ff
|
|
asl A
|
|
.byte $0b
|
|
tsb $feff
|
|
ora $feff
|
|
asl $feff
|
|
.byte $0f
|
|
bpl L1031
|
|
L1031: ora ($ff),y
|
|
ora ($ff)
|
|
.byte $13
|
|
trb $ff
|
|
ora $ff,x
|
|
asl $ff,x
|
|
.byte $17
|
|
clc
|
|
ora $feff,y
|
|
inc A
|
|
.byte $1b
|
|
trb $feff
|
|
ora $feff,x
|
|
asl $feff,x
|
|
.byte $1f
|
|
jsr $feff
|
|
and ($ff,x)
|
|
.byte $22,$ff
|
|
.byte $23
|
|
bit $ff
|
|
and $ff
|
|
rol $ff
|
|
.byte $27
|
|
plp
|
|
and #$ff
|
|
rol A
|
|
.byte $2b
|
|
bit $feff
|
|
and $feff
|
|
rol $feff
|
|
.byte $2f
|
|
bmi L106D
|
|
L106D: and ($ff),y
|
|
and ($ff)
|
|
.byte $33
|
|
bit $ff,x
|
|
and $ff,x
|
|
rol $ff,x
|
|
.byte $37
|
|
sec
|
|
and $feff,y
|
|
dec A
|
|
.byte $3b
|
|
bit $feff,x
|
|
and $feff,x
|
|
rol $feff,x
|
|
.byte $3f
|
|
rti
|
|
|
|
L108A: eor ($ff,x)
|
|
.byte $42,$ff
|
|
.byte $43
|
|
.byte $44,$ff
|
|
eor $ff
|
|
lsr $ff
|
|
.byte $47
|
|
pha
|
|
eor #$ff
|
|
lsr A
|
|
.byte $4b
|
|
jmp L109E
|
|
|
|
L109E: eor $feff
|
|
lsr $feff
|
|
.byte $4f
|
|
bvc L10A7
|
|
L10A7: eor ($ff),y
|
|
eor ($ff)
|
|
.byte $53
|
|
.byte $54,$ff
|
|
eor $ff,x
|
|
lsr $ff,x
|
|
.byte $57
|
|
cli
|
|
eor $feff,y
|
|
phy
|
|
.byte $5b
|
|
.byte $5c,$ff,$fe
|
|
eor $feff,x
|
|
lsr $feff,x
|
|
.byte $5f
|
|
rts
|
|
|
|
L10C4: adc ($ff,x)
|
|
.byte $62,$ff
|
|
.byte $63
|
|
stz $ff
|
|
adc $ff
|
|
ror $ff
|
|
.byte $67
|
|
pla
|
|
adc #$ff
|
|
ror A
|
|
.byte $6b
|
|
jmp ($feff)
|
|
|
|
L10D8: adc $feff
|
|
ror $feff
|
|
.byte $6f
|
|
bvs L10E1
|
|
L10E1: adc ($ff),y
|
|
adc ($ff)
|
|
.byte $73
|
|
stz $ff,x
|
|
adc $ff,x
|
|
ror $ff,x
|
|
.byte $77
|
|
sei
|
|
adc $feff,y
|
|
ply
|
|
.byte $7b
|
|
jmp ($feff,x)
|
|
|
|
L10F6: adc $feff,x
|
|
ror $feff,x
|
|
.byte $7f
|
|
bra L10FF
|
|
|
|
L10FF: sta ($ff,x)
|
|
.byte $82,$ff
|
|
.byte $83
|
|
sty $ff
|
|
sta $ff
|
|
stx $ff
|
|
.byte $87
|
|
dey
|
|
bit #$ff
|
|
txa
|
|
.byte $8b
|
|
sty $feff
|
|
sta $feff
|
|
stx $feff
|
|
.byte $8f
|
|
bcc L111C
|
|
L111C: sta ($ff),y
|
|
sta ($ff)
|
|
.byte $93
|
|
sty $ff,x
|
|
sta $ff,x
|
|
stx $ff,y
|
|
.byte $97
|
|
tya
|
|
sta $feff,y
|
|
txs
|
|
.byte $9b
|
|
stz $feff
|
|
sta $feff,x
|
|
stz $feff,x
|
|
.byte $9f
|
|
ldy #$ff
|
|
lda ($ff,x)
|
|
ldx #$ff
|
|
.byte $a3
|
|
ldy $ff
|
|
lda $ff
|
|
ldx $ff
|
|
.byte $a7
|
|
tay
|
|
lda #$ff
|
|
tax
|
|
.byte $ab
|
|
ldy $feff
|
|
lda $feff
|
|
ldx $feff
|
|
.byte $af
|
|
bcs L1157
|
|
L1157: lda ($ff),y
|
|
lda ($ff)
|
|
.byte $b3
|
|
ldy $ff,x
|
|
lda $ff,x
|
|
ldx $ff,y
|
|
.byte $b7
|
|
clv
|
|
lda $feff,y
|
|
tsx
|
|
.byte $bb
|
|
ldy $feff,x
|
|
lda $feff,x
|
|
ldx $feff,y
|
|
.byte $bf
|
|
cpy #$ff
|
|
cmp ($ff,x)
|
|
.byte $c2,$ff
|
|
.byte $c3
|
|
cpy $ff
|
|
cmp $ff
|
|
dec $ff
|
|
.byte $c7
|
|
iny
|
|
cmp #$ff
|
|
dex
|
|
.byte $cb
|
|
cpy $feff
|
|
cmp $feff
|
|
dec $feff
|
|
.byte $cf
|
|
bne L1192
|
|
L1192: cmp ($ff),y
|
|
cmp ($ff)
|
|
.byte $d3
|
|
.byte $d4,$ff
|
|
cmp $ff,x
|
|
dec $ff,x
|
|
.byte $d7
|
|
cld
|
|
cmp $feff,y
|
|
phx
|
|
.byte $db
|
|
.byte $dc,$ff,$fe
|
|
cmp $feff,x
|
|
dec $feff,x
|
|
.byte $df
|
|
cpx #$ff
|
|
sbc ($ff,x)
|
|
.byte $e2,$ff
|
|
.byte $e3
|
|
cpx $ff
|
|
sbc $ff
|
|
inc $ff
|
|
.byte $e7
|
|
inx
|
|
sbc #$ff
|
|
nop
|
|
.byte $eb
|
|
cpx $feff
|
|
sbc $feff
|
|
inc $feff
|
|
.byte $ef
|
|
beq L11CD
|
|
L11CD: sbc ($ff),y
|
|
sbc ($ff)
|
|
.byte $f3
|
|
.byte $f4,$ff
|
|
sbc $ff,x
|
|
inc $ff,x
|
|
.byte $f7
|
|
sed
|
|
sbc $feff,y
|
|
plx
|
|
.byte $fb
|
|
.byte $fc,$ff,$fe
|
|
sbc $feff,x
|
|
inc $feff,x
|
|
.byte $ff
|