tirsdag den 30. september 2014

Diode matrix ROM for the Z80, or: How a silly, not-so optimized idea became a main design choice.

Ok, so the phase one hardware design for the z80 system B is almost done. Even started on expanding, but I would like to have it running first. But alas: having no EPROM's, and no burner for them, i had to think of something for a complete hardware test. So i decided to code three small program snips into a diode matrix ROM for it.

What a beauty! I've expanded the design (see last post) for 32 bytes, using 2 74154 4-16 decoders, and then feeding the lower 4 addresses into those. the next two addresses are fed to a 2-4 decoder, whose 1 and 2 output enables either chip 1 or 2.
The design of the diode matrix itself was a bit tricky. Most designs needs either multiple boards, or 3d arrays of wires, but eventually, i landed on having each trace (32 of them) for each line run all the length of the left half of the board. then, soldering tin/copper wire across the top of the board, and connecting those to the data lines, with pull ups. the result is rather neat, in its own right.
The bytes are read upwards, meaning that A0 is the lowest row, and so on. A diode indicates a 0, while a missing diode is 1. This is stupid, in terms of saving diodes, since 00 is used more often than FF, but yeah. Still needs some bytes, though, i ran out of diodes.


It should be able to mimic a 2716, or any device, really. I may need a tri-state buffer on DATA bus, and have the gate tied to /CS, to keep the bus floating from the pull ups. We'll see.

Once again, the sample programs are some counters and stuff i found on Donn Stewart's z80 page. I still haven't gotten around programming yet.

Ingen kommentarer:

Send en kommentar