Der Commodore 64 verfügt über eine umfangreiche Bibliothek an Cartridges, und die Erstellung eigener Cartridges mit individuellem Inhalt ist relativ unkompliziert. In der Regel erfolgt die Auswahl des Speicherblocks mittels Jumper oder DIP-Schalter. Mit Magic-Desk wird der Prozess der Cartridge-Erstellung jedoch nicht nur vereinfacht, sondern auch deutlich komfortabler gestaltet. Anstelle der manuellen Konfiguration von Jumpern kann das gewünschte Programm bequem über ein grafisches Menü ausgewählt werden. Diese Anleitung beschreibt die Erstellung einer Magic-Desk-Cartridge mit einer Speicherkapazität von bis zu 1 Megabyte für den Commodore 64 sowie für den Commodore 128.
Quellen dieser Anleitung:
Bevor es losgeht, noch ein paar Hinweise (Wichtig!):
- Das Einstecken oder Ziehen einer Cartridge oder eines EPROMs darf nur bei ausgeschaltetem C64/C128 erfolgen.
- Achte auf die korrekte Ausrichtung der Kerbe des EPROMs. Eine unsachgemäße Installation des ROMs kann sowohl die Cartridge als auch den Rechner beschädigen.
- Die Cartridge muss mit der bestückten Seite nach oben in den Modulport gesteckt werden (siehe entsprechende Bilder).
- Es wird empfohlen, statische Aufladungen durch Tragen eines Antistatik-Armbands zu vermeiden.
- Ich übernehme keine Verantwortung für Schäden, die direkt oder indirekt durch diese Anleitung entstehen.
Der Commodore 64 verfügt über eine umfangreiche Auswahl an Cartridges. Im Gegensatz dazu ist die Anzahl von Cartridges für den Commodore 128 stark begrenzt. Die hier vorgestellten Cartridges bieten 512 KB Speicherplatz, welcher für die meisten Anwendungen ausreichend sein dürfte. Durch einen Hack ist es jedoch möglich, den Speicherplatz auf 1 Megabyte zu erweitern. Andere Cartridges für den Commodore 128 erfordern keinen Hack, um den vollen Speicherplatz von 1 Megabyte zu nutzen. Die hier beschriebene Cartridge zeichnet sich jedoch durch ihre Unterstützung von 32 Kilobyte Speicherblöcken aus, was sie von anderen Varianten unterscheidet.
Die Komponenten
Je nachdem, ob die Cartridge für den Commodore 64 oder den Commodore 128 verwendet werden soll, wird die entsprechende Platine benötigt. Beide sind bei PCBWay erhältlich.
PCB für C64 Cartridge: pcbway.com
PCB für C128 Cartridge pcbway.com
Darüber hinaus sind folgende Komponenten erforderlich.
Für die C64 Cartridge:
74LS02 x1
74LS273 x1
27C040 EPROM x1 (Optional x2, siehe Hinweis)
Taster 6x6mm x1
Für die C128 Cartridge:
74LS02 x1
74LS273 x1
1N4148 Diode x2
27C040 EPROM x1 (Optional x2, siehe Hinweis)
Taster 6x6mm x1
Hinweis für das EPROM
Folgende EPROMs werden unterstützt: 27C512, 27C010, 29F010, 27C020, 29F020 und 27C040. Je nach Speicherbedarf kann die gewünschte Speichergröße gewählt werden. Es besteht die Möglichkeit, den Speicher auf 1 MB zu erweitern. Dazu werden zwei Stück 27C040 EPROM benötigt. Siehe Abschnitt 1 MB Hack weiter unten. In diesem Tutorial wird ein 27C040 EPROM (512 KB) verwendet.
Der Aufbau
Beim Bestücken der Cartridge gibt es nicht viel zu beachten. Achte aber auf die Ausrichtung der Bauteile. Das EPROM sollte natürlich nicht auf die Platine gelötet werden, sondern gesockelt werden, damit wir bei Bedarf das EPROM neu beschreiben können. Auf der C128-Platine befinden sich im Gegensatz zur C64-Version zwei Dioden. Auch hier ist auf die richtige Ausrichtung zu achten.
Auf der Rückseite der Platine müssen einige Jumper verlötet werden. Die benötigten Jumper hängen vom verwendeten EPROM ab.
Wenn wir mit der Hardware fertig sind, können wir mit der Erstellung des Images fortfahren.
Das Image erstellen
In diesem Schritt wird unter Windows das Image generiert, welches anschließend auf das EPROM gebrannt wird. Hierfür sind die folgenden Softwarekomponenten erforderlich.
- Python
- Magic Desk Cartridge Generator
- C64 oder C128 Programme, ausschließlich im PRG-Format
Die maximale Anzahl der installierbaren Programme ist auf maximal 62 begrenzt. Die tatsächliche Anzahl ist jedoch auch abhängig vom verwendeten EPROM. Zunächst muss Python installiert werden. Die Option "Add python.exe to PATH" sollte aktiviert werden.
Im Anschluss kopieren wir sämtliche Programme für den Commodore 64 oder Commodore 128 in den PRG-Ordner des Magic Desk Cartridge Generators. Die Datei HelloWorld.sid im Ordner PRG sollte nicht gelöscht werden, da sie beim Laden des Menüs abgespielt wird. Sollte keine Musik im Menü gewünscht sein, kann die Datei gelöscht werden. Anschließend öffnen wir die Eingabeaufforderung (CMD) von Windows und wechseln in den Ordner des Magic Desk Cartridge Generators. In meinem Fall sieht das so aus wie in der folgenden Abbildung.
Der kurze Weg
Wer nur das Image erstellen möchte, ohne Änderungen am Menü vorzunehmen, kann dies mit einem einzigen Befehl erledigen:
Für die C64 Cartridge: crtgen.py -c
Für die C128 Cartridge: crtgen.py -8
Für die C128 Cartridge mit 32 KB Programme: crtgen.py -832
Es wird ein Image mit dem Namen “compilation.bin” erstellt.
Der ausführliche Weg
Wer das Image mit dem kurzen Weg erstellt hat, muss die folgenden Schritte nicht durchführen, sondern kann direkt zum Abschnitt “Das Image testen” springen. Wer jedoch das Menü anpassen möchte, sollte diese Schritte durchführen:
Gib den folgenden Befehl ein:
Für die C64 Cartridge: crtgen.py -gc
Für die C128 Cartridge: crtgen.py -g8
Für die C128 Cartridge mit 32 KB Programme: crtgen.py -g832
Es wird eine Konfigurationsdatei mit dem Namen output.cfg generiert. Beim Öffnen dieser Datei mit einem Editor wird eine Liste der installierten Programme angezeigt. Hier besteht die Möglichkeit, die Namen der Programme zu ändern, die anschließend im Menü dargestellt werden. Der Text neben dem Feld „NAME“ kann beliebig angepasst werden. Der Text neben dem Feld „FILE“ muss jedoch unverändert bleiben, sonst wird die entsprechende Datei nicht gefunden. Des Weiteren sollte unter dem Abschnitt „[menu1]“ neben „title“ ein aussagekräftiger Titel angegeben werden, der später oberhalb des Menüs angezeigt wird.
Das Image kann nun erzeugt werden. Dazu ist folgender Befehl einzugeben:
Für die C64- und C128-Cartridge: crtgen.py output.cfg
Der soeben eingegebene Befehl sollte eine Datei mit dem Namen prg.bin erzeugen. Magic Desk Cartridge Generator erzeugt aus den Programmen, die es im Ordner PRG findet, das kleinstmögliche Image. Wir könnten nun dieses Image direkt auf unser EPROM kopieren. Bevor wir dies jedoch tun, sollten wir es testen.
Das Image testen
VICE bringt nicht nur eine Reihe von Emulatoren mit, sondern auch ein sehr nützliches Werkzeug. Es handelt sich um “cartconv”. Dieses Tool konvertiert BIN-Images in CRT-Dateien. CRT-Dateien sind Cartridge-Images, die im Emulator verwendet werden können. Sie enthalten zusätzliche Informationen, die der Emulator benötigt, um die Cartridge korrekt emulieren zu können. Dies hat für uns den Vorteil, dass wir unser Cartridge-Image testen können, bevor wir es auf das EPROM brennen. So können wir immer noch Änderungen am Image vornehmen, wenn wir das möchten. 32K-Cartridges werden von VICE nicht unterstützt und können nur auf echter Hardware getestet werden. Das Programm cartconv befindet sich im Verzeichnis “bin” des Emulators VICE. Wir öffnen die Eingabeaufforderung (CMD) von Windows und wechseln in das bin-Verzeichnis. In meinem Fall sieht das so aus.
Zum konvertieren unseres BIN-Images geben wir folgenden Befehl ein:
Für C64 Cartridge: cartconv -t md -i [Pfad zum Image].bin -o prg.crt
Für C128 Cartridge: cartconv -t md128 -i [Pfad zum Image].bin -o prg.crt
Im bin-Verzeichnis von VICE sollte sich die Datei mit dem Namen prg.crt befinden. Im Anschluss daran starten wir den C64- oder C128-Emulator, abhängig von der Art der zu erstellenden Cartridge. Beide Emulatoren befinden sich ebenfalls im bin-Verzeichnis von VICE und tragen die Bezeichnungen x64sc und x128. In diesem Beispiel wird ein C64-Image getestet. Die Vorgehensweise ist für beide Emulatoren identisch. Drücke die Tastenkombination ALT-C, wähle das zu testende Image aus und klicke auf “Attach”. Nun sollte das Magic Desk Menü geladen werden, von dem aus wir die eingebundenen Programme starten können.
Wenn wir mit unserem Image zufrieden sind, können wir es auf das EPROM brennen.
Das EPROM brennen
Wir benötigen eines der oben aufgeführten EPROMs mit ausreichend Speicherplatz und einen kompatiblen EPROM-Programmierer. Es gibt zahlreiche Modelle auf dem Markt. Ich verwende das TL866CS.
Starte die Programmiersoftware, öffne die IC-Datenbank und wähle das gewünschte EPROM. In meinem spezifischen Fall handelt es sich um ein AM27C040.
Lade nun das BIN-Image in das Programm, das auf dem EPROM gespeichert werden soll.
Ein EPROM muss vor dem Beschreiben leer sein. Sollte dies nicht der Fall sein, ist es erforderlich, das EPROM zunächst mit einem Löschgerät zu löschen. Achte außerdem auf die korrekte Ausrichtung des EPROMs. Entferne das Häkchen bei „Device ID“ und starte den Programmiervorgang durch einen Klick auf „P“.
Das gebrannte EPROM kann nun in den Sockel der Cartridge eingesetzt werden. Achte dabei auf die korrekte Position und Ausrichtung des EPROMs.
Die Cartridge kann nun in den Modulport des C64 oder C128 gesteckt und verwendet werden.
Der 1 MB Hack
Um es gleich vorweg zu nehmen: Wer mehr als 512 KB Speicher benötigt, ist mit einer anderen Cartridge besser bedient, z.B. mit dieser hier: c64-magic-desk-1024k. Wer es trotzdem versuchen will, muss sich über folgenden Nachteil im klaren sein. Die beiden EPROMs müssen miteinander verlötet werden, was ein erneutes Brennen der Daten unmöglich macht.
Der Hack funktioniert sowohl mit dem C64 als auch mit dem C128. Natürlich benötigen wir ein 1 MB Image. Wir erstellen also ein Image wie oben beschrieben, mit dem einzigen Unterschied, dass wir mehr Programme hinzufügen und das Image dementsprechend größer wird. Das Image wird immer 1 MB groß sein, auch wenn wir nicht den gesamten Speicherplatz nutzen. Natürlich dürfen wir den verfügbaren Speicher von 1 MB nicht überschreiten. An dieser Stelle gehen wir davon aus, dass wir ein 1 MB großes Image erzeugt haben. Bevor wir es auf die EPROMs brennen, müssen wir das Image in genau zwei Hälften teilen. Dazu verwenden wir einen Hex-Editor wie z.B. HXD. Wir starten das Programm und laden das Image.
Mit einem Klick auf „Edit -> Select Block…“ öffnet sich ein kleines Fenster, in dem die entsprechenden Werte eingegeben werden.
- Klicke auf den Radiobutton DEC
- Start-offset: 0
- End-offset: 524287
Mit OK wird die erste Hälfte des Images markiert. Speichere den markierten Bereich als neue Datei mit “File -> Save file selection...” und nenne die Datei “bottom.bin”.
Wiederhole nun den Vorgang für die zweite Hälfte des Roms. Klicke wieder auf “Edit -> Select Block...” und gib diesmal folgendes ein.
- Klicke auf den Radiobutton DEC
- Start-offset: 524288
- End-offset: 1048575
Speichere die zweite Hälfte des Images mit „File -> Save file selection…“ und nenne die Datei „top.bin“. Dadurch erhalten wir zwei Dateien mit identischer Speichergröße. Brenne beide Images auf zwei 27C040 EPROMs, genau wie bei der 512 KB Version. Es ist wichtig, die EPROMs mit „Bottom“ und „Top“ zu markieren. Stecke nun das EPROM mit der Bezeichnung „Top“ auf das EPROM mit der Bezeichnung „Bottom“ und verlöte alle Beinchen außer Pin 22. Achte dabei auf die richtige Ausrichtung der Kerbe und biege Pin 22 nach außen.
Dann werden die beiden EPROMs in den Sockel der Cartridge gesteckt. Achte auch hier auf die Ausrichtung der Kerbe. Jetzt müssen wir nur noch Pin 22 mit CE2 auf der Platine verbinden.
Die Cartridge kann nun in den Modulschacht des C64/C128 gesteckt und die Programme geladen werden.
Ein ROM ohne Menü
Bei dieser Cartridge sind wir nicht nur auf das Magic Desk Menü angewiesen. Wir können auch ein einzelnes BIN-Image auf das EPROM brennen, das dann beim Einschalten des Rechners direkt startet. Natürlich reicht dann auch das kleinste EPROM mit 64 KB. Dies ist besonders für die C128 Cartridge interessant, da man auf diese Weise ROMs laden kann, die normalerweise in den U36 Sockel platziert gesteckt werden. Eines der bekanntesten Beispiele hierfür ist sicherlich “The Servant”.
Das BIN-Image kann direkt auf das EPROM gebrannt werden, ohne dass zuvor ein Menü mit Magic Desk Generator erstellt werden muss. Beachte jedoch, dass wir auf diese Weise auf ein einziges ROM beschränkt sind, da uns hardwareseitig keine Möglichkeit zum Umschalten zwischen den Speicherblöcken zur Verfügung steht.
EPROMs löschen
Im Gegensatz zu EEPROMs (Electrically Erasable Programmable Read-only Memory) können EPROMs nicht mit neuen Daten überschrieben werden. Stattdessen müssen sie mit einem EPROM-Löschgerät gelöscht werden. Dieses Gerät sendet ultraviolette Strahlung in das EPROM, wodurch der Speicher gelöscht und anschließend neu beschrieben werden kann. Es gibt verschiedene Arten von EPROM-Löschgeräten, vom normalen „langsamen“ Löschgerät bis zum schnellen Blitz-Löscher. Für meine Zwecke reicht dieser preiswerte EPROM-Löscher völlig aus. Man sollte keine außergewöhnliche Verarbeitung erwarten, aber er funktioniert zuverlässig und ermöglicht das gleichzeitige Löschen mehrerer EPROMs.
Der Löschvorgang dauert in der Regel 10-15 Minuten. Sollte das EPROM eine UV-Abdeckung haben, muss diese entfernt werden.






















