blob: 4e2223b706ab647f1499ca15221a56977f7b5cbd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# 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
Many words from [core ANS Forth](https://forth-standard.org/standard/core) are supported. See `compat.txt` for a list.
Some features are not expected to be implemented:
* Pictured numeric output, e.g. `<# # #>`
* Double-width arithmetic
## 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
|