From 33d37d4ce958f7865a7496fcee32e92749e45a21 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Wed, 13 May 2020 20:39:53 -0400 Subject: [PATCH] WORD: don't overwrite RAM on words over 31 chars This allows me to reclaim some RAM I hadn't even noticed I needlessly monopolise. --- blk/081 | 1 + blk/405 | 5 +---- blk/406 | 4 ++-- emul/forth.bin | Bin 5858 -> 5866 bytes 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/blk/081 b/blk/081 index 02086c2..ee68d54 100644 --- a/blk/081 +++ b/blk/081 @@ -7,6 +7,7 @@ RAMSTART FUTURE USES +55 (key) override +0c C<* +70 DRIVERS +0e WORDBUF +80 RAMEND +2e BOOT C< PTR ++30 FUTURE USES +4e INTJUMP +51 CURRENTPTR +53 (emit) override diff --git a/blk/405 b/blk/405 index eb8ab2c..c1a329b 100644 --- a/blk/405 +++ b/blk/405 @@ -1,7 +1,4 @@ -( The NOT is to normalize the negative/positive numbers to 1 - or 0. Hadn't we wanted to normalize, we'd have written: - 32 CMP 1 - ) -: WS? 33 CMP 1+ NOT ; +: WS? 33 < ; : TOWORD BEGIN diff --git a/blk/406 b/blk/406 index 3fcd1e4..be9cd1f 100644 --- a/blk/406 +++ b/blk/406 @@ -1,5 +1,5 @@ ( Read word from C<, copy to WORDBUF, null-terminate, and - return, make HL point to WORDBUF. ) + return WORDBUF. ) : WORD 0x0e RAM+ ( 0e == WORDBUF ) TOWORD ( a c ) @@ -8,7 +8,7 @@ always zero to pre-write our null-termination ) OVER ! 1+ ( a+1 ) C< ( a c ) - DUP WS? + OVER 0x2d ( 2e-1 for NULL ) RAM+ = OVER WS? OR UNTIL ( a this point, PS is: a WS ) ( null-termination is already written ) diff --git a/emul/forth.bin b/emul/forth.bin index 7be25aefc2698aafb4911f839f5c285cb4196463..e2112c8d8e0466eb9b6e43ac823b0d9d4e783456 100644 GIT binary patch delta 1828 zcmYjSUuaWj6hHUgFEuwe`R>i18<%xOj2AZ5<0b=G&EbQ z6bGg4Hr>kt8{hV@hv9?JNzt((77F5n?ZXCh>%$a5(J4Bn4C#XmCS%?C?rk?8ZgS7b z`SUyH{LaaPjwc=RyduoU1b|21$)C!~GlvP~{Gog?rLyyKTgSBADUM5v(!`lqH3TKe}re>M~n$$0uZu31)VGxZMp7YJdnUiaj16D3et=Rj#O* zfoET_h}jm-RXNV(s>c8zx?}~7s;EgQ22?D>1~|zDln88*XGq>NF3pqUyYb6L5J%(P zo`%$c&qKjBFrg>gTiW*$V#}j?5PdJ&fD>Lc|K3AH?(*0%h`4mo1TK$DEmjCSY`7Jj zXGxw3)D+gT6m1o{*bwcUn4mLciyVat4ap`X&3v&OX@)cOERDil2iKV;4~ST@6S}Ag z*&fA`T$a>bv?b4qlX>yjB!X0M!b4$A$%6bBi>jqq z7o8_trB0O~L$-s^v|3IVEx{klCcLo;huM%u*jaVk!LP7~8dRij)Go>&6E?jSvY>%b zk#4ECR1>Nc9eA`I2!V*V)FzcTeum6piy9IR2~ESO=fAL4t-ZaAPQrub0Q#nS4;1>b znAL*Q`)3?7Is}7}C#rylt=Y2Jkv;mOMpZ97+SB%wn=S`^39$+fD6tFCf33 zFW;t@G!DUpVk(>4^)j-D8(*{r=LX9~;laQ4PP2R7S3;cNhb)3$L&vD}6iI$li^6pl z@U>wjBW#av{lpzy49)8QeY_9be0&}WxG!y$svaF==GfK3>bkW!MgLgQaPC` z`@u=CAmn%S268Qx_rM1TbI!uUJDe}5m@*2JFCwfD#r>G1NsT~#2rn03*VxH{+E_e* z!-&A>iT)!)#>wHM$3_Nf^)a-#i+=^Nv30`(@fI9s#d001j~q3I>nDtXI+{X-wFNtb zD(elthM%W{>vv3fqOddAf|oQ3?*%*XTl7VsI(ljpnq3j-uGeb)?~Wcb@}(6F)tw+@ Ia+$L6Fa8F6=Kufz delta 1844 zcmY*aZD>9_cy*Ej3Shrbk+Gvs*t4=zq6K8Ik)NCrySGlBQ-!&h0C4+~{HbgVkOcyg1LZ=0q1YW{=j3R3THYj1NDJhlkBDdFDl9FZ z5N)84YjB{H>a9fCBe`8zVr@#IXox$fuoM_HVxXo=wV~oNw!ufvp+sP#JWYD^32BZ@cH%#eK^%=c^_sLAKlcUCz=2F| zS82y{$gKy}RrLMJL)-30^Y3*ca+lv4s>sU{9pLhW6mmm&VZ&?CdDewyGgGb{$ zk!kWB;>Or2nh*?@qici&8>5?s#_?sN9DzRCEIW{N3dM5k3vh~lP9t!qf$N--4k8x9 z2MOvxE~C1V;!3HaC+T%5m*GXZOK+lOsW+v7gpM{Om}aaJ{$dHE6id)K(kZPq2oA?) z5E`FmlAtB{bJ>AcJFt&6=@2__yxjL0md}KW^tF+o{Nq5!?q(Msgo?CaEEo>#rRcz; zZ9x)5Tri%veVis&usSsf`-7%o)bkhCVYas?=oH*r*3h?m*UsL3$oM7=V*no_g+*TU z1;X9`G1y5ny6+Q{k7~?IMg&icYi@4a;Q`@_*ujyZ;ke%|^o&Wwv*v`v8;$z6#^M(0 z&zd!9#^jwN-~g9?A>8T-y~Y&39cjVjVn+stNA|~CVTEgc)iqbJfC`k*O=Wq1bdo2@ zxq3tJD}r;l8p6$Dz$(tW4SN065~oQ$Z2TCKxM6Pa1CG_><(qWIQF_*!~ik(bbm&wIZ+?^iKkM0$WTf5VKxHTGg4irF1v znLyj*E!-0mcv0`-iRcLM9&N|(ol?JUAtskBEIxnd9Cie%n6xGSta1*#VT;(XDfkg5 zWN#iDKC5siQqS{*cpC3Xu8{0*u5Z-^teOvL)g=CnEd~N@w{*U(9WK`hTncyw|GzOS zgKLFbEE{ZD!S~FPuCtL~D0;}yjO&3Z_#4qVNOA2-ET(4>b~lo9f0xY!lam>|T@*K- zU!^L9usJ^jt4QU(z%yxWy@Pt_<+vK zHngJG5?+vvxQwVzT9~2@5!CYa+!Gz3@IGBsvrTv!3+bJ`*<6~!N3Q0XQL5nT2SV^M zKDcY0?#bpg_z)Y2d*74H<`onoIB3ms7yG6uG}xs^ByJfqkzXssVP4)ws_+nLXES~{ ziN;lKi~}ITIgC=?kt3?3-2%BXt*a7xRjX$s1AVHQdNkuBJ|Q^l&_g1$u&vM-Ss!)7T%@ zs?~k;4*o{O#z%(YEjYA&?)&)YkwJT8^r$^FdTeA6`q=u=I-#Epgx2HVTBvQyaXkW? wLLt1c5jYrHjsG9}TVe0m@i7Q0t&kcW9^UuP*a5px;z0Zsy#hiupDo+}0vY*$&;S4c