Tutorial: Amiga Kickstart-Switch mit bis zu 8 Kickstarts (Teil 1)

Der Kickstart ist ein essentielles Bestandteil, das (fast) in jedem Amiga verbaut ist. Im Laufe der Jahrzehnte wurden viele verschiedene Versionen entwickelt mit Fehlerkorrekturen und Verbesserungen. Auch heute noch wird der Kickstart und AmigaOS weiterentwickelt. Leider kann es vorkommen, dass ein Programm oder Spiel, das für eine alte Kickstart-Version entwickelt wurde, nicht mehr auf einem Amiga mit neueren Kickstart läuft. Um dieses Problem zu beheben, müssen zwei Kickstart-Versionen eingebaut werden und je nachdem welches Programm verwendet wird, zwischen beiden umgeschaltet werden. In dieser Anleitung bauen wir einen Kickstart-Umschalter, der nicht nur zwei Kickstart-Versionen aufnehmen kann, sondern noch einiges mehr. Hier eine Liste der Features:

• Bis zu 8 Kickstart-Versionen
• Umschalten mittels-Reset (Ctrl-Amiga-Amiga)
• Reset-Dauer einstellbar
• Akustisches Signal beim umschalten (Lautstärke einstellbar)
• Einstellungen über serielles Terminal

Quelle dieser Anleitung: Kickstart-Switcher-v2 von Keir Fraser. (Lizenz)


Was wird benötigt?
• Amiga 500 (Rev 6+), 600 oder 2000
• EPROM-Programmer
• Kickstart ROM Images
• El. Komponenten (Siehe benötigte Komponenten)
• Einige Tools (Siehe Text)

Bevor es losgeht, noch ein paar Hinweise (Wichtig!)

- Der USB-TTL Serial Adapter darf nicht mit dem Blue Pill Board verbunden werden, wenn das EPROM im Amiga verbaut ist.
- Kontrolliere zweimal die Lötstellen. Ein Kurzschluss oder eine falsch verbundene Leitung kann den Amiga sowie den Kickstart-Switch zerstören.
- Achte auf die Ausrichtung und Position des Kickstarts. Bei manchen Amiga-Boards bleiben zwei Pins des Kickstart-Sockels unbenutzt. Mache ein Foto des alten Kickstarts bevor dieser ausgebaut wird.
- Pins 1 und 42 des EPROMs dürfen nicht in den Sockel des Kickstarts gesteckt werden.
- Achte auf die Bauhöhe des Kickstart-Switches. Siehe dazu den Hinweis im Text. Bei Kontakt mit der Amiga-Tastatur kann es zu einem Kurzschluss kommen.
- Arbeite an der Hardware nur im spannungsfreien Zustand. Stecke das EPROM nur in den Rechner wenn dieser ausgeschaltet ist.
- Vermeide statische Ladungen durch das Berühren eines geerdeten Objektes, wie beispielsweise einen Heizkörper. Oder verwende ein antistatisches Armband.
- Ich übernehme keine Verantwortung für Schäden, die direkt oder indirekt durch diese Anleitung entstanden sind.

Kompatibilität

Laut Entwickler sollte der Switch mit einem Amiga 500 Rev 6 oder neuer, Amiga 600 oder 2000 kompatibel sein. Um welche Amiga 2000 Revision es sich handelt, wurde nicht definiert. In dieser Anleitung wurde ein Amiga 500 Rev 8 verwendet.

Benötigte Komponenten

Folgende Komponenten benötigen wir für dieses Projekt:

27C322/160 EPROM Adapter


• EPROM 27C322 (für 8 Kickstarts) oder 27C160 (für 4 Kickstarts)




Jumper x3
PC speaker/buzzer (Optional)
• 0,5m Draht für die Verbindungen zwischen Blue Pill Board und EPROM
• Doppelseitiges Klebeband

Die Kickstart Images

Für unser Projekt benötigen wir Images von Kickstarts. Diese sind urheberrechtlich geschützt und dürfen nicht ohne weiteres aus dem Internet geladen werden. Hier gibt es einige legale Möglichkeiten, wie man in den Besitz dieser Kickstarts kommt.

• Kauf des Emulator-Paketes von amigaforever.com
• Kauf eines Kickstarts in einem beliebten Onlineshop
• Extrahieren des Kickstarts aus einem echten Amiga

STM32 Blue Pill Board vorbereiten

Da die Pin-Header am Blue Pill Board üblicherweise nicht angelötet sind, müssen wir dies erledigen. Wir müssen ohnehin die 90 Grad Pin-Headers verwenden, um die Bauhöhe des Kickstart-Switches so gering wie möglich zu halten. Allerdings benötigen wir nur 12 Pins, und zwar die folgenden:

A8, A9, A10, A15, B3, B4, B5, B6, B7, B8, 5V, G


Das war es vorerst für das STM32 Blue Pill Board. Weiter geht es mit der Installation des USB-TTL Serial Adapters.

USB-TTL Serial Adapter installieren (Windows)

In dieser Anleitung verwende ich Windows 10, sollte aber auch unter Windows 11 genau so funktionieren. Damit der USB-TTL Serial Adapter verwendet werden kann, muss ein Treiber installiert werden. Dazu sollte der Treiber des jeweiligen Herstellers verwendet werden. Sehr oft ist ein USB-TTL Serial Adapter von FTDI vorzufinden, dessen Treiber auf der offiziellen Webseite zu finden sind: ftdichip.com. Wenn der korrekte Treiber installiert wurde, sollte das Gerät richtig erkannt werden. Öffne dazu den Geräte-Manager (Klicke auf das Windows Startmenü und gib “Geräte-Manager”ein).


Notiere die Port-Nummer hinter dem Gerätenamen. In meinem Fall ist es Port 4.

Ergänzung für alte USB-TTL Serial Adapter von FTDI

Dieser Abschnitt ist nur zu beachten, wenn die Installation fehlschlägt und die folgende Meldung im Geräte-Manager angezeigt wird: “PL2303HXA Phased out since 2012. Please contact your supplier”.


Dieses Gerät wird nicht mehr vom Hersteller unterstützt. Um den Adapter dennoch in Betrieb zu nehmen, sollte der folgende Treiber installiert werden: FAKE_PL2303.

Linux unter Windows installieren mit WSL

Für unser Projekt benötigen wir einige Tools. Unter Linux sind diese leicht zu installieren. Zwar gibt es diese Tools auch für Windows, doch da diese unter Linux viel komfortabler installiert und verwendet werden können, zahlt sich die Installation einer Linux-Distribution aus. Mit WSL wird eine Linux-Distribution innerhalb von Windows installiert. Es müssen keine eigenen Partitionen erstellt werden und die Linux-Installation kann jederzeit wieder entfernt werden.

Die Installation wird wie folgt eingeleitet: Drücke die Tastenkombination “Windows Taste” + R. Es öffnet sich ein Eingabefeld, in das wir “cmd” eingeben. Die Eingabe bestätigen wir mit “Ctrl + Shift + Enter”. Damit wird die Eingabeaufforderung mit Administrator-Rechten ausgeführt.


Hier geben wir den Installationsbefehl für die Linux-Installation ein.

wsl --install -d ubuntu

Die Installation dauert eine Weile…


Wenn wir nach einem Username gefragt werden, geben wir einen beliebigen Namen ein, welcher nicht mit dem Windows-Username übereinstimmen muss. Und dasselbe, wenn wir nach einem Passwort gefragt werden.


STM32 Blue Pill Board Firmware flashen

Der Kickstart-Umschalter funktioniert nur mit der richtigen Firmware. Diese hat der Entwickler des Projektes hier veröffentlicht: drive.google.com. Im Archiv befinden sich drei Dateien. Wir benötigen lediglich die HEX-Datei. Die HEX-Datei müssen wir irgendwie in die Linux-Umgebung kopieren. Und dies ist tatsächlich sehr einfach:

Unter Windows:
Starte jetzt die Linux-Umgebung. Zusammen mit der Linux-Distribution wird auch eine Dateifreigabe unter Windows generiert. Wenn wir den Datei-Explorer öffnen, finden wir in der linken Spalte die Freigabe.

Öffne die Datei-Freigabe und den Ordner “Ubuntu > Home > [Username]”.
[Username] steht für den Benutzername, den wir bei der Einrichtung von Linux angegeben haben.
In dieses Verzeichnis kopieren wir die HEX-Datei, die wir heruntergeladen haben.


Dann verbinden wir das Blue Pill Board mit dem USB-TTL Serial Adapter und zwar so wie im folgenden Bild zu sehen ist.


Im nächsten Schritt stecken wir die Jumper so um, damit der Flash-Speicher beschrieben werden kann.

Jumper Boot0 = 1
Jumper Boot1 = 0


Unter Linux:
Jetzt stecken wir den USB-TTL Serial Adapter in den Rechner und starten die Linux-Umgebung. Damit wir über Linux auf das Blue Pill Board zugreifen können, müssen wir folgenden Befehl eingeben.

sudo stty -F /dev/ttyS# 115200

Die Raute steht für die Port-Nummer des USB-TTL Serial Adapters. In meinem Fall ist dies Port 4.


Jetzt brauchen wir nur noch das Tool “stm32flash”, welches wir mit dem folgenden Befehlen installieren.

sudo apt update
sudo apt upgrade
sudo apt install stm32flash


Endlich kann die Firmware geflasht werden

cd ~
stm32flash -w kswitch.hex -v -g 0x0 /dev/ttyS#


Die Raute steht für die Port-Nummer des USB-TTL Serial Adapters. In meinem Fall ist dies Port 4. Falls der Flash-Vorgang nicht starten will, einmal kurz auf den Reset-Button des Blue Pill Boards drücken und nochmal probieren.


Nach erfolgtem Flashvorgang stecken wir die Jumper wieder auf

Jumper Boot0 = 0
Jumper Boot1 = 0

Da das Blue Pill Board noch am seriellen Port hängt, speichern wir die Anzahl der Kickstart-Images die wir auf das EPROM speichern möchten. In meinem Fall sind das 4. Der folgende Befehl stellt eine serielle Verbindung her.

sudo screen /dev/ttyS# 115200

Auch hier: Die Raute steht für die Port-Nummer des USB-TTL Serial Adapters. In meinem Fall ist dies Port 4. Wir sollten lediglich einen blinkenden Cursor in der linken oberen Ecke sehen. Gib folgendes ein:

1 (Ruft Option 1 auf)
[Anzahl Kickstarts] (Die gewünschte Anzahl an Kickstarts 2-8)
12 (Speichert die Einstellungen)


Die Einstellungen können ab jetzt nicht mehr aufgerufen werden. Möchte man dennoch die Anzahl der Kickstarts ändern, muss ein Jumper auf B4-B5 gesteckt und der Reset-Taster gedrückt werden.

Die Kickstart-Images vorbereiten

Je nachdem welches EPROM wir verwenden, können wir bis zu 8 Kickstart-Versionen verwenden. Das bedeutet, dass wir die Kickstarts im Image-Format benötigen. Des Weiteren wird vorausgesetzt, dass die Kickstart-Images “geswappt” sind und 512Kb Speicher belegen, nicht mehr und nicht weniger. Aber alles nacheinander…

Den Kickstart “swappen”

Ein Kickstart-Image, das für Emulatoren verwendet wird, kann nicht auf das EPROM kopiert werden. Der Amiga würde damit nicht starten. Das liegt daran, dass die Kickstart-Versionen für Emulatoren “16-bit word geswappt” sind. Das bedeutet, dass wir diese zurückswappen müssen.

Eine 1 zu 1 Kopie eines echten Kickstarts müsste man natürlich nicht swappen. Würde man einen Kickstart für Emulatoren und eine exakte Kopie eines Kickstart-ROMs vergleichen, würde das in einem HEX-Editor so aussehen.


Da üblicherweise Kickstart-Images für Emulatoren verwendet werden, müssen wir diese swappen. Hierfür gibt es ein nützliches Linux-Tool, welches bereits in Linux integriert ist.

Unter Windows:
Zuerst kopieren wir die Images die wir swappen möchten, nach “Ubuntu > Home > [Username]", damit wir mit Linux darauf zugreifen können.

Unter Linux:
Wechsle in das Home-Verzeichnis, in dem sich die Kickstart-Images befinden.

cd ~

Swappe das gewünschte Image mit den folgenden Befehl:

dd if=[Quell-Datei] of=[Ziel-Datei] conv=swab

Das sieht in meinen Fall so aus

dd if=kick13.rom of=kick13swap.bin conv=swab


Diesen Vorgang wiederholen wir für jeden Kickstart den wir das EPROM kopieren möchten.

256Kb -> 512Kb Kickstart (Nur für Kickstarts bis v1.4)

Kickstarts ab Version 0.7 bis Version 1.4 belegen nur 256Kb Speicher. Unser EPROM besteht aber aus 512Kb Blöcke. Ein Kickstart mit einer Speichergröße von nur 256 kann zwar verwendet werden, aber nur, wenn dessen Speichergröße verdoppelt wird. Dies ist ein sehr einfacher Vorgang. Dabei wird die Datei an sich selbst nochmal angehängt.

Unter Windows:
Zuerst kopieren wir die Kickstart-Images, die wir verdoppeln möchten, nach “Ubuntu > Home > [Username]", damit wir mit Linux darauf zugreifen können. Die Images sollten ohnehin noch im Home-Verzeichnis liegen, da wir diese geswappt haben.

Unter Linux:
Verwende folgende Befehle, um die besagten Kickstart-Images zu verdoppeln.

cd ~
cat [Quell-Datei].bin [Quell-Datei].bin >>[Ziel-Datei].bin


Das sieht in meinem Fall so aus

cat kick13swap.bin kick13swap.bin >>kick13swap_doubled.bin


Wir überprüfen nun, ob der Vorgang erfolgreich war, mit den Befehl ls -l. Das bearbeitete Image “kick13swap_doubled.bin” sollte 512 Kb groß sein.


Die Bearbeitung der Kickstart-Images ist nun abgeschlossen.

Das EPROM brennen

Als nächstes werden die Kickstart-Images, die wir vorbereitet haben, auf das EPROM gebrannt. Dazu benötigen wir einen EPROM-Programmer. In meinem Fall soll ein Mini Pro TL866C diese Arbeit übernehmen. Leider unterstützt dieser Programmer die EPROMs nicht, die wir benötigen. Deshalb ist ein zusätzlicher Adapter nötig.

Der Adapter ist als Fertiglösung im Netz zu finden oder kann selbst gebaut werden. Der Entwickler der Kickstart-Switches hat hierfür eine eigene Seite veröffentlicht: EPROM-Adapter-v4. Alternativ findet man im Netz den bereits zusammengebauten Adapter: www.ebay.de.


Die Kickstart-Images werden in den jeweiligen Speicherblock des EPROMs gebrannt. Zum besseren Verständnis wird im folgenden Bild beispielhaft gezeigt, wie die Kickstarts den Speicher des EPROMs belegen.


Der Programmer unterstützt, wie bereits erwähnt, die von uns verwendeten EPROMs nicht. Entsprechend können die Speicherbereiche nicht gewählt werden. Das übernimmt nun der Adapter. Wir stecken das (leere) 27C322 oder 27C160 EPROM in den Adapter und den Adapter wiederum in den Programmer. Beachte, dass das EPROM richtig in den Sockel gesteckt wird. Siehe dazu folgendes Bild.


Die DIP-Schalter sollten so gestellt werden, dass der erste Speicherblock beschrieben wird, also auf 1-1-1. Es muss immer mit Block 1 begonnen werden.


Wie die weiteren Speicherblöcke gewählt werden, sieht man im folgenden Bild.


Nur für 27C322 EPROM: Der Schalter neben 27C322 auf dem EPROM-Adapter muss bestätigt werden, falls ein 27C322 EPROM verwendet wird.

Den Programmer verbinden wir mit dem Windows-Rechner und starten das Programmer-Tool. Aus der IC-Datenbank wählen wir 27C4096. Beachte, dass je nach Hersteller die Spannung VPP und VDD Write geringfügig variiert. Wähle das passende EPROM aus der Liste.


Dann laden wir das Kickstart-Image, das als erstes auf das EPROM gebrannt werden soll, und entfernen den Haken bei “Check device ID”.


Mit einem Klick auf “P” wird der Vorgang gestartet. Im zweiten Schritt laden wir das zweite Kickstart-Image und stellen am EPROM-Adapter den zweiten Speicherblock ein, also 0-1-1. Diese Schritte wiederholen wir nun für jedes Kickstart-Image, wobei das dritte Image im dritten Speicherblock platziert wird und so weiter. Wenn alle Kickstart-Images kopiert wurden, kleben wir ein Stück Isolierband, oder Ähnliches, auf das Glas des EPROMS. Das soll verhindern, dass der Inhalt des Speichers gelöscht wird.


Falls man sich vertan hat oder den Vorgang aus irgendeinem Grund wiederholen möchte, muss das EPROM wieder gelöscht werden. Dazu ist ein EPROM-Eraser nötig. Siehe den Hinweis ganz am Ende dieser Anleitung.

EPROM und Blue Pill Board verbinden

Jetzt geht es zur Verdrahtung. Das EPROM mit den Kickstarts muss mit dem Blue Pill Board. Bevor es aber losgeht, sollten die Pins 1 und 42 nach außen gebogen werden, damit sie keinen Kontakt mit dem Kickstart-Sockel haben.

Nur für 27C322: Biege zusätzlich Pin 32 nach außen.


Im nächsten Schritt geht es zur Verdrahtung und zwar so wie im folgenden Bild zu sehen ist.

Schaltung von Keir Fraser

Falls das Blue Pill Board auf das EPROM montiert werden soll, müssen die einzelnen Adern nicht lang sein. Möchte man aber das Blue Pill Board aus Gründen der Bauhöhe irgendwo anders platzieren, dann muss die Länge der einzelnen Adern natürlich angepasst werden.


Die Installation im Amiga

Endlich kann unser Kickstart-Switch getestet werden. Der alte Kickstart wird aus dem Sockel gehebelt und der Kickstart-Switch stattdessen eingebaut. Achte auf die Ausrichtung der Kickstarts sowie auf die evtl. nicht verwendeten Pins des Sockels. Das von uns erstellte EPROM wird, wie im folgenden Bild zu sehen ist, installiert.

Vorsicht! Wenn die Tastatur im Amiga 500 wieder eingebaut wird, kann es zu einem Kontakt mit dem Blue-Pill Board kommen was wiederum zu einem Kurzschluss führen könnte. Das Blue Pill Board sollte dann nach hinten versetzt werden. Sorge für genügend Abstand zwischen dem Blue Pill Board und der Tastatur.


Alternativ lässt sich das Problem lösen, indem das Blue Pill Board versetzt wird, also neben das EPROM oder irgendwo anders im Rechner mit Doppelkleber platziert werden.

Jetzt muss nur noch die Reset-Leitung angeschlossen werden. Dafür sollte eine el. Draht von Pin A8 des Blue Pill Boards zu einem beliebigen Reset-Signal geführt werden. Wo das Reset-Signal abgegriffen werden kann, hängt von der jeweiligen Amiga-Variante ab. Siehe hierfür die folgenden Bilder.




Achtung Bauhöhe! Wird alles übereinander verbaut, berührt das Blue Pill Board die Tastatur. Weitere Hinweise im Teil 2 dieser Anleitung.

Wenn der Amiga jetzt eingeschaltet wird, sollte der Kickstart-Screen des ersten auf den EPROM gespeicherten Kickstarts angezeigt werden. Beispielhaft, wie im folgenden Screenshot zu sehen ist, Kickstart 1.3.


Umgeschaltet wird, indem die Tasten “Ctrl-Amiga-Amiga” gleichzeitig für 3 Sekunden lang gedrückt werden. Der Amiga wird neu gestartet und der nächste Kickstart in der Liste wird geladen.

Hier geht es zu Teil 2 dieser Anleitung