# HG changeset patch # User Shinji KONO # Date 1555255558 -32400 # Node ID 6ef317714ae87bd9c71f19372abf2cbfe6a19bb3 # Parent c83545730d6c9ca7190dfff55d5a48341c64068a mopen in TL/1 diff -r c83545730d6c -r 6ef317714ae8 TL1/TL1os9.asm --- a/TL1/TL1os9.asm Sun Apr 14 17:17:34 2019 +0900 +++ b/TL1/TL1os9.asm Mon Apr 15 00:25:58 2019 +0900 @@ -595,7 +595,7 @@ FDB SPACEA RTS ** -WR4 CMPA #$A9 +WR4 CMPA #$69 BNE WR5 LBSR SUBSC LBSR PUTHSL @@ -1114,7 +1114,7 @@ BNE TM61 LBSR SUBSC LBSR PUTHSL - FCB $0317 + FDB $0317 FDB RND RTS * FUNTION GET @@ -1125,7 +1125,7 @@ FDB $0297 FCB INDN LBSR PUTHSL - FCB $0317 + FDB $0317 FDB getchar RTS * FUNCTION READ etc @@ -1136,46 +1136,67 @@ FDB $0297 FDB INDN LBSR PUTHSL - FCB $038D + FDB $0317 FDB GETDA RTS TM63 CMPA #$A2 seek BNE TM64 - LBSR SUBSC - LBSR PUTHSL - FCB $0317 + LBSR DSUBSA + tstb + beq tmm0 + bsr aradr +tmm0 LBSR PUTHSL + FDB $0317 FDB NONE RTS TM64 CMPA #$A3 seekr BNE TM65 - LBSR SUBSC + LBSR DSUBSC LBSR PUTHSL - FCB $0317 + FDB $0317 FDB NONE RTS TM65 CMPA #$A4 position BNE TM66 - LBSR SUBSC - LBSR PUTHSL - FCB $0317 + LBSR DSUBSA + tstb + beq tmm1 + bsr aradr +tmm1 LBSR PUTHSL + FDB $0317 FDB NONE RTS TM66 CMPA #$A5 open BNE TM67 - LBSR SUBSC + LBSR DSUBSC LBSR PUTHSL - FCB $0317 + FDB $0317 FDB NONE RTS TM67 CMPA #$A6 openm BNE TM7 - LBSR SUBSC - LBSR PUTHSL - FCB $0317 + LBSR DSUBSA + tstb + beq tmm2 + bsr aradr +tmm2 LBSR PUTHSL + FDB $0317 FDB NONE RTS +* ; pshs u; leau ?,[xy] ; tfr u,d ; puls u +aradr LBSR PUTHS + FCB 2,$34,$40 + ldb VAL + lda #$33 leau + tst GL + beq aradr1 + addb #$20 +aradr1 LBSR PUTAB + LBSR PUTHS + FCB 4,$1f,$30,$35,$40 + RTS -* FUNCTION NOTASL ET AL +* FUNCTION NOT ASL ET AL TM7 CMPA #$40 BCS TM8 CMPA #$49+1 @@ -1205,13 +1226,26 @@ ARY1 LDA #$8B LBSR PUTABX LBRA LDAAX -** + +** f(x,y) y can be an array +DSUBSA LDA #$3C ',' + BSR SUBS1 + LDA #$3B ')' + PSHS A + LBSR WORD + clrb + CMPA #$5 + BNE SUBS2 + incb b==1 array + RTS + +** f(x,y) DSUBSC LDA #$3C ',' BSR SUBS1 LDA #$3B ')' PSHS A BRA SUBS2 -SUBSC LDA #$3E +SUBSC LDA #$3B ')' SUBS1 PSHS A LBSR WORD LDA #$37 '(' @@ -1233,13 +1267,11 @@ * MEM FUNCTION TM9 CMPA #6 BNE TM10 + LBSR PUTHS ; leas -1,s + FCB 2,$32,$7F BSR DSUBSC - LBSR PUTHS - FDB $0997 - FCB WT2 - FDB $3297 - FCB WT1,$9E,WT1 - FDB $A600 + LBSR PUTHS ; sta 1,s; lda [,s++] + FDB $04,$a7,$61,$a8,$f1 RTS ** FOR EXPANTION TM10 LBRA ERROR diff -r c83545730d6c -r 6ef317714ae8 TL1/Todo --- a/TL1/Todo Sun Apr 14 17:17:34 2019 +0900 +++ b/TL1/Todo Mon Apr 15 00:25:58 2019 +0900 @@ -1,3 +1,7 @@ +Mon Apr 15 00:18:30 JST 2019 + + 8bit/16bit offset + Sun Jan 13 17:22:51 JST 2019 TL/1 OS-9 command generation diff -r c83545730d6c -r 6ef317714ae8 TL1/test/t3.tl1 --- a/TL1/test/t3.tl1 Sun Apr 14 17:17:34 2019 +0900 +++ b/TL1/test/t3.tl1 Mon Apr 15 00:25:58 2019 +0900 @@ -4,6 +4,7 @@ %--- MAIN --- VAR MMI,MMJ,MMK BEGIN + WRITE(1:ASCII($A)) MMI:=1 MMJ:=2 MMK:=3 WAIT(4,5) WRITE(1:MMI,CRLF) diff -r c83545730d6c -r 6ef317714ae8 TL1/test/t4.tl1 --- a/TL1/test/t4.tl1 Sun Apr 14 17:17:34 2019 +0900 +++ b/TL1/test/t4.tl1 Mon Apr 15 00:25:58 2019 +0900 @@ -1,43 +1,44 @@ % ** TEST PROGRAM ** -func search -%--- main --- -var dict,buf -array tend[2] -begin - dict := openm($2,0) - write(dict:ascii(0)) - write(dict:ascii(30),ascii(-'P'),"ROC") - write(dict:ascii(31),ascii(-'F'),"UNC") - write(dict:ascii(33),ascii(-'V'),"AR") - postion(dict,tend) - buf := openm($2,0) - write(buf:"FUNC",ascii(0)) - write(0:search(buf),crlf) - seek(buf,0) - write(buf:"NONAME",ascii(0)) - write(0:search(buf),crlf) -end +FUNC SEARCH +%--- MAIN --- +VAR DICT,BUF,D +ARRAY TEND[2] +BEGIN + WRITE(DICT:ASCII(0)) + DICT := OPENM($2,0) + WRITE(DICT:ASCII(0)) + WRITE(DICT:ASCII(30),ASCII(0-'P'),"ROC") + WRITE(DICT:ASCII(31),ASCII(0-'F'),"UNC") + WRITE(DICT:ASCII(33),ASCII(0-'V'),"AR",CRLF) + D:=POSITION(DICT,TEND) + BUF := OPENM($2,0) + WRITE(BUF:"FUNC",ASCII(0)) + WRITE(0:SEARCH(BUF),CRLF) + D:=SEEK(BUF,0) + WRITE(BUF:"NONAME",ASCII(0)) + WRITE(0:SEARCH(BUF),CRLF) +END -search(buf) -var val,k,c -array bend -begin - val := seek(dict,tend) - position(buf,bend) - while val#0 do [ - c:=seekr(buf,-1) - k:=seekr(dict,-1) - if k.lt.0 then [ - if c=-k then - return val % found - val := seekr(dict,-1) - ] else if c#k then [ - seek(buf,bend) - repeat - k:=seekr(dict,-1) - until k.lt.0 - val := seekr(dict,-1) +SEARCH(BUF) +VAR VAL,K,C,D +ARRAY BEND +BEGIN + VAL := SEEK(DICT,TEND) + POSITION(BUF,BEND) + WHILE VAL#0 DO [ + C:=SEEKR(BUF,-1) + K:=SEEKR(DICT,-1) + IF K.LT.0 THEN [ + IF C=-K THEN + RETURN VAL % FOUND + VAL := SEEKR(DICT,-1) + ] ELSE IF C#K THEN [ + D:=SEEK(BUF,BEND) + REPEAT + K:=SEEKR(DICT,-1) + UNTIL K.LT.0 + VAL := SEEKR(DICT,-1) ] ] - return val % not found -end + RETURN VAL % NOT FOUND +END