Tools for compiling and running programs for my custom computer architectures.
This project will slowly be developed and made feature complete. Currently there exists:
- Horizon
- Parsing/compiling to internal/binary representation
- Compiling to blueprint string
- Executing compiled programs
- Graphical emulator
- Graphical program to run programs interactively
- Inspect register and RAM state
- Step by step debugging
- WIP Set breakpoints
Dependencies:
- SDL2
- SDL2_ttf
Then run make help
for a list of make targets. make
will compile the program without optimizations
and with debug symbols, while make release
won't.
To compile a Horizon program use fcc
:
$ ./fcc -h
To run a Horizon program use fcemu
:
$ ./fcemu -h
The input file can be a plaintext program, in which case it will be compiled with fcc
, or a compiled
binary file created with fcc
beforehand.
Running the program launches the visual runner:
The blueprints for the actual computers can be found in the bp
directory.
For the blueprints of Overture, an 8-bit architecture inspired by the one featured in the game Turing Complete, or Everest, the precursor to Horizon, refer to factorio-computing.