kervinck / gigatron-rom

System, apps and tooling for the Gigatron TTL microcomputer
BSD 2-Clause "Simplified" License
229 stars 79 forks source link

Fix MSBASIC SAVE (to Babelfish) command. #252

Closed lb3361 closed 9 months ago

lb3361 commented 9 months ago

This patch seems to fix https://forum.gigatron.io/viewtopic.php?p=4100#p4100. See https://forum.gigatron.io/viewtopic.php?p=4100#p4100 for details. Here is an easier view of the changes

$ diff -u MSBASIC_v1.gcl MSBASIC.gcl
--- MSBASIC_v1.gcl  2023-11-12 17:44:05
+++ MSBASIC.gcl 2023-11-12 21:15:04
@@ -1181,9 +1181,11 @@
                 #_PHA_
                 #_LDYIM_ #0             {Print message}
 _save1=*        #_LDAAY_ ##_SaveMsg
+                #_BEQ_   #@_save2
                 #_INY_
                 #_JSR_   ##_CHROUT
                 #_BNE_   #@_save1
+_save2=*
                 #_LDAIM_ #<\Buffer      {Serial out buffer}
                 #_LDYIM_ #>\Buffer
                 #_STAZ_  #<i
@@ -1218,7 +1220,7 @@
 +-----------------------------------------------------------------------}
 *=$3100

-_SaveChar=$30fe                 {vCPU adds 2 and wraps to $3000}
+_SaveChar=$31fe                 {vCPU adds 2 and wraps to $3100}
 [do
   {
     Alternative "MainLoop" for when we're in SAVE. This catches the LIST
@@ -1258,9 +1260,11 @@

 _LOAD=*         #_LDYIM_ #0             {Print message}
 _load1=*        #_LDAAY_ ##_LoadMsg
+                #_BEQ_   #@_load2
                 #_INY_
                 #_JSR_   ##_CHROUT
                 #_BNE_   #@_load1
+_load2=*
                 #_JMP_   ##_STOP

 _LoadMsg=*      #13 `USE`BABELFISH`TO`LOAD #0
at67 commented 9 months ago

Good find!