Calibrate FOR/NEXT delay loops, change delay loops to CALLRE in patched version
authorNick Downing <nick@ndcode.org>
Sat, 21 May 2022 08:33:29 +0000 (18:33 +1000)
committerNick Downing <nick@ndcode.org>
Sun, 22 May 2022 00:21:37 +0000 (10:21 +1000)
apple_io.py
lemonade/lemonade.bas.patch
test/applesoft_delay.bas [new file with mode: 0644]
test/test.sh

index 307abe5..16d47da 100755 (executable)
@@ -465,7 +465,7 @@ def gr_update(x0, y0, x1, y1):
         br = new_br
       write(ch * 2)
   write('\x1b[u\x1b[0m') # restore cursor and attrs
-  time.sleep(.05)
+  #time.sleep(.05)
 
 def color(n):
   global gr_color
index 67c23c0..57cd2cc 100644 (file)
@@ -1,5 +1,5 @@
 --- lemonade.bas       2022-05-20 00:21:16.340356477 +1000
-+++ lemonade_patched.bas       2022-05-21 04:04:49.777205493 +1000
++++ lemonade_patched.bas       2022-05-21 18:30:34.828099790 +1000
 @@ -1,5 +1,8 @@
 -1LOMEM:14080
 -5GOSUB10000:GOSUB11000:GOSUB16000:GOTO135
 +11220HLIN23,26AT24:HLIN23,26AT25:VLIN24,33AT23:VLIN24,33AT26:REM n
 +11230VLIN20,33AT31:HLIN28,31AT24:HLIN28,31AT25:VLIN24,33AT28:HLIN28,31AT32:HLIN28,31AT33:REM d
  11280VTAB23:PRINT"  COPYRIGHT 1979    APPLE COMPUTER INC."
- 11300GOSUB11700:FORI=1TO2000:NEXT
+-11300GOSUB11700:FORI=1TO2000:NEXT
 -11310POKE33,1:POKE34,9:POKE35,19
++11300GOSUB11700:GOSUB 20020:REM 1.5s
  11320FORI=39TO7STEP-1:COLOR=15:VLIN18,37ATI:COLOR=12:IFI<39THENVLIN18,36ATI+1
  11330COLOR=15:IFI<30THENVLIN18,36ATI+10
 -11340COLOR=12:IFI<29THENVLIN18,37ATI+11:POKE32,I+11:VTAB11:HTABI+12:PRINT:READA$:PRINTA$;
-+11340COLOR=12:IFI<29THENVLIN18,37ATI+11:COLOR=11:ONI-6GOSUB 11490,11490,11490,11490,11496,11495,11495,11495,11494,11490,11490,11493,11491,11492,11491,11491,11490,11490,11490,11490,11490,11490
- 11350FORJ=14TOI+I:NEXT:NEXT:FORI=1TO1000:NEXT
+-11350FORJ=14TOI+I:NEXT:NEXT:FORI=1TO1000:NEXT
 -11360COLOR=13:VLIN14,36AT12:FORI=36TO20STEP-1:HLIN8,16ATI
 -11370FORJ=1TO50:NEXT:POKE768,I*3-12:POKE769,12:CALL770:NEXT:COLOR=12:VLIN14,19AT12
 -11400POKE32,0:POKE33,40:POKE34,20:POKE35,23:VTAB22
+-11410FORI=1TO4000:NEXT:I=FRE(0)
++11340COLOR=12:IFI<29THENVLIN18,37ATI+11:COLOR=11:ONI-6GOSUB 11490,11490,11490,11490,11496,11495,11495,11495,11494,11490,11490,11493,11491,11492,11491,11491,11490,11490,11490,11490,11490,11490
++11350POKEDL,175:POKEDH,247:CALLRE:NEXT:GOSUB 20030:REM .05s (was: .0093 to .060s), .75s
 +11360COLOR=13:VLIN14,36AT12:POKEDH,251:FORI=36TO20STEP-1:HLIN8,16ATI
 +11370READJ,K,L:POKEDL,J:POKEFL,K:POKEFH,L:CALLTN:POKEDL,2:CALLRE:NEXT:COLOR=12:VLIN14,19AT12
- 11410FORI=1TO4000:NEXT:I=FRE(0)
++11410GOSUB 20010:I=FRE(0):REM 3s (was: 3.70s)
  11490RETURN
 -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
  15160IFSC=7THENCOLOR=9
  15162HLIN3,5AT1:HLIN2,6AT2:FORI=3TO6:HLIN1,7ATI:NEXT:HLIN2,6AT7:HLIN3,5AT8
  15170VTAB22:HTAB8:PRINT" LEMONSVILLE WEATHER REPORT ":PRINT
-@@ -327,49 +324,66 @@
+@@ -327,54 +324,74 @@
  15182IFSC=7THENHTAB15:PRINT" HOT AND DRY ";
  15184IFSC=10THENHTAB17:PRINT" CLOUDY ";
  15186IFSC=5THENHTAB14:PRINT" THUNDERSTORMS! ";:GOSUB17000
 -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
-+15200ONSCGOSUB15230,15400,15230,15230,16000,15230,15600,15230,15230,15800
++15200ONSCGOSUB15480,15400,15480,15480,16000,15480,15600,15480,15480,15800
 +15210GOSUB17000
-+15220I=FRE(0):FORI=1TO2000:NEXT
-+15230RETURN
++15220I=FRE(0):GOTO20020:REM 1.5s
 +15400REM  SUNNY MUSIC
 +15410FORI=1TO16:POKEDL,5:POKEDH,252:POKEFL,79:POKEFH,6:CALLTN:POKEDL,213:POKEDH,255:CALLRE:NEXT
 +15420FORI=1TO4:POKEDL,5:POKEDH,252:POKEFL,22:POKEFH,7:CALLTN:POKEDL,213:POKEDH,255:CALLRE:NEXT
  17090RETURN
  18000VTAB24:PRINT" PRESS SPACE TO CONTINUE, ESC TO END...";
  18010GETIN$:IFIN$<>" "ANDASC(IN$)<>27THEN18010
+ 18020IFASC(IN$)=27THEN31111
+ 18030RETURN
++20000REM 3s, 1.5s, .75s delays (were: 3.70s, 1.85s, .93s)
++20010GOSUB 20020
++20020GOSUB 20030
++20030POKEDL,61:POKEDH,131:CALLRE:RETURN
+ 31111FORI=1TO2000:NEXT:HOME:VTAB10:PRINT"WOULD YOU LIKE TO PLAY AGAIN ";
+ 31112GETIN$:IFIN$="Y"THEN150
+ 31113IFPEEK(994)+PEEK(1001)=192THENCALL976
diff --git a/test/applesoft_delay.bas b/test/applesoft_delay.bas
new file mode 100644 (file)
index 0000000..049f454
--- /dev/null
@@ -0,0 +1,54 @@
+10PRINTCHR$(4);"BLOAD LEMONADE TONE NICK.OBJ"
+20RE=768
+30TN=776
+40DL=777
+50DH=779
+60FL=781
+70FH=788
+80GETI$
+90ONVAL(I$)+1GOSUB10000,11000
+100GOTO80
+10000POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+10001POKEDL,211:POKEDH,172:CALLRE
+10002POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+10003POKEDL,211:POKEDH,172:CALLRE
+10004POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+10005POKEDL,211:POKEDH,172:CALLRE
+10006POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+10007POKEDL,211:POKEDH,172:CALLRE
+10008POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+10009POKEDL,211:POKEDH,172:CALLRE
+10010POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+10011POKEDL,211:POKEDH,172:CALLRE
+10012POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+10013POKEDL,211:POKEDH,172:CALLRE
+10014POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+10015POKEDL,211:POKEDH,172:CALLRE
+10016POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+10017POKEDL,211:POKEDH,172:CALLRE
+10018POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+10019POKEDL,211:POKEDH,172:CALLRE
+10020POKEDL,10:POKEDH,173:POKEFL,78:POKEFH,5:CALLTN
+10021RETURN
+11000POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+11001FOR I=1 TO 540:NEXT
+11002POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+11003FOR I=1 TO 540:NEXT
+11004POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+11005FOR I=1 TO 540:NEXT
+11006POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+11007FOR I=1 TO 540:NEXT
+11008POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+11009FOR I=1 TO 540:NEXT
+11010POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+11011FOR I=1 TO 540:NEXT
+11012POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+11013FOR I=1 TO 540:NEXT
+11014POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+11015FOR I=1 TO 540:NEXT
+11016POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+11017FOR I=1 TO 540:NEXT
+11018POKEDL,65:POKEDH,173:POKEFL,163:POKEFH,10:CALLTN
+11019FOR I=1 TO 540:NEXT
+11020POKEDL,10:POKEDH,173:POKEFL,78:POKEFH,5:CALLTN
+11021RETURN
index 83e871a..0564031 100755 (executable)
@@ -1,7 +1,14 @@
 #!/bin/sh
+
 cp ../lemonade/bootable.dsk .
 ../dos33fsprogs/utils/dos33fs-utils/dos33 bootable.dsk SAVE B ../lemonade/lemonade_tone_nick.obj "LEMONADE TONE NICK.OBJ"
+
 ./lemonade_music.py |sed -ne '/^10PRINT/,$p' >lemonade_music.bas
+
 ../bas_to_tok.py <lemonade_music.bas >lemonade_music.tok
 ../tok_to_bin.py <lemonade_music.tok >lemonade_music.bin
 ../dos33fsprogs/utils/dos33fs-utils/dos33 bootable.dsk SAVE A lemonade_music.bin "LEMONADE MUSIC"
+
+../bas_to_tok.py <applesoft_delay.bas >applesoft_delay.tok
+../tok_to_bin.py <applesoft_delay.tok >applesoft_delay.bin
+../dos33fsprogs/utils/dos33fs-utils/dos33 bootable.dsk SAVE A applesoft_delay.bin "APPLESOFT DELAY"