1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-12-02 13:51:36 +00:00
6502bench/SourceGen/SGTestData/Expected/20222-data-bank_cc65.S
Andy McFadden da38bc0db8 Data Bank Register management, part 6 (of 6)
Add 20222-data-bank to regression test suite.  This exercises handling
of 16-bit operands with inter- and intra-bank references, and tests the
smartness in "smart PLB".

Also, update a couple of older tests that broke because the DBR is no
longer always the same as the PBR.  This just required adding "B=K"
in a few places to restore the original output.
2020-07-10 15:53:43 -07:00

108 lines
1.9 KiB
ArmAsm

.setcpu "65816"
; .segment "SEG000"
.org $1000
.a8
.i8
start: clc
xce
sep #$30
lda start
lda $2000
phk
plb
lda start
lda $2000
lda #$02
pha
plb
lda $1000
lda bank2 & $ffff
ldx #$08
tax
pha
plb
jsl bank2
jsl L24000
lda #$02
pha
plb
jsl bank3
phk
plb
bit start
jml L2400F
L103A: .word @L103C
@L103C: rts
L103D: .faraddr L2202E
; .segment "SEG001"
.org $022000
bank2: lda bank2
lda bank2 & $ffff
ldx #$00
jsr @L2202B & $ffff
jsr @L22025 & $ffff
jsr @L22028 & $ffff
nop
lda #$03
pha
plb
lda L33028 & $ffff
rep #$30
.a16
.i16
lda #$00a9
pha
plb
plb
sep #$30
.a8
.i8
rtl
@L22025: jmp (L103A)
@L22028: jml [L103D]
@L2202B: jmp (bank2addr & $ffff,x)
L2202E: nop
rts
bank2addr: .word L2202E & $ffff
; .segment "SEG002"
.org $033000
bank3: lda bank3
lda bank2 & $ffff
jsr @L33020 & $ffff
beq @L33024
phk
; .segment "SEG003"
.org $033020
@L33020: plb
nop
bra @L33024
@L33024: lda $2030
rtl
L33028: .word L33028 & $ffff
; .segment "SEG004"
.org $024000
L24000: lda L24000
phb
phk
plb
lda bank2 & $ffff
lda $3000
plb
rtl
L2400F: rts