Tuning ribbit slightly
authorNick Downing <nick@ndcode.org>
Wed, 25 May 2022 08:13:39 +0000 (18:13 +1000)
committerNick Downing <nick@ndcode.org>
Wed, 25 May 2022 08:13:39 +0000 (18:13 +1000)
apple_io.py
hrcg/emu_65c02.c
hrcg/terminal.asm
orig/Makefile
ribbit/ribbit.bas.patch

index 23d4955..bfd77ef 100644 (file)
@@ -357,9 +357,6 @@ def _print(data):
         low_mem[ZP_CH] += 1
         if low_mem[ZP_CH] >= low_mem[ZP_WNDLFT] + low_mem[ZP_WNDWTH]:
           crlf()
-
-        if current_speed < 255:
-          time.sleep((255 - current_speed) / 2550.) # up to .1s
       elif hrcg:
         write(ch)
         if ord(ch) == 1: # ctrl-a
@@ -371,6 +368,9 @@ def _print(data):
     else:
       assert False
 
+    if current_speed < 255:
+      time.sleep(5.12 / (current_speed + 1))
+
 def get_internal():
   global ch_in
 
index 83b2157..821c93e 100644 (file)
@@ -236,7 +236,7 @@ uint8_t mem_read(uint16_t addr, bool isDbg) {
     }
   case STDIN_STATUS:
     {
-      struct pollfd fd = {STDIN_FILENO, POLLIN, 0};
+      struct pollfd fd = {STDIN_FILENO, POLLIN | POLLPRI, 0};
       if (poll(&fd, 1, 0) == -1) {
         perror("poll()");
         exit(EXIT_FAILURE);
index 2037eeb..6e2e394 100644 (file)
@@ -11,6 +11,7 @@ num   equ     $ff
 linebuf        equ     $200
 chario equ     $3ea
 hrcg   equ     $8dff
+hrcgent        equ     hrcg+3                  avoids banner
 extfont        equ     hrcg+7
 font   equ     hrcg-$600               hard coded 2 sets
 kbd    equ     $c000
@@ -43,7 +44,7 @@ cout  equ     $fded
        sta     extfont
        lda     #<font
        sta     extfont+1
-       jsr     hrcg
+       jsr     hrcgent
        lda     #$d                     cr
        sta     prevch
        ldx     #0
index c245815..75fb7b6 100644 (file)
@@ -25,7 +25,9 @@ Lemonade_Stand_1979_Apple.do:
        wget https://archive.org/download/Lemonade_Stand_1979_Apple/$@
 
 apple2.rom: apple_ii+_rom.zip
+       rm -f $@
        unzip -L $< $@
+       touch $@
 
 apple_ii+_rom.zip:
        rm -f $@
index c636332..e50b107 100644 (file)
@@ -1,5 +1,5 @@
---- ribbit.bas 2022-05-25 17:23:30.448202796 +1000
-+++ ribbit_patched.bas 2022-05-25 17:29:46.852217967 +1000
+--- ribbit.bas 2022-05-25 17:46:21.340258050 +1000
++++ ribbit_patched.bas 2022-05-25 18:05:19.116303909 +1000
 @@ -1,6 +1,7 @@
  10GOTO10000:REM INITIALIZE
  20GOSUB900:GOTO1000
@@ -8,18 +8,30 @@
  120BC=NOTBC:IFBCTHENVTABBY:HTABBX:PRINTBUG$((BD<0),2):RETURN
  130IFBX>1ANDBX<38THEN150
  140VTABBY:HTABBX:PRINTBUG$(0,0):BY=INT(RND(1)*8)*2+3:BX=(RND(1)<.5)*37+1:BD=1-(BX>20)*2:BS=BS+1:GOSUB2000
-@@ -37,7 +38,7 @@
- 850PRINT" RIB*BIT ";:RETURN
- 900REM TURN AROUND
- 910VTABFY:HTABFX:PRINTFROG$(FD,1);:GOSUB100:RETURN
--1000FORI=1TO100:NEXT:REM MAIN LOOP
-+1000REM MAIN LOOP
- 1010FORI=1TORND(1)*400+100:GOSUB100
- 1020P0=PDL(0):IFP0<80ANDFDTHENFD=0:GOSUB900
- 1030IFP0>160ANDNOTFDTHENFD=1:GOSUB900
-@@ -139,8 +140,8 @@
+@@ -52,14 +53,14 @@
+ 1130VTABFY:HTABFX:PRINTFROG$(FD,1);:RETURN
+ 1200REM RIBBIT LEFT
+ 1210VTABFY+2:HTABFX:PRINTFROG$(0,2);
+-1220FORI=1TO5:HTABFX-I-1:PRINTRBT$(0,I);:POKEPT,32-I-I:POKEDR,3:CALLTN:NEXT
+-1230FORI=5TO0STEP-1:HTABFX-I-1:PRINTRBT$(0,I);:POKEPT,10+I+I:POKEDR,3:CALLTN:NEXT
++1220FORI=1TO5:HTABFX-I-1:PRINTRBT$(0,I);:POKEPT,32-I-I:POKEDR,3:CALLTN:FORJ=1TO10:NEXT:NEXT
++1230FORI=5TO0STEP-1:HTABFX-I-1:PRINTRBT$(0,I);:POKEPT,10+I+I:POKEDR,3:CALLTN:FORJ=1TO10:NEXT:NEXT
+ 1240IF(FY=BY-1ORFY=BY-2)ANDFX>BX+2ANDFX<BX+9THENVTABBY:HTABBX:PRINTBUG$(0,0):BC=1:BX=1:FS=FS+1:GOSUB2000:GOSUB800
+ 1250RETURN
+ 1300REM RIBBIT RIGHT
+ 1310VTABFY+2:HTABFX+4:PRINTFROG$(1,2);
+-1320FORI=1TO5:HTABFX+5:PRINTRBT$(1,I);:POKEPT,32-I-I:POKEDR,3:CALLTN:NEXT
+-1330FORI=5TO0STEP-1:HTABFX+5:PRINTRBT$(1,I);:POKEPT,10+I+I:POKEDR,3:CALLTN:NEXT
++1320FORI=1TO5:HTABFX+5:PRINTRBT$(1,I);:POKEPT,32-I-I:POKEDR,3:CALLTN:FORJ=1TO10:NEXT:NEXT
++1330FORI=5TO0STEP-1:HTABFX+5:PRINTRBT$(1,I);:POKEPT,10+I+I:POKEDR,3:CALLTN:FORJ=1TO10:NEXT:NEXT
+ 1340IF(FY=BY-1ORFY=BY-2)ANDFX>BX-12ANDFX<BX-5THENVTABBY:HTABBX:PRINTBUG$(0,0):BC=1:BX=1:FS=FS+1:GOSUB2000:GOSUB800
+ 1350RETURN
+ 2000REM SCORE
+@@ -138,9 +139,10 @@
+ 20100PRINTIB$;IC$;IP$;"\13HI!  \13WELCOME TO...\v"
  20110VTAB10:PRINT"\13DO YOU KNOW HOW TO PLAY THIS GAME?\v"
  20120PRINTIA$;IT$;:VTAB1:HTAB1:PRINT"   ";
++20130FORI=1TO100:NEXT:REM TIME FOR TERMINAL TO CATCH UP
  20200FY=1:FORFX=2TO32STEP2
 -20210VTABFY:HTABFX:PRINTFROG$(1,3):FORI=1TO20:NEXT
 -20220VTABFY:HTABFX+1:PRINTFROG$(1,4):FORI=1TO20:NEXT
  20230VTABFY:HTABFX+2:PRINTFROG$(1,1)
  20240FORI=1TO100:NEXT:NEXT
  20250FORI=1TO1000:NEXT:VTABFY:HTABFX:PRINTIP$;FROG$(0,1)
+@@ -160,6 +162,7 @@
+ 20410FX=FX-1:VTABFY:HTABFX:PRINTFROG$(0,3);
+ 20420I=FY:FORFY=ITO18
+ 20430FX=FX-1:VTABFY:HTABFX:PRINTFROG$(0,4);
++20435FORI=1TO100:NEXT
+ 20440NEXT:VTABFY:HTABFX:PRINTFROG$(0,1);
+ 20450FORI=1TO500:NEXT
+ 20460VTABFY:HTABFX:PRINTFROG$(1,1);