From c485c299a57c87b7abb62ec4e58c6197cd6b2313 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Sun, 18 Jul 2021 00:16:05 -0400 Subject: [PATCH] copy the loader onto the disk. --- Makefile | 10 ++++++---- cp-loader.sh | 5 +++++ loader.aii | 12 +++++++++++- 3 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 cp-loader.sh diff --git a/Makefile b/Makefile index ad2386a..7fa74df 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,14 @@ +.PHONY: all +all : bootblock loader -bootblock : bootblock.omf hfs.po +bootblock : bootblock.omf | hfs.po mpw makebiniigs -s -org 2048 bootblock.omf -o bootblock dd bs=512 if=bootblock of=hfs.po conv=notrunc oseek=0 -loader : loader.omf +loader : loader.omf | hfs.po mpw makebiniigs -s -org 8192 loader.omf -o loader - + sh cp-loader.sh # bootblock.omf : bootblock.obj # mpw linkiigs bootblock.obj -o bootblock.omf @@ -20,7 +22,7 @@ loader.obj : loader.aii hfs.aii macros.aii .PHONY: clean clean: - $(RM) bootblock bootblock.omf bootblock.obj + $(RM) bootblock bootblock.omf bootblock.obj loader loader.omf loader.obj hfs.po: mkfs-profuse --fst=hfs --size=800k --name="hfs boot" hfs.po diff --git a/cp-loader.sh b/cp-loader.sh new file mode 100644 index 0000000..f4754c6 --- /dev/null +++ b/cp-loader.sh @@ -0,0 +1,5 @@ + +export dir=`mktemp -d` +profuse -orw --fst=hfs hfs.po "$dir" +cp loader "$dir/"\! +umount "$dir" diff --git a/loader.aii b/loader.aii index 1e22cd4..343d680 100644 --- a/loader.aii +++ b/loader.aii @@ -2,6 +2,9 @@ ; ; loader ; +; currently limited to 512-byte blocks (64MB max filesystem) +; need to use smartport protocol to use > 65535 blocks anyhow. +; @@ -29,7 +32,7 @@ r3 ds.w 1 ; readfile eof ds.l 1 -blocks ds.w 1 ; shouldn't exceed... +blocks ds.w 1 ; shouldn't exceed $ffff blocks ft ds.w 1 at ds.w 1 st ds.w 1 @@ -907,6 +910,13 @@ startup proc txs + lda #buffer + sta pro.buffer + short m + lda #1 + sta pro.cmd + long m + with HFSMasterDirectoryBlock lda #2 jsr read_block_abs