Saturday, 11 February 2017

Reading Unsupported PROMs On A MiniPro TL866

As part of our slow progress with the Quantel DPB-7001 Paintbox we have been working a way to try and emulate a SMD hard disk. Because we don't have a working DPB or an SMD drive we need to build a rudimentary emulator of the disk controller element of the DPB so we can understand how it works.

Quantel DPB-7001 Disk Sequencer Card with 7 PROMs on the far right.

This will allow us to design a replacement plugin card for the physical DPB-7001 that would replace the Disk Sequencer card with a SMD emulator built into it using some flash memory and an FPGA.

Although most of the DPB uses standard 74 series logic, the disk controller uses an AMD AM2910 microcode sequencer driven from a small set of codes contained within 7 PROMs. We need to extract the code from these to be used within the DPB emulator that is being written. These PROMs are 28L22 devices with 256 x 8 bits of storage. The addressing is simple for these devices, there are 8 address lines to address each of the 256 memory locations and 8 data bits of output.

Unfortunately my MiniPro TL866 EPROM programmer doesn't support the 28L22, but that does not mean it can't read them with a bit of thought.

What we can do is make a small adaptor board to convert the pinout of the 28L22 PROM to be pin compatible with some other memory device the TL866 can read.

The closest match i could find was the AM2716B, which is a EEPROM with 2048 x 8 bits of storage. Though this has 10 address lines to access the additional memory space of this device. This is not a problem, we can simply leave these two extra address lines unconnected at the reader. The result of this is the reader will think it's reading out 2048 bytes of data but in fact it will be reading 256 but it will wrap around 8 times in the data readout.

Firstly we need to make an adaptor board to connect the device into the TL866:

During construction, the pin headers protrude through the base of the strip board to make contact with the ZIF socket of the TL866. Each pin can then be wired to a IC socket the 28L22 PROM will plug into.

View from underneath.

The 28L22 PROM plugged into the TL866.

Once the data is read out, we simply discard the last 1792 bytes of data to get to the original 256 bytes of data.