diff --git a/emul/forth/z80c.bin b/emul/forth/z80c.bin index 19c2a3f..9445443 100644 Binary files a/emul/forth/z80c.bin and b/emul/forth/z80c.bin differ diff --git a/forth/forth.asm b/forth/forth.asm index a8c4f71..e9a9be3 100644 --- a/forth/forth.asm +++ b/forth/forth.asm @@ -869,18 +869,10 @@ FETCH: push hl jp next -; ( a -- ) - .db "DROP" - .dw $-FETCH - .db 4 -; STABLE ABI -DROP: - .dw nativeWord - pop hl - jp next +.fill 13 .db "_bend" - .dw $-DROP + .dw $-FETCH .db 5 ; Offset: 0647 .out $ diff --git a/forth/icore.fs b/forth/icore.fs index d7e8420..f0de5ed 100644 --- a/forth/icore.fs +++ b/forth/icore.fs @@ -57,7 +57,7 @@ : QUIT 0 FLAGS ! _c (resRS) - LIT< INTERPRET (find) DROP EXECUTE + LIT< INTERPRET (find) _c DROP EXECUTE ; : ABORT _c (resSP) _c QUIT ; @@ -101,7 +101,7 @@ : TOWORD BEGIN - _c C< _c DUP _c WS? NOT IF EXIT THEN DROP + _c C< _c DUP _c WS? NOT IF EXIT THEN _c DROP AGAIN ; @@ -155,10 +155,10 @@ ; : BOOT - LIT< (c<) (find) NOT IF LIT< KEY (find) DROP THEN + LIT< (c<) (find) NOT IF LIT< KEY (find) _c DROP THEN ( JTBL+40 == CINPTR ) [ JTBL 40 + @ LITN ] ! - LIT< (c<$) (find) IF EXECUTE ELSE DROP THEN + LIT< (c<$) (find) IF EXECUTE ELSE _c DROP THEN _c INTERPRET ; @@ -191,7 +191,7 @@ : Y ['] EXIT , - _c R> DROP ( exit : ) + _c R> _c DROP ( exit : ) ; IMMEDIATE ( Give ":" and ";" their real name ) diff --git a/forth/z80c.fs b/forth/z80c.fs index f91760c..e820fb9 100644 --- a/forth/z80c.fs +++ b/forth/z80c.fs @@ -39,6 +39,11 @@ CODE DUP HL PUSHqq, ( A ) ;CODE +( a -- ) +CODE DROP + HL POPqq, +;CODE + ( a b -- b a ) CODE SWAP HL POPqq, ( B )