changeset 177:3770e86114aa

TL/1 fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 15 Apr 2019 04:27:18 +0900
parents 6ef317714ae8
children 4d83154d2a78
files TL1/TL1os9.asm TL1/Todo TL1/test/t4.tl1
diffstat 3 files changed, 41 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/TL1/TL1os9.asm	Mon Apr 15 00:25:58 2019 +0900
+++ b/TL1/TL1os9.asm	Mon Apr 15 04:27:18 2019 +0900
@@ -499,7 +499,15 @@
        FDB $2603
        BSR SLAOUT 
        LBSR STAT
-       BRA PLUOUT 
+       LDA SY
+       CMPA #$67   ELSE
+       BNE PLUOUT
+       BSR SLAOUT         lbra then
+       BSR PEROUT      
+       BSR PLUOUT      else:
+       LBSR WORD
+       LBSR STAT
+       BRA PLUOUT      then:
 SLAOUT LBRA PSHJMP
 PEROUT LBRA STCHG
 ***
@@ -526,7 +534,7 @@
        BSR PLUOUT
        PULS B
        LDA SY
-       CMPA #$67
+       CMPA #$67     ELSE
        BNE S10A
        PSHS B 
        LBSR WORD
@@ -901,12 +909,12 @@
        BCC RTE
        PSHS A
        LBSR WORD 
-       ASR AEXPR 
+       BSR AEXPR 
        LDA #$80 
        BSR AOPER 
        PULS A
        LBSR PUTHS
-       FCB 6
+       FCB 6                      b?? *+3 ; clra ; bra *+2 ; lda #$ff
        FCB $3,$4F,$20,$02,$86,$FF
        BRA RE1
 ** ADDING OPERATFR
@@ -1194,7 +1202,9 @@
 aradr1 LBSR PUTAB
        LBSR PUTHS
        FCB  4,$1f,$30,$35,$40
-       RTS
+       LBSR WORD
+       LDA  #$3B    ')'
+       LBRA CHECK
 
 * FUNCTION NOT ASL ET AL
 TM7    CMPA #$40
@@ -1232,12 +1242,17 @@
        BSR SUBS1
        LDA #$3B    ')'
        PSHS A
-       LBSR WORD
-       clrb
+       LDA  SY
        CMPA #$5
-       BNE  SUBS2
-       incb        b==1 array
+       BNE  DSUB1
+       leas 1,s
+       ldb #1        b==1 array
        RTS
+DSUB1  LBSR EXPR
+       puls a
+       lbsr CHECK
+       clrb
+       rts
 
 **   f(x,y)
 DSUBSC LDA #$3C    ','
@@ -1417,11 +1432,12 @@
 **
 * STACK TOP CHANGE
 **
-STCHG  LDD 2,S
-       LDX 4,S
-       STD 4,S
-       STX 2,S
-       RTS
+STCHG  PSHS U,Y
+       LDU SP
+       PULU X,Y
+       STX ,--U
+       STY ,--U
+       PULS U,Y,PC
 **
 * PUTHSL output with address calculation
 *   only working on 3 byte 16/17 (LBRA/LBSR)
@@ -1693,9 +1709,9 @@
        FCB $72,-'R'
        FCC "EAD"
        FCB $A2,-'S'
-       FCC "SEEK"
+       FCC "EEK"
        FCB $A3,-'S'
-       FCC "SEEKR"
+       FCC "EEKR"
        FCB $A4,-'P'
        FCC "OSITION"
        FCB $A5,-'O'
--- a/TL1/Todo	Mon Apr 15 00:25:58 2019 +0900
+++ b/TL1/Todo	Mon Apr 15 04:27:18 2019 +0900
@@ -1,6 +1,8 @@
 Mon Apr 15 00:18:30 JST 2019
 
     8bit/16bit offset
+    -1
+    expression as statement
 
 Sun Jan 13 17:22:51 JST 2019
 
--- a/TL1/test/t4.tl1	Mon Apr 15 00:25:58 2019 +0900
+++ b/TL1/test/t4.tl1	Mon Apr 15 04:27:18 2019 +0900
@@ -24,20 +24,20 @@
 ARRAY BEND
 BEGIN
   VAL := SEEK(DICT,TEND)
-  POSITION(BUF,BEND)
+  D:=POSITION(BUF,BEND)
   WHILE VAL#0 DO [
-     C:=SEEKR(BUF,-1)
-     K:=SEEKR(DICT,-1)
+     C:=SEEKR(BUF,0-1)
+     K:=SEEKR(DICT,0-1)
      IF K.LT.0 THEN [
-       IF C=-K THEN
+       IF C=0-K THEN
           RETURN VAL    % FOUND
-       VAL := SEEKR(DICT,-1)
+       VAL := SEEKR(DICT,0-1)
      ] ELSE IF C#K THEN [
        D:=SEEK(BUF,BEND)
        REPEAT
-          K:=SEEKR(DICT,-1)
+          K:=SEEKR(DICT,0-1)
        UNTIL K.LT.0
-       VAL := SEEKR(DICT,-1)
+       VAL := SEEKR(DICT,0-1)
      ]
   ]
   RETURN VAL % NOT FOUND