The Ursa Major Space Station SST282 has 3 factory programmed PROM memories on board which hold the RAM memory lookup tables for the effect generation. These programmable ROM’s used here are TTL level 74xx series schottky memories which are one time programmable by basically blowing a fuse on the respective memory location grid during the programming process. Since the ic’s in the SST282 are now more than 30 years old, it would be kind of interesting to have some sort of backup of the memory contents in case of component failure.
Since at the moment of this writing I have not been able to find a memory dump of the PROMS online, I decided to have a go at reading out the memories by myself.
Also did I not have a programmer able to read 74xx series PROMS on hand, so I went ahead and developed a PROM reader based on a Raspberry Pi 3 and a script written in Python to read out the two types of PROM components used in the Space Station.
The schematic is rather simple, just connecting the chip’s address bus and data bus to the Raspberry’s GPIO header. In order to accommodate the level difference from the Raspberry’s 3.3V output to the components 5V TTL level, the Raspberry outputs have been passed through a TTL level shifter. I used a 74LS541 for that task.
The same has to be done for the output level adjustment from 5V to 3.3V for the data outputs of the PROM component to the Raspberry Pi’s GPIO inputs: The signals are passed through a resistor divider in 2/3 1/3 configuration in order to reduce the high state level to 3.3V.
The Python script i wrote is nothing fancy, basically it consists in setting up the Raspberry’s GPIO ports and then iterating through the PROM’s complete address range where for each memory location the resulting data value gets stored to a file. The filename is hard-coded but I did not require anything better for a one-off reading.
Since I am dealing with two components with different address ranges, I wrote two scripts to cover the respective address ranges of the components.
The DM74S288 is 32 byte long and the 74S471 has a memory of 256 bytes.
The Python scripts as well as the resulting data dumps can be downloaded here (zip file).