From 0434d0281829d10eefc144d479b41599af663520 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Wed, 13 May 2020 13:24:58 -0400 Subject: [PATCH] xcomp: implement X['] --- blk/263 | 1 + blk/409 | 4 ++-- blk/411 | 2 +- blk/432 | 1 - blk/433 | 2 +- emul/forth.bin | Bin 5894 -> 5884 bytes emul/xcomp.fs | 1 + recipes/rc2014/xcomp.fs | 1 + recipes/ti84/xcomp.fs | 1 + recipes/trs80/xcomp.fs | 1 + 10 files changed, 9 insertions(+), 5 deletions(-) diff --git a/blk/263 b/blk/263 index 6dc146a..bf2ad7b 100644 --- a/blk/263 +++ b/blk/263 @@ -9,6 +9,7 @@ VARIABLE XCURRENT : XIMM XCON IMMEDIATE XCOFF ; : _xapply ( a -- a-off ) DUP ORG @ > IF ORG @ - BIN( @ + THEN ; +: X['] XCON ' _xapply LITA XCOFF ; : XCOMPILE XCON ' _xapply LITA LIT< , (find) DROP _xapply , XCOFF ; diff --git a/blk/409 b/blk/409 index c7e90d4..36a5086 100644 --- a/blk/409 +++ b/blk/409 @@ -5,10 +5,10 @@ NOT IF (parse) ELSE EXECUTE THEN C DROP I 2- @ ( I I a ) diff --git a/blk/411 b/blk/411 index 38365a9..22a0271 100644 --- a/blk/411 +++ b/blk/411 @@ -6,7 +6,7 @@ 0 0x55 RAM+ ! ( 55 == (key) override ) 0 0x0a RAM+ ! ( NLPTR ) ( 0c == C<* ) - LIT< (boot<) (find) DROP 0x0c RAM+ ! + ['] (boot<) 0x0c RAM+ ! ( boot< always has a char waiting. 06 == CR ( boot ptr ) BLK@ BLK( 0x2e RAM+ ! ( Point to beginning of BLK ) - [ LITN ( from PSP, B432 ) ] 0x08 RAM+ ! + ['] _ 0x08 RAM+ ! 1 0x06 RAM+ ! ( 06 == C 0x2e RAM+ ! R> 0x06 RAM+ ! diff --git a/emul/forth.bin b/emul/forth.bin index ae9856cb98d1c137d0c9bedb39c702be825234f4..f4efd95e527e3e3f96b0bba9dc1526d654b600b6 100644 GIT binary patch delta 1480 zcmYLJUrZcj5TD)s4(@huzumiIFQU@!!br)aVk-WL*J!>MAAM_r^}&#kpwSR{Fm0mn;)BLuYKwu!^ud@uXe-XQ3;J+(nfc~7 z^P8F9++x?mPI+As)>8t&!{q1kyRu+2CNB~jR%CWW=@c%pA>}n;mVK)@!XGRW9cyff znjk?7n~8p;JW`1GW3(EYlfGe^nx0RpF1X$~>**+js0kwMJ6=$MpiK_!?BK8l4d`h& z@T7u>@PVD?c2zY2h#~n&Z4Etn#e`w-u%HQHvWgagW055?qRvU{Wa=#b1Psy`d{(VX zJ@~mR1OYDec|+whk0G}abWbAoi-2%%48wm=iO3ObNHAdS7hrLg`=RcrJyfG1_^(V^?T02o%!Wrr?EPbgtlz&|4I^XP517TR&*0wbl zE>HyUY&}SUh}&91#5OCbQk&ysh~>{0y7=;o9>1Cgga7G)0JvEhN4*_YdR5^^*M>}8vU=# zqz&{h>vd^O=gTAD0=Ir4JSw66#H^TUcVla*%j4DQv2-gm`r#XXxQvsPp^Pw-O~j5I z<}Grnfe!x0;=EiP%dKF-S@vnH<-{F57Xwt#Uwb=rP3L7?7|42s=O0IX@Zit<)kMLE zC_MRBv1Rs8>`8-5_(fmB8wj+e`zYf(>}b3jna;C`cw254Wv~0wy)A8$b8$ZHUbrnC zm#V6PdAVia99PlD>rBKau>nK;*{{QAzq4nt@8T)pEPD`d({@#UNL_wS8@^|$#3^By zy_z_b<#IQqdvVlb(a8?zNPd$9iHSI`S=zn$0{n@R@t-?daLfV3@-KyxxW;ZJ%EneA z&>?TMIl{$wJ$#Ej(^SeoQYuX@WQzGxzn7!%4&@FTgZNFnwC{g83Gd;9evJ zji-)xblT}J$Y|KOpXNxOZ8Rl?Jo~Mw{Ujfw2&))0cqUgc;3{q{uY9OjBHu;ME8~K$ z?&E^U|KIbh-VTM&+8S8k(VoCFJF8Cf> z;(SxJi|GUkJfXEh?IPa4#pLASrz&(SgpXIIE9pZx)r$XqrFMDToUXlYR%&ldk3)qO zlAS`8%_fiH_l;!Rv)5D`O34oV)3ISO*@M4YycI6Yyg362xfL?CYIXF|%!FAi^FrFN KjJJ6bgnt3?N;y&h delta 1531 zcmYjRZ%7+w7=P~WjV8I=pCn#f=29>5rgu%Xbi^x<8Nz&qDt4OrS1}w}IIULZ?IF z(#Bgcc-^_q2J_k*lXDhJWQ}}__nP#Ce1hwsCApQ$&?WiB@~3!m%4a}Tj{0oqwev&8 zL=!B_>#_m&Jq)u867X0EFJxpJvi+iC`5mio$hD+HE8EYC0?ICW76$wLAYh;l85&iZ zIhCGK3T8&Gkxt3;7Y=dvZL5=S;hdyb{0hten*K>UDZ77Fh2S!S4r2bWIIk92`S|yK)@; zy+|DAS&g^I8o2|{(GOK~Y)!RcAZNPLd2mfD;AGMRPY46d$?5Wx6?DqFsSF2@N;$t-*1RR#X4|e5Em0e@QP%4`{_biSAbN*T& zm}dZ-5RsAp7-@B|0>v6^sM;Y*K(ngY)GI?-uY zs0kBWp`)Re^d2sR3ap&J30q`16jOBQ!T+7YyriKFW@%VZrBu@&n$T&Q2@v2ZuHM_&&gOR+`Jg#8fCWWF~wq@wIC;t~^nMM*0A zp(WVIiE@sUG3<&P5_fipiMU0-3m3G9;R!78Hpl7`^%bxhUwMC~X2alkeW2Q4Ltp;l z;6OGl!%dk120F357(K*ai@*vVIIEIAKadN+`&d8RrSrW5IX@Z(wlnG*5eF&P_ zefeCW*qbYc!7JYtqrRKkDsrUq61Gts(jyr<9cJdY#qZYSDoVsUx-zGiD{oDYLzSi??c6+_iJZjWFCr~3-I5G= tHPVTnCj&l;r0^XLCE)Vx+p`e%C!nt~H8ob9y{6|2>>j1$$5rkE?jM1IL=gZ0 diff --git a/emul/xcomp.fs b/emul/xcomp.fs index 5d62af7..0879310 100644 --- a/emul/xcomp.fs +++ b/emul/xcomp.fs @@ -4,6 +4,7 @@ 212 LOAD ( z80 assembler ) 262 LOAD ( xcomp ) : CODE XCODE ; +: ['] X['] ; IMMEDIATE : COMPILE XCOMPILE ; IMMEDIATE : [COMPILE] X[COMPILE] ; IMMEDIATE : IMMEDIATE XIMM ; diff --git a/recipes/rc2014/xcomp.fs b/recipes/rc2014/xcomp.fs index ab5c42f..3f53c5f 100644 --- a/recipes/rc2014/xcomp.fs +++ b/recipes/rc2014/xcomp.fs @@ -10,6 +10,7 @@ RAMSTART 0x70 + CONSTANT ACIA_MEM 212 LOAD ( z80 assembler ) 262 LOAD ( xcomp ) : CODE XCODE ; +: ['] X['] ; IMMEDIATE : COMPILE XCOMPILE ; IMMEDIATE : [COMPILE] X[COMPILE] ; IMMEDIATE : IMMEDIATE XIMM ; diff --git a/recipes/ti84/xcomp.fs b/recipes/ti84/xcomp.fs index b3da866..14d6a83 100644 --- a/recipes/ti84/xcomp.fs +++ b/recipes/ti84/xcomp.fs @@ -9,6 +9,7 @@ RAMSTART 0x72 + CONSTANT KBD_MEM 262 LOAD ( xcomp ) 522 LOAD ( font compiler ) : CODE XCODE ; +: ['] X['] ; IMMEDIATE : COMPILE XCOMPILE ; IMMEDIATE : [COMPILE] X[COMPILE] ; IMMEDIATE : IMMEDIATE XIMM ; diff --git a/recipes/trs80/xcomp.fs b/recipes/trs80/xcomp.fs index da36a54..5722dd7 100644 --- a/recipes/trs80/xcomp.fs +++ b/recipes/trs80/xcomp.fs @@ -4,6 +4,7 @@ RS_ADDR 0x80 - CONSTANT RAMSTART 212 LOAD ( z80 assembler ) 262 LOAD ( xcomp ) : CODE XCODE ; +: ['] X['] ; IMMEDIATE : COMPILE XCOMPILE ; IMMEDIATE : [COMPILE] X[COMPILE] ; IMMEDIATE : IMMEDIATE XIMM ;