Programmable ROM made of switches coupled with diodes. In some ways resembles organisation of ROM chips.
At first, a pathfinder was made, as a small self-contained unit, consisting of 4 banks of 8 switches each, addressable by 2-to-4 decoder, which has output signal displayed by column of 8 white LEDs - there are photos of it in gallery.
Afterwards, bigger unit was built, which is described in the log entry for this project.
As I integrated the ROM into my ECM-16/TTL Pilot-1 cpu, I've encountered a couple of problems:
- there is an intermittent short circuit developing on data bit A line, which makes it stuck to HIGH no matter the actual switch position
- on address E it seems to be no output
- reset signal is not fully implemented, so the address counter won't clear to zero.
The first two of the above problems were solved by soldering some wires that came loose - as they are quite exposed, they are fairly delicate and were not able to handle stresses of me moving/transporting the board around.
The reset was implemented by small adjustment of board's wiring.
Here is the board's back, and it is visible that its wiring is fairly fragile in places. I intend to apply epoxy to this side of board to make it sturdier and less prone to damage. The downside is that if something happens to the board after that, it would be next to impossible to repair it.
Here is the schematic/model of this ROM module I use in my simulations:
In actual board, the pair of 74hc238 3-to-8 decoders drives address lines of switch bank, activating a single word to the data bus.
Over a last couple of moths I constructed a ROM unit, which may be useful in further development of my computer project.
The unit is composed of 256 switches and 256 associated diodes, has 2 3-to-8 74hc238 decoders combined so they act as single 4-to-16 decoder, output buffer for each of 16 data bits (Schmidt invertor combined with regular one), and, as a bonus, the board also contains 74hc163 4-bit synchronous counter. With this arrangement, two ways of addressing are implemented.
1: one can just send an address, and after first rising clock edge the addressed data will be on outputs.
2: addresses can be auto-incremented, and new sequential data word will appear on each rising clock edge.
There are, as some useful extra, also LEDs, which show which word is chosen, and what data it contains.