Für die Vectrex - Spielekonsole einem Home-Arcade-Automat aus dem Jahr 1982 gibt, oder gab es eine sehr begrenzte Anzahl an Spiele Titeln. Die Vectrex selber, beziehungsweise die Restauration dieses Schätzchens werde ich in einem eigenen Beitrag vorstellen.
Die Spiele waren in Form von ROM-Modulen erhältlich und mussten seitlich in die Konsole gesteckt werden. Heute sind sie, wie auch die Konsole selber, ziemlich rar und schwer zu finden. Es gibt auch Nachbauten und einige DIY Projekte die auf Basis der alten EPROMS das Spielprogramm oder auch mehrere Games gespeichert halten und so über ein "Modul" spielbar waren. Da ich auch noch alle möglichen Eproms mit unterschiedlichen Größen im Bauteilelager hatte und auch von einem Kollegen (vielen Dank Jürgen) ein paar 27C512er Eproms gesponsert bekam, musste ich einfach versuchen, damit ein ROM-Modul zu basteln.
originale Vectrex ROM-Modul Platine |
Also einmal schnell nachgedacht, was ich dafür alles benötige. Hier eine kleine Aufstellung:
- alte EPROMS (ich verwende Eproms, die mit UV-Licht wieder gelöscht werden können)
- einen Eprom Programmer (in der hintersten Ecke eines Kastens habe ich noch einen ChipLab Programmer mit paralleler Schnittstelle gefunden)
- einen alten Rechner mit eben einer parallelen Schnittstelle und einem älteren Betriebssystem (Windows XP). Auch hier habe ich glücklicher Weise einmal mehr auf die Entsorgung verzichtet und einen alten Laptop wieder zum Leben erweckt.
- eine Software für den Programmer (hier verwende ich "ChipLab" die mit Hilfe von "porttalk22" auf WindowsXP lauffähig ist)
- die Binärdaten oder HEX-Files der originalen ROM-Module (hierzu kann man die Internetsuche bemühen)
- ein Layout Tool (Autodesk Eagle)
- eine Bastelbude, in der man Platinen ätzen kann, oder einen Account bei einem fernöstlichen PCB-Hersteller
- Lötwerkzeug und Kleinteile
- und natürlich eine Vectrex - sonst hat das alles keinen Sinn
Um den Speicherbedarf der Eproms zu ermitteln, muss ich zuerst einmal die Größe der Spiele kennen. Hier die Liste der Titel und deren Größe:
Spiele mit einer Größe von 4 kB (4 kilo Byte). Das entrspricht einem Adressbereich von hex 0000 bis 0FFF
- Armor Attack
- Art Master
- Bedlam
- Berzerk
- Clean-Sweep
- Cosmic Chasm
- Engine Analyzer
- Hyperchase
- Minestorm 2
- Rip Off
- Scramble
- Solar Quest
- Space Wars
- Star Castle
- Star Hawk
- Star Trek
Spiele mit einer Größe von 8 kB (8 kilo Byte). Das entspricht einem Adressbereich von hex 0000 bis 1FFF
- Animaction
- Blitz
- Fortess of Narzod
- Heads Up
- Melody Master
- Pitchers Duel
- Pole Position
- Spike
- Spinball
- Tour de France
- Web Wars
Spiele mit einer Größe von 12 kB (12 kilo Byte). Das entspricht einem Adressbereich von hex 0000 bis 2FFF
- Dark Tower
Als nächstes sehe ich mir einmal die Eproms bezüglich Pinout und Größe an. Hier habe ich zwei Größen betreffend der Pin Anzahl zur Verfügung. Eproms mit 28pin und 32pin im DIL Gehäuse. Zu denen im 28poligen Gehäuse gehören folgende Typen:
- 27c64 8k x 8 bit also 64 kb (kilo Bit)
- 27c128 16k x 8 bit also 128 kb (kilo Bit)
- 27c256 32k x 8 bit also 256 kb (kilo Bit)
- 27c512 64k x 8 bit also 512 kb (kilo Bit)
Bild von (www.futurlec.com) |
Bild von (www.futurlec.com) |
Das Pinout ist, bis auf die unterschiedliche Anzahl der Addressleitungen, identisch. Die 1Mbit Variante 27C1001 (27C010) hat jedoch ein anderes Pinout.
Bild von (www.futurlec.com) |
Der nächste Schritt ist, sich das Pinout des Vectrex Modulschachtes anzusehen. Die Pin - Nummern des Moduls sind im Bild unten zu gekennzeichnet.
Pin Nummerierung des Vectrex Moduls |
Die den Pin-Nummern zugehörigen Signale sind dem Vectrex Schaltplan des Mainboards zu entnehmen. Im Bild unten ist ein Auszug des Schaltplans mit dem Bereich des 36 poligen Cartridge-Connectors dargestellt. (Quelle: console5.com)
vectrex_connector.lbr |
Ich habe zwei Varianten der Modulschaltungen gezeichnet. Eine für die EPROMs mit 28 Pins und eine für die 1Mbit ROMs mit 32 Anschlusspins. (Da hier ja auch mehr Games Platz finden) Um nun alle möglichen Größen an Spielen unterschiedlich auf dem EPROM verteilen zu können, habe ich die Adressbits 12,13 und 14 umschaltbar gemacht. Und zwar so, dass diese drei Adressleitungen wahlweise von der Vectrex angesteuert werden können, oder extern vom Bediener über DIP-Schalter (L/H) auszuwählen sind. Die Bits 15 und 16 (sind ebenfalls über DIP-Schalter auszuwählen).
Die folgende Tabelle zeigt ein paar Beispiele, wie die Startadressen der Spiele ausgewählt werden können.
Ich habe zwei Varianten der Modulschaltungen gezeichnet. Eine für die EPROMs mit 28 Pins und eine für die 1Mbit ROMs mit 32 Anschlusspins. (Da hier ja auch mehr Games Platz finden) Um nun alle möglichen Größen an Spielen unterschiedlich auf dem EPROM verteilen zu können, habe ich die Adressbits 12,13 und 14 umschaltbar gemacht. Und zwar so, dass diese drei Adressleitungen wahlweise von der Vectrex angesteuert werden können, oder extern vom Bediener über DIP-Schalter (L/H) auszuwählen sind. Die Bits 15 und 16 (sind ebenfalls über DIP-Schalter auszuwählen).
die folgende Tabelle zeigt ein paar Beispiele, wie die Startadressen der Spiele ausgewählt werden können.
bit 16 | bit 15 | bit 14 | bit 13 | bit 12 | bit11-bit0 game adressen | adressen start - ende (hex) |
L | L | L | L | L | bei 8k Spiel | 0000 - 1FFF |
L | L | L | H | L | bei 8k Spiel | 2000 - 3FFF |
L | L | H | L | L | bei 8k Spiel | 4000 - 5FFF |
L | L | H | H | L | bei 8k Spiel | 6000 - 7FFF |
L | H | L | L | L | bei 8k Spiel | 8000 - 9FFF |
L | H | L | H | L | bei 8k Spiel | A000 - BFFF |
L | H | H | L | L | bei 8k Spiel | C000 - DFFF |
L | H | H | H | L | bei 8k Spiel | E000 - FFFF |
H | L | L | L | L | bei 4k Spiel | 10000-10FFF |
... | ... | ... | ... | ... | und so weiter... | ... |
Ansicht im Hex Editor |
Vorausgesetzt natürlich, die Spieledaten wurden auch so auf das EPROM geschrieben. Um das zu bewerkstelligen, verwende ich einen von vielen Freeware – Hex Editoren (HxD) und baue mir aus den einzelnen Game-Images ein Binärfile zusammen. Diese "Datei" wird dann in der ChipLab-Software importiert, das korrekte EPROM aus der Datenbank ausgewählt, dann den Chip in den Programmer gesteckt und los gehts... (Vorher nochmal checken, ob der Chip auch leer ist. Ansonsten muss er "oben ohne" in die Sonne, oder unter die UV-Lampe (für ca. 15-20min)
Ist der Chip mit Bits gefüllt und aus dem Schaltplan ein Layout gemacht, dann geht´s ans Ätzen eines Prototypen. Dafür konnte ich in einer kurzen Mittagspause die Ätzanlage unserer Firma heranziehen und das unnötige Kupfer der Platine ätztechnisch entfernen.
Platinen Layout auf Folie |
Nach dem Belichten einer mit fotopositv Lack beschichteten doppelseitigen Platine und dem anschließenden Entwickeln derselben, kann wird das überflüssige Kuper mit EisenDreiChlorid entfernt. Übrig bleibt die gewünschte Struktur.
Mal ein Selfie zwischendurch. Die Belichtung der Platine mit UV - Licht dauert etwa 57 Sekunden. Genug Zeit um mit dem Handy dumme Fotos zu machen :D
Weiter geht es dann mit dem Bohren der Löcher in das Board. Die Durchkontaktierungen (VIAs) vom Top- zum Bottom Layer werden bei dem Prototypen nicht durch galvanisches Auftragen von Kupfer in den Bohrungen realisiert, sondern per Hand durch Durchstecken eines Stückes Silberdraht durch das Loch und anschließendem beidseitigem Verlöten.
fertig geätzte Platine |
Jetzt fehlt nur noch die Bestückung. Die ist aber sehr schnell erledigt. Denn bis auf den IC-Sockel, ein paar Pull-Up Widerstände und die DIP-Schalter ist auf dem Board ja nicht viel drauf. Also die paar Teile gelötet, den Chip in den Sockel gesteckt - und fertig ist das ROM-Modul.
fertig bestücktes ROM-Modul |
Wie das fertige Modul an der Vectrex aussieht und vorallem funktioniert, werde ich beizeiten einmal als kurzes Video zeigen. Ich habe das Board auch ein wenig verschönert und als industriell gefertige Platine bei einem fernöstlichen Leiterplattenhersteller in Auftrag gegeben...