Karabas-128

A ZX Spectrum 128K replica with a real Z80 that fits the original 48K rubber-key case

Chip
Z80 + Altera EPM7128STC100
Video
RGB, PAL
Memory
128 KB
Latest revision
B2
License
WTFPL

GitHub ★ 39

Karabas-128

Karabas-128 is a ZX Spectrum 128K replica with a real Z80 CPU and almost all the logic in an Altera EPM7128STC100 CPLD. The board is designed to fit the original ZX Spectrum 48K rubber-key case.

The idea was to make a cheap 128K clone with a minimum of components.

Building it

Start with the SMD parts. The CPLD needs hot air or a soldering station with a “mini-wave” tip. Do not put the DIP chips into their sockets before the first CPLD programming. The firmware is uploaded over JTAG with a USB Blaster, and a correctly assembled board needs no further adjustment.

Screen modes

With one diode added, the board switches between Pentagon and ULA48 modes (with contended memory emulation): RESET+1 and RESET+2. Thanks to solegstar from zx-pk.ru.

Credits

The CPLD design is based on Speccy2007 by syd and its single RAM chip version by .jackson. Some parts of the schematic come from Superfo’s Harlequin 48K rev.G.

Files and documentation

Photos and renders

Videos

More videos (5)

Videos by the author and the community on YouTube, in their original languages.

PCB changelog

Karabas-128 Revision History:

Revision A

First working revision of karabas-128. See ERRATA for bugs and issues )

Revision B

  • Fixed bug in incorrectly routed RGB connector (thanks to Nika that reported about this issue)

  • Rerouted power lines, LM8596 should be more stable

  • Added inductor + cap filter for AD724 to reduce digital noise

  • Added a trimcap to adjust AD724 frequency

  • Replaced TL712 tape in module with CD4069 (thanks to tank-uk)

  • Added 3V3 regulator to support EPM3128 CPLD

  • Added LED to indicate power on

Revision B1

  • CLK_BUS signal on ZX BUS edge connector is routed via free IC4 inverter (thanks to Ricardo Saraiva with testing and investigating the bug source)

  • Removed 3V3 regulator, because EPM3128 has less i/o lines than EPM7128, so - unsupported

  • Added diode for mode switch feature (RESET+1, RESET+2, etc - thanks goes to solegstar)

Revision B2

  • Import project to Kicad

  • Small cosmetics changes