diff options
author | Clyne Sullivan <clyne@bitgloo.com> | 2025-01-27 20:18:24 -0500 |
---|---|---|
committer | Clyne Sullivan <clyne@bitgloo.com> | 2025-01-27 20:18:24 -0500 |
commit | a2f70952e1979e47af6e181a107516efca11648c (patch) | |
tree | 0dbdb2db6525f530184a3648b81a1a2913d7a1b6 | |
parent | f88ad6651b961781d67e79e282cdf2189bc52f2d (diff) |
update readme
-rw-r--r-- | README.md | 23 |
1 files changed, 22 insertions, 1 deletions
@@ -1,3 +1,24 @@ # foci -When will I stop creating Forths
\ No newline at end of file +`foci` is a small Forth implementation that prioritizes performance and portability. This threaded Forth implementation uses CPU registers and native execution to maximize efficiency. + +Register usage is the only platform-specific requirement; otherwise, `foci` is written in 100% portable C. There is active support for x86\_64, ARM Cortex-M, and MSP430 architectures. + +`foci` compiles to a binary object that can easily be linked into another application. Code size is generally a few kilobytes, while RAM usage is primarily set by the size of `foci`'s two stacks and dictionary. + +## Available words + +``` +dup drop swap rot -rot over tuck @ ! c@ c! + +! - * / mod and or xor _c [ ] +, cell cell+ cells _d base here allot latest negate invert 1- 1+ aligned align +: ; literal _b _bz if then else \' [\'] execute decimal hex . emit +``` + +## Build instructions + +Run `make` with a supported architecture target: + +* `make x86-64`: x86\_64 processors (i386 is *not* supported) +* `make arm-cm4`: ARM Cortex-M4 microcontrollers +* `make msp430`: TI MSP430 microcontrollers + |