Commit Graph

32 Commits

Author SHA1 Message Date
Virgil Dupras
2f0dd5d668 zasm: iiiiiiiincluuuuuuudes!!1! 2019-05-16 21:15:00 -04:00
Virgil Dupras
0ae91e55ec zasm: big local symbols overhaul 2019-05-16 08:26: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
34ff0a6c2a zasm: consolidate code 2019-05-15 15:27:33 -04:00
Virgil Dupras
fa28d64278 zasm: change ioRewind to ioSeek
Will need it soon.
2019-05-15 13:41:56 -04:00
Virgil Dupras
33a1ee250d zasm: rename curOutputOffset to ZASM_PC 2019-05-15 13:31:49 -04:00
Virgil Dupras
72d2a8f073 zasm: add support for + expressions 2019-05-14 15:26:29 -04:00
Virgil Dupras
99a7c94c9f zasm: make "double parsing" a bit more solid
It was previously skipped on a local label.
2019-05-14 14:35:34 -04:00
Virgil Dupras
7972b92be1 zasm: refactoring 2019-05-14 14:32:12 -04:00
Virgil Dupras
2c0166814f zasm: support inline labels
That is, labels with code following right afterwards.
2019-05-14 14:10:20 -04:00
Virgil Dupras
2de69ee7cd zasm: add support for local labels 2019-05-13 20:23:10 -04:00
Virgil Dupras
878bc2919f zasm: add support for relative labels 2019-05-12 22:07:21 -04:00
Virgil Dupras
1e3982d3ab zasm: make DE indicate the last line to be read
Facilitates debugging
2019-05-12 21:44:59 -04:00
Virgil Dupras
dd6fa5d38b zasm: properly propagate error conditions
Gives clearer output on errors. Easier debugging...
2019-05-12 21:31:11 -04:00
Virgil Dupras
89848dbfe2 zasm: add support for .equ 2019-05-11 22:11:05 -04:00
Virgil Dupras
6d4515cd03 zasm: little code reorganisation 2019-05-10 21:19:34 -04:00
Virgil Dupras
c239ec7dea zasm: read input in two passes 2019-05-10 20:32:05 -04:00
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
Virgil Dupras
b87feac785 zasm: add support for labels! 2019-05-09 21:21:08 -04:00
Virgil Dupras
1c17dcb7a2 zasm: consolidate code 2019-05-09 15:55:29 -04:00
Virgil Dupras
d34aff67bb zasm: Read from and write to streams instead of memory 2019-05-09 15:36:03 -04:00
Virgil Dupras
7f27d63c19 Move apps/zasm/emul to tools/emul 2019-05-09 14:09:40 -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
dde5161fc1 zasm: add support for ".db" directive 2019-05-01 11:26:41 -04:00
Virgil Dupras
28e1ba5e26 zasm: adjust parseLine success condition
De-couple "success" from "wrote something to (DE)" so that directive
parsing can be considered successful without writing to (DE).
2019-05-01 10:16:57 -04:00
Virgil Dupras
a00bc8cc4b zasm: remove the "token" variable 2019-04-30 22:32:12 -04:00
Virgil Dupras
5fd9b7812c zasm: make each token type parse the remaining of line directly 2019-04-30 21:55:18 -04:00
Virgil Dupras
a7693ffd86 zasm: still inching toward directives 2019-04-30 21:40:22 -04:00
Virgil Dupras
1ffe05dd09 zasm: creep in the notion of directive 2019-04-30 21:27:44 -04:00
Virgil Dupras
79b5c701f6 zasm: move token variables from tok.asm into main.asm 2019-04-30 17:04:42 -04:00
Virgil Dupras
a7635cb1ea zasm: allow blank lines in asm source code 2019-04-30 16:24:45 -04:00
Virgil Dupras
57c3dfece8 zasm: assemble multiple lines at once 2019-04-30 15:51:39 -04:00