From 5bbc256fafd3616f06cae77b9088a7cbd75d07ee Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 24 May 2020 09:23:19 -0400 Subject: [PATCH] Flush input buffer on QUIT Prebiously, when encountering an error during a : ; definition from input buffer, because the input buffer wasn't flushed, we would continue interpreting and quit the whole program when encountering ;. --- blk/353 | 13 +++++++------ blk/386 | 11 ----------- emul/forth.bin | Bin 6081 -> 6083 bytes 3 files changed, 7 insertions(+), 17 deletions(-) delete mode 100644 blk/386 diff --git a/blk/353 b/blk/353 index 169a7a2..16a9781 100644 --- a/blk/353 +++ b/blk/353 @@ -1,13 +1,14 @@ -: RAM+ [ RAMSTART LITN ] + ; -: BIN+ [ BIN( @ LITN ] + ; +: RAM+ [ RAMSTART LITN ] + ; : BIN+ [ BIN( @ LITN ] + ; : HERE 0x04 RAM+ ; -: CURRENT* 0x51 RAM+ ; -: CURRENT CURRENT* @ ; +: CURRENT* 0x51 RAM+ ; : CURRENT CURRENT* @ ; : H@ HERE @ ; : FIND ( w -- a f ) CURRENT @ SWAP _find ; +: IN> 0x30 RAM+ ; ( current position in INBUF ) +: IN( 0x32 RAM+ @ ; ( points to INBUF ) +: IN) 0x40 ( buffer size ) IN( + ; ( INBUF's end ) +: (infl) 0 IN( DUP IN> ! ! ; ( flush input buffer ) : QUIT - (resRS) - 0 0x08 RAM+ ! ( 08 == C<* override ) + (resRS) 0 0x08 RAM+ ! ( C<* override ) (infl) LIT< (main) FIND DROP EXECUTE ; 1 25 LOADR+ ( xcomp core low ) diff --git a/blk/386 b/blk/386 deleted file mode 100644 index 286d6d6..0000000 --- a/blk/386 +++ /dev/null @@ -1,11 +0,0 @@ -( current position in INBUF ) -: IN> 0x30 RAM+ ; -( points to INBUF ) -: IN( 0x32 RAM+ @ ; -( points to INBUF's end ) -: IN) 0x40 ( buffer size ) IN( + ; - -( flush input buffer ) -( set IN> to IN( and set IN> @ to null ) -: (infl) 0 IN( DUP IN> ! ! ; - diff --git a/emul/forth.bin b/emul/forth.bin index 7f04214e5045e8fb62576c85ed883b1b1d93f1ed..13b327d5075b975ad7d57faa100e875bb930d5c4 100644 GIT binary patch delta 2910 zcma)8TTC416+Scb&)#=-mz!~XVObWlU}LaQH%-cQU=15DyRf^sagnhw*mzX}7B)nA z>C)6`Y{`n8jA{w@p?!#>iU*6xtyRmYEp;Tz!m?!{`JoSW)sVQUqNqrgWkqf2cm4q> zkA2wL`Oo>!{X6H(O4HpY_g$}YH>MDM@TvQEx=5zm4eM&CF1w~jHIrh6sne77A#xZ? zVoew7XZmIBGU$Ut$$TjZ<5jUF!sMbX=r8pM#oih%Ox4p(y+K`9OzJW-*?cYO#y(*< ztbggdigAZYZIz@LV?vaOOd1!9+l4^u$vpC1BHa-;`Ql`y~_c{6A z+}`FP&A1>B?XAoRlS;$toMS`TQ05#DRoH89ZQB87!8r)lN0RlCWc4T06_Ecm?oW`Q zxY~gG{atUCNMgbIy`xi&IIV9T;X@JUqV|O_>BQOb(Xp`rQXS92S;DT%B{4t1M}$OOTA?hEQ*58_G84n@uFb zy5rpCA93`l&&4e*Om#G3eeR6zd7iY?(OI!cKZJ(E|2KO#C?y!2@pB4+K zSt66~@XNFd;_~8rVEg>kZBjn-!%Vh^6S*WB)J3;Y+dToTPfdG1M`FI&G>Q3pqy_^B zJL?hPaS(kfW00Ru#G<C{qY~`kKWf<&$r%vhhn}kX%zDTrkSIV63E_dz^BQ%p_tBjda-FS zgu!ck1&s$M27ML!Ah_e!r0)%{%O}*o`DPHoeQU+nP_YUhx-;oqzAK%tlRm7vclj;F zzel-ZRrzO?2i7nARmB_L5zmrX_Cri8;%SnZI#OK=^Naok?HYdTip@9aaB3*mR|(_G zATu~B4SBsYgzGJ68y4Zluv5?H%i1NW!d6?okA z89O^um^xn{Mgf|f+ys8$tPenE{5a59CUpdIv<@Vhxf(edT%eegI&9Atk34l}?UR4& zlse2P{Wx$HH**8sJYT}V4-2MKTY}cbKuGzmbuCa;>;|-BZ%>`B-wmfv237(QdV6|i zJUlghK74w5c50mX#(~IgIKUteQv_~q2hX_sCmc*A^N}jL080^CbvFf<1cT#XBt-8T zgTW}B3~-_3JO%CN#wpO^4$!LUgbx@A(=$vKfmy=3U2-rcVD;;#VEAf3^)P)C4&@bJx@ zGO?tb(HcXIAqW{;La)P=P#Z%l0d77`ow$ISI zYZwpqoZ{0Lf*09E6zd}N9Z4LE$|4V8U@U0%SYB6hQ28OlY-W6NYK&o4l&aRHDjq2w z;yeBlPEk=7)%MmUN3!QT6d+2vY8U=Xq)Dip9d_ojwhVV>y?lcaY!`%wx3pY8ix6Jw z%_U)K)#bK%v3WJHrgH=)WqVTT*1bR;Yr2Ki!)3Phv2VXAvFS@<&iblkuYX-%(_6F~ z-j{lm?ptN0)tJ&i7ZpZ)MNLeoD+H$1YwE{!XTR!vz=O|S95&k*5{kSJ}IZhw$0OhurXuAcoLAe%g)qFPOvP09vAdV)R5feH0q z@KKOOV{C_9H(*Kr3=)}2q&XMko zQ1|rYl;$Ocmm8?be7Y2+<`!Ia zGbL8^(NB#C)zcMEkC?!MG3oUndYpHdfgQ%1YJw_&=rJ#k9=mf^Q8@<X6GFYNzweF9y`D(r5+UhW4tFtpuoBT6xL_?;)E3!$+t;CV zKA9?`_Yi`u)g})I;qRSNla4#!nfZYWhNAcsT6No2hU<<8>1Qlwy|<(FfARck;s5{u delta 2910 zcma)8Urbx)6+icnuYLXJUK?Xbx&p>A0Zc;D(K@3Af-jiBFqqjUYlI@iNFX#RB#@-5 zRK?E5s45{%+RdgQ?O_kgkorUyEejQ$)<)HY)JBsgB`@nVrKG8rDH1B`_Q1q`=ewZw zaSy(}-#Op+oqxacJNMp^50B{geA2xJiD>aX{dcZ!e{Z<2V3KMaQ&-d|c_`;vRASWd z`qhOxi znphld^O0;sX{Xr4s&-ygYvN41j`t?}bra+9_xZAwkreHr#T z+S)7ODm2Ydoe-)MLN(AgSb_7u!v0B8DJdtge<1a0nGjanin~*OsM%?EbpJ!`UFETA z(dfl9W8>o{X@)9Csg|nkYwk*^+Wv+6g~>2(DWin^K)vK%Q8%R)C5ii1)TG?xj>wZp zlP#~{jwE)d@*QPU+S5GS;jlL)w%>4ZY>1^S6 zKomqpU}Ak}Z+%0zsF3}BHrLH5UQrYBsIJOi>88>vD|X3Sd92Q>%8HjS?v)o2IzJz% zqk1n=a2Pn`RDGp?j&y&qv#v$SfGml#_q~-vdr8oc1dDFyd3v^E(a729%d>But|qr} z3tN}G{A^Kfxt3f@N{dp`Z|MBa#u~)d#s+Lnd*AokFZogokRST0POKx6fowP9@tnff zr!tvr!4LG$x)MH%x^n4MAss+ekG)ay!Ma5!Q@OsBl}U$D>Ny`ncijG~FXm5sZ=+G_ zxjTMqd;P8QIzZ?@nE4EQ6#5Le4P;N^l!^?k0!|x%&cC!0eZ6DDFzXIK2g47wI54{@ zIX&UL^8wAhDebp^@Bgmv1D`7Y+&_!huG#)TqM`(+y0U}$LTa#3FPtjrfA-s%K$VoX zUkhB3uG@bP)D*{kVeg81DX^%ltD|^YWM%qm>)_95U`fg1w;?%ti+VD{`QCl-<`Tq= zmrny?duIsSzYM4{AK}h%io)wfr9)idTw8k(hu4HPF2L(km+fnY1y4RSj^Mdzj2Dj? z+%~gQ)0Z2gD9wh({SXjcV=4><4V{NhF!Hp4f?N3mf+;+ZSd{5;sKzT+T{&kJ*j;6M z7@DWde$%4-P#2dsibmsugPGlf_Fv49G-W?FYl{Cy-30ibhtrkjRWn9!%*>vNPS0G9 zPRv}HK100YQ0#d)z{rkL3~ufP&xrg79L)3;Vl^}mOED_x8|I42Xlagx=tqVYj8mn_ zg%b1%*@E#LWKUg?)zYXRpo!8GP>%|-;k!M8CYU6!wtpQwm}-U859wjVv95M2?LqdW zm6!&dGH|N?2~UnU;mG@RYO;Ny`eFfS4AME}Zg9)sA3S_@zep@e=afgm zM|{ZGJ@hh6sq&-XRWk|(I0O3k>d zMCPNNc@(94cwlG@CF-~T7>fAKP>HtTci&(~%>Kw#UtA8wxo@YYCoVLG1f?v8RQYCT zQ4#$-HT{FR#t7s$LrcnXh||T)#;eCF?`lU4+hL|ZeJU<$KMX!uQXD#WsI7<5H+$y7 z^teDDpS>$?0zVf)(oBE8GR|C4)Y=KcBS_o(4GDlILU-`65#ow*()hwfWex5m(5?=! zojNhS3(JjH5W**+=CUZcs2V|hz0+?lhi-iMp2PBT>adIyaR2 zPP%ZCbTBTDL*{-5qqkkoKntR4RE(J{ro<%Lo||swJep+Qeilwjqjp{Sfdkut>u{`D ze5l0fKjFQPmNk67XhOPbpD(X5IQa(MheP*iJ7C`|uPQP@#g*D}#F$NW=YmM&158v7 zK$YJL&YQL6CEDV)Wpz^(O5q$y3U1?IKgQuyXJVf~PzTKMlG%eI%#~QxCj3I#=_qSi zStXSAi;>D2BeE$y)SkePrU*9))0y+NRS$Ek_G^)WA_wK)4e*Xakwqm=?KD?|Wm^HFM#@*u}ZC**vGqoQR;GvhRRp;7u|cZJ^cU<6L6@-0`JFDV9pI+IU_gkyQ^1ubEEqCc>~{zFAw zk-c|(9Ud(7Wy