mirror of
https://github.com/fadden/6502bench.git
synced 2026-04-26 12:18:26 +00:00
Correct StdInline behavior for overlapping addresses
The implementation was mapping labels to addresses, then formatting inline data at the matching address. This may be incorrect when there are multiple sections of the file mapped to the same address. The correct approach is to record the offsets of the matching labels, and then do an address-to-offset translation for each JSR. Also, show a note in the Info window when a JSR has been marked no-continue by an extension script. Also, updated Daily Tips.
This commit is contained in:
@@ -50,16 +50,60 @@ L1040 nop
|
||||
.byte $00
|
||||
|
||||
_L10AD nop
|
||||
jsr _L10B6
|
||||
jsr _L10C3
|
||||
jsr InW_test1
|
||||
.word $1100
|
||||
nop
|
||||
jmp LF000
|
||||
|
||||
.byte $80
|
||||
|
||||
.logical $2000
|
||||
InW_test1 nop
|
||||
jsr InW_test1
|
||||
.word $1200
|
||||
rts
|
||||
|
||||
.byte $80
|
||||
.here
|
||||
|
||||
.logical $2000
|
||||
InW_test2 nop
|
||||
jsr InW_test2
|
||||
.word $1300
|
||||
rts
|
||||
|
||||
.byte $80
|
||||
.here
|
||||
|
||||
.logical $2000
|
||||
not_inline nop
|
||||
jsr not_inline
|
||||
bit not_inline
|
||||
rts
|
||||
|
||||
.byte $81
|
||||
.here
|
||||
.logical $0000
|
||||
InW_na_test .byte $ea
|
||||
.byte $20
|
||||
.byte $00
|
||||
.byte $30
|
||||
.byte $60
|
||||
.byte $81
|
||||
.here
|
||||
|
||||
.logical $f000
|
||||
LF000 jsr _LF008
|
||||
jsr _LF015
|
||||
nop
|
||||
rts
|
||||
|
||||
_L10B6 jsr InA1_test
|
||||
_LF008 jsr InA1_test
|
||||
.byte $ff
|
||||
.enc "sg_ascii"
|
||||
.text "too long"
|
||||
.byte $ea
|
||||
|
||||
_L10C3 jsr InAZ_test
|
||||
_LF015 jsr InAZ_test
|
||||
.text "does not end"
|
||||
.here
|
||||
|
||||
@@ -42,15 +42,59 @@ L1040 nop
|
||||
!byte $00
|
||||
|
||||
@L10AD nop
|
||||
jsr @L10B6
|
||||
jsr @L10C3
|
||||
jsr InW_test1
|
||||
!word $1100
|
||||
nop
|
||||
jmp LF000
|
||||
|
||||
!byte $80
|
||||
|
||||
!pseudopc $2000 {
|
||||
InW_test1 nop
|
||||
jsr InW_test1
|
||||
!word $1200
|
||||
rts
|
||||
|
||||
!byte $80
|
||||
}
|
||||
|
||||
!pseudopc $2000 {
|
||||
InW_test2 nop
|
||||
jsr InW_test2
|
||||
!word $1300
|
||||
rts
|
||||
|
||||
!byte $80
|
||||
}
|
||||
|
||||
!pseudopc $2000 {
|
||||
not_inline nop
|
||||
jsr not_inline
|
||||
bit not_inline
|
||||
rts
|
||||
|
||||
!byte $81
|
||||
}
|
||||
!pseudopc $0000 {
|
||||
InW_na_test !byte $ea
|
||||
!byte $20
|
||||
!byte $00
|
||||
!byte $30
|
||||
!byte $60
|
||||
!byte $81
|
||||
}
|
||||
|
||||
!pseudopc $f000 {
|
||||
LF000 jsr @LF008
|
||||
jsr @LF015
|
||||
nop
|
||||
rts
|
||||
|
||||
@L10B6 jsr InA1_test
|
||||
@LF008 jsr InA1_test
|
||||
!byte $ff
|
||||
!text "too long"
|
||||
!byte $ea
|
||||
|
||||
@L10C3 jsr InAZ_test
|
||||
@LF015 jsr InAZ_test
|
||||
!text "does not end"
|
||||
}
|
||||
|
||||
@@ -42,15 +42,54 @@ L1040: nop
|
||||
.byte $00
|
||||
|
||||
@L10AD: nop
|
||||
jsr @L10B6
|
||||
jsr @L10C3
|
||||
jsr InW_test1
|
||||
.word $1100
|
||||
nop
|
||||
jmp LF000
|
||||
|
||||
.byte $80
|
||||
|
||||
.org $2000
|
||||
InW_test1: nop
|
||||
jsr InW_test1
|
||||
.word $1200
|
||||
rts
|
||||
|
||||
.byte $80
|
||||
|
||||
.org $2000
|
||||
InW_test2: nop
|
||||
jsr InW_test2
|
||||
.word $1300
|
||||
rts
|
||||
|
||||
.byte $80
|
||||
|
||||
.org $2000
|
||||
not_inline: nop
|
||||
jsr not_inline
|
||||
bit not_inline
|
||||
rts
|
||||
|
||||
.byte $81
|
||||
.org $0000
|
||||
InW_na_test: .byte $ea
|
||||
.byte $20
|
||||
.byte $00
|
||||
.byte $30
|
||||
.byte $60
|
||||
.byte $81
|
||||
|
||||
.org $f000
|
||||
LF000: jsr @LF008
|
||||
jsr @LF015
|
||||
nop
|
||||
rts
|
||||
|
||||
@L10B6: jsr InA1_test
|
||||
@LF008: jsr InA1_test
|
||||
.byte $ff
|
||||
.byte "too long"
|
||||
.byte $ea
|
||||
|
||||
@L10C3: jsr InAZ_test
|
||||
@LF015: jsr InAZ_test
|
||||
.byte "does not end"
|
||||
|
||||
@@ -41,15 +41,54 @@ L1040 nop
|
||||
dfb $00
|
||||
|
||||
:L10AD nop
|
||||
jsr :L10B6
|
||||
jsr :L10C3
|
||||
jsr InW_test1
|
||||
dw $1100
|
||||
nop
|
||||
jmp LF000
|
||||
|
||||
dfb $80
|
||||
|
||||
org $2000
|
||||
InW_test1 nop
|
||||
jsr InW_test1
|
||||
dw $1200
|
||||
rts
|
||||
|
||||
dfb $80
|
||||
|
||||
org $2000
|
||||
InW_test2 nop
|
||||
jsr InW_test2
|
||||
dw $1300
|
||||
rts
|
||||
|
||||
dfb $80
|
||||
|
||||
org $2000
|
||||
not_inline nop
|
||||
jsr not_inline
|
||||
bit not_inline
|
||||
rts
|
||||
|
||||
dfb $81
|
||||
org $0000
|
||||
InW_na_test dfb $ea
|
||||
dfb $20
|
||||
dfb $00
|
||||
dfb $30
|
||||
dfb $60
|
||||
dfb $81
|
||||
|
||||
org $f000
|
||||
LF000 jsr :LF008
|
||||
jsr :LF015
|
||||
nop
|
||||
rts
|
||||
|
||||
:L10B6 jsr InA1_test
|
||||
:LF008 jsr InA1_test
|
||||
dfb $ff
|
||||
asc 'too long'
|
||||
dfb $ea
|
||||
|
||||
:L10C3 jsr InAZ_test
|
||||
:LF015 jsr InAZ_test
|
||||
asc 'does not end'
|
||||
|
||||
Reference in New Issue
Block a user