The b16 Processor is a minimalistic stack processor, inspired by
Chuck Moore's recent work. The original
incarnation is 16 bit, byte addressed. There are 32 instructions, each
is 5 bits. Three and a bit (literally!) are packed into a 16 bit
word (bundle). The first slot in the bundle can only be a nop or a call.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Comment | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | nop | call | jmp | ret | jz | jnz | jc | jnc | destination in rest of instruction |
| nop | exec | goto | ret | gz | gnz | gc | gnc | for slot 3 | |
| 8 | xor | com | and | or | + | +c | *+ | /- | |
| 10 | A!+ | A@+ | R@+ | lit | Ac!+ | Ac@+ | Rc@+ | litc | |
| A! | A@ | R@ | lit | Ac! | Ac@ | Rc@ | litc | for slot 1 | |
| 18 | nip | drop | over | dup | >r | >a | r> | a |
The b16 is intented as small microcontroller, and suitable if you need more processing power than a 8051, but less die space (or gate count) and power consumption.
You can find more documentation in the
Forth Tagung 2002 presentation (131k), or the
English translation (2M).
You can download the
Sources (851k) (
sig), the
evaluation board schematics (74k) and the
Gerber data (481k) of the evaluation board.
There's now a USB interface (not fully tested, undocumented), minimalistic interrupts (tested, somewhat documented), and a small test bench to integrate all that stuff. I plan to also add an Ethernet MAC, and build a new Cyclone-based board with both USB and Ethernet functionality.
The small version of the b16 has an even further reduced instruction set, and fits into half the size.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Comment | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | nop | call | jmp | ret | jz | jnz | jc | jnc | destination in rest of instruction |
| nop | exec | goto | ret | gz | gnz | gc | gnc | for slot 3 | |
| 8 | xor | com | and | or | + | +c | 2/ | c2/ | |
| 10 | !+ | @+ | @ | lit | c!+ | c@+ | c@ | litc | |
| !. | @. | @ | lit | c!. | c@. | c@ | litc | for slot 1 | |
| 18 | nip | drop | over | dup | >r | nop | r> | nop |
You can find more documentation in the
EuroForth 2004 proceeding (131k).
Yu can download the
Sources (143k) here.