| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Some nooks and crannies will need light final debugging with xxd, but
emit-hex-output covers most of the logic.
|
|
|
|
| |
Only failures now are the first two tests in survey.subx.
|
| |
|
|
|
|
|
| |
Everywhere we check if something is true, we check it by comparing
against 0, not 1.
|
|
|
|
|
| |
But of course the test is still infinite-looping so we can't be sure.
I'm still just reading the code.
|
| |
|
|
|
|
|
| |
It's ugly to have function locals in global variables, but we'll figure
out later how to deal with it.
|
|
|
|
|
|
| |
The compute-offsets test now goes into an infinite loop :( But I figure
all these changes are useful anyway, we should just debug the error
separately.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Move test slice variables out of the data segment and close to their
usages. Makes tests a little easier to read even if we spend a few more
instructions each time.
|
|
|
|
|
| |
Everywhere we check if something is true, we check it by comparing
against 0, not 1.
|
|
|
|
| |
DRY out compute-width and compute-width-from-slice.
|
| |
|
| |
|
|
|
|
| |
Now the only piece I plan to not write tests for is emit-headers.
|
| |
|
|
|
|
|
|
| |
Fix a couple of syntax errors.
survey.subx still failing tests.
|
| |
|
| |
|
|
|
|
|
| |
subx/survey/compute-addresses: Now computing segment starting addresses
correctly.
|
| |
|
|
|
|
| |
Now tracing segment names correctly.
|
| |
|
|
|
|
|
|
| |
Make `compute-addresses` less clever. Stop striding from the middle of
one row to the next. This way we'll also obviate the need for indexing
backwards from a pointer in the next commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Kinda hacky, but might scale enough for machine code.
This was really hard to debug. Single tests passed, but when I ran all
tests I got breakage because tests long before (from the 056trace layer)
were not cleaning up properly.
My instinct was to call clear-stream on Trace-stream, which was wrong
(the trace didn't have the wrong contents, it was literally a bad
object). It was also wrong in a counter-productive way: calling
clear-stream on a real Trace stream (which is the size of a page of
memory) takes a long time in emulated mode.
|
| |
|
| |
|
|
|
|
| |
No trace statements yet, so we don't know if it works.
|
| |
|
|
|
|
|
| |
Flesh out final test some more. We also now have a new family of
primitives for writing non-strings to input streams in tests.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Simplify `string-equal`.
|
|
|
|
|
|
| |
'get-or-insert-stream' is now the more generic 'get-or-insert' that can
handle tables of any value type. But callers have to be careful to cast
values to the right type.
|
| |
|
| |
|
|
Start of the final phase needed to implement SubX in SubX:
$ cat files.subx ... |dquotes |assort |pack |survey |hex > a.elf
survey.subx is responsible for assigning addresses to labels and segments.
|