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
Virgil Dupras
9c7f006d47
tools/upload: make I/O a bit slower
...
Without delays between read/writes, I often add lockups.
2019-05-07 14:49:34 -04:00
Virgil Dupras
cc62991f4e
Add tools/upload.py
2019-05-06 10:18:11 -04:00
Virgil Dupras
59b0c83b0e
shell: add iowr and iord
2019-05-02 15:18:47 -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
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
8241298c8f
zasm: code consolidation
2019-04-30 21:13:37 -04:00
Virgil Dupras
98ad223ee1
zasm: introduce the concept of instruction ID
...
It will make tokenization cleaner and it also makes the instruction
table significantly more compact.
2019-04-30 20:26:41 -04:00
Virgil Dupras
79b5c701f6
zasm: move token variables from tok.asm into main.asm
2019-04-30 17:04:42 -04:00