Implement a better way of creating a bootable disk, via new linapple batch mode
authorNick Downing <nick@ndcode.org>
Thu, 19 May 2022 06:50:15 +0000 (16:50 +1000)
committerNick Downing <nick@ndcode.org>
Thu, 19 May 2022 10:48:05 +0000 (20:48 +1000)
.gitignore
.gitmodules
Makefile
lemonade/Makefile
lemonade/bootable.txt [new file with mode: 0644]
linapple-pie [new submodule]
orig/Makefile

index e7e1b4a..d1ac77d 100644 (file)
@@ -3,10 +3,12 @@
 __pycache__
 /bas_to_tok.py
 /element.py
+/lemonade/bootable.dsk
 /lemonade/lemonade.bas
 /lemonade/lemonade_patched.bas
 /lemonade/lemonade_patched.dsk
 /lex_yy.py
+/orig/Apple_DOS_v3.3_1980_Apple.do
 /orig/Lemonade_Stand_1979_Apple.do
 /tok_to_bas.py
 /t_def.py
index 562a840..c1699c3 100644 (file)
@@ -1,3 +1,6 @@
 [submodule "dos33fsprogs"]
        path = dos33fsprogs
        url = https://github.com/nickd4/dos33fsprogs.git
+[submodule "linapple-pie"]
+       path = linapple-pie
+       url = https://github.com/nickd4/linapple-pie.git
index c997d0f..ca46f90 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,16 +5,36 @@
        chmod a+x $@
 
 .PHONY: all
-all: dos33fsprogs lemonade orig element.py lex_yy.py t_def.py y_tab.py bas_to_tok.py tok_to_bas.py
+all: \
+dos33fsprogs \
+lemonade \
+linapple-pie \
+orig \
+element.py \
+lex_yy.py \
+t_def.py \
+y_tab.py \
+bas_to_tok.py \
+tok_to_bas.py
 
 .PHONY: dos33fsprogs
 dos33fsprogs:
        ${MAKE} ${MAKEFLAGS} -C dos33fsprogs/utils/dos33fs-utils dos33 mkdos33fs
 
 .PHONY: lemonade
-lemonade: dos33fsprogs tok_to_bin.py bin_to_tok.py tok_to_bas.py bas_to_tok.py
+lemonade: \
+dos33fsprogs \
+linapple-pie \
+tok_to_bin.py \
+bin_to_tok.py \
+tok_to_bas.py \
+bas_to_tok.py
        ${MAKE} ${MAKEFLAGS} -C lemonade
 
+.PHONY: linapple-pie
+linapple-pie:
+       ${MAKE} ${MAKEFLAGS} -C linapple-pie/src
+
 .PHONY: orig
 orig:
        ${MAKE} ${MAKEFLAGS} -C orig
index 28a9306..78ea202 100644 (file)
@@ -1,4 +1,5 @@
 DOS33=../dos33fsprogs/utils/dos33fs-utils/dos33
+#MKDOS33FS=../dos33fsprogs/utils/dos33fs-utils/mkdos33fs
 TOK_TO_BIN=../tok_to_bin.py
 BIN_TO_TOK=../bin_to_tok.py
 TOK_TO_BAS=../tok_to_bas.py
@@ -7,9 +8,11 @@ BAS_TO_TOK=../bas_to_tok.py
 .PHONY: all
 all: lemonade_patched.dsk
 
-lemonade_patched.dsk: ../orig/Lemonade_Stand_1979_Apple.do lemonade_patched.bin
-       cp ../orig/Lemonade_Stand_1979_Apple.do $@
+lemonade_patched.dsk: lemonade_patched.bin bootable.dsk
+       cp bootable.dsk $@
+       ${DOS33} $@ DELETE HELLO
        ${DOS33} $@ SAVE A lemonade_patched.bin "LEMONADE PATCHED"
+       ${DOS33} $@ HELLO "LEMONADE PATCHED"
 
 lemonade_patched.bin: lemonade_patched.tok
        ${TOK_TO_BIN} <$< >$@
@@ -30,6 +33,14 @@ lemonade.tok: lemonade.bin
 lemonade.bin: ../orig/Lemonade_Stand_1979_Apple.do
        ${DOS33} $< LOAD LEMONADE $@
 
+bootable.dsk: ../orig/Apple_DOS_v3.3_1980_Apple.do bootable.txt
+       dd if=/dev/zero of=$@ count=35 bs=4096
+       ( \
+cd ../linapple-pie && \
+tr '\n' '\r' <../lemonade/bootable.txt |\
+./linapple -b -1 ../orig/Apple_DOS_v3.3_1980_Apple.do -2 ../lemonade/$@ \
+)
+
 clean:
        rm -f \
 lemonade_patched.dsk \
@@ -38,4 +49,5 @@ lemonade_patched.tok \
 lemonade_patched.bas \
 lemonade.bas \
 lemonade.tok \
-lemonade.bin
+lemonade.bin \
+bootable.dsk
diff --git a/lemonade/bootable.txt b/lemonade/bootable.txt
new file mode 100644 (file)
index 0000000..b027cda
--- /dev/null
@@ -0,0 +1,4 @@
+NEW
+10 HOME
+20 PRINT "HELLO"
+INIT HELLO,D2
diff --git a/linapple-pie b/linapple-pie
new file mode 160000 (submodule)
index 0000000..2eca102
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 2eca1028bc98814b1930902f1c5553a907b5ae22
index 272173a..ecdbc4c 100644 (file)
@@ -1,5 +1,11 @@
 .PHONY: all
-all: Lemonade_Stand_1979_Apple.do
+all: \
+Apple_DOS_v3.3_1980_Apple.do \
+Lemonade_Stand_1979_Apple.do
+
+Apple_DOS_v3.3_1980_Apple.do:
+       rm -f $@
+       wget https://archive.org/download/a2_Apple_DOS_v3.3_1980_Apple/$@
 
 Lemonade_Stand_1979_Apple.do:
        rm -f $@
@@ -7,5 +13,7 @@ Lemonade_Stand_1979_Apple.do:
 
 clean:
        # avoid hitting archive.org every time
-       # it can be deleted manually if needed
-       #rm -f Lemonade_Stand_1979_Apple.do
+       # they can be deleted manually if needed
+       #rm -f \
+#Apple_DOS_v3.3_1980_Apple.do \
+#Lemonade_Stand_1979_Apple.do