Commit Graph

215 Commits

Author SHA1 Message Date
Virgil Dupras
7996a9997a zasm: add support for numerical constants 2019-04-17 14:47:42 -04:00
Virgil Dupras
3fe5eb3e60 zasm: add a bunch of primary instructions 2019-04-17 11:37:49 -04:00
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