From 81fb379a019dc2198156a7bfe967a64b52e07cde Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Sat, 31 Jul 2021 20:19:15 -0400 Subject: [PATCH] Even more code cleanup! --- applecorn.po | Bin 143360 -> 143360 bytes applecorn.s | 2 ++ auxmem.s | 26 +++----------------------- loader.s | 17 ++++++++--------- 4 files changed, 13 insertions(+), 32 deletions(-) diff --git a/applecorn.po b/applecorn.po index eecf91bb023988093433c5a855131bb0bb7c7585..aad3a0f1b31e70fe7d2fba4ad8794aa3a007a846 100644 GIT binary patch delta 3124 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 KUo88YUicsKvSNV% diff --git a/applecorn.s b/applecorn.s index 4e99194..f4db554 100644 --- a/applecorn.s +++ b/applecorn.s @@ -98,6 +98,8 @@ XFADDR MAC * Macro to backup STRTL/STRTH then load XFADDR * Called by code running in aux mem XFADDRAUX MAC + TSX + STX $0101 ; Save alt SP PHA LDA STRTL STA STRTBCKL diff --git a/auxmem.s b/auxmem.s index e746293..937a68a 100644 --- a/auxmem.s +++ b/auxmem.s @@ -286,11 +286,6 @@ FINDHND PHX STX ZP1 ; Points to filename STY ZP1+1 - TSX ; Stash alt ZP - STX $0101 - - PLA - PHA CMP #$00 ; A=$00 = close BEQ :CLOSE @@ -311,8 +306,8 @@ FINDHND PHX STA $C004 ; Write main STY MOSFILE ; Length (Pascal string) STA $C005 ; Write aux - >>> XFADDRAUX,OFILE PLA ; Recover options + >>> XFADDRAUX,OFILE :S1 >>> XFMAIN :CLOSE STA $C004 ; Write main @@ -353,8 +348,6 @@ BPUTHND PHX STA $C004 ; Write to main memory STY MOSFILE ; File reference number STA $C005 ; Write to aux memory - TSX ; Stash alt SP in $0101 - STX $0101 >>> XFADDRAUX,FILEPUT PLA ; Char to write PHA @@ -373,8 +366,6 @@ BGETHND PHX STA $C004 ; Write to main memory STY MOSFILE ; File ref number STA $C005 ; Write to aux memory - TSX ; Stash alt SP in $0101 - STX $0101 >>> XFADDRAUX,FILEGET >>> XFMAIN OSBGETRET @@ -493,9 +484,6 @@ FILEHND PHX STY MOSFILE ; Length (Pascal string) STA $C005 ; Write aux - TSX - STX $0101 ; Store alt SP in $0101 - PLA ; Get action back PHA BEQ :S1 ; A=00 -> SAVE @@ -1231,9 +1219,7 @@ STARHELP LDA #<:MSG STARQUIT >>> XFADDRAUX,QUIT >>> XFMAIN -STARCAT TSX - STX $0101 ; Stash alt SP - >>> XFADDRAUX,CATALOG +STARCAT >>> XFADDRAUX,CATALOG >>> XFMAIN STARCATRET >>> ENTAUX @@ -1241,9 +1227,7 @@ STARCATRET * Print one block of a catalog. Called by CATALOG * Block is in AUXBLK -PRONEBLK LDX $0101 ; Recover alt SP - TXS - +PRONEBLK >>> ENTAUX LDA AUXBLK+4 ; Get storage type AND #$E0 ; Mask 3 MSBs CMP #$E0 @@ -1334,8 +1318,6 @@ STARDIR LDA ZP1 ; Move ZP1->ZP3 (OSWRCH uses ZP1) STA $C004 ; Write main STX MOSFILE ; Length byte STA $C005 ; Write aux - TSX - STX $0101 ; Stash alt SP >>> XFADDRAUX,SETPFX >>> XFMAIN STARDIRRET @@ -1368,8 +1350,6 @@ CHKEOF STA $C004 ; Write main mem STX MOSFILE ; File reference number STA $C005 ; Write aux mem >>> XFADDRAUX,FILEEOF - TSX ; Stash alt SP in $0101 - STX $0101 >>> XFMAIN CHKEOFRET >>> ENTAUX diff --git a/loader.s b/loader.s index 064fe5e..cfa179f 100644 --- a/loader.s +++ b/loader.s @@ -3,6 +3,10 @@ * * Applecorn loader code +* Loads Acorn ROM file (16KB) from disk and writes it +* to aux memory starting at $08000. Copies Applecorn MOS +* to aux memory starting at AUXMOS1 and jumps to it. +* (Note that the MOS code will relocate itself to $D000.) START STZ :BLOCKS LDX #$00 :L1 LDA HELLO,X ; Signon message @@ -100,15 +104,10 @@ START STZ :BLOCKS EOR #$A5 ; Checksum STA RSTV+2 - TSX - STX $0100 ; Store SP at $0100 - LDA #AUXMOS1 - STA STRTH - SEC ; Main -> Aux - BIT $FF58 ; Set V; Use page zero and stack in aux - JMP XFER ; Jump to copied MOS code in Aux + TSX ; Save SP at $0100 + STX $0100 + >>> XFADDR,AUXMOS1 + >>> XFAUX :BLOCKS DB 0 ; Counter for blocks read