From 49994f09cedc6d8f6b0e2876f9cea82ed7427159 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 30 Mar 2020 13:54:46 -0400 Subject: [PATCH] forth: add word "2DROP" --- emul/forth/z80c.bin | Bin 1276 -> 1287 bytes forth/dictionary.txt | 1 + forth/icore.fs | 4 ++-- forth/z80c.fs | 6 ++++++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/emul/forth/z80c.bin b/emul/forth/z80c.bin index 801370e9304867000f62405b1436c2223bc7a700..19c2a3f6f01141d42067828bd462ca2986611a16 100644 GIT binary patch delta 430 zcmXw#y-UMT6vc1eOJ3fK5*5FSf{lV=k%9;cDp&$GAV^bUYQaTPzYt56+EPRzxM)W) ze}JI>fa2ufRB+Gg61#|l6lW3YORej@_nh;)=Z9S?SGm4r%S`uzGzj&2Z3t$}^`zDL zu$Mu?wfBsoqDv|B-q1j5n(1irsJLG!#ri>3!6A>bLuz7x2;37L`BVb|=42PWH~D3G zH(!ZO08wEKj!VwgLA+ep-YM?p4=b?2rac2k7w%+V8Yh1;U+U&2*|o$lU==hNg{QV* zP1KQXW=(53658D|hxpzN9&ta}1?g_fTT>RGM)RIe)DKRuQz#WrVpAb&7}KHT#Q!*h zlZS!F#AqP|d~e7UKeF&5XrZj6?4*^pl6C@^3LVNB|1`qE1o-CrD%QLuF|&WF=xBAt zP9;E8;YHFQ!YiPdVjV5?z_|+Z3daG8{|p9rZR<2Z6sp)oBA>fRfd&t);xENTue`d& S*-)o}jwp`PdEUxq7YM)dBVXnK delta 409 zcmZqY`olRPiPb;MHAr}4Stt`@^W-y3@+<`$KRG79XA-MdVmuivgsdZ5(~^mbD+mSb{4algI#eSC~wZr!Mtp;EQ=)5KhDV( zENPhqT#igWo*{nr3@m&M$5<5@B!FJ$VCDdN!%C2$k&i)-3uqGq2lGG98ekxa0RzmP x0~A;t%=JtxK=FDeE{1nNlRKE7a@8~40tT72DM+6JgCi3Mvm6H~NaOh#7y*o-S!DnK diff --git a/forth/dictionary.txt b/forth/dictionary.txt index b6953d4..2759cc0 100644 --- a/forth/dictionary.txt +++ b/forth/dictionary.txt @@ -100,6 +100,7 @@ DUP a -- a a OVER a b -- a b a ROT a b c -- b c a SWAP a b -- b a +2DROP a a -- 2DUP a b -- a b a b 2OVER a b c d -- a b c d a b 2SWAP a b c d -- c d a b diff --git a/forth/icore.fs b/forth/icore.fs index 230fc44..d7e8420 100644 --- a/forth/icore.fs +++ b/forth/icore.fs @@ -74,7 +74,7 @@ _c DUP ( a a ) _c C@ ( a c ) ( exit if null ) - _c DUP NOT IF DROP DROP EXIT THEN + _c DUP NOT IF _c 2DROP EXIT THEN _c EMIT ( a ) 1 _c + ( a+1 ) AGAIN @@ -121,7 +121,7 @@ UNTIL ( a this point, PS is: a WS ) ( null-termination is already written ) - DROP DROP + _c 2DROP [ JTBL 30 + @ LITN ] ; diff --git a/forth/z80c.fs b/forth/z80c.fs index 3846598..f91760c 100644 --- a/forth/z80c.fs +++ b/forth/z80c.fs @@ -69,6 +69,12 @@ CODE 2DUP HL PUSHqq, ( B ) ;CODE +( a b -- ) +CODE 2DROP + HL POPqq, + HL POPqq, +;CODE + ( a b c d -- a b c d a b ) CODE 2OVER