mirror of
https://github.com/fadden/6502bench.git
synced 2024-12-01 22:50:35 +00:00
51081c5db0
The code that found a nearby data target for an instruction operand was searching backward but not forward. We now take one step forward, so that "LDA TABLE-1,Y" fills in automatically. This altered 2008-address-changes, which had just this situation. It didn't alter 2010-target-adjustment, but the existing tests were insufficient and have been improved.
87 lines
1.8 KiB
ArmAsm
87 lines
1.8 KiB
ArmAsm
.setcpu "65816"
|
|
; .segment "SEG000"
|
|
.org $1000
|
|
.a8
|
|
.i8
|
|
load11: lda #$11
|
|
L1002: ldx #$22
|
|
load33: ldy #$33
|
|
L1006: lda #$44
|
|
predat: bra L1042
|
|
|
|
.word $0123
|
|
dat1: .word $4567
|
|
.word $89ab
|
|
L1010: .word $cdef
|
|
L1012: .word $0011
|
|
L1014: .word $2233
|
|
.byte $80
|
|
.byte "The quick brown fox"
|
|
.byte $80
|
|
.word L1042
|
|
.word L1041
|
|
.word L1042+1
|
|
fill0: .res 16,$00
|
|
L1041: .byte $80
|
|
|
|
L1042: lda predat+2
|
|
lda L1041
|
|
asl dat1
|
|
rol dat1+2
|
|
ror L1010
|
|
and L1012
|
|
ora L1014
|
|
lda fill0
|
|
sta fill0+4
|
|
lda fill0+8
|
|
sta fill0+12
|
|
jsr L1002
|
|
lda L1006
|
|
L1069: pea L1069-1
|
|
per L1069-1
|
|
lda L1069+1
|
|
lda L1069+2
|
|
lda #$ea
|
|
L1077: sta L1077
|
|
L107A: sta L107A+1
|
|
sta $107f ;self-ref; operand format refs nonexistent symbol
|
|
brl L2002
|
|
|
|
.byte $80
|
|
dat81: .byte $81
|
|
; .segment "SEG001"
|
|
.org $2000
|
|
L2000: .byte $82
|
|
.byte $83
|
|
|
|
L2002: bit L2002
|
|
lda dat81
|
|
lda L2000
|
|
bra L2018
|
|
|
|
L200D: .byte $7c
|
|
L200E: .byte $7d
|
|
L200F: .byte $7e
|
|
.byte $7f
|
|
nearby: .byte $80
|
|
.byte $81
|
|
.byte $82
|
|
.byte $83
|
|
L2015: .byte $84
|
|
L2016: .byte $85
|
|
L2017: .byte $86
|
|
|
|
L2018: lda L200D
|
|
lda L200E
|
|
lda L200F
|
|
lda nearby-1
|
|
lda nearby
|
|
lda nearby+1
|
|
lda nearby+2
|
|
lda nearby+3
|
|
lda L2015
|
|
lda L2016
|
|
lda L2017
|
|
rts
|
|
|