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
Virgil Dupras
a2b5b1efab
zasm: add one layer of indirection in symbol registry
...
We'll need it for an upcoming "local labels" registry.
2019-05-15 14:30:41 -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
a994867a86
Wohoo! zasm assembles core.asm!!!
2019-05-14 16:50:35 -04:00
Virgil Dupras
b0218349ff
zasm: support multiple instructions on single line
2019-05-14 16:45:56 -04:00
Virgil Dupras
23fd493013
core: make a bit more zasm-friendly
2019-05-14 16:42:44 -04:00
Virgil Dupras
1010e8372c
zasm: add support for subtractions in expressions
2019-05-14 16:39:10 -04:00
Virgil Dupras
67803f6cb5
zasm: don't upcase char literals
2019-05-14 15:42:15 -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
a486a2a81e
zasm: support char literals
2019-05-14 13:53:12 -04:00
Virgil Dupras
2de69ee7cd
zasm: add support for local labels
2019-05-13 20:23:10 -04:00
Virgil Dupras
17dbee6a49
zasm: deduplicate code
2019-05-13 19:47:34 -04:00
Virgil Dupras
746c86cbf8
zasm: make getSymVal not responsible for calling symFind
...
With local labels, these two will have to be decoupled.
2019-05-13 16:53:52 -04:00
Virgil Dupras
c9deac599e
zasm: add support for LD r, r' instructions
2019-05-13 16:38:09 -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
86cad39de4
zasm: fix wrong logic in .numberTruncated error condition
...
`xor c` didn't do what I thought it did at the time. Newbie mistake,
there are probably a lot like this scattered around...
2019-05-12 21:23:24 -04:00
Virgil Dupras
71cbd24e1f
Add filesystem docs
2019-05-12 16:06:27 -04:00
Virgil Dupras
4f44d3de63
parts/z80/fs: add "fopn" command
2019-05-12 15:38:58 -04:00
Virgil Dupras
9b4b907236
tools/emul/shell: fix srong SeekL return value
...
Also, add warning on attempts to write to ROM.
2019-05-12 14:32:24 -04:00
Virgil Dupras
51bab80a4c
parts/z80/fs: fix fsInitMeta writing to ROM
2019-05-12 14:31:35 -04:00
Virgil Dupras
1ea5bedb4f
blockdev: fix broken blkSeek/blkTell
...
scas didn't warn about this, but it seems that `jr` calls were out of
range. Seek and Tell was broken. Replacing `jr` with `jp` does the
trick.
2019-05-12 13:57:37 -04:00
Virgil Dupras
c77d96da22
blockdev: clarify routines specs
2019-05-12 11:45:08 -04:00
Virgil Dupras
a86738ae84
tools/emul/shell: add filesystem support
...
With the help of the newly-introduced cfspack tool, we can mount a
filesystem in our emulated shell and play around. Read-only for now.
Unpacking incoming.
2019-05-12 11:20:31 -04:00