Added CMOVE>
[forth.jl.git] / src / forth.jl
index da7321b..5730c38 100644 (file)
@@ -698,7 +698,7 @@ end)
 
 # Dictionary searches
 
-LFATOCFA_CFA = defPrimWord("LFA>CFA", () -> begin
+FROMLINK_CFA = defPrimWord("LINK>", () -> begin
 
     addr = popPS()
     lenAndFlags = mem[addr+1]
@@ -709,8 +709,6 @@ LFATOCFA_CFA = defPrimWord("LFA>CFA", () -> begin
     return NEXT
 end)
 
-TOBODY_CFA = defWord(">BODY", [INCR_CFA, EXIT_CFA])
-
 CONTEXT, CONTEXT_CFA = defNewVar("CONTEXT", zeros(Int64, 100))
 mem[CONTEXT] = FORTH_CFA
 NUMCONTEXT, NUMCONTEXT_CFA = defNewVar("#CONTEXT", 1)
@@ -755,7 +753,7 @@ FIND_CFA = defPrimWord("FIND", () -> begin
 
     if lfa > 0
         pushPS(lfa)
-        callPrim(mem[LFATOCFA_CFA])
+        callPrim(mem[FROMLINK_CFA])
         if (lenAndFlags & F_IMMED) == F_IMMED
             pushPS(1)
         else
@@ -890,7 +888,7 @@ end, name="DODOES")
 DOES_HELPER_CFA = defPrimWord("(DOES>)", () -> begin
 
     pushPS(mem[mem[CURRENT]])
-    callPrim(mem[LFATOCFA_CFA])
+    callPrim(mem[FROMLINK_CFA])
     cfa = popPS()
 
     runtimeAddr = popPS()
@@ -901,7 +899,7 @@ DOES_HELPER_CFA = defPrimWord("(DOES>)", () -> begin
     end)), name="doesPrim")
 
     return NEXT
-end, flags=F_IMMED)
+end, flags=F_IMMED | F_HIDDEN)
 
 DOES_CFA = defWord("DOES>",
     [LIT_CFA, LIT_CFA, COMMA_CFA, HERE_CFA, LIT_CFA, 3, ADD_CFA, COMMA_CFA,