changeset 91:1de7b2760b9d

fix basic
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 22 Aug 2018 15:02:28 +0900
parents ec33be78865e
children faa3bd1d062a
files src/os9/level2/cmds/fixbasic.pl src/os9/level2/cmds/sbc09.asm
diffstat 2 files changed, 37 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/os9/level2/cmds/fixbasic.pl	Tue Aug 21 17:54:26 2018 +0900
+++ b/src/os9/level2/cmds/fixbasic.pl	Wed Aug 22 15:02:28 2018 +0900
@@ -4,6 +4,15 @@
 while(<>) {
     next if (/^ACIA/ .. /^TDRE/) ;
     next if (/^TSTBRK/ .. /^        END/) ;
+    if (/^CLEAR/) {
+print <<"EOFEOF"
+       JSR	\$24  ;; echo off (but it is not suuported on pty.asm )
+EOFEOF
+    }
+    if (/^GL02/) {
+        print "GL02\n";      # do not echo input
+        next;
+    }
     print;
 }
 
--- a/src/os9/level2/cmds/sbc09.asm	Tue Aug 21 17:54:26 2018 +0900
+++ b/src/os9/level2/cmds/sbc09.asm	Wed Aug 22 15:02:28 2018 +0900
@@ -32,6 +32,7 @@
 chksum   rmb   1
 bcount   rmb   1
 adr      rmb   2
+work     rmb   2
 readbuff rmb   $100
          org   $400
 emstart  rmb   $e000-.
@@ -43,6 +44,7 @@
 start    
          clr   <stdin
          stx   <parmptr         save parameter pointer
+         stu   <work            save parameter pointer
          lda   #READ.           read access mode
          os9   I$Open           open file
          bcs   L0049            branch if error
@@ -82,7 +84,7 @@
          adca  ,s
          std   ,u++
          cmpx  2,s
-         bne   l1
+         ble   l1
          puls  x,y
          jmp   $400
  
@@ -90,18 +92,19 @@
          os9   F$Exit
 
 iotbl
-         fdb   getchar-iotbl
-         fdb   putchar-iotbl
-         fdb   getline-iotbl
-         fdb   putline-iotbl
-         fdb   putcr-iotbl  
-         fdb   getpoll-iotbl
-         fdb   xopenin-iotbl
-         fdb   xopenout-iotbl
-         fdb   xabortin-iotbl
-         fdb   xclosein-iotbl
-         fdb   xcloseout-iotbl
-         fdb   delay-iotbl
+         fdb   getchar-iotbl            ; 0
+         fdb   putchar-iotbl            ; 3
+         fdb   getline-iotbl            ; 6
+         fdb   putline-iotbl            ; 9
+         fdb   putcr-iotbl              ; $C
+         fdb   getpoll-iotbl            ; $F
+         fdb   xopenin-iotbl            ; $12
+         fdb   xopenout-iotbl           ; $15
+         fdb   xabortin-iotbl           ; $18
+         fdb   xclosein-iotbl           ; $1B
+         fdb   xcloseout-iotbl          ; $21
+         fdb   delay-iotbl              ; $24
+         fdb   noecho-iotbl             ; $27
 iotblend
 
 L0049
@@ -235,6 +238,18 @@
 xcloseout
         RTS
 
+noecho  LDA         <stdin
+        CLRB
+        LDX         <work
+        leax        readbuff,X
+        OS9         I$GetStt
+        bcs         err2
+        CLR         IT.EKO,X
+        CLRB         
+        OS9         I$SetStt
+err2
+        RTS
+
 delay   PSHS        D,X  * address **$21** 
                          * On input the D register contains the number of timer 
                          * ticks to wait. Each timer tick is 20ms