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
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`; \
) >$@
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`; \
lemonade.bin \
bootable.dsk \
__temp__.asm \
+__temp__.dsk \
__defs__.txt \
__refs__.txt
---- 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