From 6efc2b1a98268f6b38989a632247237c754bf46c Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Sat, 24 Feb 2024 11:13:46 -0800 Subject: [PATCH] Update module loader to handle 8 bit fixups generated by EDASM --- images/apple/ASM-TK.po | Bin 0 -> 143360 bytes src/mkrel | 4 +- src/samplesrc/test.asm | 42 ----------------- src/samplesrc/testext.asm | 86 ++++++++++++++++++++++++++++++++++ src/samplesrc/testrel.asm | 52 ++++++++++++++++++++ src/vmsrc/apple/a1cmd.pla | 29 +++++++++--- src/vmsrc/apple/cmd.pla | 29 +++++++++--- src/vmsrc/apple/cmdjit.pla | 29 +++++++++--- src/vmsrc/apple/sossys.pla | 29 +++++++++--- src/vmsrc/apple/sossysjit.pla | 29 +++++++++--- 10 files changed, 256 insertions(+), 73 deletions(-) create mode 100755 images/apple/ASM-TK.po delete mode 100644 src/samplesrc/test.asm create mode 100644 src/samplesrc/testext.asm create mode 100644 src/samplesrc/testrel.asm diff --git a/images/apple/ASM-TK.po b/images/apple/ASM-TK.po new file mode 100755 index 0000000000000000000000000000000000000000..1809af87c1a8d01f4efc0ea2d050228acbf494b6 GIT binary patch literal 143360 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 M_`AF2IJ}Af4HDJQNdN!< literal 0 HcmV?d00001 diff --git a/src/mkrel b/src/mkrel index a5d0e2d..a1672a2 100755 --- a/src/mkrel +++ b/src/mkrel @@ -152,7 +152,9 @@ cp samplesrc/fppow.pla prodos/bld/samples/FPPOW.PLA.TXT cp utilsrc/apple/mon.pla prodos/bld/samples/MON.PLA.TXT cp utilsrc/apple/zipchip.pla prodos/bld/samples/ZIPCHIP.PLA.TXT -cp libsrc/apple/dhgrlib.pla prodos/bld/DHGR.PLA.TXT +cp libsrc/apple/dhgrlib.pla prodos/bld/samples/DHGR.PLA.TXT +cp samplesrc/testrel.asm prodos/bld/samples/TESTREL.ASM.TXT +cp samplesrc/testext.asm prodos/bld/samples/TESTEXT.ASM.TXT mkdir prodos/bld/scripts cp scripts/rod.4th prodos/bld/scripts/ROD.4TH.TXT diff --git a/src/samplesrc/test.asm b/src/samplesrc/test.asm deleted file mode 100644 index 9562023..0000000 --- a/src/samplesrc/test.asm +++ /dev/null @@ -1,42 +0,0 @@ - REL - ORG $1000 -; -ESTKH EQU $C0 -ESTKL EQU $D0 -; - EXTRN PUTS - EXTRN PUTLN -; -; EXT HEADER -; - DW $6502 - DW 0 ; SYSFLAGS - DW DEFSEG ; DEF OFFSET - DW 1 ; DEF COUNT (INCLUDING INIT) - DW MODINIT ; MOD INIT - MSB ON - ASC "CMDSY" ; MOD DEPENDENCIES - MSB OFF - ASC "S" - DB 0 -; -; DATA AND 6502 CODE SEGMENT -; -MSG STR "Hello" -MSGADDR DW MSG -ASMINIT LDA MSGADDR - LDY MSGADDR+1 - DEX - STA ESTKL,X - STY ESTKH,X - JSR PUTS - JMP PUTLN -; -; BYTECODE DEFS SEGMENT -; -DEFSEG EQU * -MODINIT DB $54 ; CALL ASMINIT - DW ASMINIT - DB $2C ; CW - DW $2000 ; MODKEEP - DB $5C ; RET diff --git a/src/samplesrc/testext.asm b/src/samplesrc/testext.asm new file mode 100644 index 0000000..12f1448 --- /dev/null +++ b/src/samplesrc/testext.asm @@ -0,0 +1,86 @@ +; +; EXTENDED REL MODULE WITH DEPENDENCIES, BYTECODE SEGMENT, AND INIT +; + REL + ORG $1000 +; +; USEFUL ZERO PAGE LOCATIONS +; +SRC EQU $06 +SRCL EQU SRC +SRCH EQU SRC+1 +DST EQU SRC+2 +DSTL EQU DST +DSTH EQU DST+1 +TMP EQU $E7 +TMPL EQU TMP +TMPH EQU TMP+1 +ESTKH EQU $C0 +ESTKL EQU $D0 +DROPOP EQU $EF +NEXTOP EQU $F0 +FETCHOP EQU NEXTOP+1 +; +; JUMP TO BYTECODE INTERPRETER ADDRESS +; +INTERP EQU $03D0 +; +; EXTERNALS USED BY THIS MODULE +; + EXTRN PUTS + EXTRN PUTLN +; +; EXT HEADER +; + DW $6502 + DW 0 ; SYSFLAGS + DW DEFSEG ; DEF OFFSET + DW 1 ; DEF COUNT (INCLUDING INIT) + DW MODINIT ; MOD INIT + MSB ON + ASC "CMDSY" ; MOD DEPENDENCIES (DCI BACKWARDS HI/LO BIT FROM REL FILE) + MSB OFF + ASC "S" + DB 0 +; +; DATA AND 6502 CODE SEGMENT +; +HIMSG STR "Hello" +HELLO DEF HELLO ; CALLABLE FROM EXTERNAL MODULES + LDA #>HIMSG + LDY #BYEMSG + LDY #HIMSG + LDY #BYEMSG + LDY #1+MODFIX STA DSTL + INY LDA (SRC),Y ADC ESTKH+3,X STA DSTH - PLA + LDY #$00 + LDA (SRC),Y AND #$10 ; EXTERN REF - EXIT BNE RLDEX - TAY ; FIXUP=*ADDR+MODOFST + LDA (SRC),Y + BMI FIX16 + AND #$40 + BNE FIXMSB +FIXLSB LDA (DST),Y + CLC + ADC ESTKL+2,X + CLC + BCC FIX8 +FIXMSB LDY #$03 + LDA (SRC),Y ; FIXUPH=(ENTRY->3+MODOFSTL)+(^ADDR+MODOFSTH) + CLC + ADC ESTKL+2,X + LDY #$00 LDA (DST),Y - INY + ADC ESTKH+2,X + CLC + BCC FIX8 +FIX16 LDA (DST),Y ; FIXUP=*ADDR+MODOFST CLC ADC ESTKL+2,X STA TMPL + INY LDA (DST),Y ADC ESTKH+2,X CMP ESTKH+1,X ; FIXUP >= BYTECODE? @@ -698,7 +715,7 @@ asm reloc(modfix, modofst, bytecode, rld)#3 + STA (DST),Y ; *ADDR=FIXUP DEY LDA TMPL - STA (DST),Y +FIX8 STA (DST),Y LDA SRCL ; NEXT ENTRY ; CLC ADC #$04 diff --git a/src/vmsrc/apple/cmd.pla b/src/vmsrc/apple/cmd.pla index 33d25cc..c84d009 100755 --- a/src/vmsrc/apple/cmd.pla +++ b/src/vmsrc/apple/cmd.pla @@ -753,25 +753,42 @@ asm reloc(modfix, modofst, bytecode, rld)#3 LDY #$00 - LDA (SRC),Y BEQ RLDEX ; END OF RLD - PHA INY LDA (SRC),Y - INY CLC ADC ESTKL+3,X ; ADDR=ENTRY=>1+MODFIX STA DSTL + INY LDA (SRC),Y ADC ESTKH+3,X STA DSTH - PLA + LDY #$00 + LDA (SRC),Y AND #$10 ; EXTERN REF - EXIT BNE RLDEX - TAY ; FIXUP=*ADDR+MODOFST + LDA (SRC),Y + BMI FIX16 + AND #$40 + BNE FIXMSB +FIXLSB LDA (DST),Y + CLC + ADC ESTKL+2,X + CLC + BCC FIX8 +FIXMSB LDY #$03 + LDA (SRC),Y ; FIXUPH=(ENTRY->3+MODOFSTL)+(^ADDR+MODOFSTH) + CLC + ADC ESTKL+2,X + LDY #$00 LDA (DST),Y - INY + ADC ESTKH+2,X + CLC + BCC FIX8 +FIX16 LDA (DST),Y ; FIXUP=*ADDR+MODOFST CLC ADC ESTKL+2,X STA TMPL + INY LDA (DST),Y ADC ESTKH+2,X CMP ESTKH+1,X ; FIXUP >= BYTECODE? @@ -785,7 +802,7 @@ asm reloc(modfix, modofst, bytecode, rld)#3 + STA (DST),Y ; *ADDR=FIXUP DEY LDA TMPL - STA (DST),Y +FIX8 STA (DST),Y LDA SRCL ; NEXT ENTRY ; CLC ADC #$04 diff --git a/src/vmsrc/apple/cmdjit.pla b/src/vmsrc/apple/cmdjit.pla index 76fc232..e0e0714 100755 --- a/src/vmsrc/apple/cmdjit.pla +++ b/src/vmsrc/apple/cmdjit.pla @@ -773,25 +773,42 @@ asm reloc(modfix, modofst, bytecode, rld)#3 LDY #$00 - LDA (SRC),Y BEQ RLDEX ; END OF RLD - PHA INY LDA (SRC),Y - INY CLC ADC ESTKL+3,X ; ADDR=ENTRY=>1+MODFIX STA DSTL + INY LDA (SRC),Y ADC ESTKH+3,X STA DSTH - PLA + LDY #$00 + LDA (SRC),Y AND #$10 ; EXTERN REF - EXIT BNE RLDEX - TAY ; FIXUP=*ADDR+MODOFST + LDA (SRC),Y + BMI FIX16 + AND #$40 + BNE FIXMSB +FIXLSB LDA (DST),Y + CLC + ADC ESTKL+2,X + CLC + BCC FIX8 +FIXMSB LDY #$03 + LDA (SRC),Y ; FIXUPH=(ENTRY->3+MODOFSTL)+(^ADDR+MODOFSTH) + CLC + ADC ESTKL+2,X + LDY #$00 LDA (DST),Y - INY + ADC ESTKH+2,X + CLC + BCC FIX8 +FIX16 LDA (DST),Y ; FIXUP=*ADDR+MODOFST CLC ADC ESTKL+2,X STA TMPL + INY LDA (DST),Y ADC ESTKH+2,X CMP ESTKH+1,X ; FIXUP >= BYTECODE? @@ -805,7 +822,7 @@ asm reloc(modfix, modofst, bytecode, rld)#3 + STA (DST),Y ; *ADDR=FIXUP DEY LDA TMPL - STA (DST),Y +FIX8 STA (DST),Y LDA SRCL ; NEXT ENTRY ; CLC ADC #$04 diff --git a/src/vmsrc/apple/sossys.pla b/src/vmsrc/apple/sossys.pla index c119b07..930208b 100755 --- a/src/vmsrc/apple/sossys.pla +++ b/src/vmsrc/apple/sossys.pla @@ -731,25 +731,42 @@ asm reloc(modfix, modofst, bytecode, rld)#3 LDY #$00 - LDA (SRC),Y BEQ RLDEX ; END OF RLD - PHA INY LDA (SRC),Y - INY CLC ADC ESTKL+3,X ; ADDR=ENTRY=>1+MODFIX STA DSTL + INY LDA (SRC),Y ADC ESTKH+3,X STA DSTH - PLA + LDY #$00 + LDA (SRC),Y AND #$10 ; EXTERN REF - EXIT BNE RLDEX - TAY ; FIXUP=*ADDR+MODOFST + LDA (SRC),Y + BMI FIX16 + AND #$40 + BNE FIXMSB +FIXLSB LDA (DST),Y + CLC + ADC ESTKL+2,X + CLC + BCC FIX8 +FIXMSB LDY #$03 + LDA (SRC),Y ; FIXUPH=(ENTRY->3+MODOFSTL)+(^ADDR+MODOFSTH) + CLC + ADC ESTKL+2,X + LDY #$00 LDA (DST),Y - INY + ADC ESTKH+2,X + CLC + BCC FIX8 +FIX16 LDA (DST),Y ; FIXUP=*ADDR+MODOFST CLC ADC ESTKL+2,X STA TMPL + INY LDA (DST),Y ADC ESTKH+2,X CMP ESTKH+1,X ; FIXUP >= BYTECODE? @@ -763,7 +780,7 @@ asm reloc(modfix, modofst, bytecode, rld)#3 + STA (DST),Y ; *ADDR=FIXUP DEY LDA TMPL - STA (DST),Y +FIX8 STA (DST),Y LDA SRCL ; NEXT ENTRY ; CLC ADC #$04 diff --git a/src/vmsrc/apple/sossysjit.pla b/src/vmsrc/apple/sossysjit.pla index dae50fd..56fa331 100755 --- a/src/vmsrc/apple/sossysjit.pla +++ b/src/vmsrc/apple/sossysjit.pla @@ -742,25 +742,42 @@ asm reloc(modfix, modofst, bytecode, rld)#3 LDY #$00 - LDA (SRC),Y BEQ RLDEX ; END OF RLD - PHA INY LDA (SRC),Y - INY CLC ADC ESTKL+3,X ; ADDR=ENTRY=>1+MODFIX STA DSTL + INY LDA (SRC),Y ADC ESTKH+3,X STA DSTH - PLA + LDY #$00 + LDA (SRC),Y AND #$10 ; EXTERN REF - EXIT BNE RLDEX - TAY ; FIXUP=*ADDR+MODOFST + LDA (SRC),Y + BMI FIX16 + AND #$40 + BNE FIXMSB +FIXLSB LDA (DST),Y + CLC + ADC ESTKL+2,X + CLC + BCC FIX8 +FIXMSB LDY #$03 + LDA (SRC),Y ; FIXUPH=(ENTRY->3+MODOFSTL)+(^ADDR+MODOFSTH) + CLC + ADC ESTKL+2,X + LDY #$00 LDA (DST),Y - INY + ADC ESTKH+2,X + CLC + BCC FIX8 +FIX16 LDA (DST),Y ; FIXUP=*ADDR+MODOFST CLC ADC ESTKL+2,X STA TMPL + INY LDA (DST),Y ADC ESTKH+2,X CMP ESTKH+1,X ; FIXUP >= BYTECODE? @@ -774,7 +791,7 @@ asm reloc(modfix, modofst, bytecode, rld)#3 + STA (DST),Y ; *ADDR=FIXUP DEY LDA TMPL - STA (DST),Y +FIX8 STA (DST),Y LDA SRCL ; NEXT ENTRY ; CLC ADC #$04