| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Some debugging affordances.
|
|
|
|
|
|
|
|
|
|
|
|
| |
I found a bug with multiply in the process; another case (after the swap
of call/jump opcodes in 4453) where there's no point improving testing.
Unit tests can only tell us if our instructions are internally
consistent. Validating against a real machine has to be manual.
I'm definitely feeling the pain of debugging machine code now, that's
for sure. Going over an instruction trace, comparing the state of
registers line by line.
|
|
|
|
| |
Clean up trace levels everywhere in SubX.
|
|
|
|
|
|
|
|
| |
Key core data structures by hex bytes in text rather than opcode
numbers. Saves us round trips of having to parse and reparse strings,
and also allows us to more easily ignore unexpected non-hex words in
each transform. We'll use this ability next when we start inserting
labels.
|
|
|
|
|
|
| |
Word-wrap online help.
Fixes #8.
|
| |
|
| |
|
|
|
|
| |
Make room for including multibyte opcodes in the opcode list.
|
| |
|
| |
|
|
|
|
|
| |
We allocate space for a local variable, read() a character from stdin to
it, and write() it out to stdout.
|
|
Reorganize layers to introduce the translation workflow right at the start.
We also avoid duplicating parsing code. Programs are always parsed into
the `program` data structure.
|