collapseos/apps/zasm
Virgil Dupras 34ee91a0d7 zasm: use blkdev IDs as input and output
This will soon allow use to seek and tell on input, which is necessary
for a second pass which is necessary for forward symbol references.

This require making `blkSel` a bit more flexible. Rather than having one
global selected blkdev, each app can select its own, in its own memory
space.
2019-05-10 19:33:34 -04:00
..
tests zasm: add support for hex literals 2019-05-09 22:14:11 -04:00
directive.asm zasm: simplify readWord calling 2019-05-01 14:19:43 -04:00
instr.asm zasm: add support for labels! 2019-05-09 21:21:08 -04:00
io.asm zasm: use blkdev IDs as input and output 2019-05-10 19:33:34 -04:00
literal.asm zasm: add support for hex literals 2019-05-09 22:14:11 -04:00
main.asm zasm: use blkdev IDs as input and output 2019-05-10 19:33:34 -04:00
parse.asm zasm: add support for labels! 2019-05-09 21:21:08 -04:00
README.md Add zasm app 2019-04-16 13:36:57 -04:00
symbol.asm zasm: add support for labels! 2019-05-09 21:21:08 -04:00
util.asm zasm: add support for labels! 2019-05-09 21:21:08 -04:00

z80 assembler

This is probably the most critical part of the Collapse OS project. If this app can be brought to completion, it pretty much makes the project a success because it ensures self-reproduction.

Running on a "modern" machine

To be able to develop zasm efficiently, libz80 is used to run zasm on a modern machine. The code lives in emul and ran be built with make, provided that you have a copy libz80 living in emul/libz80.

The resulting zasm binary takes asm code in stdin and spits binary in stdout.