c40bc329d5
To run a parseExpr on first pass would always return a false success with dummy value because symbols are configured to always succeed on first pass. This would make expressions like ".fill 0x38-$" so bad things to labels because "0x38-$" wouldn't return the same thing on first and second pass. Revert to parsing literals and symbols after having scanned for expressions and add a special case specifically for char literals (which is why we scanned for literals and symbols first in the first place). |
||
---|---|---|
.. | ||
directive.asm | ||
expr.asm | ||
glue.asm | ||
instr.asm | ||
io.asm | ||
main.asm | ||
parse.asm | ||
README.md | ||
symbol.asm | ||
tok.asm | ||
util.asm |
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.