Tutorial: Mehr Speicher im C64-Modus des C128


Der C128 ist ein Multi-Talent, denn er beherbergt drei verschiedene Computersysteme unter der Haube. Darunter befindet sich auch der C64, der auf seine 64 KB Speicher zugreifen kann. Die 128 KB Speicher des C128 sind für den C64 nicht erreichbar. Es gibt aber noch einen weiteren Speicher im C128, der beiden Systemen zur Verfügung steht: Der Speicher des Video Display Controllers (VDC) der für die 80-Zeichen-Darstellung des C128 zuständig ist.


Was wird benötigt?

Je nach Variante ist dieser Speicher 16 oder 64 KB groß. Genauer gesagt, der C128D (Metal) ist mit 64 KB VDC-Speicher ausgestattet, die anderen beiden Varianten mit 16Kb. Der Speicher kann aber ohne Probleme mit einer Erweiterung auf 64 KB ausgebaut werden. Der VDC-Controller selbst wird dabei nicht ausgetauscht. Diesen Speicher machen wir uns hier zunutze und greifen im C64-Modus darauf zu.

Die Vorbereitungen

Der besagte Speicher wird als RAM-Disk installiert. Wir brauchen lediglich ein kleines C64-Programm namens VDC-Ramdisk, das wir hier herunterladen können: Zimmers.net.

Des Weiteren brauchen wir das Windows Tool Dirmaster: style64.org.

Das D64-Image erstellen

Bei der Datei, die wir heruntergeladen haben, handelt es sich um ein selbsextrahierendes Archiv. Wir extrahieren die Dateien, die sich darin enthalten und erstellen ein D64-Image, das von Emulatoren und auch auf echter Hardware mit entsprechenden Laufwerk verwendet werden kann. Installiere und starte das Tool Dirmaster. Ziehe anschließend das SFX-Archiv in das Fenster von Dirmaster.


Ziehe die Datei “VDC RAMDISK1.6” an die erste Stelle im Inhaltsverzeichnis.


Dann speichern wir das ganze in eine D64-Datei ab (Disk -> Save as...) z.B. als vdcramdisk.d64


Nun können wir die soeben erstellte Diskette im Emulator testen oder auf einen echten C128 übertragen. Mit einem SD2IEC sollte dies kein Problem sein.

Die VDC-Ramdisk laden

Als erstes müssen wir natürlich in den C64-Modus schalten, mit dem Befehl GO64 und bestätigen mit "Y".


Jetzt legen wir unsere Diskette ein und laden das Programm mit LOAD"*",8,1. Der Befehl RUN muss nicht eingegeben werden, stattdessen springen wir zur Speicheradresse 49152, an der sich das Programm nun befindet, mit dem Befehl SYS49152.


Das Programm muss nun initialisiert werden, das geschieht mit RINIT. Zu guter Letzt prüfen wir, ob die RAM-Disk eingebunden wurde, mit dem Befehl RCAT. Es sollte, wie im folgenden Bild zu sehen ist, der Verfügbare Speicherplatz angezeigt werden.


Daten Laden und Speichern

Unser virtuelles Laufwerk besitzt leider keine Geräteadresse. Wir können aber Basic-Programme laden und im VDC-Speicher ablegen oder Bereiche des Speichers in die RAM-Disk kopieren.

Zuerst löschen wir den Basic-Speicher mit NEW. Unsere RAM-Disk ist von der Löschung nicht betroffen, da es sich außerhalb des Basic-Speichers (49162) befindet.

Im folgenden Beispiel wird ein Basic-Programm von Disketten geladen und anschließend mit dem Befehl RSAV in die RAM-Disk kopiert. Genau so gut kann man auch einige Zeilen in Basic schreiben und diese dann in die RAM-Disk anlegen:

LOAD"TEST",8
RSAV"TESTDATEI"

Nun kontrollieren wir, mit RCAT, ob die Datei korrekt abgelegt wurde


Wie bereits weiter oben erwähnt, können auch Bereiche aus dem Speicher in die RAM-Disk kopiert werden. Dazu benötigt der Befehl RSAV weitere Parameter:

RSAV"Dateiname",startadresse ,endadresse

Zum Abschluss laden wir das von uns in der RAM-Disk abgespeicherte Programm. Der Befehl RLOA ist dafür zuständig:

RLOA"TESTDATEI"