8K und 16K Cartridges für den VIC-20 erstellen (Teil 1)
- Commodore VIC-20
- Cartridge PCB
- Versch. elektr. Komponenten (Siehe Text)
- Cartridge ROMs
- EPROM Programmer



Cartridges haben einige Vorteile gegenüber magnetische Datenträger. Sie benötigen keine Laufwerke und Ladezeiten gibt es so gut wie keine. Dazu ist es möglich mehrere Programme/Spiele auf einem EPROM zu speichern. Es gibt bereits leere Cartridge-Platinen die nur noch mit einigen Komponenten bestückt werden müssen. Allerdings ist so manches zu beachten damit die Cartridge am Ende auch so funktioniert wie sie soll.

Klicke auf das Bild zum Vergrößern
Auf der Webseite thefuturewas8bit.com gab es zum Zeitpunkt der Erstellung dieser Anleitung leere PCB's zu kaufen die für 8 sowie 16Kb Cartridge-ROMs geeignet sind. Eine davon wird hier verwendet.

Klicke auf das Bild zum Vergrößern
Bevor es los geht noch ein paar Hinweise (Wichtig!):
- Niemals eine Cartridge oder ein (E)EPROM ein-/ausstecken wenn der VIC-20 eingeschaltet ist.
- Setze die Jumper nur mit ausgeschalteten VIC-20.
- Achte auf die Ausrichtung der Kerbe des (E)EPROMs. Ein falsch rum aufgestecktes ROM kann die Cartridge sowie VIC-20 beschädigen.
- Stecke die Cartridge in den Modul-Port mit der bestückten Seite nach oben. (Siehe entsprechendes Bild weiter unten)
- Vermeide statische Ladungen durch das Berühren eines geerdeten Objektes, wie beispielsweise einen Heizkörper. Oder verwende ein antistatisches Armband.
- Ich übernehme keine Verantwortung über Schäden die direkt oder indirekt durch diese Anleitung entstanden sind.
Das ROM-Image
Wir benötigen Images der Programme/Spiele die auf das EPROM bzw. EEPROM kopiert werden sollen. Davon gibt es jede Menge im Netz, beispielsweise hier: zimmers.net. Dabei ist zuerst mal darauf zu achten ob eine Lade-Adresse vorhanden ist, denn für unsere Cartridge darf diese nicht vorhanden sein. Die Lade-Adresse ist in den ersten zwei Bytes des ROM's gespeichert. Das kann man an der Speichergröße der Dateien erkennen.
8K ROM ohne Lade-Adresse: 8192 Bytes
8K ROM mit Lade-Adresse: 8194 Bytes
Die Lade-Adresse entfernen
Im Netz finden wir ROMs mit und ohne Lade-Adresse. Wenn wir das Image auf das EPROM speichern möchten, brauchen wir ein Image ohne Lade-Adresse. Wenn uns aber nur ein Image mit Lade-Adresse zur Verfügung steht, dann müssen die ersten zwei Bytes entfernt werden. Dazu öffnen wir das Image mit einen HEX-Editor, beispielsweise mit HXD.
Dann erstellen wir ein neues leeres Image und kopieren kompletten Inhalt des ROM-Images ohne die ersten zwei Bytes in das leere Image.

Klicke auf das Bild zum Vergrößern
Jetzt kann das neue Image gespeichert werden.
Die 8KB Cartridge
Das weiter oben beschriebene PCB muss mit einigen Komponenten bestückt werden. Für die 8K-Variante werden folgende Teile benötigt:
IC-Sockel, 28-polig
Keramikkondensator 100N
Stiftleiste RM 2,54
Jumper x5
EPROM/Flash-ROM
Je nachdem wieviele 8k-Images auf das EPROM/Flash-ROM platz finden sollen, brauchen wir den entsprechenden Speicher. Folgende ROMs stehen uns zur Verfügung:
2764 / 8K / 1 Programm
2864 / 8K / 1 Programm
27128 / 16K / 2 Programme
27256 / 32K / 4 Programme
28256 / 32K / 4 Programme
27512 / 64K / 8 Programme
Die Platine sollte anschließend so bestückt werden wie im folgenden Bild zu sehen ist. Wie die Jumper gesetzt werden müssen sehen wir später.

Klicke auf das Bild zum Vergrößern
Das ROM-Image erstellen
Dieser Abschnitt ist nur durchzuführen, wenn zwei oder mehrere Programme auf das EPROM kopiert werden sollen. Wenn nur ein einzelnes Image gespeichert werden soll (2764/2864 EPROM), dann kann dieser Schritt übersprungen werden.
Da wir bis zu acht Programme (64Kb) auf eine Cartridge speichern können, müssen wir das Image für das EPROM zuerst vorbereiten. In diesen Beispiel verwenden ich ein 32Kb EPROM 27256, also können bis zu vier Programme gespeichert werden. Der Weg ist immer der selbe, auch wenn nur zwei Programme (27128 EPROM) oder acht (27512 EPROM) Programme kopiert werden sollen. Diese Images legen wir alle in den selben Ordner. Folgende Dateien werden für dieses Beispiel verwendet die von zimmers.net runtergeladen werden können:
Galaxian
Frogger
Omega Race
Pac-Man
Beachte, dass die Lade-Adresse (die ersten 2 Bytes) von jedem ROM, wie weiter oben beschrieben, entfernt werden muss (8192 Bytes) bevor diese gebrannt werden.
Diese Images müssen nun zu einen einzigen zusammengefügt werden. Windows bietet bereits das Werkzeug das wir brauchen. In der Eingabeaufforderung von Windows (CMD) wechseln wir zum Ordner in den sich unsere Images befinden und geben folgenden Befehl ein.
Copy /b [Image1]+[Image2]+[Image3]+[Image4] Zieldatei
Das sieht in meinem Beispiel so aus:

Klicke auf das Bild zum Vergrößern
Das Resultat ist eine 32Kb große Datei die alle vier Images beinhaltet. Wie dieses nun auf das EPROM gebrannt wird, werden wir später sehen.
Die 16KB Cartridge
Das weiter oben beschriebene PCB muss mit einigen Komponenten bestückt werden. Für die 16K-Variante werden folgende Teile benötigt:
IC-Sockel, 28-polig
IC-Sockel, 14-polig (Optional)
100N x2
Stiftleiste RM 2,54
Jumper x6
74LS00
EPROM/Flash-ROM
Je nachdem wieviele 16k-Images (2x8Kb) auf das EPROM/EEROM platz finden sollen, brauchen wir den entsprechenden Speicher. Folgende ROMs stehen uns zur Verfügung:
27128 / 16K / 1 Programm
27256 / 32K / 2 Programme
28256 / 32K / 2 Programme
27512 / 64K / 4 Programme
Die Platine sollte anschließend so bestückt werden wie im folgenden Bild zu sehen ist. Wichtig! Achte auf die Ausrichtung der Kerbe des 74LS00. Sie muss mit der Kerbe auf den Modul-PCB übereinstimmen. Wie die Jumper gesetzt werden müssen sehen wir später.

Klicke auf das Bild zum Vergrößern
Hier kann das Bild in einer höheren Auflösung runtergeladen werden: Download
Das ROM-Image erstellen
Da wir bis zu vier Programme (4x16Kb = 64Kb) auf eine Cartridge speichern können, müssen wir das Image für das EPROM zuerst vorbereiten. In diesen Beispiel verwenden ich ein 32Kb EPROM 27256, also können bis zu zwei Programme gespeichert werden. Der Weg ist immer der selbe, auch wenn vier Programme (27512 EPROM) kopiert werden sollen. 16Kb Cartridges bestehen aus zwei 8Kb ROMs. Üblicherweise ist ein ROM für den Speicher-Slot A000 und das andere für den Speicher-Slot 6000 bestimmt. Beide ROMs müssen zu ein gemeinsames zusammengefügt werden. Dabei ist darauf zu achten, dass das ROM mit der Adresse 6000 vorne liegt.
Die Images legen wir in den selben Ordner. Folgende Dateien werden für dieses Beispiel verwendet die alle von zimmers.net runtergeladen werden können:
Moon Patrol
Lode Runner
Beachte, dass die Lade-Adresse (die ersten 2 Bytes) von jedem ROM, wie weiter oben beschrieben, entfernt werden muss (8192 Bytes) bevor diese gebrannt werden.
Diese Images müssen nun zu einen einzigen zusammengefügt werden. Windows bietet bereits das Werkzeug das wir brauchen. In der Eingabeaufforderung von Windows (CMD) wechseln wir zum Ordner in den sich unsere Images befinden und geben folgenden Befehl ein.
Copy /b [Image1_6000]+[Image2_A000]+[Image3_6000]+[Image4_A000] Zieldatei
Das sieht in meinem Beispiel so aus:

Klicke auf das Bild zum Vergrößern
Das Resultat ist eine 32Kb große Datei die alle vier 8Kb-Images bzw. beide Spiele beinhaltet.
