From 0eb8b9538c68048bc24520719ea4fa69b1509030 Mon Sep 17 00:00:00 2001 From: kitty Date: Fri, 30 Jan 2026 21:25:04 +1100 Subject: more primitives, notably PARSE, untested --- readme.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'readme.md') diff --git a/readme.md b/readme.md index e01353b..97ed56a 100644 --- a/readme.md +++ b/readme.md @@ -28,7 +28,7 @@ there are a set of 'virtual registers' (see moving forth part 1) - W, the working register, is r11. - X, the secondary working register, is r12. -- IP, the instruction pointer, is r13. (this will only be needed if we switch to DTC, otherwise this can be Y, a third general purpose register) +- Y, the tertiary working register, is r13. - SP, the working stack pointer, is r14. - RSP, the return stack pointer, is rsp. @@ -57,8 +57,11 @@ but obviously we need *something* to bootstrap from. - `:` (` -- `): compile a word from the current input source - `;` (` -- `): stop compiling the current word - `parse` (` -- c-addr u`): parse a word from the *forth init* (see footnote) +- `find` (`c-addr u -- ?lfa flag`) +- `interpret`: the stage 1 interpreter - `latest`: a variable, the latest defined word - `state`: a variable, determines current mode (interp./compiling) +- `>in`: a variable, offset from start of forth init on `parse`: i don't want to deal with file access and stuff from the kernel. so this word will be Upgraded in the forth init to read from a file. -- cgit v1.2.3