miniforth is a real mode FORTH that fits in an MBR boot sector. The following standard words are available:
+ - ! @ c! c@ dup drop swap emit u. >r r> [ ] : ; load
Additionally, there is one non-standard word. s: ( buf -- buf+len )
will copy the rest of the current input buffer to buf, and terminate it with a null byte. The address of said null byte will be pushed onto the stack. This is designed for saving the code being ran to later put it in a disk block, when no block editor is available yet.
The dictionary is case-sensitive. If a word is not found, it is converted into a number with no error checking. For example, g results in the decimal 16, extending the 0123456789abcdef of hexadecimal. On boot, the number base is set to hexadecimal.
Backspace works, but doesn't erase the input with spaces, so until you write something else, the screen will look a bit weird.
See the blogpost, Fitting a FORTH in 512 bytes, for my motivation for writing this and the details of the code.
The default parser and lexer that comes with python. Useful for writing minilanguages and DSLs. Maybe useful if I can figure out how to use it.