Monitor loads hex over serial, and RAM is proven whole

/ DINO / from dino-homebrew monitor serial ram loader

What I tried

Two new monitor commands in ROM. L addr,len takes hex digits off the wire, writes them to RAM and prints a running 8-bit sum so the host can check the transfer. G addr does a CALL into RAM, so a loaded program ends with RET and lands back on the prompt. No microcode burn; it is all program ROM.

On the host, dinoload.py assembles a .asm, sends L, streams the bytes and compares the monitor’s sum against its own. The first version burst the whole line and the machine dropped characters. Four fixes in a day: flush the port and retry the sync CR, type one character at a time and wait for its echo before the next, keep bytes that arrive past the delimiter, and show the session live with echoes, the sum line and a byte counter. A per-character echo check means a wrong echo names the position.

Then RAM. Every bench-green image so far had kept its cells and stack inside 0x8000-0x80FF, so RAM above that was formally open. Wrote data and fetched instructions across the range.

What I measured

What broke or surprised me

The loader was sensitive to everything. It worked sometimes, which meant noise, and the noise was on the DINO side: the serial card is the only device in the machine that counts strobes or has an asynchronous reset, so so a serial-only fault with the ISA self-test clean has to be a strobe or a reset.

Next

Next is loading something real: life.asm, Rule 30 on the terminal, seeded from the DIP switch, with the rule table patchable from the monitor prompt. Then a large transfer both directions to see whether the wire has settled.