Add edasm assembly for lemonade assembly language routines, make the patched version...
authorNick Downing <nick@ndcode.org>
Thu, 19 May 2022 14:36:19 +0000 (00:36 +1000)
committerNick Downing <nick@ndcode.org>
Thu, 19 May 2022 14:37:10 +0000 (00:37 +1000)
.gitignore
lemonade/Makefile
lemonade/lemonade.bas.patch
lemonade/lemonade_flash_asm.txt [new file with mode: 0644]
lemonade/lemonade_flash_disasm.sed [moved from lemonade/lemonade_flash.sed with 100% similarity]
lemonade/lemonade_flash_disasm.txt [moved from lemonade/lemonade_flash.txt with 98% similarity]
lemonade/lemonade_tone_asm.txt [new file with mode: 0644]
lemonade/lemonade_tone_disasm.sed [moved from lemonade/lemonade_tone.sed with 100% similarity]
lemonade/lemonade_tone_disasm.txt [moved from lemonade/lemonade_tone.txt with 98% similarity]
linapple-pie
orig/Makefile

index e5dc1cd..9fea0fd 100644 (file)
@@ -1,4 +1,6 @@
 *.bin
+*.obj
+*.lst
 *.tok
 __pycache__
 /bas_to_tok.py
@@ -11,6 +13,7 @@ __pycache__
 /lemonade/lemonade_patched.dsk
 /lex_yy.py
 /orig/Apple_DOS_v3.3_1980_Apple.do
+/orig/DOS_Tool_Kit_v1.0_1980_Apple.do
 /orig/Lemonade_Stand_1979_Apple.do
 /tok_to_bas.py
 /t_def.py
index f10116e..5b2c323 100644 (file)
@@ -1,17 +1,19 @@
 DOS33=../dos33fsprogs/utils/dos33fs-utils/dos33
-#MKDOS33FS=../dos33fsprogs/utils/dos33fs-utils/mkdos33fs
+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
 BAS_TO_TOK=../bas_to_tok.py
 
 .PHONY: all
-all: lemonade_patched.dsk lemonade_tone.asm lemonade_flash.asm
+all: lemonade_patched.dsk
 
-lemonade_patched.dsk: lemonade_patched.bin bootable.dsk
+lemonade_patched.dsk: lemonade_patched.bin lemonade_tone.obj lemonade_flash.obj bootable.dsk
        cp bootable.dsk $@
        ${DOS33} $@ DELETE HELLO
        ${DOS33} $@ SAVE A lemonade_patched.bin "LEMONADE PATCHED"
+       ${DOS33} $@ SAVE B lemonade_tone.obj "LEMONADE TONE.OBJ"
+       ${DOS33} $@ SAVE B lemonade_flash.obj "LEMONADE FLASH.OBJ"
        ${DOS33} $@ HELLO "LEMONADE PATCHED"
 
 lemonade_patched.bin: lemonade_patched.tok
@@ -33,15 +35,35 @@ lemonade.tok: lemonade.bin
 lemonade.bin: ../orig/Lemonade_Stand_1979_Apple.do
        ${DOS33} $< LOAD LEMONADE $@
 
+lemonade_tone.obj: \
+lemonade_tone.asm \
+lemonade_tone_asm.txt \
+bootable.dsk \
+../orig/DOS_Tool_Kit_v1.0_1980_Apple.do
+       cp ../orig/DOS_Tool_Kit_v1.0_1980_Apple.do .
+       tr '\t\na-z' ' \rA-Z' <lemonade_tone.asm |\
+LC_ALL=C tr '\000-\177' '\200-\377' >__temp__.asm
+       ${MKDOS33FS} __temp__.dsk
+       ${DOS33} __temp__.dsk SAVE T __temp__.asm "LEMONADE TONE.ASM"
+       rm -f ../linapple-pie/Printer.txt
+       tr '\n' '\r' <lemonade_tone_asm.txt |\
+( \
+  cd ../linapple-pie && \
+  ./linapple -b -1 ../lemonade/DOS_Tool_Kit_v1.0_1980_Apple.do -2 ../lemonade/__temp__.dsk \
+)
+       tr -d '\r' <../linapple-pie/Printer.txt >lemonade_tone.lst
+       ${DOS33} __temp__.dsk LOAD "LEMONADE TONE.OBJ" $@
+       rm DOS_Tool_Kit_v1.0_1980_Apple.do __temp__.asm __temp__.dsk
+
 lemonade_tone.asm: bootable.dsk ../orig/Lemonade_Stand_1979_Apple.do
        rm -f ../linapple-pie/Printer.txt
-       tr '\n' '\r' <lemonade_tone.txt |\
+       tr '\n' '\r' <lemonade_tone_disasm.txt |\
 ( \
   cd ../linapple-pie && \
   ./linapple -b -1 ../lemonade/bootable.dsk -2 ../orig/Lemonade_Stand_1979_Apple.do \
 )
        tr -d '\r' <../linapple-pie/Printer.txt |\
-sed -nf lemonade_tone.sed >__temp__.asm
+sed -nf lemonade_tone_disasm.sed >__temp__.asm
        sed -ne 's/^\(l\.[0-9a-f]\+\).*/\1/p' <__temp__.asm >__defs__.txt
        sed -ne 's/^.\+\(l\.[0-9a-f]\+\).*/\1/p' <__temp__.asm >__refs__.txt
        for i in `cat __defs__.txt`; \
@@ -63,15 +85,35 @@ done
 ) >$@
        rm __temp__.asm __defs__.txt __refs__.txt
 
+lemonade_flash.obj: \
+lemonade_flash.asm \
+lemonade_flash_asm.txt \
+bootable.dsk \
+../orig/DOS_Tool_Kit_v1.0_1980_Apple.do
+       cp ../orig/DOS_Tool_Kit_v1.0_1980_Apple.do .
+       tr '\t\na-z' ' \rA-Z' <lemonade_flash.asm |\
+LC_ALL=C tr '\000-\177' '\200-\377' >__temp__.asm
+       ${MKDOS33FS} __temp__.dsk
+       ${DOS33} __temp__.dsk SAVE T __temp__.asm "LEMONADE FLASH.ASM"
+       rm -f ../linapple-pie/Printer.txt
+       tr '\n' '\r' <lemonade_flash_asm.txt |\
+( \
+  cd ../linapple-pie && \
+  ./linapple -b -1 ../lemonade/DOS_Tool_Kit_v1.0_1980_Apple.do -2 ../lemonade/__temp__.dsk \
+)
+       tr -d '\r' <../linapple-pie/Printer.txt >lemonade_flash.lst
+       ${DOS33} __temp__.dsk LOAD "LEMONADE FLASH.OBJ" $@
+       rm DOS_Tool_Kit_v1.0_1980_Apple.do __temp__.asm __temp__.dsk
+
 lemonade_flash.asm: bootable.dsk ../orig/Lemonade_Stand_1979_Apple.do
        rm -f ../linapple-pie/Printer.txt
-       tr '\n' '\r' <lemonade_flash.txt |\
+       tr '\n' '\r' <lemonade_flash_disasm.txt |\
 ( \
   cd ../linapple-pie && \
   ./linapple -b -1 ../lemonade/bootable.dsk -2 ../orig/Lemonade_Stand_1979_Apple.do \
 )
        tr -d '\r' <../linapple-pie/Printer.txt |\
-sed -nf lemonade_flash.sed >__temp__.asm
+sed -nf lemonade_flash_disasm.sed >__temp__.asm
        sed -ne 's/^\(l\.[0-9a-f]\+\).*/\1/p' <__temp__.asm >__defs__.txt
        sed -ne 's/^.\+\(l\.[0-9a-f]\+\).*/\1/p' <__temp__.asm >__refs__.txt
        for i in `cat __defs__.txt`; \
@@ -112,5 +154,6 @@ lemonade.tok \
 lemonade.bin \
 bootable.dsk \
 __temp__.asm \
+__temp__.dsk \
 __defs__.txt \
 __refs__.txt
index c7f63bd..3a9ff69 100644 (file)
@@ -1,25 +1,24 @@
---- lemonade.bas       2022-05-19 17:11:25.884056262 +1000
-+++ lemonade_patched.bas       2022-05-19 19:25:27.892057149 +1000
-@@ -1,15 +1,5 @@
+--- lemonade.bas       2022-05-20 00:21:16.340356477 +1000
++++ lemonade_patched.bas       2022-05-20 00:34:45.776389102 +1000
+@@ -1,5 +1,8 @@
  1LOMEM:14080
 -5GOSUB10000:GOSUB11000:GOSUB16000:GOTO135
--10REM  <<< LEMONADE STAND >>>
--15REM 
--20REM FROM AN ORIGINAL PROGRAM
--30REM  BY BOB JAMISON, OF THE
--40REM  MINNESOTA  EDUCATIONAL
--50REM   COMPUTING CONSORTIUM
--60REM         *  *  *
--70REM  MODIFIED FOR THE APPLE
--80REM      FEBRUARY, 1979
--90REM    BY CHARLIE KELLNER
-+5GOSUB10000:GOSUB11000:GOSUB16000
- 135DIMA(30),L(30),H(30),B(30),S(30),P(30),G(30)
- 150P9=10
- 160S3=.15
-@@ -207,37 +197,38 @@
- 10110POKE782,208:POKE783,245:POKE784,174:POKE785,0:POKE786,3:POKE787,76:POKE788,2:POKE789,3:POKE790,96:POKE791,0:POKE792,0
- 10190RETURN
++2PRINT CHR$(4);"BLOAD LEMONADE TONE.OBJ"
++3PRINT CHR$(4);"BLOAD LEMONADE FLASH.OBJ"
++4IN#0:PR#0
++5GOSUB11000
+ 10REM  <<< LEMONADE STAND >>>
+ 15REM 
+ 20REM FROM AN ORIGINAL PROGRAM
+@@ -201,43 +204,40 @@
+ 5060GOSUB18000
+ 5070REM 
+ 5090HOME:RETURN
+-10000REM  INITIALIZE
+-10010IN#0:PR#0
+-10100POKE770,173:POKE771,48:POKE772,192:POKE773,136:POKE774,208:POKE775,5:POKE776,206:POKE777,1:POKE778,3:POKE779,240:POKE780,9:POKE781,202
+-10110POKE782,208:POKE783,245:POKE784,174:POKE785,0:POKE786,3:POKE787,76:POKE788,2:POKE789,3:POKE790,96:POKE791,0:POKE792,0
+-10190RETURN
  11000REM  INTRODUCTION
 -11100TEXT:HOME:GR:COLOR=12:FORI=0TO39:HLIN0,39ATI:NEXT:VTAB2
 -11110PRINT";LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL;LLLLL";
  11500REM  DATA
  11510DATA96,180,128,60,114,60,128,120,144,60,152,60,128,255,128,60,114,60,85,120,96,60,102,60,114,120,102,60,96,255,0,0
 -11520DATA,,,,,,L;LL;,L;LL;,;;LL;;,L;LL;,L;;;;,,,;L;;;;,;L;LL;,;L;LL;,;L;LL;,;;;LL;,,,,,*
++11520DATA*
  11530DATA96,16,85,4,128,4,96,4,76,4,128,4,96,16,0,0
  11540DATA114,120,144,60,114,255,1,120,128,120,144,60,128,120,114,60,144,120,171,255,228,255,0,0
  11550DATA152,180,152,120,152,60,144,120,152,60,171,120,192,60,152,255,0,0
-@@ -266,8 +257,10 @@
- 13100HOME
- 13110PRINT"TO MANAGE YOUR LEMONADE STAND, YOU WILL "
- 13120PRINT"NEED TO MAKE THESE DECISIONS EVERY DAY: ":PRINT
--13130PRINT"1. HOW MANY GLASSES OF LEMONADE TO MAKE    (ONLY ONE BATCH IS MADE EACH MORNING)"
--13140PRINT"2. HOW MANY ADVERTISING SIGNS TO MAKE      (THE SIGNS COST FIFTEEN CENTS EACH)  "
-+13130PRINT"1. HOW MANY GLASSES OF LEMONADE TO MAKE "
-+13135PRINT"   (ONLY ONE BATCH IS MADE EACH MORNING)"
-+13140PRINT"2. HOW MANY ADVERTISING SIGNS TO MAKE   "
-+13145PRINT"   (THE SIGNS COST FIFTEEN CENTS EACH)  "
- 13150PRINT"3. WHAT PRICE TO CHARGE FOR EACH GLASS  ":PRINT
- 13160PRINT"YOU WILL BEGIN WITH $2.00 CASH (ASSETS)."
- 13170PRINT"BECAUSE YOUR MOTHER GAVE YOU SOME SUGAR,"
-@@ -327,8 +320,7 @@
- 15182IFSC=7THENHTAB15:PRINT" HOT AND DRY ";
- 15184IFSC=10THENHTAB17:PRINT" CLOUDY ";
- 15186IFSC=5THENHTAB14:PRINT" THUNDERSTORMS! ";:GOSUB17000
--15200RESTORE
--15210READA$:IFA$<>"*"THEN15210
-+15200RESTORE11530
- 15220IFSC<>2THEN15300
- 15230READI,J:IFJ=0THEN15500
- 15240FORK=1TOJ:POKE768,I:POKE769,10:CALL770
+@@ -345,20 +345,6 @@
+ 15440IFSC=5THENGOSUB17000
+ 15500IFSC=5THENGOSUB17000
+ 15510I=FRE(0):FORI=1TO2000:NEXT:RETURN
+-16000POKE13824,76:POKE13825,108:POKE13826,54:POKE13827,165:POKE13828,48:POKE13829,41:POKE13830,15:POKE13831,141:POKE13832,160:POKE13833,54:
+-16010POKE13834,165:POKE13835,48:POKE13836,41:POKE13837,240:POKE13838,141:POKE13839,161:POKE13840,54:POKE13841,165:POKE13842,36:POKE13843,141:
+-16020POKE13844,162:POKE13845,54:POKE13846,165:POKE13847,37:POKE13848,141:POKE13849,163:POKE13850,54:POKE13851,169:POKE13852,0:POKE13853,133:
+-16030POKE13854,36:POKE13855,133:POKE13856,37:POKE13857,72:POKE13858,32:POKE13859,193:POKE13860,251:POKE13861,133:POKE13862,40:POKE13863,164:
+-16040POKE13864,36:POKE13865,177:POKE13866,40:POKE13867,41:POKE13868,15:POKE13869,205:POKE13870,164:POKE13871,54:POKE13872,208:POKE13873,10:
+-16050POKE13874,177:POKE13875,40:POKE13876,41:POKE13877,240:POKE13878,24:POKE13879,109:POKE13880,160:POKE13881,54:POKE13882,145:POKE13883,40:
+-16060POKE13884,177:POKE13885,40:POKE13886,41:POKE13887,240:POKE13888,205:POKE13889,165:POKE13890,54:POKE13891,208:POKE13892,10:POKE13893,177:
+-16070POKE13894,40:POKE13895,41:POKE13896,15:POKE13897,24:POKE13898,109:POKE13899,161:POKE13900,54:POKE13901,145:POKE13902,40:POKE13903,200:
+-16080POKE13904,192:POKE13905,40:POKE13906,144:POKE13907,213:POKE13908,160:POKE13909,0:POKE13910,104:POKE13911,105:POKE13912,0:POKE13913,197:
+-16090POKE13914,34:POKE13915,144:POKE13916,196:POKE13917,32:POKE13918,193:POKE13919,251:POKE13920,133:POKE13921,40:POKE13922,173:POKE13923,162:
+-16100POKE13924,48:POKE13925,133:POKE13926,36:POKE13927,173:POKE13928,163:POKE13929,54:POKE13930,133:POKE13931,37:POKE13932,165:POKE13933,48:
+-16110POKE13934,41:POKE13935,15:POKE13936,141:POKE13937,164:POKE13938,54:POKE13939,165:POKE13940,48:POKE13941,41:POKE13942,240:POKE13943,141:
+-16120POKE13944,165:POKE13945,54:POKE13946,96:POKE13947,0:
+-16130RETURN
+ 17000IFSC<>5THENRETURN
+ 17001COLOR=10:VLIN7,9AT29:HLIN30,31AT9:VLIN9,14AT32:HLIN33,34AT14:VLIN14,25AT35
+ 17005VLIN5,8AT8:PLOT9,8:VLIN8,13AT10:PLOT11,13:VLIN13,17AT12
diff --git a/lemonade/lemonade_flash_asm.txt b/lemonade/lemonade_flash_asm.txt
new file mode 100644 (file)
index 0000000..a0c43bf
--- /dev/null
@@ -0,0 +1,5 @@
+BRUN EDASM.OBJ
+PR#1
+DR 2
+ASM LEMONADE FLASH.ASM,LEMONADE FLASH.OBJ
+
similarity index 98%
rename from lemonade/lemonade_flash.txt
rename to lemonade/lemonade_flash_disasm.txt
index 297e2bc..4d827f2 100644 (file)
@@ -3,4 +3,3 @@ GOSUB 16000
 PR#1
 CALL -151
 3600LLL
-
diff --git a/lemonade/lemonade_tone_asm.txt b/lemonade/lemonade_tone_asm.txt
new file mode 100644 (file)
index 0000000..7b4f5b4
--- /dev/null
@@ -0,0 +1,5 @@
+BRUN EDASM.OBJ
+PR#1
+DR 2
+ASM LEMONADE TONE.ASM,LEMONADE TONE.OBJ
+
similarity index 98%
rename from lemonade/lemonade_tone.txt
rename to lemonade/lemonade_tone_disasm.txt
index 3994c58..8d933e6 100644 (file)
@@ -3,4 +3,3 @@ GOSUB 10100
 PR#1
 CALL -151
 302L
-
index 2eca102..b01aae8 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 2eca1028bc98814b1930902f1c5553a907b5ae22
+Subproject commit b01aae8671a0fa5f951445c3088e64ec9c2bd728
index ecdbc4c..369525e 100644 (file)
@@ -1,12 +1,17 @@
 .PHONY: all
 all: \
 Apple_DOS_v3.3_1980_Apple.do \
+DOS_Tool_Kit_v1.0_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/$@
 
+DOS_Tool_Kit_v1.0_1980_Apple.do:
+       rm -f $@
+       wget https://archive.org/download/a2_DOS_Tool_Kit_v1.0_1980_Apple/$@
+
 Lemonade_Stand_1979_Apple.do:
        rm -f $@
        wget https://archive.org/download/Lemonade_Stand_1979_Apple/$@
@@ -16,4 +21,5 @@ clean:
        # they can be deleted manually if needed
        #rm -f \
 #Apple_DOS_v3.3_1980_Apple.do \
+#DOS_Tool_Kit_v1.0_1980_Apple.do \
 #Lemonade_Stand_1979_Apple.do