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
Virgil Dupras
a7635cb1ea
zasm: allow blank lines in asm source code
2019-04-30 16:24:45 -04:00
Virgil Dupras
eb5c974573
zasm: allow leading whitespace in parsed lines
2019-04-30 16:08:56 -04:00
Virgil Dupras
57c3dfece8
zasm: assemble multiple lines at once
2019-04-30 15:51:39 -04:00
Virgil Dupras
2653826dff
zasm: move zasm.asm to instr.asm and create main.asm
...
instr.asm is for single instruction assembly.
2019-04-30 13:52:14 -04:00
Virgil Dupras
175e1328e7
zasm: consolidate
...
* Build emulated zasm statically
* Improve comments in zasm.asm
* Fix build
* Use unsetZ from core
2019-04-30 13:45:31 -04:00
Virgil Dupras
055e0d7a31
Split parts in two: z80 and avr
...
Also, clarify the role of recipes.
2019-04-25 16:03:45 -04:00
Virgil Dupras
a391f85c00
fs: implement GetC, PutC, Seek and Tell on file handle
...
Very coarse, but I got them to work.
2019-04-23 19:42:10 -04:00
Virgil Dupras
f00334ec89
fs: add private "blk" routines
...
This way, we can interact with the mounted FS even when we change the
selected blkdev.
2019-04-23 15:50:26 -04:00
Virgil Dupras
3ba0a707e7
blockdev: remove a layer of indirection in block routine storage
...
This will facilitate "copying" blk selection in FS.
2019-04-23 15:03:23 -04:00
Virgil Dupras
ad217c018e
fs: implement block reuse in fsAlloc
2019-04-23 14:00:54 -04:00
Virgil Dupras
684f083e8e
fs: add "fdel" command
2019-04-23 13:29:16 -04:00
Virgil Dupras
5eca14d49a
fs: implement fsNext
...
This allows more than one file to be allocated. `fls` properly lists
multiple files.
2019-04-23 12:04:09 -04:00
Virgil Dupras
1a6d285d2d
fs: always read whole block meta in memory to avoid seeking
2019-04-23 10:54:56 -04:00
Virgil Dupras
c0dbee78de
New part: fs
...
Very incomplete, but if you play your cards right, you can, with the
shell:
1. Create a new CFS
2. Mount it
3. Allocate a file with an arbitrary name
4. Have it listed with `fls`
2019-04-23 09:37:22 -04:00
Virgil Dupras
07fde3cab5
blockdev: move the new seek mode logic into the seek command
...
It wasn't a good idea to complicate all blockdev impls with complicated
seeks. Let's just stay in absolute mode for now.
2019-04-23 08:33:32 -04:00
Virgil Dupras
f87cd0485a
blockdev: make "seek" print out its resulting position
...
Also, extract commands into blockdev_cmds to avoid making blockdev
dependent on stdio.
2019-04-22 22:54:23 -04:00
Virgil Dupras
5071ee9f40
Extract "stdio" part from shell
2019-04-22 22:41:37 -04:00
Virgil Dupras
8b7faa1f02
blockdev: add "type" argument to blkSeek
...
Allows seeking forward, backwards, to the beginning, to the end.
2019-04-22 22:28:35 -04:00
Virgil Dupras
d3d229a918
shell: support string arguments
...
No consumer yet, but it's coming...
2019-04-22 21:52:33 -04:00
Virgil Dupras
1bcceb949c
blockdev: add Tell and fix blkGetCW
...
Calling on blkGetC repeatedly was somehow very unstable and often
failed. I didn't pinpoint exactly why, but keeping the call addr around
and calling that instead seems like a better idea anyway.
2019-04-22 17:15:59 -04:00
Virgil Dupras
196d22c4ab
shell: add "save" command
...
The opposite of "load"
2019-04-22 16:01:31 -04:00
Virgil Dupras
b4694225c5
blockdev: change GetC API
...
Instead of waiting, GetC always return immediately, with Z indicating if
something was fetched. The "wait" loop is implemented by the called (and
in the new `blkGetCW`).
This simplifies out-of-bounds verifications for storage blockdevs.
2019-04-22 14:26:16 -04:00
Virgil Dupras
63afa5798b
zasm: add a bunch of instructions
2019-04-21 14:49:33 -04:00