Commit Graph

1699 Commits

Author SHA1 Message Date
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
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 6aa53afabc zasm: add memdump mode 2019-05-12 08:49:59 -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 95f53d0ce3 zasm: support symbols in .dw directive 2019-05-10 21:17:19 -04:00
Virgil Dupras c000d5cfb1 zasm: support forward label references! 2019-05-10 21:14:46 -04:00
Virgil Dupras c239ec7dea zasm: read input in two passes 2019-05-10 20:32:05 -04:00
Virgil Dupras 6a804a9c64 zasm: buffer stdin in emulator
Also, add a port for rewinding stdin.
2019-05-10 19:55:01 -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 5a6078df4d zasm: add support for hex literals 2019-05-09 22:14:11 -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 193e6e066c Add tools/emul 2019-05-09 12:58:41 -04:00
Virgil Dupras 02808572e6 Update docs 2019-05-09 10:48:36 -04:00
Virgil Dupras d8bc9c2bdd parts/z80/sdc: implement blockdev's GetC 2019-05-09 10:47:57 -04:00
Virgil Dupras 65a666bfda Re-license to GPLv3
I realize that libz80 is GPL and that this project is MIT. That's not
much of a problem as long as libz80 isn't a big part of the project, but
I'm planning on building more around libz80 so that zasm can replace
scas as an assembler even on modern machines (through an emulated
layer) so that this project can become entirely self-bootstrapped.

If I'm going to do that, I might as well be kosher license-wise. I
don't care much about whether the project is GPL or MIT...
2019-05-08 20:18:05 -04:00
Virgil Dupras 54d0286486 parts/z80/sdc: add sdcSetBlkSize and sdcReadBlk 2019-05-08 20:08:17 -04:00
Virgil Dupras 12ca2bd53e parts/z80/sdc: add sdcInitialize
Also, adjust SD card recipe. Straightforward initialization and read!
2019-05-08 16:03:54 -04:00
Virgil Dupras 3d82d7fb30 recipe/rc2014/sdcard: we read data! 2019-05-07 17:28:07 -04:00
Virgil Dupras beeb40eb93 recipe/rc2014/sdcard: we got out of initialization! 2019-05-07 16:38:08 -04:00
Virgil Dupras c9f164a510 recipe/rc2014/sdcard: Make sdinit program output readable text
Makes for a more straightforward test.
2019-05-07 16:20:28 -04:00
Virgil Dupras e80888555f recipe/rc2014/sdcard: new recipe 2019-05-07 15:47:49 -04:00
Virgil Dupras ef11059382 parts/z80/sdc: new part
Incomplete, but what it does *does* work. I could handshake CMD0+CMD8 on
a MicroSD HC.
2019-05-07 14:50:24 -04:00