external, shifted references were always generating an interseg OMF relocation record even when in the same OMF segment (in which case they would reference segment 0 which is wrong).

This commit is contained in:
Kelvin Sherlock 2020-05-26 22:48:47 -04:00
parent b5955278c3
commit ca29613395

View File

@ -3048,17 +3048,22 @@ relocatefinal
and #$0020 and #$0020
jne :clc jne :clc
lda #$f6 lda #$f5
sta omfcode sta omfcode
lda #$08 lda #$07
sta omflength sta omflength
lda #$01 lda #$01
sta omfbytes sta omfbytes
lda #-16 lda #-16
sta omfshift sta omfshift
bit interseg
bpl :ok3
inc omfcode
inc omflength
jsr isegwarning jsr isegwarning
jsr insertomf :ok3 jsr insertomf
jmp :clc jmp :clc
:la4 ldy #$03 :la4 ldy #$03
lda [tempptr1],y lda [tempptr1],y
and #$ff and #$ff
@ -3098,17 +3103,22 @@ relocatefinal
and #$0020 and #$0020
jne :clc jne :clc
lda #$f6 lda #$f5
sta omfcode sta omfcode
lda #$08 lda #$07
sta omflength sta omflength
lda #$02 lda #$02
sta omfbytes sta omfbytes
lda #-8 lda #-8
sta omfshift sta omfshift
bit interseg
bpl :ok4
inc omfcode ; $f6
inc omflength
jsr isegwarning jsr isegwarning
jsr insertomf :ok4 jsr insertomf
jmp :clc jmp :clc
:la5 jmp :b1hi :la5 jmp :b1hi
:clc plp :clc plp