# HG changeset patch # User Shinji KONO # Date 1556936262 -32400 # Node ID c3145f913f3d9784992a349b333513ac7730fe35 # Parent 41d578d28d8cc74378991ed1ca54f8fdb2aff359 possible features diff -r 41d578d28d8c -r c3145f913f3d TL1/Todo --- a/TL1/Todo Mon Apr 15 14:21:00 2019 +0900 +++ b/TL1/Todo Sat May 04 11:17:42 2019 +0900 @@ -1,3 +1,35 @@ +Sat May 4 10:39:12 JST 2019 + + possible extension + + array as an arguments + put entire array on stack ( callee's local variable ) + ARRAY TEND[] allocate pointer size buffer 2 for 6809, 4 for 32bit, 8 for 64bit + anonymous array + "test" + "test\n\0" + INT(0,1,2,3) ARRAY of CPU endian orderd int + + memory stream + DICT := OPENM(INT(2,0)) allocate $200 memory + write to the stream (should be BYTE(0)) + WRITE(DICT:ASCII(0)) + + TEND := POSITION(DICT) get stream pointer in TENC + return array offset in frame pointer, copied in caller's code + SEEK(DICT,INT(0)) set position in byte + + VAL := SEEK(DICT,TEND) set absolute position to TEND and get the value + K:=SEEKR(DICT,-1) seek relative and get a value (K can be an array) + HASNEXT(DICT) eof check + + multibyte arithmetic + NEG(PTR) + PTR := PTR+PTR1 + PTR := PTR-PTR1 + PTR := PTR*PTR1 + PTR := PTR/PTR1 + Mon Apr 15 00:18:30 JST 2019 8bit/16bit offset diff -r 41d578d28d8c -r c3145f913f3d TL1/test/t4.tl1 --- a/TL1/test/t4.tl1 Mon Apr 15 14:21:00 2019 +0900 +++ b/TL1/test/t4.tl1 Sat May 04 11:17:42 2019 +0900 @@ -4,17 +4,16 @@ VAR DICT,BUF ARRAY TEND[2] BEGIN - POSITION(DICT,TEND) - DICT := OPENM($2,0) + DICT := OPENM((INT($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",CRLF) - POSITION(DICT,TEND) - BUF := OPENM($2,0) + TEND := POSITION(DICT) + BUF := OPENM(INT($2,0)) WRITE(BUF:"FUNC",ASCII(0)) WRITE(0:SEARCH(BUF),CRLF) - SEEK(BUF,0) + SEEK(BUF,INT(0)) WRITE(BUF:"NONAME",ASCII(0)) WRITE(0:SEARCH(BUF),CRLF) END @@ -24,7 +23,7 @@ ARRAY BEND BEGIN VAL := SEEK(DICT,TEND) - POSITION(BUF,BEND) + BEND:=POSITION(BUF) WHILE VAL#0 DO [ C:=SEEKR(BUF,-1) K:=SEEKR(DICT,-1)