Toolchain for assembly and compilation of new code for FM10000 Instruction Processor Boot State Machine
Go to file
2021-08-03 01:37:14 +02:00
asm Major overhaul of Stack system and calling convention, added PUSH, PUT, GET (and immediate versions), optimized FastCall, expanded RET 2021-08-03 00:02:49 +02:00
src Overhaul debugh annotation system. Multiple annotations can be had, at the moment, FunctionName and Comments 2021-08-03 01:37:14 +02:00
.drone.jsonnet Fix .drone.jsonnet build 2020-12-31 22:16:00 +01:00
.gitignore WIP: Initial commit, working basic assembler 2020-12-31 22:06:52 +01:00
CMakeLists.txt Embed rrcc git version on binary 2021-08-02 21:01:00 +02:00
COPYING WIP: Initial commit, working basic assembler 2020-12-31 22:06:52 +01:00
README.md Added full image format, include some debug information at the tail of functions 2021-01-04 08:16:20 +01:00

rrcc (Red Rock Canyon Compiler)

Toolchain for assembly and compilation of new code for FM10000 Instruction Processor Boot State Machine

NOTE: This is a Work In Progress project

Requirements

  • cmake >= 3.13
  • g++ (GCC C++) or clang
  • make

Compilation

  • $ mkdir build && cd build
  • $ cmake ../ && make
  • An executable named ./rrc-as should now exist.

rrc-as

Assembler and linker, kind-of 2-Pass. Quite loose token syntax defined in Token.h.

Usage

  • $ ./rrc-as code.asm [code2.asm ...] output.bin
  • The function named entrypoint will be called by init asm
  • Multiple asm files can be specified. They are interpreted from first in arguments to last.
  • You can call functions across files, as they will be linked together.
  • Directive resolution occurs at parsing time, so while you can override values it does not affect previously parsed files.
  • Directives like .constant are passed to the next files.
  • These files will be automatically included in front every time:

License

  • BSD-3-Clause
  • See COPYING for the full license.