mirror of
https://github.com/fadden/6502bench.git
synced 2024-11-30 01:50:10 +00:00
98914e9f80
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.
79 lines
1.4 KiB
ArmAsm
79 lines
1.4 KiB
ArmAsm
.setcpu "65816"
|
|
; .segment "SEG000"
|
|
.org $1000
|
|
.a8
|
|
.i8
|
|
clc
|
|
xce
|
|
sep #$30
|
|
jsr L1014
|
|
jsr L101C
|
|
jsr L102A
|
|
jsr L102F
|
|
jsr L1059
|
|
rts
|
|
|
|
L1014: lda #$00
|
|
.byte $2c
|
|
L1017: lda #$01
|
|
beq L1017
|
|
rts
|
|
|
|
L101C: sep #$30
|
|
lda $00
|
|
beq L1025
|
|
lda #$00
|
|
brk
|
|
|
|
L1025: sta $012345
|
|
rts
|
|
|
|
L102A: .byte $20
|
|
L102B: rts
|
|
|
|
.byte $ea
|
|
bra L102B
|
|
|
|
L102F: .byte $2c
|
|
L1030: .byte $2c
|
|
L1031: .byte $2c
|
|
L1032: .byte $2c
|
|
L1033: .byte $2c
|
|
L1034: .byte $2c
|
|
L1035: .byte $2c
|
|
L1036: .byte $2c
|
|
L1037: .byte $2c
|
|
L1038: nop
|
|
nop
|
|
asl A
|
|
bcc L102F
|
|
asl A
|
|
bcc L1030
|
|
asl A
|
|
bcc L1031
|
|
asl A
|
|
bcc L1032
|
|
asl A
|
|
bcc L1033
|
|
asl A
|
|
bcc L1034
|
|
asl A
|
|
bcc L1035
|
|
asl A
|
|
bcc L1036
|
|
asl A
|
|
bcc L1037
|
|
asl A
|
|
bcc L1038
|
|
rts
|
|
|
|
L1059: .byte $2c
|
|
L105A: nop
|
|
.byte $ad
|
|
L105C: lda $00
|
|
asl A
|
|
bcc L105A
|
|
asl A
|
|
bcc L105C
|
|
.byte $af
|