| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Simplification.
|
|
|
|
| |
In the process I had to fix a couple more bugs in support for disp16 instructions.
|
| |
|
|
|
|
|
|
|
| |
I stopped handling disp16 at some point, and using instructions with such
an operand messes up segment alignment when generating ELF binaries.
I don't test my ELF generation. This is a sign that maybe I should start.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This time I've ported (and test-driven) 'GetChar' and 'GetNum'. The new
tests bring together our new testable interfaces for read() and exit().
|
| |
|
|
|
|
|
| |
Bugfix: I forgot about ELF segment offsets when implementing VMAs. Eventually
segments grew large enough that I started seeing overlaps.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Let's start highlighting all global variables in Red. Assembly programming
has a tendency to over-use them. They're a necessary evil, but we should
minimize the number of functions that access them.
|
|
|
|
|
| |
Long-standing and long-copied typo has been messing with our exit status
on test failures.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
There can be situations where a run is striding through a segment. Reduce
the number of reallocations that reallocations that requires.
|
|
|
|
|
|
|
| |
When we implemented 'read' our apps went over 0x1000 bytes, so I grew the
initial segment size. But that slowed down emulation because each test
was reallocating all segments. Now we allocate small segments at the start,
and grow them gradually as needed.
|
|
|
|
| |
Fix CI.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Extract a helper that we'll need for 'read'.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
We'll use a common stream data structure for input and output streams.
Having separate types makes more sense in a more high-level language, where
we have type checking and where functions for handling the different types
are more concise. But in machine code the sweet spot is more toward fewer
types.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Start injecting all dependencies in the Crenshaw compiler app.
In the process I realized the non-fake code path of 'stop' had a bug.
|
|
|
|
|
| |
What is this '|| exit 1' construct?! No need for it in the presence of
ERREXIT.
|
|
|
|
|
|
|
| |
I've started testing more regularly on 64-bit Linux, and I realize that
the binaries actually now compare identical even on 64-bit. Why did I ever
add that condition to CI? Seems to be working now on Travis. Let's start
comparing now and see if the problem happens again.
|
| |
|
| |
|