# HG changeset patch # User Shinji KONO # Date 1555270038 -32400 # Node ID 3770e86114aa0028ec113f6de9c72dd6f08218af # Parent 6ef317714ae87bd9c71f19372abf2cbfe6a19bb3 TL/1 fix diff -r 6ef317714ae8 -r 3770e86114aa TL1/TL1os9.asm --- 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' diff -r 6ef317714ae8 -r 3770e86114aa TL1/Todo --- 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 diff -r 6ef317714ae8 -r 3770e86114aa TL1/test/t4.tl1 --- 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