Virgil Dupras
9b556c8883
zasm: support "special" groups and groups in arg2
2019-04-17 10:34:10 -04:00
Virgil Dupras
a7538473e4
zasm: add support for variable arguments
2019-04-17 08:23:01 -04:00
Virgil Dupras
38e40bfc16
zasm: make the instruction table fixed
...
Looping is easier
2019-04-16 22:46:04 -04:00
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.
2019-04-16 22:40:07 -04:00
Virgil Dupras
1f94b6c3f7
zasm: can now match all "constant" primary opcodes
2019-04-16 20:32:30 -04:00
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.
2019-04-16 19:45:05 -04:00
Virgil Dupras
453cf3d74a
zasm: start matching args
...
We now properly match arg-less operations.
2019-04-16 19:40:37 -04:00
Virgil Dupras
b3af6e0115
zasm: reuse code from core
2019-04-16 17:00:19 -04:00
Virgil Dupras
9acca52e44
zasm: begin parsing with easy pickings
...
Single opcodes that yield constants. "echo ret | zasm" yields 0xc9.
2019-04-16 16:49:47 -04:00
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...
2019-04-16 14:26:45 -04:00
Virgil Dupras
43c1005d61
zasm: implement stdin/stdout in emulator
2019-04-16 13:59:19 -04:00
Virgil Dupras
1ae2331763
Add zasm app
...
For now, only a dummy app, but it's emulated properly with libz80.
Exciting times!
2019-04-16 13:36:57 -04:00
Virgil Dupras
ff99062d5b
Move RC2014 recipe in its own folder
...
Also, remove `parts/platforms`. It makes no sense. Only recipes make
sense.
2019-04-16 11:50:16 -04:00
Virgil Dupras
6597e8a75a
doc: add emulate section
2019-04-16 11:37:04 -04:00
Virgil Dupras
056de2b19d
doc: add glue code section
2019-04-16 11:26:58 -04:00
Virgil Dupras
7060ee4dc5
Add Status section to README
2019-04-16 10:52:29 -04:00
Virgil Dupras
6c4489d2a3
Add blockdev doc
2019-04-16 10:40:51 -04:00
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.
2019-04-16 10:17:25 -04:00
Virgil Dupras
a27da6f41a
add mmap part
...
This also introduces the "seek" shell command.
2019-04-16 08:36:26 -04:00
Virgil Dupras
af13b0bd00
Code consolidation
2019-04-16 08:35:44 -04:00
Virgil Dupras
ce49fc15d0
blockdev: reorganize routine pointers
...
Also, add dummy seek reoutine.
2019-04-15 21:56:15 -04:00
Virgil Dupras
a5addc989c
shell: rename seek to mptr
...
going to use `seek` for block devices
2019-04-15 20:42:12 -04:00
Virgil Dupras
c996da8ac8
shell: add error codes to cmds
2019-04-15 20:38:25 -04:00
Virgil Dupras
12c23f52e0
Add blockdev part
...
Also, add the ability for parts to define extra shell commands.
2019-04-15 16:53:11 -04:00
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.
2019-04-15 15:08:00 -04:00
Virgil Dupras
f571664853
Improve user guide
2019-04-15 13:24:20 -04:00
Virgil Dupras
9aae4ea040
Add user guide
2019-04-15 12:10:41 -04:00
Virgil Dupras
26b125b337
shell: add shellParseArgs
...
Replaces individual command parsing. Quite a big and complex chunk of
code, but makes each command much simpler.
2019-04-14 23:14:07 -04:00
Virgil Dupras
83f63c7146
shell: add call command
2019-04-14 17:01:28 -04:00
Virgil Dupras
e4c23b4270
shell: echo types letters right away
...
Easier to use this way...
2019-04-14 15:18:41 -04:00
Virgil Dupras
942ff37bf8
shell: implement load command
2019-04-14 14:53:16 -04:00
Virgil Dupras
461c09f1e5
Decouple shell from acia
2019-04-14 14:24:29 -04:00
Virgil Dupras
8ccddbcb0e
Separate shell and acia input buffers
...
They serve a different purpose. The goal of the ACIA buffer is to ensure
that we don't miss an input. The goal of the shell buffer is to wait
until the user presses return.
The ACIA buffer has been moved to shell and replaced with a circular
buffer, a more appropriate data structure for this kind of purpose.
Also, introduce `aciaGetC`.
2019-04-14 14:04:31 -04:00
Virgil Dupras
902c6a5dd3
shell: add count arg to peek
...
Also, fix seek reversed endianness.
2019-04-14 11:54:18 -04:00
Virgil Dupras
e4e7db8e23
shell: cleanup
2019-04-14 11:22:45 -04:00
Virgil Dupras
21168f6c4e
shell: implement seek and peek
...
This introduces `core.asm` which includes routines used by other parts.
2019-04-14 11:17:38 -04:00
Virgil Dupras
9580cc3994
shell: add "seek" and "peek" dummy commands
...
This change introduces a command name matching algo.
2019-04-13 22:39:28 -04:00
Virgil Dupras
6bb454232a
Extract "acia.asm" from shell
...
Also, come up with a way to make parts play well together memory-wise.
2019-04-13 16:01:20 -04:00
Virgil Dupras
ac22a206ae
shell: handle inputs with interrupts
2019-04-13 15:02:29 -04:00
Virgil Dupras
358c551bcc
shell: add input routine
2019-04-12 21:28:50 -04:00
Virgil Dupras
89e4edfa52
Add parts/platforms
2019-04-12 15:53:05 -04:00
Virgil Dupras
7bf3e2f71e
Let's get the ball rolling!
2019-04-12 15:16:12 -04:00
Virgil Dupras
503089a41c
Initial commit
2019-03-06 14:28:56 -05:00