Hardware-Erweiterung

Auf dieser Seite stelle ich Module und Hardware-Erweiterungen für den ZX Spectrum vor. Für den Aufbau sind gute Kenntnisse in der Elektronik und auch etwas Erfahrung erforderlich, denn obwohl die Spectrum-Computer recht robust sind, kann eine kleine Unachtsamkeit den Computer durchaus beschädigen. Bevor eine der folgenden Schaltungen an den Spectrum angeschlossen wird, sollte man alle Verbindungen genau prüfen und kontrollieren, dass keine Kurzschlüsse vorhanden sind. Ich hafte nicht für Schäden!

SymbolInhaltsverzeichnis
ZX Interface 2 - ROM-Modul mit 32 Speicherbänken

SymbolZX Interface 2 - ROM-Modul mit 32 Speicherbänken

Das ZX Interface 2 stellt neben 2 Joystickanschlüssen auch einen ROM-Port zur Verfügung, welcher unter einem Klappdeckel versteckt ist. Hier lassen sich Module mit Spielen einstecken, die den großen Vorteil haben, dass man beim Einschalten des Computers sofort losspielen kann. Insgesamt wurden 10 Spiele als ROM-Modul veröffentlicht, die allerdings gegenüber der Kassettenversion relativ teuer waren. Leider kommt man heute nur schwer an diese Module heran, aber das ist nicht schlimm, da man sich solch ein Modul selbst bauen kann. An dieser Stelle möchte ich auf die Seite www.fruitcake.plus.com verweisen, die viele Informationen über die damals erhältlichen ROM-Module und den Selbstbau von Modulen zur Verfügung stellt. Diese Seite hat mich auch zu meiner Modulversion inspiriert, welche mit einem 29F040 Flash-ROM bestückt ist und Platz für 32 ROM-Bänke bietet:

IF2-ROM Schaltung Das nebenstehende Bild zeigt den Schaltplan für das ROM-Modul. Die Technik ist relativ einfach erklärt: Alle Datenleitungen vom ROM-Port (D0-D7) sind mit den gleichnamigen Anschlüssen des Flash-ROMs verbunden, ebenso die Adressleitungen A0-A13 sowie die Masse und die Stromversorgung +5V. Die beiden Adressleitungen A14 und A15 führen zu einem OR-Gatter (IC2), welches als Adressdecoder arbeitet. Der Ausgang führt zum ROM-Anschluss /CE und schaltet nur dann das ROM frei, wenn A14 und A15 auf Low-Pegel liegen. Somit arbeitet das ROM immer im Adressbereich von 0-3FFFH (0-16383) - ebenso wie das interne ROM des Spectrum. Damit es keine Konflikte mit diesem gibt, wird die Leitung ROMCS auf +5V gesetzt und damit das interne ROM des Spectrum abgeschaltet. Erwähnenswert ist noch die Leitung /MREQ - diese führt an /OE des ROMs und bewirkt, dass die Ausgänge des ROMs nur bei Speicherzugriffen aktiviert werden.

Im Gegensatz zu den originalen ROM-Modulen, die mit einem 16kB ROM bestückt sind, wird hier ein Flash-ROM mit einer Speicherkapazität von 512kB verwendet. Damit können 32 Speicherbänke mit jeweils 16kB realisiert werden. Zur Umschaltung der Speicherbänke werden die oberen Adressleitungen A14-A18 des Flash-ROM an Schalter geführt. Hier hat sich ein Codierschalter mit 16 Stellungen bewährt, der die aktuelle Schalterstellung als Hexadezimalwert ausgibt - also genau richtig zur Ansteuerung der Adressleitungen A14-A17. Die übrige Leitung A18 kann über einen Dip-Schalter umgeschaltet werden. Somit stehen 2 Bereiche mit jeweils 16 Bänken zur Verfügung.

AnzahlBauteilNummerBemerkung
1IC 29F040BIC1Flash-ROM, z.B. AM29F040B, DIP-Version
1IC 74LS32IC2DIP-Version
5Widerstand 5,6kΩR1-R5Metall
2Kondensator 100nFC1, C2Keramik
1KodierschalterS1-S4Kodierschalter mit 16 Stufen, z.B. Reichelt „KMR 16“
1DIP-SchalterS5Mini-DIP-Schalter, z.B. Reichelt „NT 02“
1IC-Fassung 32-polig(IC1)DIL 32-polig
1IC-Fassung 14-polig(IC2)DIL 14-polig
1PlatinenmaterialLochraster-Platinenmaterial 2,54mm, ca. 50mm x 50mm
1Kontaktstreifenkann von einer alten PC-ISA-Platine abgesaegt werden
Die nebenstehende Tabelle enthält alle benötigten Bauteile.

Anstatt des 29F040B können auch andere Flash-ROMs oder EPROMs verwendet werden, da die Anschlussbelegung meist kompatibel ist. Im Zweifelsfall sollte man das Datenblatt studieren. Ich habe mich für dieses Flash-ROM entschieden, weil es günstiger als ein vergleichbares EPROM ist. Außerdem lassen sich Flash-ROMs viel einfacher löschen und neu programmieren, sofern ein geeignetes Programmiergerät vorhanden ist.

Anstatt des Kodierschalters können auch einzelne Schalter verwendet werden, auch Kippschalter sind möglich. Hier muss man allerdings die gewünschte Speicherbank im Hexcode auswählen, was aber für den echten Spectrum-Freund kein Problem darstellen sollte :-)

IF2-ROM 1 Ich habe das ROM-Modul auf einer kleinen Lochrasterplatine aufgebaut. Etwas problematisch ist der Steckverbinder: Hier hatte ich aus früherer Zeit passende Leiterstreifen zur Verfügung. Einer davon wurde einfach an die Lochrasterplatine angeklebt (mit Zweikomponenten-Kleber). Wer solche Leiterstreifen nicht zur Verfügung hat, kann diese von alten PC-ISA-Steckkarten recyceln. Am besten sind diejenigen dran, die selbst Platinen ätzen können. Hier werden die Streifen einfach ins Platinenlayout integriert. Auf der weiter oben genannten Seite wird ein Layout vorgestellt, welches aber etwas modifiziert werden müsste.

Damit die Platine möglichst klein wird, habe ich einige Bauteile unter dem ROM platziert. Das betrifft die 5 Widerstände und den Kondensator C1.

IF2-ROM 2 Dieses Bild zeigt das fertige Modul mit aufgestecktem ROM. Links neben dem ROM ist IC2 zu sehen und darüber befinden sich die Schalter zur Bankauswahl. Die Dip-Schalter gab es leider nur im Doppelpack und so bleibt eben einer davon ungenutzt.

IF2-ROM 3 Hier ist die Leiterseite der Platine zu sehen. Zur Verdrahtung wurde 0,3mm Kupferlackdraht verwendet. Die Verarbeitung ist etwas gewöhnungsbedürftig, aber mit etwas Übung lässt sich auch das schaffen. Alternativ kann man auch dünnen „Klingeldraht“ benutzen.

Jetzt muss noch das Flash-ROM mit Daten gefüllt werden, damit man das Modul verwenden kann. Dazu wird neben dem Datenfile ein Programmiergerät benötigt. Auf meinen Elektronik-Seiten stelle ich ein EPROM-Programmiergerät vor, welches auch den hier verwendeten 29F040B programmieren kann.

Den Inhalt der einzelnen Speicherbänke kann man beliebig zusammenstellen. Dazu muss man sich zunächst die benötigten ROM-Files beschaffen. Auf der bereits erwähnten Seite www.fruitcake.plus.com findet man neben den 10 Original-Spielen weitere ROMs wie z.B. Emulatoren für ZX80 und ZX81 oder Test-ROMs. Auch die Seite zxspectrum.it.omegahg.com hat viele ROMs im Angebot. Hat man die gewünschten ROMs im Binärformat, also als Datei mit 16384 Bytes Länge vorliegen, dann kann man diese auf folgende Weise zu einem EPROM-File zusammenkopieren:
  1. Eingabeaufforderung öffnen, diese findet man unter Windows im Startmenü - Zubehör
  2. In das Laufwerk wechseln, wo die ROM-Files gespeichert sind, z.B.: d:
  3. Ins Verzeichnis wechseln, wo sich die ROM-Files befinden, z.B.: cd \spectrum\roms
  4. Es sollen beispielsweise die ROMs rom1.bin, rom2.bin, rom8.bin und rom7.bin verwendet werden.
  5. Eingabe: copy /b rom1.bin + rom2.bin + rom8.bin + rom7.bin eprom.bin
  6. Die erzeugte Datei eprom.bin muss jetzt in das Flash-ROM programmiert werden.

Ich hatte da schon mal etwas vorbereitet:

Bank 0Space Raiders
Bank 1Masterchess
Bank 2Planetoids
Bank 3Hungry Horace
Bank 4Backgammon
Bank 5Horace & The Spider
Bank 6Jet Pac
Bank 7Pssst
Bank 8Tranz Am
Bank 9Cookie
Bank AZX81 Emulator (für Spectrum 128k)
Bank BSinclair System Test ROM Cartridge
Bank CSpectrum 128 RAM Tester
Bank DHDT-ROM (weitere Infos)
Bank EISO-ROM (weitere Infos)
Bank FZX Spectrum ROM (normales 48k ROM)

Bei diesem ROM-File werden nur 16 der 32 verfügbaren Bänke genutzt. Leider sind hier ROM-Files enthalten, die nicht kopiert werden dürfen. Aus diesem Grund habe ich den ursprünglich vorhandenen Download-Link entfernt.