Fixing a poorly ZX-Spectrum (Part 4)
I’ve now established that D1 on the data bus is being held low. The only chips on that line are the Z80, the ULA, the ROM and the RAM chips IC7 & IC16.
The plan is to take each chip out of the equation by temporarily disabling them one at a time and then testing the bus for normal operation. I will start with the 4116 chip IC7, then IC16, then finally the ROM, the ULA and the Z80.
I suspect that it is one of the RAM chips; it is unlikely that the other components mentioned would suffer a failure on a single data line. Of the RAM chips I suspect IC7 as 4116 DRAM has a bit of a reputation amongst vintage computer repairers as being fairly unreliable.
The lines DIN and DOUT on the RAM are connected to the data bus. DOUT is tristated; that is can either be low (0v), high (+5v) or floating (high impedence). Low and high represent 0 and 1 respectively. The third state, floating, effectively means the chip has been switched off the bus.
This is an important feature of RAM. For example, if the Spectrum has selected the bottom 16K of RAM then the top 32K of RAM will be deselected. If this mechanism fails then both banks output signals on the data bus simultaneously with unpredictable results.
I suspect that IC7 is faulty and stuck in a low state, pulling D1 low all the time regardless of what address is being selected by the Spectrum. This would explain why this Spectrum isn’t booting up; the instructions being read from the ROM would be rendered meaningless if bit 1 is always zeroed.