ZX-Spectrum Clone

Ende 1988 bekam ich über die Technische Hochschule Ilmenau eine Leerplatine des dort entwickelten ZX-Spectrum-Nachbaus GDC 204.
Nachdem mein CP/M Computer mehr für Programmierung und Textbearbeitung lief, reizte dieser populäre Spielecomputer mit Vollgrafik und guten Softwareangebot.
Die Schaltungsanalyse der TH-Version ergab allerdings große Unterschiede zum Original-Spectrum, wodurch hardwarenah oder zeitkritisch programmierte Programme nicht richtig liefen.

  • CPU arbeitet während Bildaufbau nicht, also 60% der Zeit, dadurch Timing abweichend
  • PIO statt Registergesteuerter I/O
  • ROM wegen Hardwareabweichung geändert
  • keine Farbausgabe, nur schwarz-weiß-Grafik
  • zusätzliche CTC und PIO, die bei unüblichen Programmzugriffen stören können

Somit setzte ich mir zum Ziel, die Schaltung soweit abzuändern, dass 100% Kompatibilität erreicht wurde. Im Prototyp bedeutete dass noch, dass eine zweite Platine entstand, die diverse Schaltungsteile neu darstellte und genauso groß war, wie die originale GDC 204. 

Das fertige Gerät bekam ein stabiles, glänzendes Gehäuse aus Thermoplaste (Polypropylen).

Auch das Gehäuse ist von Hand aus einzelnen Platten gesägt, über einem Hitzedraht gebogen und mit Gewindebohrungen zur Montage versehen.

 

An der Rückseite Anschlüsse für Strom, Kempston-Joystick, BAS-Signal, Tape, RGB-Signal,
Schalter für Netz-Ein und Farbe, sowie eine Sicherung.

 

einmal aufgeschraubt sieht es so aus:
Die Tastatur war wieder ein Kostentreiber, 180 Mark kostete mich diese

 

Die Hauptplatine vom GDC hat nicht viel vom Original behalten, 1 Huckepackplatine ersetzt PIO, ein extra-IC die Adresskodierung, eine Addon-Platine für Kempston-Joystick, eine Addon-Platine für RGB-Pegelanpassung, die Buskoppler der Zählerkette wurden als Steckverbinder bestückt und auf meine Grafikplatine geführt.

Wer ganz genau hinschaut, findet in der Bestückung eine weitere Besonderheit: Statt eines UA880 steckt als CPU ein U84C00DC 04. Dieser Schaltkeis war die CMOS-Variante des Zilog-Z80, welcher im VEB Mikroelektronik Erfurt (MME) erst 1989 entwickelt wurde.

 

Die gesamte neue Grafikeinheit sitzt auf Platine unter der GDC-Karte.

 

Die Bildausgabe des ZX-Spectrum ist folgendermaßen aufgebaut:
Grafik 256x192 Pixel Vollgrafik = 6 Kbyte Grafikspeicher
Farbe 32x24 Blöcke mit je 8 Vorder- und Hintergrundfarben+Bright+Blink = 1 Kbyte Farbspeicher
Randfarbe 1 aus 8  über I/O Bits.

Im Gegensatz zur GDC-Schaltungsvarianten habe ich den Video+Farb-RAM als extra zusätzliche Speicherschaltkreise ausgeführt, so dass die CPU jederzeit im normalen RAM-Bereich unbeschränkt arbeiten kann, und ausschließlich bei Schreibzugriffen in den Videoram ggf. ein WAIT-Zyklus für die CPU eingefügt wird, um die Bilddarstellung nicht zu stören. Nur der reine Videospeicher läuft über Multiplexer.

 

Im Original ZX-Spectrum war der Speicher folgendermaßen aufgeteilt und bestückt:

0000H-3FFFH  16 kByte EPROM 1x 23128  an CPU
4000H-7FFFH      16 kByte RAM 8x 4161   an ULA = Videospeicher
8000H-FFFFH     32 kByte RAM 8x 4532   an CPU

 

 

Nachdem mein Spectrum quasi als Prototyp für die neue Schaltung fertiggestellt war, enstand für weitere Spectrum-Interessenten noch eine Platine, die beide Leiterkarten in einer vereinigt. Der Gesamtschaltplan sah dann folgendermaßen aus: Schaltplan (626 kbyte)

Kurz darauf ergab sich die Beschaffungsmöglichkeit von U6264, einem 8kByte SRAM. Damit lies sich die Schaltung nochmals vereinfachen, statt  8 x RAM U2164  +  4 x ROM U2716   ergab sich jetzt  6 x RAM U6264 + 2 x ROM U2764. Zusätzlich konnte die gesamte RAS/CAS Aufbereitung für die DRAM wegfallen. Somit entstand für den CPU-Teil diese letzte Variante: Schaltplan (360 kbyte)

 

Am Rande: die Farbfernseher der DDR hatten keinen RGB-Eingang, um das Computerbild in Farbe einzukoppeln. Also musste ich sogar den 4.900 M teueren Fernseher mit einer eigenen Platine nachrüsten. Deshalb ist in der obigen Schaltung die Farbauskopplung nicht weiter dargestellt.

Erweiterungen:

- Joystick

- als Ersatz für die Tapes baute und programmierte ich auf dem CP/M PC eine Schnittstelle, so dass letzlich alle Spiele von Diskette geladen werden konnten.

 

   

Kommentar zum Thema