Applying the Unrainer/IN 7FFD fix to 128/Grey +2 machines

There are a couple of quirks of the 128 or Grey +2 machines that you may have encountered at some point:

Typing ‘PRINT IN 32765’ in 128 BASIC causes a crash

Certain games have moving screen corruption (‘snow’)

The reason for both of these issues is that inside the 128 and Grey +2 machines, a PAL (Programmable Array Logic) chip is used to control some aspects of the paging port and memory access logic. The equations programmed into the PAL have a couple of bugs which causes the above behaviour.

This is relatively easy to correct, and if you have an EPROM programmer which can program GAL16V8 IC’s (like the Minipro TL866) this can be done in under half an hour.

Note that the Spectrum +2A and +3 models do not suffer from the above behaviour, also there is no PAL chip on these (the functionality having been absorbed into the gate array).

Tools required:

Soldering iron

Desoldering pump

GAL16V8 IC (eBay seem to be the best source at the moment)

20 pin IC socket

a piece of insulated wire

Step 1: Program the replacement GAL

The GAL16V8 is a pin compatible replacement for the original PAL/HAL chips found in the 128 and Grey +2 machines. Taking the replacement JED file from the archive located on Velesoft’s site, program the new GAL.

Step 2: Desolder the PAL chip from the PCB

The IC to remove on the Spectrum 128 is IC29, and on the grey +2 it is IC7. Solder the replacement socket in place, taking care that the orientation of the notch matches the silkscreen on the PCB.

HAL Location on a 128 ToastrackHAL location on a Grey +2 (Z70700 Issue 1 PCB, other issues are similar)

Step 3: Additional wire connection

Connection to be made, shown on a Grey +2

Because the new GAL is programmed to have a new input (/RFSH, pin 11), we need to connect this up to the output on the CPU. This is as simple as taking a piece of insulated wire, soldering one end to pin 11 of the socket (on the solder side of the PCB), and soldering the other end to pin 28 of the CPU, again on the solder side. (The original HAL pin 11 is not used and is not connected to anything on the PCB).

Step 4: Plug in the new GAL

Insert the new GAL chip into the socket, again being careful about orientation.

You may now test that the machine works properly, and that the following holds true:

PRINT IN 32765 from 128 BASIC returns 255, and doesn’t crash

Games like Robocop 3 don’t have any snow on screen.

Thanks to Velesoft for the original article and JED file which is the source of this article.