From cc59d37658699b6e4305cb1b4f136917ea52fd79 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 25 May 2020 13:22:26 -0400 Subject: [PATCH] wip --- blk/354 | 1 + blk/357 | 25 ++++++++++--------------- blk/367 | 1 - emul/forth.bin | Bin 6178 -> 6207 bytes 4 files changed, 11 insertions(+), 16 deletions(-) diff --git a/blk/354 b/blk/354 index b08e2fc..6c1919a 100644 --- a/blk/354 +++ b/blk/354 @@ -11,3 +11,4 @@ : C!+ ( c a -- a+1 ) TUCK C! 1+ ; : C@- ( a -- a-1 c ) DUP C@ SWAP 1- SWAP ; : C!- ( c a -- a-1 ) TUCK C! 1- ; +: LEAVE R> R> DROP I 1- >R >R ; : UNLOOP R> 2R> 2DROP >R ; diff --git a/blk/357 b/blk/357 index 7bf7b59..93d4dd3 100644 --- a/blk/357 +++ b/blk/357 @@ -1,16 +1,11 @@ -: (parsed) ( a -- n f ) - DUP C@ ( a c ) - DUP '-' = IF - DROP 1+ ( a+1 ) (parsed) 0 ROT ( f 0 n ) +: _ ( a len -- n f ) + OVER C@ ( a len c ) + '-' = IF + 1- SWAP 1+ SWAP ( a+1 len-1 ) _ 0 ROT ( f 0 n ) - SWAP EXIT ( 0-n f ) - THEN - 0 SWAP _pdacc ( a r f ) - ?DUP IF 2DROP 0 EXIT THEN - BEGIN ( a r ) - SWAP 1+ ( r a+1 ) - DUP C@ ( r a c ) - ROT SWAP ( a r c ) - _pdacc ( a r f ) - ?DUP UNTIL - 1 = ( a r f ) - ROT DROP ( r f ) ; + THEN ( a len ) + 0 SWAP ( len ) 0 DO ( a r ) + OVER I + C@ ( a r c ) _pdacc ( a r f ) + IF DROP 0 UNLOOP EXIT THEN LOOP ( a r ) + NIP 1 ; +: (parsed) ( a -- n f ) DUP 1- C@ ( a l ) _ ; diff --git a/blk/367 b/blk/367 index e1f7ae4..619d14e 100644 --- a/blk/367 +++ b/blk/367 @@ -7,4 +7,3 @@ : / /MOD NIP ; : MOD /MOD DROP ; : ALLOT HERE +! ; -: LEAVE R> R> DROP I 1- >R >R ; diff --git a/emul/forth.bin b/emul/forth.bin index c1fe1bd34c95ed8e3e451f774b4dc574ed5fff51..cb1987719ef52837369eb936d882aa7b8e35ed7e 100644 GIT binary patch delta 2049 zcmYjSZA?>V6h8N(U-!26_8VjaYwdu-1g+CV$F#k)AhWcrEo_S+2Cb=Nf(V!l`vV-h z!H;R;8-6UySYk5KEK9Zy6Nw2fGvfzr{@NB|mg#hYS&)Q%7-O<@=d{fD2XpY?W@x+|6nZKq~!8${1dWMnWAC1$4?SxCNE`ePLO=43|NJ_E8x0Gtx$bAku9z#)AG+^{SL_(gn{3_0-;S1$y34RW~7 zi8Bz!&>kTtOc^pDVWOPK3>u8U!+fb>R@9)nud9FHNZOwSqXPW0m=l(8zi2(|cNDCY zs|s_4`NtxwHGasQW;4c9ywk*Xm}<)s#tevf$(!r{drZZ3gOQywt(KQb8l>WH#uH%` zG3CTc{(%YjAxRd({5U%+`QDzF#)Nr1MQ3avD)Z8!__+l9xRe1SGH@IB!u*)9C_XTS zd4iqN(Pf6DJA4L~@&SHcsz?6jrAtE5=eCptJ639^7jq< zQa)r@kv$;53fo}r)J@9)KFG4>n%Ft>l7LmGG7!#=P@*NIMI%JppJ?S_n*C*dSzeHVf59?{fiAKdON~p9XB*?O zWGWO(RTa+ar4H6@*~qQ3amz{Gs9aDghNtC^q@4J~GA1mDOZcmS7Tv$;C1hyHG9mno z&t0y#uR&9^J-M$G<@5y2#D7XD91jwq$FZ{HLTb^Y1~j1cnDAX8L^159N_3trWFxRW z-Gl5CMZ=r0-;_G~v#EzNvlz6xufMx@(CF3!NO%# z4Wdnm99L3d)tD%*EbFUilLc@0qdJEtlWmO>2zb;3S$113=YD5T)GflKy2h%l1cC}U9r_-$`QDi z&!cm=y|t|iDVb9Pc;1MC1E_Ej7Db|YlKpG*>#nJ5>NQqtui$=QuiL%c8?48^EmUKt zqEh@hlKuW;NnEsDTaI)UU2w)0Tm!t>g%S$Zlom9* z2Q$!;=9Ltz@XyB=|s2Aa$Lt`QXRdF-3&p04g*e-&oR zvkR`)2thEf!^sKFE`oJQNaO!=kQ|!B3*y0np#ivV_JY)S{MfOszJVk0B+;XO!F+E2 z@T9s+kJ5@)qWpa@Q)m)G7H?CrZG8AGpth+OqHbynY^RtDB}k2^m&j6WhSQ1{I6tgP zK`{gWATPUZsA-ye3eG*6tMnNHzFVe}-Q}oc`oavJFb#j|PQtHL?xt;p8(@VoUtu`n zXin{mV7@chAk?r?cK`>y29anIhbY|+2f0){tCURX^hh(_uweu4t)iV;epw{tEQ;sM z#YWd6%`LGCIIB!iO`6&M61nzygzd3ZOVo|~J}6%0f9MD72sF=5mz3=cfwqUZSr#o~i1z!YH}1rILpK05BKXQvd(} delta 1998 zcmYjSYitx%6h8CV$IR@`?4!E{V#}~y`T|;56e(ip&hE4{-R?HK+g8$0(&q++7HElq zAAKNTH4-$pH6|oADz@;4;wHpalS(Ak5F+dkOqyVjltzr$qKS`$80xvRt?|e1%)R&A z^Z3s9o%w3($6Li45_6-N0a(oaOiWoU2aa^Kwzn(fQ_IVp#Yb9?^>%iYgup5To92L3 zVGFdGQ{aL^c8>qq{YdmzzXNtG_OGbE$FR9X7yxgd4_K@FEWK_ zpY`2dvX9hT$Cz63#CnpskN+MrAmpxl&YA)qG&r~NvR6q8w&CAj1i4id-z}<`9jucD$nFH`Y2P{n2*SN%9?14G6+wXsT(bk zi@>T#uoeaJufjTUB^s+xJiD^5tRhu*OyzUsGFm3;Ln3f!szM9-TghX-B_79?fg$Ct z;sg2ho?{(qcTb<%)pNYN1FFm#Z1&}$Yf32mK?a+a z<`;yp1K0^ulk^C6FwW5(4a$54a7ylS_+dz)T?lHic+%&Dv+_F*zX>YL8G+0?;w3H0 zExwYQL=P%dz{&q`Yf%#LE5_SXhAbN8mK-GLe4)MviR6F|uGHD0&>zNmWvu}PFdbad znRIG!K*k%?-7drf*rfBWqGFrU{4_RWlv9D425=uw$gFb{rZ5Qe%k$_g+)!8Fir8IN z0(jqwfdZ%q9_Dy@dx)%am6$FdbQj28S3YxNZ;nk)tpUC7x^J4-$I3;abApAio6bpvq zoAOZ5S&M)n8CuVi9J0rgyRXzk1&5s3P--*CTZz8ulJdNI^{_71sLLoN+L{0hIE7Sh zrw1pjg}ya-29dAlQ98wkTMu@Z6k)h|GU=()Y1+1x64G3$hn6zVRpax2WwgOm|Z1)PRBq?3DfjCUHPK($%!4dBSvK#wGFYSQcyXq~nF z-8*42Bfyy9?zMO}C1%zA$oPiM@kec0O>25}O*9|Q$P=_1)jNVUQ4v>JR}-eyLK~vV znuymp$Y!*9(Cor`=gC;^y4oxNp;%pgO+