ZX Spectrum edge connector
The expansion connector on the ZX Spectrum range of computers is a double sided card edge connector with a 0.1 inch spacing. The two rows of conductors are numbered from right to left looking into the rear of the computer. One pair of conductors are missing as there is an indexing slot cut out of the circuit board.
The ZX Spectrum expansion connector is related to (and partially compatible with) the earlier ZX80 and ZX81 expansion connector, though only the data bus, low address lines, and a subset of the control bus remain in the same locations relative to the index slot. Lines not physically present on the ZX80/ZX81 edge connector are shown with underlining of their numbers in the diagram shown here.
ZX Spectrum model differences
The three main "generations" of the ZX Spectrum each provide a slightly different set of signals on the connector and are described fully in the following articles: 16K/48K, 128K/+2, +2A/+3, +2B, and +3B.
This article and the table on the right attempts to describe a compatible pinout which is consistent across all models. Only signals and supplies which are present on all models are listed (with the exception of the notes below). The remaining pins are shown as NC in this table for simplicity but be aware that those pins will carry signals dependent on the model.
An interface which uses only the signals shown should work on any model of ZX Spectrum.
ROM disable pins
The ZX Spectrum 16K/48K, ZX Spectrum 128, and ZX Spectrum +2 provide ROMCS on lower pin 25. By holding this pin high an external peripheral can prevent the Spectrum's ROM from driving the data bus, and place its own ROM or RAM within the first 16K of the 64K memory space.
The +3 and its derivatives however have two physical ROM chips which each have their output enable routed to the expansion port. These two OE (Output Enable) pins are upper pin 4, and lower pin 15. Upper pin 4 was not connected on any of the earlier models, but lower pin 15 was used for composite video out on the 16K/48K. Lower pin 25 (ROMCS) is not connected on the +3/+2A/+2B and lower pin 15 is unused on the Spectrum 128 or +2.
This means that when designing an interface which will page external memory in place of the Spectrum ROM a configuration jumper or similar is required to connect the ROM disable signal to lower pin 15 on a +3, but disconnect it on a 16K/48K. Applying ROM paging signals to the 16K/48K composite out pin does no permanent damage, but causes burst of patterning on the display.
Note that the CK signal was accidentally left unconnected on the Spanish version of the Spectrum 128.