alexshpilkin / after

Forth with a metalevel

Home Page:https://sheaf.site/code/after

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

An unnamed Forth project for the STM8
=====================================

The C compilers for the STM8 are rather bad, and no wonder, given that it
is essentially an old-style accumulator architecture completely unsuitable
for modern register allocators.  I was asked by one of my friends to
to review the situation and thought it would be interesting to change the
problem and implement a (tethered) Forth for it.  This is the record of
that effort, but it might also end up bringing together other related
pieces of code I have lying around.  I currently assume an STM8S-DISCOVERY
board whenever necessary, the generalization will come later.

The files here are dedicated to the public domain, or failing that
permissively licensed.  See the DEDICATION for details.

Getting it running
------------------

The one thing you can currently do is assemble things into the RAM of a
live STM8S-DISCOVERY board over a serial connection.  Run `monitor.ans`
under an ANS Forth system, save the output into an Intel HEX file and
program it onto the board (using stm8flash or what have you).  Connect its
UART2 to your computer, then read through and run `connect.ans`, modifying
it as needed.  Your assembly language routines can jump to 8080 hex to
return back to the monitor loop.

Offline assembly is also possible; use `monitor.ans` as a model.  Aside
from Intel HEX (generated from the current memory image by `IHEX`), the
Motorola S-record format is also supported through the word `SREC`.

The monitor itself is a variation on Sergeant's "3-instruction Forth" for
the 68HC11 and is 57 bytes long.  I do not see how it could be made
shorter (even at the cost of changing the protocol), but any suggestions
are welcome.

About

Forth with a metalevel

https://sheaf.site/code/after

License:Creative Commons Zero v1.0 Universal


Languages

Language:Forth 87.8%Language:C 12.2%