# How can a peripheral work on both the ZX81 and on the ZX Spectrum?

The ZX Printer was made to work with both the ZX81 and the Spectrum (or rather, the Spectrum was made to work with the ZX81's printer!), but these computers have different expansion ports.

What I find puzzling is that although the lines have been moved around, the printer works on both machines.

For example, the notch that makes sure you don't insert something upside down is #5 on the Spectrum, and #3 on the ZX81. So the offset is 2. That makes sense, as A0 through A3 and the data lines are all shifted along by two. Same deal with /RFSH and /M1. But then, for example A11 has been moved way over the other side. And /BUSREQ is now +12V, I can picture that being dangerous.

How could devices like the ZX Printer keep working on the later computer? Why did they "move stuff around"?

• specific cables for each machine to connect to the printer... – Solar Mike Feb 2 at 9:29
• @SolarMike you sure about that? The cable doesn't disconnect from the printer but is permanently attached. – Wilson Feb 2 at 10:19
• adaptors then? I remember at that time the variety of cables and dongles etc etc... – Solar Mike Feb 2 at 10:21

## 3 Answers

The ZX printer is, like just about anything that carries the Sinclair label, a very minimalistic device - It only needs very few lines from the computer to actually work:

• Address bus: The printer does only use A2, nothing else - When both A2 and IOREQ are low, the I/O port of the printer will sample the data bus or put data onto it, depending on the /WR and /RD signal
• Data bus ("O" means "output from computer", "I" "input to computer"):
• D1: Motor slow/fast (O)
• D2: Motor start/stop (O)
• D7: "Stylus" on/off (O)
• D0: Encoder signal (I)
• D6: Printer connected (I)
• D7: "Stylus" has hit paper (I)
• Control bus, only needs /WR, /RD and /IOREQ

Beyond the above, power and GND, nothing else is actually connected between the computer and the printer. All of the above signals are in the same places (with respect to their distance from the connector key and PCB side, not the pin numbers) on both the ZX81 and the ZX Spectrum, all other signals are simply not connected in the printer - Absolutely nothing dangerous here.

• You will ned /RD also to have any use of D0, D6 and D7. – UncleBod Feb 2 at 13:22
• @UncleBod Obviously. – tofro Feb 2 at 13:27

Looking at the diagrams you provided, the data pins, interrupt pins, some of the ground pins, and +5v are all physically in the same place (imagine pins 1 and 2 on the Spectrum pinout being chopped off).

On the assumption that those are the only pins needed, provided the printer connector has empty space to accommodate the two extra pins on the left and right of the Spectrum interface, and doesn't connect the pins for things like +/- 12 volts to anything, then everything is good.

According to this page: RC2014 ZX printer interface the printer is only using the data-bus, /IORQ, /RD, /WR and address A2. All of these will be correctly connected in both cases. The site also claims that the original ZXprinter might not work, since it also used a +9 volt connection from the computer. As I understand from ZX80/81 edge connector ther +9 on ZX80 and ZX81 was the Uss in the pictures in the question. On a Spectrum, that was not connected on all versions. (ZX Spectrum edge connector)