Electronics for Newbies: A RAM-less microcomputer

After my success with a single-instruction computer, I decided to kick it up a notch: An output-only, ROM-only computer! Before describing my exciting journey I should point out that my previously analysis was wrong: The DJNZ 0x10 was jumping each time - not going to the next instruction - but as the instruction was the same each time, we were jumping by 0x10, and I was only monitoring the bottom few bits of the address bus, I couldn't tell the difference!

The changes were about as incremental as possible, so no exciting debugging was necessary. Between each step I tested, and there were no hideous surprises:

  • I added an EEPROM, hooked up to the address and data bus. It contained the world's simplest program to do a 'Knightrider' display on an output port. No delay were included, as we're single-stepping.
  • I moved the buffer over to the data bus, to display it instead. I added an extra LED on /IORQ, so I could see the values it planned to write out.
  • I swapped the buffer for a latch, triggering on /IORQ. With enough single-stepping, I could now see the pattern.
  • In a separate circuit, I tested the 2MHz oscillator module I'd bought. (Slow? Yes, but I'd rather it work reliably...) It worked fine. \o/
  • I replaced the single-step circuit with the oscillator, and modified the program to include delay loops. It now ran all prettily on its own.
  • Finally, I added a cap to pull reset down on start up, to prevent the need for manual intervention.

The final schematic (apart from the reset cap, which I forgot) looks something like the following. The part numbers aren't quite right because I'm lazy and the software I use didn't seem to have the exact parts.

I have a lovely little video of the thing working, but I don't think there's anyone in the world sad enough to want to see it, so I won't put it online. Your loss!

Posted 2013-08-01.