Fixed problem with TICK, but now only works when compiled.
[forth.jl.git] / src / forth.jl
index fba2375..df86674 100644 (file)
@@ -284,8 +284,17 @@ TWOSWAP = defPrimWord("2SWAP", () -> begin
     d = popPS()
     pushPS(b)
     pushPS(a)
-    pushPS(c)
     pushPS(d)
+    pushPS(c)
+    return NEXT
+end)
+
+TWOOVER = defPrimWord("2OVER", () -> begin
+    ensurePSDepth(4)
+    a = mem[reg.PSP-3]
+    b = mem[reg.PSP-2]
+    pushPS(a)
+    pushPS(b)
     return NEXT
 end)
 
@@ -813,10 +822,14 @@ IMMEDIATE = defPrimWord("IMMEDIATE", () -> begin
     return NEXT
 end, flags=F_IMMED)
 
+#TICK = defWord("'",
+#    [STATE_CFA, FETCH, ZBRANCH, 7,
+#    FROMR, DUP, INCR, TOR, FETCH, EXIT,
+#    WORD, FIND, TOCFA, EXIT])
+
 TICK = defWord("'",
-    [STATE_CFA, FETCH, ZBRANCH, 7,
-    FROMR, DUP, INCR, TOR, FETCH, EXIT,
-    WORD, FIND, TOCFA, EXIT])
+    [FROMR, DUP, INCR, TOR, FETCH, EXIT])
+
 
 # Strings