summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkitty <nepeta@canaglie.net>2026-01-30 21:31:42 +1100
committerkitty <nepeta@canaglie.net>2026-01-30 21:31:42 +1100
commitd22e6159d2586a799160c5ceb5424a4ec3d5a422 (patch)
tree8c9f4f49f40a1280e68176125bf97869069ffb17
parent0eb8b9538c68048bc24520719ea4fa69b1509030 (diff)
put a redundant null byte after the string
this will cause issues if the word has a null byte in the name. so don't do that. obviously
-rw-r--r--jefs.s1
-rw-r--r--readme.md6
2 files changed, 7 insertions, 0 deletions
diff --git a/jefs.s b/jefs.s
index c0b1b82..3234b44 100644
--- a/jefs.s
+++ b/jefs.s
@@ -21,6 +21,7 @@
%define mac_latest lfa_%2
ffa_%2: db %3 ; FFA
nfa_%2: dw slen ; NFA
+ db 0
db %1
%endmacro
diff --git a/readme.md b/readme.md
index 97ed56a..51a8f1c 100644
--- a/readme.md
+++ b/readme.md
@@ -18,11 +18,17 @@ the dictionary follows a fairly standard format.
| flag | 1 byte | FFA (flag field address) |
| string length | 2 bytes | NFA (name field address) |
| string | variable length | still NFA |
+| null byte | 1 byte |
| code | variable length | CFA (code field address) |
probably, some bitmask antics could be done to store the string length
and flags together. but alternatively: no.
+the stored string is a counted string but also has a
+null byte at the end. bit of a waste of space but i can use
+x86's `repz` for it. maybe there is a counted string version
+though, i don't know
+
## forth registers
there are a set of 'virtual registers' (see moving forth part 1)