Homecomputer Commodore C64 und VC20 Hauptplatinen nackt getestet

Letztens fiel mein Blick wieder auf einen Karton in meinem Keller mit der Aufschrift "alte Homecomputer Platinen". Den hatte ich schon ewig nicht mehr geöffnet - der wanderte einfach von Umzug zu Umzug mit.

Es muss wohl irgendeine Art von nostalgischem Anfall gewesen sein, aber auf einmal hatte ich das Bedürfnis zu schauen, was in der Kiste drin ist und ob das noch funktionieren würde. In dem Karton fand ich: Die 6502-CPU des VC20 und die 6510-CPU des C64 sind verlötet, nur die 8086-CPU ist gesockelt. Die wäre vielleicht noch etwas für das 8-Bit-Computer auf einem Breadboard Projekt, das ich angehen will.

Da habe ich allerdings schon eine 6502-CPU und Co-Chips aus Fernost bestellt. Das dauert zwar noch, bis das da ist, aber das wird die Grundlage meines ersten eigenen zusammengezimmerten 8-Bit-Computers, eben mit 6502-CPU. Auch, weil ich die lange in Assembler programmiert habe und da sicher einiges hängengeblieben ist und aus dem Hinterstübchen meines Gehirns wieder hervorgekehrt werden kann.

Aber wenn mir das "6502 auf einem Breadboard" Projekt Spaß gemacht hat, mache ich vielleicht noch ein weiteres, eben mit dieser 8086-CPU.

Aber bis alle Bauteile da sind und das Projekt starten kann, dauert es sicher noch eine Weile. Schauen wir uns lieber einmal die Platinen an.

C64-Platine testen

Die C64-Platine sieht auf den ersten Eindruck gar nicht mal so schlecht aus:




Im Grunde genommen brauche ich eigentlich gar keinen "echten" C64. Ich kann ja schließlich einen C64-Emulator wie VICE auf meinem PC laufen lassen. Ansonsten habe ich noch die C64DTV (von dem ich hier berichte) und einen C64 Mini (Bericht dazu hier) und selbst auf meinem Odroid-Go läuft ein C64-Emulator (siehe hier).

Aber irgendwie treibt mich die Neugier, ob die Platine noch funktioniert. Außerdem kann es nicht schaden, noch ein wenig mein Wissen zu vertiefen, wie die CPU mit den peripheren Chips beim C64 zusammenarbeitet für mein 6502-Breadboard-Projekt.

Zuerst einmal stehe ich mit meiner nackten Platine vor zwei Problemen:

1. Muss ich den C64 irgendwie mit Strom versorgen.
2. Muss ich irgendwie das Bild vom C64 anzeigen lassen.

Das C64-Netzteil checken

Für Problem 1 finde ich in einem anderen Karton mit einem Haufen alter Joysticks auch ein C64-Netzteil, ein uraltes in der zum Brotkasten passenden Dreieck-Türstopper-Form. So toll sieht das nicht mehr aus. Irgendwie scheint ja ein bisschen am Gehäuse geschmolzen zu sein, sieht aber nicht so schlimm aus.

Da wollen wir doch erstmal sehen, ob das Teil überhaupt noch funktioniert.

Im C64-Wiki finde ich schnell einen Artikel zur C64-Netzbuchse und auch das Pinout:




Sehr ungewöhnlich finde ich hier die 9 Volt Wechselspannung, die ich dummerweise bei meinem Netzteil nicht messen kann. An den Pins 6 und 7 liegt bei meinem Netzteil weder Gleich- noch Wechselspannung an. Die Wechselspannungs-Oszillation des 9V-Pins soll wohl von den CIA-Chips zum Timing als Referenzfrequenz benutzt werden und bei manchen C64-Modellen für die Spannungsvorgung von SID-Chip und Datasetten-Port genutzt werden. Mal schauen, ob es trotzdem bei mir funktioniert, zumindest ein Bild zu erzeugen.

Aber zumindest liefert mein Netzteil ein 5.2V-Potential zwischen Pin 2 (GND) und Pin 4 (+5V). Das ist doch schon mal etwas. Es hat eh nur 4 der 7 Pins im Kabel belegt. Den Rest hat man sich aus Kostengründen einfach gespart; bei Verkaufszahlen von über 10 Mio. Stück rechnet sich sowas - Kleinvieh macht auch Mist.

Ich werde es einfach mal mit dem Netzteil versuchen. Zumindest liefert es auf einer Schiene Saft. Vielleicht reicht das ja.

Das Bild des C64 sichtbar machen

Irgendwie muss ich jetzt auch das Bild, was der C64 liefert, sichtbar machen. Einen alten Fernseher mit Antenneneingang habe ich natürlich nicht mehr, aber ich habe eine alte Dazzle-Box von Pinnacle, mit der kann ich auch Composite capturen und auf dem Windows-Bildschirm anzeigen lassen.

Und ein Blick auf Seite 142 meines C64-Handbuchs liefert folgendes Bild für die Audio/Video-Buchse:



Mit Pin 2 (GND) und Pin 4 (Video out) kann ich ein Video-Composite-Signal (auch FBAS genannt) abgreifen. Einen passenden Stecker habe ich auch schnell gefunden. Die 5-poligen DIN-Stecker für die alten AT-Tastaturanschlüsse passen. Und mehr als die 5 Pins brauche ich nicht, denn an diesen liegen die beiden betreffenden Video-Pins an.

Also ein altes Video-Cinch-Kabel geopfert und den Stecker samt Kabel an die Leitungen des Tastaturkabelstücks gelötet. Mit Schrumpfschlauch kurzschlussfest gemacht und fertig ist mein selbstgelötetes Anschlusskabel. Jetzt muss alles nur noch funktionieren: die Platine, das Netzteil und das selbstgelötete Kabel.

Ich schließe also alles an und bekomme folgendes Bild angezeigt:



Out in Memory Error in 0. Das sieht nicht gut aus. Aber zumindestens habe ich ein Bild. Besser als gar nichts.

Mit der Fehlermeldung schlussfolgere ich, dass dem C64 Speicher fehlt. Vielleicht ist die Verbindung zu den RAM-Chips unterbrochen? Oder das RAM ist defekt?

Ein paar der Ausrufezeichen flackern. Das könnte an defektem oder nicht angeschlossenem RAM liegen. Dazu muss man wissen, dass zwischen Byte 1024 und 2023 der Bildschirmspeicher des C64 liegt. Alles was sich in diesem RAM-Bereich befindet, wird auf den Bildschirm ausgegeben. Mit Poke 1024,1 kann ich z. B. ein A in den Anfang des Bildschirmspeichers schreiben, was zur Folge hat, dass dieser sofort auf dem Bildschirm erscheint.

Das die Ausrufezeichen nun so rumflackern könnte an einer "in der Luft hängenden" Leitung liegen. Vom Arduino und Raspberry Pi weiß ich, dass, wenn man einen nicht angeschlossenen Pin misst, dieser zwischen 1 und 0 hin und herspringt, man spricht dann von "floating pins". Jetzt könnte das Flackern gut die Folge eines Floating Pin sein, denn das flackert ja ganz ähnlich hin und her. Das Ausrufezeichen wäre übrigens ein Poke 1,33 und 33 stände für das 1. und 5. Bit. Eventuell sind die Datenleitungen 1 und 5 irgendwie defekt? Irgendwie sowas... oder auch was ganz Anderes...

Ich beschließe, dem C64 später genauer auf den Zahn zu fühlen, den Fehler zu finden wird ein bisschen Zeit in Anspruch nehmen und wende mich erstmal der anderen Platine, dem VC20 zu.

VC20-Platine testen

An der VC20-Platine wurde schon einiges rumgelötet und auch die HF-Abschirm-Haube ist nicht mehr vorhanden:




Auch hier ist die CPU, ein MOS 6502, leider fest verlötet. Und irgendwie daneben sieht es nach Löt-Baustelle aus. Die rechteckige, orange LED ist doch nicht original und was soll das Kabel an C38 das ganz bis nach oben links über die Platine führt?

Der Einschalter ist auch nicht original, sondern sieht sehr nach Selbstbaulösung aus. Und am Expansionsport hat auch schon jemand rumgelötet. Ob die Platine wohl noch laufen wird? Es glaube es irgendwie nicht wirklich...

Doch zuerst wieder unsere zwei Probleme:

1. Muss ich den VC20 irgendwie mit Strom versorgen.
2. Muss ich irgendwie das Bild vom VC20 anzeigen lassen.

Erstens hat sich schnell erledigt, als ich irgendwo lese, dass C64 und VC20-Netzteile kompatibel zueinander sind, zumindest die alten, dreieckigen. Das Netzteilkabel passt in die Buchse, die ebenfalls ganz ähnlich zu der Strombuchse des C64 aussieht. Wollen wir es also damit einmal versuchen.

Für Zweitens muss ich mal schauen, wie der Video/Audio-Ausgang beim VC20 geschaltet ist. Mein VC20-Handbuch kann ich zwar nirgends mehr finden, aber im Internet finde ich es als PDF, zwar auf englisch, aber das soll mir egal sein. Darin finde ich auch die betreffende Belegung:



Video LOW? Video HIGH? Was soll denn das sein. High und Low waren für mich immer die Flanken in einem Signal und müssen über ein Kabel erfolgen, sonst gäbe es ja gar keine Flanken. Das muss also was anderes bedeuten. Vielleicht, dass Low weniger Volt liefert als High und für empfindlichere Monitore bestimmt ist? Irgendwo habe ich gelesen, dass es egal sei, weil Pin 4 und 5 eh in der Buchse miteinander verbunden sind. Das habe ich aber durchgemessen und sie hängen nicht zusammen.

Interessanter finde ich natürlich das High-Signal auf Pin 5, aber mein selbstgelötetes Videokabel hat Pin 4 verbunden und es passt dank meiner Auswahl der sparsamen 5-Pin-Variante (der C64 hat ja eine 8-Pin-Buchse) auch an den VC20 - wie praktisch. Jetzt muss Pin 4 nur noch ein Bild liefern, sonst müsste ich ein extra Kabel für den VC20 bauen.

Also Netzteil und Videokabel eingesteckt, die Finger gekreuzt und das beste gehofft und den VC20 angeschaltet...

Es tut sich nichts. Und wenn ich den Einschalter betätige, flackert die LED. Ist der Schalter kaputt? Nach ein paar mal Schalter hin und her bekomme ich dann doch ein Bild:



"CBM BASIC V2 - 3583 Bytes free" steht da. 3583 Bytes - das ist wahrlich nicht viel. Der C64 hat zumindest "38911 basic bytes free" - mehr als das Zehnfache. Der C64 hat aber auch 64 KiB, der VC20 nur 5 KiB.

Der VC20 hieß im internationalen Verkehr übrigens "VIC 20". Aber die deutsche Commodore Niederlassung befürchtete, dass das im Deutschen "Fick zwanzig" ausgesprochen werden könnte und wollte eine Umbennunng. Mir gefällt die Anspielung, erinnert sie doch an den Supercomputer FUCKUP (First Universal Cybernetic-Kinetic Ultra-Micro Programmer) aus Illuminatus!.

Als nächstes stecke ich die Speichererweiterung ein und schalte den VC20 wieder ein...

"CBM BASIC V2 - 3588 Bytes free" heisst es nun und die Hintergrund- und Schriftfarbe haben gewechselt. Wo kommen auf einmal die extra 5 Bytes her? Sollten es nicht 16 KiB, also 16384 Bytes zusätzlich sein? Das Modul hat schließlich 8 Chips des Typs MITSUBISHI LSI. M58725P, -15 16 384-BIT (2048-WORD BY 8-BIT) STATIC RAM und 8 mal 2 KiB macht 16 KiB

Also schalte ich den VC20 an seinem wackligen An/Auschalter aus und wieder ein...

"CBM BASIC V2 - 3596 Bytes free" heisst es jetzt...

Und beim nächsten Zyklus "CBM BASIC V2 - 3613 Bytes free"... Es werden immer mehr Bytes, aber richtig ist das nicht. Sollten hier nicht 3583 + 16384 = 19967 Bytes stehen?

Vielleicht ist ja auch nur die Steckverbindung nicht mehr so gut? Die anderen Anschlüsse am VC20 sehen auf jeden Fall ziemlich korrodiert aus. Vielleicht ist das auch hier das PRoblem am Expansionsport? Endlich. Nach einigem Male rein und raus scheint der Kontakt wieder vollständig hergestellt zu sein:



"CBM BASIC V2 - 19967 Bytes free". Das liest sich doch gut und entspricht genau der Anzahl Bytes, die ich errechnet habe. Speichererweiterung tut es also auch wieder.

Zwischen-Fazit

Damit funktioniert wenigstens der VC20 wieder, zumindest bei dem, was ich bisher testen konnte. Eine Commodore Tastatur habe ich nämlich leider nicht mehr. Aber auch hier soll das VC20 mit dem C64 Modell kompatibel sein. Vielleicht kann ich ja irgendwo einen defekten C64 oder VC20 erstehen und damit eine Tastatur? Oder ich bekomme eine mit einem Arduino emuliert? Wegen des VC20 würde es sich vielleicht sogar lohnen. Auf der anderen Seite könnte ich natürlich auch einfach einen VC20-Emulator auf dem PC laufen lassen. Die Bildschirmausgabe erfolgt ja jetzt schon auf dem PC-Monitor.

Und für den C64 bräuchte ich im Prinzip gar keine Tastatur. Denn hier habe ich noch jede Menge EPROMs und EPROM-Karte für den Userport und bald auch einen Eprommer, den ich für mein 6502 auf Breadboard-Projekt geordet habe. Damit könnte ich Programme dann ganz einfach auf EPROM oder EEPROM brennen, auf eine EPROM-Karte stecken und diese in den Userport des C64 stecken. Wenn das Spiel dann nur Joystick und keine Tastatur bräuchte, könnte ich sogar damit spielen.

Allerdings ist der C64 noch defekt. Als nächstes sollte ich mal schauen, ob ich den Fehler nicht finden kann...

Zu dem Test von C64 und VC20 habe ich natürlich auch ein Video gemacht, dass die Gegebenheiten noch einmal viel besser zeigt:



Inzwischen habe ich mich auch an den Austausch des RAMs des defekten C64 gemacht.