Commit Graph

752 Commits

Author SHA1 Message Date
Virgil Dupras
8832408e95 zasm: can now assemble fs.asm! 2019-05-18 15:18:19 -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
93e40aeb09 Strip comments out of code before packing CFS
This shrinks the CFS size to 21k from nearly 64K. This will allow me to
kick the can down the road a bit with regards to supporting storage
seek/tell greater than 64K.

I'll get to it, but first, I want to assemble zasm with zasm!
2019-05-17 19:54:35 -04:00
Virgil Dupras
ae2187ad06 zasm: avoid ';' literal
Simplifies comment stripping through sed.
2019-05-17 19:49:37 -04:00
Virgil Dupras
a3d3e0ce37 zasm: can now assemble the shell! 2019-05-17 19:36:32 -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
b499d320de zasm: can now assemble stdio! 2019-05-17 15:43:44 -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
4c37d869f4 zasm: now assembles blockdev! 2019-05-17 14:07:07 -04:00
Virgil Dupras
b8ece0bf98 blockdev: make zasm-friendly 2019-05-17 14:06:10 -04:00
Virgil Dupras
3a91e9eb46 zasm: add support for PUSH/POP IX/IY 2019-05-17 14:00:37 -04:00
Virgil Dupras
26e5c1de43 zasm can now assemble acia! 2019-05-17 13:23:16 -04:00
Virgil Dupras
807bd70b63 zasm emul: add dumpSymbolTable debug routine
Very helpful...
2019-05-17 13:22:45 -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
013a3b74c8 Add the concept of unit tests
Will be much much easier to tests new core routines without having to
re-create their context first.

Also, extract parse.asm from core.asm
2019-05-17 09:33:20 -04:00
Virgil Dupras
e4ffe669a1 acia: make zasm-friendly 2019-05-17 08:33:22 -04:00
Virgil Dupras
45b8e84e2a shell: de-macro-ize 2019-05-17 08:21:37 -04:00
Virgil Dupras
56760b5aba stdio: de-macro-ize 2019-05-17 08:14:19 -04:00
Virgil Dupras
dfce0d3a62 tools/emul: fix shell RAMSTART 2019-05-17 07:55:28 -04:00
Virgil Dupras
def6c2123d tools/emul: clean up the place a bit 2019-05-17 07:23:59 -04:00
Virgil Dupras
2f0dd5d668 zasm: iiiiiiiincluuuuuuudes!!1! 2019-05-16 21:15:00 -04:00
Virgil Dupras
a2d6cea72f cfspack: fix bug where we would underallocate blocks 2019-05-16 21:07:57 -04:00
Virgil Dupras
ede228374c fs: allow fsNext to skip more than one block
When B>1, fsNext failed because HL was changed in the Seek call.
2019-05-16 13:59:52 -04:00
Virgil Dupras
e18879fcb2 zasm emul: hook fsdev in glue code 2019-05-16 13:23:23 -04:00
Virgil Dupras
df67a38f81 Extract fs_cmds.asm from fs.asm 2019-05-16 13:20:29 -04:00
Virgil Dupras
23f0dc18ca zasm emul: add tooling for includes fsdev
On build, pack `parts/z80` into a CFS and embed it into the emulated
zasm executable as an fsdev. This will allow for the upcoming include
directive to have something to go to.

For now, this is useless except for inflating the emulated zasm's size.
2019-05-16 12:07:57 -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
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