Virgil Dupras
3e7d181d3c
zasm: properly raise error on bas ioPutC calls
2019-06-15 20:01:17 -04:00
Virgil Dupras
465da6a79d
zasm: add .out directive
2019-06-03 11:13:31 -04:00
Virgil Dupras
e414e600ea
zasm: add ERR_DUPSYM and ERR_OOM error conditions
2019-05-27 17:45:05 -04:00
Virgil Dupras
b298e607bd
zasm: implement error conditions for #inc
2019-05-27 14:21:46 -04:00
Virgil Dupras
31f7c7771d
zasm: implement error conditions in .org and .fill
2019-05-27 14:16:40 -04:00
Virgil Dupras
371076190f
zasm: implement error conditions in .equ
2019-05-27 14:07:07 -04:00
Virgil Dupras
436ff51c39
zasm: implement error conditions in .dw
2019-05-27 13:52:58 -04:00
Virgil Dupras
f5d4321ece
zasm: implement error conditions in .db
2019-05-27 13:44:53 -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
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
723497af69
zasm: can now assemble zasm/directive.asm!
2019-05-18 20:37:34 -04:00
Virgil Dupras
40d5530666
zasm: allow expression in .db
2019-05-17 17:21:49 -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
26d6dd1912
zasm: remove direcData buffer
2019-05-17 15:14:38 -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
e9244b80ee
zasm: big I/O overhaul
...
Instead of buffering input in memory one line at a time, we go in "just
in time" mode and always read contents directly from I/O, without
buffering.
It forces us to implement a `ioPutback` scheme, but on the other hand it
greatly simplifies cases where multiple tokens are on the same line
(when a label is directly followed by an instruction).
The end result feels much more solid and less hackish.
2019-05-16 07:53:42 -04:00
Virgil Dupras
72d2a8f073
zasm: add support for + expressions
2019-05-14 15:26:29 -04:00
Virgil Dupras
a486a2a81e
zasm: support char literals
2019-05-14 13:53:12 -04:00
Virgil Dupras
d6f5cf5b90
zasm: fix first pass inversion bug
...
Also, confirm in tests that we can refer to other symbols in `.equ`.
2019-05-12 08:50:29 -04:00
Virgil Dupras
89848dbfe2
zasm: add support for .equ
2019-05-11 22:11:05 -04:00
Virgil Dupras
95f53d0ce3
zasm: support symbols in .dw directive
2019-05-10 21:17:19 -04:00
Virgil Dupras
f9ae5ca46b
zasm: simplify readWord calling
...
It always reads in the scratchpad with the same max size. No need for
DE-dancing anymore.
2019-05-01 14:19:43 -04:00
Virgil Dupras
6811d98618
zasm: add support for the ".dw" directive
2019-05-01 14:07:01 -04:00
Virgil Dupras
dde5161fc1
zasm: add support for ".db" directive
2019-05-01 11:26:41 -04:00
Virgil Dupras
a7693ffd86
zasm: still inching toward directives
2019-04-30 21:40:22 -04:00