Skip to main content

Support for +2/+3 Spectrums

· 2 min read

+3 Switch from close by

Spectranext is built for the ZX Spectrum user port (48K, 128K “toastrack”, +2, +3). The cartridge has now been exercised on a +3 end-to-end; earlier revisions did not behave there even though 48K machines looked fine.

On the 48K edge connector, several user-port lines are unused or tied to VIDEO. On +3, the same physical lines drive on-board ROM chip selects: the cartridge’s ROM-disable outputs sit in that path. Both ROM CS lines are asserted together when the Spectranet ROM is paged in—electrically consistent, but the +3’s own ROM paging and reset timing are different from a rubber-key 48K.

Cartridge overview

What went wrong at first

I assumed the user port would behave like a 48K for our signals. It doesn’t: on a +3 the same pins are wired to different jobs (on-board ROM control), so “it works on 48K” was never a guarantee for +3 until I accounted for that. I didn’t appreciate how different the wiring was until the +3 kept misbehaving while 48K machines looked fine.

Reset doesn’t feel the same on a +3 as on an old 48K: it comes up cleaner and faster, and the firmware had been written around the slower, fuzzier reset behaviour of the rubber-key machines.

Current hardware adds a small switch: 48K vs +3. Use the +3 position on a Spectrum +2/+3—the pins are physically wired for that machine; the 48K position is for other (48k, 128k and the same routing as a classic Spectrum). The two are not interchangeable.

Spectranext PCB

A volunteer with a +3 has run the new board confirmed it working—huge thanks for that. It’s the kind of check I can’t fully replace at the bench.

Still worth knowing

Spectranet’s original “trap after copyright” idea is tuned around 48K ROM layout; +3 ROM is a different map, so edge cases can still feel 48K-first until software catches up. Getting electrical routing + reset behaviour right is what put +3 on par for boot; the rest is the long tail of ROM-level quirks.

More on the hardware stack: Hardware components.