Der „Nachbrenner“ für den C64: Die SuperCPU
Ich habe mich vor wenigen Tagen in Unkosten gestürzt und mir eine SuperCPU 128 V2 inkl. 16MB SuperRAM-Card zugelegt.
Die SuperCPU ist eine Turbokarte für den C64 & C128, die 1996 von Creative Micro Design veröffentlicht wurde. Sie basiert auf dem bereits unter „Systemfehler!“ erwähnten 65816 Prozessor. Dieser ist quasi ein 16-Bit 6502, der vom Western Design Center entwickelt wurde. Diese Firma wurde wiederum 1978 von Bill Mensch, einem ehemaligen MOS-Technology (die Firma wurde von Commodore aufgekauft und hat den 6502 entworfen) Mitarbeiter gegründet, der auch Teilinhaber der 6502 Patente war. Die bekanntesten Systeme mit dem 65816 sind der Apple IIgs, das Super Nintendo Entertainment System (SNES) und natürlich die…
Auf dem Bild erkennt ihr oben links eine Aussparung. Da ist der Expansions Port durchgeschliffen. Ihr könnt also weiterhin eure Final Cartridge III oder sogar ein RAMLink oder eine REU betreiben.
In der SuperCPU ist der 65816 mit 20MHz getaktet. Die 16-Bit CPU bietet einen 24-Bit breiten Adressbus, sie kann somit bis zu 16MB direkt adressieren (der C64 erreicht mit seinem 16-Bit breiten Adressbus bekanntlich nur 64KB). Somit stellt es auch die „schnellste“ Speichererweiterung dar. Da euch im Gegensatz zum GeoRAM oder zur REU direkt der gesamte Speicher zur Verfügung steht, ohne umständliches und langsames Einblenden / Umkopieren (auch wenn es bei der REU per DMA geschieht).
Bei mir sind, wie oben erwähnt, die maximal möglichen 16MB verbaut:
Hier kann man schön die Bedienelemente erkennen. Die SuperCPU kann, über den linken Schalter, komplett deaktiviert werden, falls es mal Probleme mit einem Programm gibt. In der SuperCPU befindet sich auch noch ein JiffyDOS, das sich mit dem nächsten Schalter an- und abschalten läßt. Der dritte Schalter ermöglicht es jederzeit zwischen 1MHz und 20MHz umzuschalten. Dann folgt die Turbo-LED, die anzeigt, ob der Turbo-Modus aktiv ist. Dass macht Sinn, da man auch per Software auf 1MHz zurückschalten kann. Ganz rechts befindet sich der RESET-Taster. Den braucht ihr z. B. auch, wenn ihr die ganze SuperCPU oder das JiffyDOS an- bzw. abschaltet, die Geschwindkeit läßt sich ohne RESET umschalten.
Ähnlich wie schon bei der REU am C64 sollte man auch hier beachten, dass die SuperCPU sehr viel Strom braucht. Es ist daher auf ein passendes Netzteil zu achten. Vor einigen Jahren wurden noch umgebaute PC-Netzteile im Internet angeboten, aktuell kann ich aber keine mehr finden. Meine SuperCPU läuft zwar auch mit dem C64C-Netzteil, da es allerdings sehr heiß wird, traue ich der Sache nicht ganz. Daher werde ich mir demnächst ein eigenes Netzteil bauen.
Schaltet man die SuperCPU, nach dem sie stromlos war, zum ersten mal ein, wird man mit einer kleinen Animation begrüßt. Diese läuft unterschiedlich schnell, abhängig davon, ob der Turbo-Modus aktiviert ist oder nicht.
Nun gibt es einige Stimmen, die behaupten, mit einer SuperCPU sei es kein C64 mehr. Das sehe ich aber, im Gegensatz zum Turbo Chameleon 64, anders. Die SuperCPU ist eine reine Prozessor- und Speichererweiterung, alle anderen Bausteine im C64 funktionieren noch wie gehabt. Außerdem wurden die Turbokarten, später beim Amiga, immer populärer und da hat auch keiner angefangen zu behaupten, es sei nun kein Amiga mehr. Neuere Amiga-Modelle hatten dann sogar von Haus aus schon schnellere, größere Prozessoren.
Da viele Spiele über einen Interrupt „getimed“ werden, laufen die auch noch im Turbo-Modus korrekt. Musik und Sound werden meistens ebenfalls nicht schneller, da auch die an einem Interrupt hängen. Aber es kann natürlich passieren, dass etwas nicht mehr funktioniert (dafür gibt es die oben beschriebene Möglichkeit auf 1MHz zurückzuschalten oder gleich die komplette SuperCPU zu deaktivieren).
Demos werden mit 20Mhz aber sehr wahrscheinlich Probleme haben. Dort wird häufig davon ausgegangen, dass eine bestimmte Anzahl an Taktzyklen für einen Codeabschnitt benötigt wird. Mit dem Turbo läuft jetzt alles viel schneller und das Programm kommt aus dem Tritt.
Eine Programmflut für die SuperCPU gab es noch nie. Am bekanntesten ist vielleicht das Spiel Metal Dust, dass von Protovision vertrieben wird und nur mit einer SuperCPU inkl. mind. 4MB RAM läuft.
Auf der, bei der SuperCPU, mitgelieferten Diskette gibt es einen Patch für GEOS, damit dies von ihr profitiert. Außerdem findet man im Netz noch ein paar angepasste Versionen von bekannten Spielen (häufig wird der Speicher dann als RAM-Disk verwendet, um Ladezeiten zu verringern) und einige Demos, die zeigen, was mit der SuperCPU so moglich ist.
Also, wer braucht die SuperCPU?
Bei den aktuellen Preisen einer SuperCPU auf ebay, ist sie heutzutage ein absolutes Luxus-Gadget. Wirklich brauchen werden es (mich eingeschlossen) die wenigsten, schön ist die Beschleunigung aber schon, wenn man an einem echten C64 arbeitet. Genau dann ist sie auch wirklich sinnvoll. Entwickelt ihr direkt am C64, dann werden eure Programme z. B. schneller assembliert. Auch Grafikprogramme sind um einiges flüssiger. Ich bin aber auch von der Technik im allgemeinen fasziniert und möchte mich später mal mit der Programmierung der SuperCPU beschäftigen.
Wenn euch das jetzt auch interessiert, ihr aber (zu recht) nicht um die 1000,- € ausgeben wollt, dann könnt ihr auf WinVICE zurückgreifen. Am 27. Dezember 2012 erschien eine spezielle SuperCPU-Version, diese ist nun auch Teil der nightly builds, beachtet bitte dass es sich dabei um experimentelle Versionen handelt! Beim nightly build wird übrigens ein anderes ROM mitgeliefert, als bei der „speziellen“ SuperCPU-Version. Für die Rakete braucht ihr aber ein Dump des original ROMs (z. B. V2.04).
Programmierung der SuperCPU
Da in der SuperCPU ein ganz anderer Prozessor verbaut ist, benötigt man auch angepasste Tools, um die volle Power zu entfesseln. Schließlich handelt es sich um eine 16-Bit CPU, die auch neue Befehle bietet. Da die SuperCPU aber abwärtskompatibel zum 6510 ist, könnt ihr natürlich zunächst mit eurem bevorzugten Assembler weiterarbeiten, sobald ihr allerdings wirklich etwas für die SuperCPU programmieren möchtet, benötigt ihr spezielle Programme.
Als Assembler bietet sich z. B. der VirtualAssembler16 an:
Andere Alternativen sind z. B. El Cheapo oder F8-Assblaster.
Viele Cross-Assembler bieten ebenfalls die Möglichkeit Programme für die SuperCPU (oder genauer für den 65816) zu entwickeln, z. B. das CBM prg Studio ab Version 3.0.0.
Angepasste Monitor-Programme wären u. a. Leemon (der erste Monitor mit 65816 OpCodes) oder der Jamaica Monitor. Darüber hinaus gibt es noch eine Reihe von Tools, wie z. B. Anzeige von JPEGs am C64, Zip-Programme oder Kopierprogramme, die weniger Diskettenwechsel benötigen.
Für die Zukunft plane noch die Veröffentlichung eines kleinen Beitrags zur Programmierung der SuperCPU. Dazu muss ich mich aber erstmal eingehender damit beschäftigen.
Ganz zum Schluß noch eine offizielle Werbung zur SuperCPU, falls euch die Entscheidung eine zu kaufen noch schwer fällt…
Hi, hast du dir dein eigenes Netzteil gebaut?
Hallo,
ich bin leider nie dazu gekommen.
Ok, schade. Ich überlege ob ein 128D Netzteil mit Adapter ausreichend sein könnte.
Das wäre jedenfalls stärker, als das normal C64 Netzteil. Die Dinger haben allerdings auch schon einige Jahre auf dem Buckel.
Wie bekomme ich das Teil in VICE zum laufen?
WinVICEx64-3.x
Einfach „xscpu64“, statt „x64“ starten.
Interessantes Teil ;)….die 16MB sind aber ausschliesslich über Assembler nutzbar, oder?
Die SuperCPU ist schon ein sehr spezielles Zubehörteil. Den meisten Nutzen hat man, wenn man wirklich auf dem C64 arbeitet z. B. Bildbearbeitung oder Programmerstellung.
Mit BASIC wird es wohl nichts (außer über Data-Wüsten) auf die 16MB zuzugreifen. Da die 65816-CPU die 16MB direkt addressieren kann, muß man die passenden ‘neuen’ Assemblerbefehle einsetzen. Ob es angepasste C-Compiler gibt, kann ich aktuell gar nicht sagen.