X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=src%2Flib.4th;h=ff46f5f6d7b4dc06767eef9be7a896a1ac7aac8a;hb=5328ad90af9699b87b0beee70aa7a7ee6a98e8a9;hp=ae4e60eaac3069e55cfdf46f449eb06f85848021;hpb=aa56183a78faf9a661146353446af24fae716d92;p=forth.jl.git diff --git a/src/lib.4th b/src/lib.4th index ae4e60e..ff46f5f 100644 --- a/src/lib.4th +++ b/src/lib.4th @@ -45,6 +45,9 @@ , \ compile it ; +: DEBUGON TRUE DEBUG ! ; +: DEBUGOFF FALSE DEBUG ! ; + \ CONTROL STRUCTURES ---------------------------------------------------------------------- : IF IMMEDIATE @@ -107,24 +110,30 @@ : DO IMMEDIATE ' >R , ' >R , + ' LIT , HERE @ 0 , ' >R , HERE @ ; -: I RSP@ 2- @ ; +: I RSP@ 3 - @ ; -: LOOP+ IMMEDIATE - ' R> , ' R> , ' -ROT , ' + , ' 2DUP , ' - , - ' SWAP , ' >R , ' SWAP , ' >R , - ' 0<= , ' 0BRANCH , - HERE @ - , - ' RDROP , ' RDROP , +: LEAVE IMMEDIATE + ' R> , ' RDROP , ' RDROP , + ' LIT , HERE @ 7 + , ' DUP , ' ROT , ' - , ' SWAP , ' ! , + ' BRANCH , + 0 , ; : LOOP IMMEDIATE - ' LIT , 1 , - [COMPILE] LOOP+ + ' R> , ' R> , ' R> , ' 1+ , ' 2DUP , ' - , + ' SWAP , ' >R , ' SWAP , ' >R , ' SWAP , ' >R , + ' 0<= , ' 0BRANCH , + HERE @ - , + ' RDROP , ' RDROP , ' RDROP , + HERE @ SWAP ! ; +: lt 10 0 do leave loop ; + \ COMMENTS ----------------------------------------------------------------------