summary refs log tree commit diff
path: root/quine.asm
diff options
context:
space:
mode:
authorIrene Knapp <ireneista@irenes.space>2026-05-11 18:03:11 -0700
committerIrene Knapp <ireneista@irenes.space>2026-05-11 18:03:45 -0700
commita2268b0dee73f5407315f6c7c3d5ca3f718db40c (patch)
treec2a0b53f7c03387bd3fa1428c725e2c1d0499dae /quine.asm
parent86606391c738c5b9022f3bf3c1fe52f2fb27f292 (diff)
implement all the core Forth stuff in Evocation-assembly
also, add support for ;asm and stuff

Force-Push: yes
Change-Id: I904bc0c31e7e4c8b0abc7790f3af5d20c275f2a5
Diffstat (limited to 'quine.asm')
-rw-r--r--quine.asm30
1 files changed, 30 insertions, 0 deletions
diff --git a/quine.asm b/quine.asm
index 12a45f8..44ff249 100644
--- a/quine.asm
+++ b/quine.asm
@@ -7737,6 +7737,36 @@ cold_start:
   dq swap, litstring, ";", early_find, roll3, execute
 
 
+  dq litstring, ";asm", early_create, early_docol_codeword
+  dq litstring, "here", early_find, entry_to_execution_token, early_comma
+  dq litstring, "@", early_find, entry_to_execution_token, early_comma
+  dq litstring, "pack-next", early_find, entry_to_execution_token, early_comma
+  dq litstring, "lit", early_find, entry_to_execution_token, early_comma
+  dq lit, 8, early_comma
+  dq litstring, "packalign", early_find, entry_to_execution_token, early_comma
+  dq litstring, "here", early_find, entry_to_execution_token, early_comma
+  dq litstring, "!", early_find, entry_to_execution_token, early_comma
+  dq litstring, "latest", early_find, entry_to_execution_token, early_comma
+  dq litstring, "@", early_find, entry_to_execution_token, early_comma
+  dq litstring, "dup", early_find, entry_to_execution_token, early_comma
+  dq litstring, "unhide-entry", early_find, entry_to_execution_token
+  dq early_comma
+  dq litstring, "entry-to-execution-token", 0, early_find
+  dq entry_to_execution_token, early_comma
+  dq litstring, "dup", early_find, entry_to_execution_token, early_comma
+  dq litstring, "lit", early_find, entry_to_execution_token, early_comma
+  dq lit, 8, early_comma
+  dq litstring, "+", early_find, entry_to_execution_token, early_comma
+  dq litstring, "swap", early_find, entry_to_execution_token, early_comma
+  dq litstring, "!", early_find, entry_to_execution_token, early_comma
+  dq litstring, "[", early_find, entry_to_execution_token, early_comma
+  dq litstring, "exit", early_find, entry_to_execution_token, early_comma
+  dq early_here, fetch, lit, 8, packalign, early_here_store
+
+  dq litstring, "set-word-immediate", early_find, entry_to_execution_token
+  dq swap, litstring, ";asm", early_find, roll3, execute
+
+
   ; Although we will eventually define the word "'" to give us the symbol of a
   ; word, it will rely on being able to compile a literal. Rather than do
   ; lots of string processing later, we choose to define this word now to