UzixLS / zx-sizif-512

ZX Spectrum CPLD-based clone for rubber case

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sizif-512

Another CPLD-based ZX Spectrum clone for 48K rubber case with some sweet features.

photo

Tech specs

  • Half-sized PCB for 48K rubber case
  • Pentagon, Spectrum 128, Spectrum 48 and Spectrum +3e modes
  • Altera EPM1270 CPLD
  • Real Z80 in 3.5MHz, 4.4MHz, 5.2MHz, 7MHz (no-wait turbo) and 14MHz (turbo with wait-states) modes
  • 512K RAM
  • Real AY-3-8910 with switchable stereo ABC/ACB/mono output
  • Sega 6-button joystick input; Kempston/Sinclair modes
  • Integrated DivMMC and Z-Controller, 1x microSD socket
  • PAL and RGB video output (Sega Mini-DIN/9 connector)
  • Digital video output header for EGA monitors, VGA scandoublers, etc.
  • ULAplus
  • Mono covox (Pentagon ans SpecDrum standards)
  • SounDrive (4-channel stereo covox)
  • WiFi addon (link)
  • Tape input via 3.5" jack and Bluetooth
  • 9-12V power supply with any polarity
  • Reset and Magic buttons; header for power button

With extension board (link) more features may be added:

  • Turbo Sound FM
  • General Sound (12MHz / 512Kb RAM)
  • SAA1099
  • MIDI sound

Demonstration

Running Pentagon and Spectrum 128 demos: link
Playing music from SD: link
Some random photos: link
Review by Martin's 8-bit blog (in czech): link
Review by The Retro Shack youtube channel: link
Building from scratch experience in Terence Ang's blog: part1 part2 part3

Magic button

Sizif has a number of configurable parameters that you can change on the fly. To do this just hold Magic button for a second.

photo

To navigate menu you can use up-down keys, to change value use enter or left-right keys. Kempston, Sinclair, Cursor and QAOP supported.

If you press Magic button for a short time, the standard NMI handler 'll be called.

Sega gamepad buttons

Sega gamepad support will be available starting from PCB rev.D (or Rev.C with slight modifications).

Button Function in Kempston mode Function in Sinclair mode
Right Right (bit 0) 7
Left Left (bit 1) 6
Down Down (bit 2) 8
Up Up (bit 3) 9
A Button 3 (bit 6) N
B Button 1 (bit 4) 0
C Button 2 (bit 5) M
X Turbo Button 3 (bit 6) Turbo N
Y Turbo Button 1 (bit 4) Turbo 0
Z Turbo Button 2 (bit 5) Turbo M
Start Pause Pause
Mode Magic button Magic button

PS/2 keyboard buttons

Button Function
F1 Pause
F2 Fast forward
F5 Magic button
F10 Reboot
F12 Reboot
Ctrl+Alt+Del Reboot
Ctrl+Alt+Backspace Reboot
Numpad 8, 2/5, 4, 6 Joystick's up-down-left-right
Numpad 0/Enter Joystick's fire
Alt Joystick's fire

RAM

Sizif contains 512K RAM. There are two cases how to access it:

  1. DivMMC enabled (SD card insert) - 128K available via 7FFDh port, 128K via DFFDh (Profi standart, most compatible with old 128K software) and 128K reserved for DivMMC.
  2. No SD card present - 128K available via 7FFDh and 384K via DFFDh. Please note: ULAplus and Magic button shares one page of memory with DFFD port. If you run 512K-software, it's good idea not to use ULAplus and Magic.

Note that DFFDh port available only in Pentagon mode.

SD card

Sizif have preinstalled esxDOS firmware, which provides ability to load TAP, TRD, SCL, Z80 files and save snapshots. To use this you should format SD cart to FAT32 or FAT16 and unpack latest esxDOS release (link) to card. Also it's recommended to install Long Filename Browser (link) to card.

Tested addons

Changelog & current status

  • Rev.A - first release. Please note the errata (in russian).
  • Rev.B - abandoned. Files kept for historical reason.
  • Rev.C - BDI has been removed; improved video circuit; more capable CPLD; better power circuit; add mono AY mode. Errata.
  • Rev.C1 - fixed incorrect JTAG pinout; fixed incorrect silkscreen for power connector J3, tuned some circuit values. Everything seems to work. Errata.
  • Rev.D:
    • added zxbus connector for in-case addons
    • added support for +3DOS floppy controller
    • added support for Sega 3/6-button gamepad
    • added PS/2
    • added Bluetooth tape input (via M18 module)
    • added alternative microSD card socket footprint
    • fixed compatibility with some keyboards
    • modified tape input circuit
  • Rev.D1: minor changes in pcb layout
  • Rev.E:
    • added fuse on power input
    • added protection diode on 5V power rail
    • rotated left keyboard connector by 180 degrees
    • replaced TRS audio connectors by TRRS with video output
    • changed C37,C38,C39 footprint to able to install film capacitors
    • improved compatibility with wireless sega gamepads - 3.3V power replaced by 5V
    • added ability to simultaneously install the power/reset keys together with the connectors
    • added jumper for wiring minidin-9 pin 4 with composite or sync output for compatibility with dirty scart cables
    • added ability to install full-height 4.43MHz crystal
    • all 0.5/0.3 vias replaced by 0.6/0.3
    • experimental: 74HCU04-based speaker amplifier replaced by LM386-based
    • experimental: 74HCU04-based tape input circuit replaced by LM311-based
    • experimental: 74HCU04-based crystal clock generator replaced by ICS501-based
  • Rev.E1:
    • reverted experimental rev.E changes

Acknowledgments

This work is inspired and based on a lot of other projects and would hardly have been successful without them:

  • Harlequin (link)
  • Karabas-128 (link)
  • ZX Evolution (link)
  • zx_ula verilog implementation (link)

About

ZX Spectrum CPLD-based clone for rubber case

License:MIT License


Languages

Language:KiCad Layout 82.6%Language:KiCad Schematic 12.2%Language:SystemVerilog 3.0%Language:Verilog 1.0%Language:VHDL 0.7%Language:Assembly 0.3%Language:Makefile 0.0%Language:Tcl 0.0%