From b93b4d7c7571323c864543919284b05f24ad2164 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Fri, 26 Jan 2024 17:19:37 -0800 Subject: [PATCH] Fixes to compilers case statement to allow addresses. Update names to Forth words --- images/apple/PLASMA-2.1-4TH.po | Bin 143360 -> 143360 bytes images/apple/PLASMA-2.1-BLD.po | Bin 143360 -> 143360 bytes images/apple/PLASMA-2.1-DEMOS.po | Bin 143360 -> 143360 bytes images/apple/PLASMA-2.1-FPSOS.po | Bin 143360 -> 143360 bytes images/apple/PLASMA-2.1-INET.po | Bin 143360 -> 143360 bytes images/apple/PLASMA-2.1-INST.po | Bin 143360 -> 143360 bytes images/apple/PLASMA-2.1-SYS.po | Bin 143360 -> 143360 bytes images/apple/PLASMA-2.1.po | Bin 819200 -> 819200 bytes src/samplesrc/rod.pla | 2 +- src/scripts/bounce.4th | 2 +- src/scripts/hrbounce.4th | 2 +- src/scripts/rod.4th | 2 +- src/toolsrc/codegen.c | 11 +++++-- src/toolsrc/codegen.h | 2 +- src/toolsrc/codegen.pla | 8 +++-- src/toolsrc/parse.c | 12 +++++--- src/toolsrc/parse.pla | 15 +++++---- src/toolsrc/plforth.pla | 51 +++++++++++++++++++------------ 18 files changed, 69 insertions(+), 38 deletions(-) diff --git a/images/apple/PLASMA-2.1-4TH.po b/images/apple/PLASMA-2.1-4TH.po index 120eb5090fd7bf2e22d870aec711c09c50490bc9..b11d4d0258621e950625d677b145e5a7ae63a0fd 100644 GIT binary patch delta 9002 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 -_Zb$&cbc_=WNeqa0R?jI!b| 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 diff --git a/images/apple/PLASMA-2.1-BLD.po b/images/apple/PLASMA-2.1-BLD.po index 27390195a5bcab366efb964354df8884d8fcf425..942b3827920f876286cc998b50e5862fcdedd8ee 100644 GIT binary patch delta 12082 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 delta 11941 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 diff --git a/images/apple/PLASMA-2.1-DEMOS.po b/images/apple/PLASMA-2.1-DEMOS.po index 9e6ff72c8421a3174bb559741c6eef5da1df4f09..232027946a364d9a1bcd35ad1867e77b44e9ce1f 100644 GIT binary patch delta 1245 zcmZ{kPiWIn9LIkzjcbM4RO=rsAqxt%ppIB8$ZlnQma=YrCTS--*@G9I2U!)olz9_8 zl#)X|)l1RQ%OnHuQU@yjgZgLgv{UiWgW$!(Y<A#*|u@#9BBj+{Q^*;ta<5dsnEIO1*qoQQJpHrjpvs`p*%e*EyJ2yiV3 zq+>|ZBRLE=IVdZsRBAEUzBj5OrG0Bu1*Ls`R1GL(!FVmzWU=uM#72+aKY@Sn3!w3v zu8$xdK7IMDMS0`)q+vw42~!poyMM&jKf*+igrr)`mGGRK=4Chx(McxF7KvZ-G(HK5 z0xsji1t$W&00$u;c)=tcsTeXoU)ZSeaf40?|d&&W6)7Vp2fSpR cCb02BMq=8oNB7sGBR2$V96DAAPs?cQFPLEXLI3~& delta 1255 zcmZ{kKWGzS7{=f4awZXL?m{eLIMM?l1{&)bBUrbPoFO!AKJTuvbj#qDt&!pq>Lzpu z;f6THC1}l3xq`dIAVK_tty(*E3Jw9m#ib_wa=qsM)xg0Q_hcIH8Ib$&j5G+F`htV8c`1cF0&N$*v`jyyFca5=TE%? zz={v>D>V|?oVftRg^)-jR(-AYQ3VOD@~8qrt2C;31iYg5BGnt-`Ul|ZU&-?u=qG;w z>VL^Oh-mooZBJ%tc;DSivtH1}Sx!aNrp9vu*<_q-5|1}&4Fh9G7%_-Rh3vApXy$qc zg22u=a&6-9ZJSgKqIt0>=5J2Ip!0AZJd7QTk#dEQCUHf>(w588mZ_|-T7kH%q$EWW z7v^N~KGFAyzf%p50j=_#xE1(DbfzODFf-dkiH|IHHc;< zMU>6H3?Gx;g`8z+y1^eZ&SgYNJ`ISeo>3Nc(07uzqm_=$0L`=BL`7E8EeS# zI?~`H$iXyl1UUw)LG)fqvAv1U$Y5_BgEgA}A@Q;$lIK9fGCkRkerOB`Y41!8X31|p skaCKck@Y{1;Y&hx&)LZuNuc|NM_kgFM{&=iATtEL4sAVz7e#b%3|cJ!zyJUM diff --git a/images/apple/PLASMA-2.1-FPSOS.po b/images/apple/PLASMA-2.1-FPSOS.po index 15d94ccad75f9c12065f740a0933525c0e49f204..908ad200de59d5bbd571d2780d65f2feba9fdd5c 100644 GIT binary patch delta 416 zcmZp8z|ru4V}mmbua$u!KLf*I1_lsgasZ2z35p04gI2JAu%4%1h-**)0~kaw@G|I$ zgViH6&coEGi_qxh83NRr3Do!rUE>=TDN{5XF9$~kL#%?3{GAMp3=B-DHZo0SWIEc! zwvCNZhKB`Yz;p#6MrBm*Ob-xZMDtH4gQ{CVa7Yls{C|@eSQt*Tpqf5?9u}P{!H#~e z-bgwZFt9N^=0wx^2B;J6BL$GlIvKQFeO!Hm^_=}(T*2Deb}$GsFet!vLX?4g)F#5X IOoT}W0MD*U5dZ)H delta 416 zcmZp8z|ru4V}mmbucd*uAOpi;1_lsgasZ2z35p04gI2JAu%4%1h-**)0~kaw@G|I$ zgViH6&coEGi_qxh83NRr3Do!rUE>=TDN{5XF9$~kL#%?3{GAMp3=B-DHZo0SWIEc! zwvCNZhKB`Yz;p#6MrBm*Ob-xZMDtH4gQ{CVa7Yls{C|@eSQt*Tpqf5?9u}P{!H#~e z-bgwZFt9N^=0wx^2B;J6BL$GlIvKQFeO!Hm^_=}(T*2Deb}#?~T>-8Wq73AtHW9{U HB1|#>+0si; diff --git a/images/apple/PLASMA-2.1-INET.po b/images/apple/PLASMA-2.1-INET.po index a7828273b7cffb3ac0b3eeaac81771d25654da35..1478aa14c2357d825422586a0076c5197c2c5c79 100644 GIT binary patch delta 197 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 delta 9126 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 Jfwbws{{s(-xLp7M diff --git a/images/apple/PLASMA-2.1-SYS.po b/images/apple/PLASMA-2.1-SYS.po index 05dda09ccb987f7e658539d94c6eec91077c1f54..b17092ab494bde096c386221449eb733d714e732 100644 GIT binary patch delta 1078 zcmZp8z|ru4V}mmbua$u!KLf*I1_lsgasZ2z35p04gKmJ2W3aEIUT|b^h^sFH!+&W8 zc7}W|uzHY21+d0>NE*Q+ObluPK4HFwW(+X!Ux$H%VLcC;#y2cdrf4=^23iHv1fuzE z8JHOu*x(w$45rD9Oh-4d$&|2w?N_K$M)yh;npbQYRDC@CT#=0a=gq*%(8!Kz@Z@=z z8r41AgF-xgTw$*I7skNCu!{vv;~PwkYCw%Xo=z}*4F3`tI2oq!p=q?LmO^uUVl{^2 zRh<0;BE8`zG5jkA#=~PoJb=xdydG1da*(T^AF{?eU~pR`>{Qca$d;?%^{kIC})OJX!h9~doR*Z~jAw4}2D1_nf0DoX~`@_s) z__q^im=>D9r?1DNQ!UufCD=6(p>q!~z6JSF-M{@WBcps9x}~aKo*_uNh2h@~2403w z;;34u2XtUMS3Sxzz}dqS;rD02(3VCE?dkJ?I#F{PFhh9yg%}&bUCZ$A6);`@Wkt2q Ob~7WBFypc=#$^B|+Q3-= delta 1078 zcmZp8z|ru4V}mmbucd*uAOpi;1_lsgasZ2z35p04gKmJ2W3aEIUT|b^h^sFH!+&W8 zc7}W|uzHY21+d0>NE*Q+ObluPK4HFwW(+X!Ux$H%VLcC;#y2cdrf4=^23iHv1fuzE z8JHOu*x(w$45rD9Oh-4d$&|2w?N_K$M)yh;npbQYRDC@CT#=0a=gq*%(8!Kz@Z@=z z8r41AgF-xgTw$*I7skNCu!{vv;~PwkYCw%Xo=z}*4F3`tI2oq!p=q?LmO^uUVl{^2 zRh<0;BE8`zG5jkA#=~PoJb=xdydG1da*(T^AF{?eU~pR`>{Qca$d;?%^{kIC})OJX!h9~doR*Z~jAw4}2D1_nf0DoX~`@_s) z__q^im=>D9r?1DNQ!UufCD=6(p>q!~z6JSF-M{@WBcps9x}~aKo*_uNh2h@~2403w z;;34u2XtUMS3Sxzz}dqS;rD02(3VCE?dkJ?I#F{PFhh9yg%}&bUCZ$A6);`@Wkt2q Ob~7WBFypc=#$^CJ9mA*q diff --git a/images/apple/PLASMA-2.1.po b/images/apple/PLASMA-2.1.po index 4a2a0d60280621f0efe90b8c9927464100d83466..3a157f9d94f28841a83494a5bb318426d40be0db 100644 GIT binary patch delta 24172 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 delta 23808 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

HG_RcINPSM{W z6SR}Fl$b0|2_w-DdN=t4UCrE|bGY;0lj1|OUD39EZF#em>5`$J)_Sdy?>j1M#>~*B zU@^8pJAJJZqkVs^@~$I|M7I8@z*U$HevZRWBFMPHv)Bh_&cDwnljNq6*mfKeceCl> zYkuh{W|81_H~h$3i^niHFowJ|#w>jaKl0J~LBoqFB)jR!X;ruf-(mo{XUp(D=8#u* zEjeTx@GTn2AKQi*q=tjAk3d1R3Z+Sp+5#;EcnGxbut!XDVAe3T5&J#$5VI~yYU~qfw%Dy zzQS>Qk3Vq^64^X{2-4Gg!e9o!0jTDp4+dg5^jxAvxEXp5(d}4^SMVD2oT0bz0lvbI z=u8z-|0Zt7wPfzh$MsOL47Xw@9Bn-4xj!fHBlJ|Cvp5HdG#oEPBMzy^KyT!uFN#r$ za#WxSR$PgCOu`H-#1hXNdnK z{)f1OSPltPy~qjjB_}9=n0zBOj5wM&jyRFH7jZgq7I6-7K5-#&KVtHcoP$Dw)nPna zD34^@XjD6RxB?T=fT@^;8=)sBt-zgFkGpXnHsc{YipSB0-FOB2aS$Kk6MT-NIEHWW zJ$}M}@e3Sh7||b$=x++`;1{x0nS>)B9GVkh)$C_M{GPj=FinX)k!EqDO`!GEEr z|CC}1_(faNbhwA$PfQ|DWdSryCfDSN$Oz|KkrC=?(m&4N&(2g3nWPF|J-tKE|Hwpd zT#izdV|0{o)<-3&O~eavBjv48NzNTn!OmS#q-Ik0B97rCqDX$293AAG6&>unj*N<% zNQlt0DE>wL_UI(_72?+sM&3ekOcKctL8_JH26ZC%O*>cC!(5)1U@genR_|fwjWJ2; zL&T3^7v)!I{05B=QT`l9aSSK%7fj?J1S1i8vO{0!i4IqQH%9epTnAU8!%~7+8^)sncFe^hIIseDpcVJyL2L(a=jy9?4R3-xcJ(km!IwCOZ*dA|@HdR{od0x^ z7P63o0$hd?lwl;SsKZ#)V-gy1HD=;kEQFppaSLvRo;h(BHsAp~h66Z+kMJ43z}I@J z#c}+AQ}_jE@HZ5a9D)#vNW>rky^x1O3_>x6VI*w05);sfIhcnQ+yoWNu?l?nQ5_q2 z*o+796n5fyyo%TGCf>tm_yWi9BTnHL=-C)X5*|$OLkPMuFw%%~QGmWELOIC1P^)1} z?F2m&* zn&jYZmY@<>U@Wde1Ezz|f$BW8U#PwVKN#q3yYFD|NJV5 zdK=c_ZrqE1V=K1daXf`*@e*FeJK$rudI%qZUmH=sz*qPIzrsI->jlr@CG5o;cngQo zjGF$KwUoFKbRAD@(U~rw&E6C=Vk{!p z*~mp9`eQIk!N0E6D%4?YKIeZt!DKXII+`#K*W*U4!0osLPOQfR*oTksJx<{?e#0MV zhp~VwAN~kM1fr3MWTYbB!9yYXVE}3|1`U{od1%FhcnYuJeH_NuF!iBhBqJOBF#*>= z#a&pByRi{Z;yJvDgK&Jz!{_)KC-F0W#qaPgB%KoxNI?ejQHXvR2`d^f6LWAKT5uy& z+=`W0Qz)G43j>|^6$YvgQhpjA7jpi;BjB41^-uf*<7Hf>h(sdh;dcBBYq1%R;Bh>S z7w{(b;}AZ=5uCs&$bC5t2uBp+!M7&P?7l&2USH0CA1W@#U<`u=)v%!+6Jf_Jv|u&v zL@PGp0c^)k9Kx6Q20!8#`~&}fyjvm*d1%Ew*y!NlVLXnVcp3X}2p{4&e!zcm2GZr+ z8xV;kq@WN*7>ePj#27SSD(2v3II#{7;&JSO;|(4T<2ZhW=+81C9vLV^5w1WZW}yYk zu^O%TH@4yl?7|D!gEw&yM{pF<06rrk4Dm=C!1*6QFbL(SKrNM#{Ea2;;MZMXyLuo(~FAv}ra z@ghFN5qyj9@f*%UDdN?G5{yJ0#$r4gaZQnMURM;Mwm2xX;vU?G&3Fhq@GSOVFZSUe zKEoF@{$G)-{z?1~I$#>an-fBih-9QA3%Tfr5>%iPHjIN~0uPfh6?1SsZopzJ#VuHc zR&2%=Jc=E78hh|2-o^X)2%q9R{D4yk9?bG13aQ9J9}FJM`5!@0i?Nu9DVTTmChgLc^msZ zN!?E3SBYOE-iQ5o4~Os}9AEKp96#bWoW-B`hlXOPq8f(^r)j9{Oc^SxX+!y@gmTVM z#hE|Us1{PLpgfE1*A7i^&L5hnUQgXZIIt4`!g}_(XJ~|T8}T!E4lhvm=}_6B9-;6R zzQIZSf;0F7?d&9#M5w+c{Obszh(vq|>EP6766c}-eNjSvSxKT=PFw*i>ZluA5~kMk zJdte;)J;VbW|ugGb1oYfP*}tcONf^d--cCiVjVVND;~jPc#3^rVBbB&d+|2j#ryaS zU*R}T;79iTFN6Js_zeC=2b5Cb^mmjdsUZa6JV%%E+9ggU&LYl1J_@PpUmBn|M}vUd}$Num)L9D%X`JIiDz% z)u)JemdehyQls+#mDaVy* zZ>zKA@hA4ksgyq=H#MP0Zt5jk_8#s|-R*2BbFs8+PO$KQILLe<5o=m(_URhFu5eF^yohEd`(KWO&EIFP8(+ubjMP_I$a9S*p?G^N^QKF*jB)+N;`0rK z+`^h_`rrKQb~$S&FVQlt^G_CcwUrmrve5Hv6n$#af2*Z?XH%&1oIsZQmutGlFXW{x zvgC0tv>lgd8B<;{%u?Gm2&TTAVLa?Hfwps>nvx289Mt`LITsGPnuD4>&a7tj_v$g+ zjB@Lk3y0*OYmJIHrT?Ah?i1Z~iI&m)foT2iJoO-O4KViu4L3Is8-bQC@JXTHHajBMd{K-Vi6&G4QLCa{5VYHnK z@Jh0J9yIR4t;;oi`5Btd_dKX|QqSQ=@yki)kEmbY&(gBQv*jjQUi`|R<$hV-pF3zp XgV%}%?-dO`D;j)PH26K#;BWpv0ifah diff --git a/src/samplesrc/rod.pla b/src/samplesrc/rod.pla index e18d375..8d5657d 100644 --- a/src/samplesrc/rod.pla +++ b/src/samplesrc/rod.pla @@ -24,7 +24,7 @@ def rod#0 conio:grplot(i, fmk) conio:grplot(fmk, i) if conio:keypressed() - getc + conio:getkey() return fin next diff --git a/src/scripts/bounce.4th b/src/scripts/bounce.4th index 81dc06d..d32e42c 100644 --- a/src/scripts/bounce.4th +++ b/src/scripts/bounce.4th @@ -35,7 +35,7 @@ SRC" GRLIB.4TH" 0 GRCLEAR BEGIN MOVEBALL - ?TERMINAL + KEY? UNTIL KEY DROP -1 GRMODE DROP diff --git a/src/scripts/hrbounce.4th b/src/scripts/hrbounce.4th index 855be33..c2dcf60 100644 --- a/src/scripts/hrbounce.4th +++ b/src/scripts/hrbounce.4th @@ -39,7 +39,7 @@ SRC" HGRLIB.4TH" 0 HGRSHOW DROP BEGIN MOVEBALL - ?TERMINAL + KEY? UNTIL KEY DROP -1 HGRMODE DROP diff --git a/src/scripts/rod.4th b/src/scripts/rod.4th index 10c4e8e..a9cc837 100644 --- a/src/scripts/rod.4th +++ b/src/scripts/rod.4th @@ -26,7 +26,7 @@ SRC" CONIO.4TH" FMI @ K @ PLOT J FMK @ PLOT FMK @ J PLOT - ?TERMINAL IF ( if keypressed ) + KEY? IF ( if keypressed ) KEY DROP UNLOOP ( clean up DO-OKIE ) UNLOOP diff --git a/src/toolsrc/codegen.c b/src/toolsrc/codegen.c index 905cf14..bc4fcfc 100755 --- a/src/toolsrc/codegen.c +++ b/src/toolsrc/codegen.c @@ -871,7 +871,7 @@ void emit_select(int tag) fprintf(outputfile, "\t%s\t$52\t\t\t; SEL\n", DB); fprintf(outputfile, "\t%s\t_B%03d-*\n", DW, tag); } -void emit_caseblock(int casecnt, int *caseof, int *casetag) +void emit_caseblock(int casecnt, int *caseof, int *casetyp, int *casetag) { int i; @@ -881,7 +881,14 @@ void emit_caseblock(int casecnt, int *caseof, int *casetag) fprintf(outputfile, "\t%s\t$%02X\t\t\t; CASEBLOCK\n", DB, casecnt & 0xFF); for (i = 0; i < casecnt; i++) { - fprintf(outputfile, "\t%s\t$%04X\n", DW, caseof[i] & 0xFFFF); + if (casetyp[i] & (FUNC_TYPE | ADDR_TYPE)) + { + int fixup = fixup_new(caseof[i], casetyp[i], FIXUP_WORD); + char *taglbl = tag_string(caseof[i], casetyp[i]); + fprintf(outputfile, "_F%03d%c\t%s\t%s+%d\t\t\n", fixup, LBL, DW, casetyp[i] & EXTERN_TYPE ? "0" : taglbl, 0); + } + else + fprintf(outputfile, "\t%s\t$%04X\n", DW, caseof[i] & 0xFFFF); fprintf(outputfile, "\t%s\t_B%03d-*\n", DW, casetag[i]); } } diff --git a/src/toolsrc/codegen.h b/src/toolsrc/codegen.h index ffde6de..12d5017 100755 --- a/src/toolsrc/codegen.h +++ b/src/toolsrc/codegen.h @@ -151,7 +151,7 @@ void emit_indexword(void); int emit_unaryop(t_token op); int emit_op(t_token op); void emit_select(int tag); -void emit_caseblock(int casecnt, int *caseof, int *casetag); +void emit_caseblock(int casecnt, int *caseof, int *casetype, int *casetag); void emit_brand(int tag); void emit_bror(int tag); void emit_brtru(int tag); diff --git a/src/toolsrc/codegen.pla b/src/toolsrc/codegen.pla index f432f66..44232a8 100644 --- a/src/toolsrc/codegen.pla +++ b/src/toolsrc/codegen.pla @@ -198,14 +198,18 @@ def emit_select(tag)#0 emit_byte($52) emit_reladdr(tag) end -def emit_caseblock(cnt, oflist, taglist)#0 +def emit_caseblock(cnt, oflist, typlist, taglist)#0 byte i if not cnt or cnt > 256; exit_err(ERR_OVER|ERR_STATE); fin emit_pending_seq emit_byte(cnt) for i = 0 to cnt-1 - emit_word(oflist=>[i]) + if typlist=>[i] & CONSTADDR_TYPE + emit_addr(oflist=>[i], 0) + else + emit_word(oflist=>[i]) + fin emit_reladdr(taglist=>[i]) next end diff --git a/src/toolsrc/parse.c b/src/toolsrc/parse.c index 4587926..691cb40 100755 --- a/src/toolsrc/parse.c +++ b/src/toolsrc/parse.c @@ -850,7 +850,7 @@ int parse_stmnt(void) { int tag_prevbrk, tag_prevcnt, tag_else, tag_endif, tag_while, tag_wend, tag_repeat, tag_for, tag_choice, tag_of; int type, addr, step, cfnvals, constsize, casecnt, i; - int *caseval, *casetag; + int *caseval, *casetyp, *casetag; long constval; char *idptr; t_opseq *seq, *fromseq, *toseq; @@ -1052,6 +1052,7 @@ int parse_stmnt(void) break_tag = tag_new(BRANCH_TYPE); tag_choice = tag_new(BRANCH_TYPE); caseval = malloc(sizeof(int)*256); + casetyp = malloc(sizeof(int)*256); casetag = malloc(sizeof(int)*256); casecnt = 0; if (!(seq = parse_expr(NULL, &cfnvals))) @@ -1070,7 +1071,7 @@ int parse_stmnt(void) { tag_of = tag_new(BRANCH_TYPE); constval = 0; - parse_constexpr(&constval, &constsize); + type = parse_constexpr(&constval, &constsize); i = casecnt; while ((i > 0) && (caseval[i-1] > constval)) { @@ -1078,12 +1079,14 @@ int parse_stmnt(void) // Move larger case consts up // caseval[i] = caseval[i-1]; + casetyp[i] = casetyp[i-1]; casetag[i] = casetag[i-1]; i--; } if ((i < casecnt) && (caseval[i] == constval)) parse_error("Duplicate CASE"); caseval[i] = constval; + casetyp[i] = type; casetag[i] = tag_of; casecnt++; emit_codetag(tag_of); @@ -1099,7 +1102,7 @@ int parse_stmnt(void) else tag_of = 0; emit_codetag(tag_choice); - emit_caseblock(casecnt, caseval, casetag); + emit_caseblock(casecnt, caseval, casetyp, casetag); tag_choice = 0; scan(); if (tag_of) @@ -1117,9 +1120,10 @@ int parse_stmnt(void) { emit_brnch(break_tag); emit_codetag(tag_choice); - emit_caseblock(casecnt, caseval, casetag); + emit_caseblock(casecnt, caseval, casetyp, casetag); } free(caseval); + free(casetyp); free(casetag); emit_codetag(break_tag); break_tag = tag_prevbrk; diff --git a/src/toolsrc/parse.pla b/src/toolsrc/parse.pla index d240754..96e7315 100644 --- a/src/toolsrc/parse.pla +++ b/src/toolsrc/parse.pla @@ -614,7 +614,7 @@ def parse_stmnt byte type, elem_type, elem_size, cfnvals word seq, fromseq, toseq, tag_prevbrk, tag_prevcnt, tag_else, tag_endif, tag_while, tag_wend word tag_repeat, tag_for, tag_choice, tag_of, idptr, addr, stepdir - word caseconst, casecnt, caseval, casetag, i + word caseconst, casetype, casecnt, caseval, casetyp, casetag, i if token <> END_TKN and token <> DONE_TKN and token <> OF_TKN and token <> DEFAULT_TKN prevstmnt = token @@ -803,6 +803,7 @@ def parse_stmnt break_tag = new_tag(RELATIVE_FIXUP) tag_choice = new_tag(RELATIVE_FIXUP) caseval = heapalloc(CASENUM) + casetyp = heapalloc(CASENUM) casetag = heapalloc(CASENUM) casecnt = 0 seq, cfnvals = parse_expr(NULL) @@ -818,19 +819,21 @@ def parse_stmnt when token is OF_TKN if casecnt == CASENUM; exit_err(ERR_OVER|ERR_TABLE); fin - caseconst, drop, drop = parse_constexpr - tag_of = new_tag(RELATIVE_FIXUP) - i = casecnt + caseconst, drop, casetype = parse_constexpr + tag_of = new_tag(RELATIVE_FIXUP) + i = casecnt while i > 0 and caseval=>[i-1] > caseconst // // Move larger case consts up // caseval=>[i] = caseval=>[i-1] + casetyp=>[i] = casetyp=>[i-1] casetag=>[i] = casetag=>[i-1] i-- loop if i < casecnt and caseval=>[i] == caseconst; exit_err(ERR_DUP|ERR_STATE); fin caseval=>[i] = caseconst + casetyp=>[i] = casetype casetag=>[i] = tag_of casecnt++ emit_tag(tag_of) @@ -845,7 +848,7 @@ def parse_stmnt emit_branch(tag_of) fin emit_tag(tag_choice) - emit_caseblock(casecnt, caseval, casetag) + emit_caseblock(casecnt, caseval, casetype, casetag) tag_choice = 0 if tag_of emit_tag(tag_of) @@ -866,7 +869,7 @@ def parse_stmnt if tag_choice emit_branch(break_tag) emit_tag(tag_choice) - emit_caseblock(casecnt, caseval, casetag) + emit_caseblock(casecnt, caseval, casetyp, casetag) fin heaprelease(caseval) emit_tag(break_tag) diff --git a/src/toolsrc/plforth.pla b/src/toolsrc/plforth.pla index f11fb4e..921feff 100644 --- a/src/toolsrc/plforth.pla +++ b/src/toolsrc/plforth.pla @@ -111,7 +111,7 @@ predef _componly_#0, _interponly_#0, _immediate_#0, _exit_#0, _pad_#1, _trailing predef _tors_(a)#0, _fromrs_#1, _toprs_#1, _lookup_#1, _latest_#1 predef _cmove_(a,b,c)#0, _move_(a,b,c)#0, _fill_(a,b,c)#0, _plasma_(a)#0 predef _var_(a)#0, _const_(a)#0, _lit_#1, _slit_#1, _find_(a)#2 -predef _tick_#0, _forget_#0, _terminal_#1, _key_#1, _prat_(a)#0 +predef _tick_#0, _forget_#0, _keypressed_#1, _key_#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, _accept_(a,b)#1, _type_(a,b)#0 predef _vlist_#0, _tron_#0, _troff_#0, _stepon_#0, _stepoff_#0 @@ -525,14 +525,14 @@ word = 0, 0, @_lit_ char d_literal = "LITERAL" byte = imm_flag | componly_flag word = @d_tick, 0, @_compliteral_ -// ?TERMINAL -char d_terminal = "?TERMINAL" +// KEY? +char d_keypressed = "KEY?" byte = 0 -word = @d_literal, 0, @_terminal_ +word = @d_literal, 0, @_keypressed_ // KEY char d_key = "KEY" byte = 0 -word = @d_terminal, 0, @_key_ +word = @d_keypressed, 0, @_key_ // ACCEPT char d_accept = "ACCEPT" byte = 0 @@ -542,7 +542,7 @@ char d_word = "WORD" byte = 0 word = @d_accept, 0, @_word_ // _isnum_ -char d__isnum_ = "?NUM" +char d__isnum_ = "NUM?" byte = 0 word = @d_word, 0, @_isnum_ // -TRAILING @@ -1586,7 +1586,7 @@ def _accept_(a,b)#1 inptr = saveinptr return len end -def _terminal_#1 +def _keypressed_#1 return conio:keypressed() > 127 end def _key_#1 @@ -1776,35 +1776,48 @@ def _show_#0 else // @d_dodoes pfa = *_pfa_(dentry) fin + putc('$'); puth(pfa); putc(' ') w = *pfa while w - puts(" ") if ^_ffa_(w) & param_flag pfa = pfa + 2 - fin - if w == @d_slit - putc('"') - puts(pfa) - putc('"') - pfa = pfa + ^pfa - 1 - elsif w == @d_lit - puti(*pfa) + when w + is @d_slit + putc('"') + puts(pfa) + putc('"') + pfa = pfa + ^pfa - 1 + break + is @d_lit + puti(*pfa) + break + is @d_branch + is @d_0branch + is @d_doloop + puts(w); puts(" $"); puth(*pfa) + break + otherwise + puts(w) + wend else puts(w) fin - if ^_ffa_(w) & showcr_flag; putln; fin pfa = pfa + 2 + if ^_ffa_(w) & showcr_flag + putln; putc('$'); puth(pfa) + fin + putc(' ') w = *pfa if !w pfa = pfa + 2 w = *pfa - if !*w; puts(" EXIT\n"); fin + if w; puts("EXIT\n"); putc('$'); puth(pfa); putc(' '); fin // Early exit fin if conio:keypressed() conio:getkey(); conio:getkey() fin loop - puts(" EXIT\n") + puts("EXIT\n") fin end def _showstack_#0