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.
5 years ago
Virgil Dupras
196d22c4ab
shell: add "save" command
The opposite of "load"
5 years ago
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.
5 years ago
Virgil Dupras
63afa5798b
zasm: add a bunch of instructions
5 years ago
Virgil Dupras
8594084b06
zasm: simplify code
5 years ago
Virgil Dupras
93eb262083
zasm: add a bunch of instructions
5 years ago
Virgil Dupras
e9e2f30fc5
zasm: add support for BIT
5 years ago
Virgil Dupras
e073fbff79
zasm: add support for "special instructions"
Let's not create complex rules for exception cases.
5 years ago
Virgil Dupras
ecf7d7fbd6
zasm: add a bunch of instructions
5 years ago
Virgil Dupras
056bbde710
zasm: add support for IX/IY with displacement
5 years ago
Virgil Dupras
14a410b024
zasm: extract tok.asm from zasm.asm
5 years ago
Virgil Dupras
89972ca210
zasm: add a bunch of instructions
5 years ago
Virgil Dupras
115dc18971
zasm: add support for extended instructions
5 years ago
Virgil Dupras
70f61ec451
zasm: a bit of refactoring
5 years ago
Virgil Dupras
f6dddaa380
zasm: add automated tests and fix a bunch of bugs
A python script generates all possibilities for all supported
instructions and compare zasm output with scas. After having fixed a
couple of bugs, all tests pass!
5 years ago
Virgil Dupras
8ce528c752
zasm: add a bunch of instructions
5 years ago
Virgil Dupras
76caf944dd
zasm: add support for the "e" arg type (djnz, jr)
5 years ago
Virgil Dupras
c5c8369ce9
zasm: Add support for (NN) constants
5 years ago
Virgil Dupras
e1d6178457
zasm: add a bunch of instructions
5 years ago
Virgil Dupras
7996a9997a
zasm: add support for numerical constants
5 years ago
Virgil Dupras
3fe5eb3e60
zasm: add a bunch of primary instructions
5 years ago
Virgil Dupras
a7dc1e7b4a
zasm: make "RET cc" work
5 years ago
Virgil Dupras
279f6e0ad8
zasm: invert emulator io_write() handling
This facilitates debugging. To know the value of `A` at any point,
you can do `out (0), a`. The number of bytes in the output will be the
value of `A`.
5 years ago
Virgil Dupras
9b556c8883
zasm: support "special" groups and groups in arg2
5 years ago
Virgil Dupras
a7538473e4
zasm: add support for variable arguments
5 years ago
Virgil Dupras
38e40bfc16
zasm: make the instruction table fixed
Looping is easier
5 years ago
Virgil Dupras
8cd400651a
zasm: read each argument immediately insto an argspec
Previously, we would go the other way around: match all available
argspecs to raw argument strings. It's much better to go the other way
around because we can "reduce" each argument much sooner. That will be
important when we start to support constants and expressions.
5 years ago
Virgil Dupras
1f94b6c3f7
zasm: can now match all "constant" primary opcodes
5 years ago
Virgil Dupras
fc0cdede55
Move print(n)str from core to shell
These routines had hardcoded references to ACIA and didn't belong to the
core.
5 years ago
Virgil Dupras
453cf3d74a
zasm: start matching args
We now properly match arg-less operations.
5 years ago
Virgil Dupras
b3af6e0115
zasm: reuse code from core
5 years ago
Virgil Dupras
9acca52e44
zasm: begin parsing with easy pickings
Single opcodes that yield constants. "echo ret | zasm" yields 0xc9.
5 years ago
Virgil Dupras
88cee235b1
zasm: have a whole kernel in emulation instead of a simple wrapper
zasm is going to need to call to kernel code...
5 years ago
Virgil Dupras
43c1005d61
zasm: implement stdin/stdout in emulator
5 years ago
Virgil Dupras
1ae2331763
Add zasm app
For now, only a dummy app, but it's emulated properly with libz80.
Exciting times!
5 years ago
Virgil Dupras
ff99062d5b
Move RC2014 recipe in its own folder
Also, remove `parts/platforms`. It makes no sense. Only recipes make
sense.
5 years ago
Virgil Dupras
6597e8a75a
doc: add emulate section
5 years ago
Virgil Dupras
056de2b19d
doc: add glue code section
5 years ago
Virgil Dupras
7060ee4dc5
Add Status section to README
5 years ago
Virgil Dupras
6c4489d2a3
Add blockdev doc
5 years ago
Virgil Dupras
21eb64f751
blockdev: remove one layer of indirection
The approach used for shell extra commands also works for blockdev. Much
simpler and tighter this way.
5 years ago
Virgil Dupras
a27da6f41a
add mmap part
This also introduces the "seek" shell command.
5 years ago
Virgil Dupras
af13b0bd00
Code consolidation
5 years ago
Virgil Dupras
ce49fc15d0
blockdev: reorganize routine pointers
Also, add dummy seek reoutine.
5 years ago
Virgil Dupras
a5addc989c
shell: rename seek to mptr
going to use `seek` for block devices
5 years ago
Virgil Dupras
c996da8ac8
shell: add error codes to cmds
5 years ago
Virgil Dupras
12c23f52e0
Add blockdev part
Also, add the ability for parts to define extra shell commands.
5 years ago
Virgil Dupras
4600b5299c
shell: place cmd metadata next to the routine
This will facilitate the inclusion of extra commands other parts might
want to define.
5 years ago
Virgil Dupras
f571664853
Improve user guide
5 years ago
Virgil Dupras
9aae4ea040
Add user guide
5 years ago