You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
4 weeks ago | |
---|---|---|
msp430 | 4 weeks ago | |
x86 | 4 weeks ago | |
.gitignore | 1 month ago | |
LICENSE | 4 weeks ago | |
Makefile | 4 weeks ago | |
README.md | 4 weeks ago | |
foci.c | 4 weeks ago | |
foci.h | 4 weeks ago |
README.md
foci
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 less than 5 kB, while RAM usage is in the hundreds of bytes (primarily influenced by the configured stack and dictionary sizes).
Available words
dup drop swap rot -rot over tuck @ ! c@ c! + +! - * / mod and or xor = < [ ] ,
cell cell+ cells base here allot latest negate invert 1- 1+ aligned align : ;
literal if then else ' ['] execute decimal hex . emit begin until again while
repeat >r r> 2>r 2r> r@ do loop i immediate
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 microcontrollersmake msp430
: TI MSP430 microcontrollers