Commit Graph

133 Commits

Author SHA1 Message Date
Virgil Dupras 976a93971c zasm: improve docs 2019-05-27 10:38:29 -04:00
Virgil Dupras c40bc329d5 zasm: fix expr returning wrong values on first pass
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).
2019-05-20 10:46:27 -04:00
Virgil Dupras e18f9b53a9 zasm: add support for "$" symbol
Allows for the ".fill x-$" pattern.
2019-05-20 09:17:50 -04:00
Virgil Dupras 848a7500bc zasm: add support for .fill directive 2019-05-20 08:39:53 -04:00
Virgil Dupras acddb045a5 zasm: add support for .org directive 2019-05-19 14:40:42 -04:00
Virgil Dupras bc1496a7e3 zasm emul: bring back kernel/user distinction
It was a bad idea to remove it. Now that I'm introducing the concept of
a per-app glue file, it becomes much easier to build emulated zasm as a
userspace app.
2019-05-19 12:57:59 -04:00
Virgil Dupras 7fad3b0c90 Move /parts/z80 to /kernel
Let go of that "meta os" thing. it's not as meta as I made it sound
like. It's a kernel.
2019-05-19 11:19:41 -04:00
Virgil Dupras 78d9764005 zasm: can now assemble zasm/expr.asm! 2019-05-19 10:45:11 -04:00
Virgil Dupras 6cbce0533a zasm: can now assemble zasm/instr.asm! 2019-05-19 10:40:45 -04:00
Virgil Dupras ea8477bb91 zasm: accept whitespaces before separating comma 2019-05-19 10:39:29 -04:00
Virgil Dupras 3b1ef2b9af zasm: bump global symbol limit to 0x200 2019-05-19 09:54:42 -04:00
Virgil Dupras 44abc79850 zasm: add support for SBC HL, ss 2019-05-19 09:54:02 -04:00
Virgil Dupras d9fff16157 zasm emul: get rid of the kernel/user distinction
Made things complicated for nothing.
2019-05-19 09:14:40 -04:00
Virgil Dupras 98695f9912 zasm: de-index symRegister
Make symRegister's logic pointer-based so we can break through the 0x100
limit.
2019-05-19 09:06:24 -04:00
Virgil Dupras c01816b055 zasm: make instr a bit more zasm-friendly
But we're still at a certain distance from assembling it with zasm:
we're busting the 0x100 symbol limit.
2019-05-18 21:07:35 -04:00
Virgil Dupras bccf933ea9 zasm: try for regular number or symbol before parsing expr
Previously, we would mess up literals like '-'.
2019-05-18 21:06:31 -04:00
Virgil Dupras 723497af69 zasm: can now assemble zasm/directive.asm! 2019-05-18 20:37:34 -04:00
Virgil Dupras 9f6ebf538d zasm: can assemble zasm/tok.asm! 2019-05-18 20:31:52 -04:00
Virgil Dupras fd11941867 zasm: can now assemble zasm/parse.asm! 2019-05-18 19:59:58 -04:00
Virgil Dupras 2ce6b61964 zasm: add support for RLC r and RRC r 2019-05-18 19:59:31 -04:00
Virgil Dupras 29f0bcbe23 zasm: can now assemble zasm/symbol.asm! 2019-05-18 18:56:27 -04:00
Virgil Dupras 84090dcd14 zasm: add support for RL r and RR r
Also, make zasm assemble zasm/util.asm again!
2019-05-18 15:41:21 -04:00
Virgil Dupras d47d07757e zasm: fix expr operator priority 2019-05-18 15:17:56 -04:00
Virgil Dupras 068e4327ec zasm: fix false truncation error on "-" expressions 2019-05-18 14:51:11 -04:00
Virgil Dupras 650eec23de zasm: add LD r, (IX/Y+d) support 2019-05-17 23:01:29 -04:00
Virgil Dupras f44c3e5413 zasm: fix 3-digit hex parsing 2019-05-17 23:00:57 -04:00
Virgil Dupras cdb6cce914 zasm: add multiplication expressions 2019-05-17 22:22:10 -04:00
Virgil Dupras 157ac03e25 zasm: can now assemble zasm/util.asm! 2019-05-17 20:47:43 -04:00
Virgil Dupras 28d5ebdc8a Make apps folder into a namespace
To straighten out includes and to pave the way into zasm being part of
the same "include CFS" as parts, we make zasm includes namespaced.
2019-05-17 20:22:32 -04:00
Virgil Dupras ae2187ad06 zasm: avoid ';' literal
Simplifies comment stripping through sed.
2019-05-17 19:49:37 -04:00
Virgil Dupras d58cf122a8 zasm: fix regression with lowercase (ix+d) parsing 2019-05-17 19:32:58 -04:00
Virgil Dupras 2a97966bdc zasm: add LD IX/IY, NN instructions 2019-05-17 17:43:42 -04:00
Virgil Dupras 21c49d80cf zasm: allow single quote to contain whitespace 2019-05-17 17:22:16 -04:00
Virgil Dupras 40d5530666 zasm: allow expression in .db 2019-05-17 17:21:49 -04:00
Virgil Dupras 556be3f0ce zasm: allow for whitespace inside string literals
Also, increase scratchpad size. It wasn't big enough for some
expressions in shell unit.
2019-05-17 16:44:08 -04:00
Virgil Dupras f9dac15449 zasm: add support for string literals in .db 2019-05-17 16:17:22 -04:00
Virgil Dupras 16922da3d4 zasm: support multiple elements in .dw and .db 2019-05-17 15:39:28 -04:00
Virgil Dupras b0318f4891 zasm: make instr unt write directly to ioPutC
Couldn't get rid of instrUpcode though, too complicated.
2019-05-17 15:35:49 -04:00
Virgil Dupras 26d6dd1912 zasm: remove direcData buffer 2019-05-17 15:14:38 -04:00
Virgil Dupras ad7428e471 zasm: make io unit handle PC and output suppression 2019-05-17 14:58:16 -04:00
Virgil Dupras 6547e83f20 zasm: improve comma processing
We don't treat "," exactly as a whitespace anymore. We have specific
processing for it.
2019-05-17 14:34:38 -04:00
Virgil Dupras 3a91e9eb46 zasm: add support for PUSH/POP IX/IY 2019-05-17 14:00:37 -04:00
Virgil Dupras c1b09123f1 zasm: add support for RETI and RETN 2019-05-17 13:21:49 -04:00
Virgil Dupras 072aad775a zasm: don't match prefixes in symFind
Only match when full names match.
2019-05-17 13:14:16 -04:00
Virgil Dupras 92a119105d zasm: add support for "0b" literals 2019-05-17 10:34:01 -04:00
Virgil Dupras 0f5fab23e9 zasm: don't accept "0X" prefix for hex anymore
This was only necessary in the time where input was upcased right after
reading.
2019-05-17 10:03:36 -04:00
Virgil Dupras 4075c90d44 Add unit test for zasm's parse unit 2019-05-17 10:00:30 -04:00
Virgil Dupras 7083116379 zasm: remove JUMP_ prefixes
They serve no purpose and make the code less flexible.
2019-05-17 09:50:11 -04:00
Virgil Dupras 2f0dd5d668 zasm: iiiiiiiincluuuuuuudes!!1! 2019-05-16 21:15:00 -04:00
Virgil Dupras 22c7eeaa5d Move apps/zasm/tests to tools/tests/zasm
This 'apps' folder is going to disappear. Everything is going to be a
"part" to be assembled through recipes. 'apps' has no meaning.
2019-05-16 11:23:15 -04:00