Turbo Master CPU
| Turbo Master CPU | |
|---|---|
| Typ | Steckmodul |
| Hersteller | Schnedler Systems |
| Neupreis | 179 US$[1], entspricht etwa 351 € heute |
| Erscheinungsjahr | 1988[2] |
| Produktionsende | 1992 |
| Prozessor | R65C02P4 mit 4,09 MHz |
| Speicher | 64 KBytes SRAM on board |
| Sonstiges | Anschluss an Expansionsport |
Die Turbo Master CPU gilt als wohl erste kommerziell erfolgreiche Turbokarte für den C64. Sie wurde von Steven Carl Schnedler unter dem Firmennamen Schnedler Systems entwickelt und kam einige Jahre vor der SuperCPU auf den Markt. Die Karte wird am Expansionsport angeschlossen und enthält einen mit 4,09 MHz getakteten 65C02 (R65C02P4) von Rockwell. Dadurch wird die Rechenleistung des C64 in der Praxis etwa vervierfacht. Es gab eine Version mit und eine Version ohne eingebautes JiffyDOS.
Architektur[Bearbeiten | Quelltext bearbeiten]
Im Gegensatz zur späteren SuperCPU, die einen 65816 (einen 16-Bit-Prozessor) einsetzt, verwendet die Turbo Master CPU den 8-Bit-Prozessor 65C02. Der 65C02 ist abwärtskompatibel zum 6510 und unterstützt alle seine dokumentierten Opcodes, jedoch nicht die illegalen Opcodes, die einige Programme verwenden. Bei der Turbo Master CPU wird der interne MOS 6510 des C64 per DMA-Signal stillgelegt, während der schnellere Prozessor auf der Karte die Arbeit übernimmt. VIC-II, SID, CIAs (Tastatur und serieller Bus) des C64 werden weiterhin benutzt.
Die Karte verfügt über einen Hardware-Schalter sowie eine Software-Steuerung, um zwischen Turbo-Modus (4,09 MHz) und Standardgeschwindigkeit (1 MHz) umzuschalten. Dies war unerlässlich, da viele C64-Programme auf genaue Timing-Verhältnisse angewiesen waren oder undokumentierte Opcodes nutzten.
GEOS-Kompatibilität und der MasterAdapter[Bearbeiten | Quelltext bearbeiten]
Besondere Sorgfalt wurde auf die Kompatibilität mit GEOS gelegt, einschließlich der Unterstützung von GeoRAM und der REU. Um die Turbo Master CPU parallel zu diesen Speichererweiterungen betreiben zu können, entwickelte Schnedler Systems den MasterAdapter, einen gepufferten Cartridge-Adapter.
Technik[Bearbeiten | Quelltext bearbeiten]
Aufbau[Bearbeiten | Quelltext bearbeiten]
Die Platine der Turbo Master CPU ist als zweilagig ausgeführt und enthält insgesamt 19 ICs.[3]
| Bauteil | Typ | Funktion |
|---|---|---|
| IC19 | R65C02P4 (Rockwell) | Hauptprozessor, 4,09 MHz |
| IC16, IC17 | 2× 62256 (SRAM, 32K×8) | Gesamter schneller Arbeits-RAM, 64 KBytes |
| IC18 | 27C256 (EPROM, 32K×8) | System-ROM inklusive Schnelllader (JiffyDOS optional) |
| IC1, IC2, IC11 | 74LS244 (3×) | Oktal-Buspuffer für Adress- und Datenbus |
| IC3, IC4, IC5, IC6, IC8 | 74LS374 (5×) | Oktal-D-Latch zur Kopplung von Adress- und Datenbus |
| IC7 | 74LS688 | 8-Bit-Komparator |
| IC9 | 74LS74 | Dual-D-Flipflop für Takterzeugung und Synchronisation |
| IC10 | 74LS32 | Quad-2-OR-Gatter |
| IC12 (U4) | PAL16L8 | Adressdecoder: ROM-Enable, RAM2-Enable, I/O-Zugriffserkennung |
| IC13 (U1) | PAL16L8 | Schreibzugriffserkennung für $00/$01, RAM1-Enable, SO/RDY-Steuerung, ROM-Adressumleitung |
| IC14 | PAL16R4 | PAL (noch nicht reverse engineered) |
| IC15 | PAL16R6 | PAL (noch nicht reverse engineered) |
Emulation des 6510-Prozessorports[Bearbeiten | Quelltext bearbeiten]
Der 65C02 besitzt anders als der 6510 keinen Prozessorport an Adresse $01. Da das C64-Betriebssystem und viele Programme die Speicherbanking-Bits HIRAM, LORAM und CHAREN darüber steuern, muss die Turbo Master diese Funktionalität in eigener Hardware nachbilden.
Schreibzugriffe auf $01 werden dabei sowohl in das eigene SRAM als auch in IC8 gepuffert.
Gemäß dem Handbuch ist der Prozessorport $01 als reiner Ausgangsport geschaltet: Während beim C64 ein POKE0,0:POKE1,0 keinen Absturz unter BASIC hervorruft, passiert das mit der Turbo Master CPU durchaus.
Bit 7 von Speicherstelle $00 dient als Software-Schalter für den Turbo-Modus: Ist es 0, läuft der Prozessor mit 4,09 MHz.
Schreibzugriffe auf das RAM[Bearbeiten | Quelltext bearbeiten]
Da der VIC-II den Bildschirminhalt direkt aus dem internen C64-DRAM liest, müssen Schreibzugriffe des 65C02 auch das C64-RAM aktualisieren. Die Turbo Master CPU besitzt keinen Schreibcache oder Write-Back-Puffer - stattdessen wird Write-Through mit Taktgating eingesetzt und der 65C02 bei Schreibzugriffen kurz angehalten bzw. mit dem C64-Bus synchronisiert.
Turbo Master CPU kann das C64-RAM im Bereich $D000-$DFFF nicht ansteuern, da der 6510 im C64 deaktiviert und seine CPU-Port-Ausgänge nicht verändert werden können. Entsprechend blendet die PLA des C64 im Bereich $D000-$DFFF dauerhaft die I/O-Register (und das Farb-RAM) ein, nicht das System-RAM. Daraus folgt, dass das System-RAM in dem Bereich auch nicht per DMA angesprochen werden kann.
Die Turbo Master emuliert die Banking-Signale zwar intern für ihren eigenen Adressdecoder (U4), kann diese aber nicht an die C64-PLA weiterreichen, da LORAM/HIRAM/CHAREN interne Verbindungen zwischen dem 6510 und der PLA und nicht über den Expansionsport verfügbar sind.
Dies betrifft Programme, die den Bereich $D000-$DFFF per Banking auf System-RAM umschalten und dort Bitmap-/Text-/Zeichensatzdaten ablegen.
Die spätere SuperCPU löste dieses Problem, indem dort der 6510-Prozessorport beim Start anders initialisiert und dann bei Schreibzugriff auf $Dxxx jeweils per GAME/EXROM die dafür passende Speicherkonfiguration gewählt wird.
Taktsteuerung und Bus-Synchronisation[Bearbeiten | Quelltext bearbeiten]
Die zentrale Herausforderung der Turbo Master CPU ist die Koexistenz eines mit 4,09 MHz getakteten Prozessors mit dem 0,985 MHz-Bus des C64, der von VIC-II, SID, CIA und Farbram genutzt wird. Diese Synchronisation übernimmt IC15, das als Taktgenerator und Bus-Arbiter fungiert.
Der R65C02P4 besitzt keinen internen Oszillator und wird extern getaktet. Sein PHI0-Eingang (Pin 37) wird von IC15 O1 (Pin 14) angesteuert. IC15 wiederum wird von DOTCLK (~8 MHz) des C64 getaktet (CLK-Eingang, Pin 1). IC15 teilt DOTCLK durch zwei und erzeugt so den 4,09 MHz-Takt für den 65C02.
IC15 steuert nicht nur die Taktfrequenz, sondern kann den Takt auch vollständig anhalten (bzw. den 65C02 auf C64-Bustakt synchronisieren). Dies geschieht folgenden Fällen:
- I/O-Zugriffe ($D000-$DFFF)
- VIC-II (Badlines/Sprite-DMA)
- Schreibzugriffe auf das RAM
- Externes Modul-DMA (z.B. von einer REU)
Akzeptanz[Bearbeiten | Quelltext bearbeiten]
Die Turbo Master CPU erschien in einer Zeit, in der der C64 noch weit verbreitet war, sich aber bereits abzeichnete, dass der Markt für Hardware-Erweiterungen begrenzt bleiben würde. Als einer der ersten kommerziell erfolgreichen Beschleuniger für den C64 war sie ein Pionierprodukt. Die TurboProcess (1987) war weniger benutzerfreundlich; andere Karten erschienen erst deutlich später: Die Flash 8 1994, die SuperCPU 1996.
Nachbauten[Bearbeiten | Quelltext bearbeiten]
- Jim Brain (RETRO Innovations) hat etwa 2020 die Platine und die PAL-Bausteine der Turbo Master CPU teilweise analysiert und verfügbar gemacht.[3]
- Thomas Christoph (COREi64) hat 2025 die TurboMaster V3, einen modernisierten Nachbau der Turbo Master CPU vorgestellt.[4]
Weblinks[Bearbeiten | Quelltext bearbeiten]
- Turbo Master CPU - Owner's Manual (PDF)

- Turbo Master CPU - Git-Repository mit PLD-Logik, PCB-Layouts und Referenzmaterialien

- Weitere Bilder (.zip) der Turbo Master CPU, via archive.org
- Turbo Master: Steven Carl Schnedler's C64 Accelerator Legacy - The Oasis BBS

Quellen[Bearbeiten | Quelltext bearbeiten]
- ↑ The Transactor December 1988 (PDF)
- ↑ Handbuch: Copyright 1988/89
- ↑ 3,0 3,1 Turbo Master CPU - Git-Repository mit PLD-Logik, PCB-Layouts und Referenzmaterialien
- ↑ Success - TurboMaster Reverse Engineered auf Lemon64 und TurboMaster V3 auf The Universe of Commodore 64