Virgil Dupras
a7dc1e7b4a
zasm: make "RET cc" work
2019-04-17 11:06:51 -04:00
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`.
2019-04-17 10:34:30 -04:00
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
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