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

Der Kickstart ist ein essentielles Bestandteil fast aller Amiga-Computer. Im Laufe der Jahre wurden zahlreiche Versionen entwickelt, die Fehler beheben und Verbesserungen einführen. Auch heute noch wird der Kickstart und AmigaOS kontinuierlich weiterentwickelt. Allerdings kann es vorkommen, dass Programme oder Spiele, die für ältere Kickstart-Versionen entwickelt wurden, nicht mehr auf Amigas mit neueren Kickstart-Versionen laufen. Um dieses Problem zu lösen, ist es notwendig, zwei Kickstart-Versionen zu installieren und je nach verwendetem Programm zwischen ihnen umzuschalten. In dieser Anleitung bauen wir einen Kickstart-Umschalter, der nicht nur zwei Kickstart-Versionen aufnehmen kann, sondern noch viele weitere Funktionen bietet. Hier ist eine Liste der Funktionen:

• 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 Kickstart Switch ist nur mit kompatiblen Systemen nutzbar. Welche Version des Amiga 2000 kompatibel ist, wurde jedoch nicht spezifiziert.
  • Der USB-TTL Serial Adapter darf nicht mit dem Blue Pill Board verbunden werden, wenn das EPROM im Amiga verbaut ist.
  • Überprüfe die Lötstellen zweimal. Ein Kurzschluss oder eine falsch verbundene Leitung kann sowohl den Amiga als auch den Kickstart-Switch beschädigen.
  • Achte auf die korrekte Ausrichtung und Position des Kickstarts. Einige Amiga-Boards haben zwei unbenutzte Pins im Kickstart-Sockel. Fotografiere die Position des originalen Kickstarts vor dem Ausbau.
  • 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.
  • Trage ein antistatisches Armband, um statische Ladungen zu vermeiden.
  • Ich übernehme keine Verantwortung für Schäden, die direkt oder indirekt durch diese Anleitung entstehen.

Kompatibilität

Laut Entwickler sollte der Switch mit einem Amiga 500 Rev 6 oder neuer, Amiga 600 oder 2000 kompatibel sein. Welche Amiga 2000 Revision genau gemeint ist, wurde jedoch nicht spezifiziert. Für diese 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 der Kickstarts. Da diese urheberrechtlich geschützt sind, ist das Herunterladen aus dem Internet nicht legal. Hier sind einige legale Möglichkeiten, um in den Besitz dieser Kickstarts zu gelangen.

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

STM32 Blue Pill Board vorbereiten

Da die Pin-Header am Blue Pill Board in der Regel nicht angelötet sind, müssen wir dies selbst erledigen. Um die Bauhöhe des Kickstart-Switches so gering wie möglich zu halten, benötigen wir 90-Grad-Pin-Header. Wir benötigen jedoch nur 12 Pins, und zwar die folgenden:

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


Damit ist das STM32 Blue Pill Board vorerst fertig. Als Nächstes widmen wir uns der Installation des USB-TTL Serial Adapters.

USB-TTL Serial Adapter installieren (Windows)

In dieser Anleitung wurde der USB-TTL Serial Adapter unter Windows 10 installiert, sollte aber auch unter Windows 11 einwandfrei funktionieren. Um den USB-TTL Serial Adapter verwenden zu können, ist die Installation des entsprechenden Treibers erforderlich. Es sollte der Treiber des jeweiligen Herstellers verwendet werden. Häufig handelt es sich bei USB-TTL Serial Adaptern um Geräte von FTDI, deren Treiber auf der offiziellen Webseite ftdichip.com heruntergeladen werden können. Nach erfolgreicher Installation des korrekten Treibers sollte das Gerät im Geräte-Manager erkannt werden. Öffne dazu das 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 relevant, wenn die Installation fehlschlägt und im Geräte-Manager die folgende Meldung erscheint: „PL2303HXA Phased out since 2012. Please contact your supplier“.


Der Hersteller unterstützt dieses Gerät nicht mehr. Um den Adapter trotzdem verwenden zu können, installiere den Treiber FAKE_PL2303.

Linux unter Windows installieren mit WSL

Für unser Projekt benötigen wir einige Tools, die unter Linux einfach zu installieren sind. Zwar gibt es diese Tools auch für Windows, doch die Installation und Nutzung unter Linux ist deutlich komfortabler, sodass sich die Installation einer Linux-Distribution lohnt. Mit WSL lässt sich eine Linux-Distribution direkt innerhalb von Windows installieren, ohne eigene Partitionen erstellen zu müssen. Die Linux-Installation kann jederzeit wieder entfernt werden.

Um die Installation zu starten, drücke die Tastenkombination „Windows Taste“ + „R“. Dadurch öffnet sich ein Eingabefeld, in dem wir „cmd“ eingeben. Bestätige die Eingabe mit „Strg + Shift + Enter“. Dadurch wird die Eingabeaufforderung mit Administratorrechten ausgeführt.


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

wsl --install -d ubuntu

Die Installation dauert eine Weile…


Auf die Anfrage nach einem Benutzernamen geben wir einen beliebigen Namen ein, der nicht mit dem Windows-Benutzernamen übereinstimmen muss. Dasselbe gilt für die Eingabe eines Passworts.

STM32 Blue Pill Board Firmware flashen

Der Kickstart-Umschalter benötigt die passende Firmware, die der Entwickler des Projekts hier zur Verfügung gestellt hat: drive.google.com. Im Archiv finden wir drei Dateien, von denen wir nur die HEX-Datei benötigen. Die Übertragung der HEX-Datei in die Linux-Umgebung ist überraschend einfach:

Unter Windows:
Starte die Linux-Umgebung. Mit der Linux-Distribution wird automatisch eine Dateifreigabe unter Windows erstellt. Diese Freigabe finden wir im Datei-Explorer in der linken Spalte.

Ö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.


Verbinde das Blue Pill Board mit dem USB-TTL Serial Adapter, wie im folgenden Bild dargestellt.


Um den Flash-Speicher zu beschreiben, müssen wir die Jumper nun neu positionieren.

Jumper Boot0 = 1
Jumper Boot1 = 0


Unter Linux:
Wir stecken den USB-TTL Serial Adapter in den Rechner und starten die Linux-Umgebung. Um über Linux auf das Blue Pill Board zuzugreifen, geben wir den folgenden Befehl ein.

sudo stty -F /dev/ttyS# 115200

Die Raute repräsentiert die Port-Nummer des USB-TTL Serial Adapters, die in meinem Fall 4 ist.


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 Port 4. Sollte der Flash-Vorgang fehlschlagen, drücke kurz den Reset-Button des Blue Pill Boards und versuche es erneut.


Nach erfolgtem Flashvorgang stecken wir die Jumper wieder auf

Jumper Boot0 = 0
Jumper Boot1 = 0

Da das Blue Pill Board noch am seriellen Port angeschlossen ist, speichern wir die Anzahl der Kickstart-Images, die wir auf das EPROM schreiben möchten. In meinem Fall sind das vier. 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, die in meinem Fall Port 4 ist.  Es sollte lediglich ein blinkender Cursor in der linken oberen Ecke erscheinen. Gib nun Folgendes ein:

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


Die Einstellungen sind ab sofort nicht mehr zugänglich. Um die Anzahl der Kickstarts zu ändern, muss ein Jumper auf B4-B5 gesteckt und der Reset-Taster gedrückt werden.

Die Kickstart-Images vorbereiten

Je nach verwendetem EPROM können wir bis zu acht Kickstart-Versionen nutzen. Dafür benötigen wir die Kickstarts im Image-Format. Zusätzlich müssen die Kickstart-Images „geswappt“ sein und genau 512 KByte Speicherplatz belegen. Schauen wir uns das Ganze aber Schritt für Schritt an.

Den Kickstart “swappen”

Ein Kickstart-Image, das für Emulatoren verwendet wird, kann nicht direkt auf das EPROM kopiert werden, da der Amiga dann nicht starten würde. Der Grund dafür ist, dass die Kickstart-Versionen für Emulatoren „16-bit word geswappt“ sind, was bedeutet, dass wir diese zurückswappen müssen. Eine 1:1-Kopie eines echten Kickstarts müsste man natürlich nicht swappen. Vergleicht man einen Kickstart für Emulatoren mit einer exakten Kopie eines Kickstart-ROMs, so würde dies in einem HEX-Editor wie folgt aussehen.


Da üblicherweise Kickstart-Images für Emulatoren verwendet werden, müssen wir diese swappen. Linux bietet ein praktisches integriertes Tool für diesen Zweck.

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 lediglich 256Kb Speicher. Unser EPROM ist jedoch in 512Kb Blöcke unterteilt. Obwohl ein Kickstart mit einer Speichergröße von nur 256Kb verwendet werden kann, muss seine Speichergröße verdoppelt werden. Dieser Vorgang ist denkbar einfach: Die Datei wird einfach an sich selbst angehängt.

Unter Windows:
Zuerst kopieren wir die zu verdoppelnden Kickstart-Images in das Verzeichnis „Ubuntu > Home > [Username]“, um mit Linux darauf zugreifen zu können. Da wir diese Images bereits geswappt haben, sollten sie sich bereits im Home-Verzeichnis befinden.

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


Um die erfolgreiche Ausführung des Vorgangs zu überprüfen, geben wir den Befehl ls -l ein. Das bearbeitete Image „kick13swap_doubled.bin“ sollte nun 512 Kb groß sein.


Die Bearbeitung der Kickstart-Images ist nun abgeschlossen.

Das EPROM brennen

Als nächstes werden die vorbereiteten Kickstart-Images auf das EPROM gebrannt. Dazu benötigen wir einen EPROM-Programmer, in meinem Fall einen Mini Pro TL866C. Dieser unterstützt die benötigten EPROMs jedoch nicht, sodass ein zusätzlicher Adapter erforderlich ist. Der Adapter ist als Fertiglösung im Netz zu finden oder kann selbst gebaut werden. Der Entwickler der Kickstart-Switches hat eine eigene Seite für den EPROM-Adapter-v4 eingerichtet. Alternativ kann man den bereits zusammengebauten Adapter auch auf www.ebay.de finden.


Die Kickstart-Images werden in den jeweiligen Speicherblock des EPROMs gebrannt. Zur Veranschaulichung finden wir im folgenden Bild die Belegung des EPROM-Speichers durch die Kickstarts.


Wie bereits erwähnt, unterstützt der Programmer die von uns verwendeten EPROMs nicht. Daher können wir die Speicherbereiche nicht direkt auswählen. Hier kommt der Adapter ins Spiel. Wir stecken das leere 27C322 oder 27C160 EPROM in den Adapter und den Adapter anschließend in den Programmer.  Achte darauf, dass das EPROM korrekt 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.


Die Auswahl der weiteren Speicherblöcke ist im folgenden Bild zu finden.


Nur für 27C322 EPROM: Sollte ein 27C322 EPROM verwendet werden, dann betätige den Schalter neben 27C322 auf dem EPROM-Adapter.

Verbinde den Programmer mit dem Windows-Rechner und starte das Programmer-Tool. Wähle aus der IC-Datenbank das 27C4096-EPROM aus. Beachte, dass die Spannungen VPP und VDD Write je nach Hersteller variieren können. Wähle daher das passende EPROM aus der Liste aus.


Zuerst laden wir das Kickstart-Image, das als erstes auf das EPROM gebrannt werden soll, und deaktivieren die Option „Check device ID“.


Um den Vorgang zu starten, klicken wir auf „P“. Im zweiten Schritt laden wir das zweite Kickstart-Image und stellen am EPROM-Adapter den zweiten Speicherblock auf 0-1-1 ein. Diese Schritte wiederholen wir für jedes Kickstart-Image, wobei das dritte Image im dritten Speicherblock platziert wird und so weiter. Sobald alle Kickstart-Images kopiert wurden, kleben wir ein Stück Isolierband oder Ähnliches auf das Glas des EPROMS, um zu verhindern, dass der Inhalt des Speichers gelöscht wird.


Sollte ein Fehler unterlaufen oder der Vorgang aus irgendeinem Grund wiederholt werden müssen, muss das EPROM gelöscht werden. Hierfür wird ein EPROM-Eraser benötigt. Weitere Informationen finden wir im Hinweis am Ende dieser Anleitung.

EPROM und Blue Pill Board verbinden

Jetzt widmen wir uns der Verdrahtung. Das EPROM mit den Kickstarts muss mit dem Blue Pill Board verbunden werden. Bevor wir jedoch beginnen, biege die Pins 1 und 42 vorsichtig nach außen, um einen Kontakt mit dem Kickstart-Sockel zu vermeiden.

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

Bei Montage des Blue Pill Boards direkt auf dem EPROM müssen die Adern nicht besonders lang sein. Sollte das Blue Pill Board jedoch aufgrund der Bauhöhe an einer anderen Stelle platziert werden, müssen die Adern entsprechend angepasst werden.

Die Installation im Amiga

Unser Kickstart-Switch ist endlich bereit für den Test. Der alte Kickstart wird vorsichtig aus dem Sockel gehoben und durch unseren neuen Kickstart-Switch ersetzt.  Achte dabei auf die korrekte Ausrichtung der Kickstarts und die eventuell nicht benötigten Pins des Sockels. Anschließend installieren wir das von uns erstellte EPROM, wie im folgenden Bild dargestellt.

Achtung! Beim Wiedereinbau der Tastatur im Amiga 500 kann es zu einem Kontakt mit dem Blue-Pill Board kommen, was einen Kurzschluss verursachen könnte. Um dies zu vermeiden, sollte das Blue-Pill Board nach hinten versetzt werden, um ausreichend Abstand zur Tastatur zu gewährleisten.


Alternativ kann das Problem gelöst werden, indem das Blue Pill Board mit Doppelkleber neben das EPROM oder an einen anderen geeigneten Ort im Rechner versetzt wird. Anschließend muss nur noch die Reset-Leitung angeschlossen werden. Dazu wird ein Draht von Pin A8 des Blue Pill Boards zu einem beliebigen Reset-Signal geführt. Der genaue Standort des Reset-Signals variiert je nach Amiga-Variante. Details dazu finden wir in den folgenden Bildern.




Achtung Bauhöhe! Bei übereinander verbauten Komponenten berührt das Blue Pill Board die Tastatur. Weitere Hinweise finden wir in Teil 2 dieser Anleitung.

Beim Einschalten des Amigas sollte der Kickstart-Screen des ersten auf dem EPROM gespeicherten Kickstarts erscheinen. Um den Kickstart umzuschalten, halten wir die Tasten „Ctrl“, „Amiga“ und „Amiga“ gleichzeitig für drei Sekunden gedrückt. Der Amiga wird neu gestartet und der nächste Kickstart in der Liste wird geladen.

Hier geht es zu Teil 2 dieser Anleitung