Tutorial: Pi1541 + 35KB Speicher für den VIC-20

Das Pi1541 ist eine moderne Alternative für Commodore-Diskettenlaufwerke. Das Laufwerk liest Daten von der SD-Karte, ist kostengünstig und sehr kompatibel. Diese Gründe machen das Pi1541 zu einem hervorragenden Ersatz für Besitzer von Commodore-Rechner wie der C64, C16 und VIC-20 (VC20).

Der Speicher im VIC-20 ist stark begrenzt. Lediglich 5 KB wurden den VIC-20 spendiert. Das schränkt natürlich die Entwicklung von Software ein. Deshalb setzen viele Programme und Spiele eine Speichererweiterung voraus, welche bei der Veröffentlichung des Rechners noch sehr teuer war.

Die Erweiterung “Pi1541 + 35KB” erweitert den VIC-20 mit einem Pi1541-Laufwerk und mit einer Speichererweiterung, die von 3 bis 35 KB einstellbar ist. Und das alles vereint auf derselben Platine.



Was wird benötigt?
- Commodore VIC-20
- El. Komponenten (Siehe Komponentenliste)
- USB-MicroSD Kartenlesegerät
- Einige VIC-20 Programme für den Funktionstest (bereits in der Firmware enthalten)

Bevor es losgeht, noch ein paar Hinweise (Wichtig!)
- Achte auf Kurzschlüsse beim Auflöten der Komponenten. Der Rechner könnte beschädigt werden.
- Achte darauf, dass die Komponenten (abgesehen von den Buchsenleisten) auf der beschrifteten Seite der Platine aufgelötet werden.
- Isoliere die Unterseite des Displays, da sonst ein Kurzschluss verursacht werden kann.
- Achte auf die Ausrichtung bzw. die Polarität der Komponenten.
- Stecke niemals eine Stromversorgung am Raspberry Pi an, wenn die Cartridge im VIC-20 steckt!
- Verwende nicht den HDMI-Port, wenn der Raspberry PI auf der Pi1541 + 35KB Erweiterung steckt.
- Stelle sicher, dass das korrekte Laufwerk im Formatier-Tool eingestellt wurde.
- 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.

Die Komponenten

Für unser Projekt benötigen wir einige Komponenten welche in der folgenden Liste zu finden sind:

Die unbestückte Platine




- MicroSD Karte (4Gb sind mehr als ausreichend)
- 62256 DIP28 32KB STATIC RAM
- 6264 DIP28 8KB STATIC RAM (Alternativ kann ein 62256 DIP28 verwendet werden)
- 74LS21 DIP14
- DIP28 Sockel x2
- DIP14 Sockel
- 8P DIP-Schalter
- 10 KΩ Widerstand x8
- 470Ω Widerstand
- 100nF Keramik Kondensator x3
- 220 μF 16V Elektrolytkondensator
- Kurzhubtaster 90 Grad x6
- Level Converter 3,3V/5V 4 Kanäle
- DIN-Stecker, 6-polig
- Litze 6 x. 30cm beliebige Farben
- OLED-Display 0.96
- Buchsenleisten 2,54 mm, 2X20
- Stiftleiste 2x20-pol (Wird nur benötigt wenn dieser nicht zusammen mit den Raspberry Pi Zero geliefert wird)
- Stiftleisten 2,54 mm, 1x2
- Jumper
- LED Rot

Der Aufbau

Die Platine ist vorbildlich beschriftet, deshalb dürfte es keine großen Hürden geben. Dennoch ist es wichtig, dass die folgenden Hinweise befolgt werden.

Der 2x20 Pin-Header muss aufgelötet werden, bevor das OLED-Display installiert wird, da sonst einige Lötpunkte nicht mehr zugänglich wären.


Isoliere die Unterseite des Displays, da das Display einen Kurzschluss mit den darunterliegenden Lötpunkten verursachen könnte.


Achte auf die Ausrichtung des Level-Konverters. Die Bezeichnung des Level-Konverters muss mit den Bezeichnungen auf der Platine übereinstimmen.

Achte auf die Ausrichtung des Elektrolyt-Kondensators und der Leuchtdiode, denn diese haben eine Polarität.

Achte auch auf die Ausrichtung der Sockel. Die Kerbe an der Innenseite des Sockels sollte mit der Kerbe auf der Platine übereinstimmen.

Das IEC Kabel

Damit der VIC-20 auf das Pi1541 zugreifen kann, wird ein IEC-Kabel zwischen IEC-Port und unserer Cartridge benötigt. Wie genau dieses Verbindung aussehen soll, kann aus den folgenden Bildern entnommen werden.

Die letzten Schritte

Es müssen noch ein paar Kleinigkeiten erledigt werden, bevor die Cartridge getestet werden kann.
Stecke die IC’s in den entsprechenden Sockeln. Achte dabei auf deren Ausrichtung.


Verbinde die korrekten Kontakte auf der Rückseite der Platine, dort wo sich der Level Converter befindet. Welche das sind, hängt vom verbauten Display ab. Überprüfe die Reihenfolge der Pins des Displays. Je nach Reihenfolge müssen die entsprechenden Kontakte zusammengelötet werden:

VCC-GND-SCL-SDA = Verbinde die Kontakte VCC und VCC
GND-VCC-SCL-SDA = Verbinde die Kontakte GND und GND

In meinem Beispiel sieht das so aus



Im nächsten Schritt stecken wir den Jumper auf JP1. Dieser Jumper verbindet die Spannungsversorgung zwischen der Speichererweiterung und Pi1541 bzw. die Pi1541 Erweiterung wird von der Spannung des VIC-20 versorgt.


Stecke den Raspberry Pi in den Header. Achtung auf die Ausrichtung! Siehe folgendes Bild.


Hardwareseitig sollte nun alles abgeschlossen sein. Weiter geht es im nächsten Abschnitt mit der Software für die Pi1541-Erweiterung.

Die SD-Karte für das Pi1541-Laufwerk

Die SD-Karte muss im FAT32 Format formatiert werden. Das sollte mit jedem Betriebssystem möglich sein. Alternativ kann das Tool SD Card Formatter für Mac und Windows verwendet werden. Stelle sicher, dass die korrekte Karte im Formatier Tool eingestellt wurde. Die Daten werden unwiderruflich gelöscht!


Auf der Projektseite finden wir ganz unten einen Download-Link zur Software für das Pi1541 (pi1541_zero_VIC20_SD.zip). Lade diese runter und entpacke das Archiv. Kopiere den Inhalt in das Stammverzeichnis der SD-Karte. Die Dateien dürfen sich nicht in einem Ordner befinden.


Im Ordnet 1541 befinden sich bereits einige Programme, die wir verwenden können. Wenn weitere Programme oder Spiele hinzugefügt werden, müssen diese in diesen Ordner platziert werden.

Der Funktionstest (Speichererweiterung)

Jetzt endlich geht es zum ersten Funktionstest. Dazu gehen wir wie folgt vor:
1. Schalte den VIC-20 aus
2. Stecke die Cartridge in den Rechner (mit dem Raspberry Pi auf der Unterseite gerichtet!)
3. Stelle alle DIP-Schalter auf ON
4. Schalte den VIC-20 ein
5. Wenn alles korrekt durchgeführt wurde, sollte auf dem Bildschirm die Meldung “28159 BYTES FREE” angezeigt werden.


Es ist vollkommen korrekt, dass nicht 35 KB freier Speicher angezeigt werden. Der “fehlende” Speicher wird nur nicht als Basic-Speicher eingebunden, ist aber dennoch vorhanden. Natürlich können alle Speicherkonfigurationen von 3 bis 35 KB eingestellt werden. Dazu müssen die DIP-Schalter entsprechend umgeschaltet werden. Wie das funktioniert wird hier beschrieben. Beachte, dass viele Spiele und Programme eine spezifische Speicherkonfiguration benötigen. Beispielsweise würde ein Programm, das 3 KB Extra-Speicher benötigt, nicht mit einer 8 KB laufen, da der Speicher auf einer anderen Adresse liegt.

Die Speicherkonfiguration

Die DIP-Schalter auf der Cartridge sind dazu da, die verschiedenen Speicherkonfigurationen zu selektieren. Von 0 bis 35 KB ist alles möglich. Nur die Schalter von 2 bis 8 wirken sich auf die Speichergröße aus. Aus der folgenden Tabelle kann man die gewünschte Speichergröße entnehmen, die eingestellt werden soll.

Speicher Dip-Schalter
3 KB 1 - 1 - 1 - 1 - 0 - 0 - 0 - 0
8 KB 1 - 0 - 0 - 0 - 1 - 0 - 0 - 0
16 KB 1 - 0 - 0 - 0 - 1 - 1 - 0 - 0
24 KB 1 - 0 - 0 - 0 - 1 - 1 - 1 - 0
32 KB 1 - 0 - 0 - 0 - 1 - 1 - 1 - 1
35 KB 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1

Für den ultimativen Test der Speichererweiterung wählen wir die 35 KB Speicher-Konfiguration und laden das Spiel Doom (Download) für den VIC-20. Dieses Spiel läuft ausschließlich mit einer 35 KB Erweiterung.

Der Funktionstest (Pi1541)

Für den Funktionstest des Pi1541 muss das IEC-Kabel mit dem VIC-20 verbunden werden. Gehe wie folgt vor:

1. Schalte den VIC-20 aus
2. Stecke die Cartridge in den Rechner (mit dem Raspberry Pi auf der Unterseite gerichtet!)
3. Stecke das IEC-Kabel in den VIC-20
4. Füge die SD-Karte ein, falls nicht schon geschehen
5. Schalte den VIC-20 ein

Das Pi1541 ist ab Werk so konfiguriert, dass das Disketten-Image “fb.d64” beim Einschalten des Rechners automatisch eingebunden wird. Wir versuchen also, den Inhalt dieses Images aufzulisten. Gib dazu die folgenden Befehle ein.

LOAD”$”,8
LIST


Wenn alles fehlerfrei verläuft, dann sollte der Inhalt der Diskette aufgelistet werden.


Bei dem eingebundenen Disketten-Image handelt es sich um einen File-Browser. Damit lassen sich Ordner komfortabel durchsuchen und Programme starten.

Die Pi1541 Tasten

Mit den fünf Tasten lässt sich das Pi1541 bedienen. Die Tasten sind wie im folgenden Bild zu sehen ist belegt.


Die Belegung lässt sich, falls gewünscht, in der Config-Datei ändern.

Die Pi1541 Config Datei

In der Datei “options.txt” sind, wie der Name vermuten lässt, die Optionen für das Pi1541-Modul zu finden. Auf alle Punkte wird nicht eingegangen, nur auf einige wenige, die für die Verwendung des Pi1541 nützlich sein könnten.

deviceID
Funktion: Wechselt die Geräteadresse des emulierten Laufwerkes.

ROM
Funktion: ROM des emulierten Laufwerkes.

Gib hier den Namen des ROM-Images, falls ein bestimmtes ROM benötigt wird, wie beispielsweise Jiffy-DOS.

StarFileName
Funktion: Image, das beim Start eingebunden werden soll.

Das hier angegebene Disketten-Image wird automatisch beim Einschalten des Rechners eingebunden.

Button
Funktion: Ändert die Belegung der Tasten 1-5 des Pi1541.