From bc1cf8368d0d2c56dc416a0a1e4faf3f8bc2ab16 Mon Sep 17 00:00:00 2001 From: dschmenk Date: Mon, 8 Jan 2024 13:32:38 -0800 Subject: [PATCH] Get rid of EXPECT - ACCEPT does input better --- images/apple/PLFORTH.PO | Bin 143360 -> 143360 bytes src/toolsrc/plforth.pla | 30 ++++++------------------------ 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/images/apple/PLFORTH.PO b/images/apple/PLFORTH.PO index 5b17d4494417a68a7ef35e993442c5a37aba4f26..8e54326c5f668d083835df56cba7b86dcf36be9f 100755 GIT binary patch delta 8082 zcmaLcdwdgRzQ^%rCe!pnX-i96nzm_@w&{&Ffm%eUK-#9XOPbVlfPxiE!J<_GSwzLv zbcBTkQ5mCL6jyQObwF^HMHJR62)gT$%gX9Okc%iBZh}^nv#j9xOadI;*S^jl@67l2 zJkLCtd+5-8IIjC}+;d%tF1vh-5LK2{VwHPCV%Lb6P>;ORyNXP@qq=n=m_C-P-SSCM7 zuCXs#Bo8Q;R+2~AAEmuqeu>;-fAmqQT-t1`+h(6Dq*7@+vC}?JNG@qNak~9?LUA<( z>ZJWtLJSfnqc}z}+rChk{oaut)hnH&o@-w$OdfxoB=r^IIr|er4g{q>ZejMdG&I($(kSXh_NRn77_D2W zm)KVb>3Zo_;!gVrAq|u6CGNG?38`9|Lp%~*Ha#zN+Aiv4_x18iw0v(DBTSx}7O|Pa z>M%7m`o(tQK%%Er>?YPbZ1e6ueQ7{%%IQ0?w- zZuWUvnmo2qR5=B4V?4n|PmRxO8%JGP5LX-Ux2PV!YMVkmsX%Gs?2CKI9r;Rqqt7Si zlV^mVyDK9!H$TSX^Kn6}rKvGLuDB-X@z*w##29C7vvZq>FLwXDX^V5KkQ?jUUt{QIqVTo))YzErF$lIsHP<+OfR6yx)H#&}0GP>A9RYO!Jz?LqpkD~T^I z`+4UB#W7`(-f8qsERh;VEFxs&OTQYioUouIrp7z6(cd0=p6ZE`7|%!#)mnfF5qp6?$y?U7^4{0{!a$2*fc+J#sScHJb@=PVdh*ErvP~J+-4b3k#dunUF&8mp+$BkX8 zj12_qLdMTKszofMFRx5d$2EJ!Qe#|y zxyEN(MS7r2scrBCZR^S5GRa|kgRrSgX<<(z_dsQSg;0ts93|odV?`lXIBW+=`TgaJ zV%telu)nD#SS!vEzwNIO9kxsTL`du`H*<{}UGZ5w9?BJNOSL+8ivid2`mMfGwq zi7iw)uGmOL=T6EZzA!jSd`=wWiXjI4wo?>0xy(kvs2`}_EpV9{)!J^8MTlcAQ*%vi zcOT+uSIih+V~Z+sC@#3db)T<^RV}m2Q&cs4?sJc{GCb(OlSxanXUfi%shi}EPN8by z&kneaCX>-*iZ*2)9Ok{-(J{LyMcnI1YnFw&(&GE^Cud}?uBw#Tt`yPbN}1lKI&z#v z7RGgzq^LY+)lah9T4RmbJ4L6gF5U3d!3wG3<%$Zq#6~~gCq$`{#>=ho66Lzwt^p~t z%w6Rvvt(wRr8w2_4~L4Rg0S^)rL-d)JX~s7mwT%tty=LV8EcyhVvT8bR)W+&5K8q;ruQpgB{iQ0&>9!g}hg}|0RV}f7 zbT4OpMORS@J2k^ttj}i4WJz6{&&D-ax+LSMMvfl`e6YzV+M+vD zZTbJlM~}BL_{z9{Hz^OJ!7*26HNLB@t1@M9FSW{IEaeXMb!!{jV@$zu8I}?a)19vr z7>SLJZvFCKY<=lAqjR}quzC8G?!mEFcQ1OuG4{*M7dzuAEs={TFM7pX z>4{!6-xOTgOk;!CyVZH)<;X@F+sM8#@2&Qj~~_HX(ZT7}t%6 zUj1AUX`&+DKh1XM#F>+Bjou+)*YPUO_btaODw!yH^xB7wh=%D`8@m6s!4_!tMRu6`sI$@Pghc}-n zW#7I!ksnK=v56a!PL7oLmqT-E^k#Jiij9-DmG5JIVq0{RdI{(K8OFw38F%Dg$2qms zTf0*S%fIhvi*8Qa1))kaPsM_P-Ql4v;Oa1HZC>eUKZRH#@+ezGw-H3`T+N(h^x=@S)#d@F+Tc3 zK!`ry|IPK`9xs=^L-*yMg=^X$S`r}-ip+QPlQp2B0|*I##E8`%Ob-YQF5tLgHC zOTMy=#&@+F8yOb~Y^BK<k(YCQHb(|5cXZ5> zJ7s>cnkR?~*=GDG@}OnCWPa*62J&E;0g7{Xc+WRGoI7&63euQrc4bPJGtCz-_#DGb z(bkSJZO&6!>W=XH-wvpboO$l&9KLXNL0WVRW;@fI16+|jgI}Rv-r+ogoN1An!j(Pc zoUDmG0OS|=!5;vR3} z0=(GsYpE-I*LRN4&T_TDCfejGi;#IR$_-Gl5+_laE##$Gk5Ayp5powE#9pk+74iBc|vAVxd-PV>_U!17MvJ>A*iv7kUWaef;MzwI%Z=o7GVjV!;5$oZ{vOJ z#9kZ$f3(W{u_|9gtV76sV8uYxV>~+0g}b5Q5iECvguIGy5E=Qbgi16*MF(bJE*4@f zatauONq88qU@N{spF$xA(S}>F4qxFs98MvR#XKy}Wk3UNh3PC+(?BZPJM z4x(7dsR-Z!9Km%ZLY{~PcmhvjH8$cs9KuPYmI`?g=HoeBfKQItjk#Ea#droQ@p61fXd4J`;2r!0AK_E%!%>{TH#mojkP?K}3(3fU z1$Gpo0s|9-UYn4l2NIIBR`S#YMZ1e-cS5W-hyHn303FLid_05a@gn|+^>~#PHYMa~ zZ;K65F}>JG zqd1OJID;PifQ!93|E46i8VTr)6!b+Fa^XM``X>qfnk2hEG|8-a$Rk;fqP-a%xC7H@ zzlZj2@^A4wJdDM(zmlYA8^~{9E4E{2h>tzki~Tr`9tI~RD_Wmqp=H93A`Cz^Jg7$_ zd{A*SCgFC>!fZT*`FI$QCJTL8vaCOotmrQ=_d42MMd)=t-o)ql3MXJr5n2+`kPRD3 zQHkqOj~g&PMd-JrD0(PG(H^3nkH@f__Vu)HrF}c~f8rAyz+oK68Km{${I5wB`Uk0s z_F*blH~xlC@fi-$C(;znl*UFO0lkreOjzJRG0Jf*s!^LJ^gvpYJ|QhtpNj6ZKKgId z61Da8ZKCfj^1I~iX`KJR5_lo3XZB6fY<;;!P>lX?fw#X}HT}c;W@p?XP1FKp z730u`n=u7<&_9i_GsySgH_$K_^RWmzW1e8l(h$W8if5Vd1@ap3ZdhB7*TAb`?H#<2 zzhW0Y#;5oUpW_IQ;sj3P2mAw4y3iCPpf^%sL2kOxZRv?xAvsjcM;Tn;U9dicj^X4w zjKr@HKr3!S2Rd;Z?!a`+#sknW7rg(~7Bg2kJyTmkUXGR2FQhB_nsixviJCXO+MDT| z|M%%Qn67AF&~OyI?$u7=49?*qLV+AGw%GZk$Q`BUu2VSI^GID^nRKF%}n0xMo5OZ~WL z&)y zsy%{bcpA^*d2GOI_%q%D?@6_funT|3KJdm=JBAZDiymBr$YN&@i+;#P9vtY80a={? zA%q%u(S&BSfcK!{R`1cB0lp{e5<#{v&llj;s~s@bJPw zRN?v@q5E?bZ47w=CSo$~p#6ayMSm)Xe>3EyYoF3~A}1vD(}eHoOwCoa^jx7^a`QB6 zE+9WF+7eZu?#ElEdCJU z<3F&L6}RRp`Um(h*Q9+++ddq?VI0RlV7BrwL0?!=f^t-0xRs}%l|3g8!w$rhPj=c=xk4wFWe4Z@j@yJCo(vXE*6rdOt7>Fti z#!w7{2P5If4H%2@n3yN@xp|7Vi2N9qS$vO6w8hyJJsGJsyPjn;>$x_wmT%*?0hKnPUu!GSeKti4kZ)mJ7w)u~wCVKU zYYTB76XswZ7D2}o3|?j{(4Jwrk_oo3(l+vOmS5X?Y2T2)WBCKi3${G{CtIQ>+l3Zm zXM^mydM~?GOQP;W-PfM4S;%%2q8R+|t$1(8wmqM{{&%zFmcl9W#`#K|^tuu!|5)_D DBTD9k delta 8213 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 BBjx}A diff --git a/src/toolsrc/plforth.pla b/src/toolsrc/plforth.pla index 68ea616..3a1ac3f 100644 --- a/src/toolsrc/plforth.pla +++ b/src/toolsrc/plforth.pla @@ -114,12 +114,12 @@ predef _var_(a)#0, _const_(a)#0, _lit_#1, _slit_#1, _find_(a)#2 predef _tick_#0, _forget_#0, _terminal_#1, _prat_(a)#0 predef _blank_#0, _char_#0, _str_#0, _prstr_#0, _prpstr_#0 predef _prval_(a)#0, _prbyte_(a)#0, _prhex_(a)#0 -predef _accept_(a,b)#1, _query_#0, _expect_(a,b)#0, _type_(a,b)#0 +predef _accept_(a,b)#1, _query_#0, _type_(a,b)#0 predef _vlist_#0, _tron_#0, _troff_#0, _stepon_#0, _stepoff_#0 predef _itc_#0, _pbc_#0, _comment_#0, _src_(a)#0, _srcstr_#0, _endsrc_(a)#0 predef _brk_#0, _brkon_#0, _brkoff_#0, _word_(a)#1, _count_(a)#2 predef _space_#0, _spaces_(a)#0, _show_#0, _showstack_#0, _showrstack_#0 -predef _cont_#0, _exitforth_#0, _bye_#0, _quit_#0 +predef _cont_#0, _restart_#0, _bye_#0, _quit_#0 predef _abort_(a)#0, _doabortstr_(a,b)#0, _abortstr_#0 predef compword(dentry)#0, execword(dentry)#0, isnum(a,b)#2 // DROP @@ -514,14 +514,10 @@ word = @d_terminal, 0, @getc char d_query = "QUERY" byte = 0 word = @d_key, 0, @_query_ -// EXPECT -char d_expect = "EXPECT" -byte = 0 -word = @d_query, 0, @_expect_ // ACCEPT char d_accept = "ACCEPT" byte = 0 -word = @d_expect, 0, @_accept_ +word = @d_query, 0, @_accept_ // WORD char d_word = "WORD" byte = 0 @@ -633,7 +629,7 @@ word = @d_doabortstr, 0, @_abortstr_ // COLD exitforth char d_exitforth = "COLD" byte = 0 -word = @d_abortstr, 0, @_exitforth_ +word = @d_abortstr, 0, @_restart_ // COMMENT char d_comment = "(" byte = imm_flag @@ -1625,20 +1621,6 @@ def _query_#0 ^(inptr + ^inptr + 1) = 0 inptr++ end -def _expect_(a,b)#0 - word saveinptr - - saveinptr = inptr - memcpy(heapmark + 256, keyinbuf, 80) - inptr = gets('?'|$80) - if ^inptr > b - ^inptr = b - fin - ^(inptr + ^inptr + 1) = 0 - memcpy(a, inptr + 1, ^inptr) - memcpy(keyinbuf, heapmark + 256, 80) - inptr = saveinptr -end def _accept_(a,b)#1 word saveinptr byte len @@ -1986,9 +1968,9 @@ def _abortstr_#0 fin end // -// exitforth +// Restart FORTH // -def _exitforth_#0 +def _restart_#0 coldstart throw(@exitforth, FALSE) end