2a6a7db0ed
FossilOrigin-Name: da4dea680b5e4584b271025765da625da663c300168aea364543a829afde2f3f |
||
---|---|---|
.. | ||
assemble.retro | ||
devices.retro | ||
extend.retro | ||
GNUmakefile | ||
image.c | ||
listen.retro | ||
Makefile | ||
nga.c | ||
ngaImage | ||
README.md |
I'm exploring some things around the VM implementation and tooling; this directory contains the relevant files for this.
Things I'm working on in this:
[x] Single file implementation [x] Modular I/O (enable/disable at compile time) [x] Faster opcode processing [x] Removal of image saving from the C sources [x] Building extended image w/o retro-extend in C [x] Assemble new image w/o retro-muri in C [ ] Support for embedding device words in the C source [ ] Embed image in the C source using tool written in Retro
Notes: this requires an external image. One is provided.
Specifics:
Retro's build process is a little messy. We first compile the assembler, then retro-extend (which is an Nga-in-C, with a reduced set of I/O). These are used to assemble the kernel, merge in the stdlib and any device words, then the VM is compiled, user-level additions are added to a new image, and then the source is updated before being rebuilt.
In this, the VM is built, then is used to assemble and build a new image, eliminating the need for separate retro-extend and retro-muri binaries.