Der Kernal für den C64 selbst gemacht (Teil 2)



EPROMs löschen
EPROMs können im Gegensatz zu EEPROMS (Electrically Erasable Programmable Read-only Memory) nicht mit neue Daten überschrieben werden, sondern müssen mit einem EPROM-Löschgerät gelöscht werden. Dieses sendet Ultraviolettstrahlung in das EPROM. Dadurch wird der Speicher gelöscht und kann anschließend neu beschrieben werden. Es gibt verschiedene Löschgeräte. Vom normalen "langsamen" Ultraviolett-Löschgerät bis zum schnellen Blitzgerät. Für meinen Bedarf reicht dieser günstige EPROM-Löscher vollkommen. Man darf in der Verarbeitung kein Meisterwerk erwarten und der Stecker muss getauscht werden da er nicht für europäische Steckdosen geeignet ist, aber er funktioniert. Und es können zeitgleich mehrere EPROMS gelöscht werden.

Klicke auf das Bild zum Vergrößern
Der Löschvorgang dürfte in den meisten Fällen 10-15 Minuten dauern, dabei muss eine eventuell vorhanden UV-Abdeckung des EPROMs entfernt werden. Danach kann das EPROM wieder beschrieben werden.
Benutzerdefinierte Kernals
Es gibt zwar bereits viele vorgefertigte Kernals mit Fastloader. Wenn es aber nur darum geht das Aussehen zu verändern und einige nützliche Funktionen hinzuzufügen, dann dürfte Lame-o-kernal das passende Programm sein. Damit lassen sich die Farben und der Text des C64-Einschaltbildes verändern. Außerdem werden kleine Hilfs-Funktionen wie Shift/RStop (Tastenkombination für LOAD":*",8,1:RUN) hinzufügt.
Lame-o-kernal ist ein Python-Programm, deshalb wird das Vorhandensein von Python vorausgesetzt. In diesen Beispiel wird Lame-o-kernal unter Windows verwendet. Sollte aber genau so gut unter MacOS und Linux funktionieren, was ich mir an dieser Stelle erspare. Zuerst muss Python installiert werden. Dabei ist darauf zu achten, dass nicht die aktuelle Version, sondern die Legacy-Version 2.7.X (Hier downloaden) verwendet wird. Mit der neuen Version von Python scheint Lame-o-kernal nicht zu funktionieren. Nach der Installation starten wir "IDLE (Python GUI)" und laden das Python-Script Lame-o-kernal.

Klicke auf das Bild zum Vergrößern
Als erstes passen wir die Bildschirmfarben an. Dies geschieht indem wir die Farben unter "border color" (Rahmenfarbe), "background color" (Hintergrundfarbe) und "font color" (Schriftfarbe) verändern. Folgende Farben sind zulässig: "black", "white", "red", "cyan", "violet", "green", "blue", "yellow", "orange", "brown", "lightred", "darkgrey", "midgrey", "lightgreen", "lightblue", "lightgrey".

Achte darauf, dass der Kontrast zwischen Hintergrund- und Schriftfarbe ausreichend ist, damit wir später auch erkennen was auf den Bildschirm steht. Als nächstes verändern wir die Tasten-Wiederholzeiten.
"speed for key-repeat" = Wie schnell die Zeichen-Wiederholung ausgeführt wird wenn die Taste dauerhaft gedrückt wird. "delay till key repeats" = Die Zeit bist die Tasten-Wiederholung startet.
Diese zwei Optionen beziehen sich nur auf Tasten mit Tastenwiederholungsfunktion, also beispielsweise die Leertaste oder die Lösch-Taste, nicht aber die Buchstaben-Tasten. Je niedriger der Wert desto schneller die Wiederholung.

Ein weiteres Feature finden wir unterhalb von "default drive for LOAD and OPEN@". Die hier eingestellte Laufwerk-Adresse wird zum Standard-Laufwerk. Das soll bedeuten, dass die Eingabe des Befehles "LOAD" nicht mehr das Laufwerk #1 anspricht, sondern das hier eingestellte Laufwerk. Beachte, dass dadurch das Laden von der Datasette mit den Befehl LOAD nicht mehr möglich ist. Stattdessen muss die Geräte-Adresse für das Datasette angegeben werden: LOAD"*",1

Der Text der beim Einschalten des C64 angezeigt wird, kann bei "power on message" verändert werden. Der Text neben "message" und "message2" kann zwar beliebig abgeändert werden, allerdings muss die Zeichenanzahl unverändert bleiben. Leerzeichen gelten auch als Zeichen.

Lame-o-kernal bietet zwar noch weitere Einstellungsmöglichkeiten. Für unserem Versuch soll dies aber reichen. Sind wir mit der Anpassung zufrieden, führen wir das Script mit der Taste F5 aus. Das Programm erzeugt eine Datei Namens Kernal.bin im selben Ordner in den sich auch das Python-Script Lame-o-kernal befindet. Natürlich kann der so erstellte Kernal zuerst im Emulator getestet werden bevor dieser auf ein EPROM gebrannt wird.

Kernal extrahieren
Der Kernal, sofern gesockelt, lässt sich mit einen EPROMer genau so leicht auslesen. Das so erlangte Image kann dann im Emulator verwendet werden, oder auf ein EPROM kopiert werden.

Klicke auf das Bild zum Vergrößern
Zum Auslesen des Kernals ist aber nicht einmal ein EPROMer nötig. Der C64 muss außerdem nicht geöffnet werden. Denn das C64-Tool "Kernal Extractor V1.0" ließt den Kernal-Speicher aus und kopiert diesen (samt Basic) auf die Diskette. Einfach den Anweisungen des Programmes folgen, den Kernal auf Diskette/SD2IEC speichern und anschließend auf den PC übertragen.

Der Kernal Extractor extrahiert, wie bereits erwähnt, den Kernal samt Basic. In dieser Form ist er nur als EPROM für den C64C zu gebrauchen, da dessen Basic- und das Kernal-ROM in ein einzelnes ROM zusammengefasst sind. Wenn wir den Kernal im originalen C64 oder Emulator verwenden möchten, müssen wir den Kernal vom Image trennen. Dazu verwenden wir einen beliebigen HEX-Editor. In meinen Fall verwende ich iHEX für MacOS. Der Kernal befindet sich in der zweiten Hälfte des Images. Wir müssen also die letzten 8192Bytes aus den Image extrahieren, bzw. alles was vor den Kernal liegt löschen.

Klicke auf das Bild zum Vergrößern
Danach kann der Kernal überall eingesetzt werden.
Nützliche Kernals
Es gibt bereits eine größere Anzahl an Kernals mit verschiedenen nützlichen Funktionen. Die meisten haben zusätzlich einen Fastloader eingebaut, der das Laden von Programmen beschleunigt. Hier werden einige Kernals vorgestellt.
JiffyDOS
Download: store.go4retro.com
JiffyDOS ist wohl einer der bekanntesten Fastloader. Neben der Schnellladefunktion werden die F-Tasten mit nützlichen Funktionen belegt. Im Floppy-Laufwerk muss ebenfalls JiffyDOS installiert werden damit die Daten schneller übertragen werden können. SD2IEC-Laufwerke hingegen unterstützten JiffyDOS ab Werk. JiffyDOS ist heute noch kostenpflichtig, kann aber als Image runtergeladen werden.

SD2IEC Kernal 2.2
Download: csdb.dk
Hauptmerkmal des SD2IEC Kernals ist der eingebaute Browser. Dieser ermöglicht das komfortable Starten von Programmen/Spielen mittels File-Browser, ohne Basic-Befehle eingeben zu müssen. Des Weiteren wird eine DOS Wedge zu Verfügung gestellt, die viel Tip-Arbeit abnimmt. Die Programme werden dank Fastloader ca 10 mal so schnell geladen.

JaffyDOS V1.2 Kernal for SD2IEC
Download: csdb.dk
JaffyDOS ist ein Patch für JiffyDOS. Auch hier wird ein File-Browser zu Verfügung gestellt. Zusätzlich können wir die Bildschirmfarben anpassen sowie die F-Tasten mit eigene Funktionen belegen. Natürlich muss man im Besitz eines JiffyDOS-Images sein, damit dieses mit JaffyDOS gepatcht werden kann. JiffyDOS ist hier erhältlich.

JiffyDOS Mod for DolphinDOS Kernal SD2IEC enhanced
Download: csdb.dk
JiffyDOS Mod for DolphinDOS vereint die Vorteile beider Kernals. Es werden weiterhin die Schnelllade-Routinen von JiffyDOS verwendet. Abgesehen von der Parallel-Kabelunterstützung bekommt der Anwender laut Dokumentation alle DolphinDOS-Features. Des Weiteren wurden einige "SD2IEC Enhancements" eingebaut, die das Navigieren durch das SD2IEC-Verzeichnis erleichtert. Ein JiffyDOS-Kernal (hier erhältlich) in Form eines Images muss bereits vorhanden sein damit dieses gepatcht werden kann.

SpeedDOS+ Kernal
Download: csdb.dk
Auch SpeedDOS ist ein bekannter Kernal für den C64 und andere Commodore-Systeme. Auch dieser belegt die F-Tasten und beschleunigt den Ladevorgang von Programmen. Allerdings wird zusätzlich zum ROM im Laufwerk eine parallele Verbindung zum C64 vorausgesetzt. Ohne dieser funktioniert der Schnelllader nicht.

