From ca2961339539668bb4867ae8f88350481fd6bc1e Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Tue, 26 May 2020 22:48:47 -0400 Subject: [PATCH] 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). --- src/link/linker.1.s | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/link/linker.1.s b/src/link/linker.1.s index c84f6c6..1ea681b 100644 --- a/src/link/linker.1.s +++ b/src/link/linker.1.s @@ -3048,17 +3048,22 @@ relocatefinal and #$0020 jne :clc - lda #$f6 + lda #$f5 sta omfcode - lda #$08 + lda #$07 sta omflength lda #$01 sta omfbytes lda #-16 sta omfshift + bit interseg + bpl :ok3 + inc omfcode + inc omflength jsr isegwarning - jsr insertomf +:ok3 jsr insertomf jmp :clc + :la4 ldy #$03 lda [tempptr1],y and #$ff @@ -3098,17 +3103,22 @@ relocatefinal and #$0020 jne :clc - lda #$f6 + lda #$f5 sta omfcode - lda #$08 + lda #$07 sta omflength lda #$02 sta omfbytes lda #-8 sta omfshift + bit interseg + bpl :ok4 + inc omfcode ; $f6 + inc omflength jsr isegwarning - jsr insertomf +:ok4 jsr insertomf jmp :clc + :la5 jmp :b1hi :clc plp