If no fault has been found and the computer still has not initialised, the fault could lie in the RAM. If the
computer is a 48k machine the 32k of expansion RAM can be isolated. An easy way of doing this, assuming
that the ICs are not fitted into sockets, is to remove the +5V from IC25. This is probably best done by very
carefully cutting the track to IC25 pin 16. If this operation clears the fault condition, the expansion RAM
will have to be further isolated. In either instance, the point has been reached where it is necessary to
start replacing ICs.
Where the fault persists after isolating the 32k expansion RAM it would be necessary to start changing
individual ICs in the order of IC13 to IC6 (RAM), IC1 (ULA), IC2 (Z80A). After each change of IC, the unit
must be powered up to check for correct initialisation.
A method of fault-finding that can be used on both 16k and 48k versions is to make a `test IC` device. This
may be done by using an IC test clip, to which is attached a serviceable IC (of the relevant type e.g. 4116
or 4532), to bridge across each suspect IC in turn. This method is not guaranteed to work but can often
save a lot of time unnecessarily changing suspect ICs.
5.4 MEMORY CHECK
Where a Spectrum has initialised correctly but a RAM memory fault is suspected, it is possible to find the
faulty address and relate it to a faulty IC by carrying out the following procedure:
Key in the instruction:
PRINT PEEK 23732+PEEK 23733*256
The value printed should be:
(a) for a 48k unit – 65535
(b) for a 16k unit - 32767
The value printed in each instance is the last valid memory location, and in a serviceable unit would be as
set out above. Therefore, if a different value, n, is printed the faulty location will be n+1. If the value
returned is less than 32767 the fault lies in the original 16k of RAM. The following example illustrates the
method of relating a faulty location to a faulty IC.