Logo

tim:schuermann.de

 

Ein Beschleuniger für die Diskettenlaufwerke des C64 und C128(D)

Professional DOS - Die Hardware

von Tim Schürmann 

In diesem Teil soll etwas näher auf die Professional DOS Hardware und ihre Arbeitsweise eingegangen werden. Der Fokus liegt dabei auf den zugrunde liegenden Ideen und nicht auf einer detaillierten Beschreibung oder Analyse der einzelnen Schaltkreise.
Die "Professional DOS Release"-Version für die Kombination aus der ersten Version des 1541 Laufwerks und dem Ursprungsmodell des Commodore 64, besteht aus drei Komponenten: einem neuen Betriebssystemkern (Kernal) für den C64, einem Parallelkabel und einer länglichen Computerplatine für die Floppy (vgl. Abbildung 1).

Abb. 1: Die Professional DOS Erweiterungsplatine für das Diskettenlaufwerk.

Einige Bauteile auf der Platine wurden abgefeilt um die Identifizierung zu erschweren. Erkennbar blieben nur das EPROM (Typ 27128) mit dem DOS (Disk Operating System; Betriebssystem des Diskettenlaufwerkes), der Speicherbaustein und ein TTL-IC mit der Aufschrift 74LS00. Die restlichen Bauteile wurden unter [1] identifiziert und aufgelistet.
Das unter [5] angesprochene "Toolkit System Professional" soll laut dem dortigen Test für mehrere, mit Professional DOS ausgerüstete Laufwerke vorgesehen sein. Bislang konnte ich mangels Hardware nicht verifizieren, ob und wie gut Professional DOS mit mehreren Laufwerken zurecht kommt. In einem Werbeblatt wird darauf hingewiesen, dass für die Versionen Release 3, 5 und 6 eine "Bustreiberplatine" benötigt wird, sofern man mit ihnen mehrere Laufwerke betreiben möchte. Der gleichzeitige Einsatz einer 1541 mit einer 1570 oder 1571 am Userport war nicht möglich [12].

Die C64-Seite

Über einen speziellen Umschaltesockel wird das neue Betriebssystem fest in den C64 eingebaut. Hierzu muss der original Commodore-Kernal gegen den Professional DOS Kernal ausgetauscht werden (Sockel U4). Beim C128 kommt ein 16K EPROM zum Einsatz (Sockel U32), bei dem sich im oberen Bereich der Kernal, im unteren Bereich das BASIC befindet. In späteren Versionen, wie sie von VTS Data geliefert wurden, mussten im C128 die Bausteine U32 und U35 gegen die mitgelieferten Versionen ausgetauscht werden [16].
Stecken die angesprochenen Chips nicht zufällig auf einem Sockel, ist es erforderlich den originalen Kernal auszulöten. Für weniger begabte Elektronikbastler sicherlich keine leichte und vor allen Dingen ungefährliche Aufgabe.
Je nachdem welche Version man von Professional DOS erworben hatte, musste man vor dem eigentlichen Einbau noch ein paar Trockenübungen durchführen. Bei den Update-Varianten musste man den Kernal zunächst auf ein passendes EPROM brennen. Sofern der Kernal nicht schon brennfertig mitgeliefert wurde, musste er mit dem mitgelieferten Programm "produce kernal" zunächst noch generiert werden.
Ist der Einbau korrekt verlaufen, meldet sich das System direkt nach dem Einschalten. Die lange, typische "Bedenkzeit" des originalen Commodore-Kernals entfällt.

Die Floppy-Seite

Das Parallelkabel wird je nach Modell entweder am User- oder Expansionsport des Rechners angeschlossen. Bei der Userport-Variante handelt es sich um ein 10 poliges Flachbandkabel, wie es auch bei SpeedDOS+ verwendet wird. Auf der Floppy-Seite des Kabels befindet sich ein Sockel, der zwischen den Baustein 6522 (1541: Sockel UC3, 1541c: UC1) und der Floppyplatine gesetzt werden muss. Sofern sich dieser Chip noch nicht auf einem Sockel befindet, muss auch dieser erst ausgelötet werden. Gleiches gilt für den Prozessor 6502 der Floppy (1541: Sockel UC4, 1541c: UC2). Dieser muss auf die mitgelieferte Erweiterungsplatine gesteckt werden. Letztere nimmt anschließend im Diskettenlaufwerk den Platz des Prozessors ein.
Das originale Betriebssystem der Floppy (DOS) muss im Falle der 1541 vollständig aus der Floppy entfernt werden (Sockel UB4). Professional DOS verwendet statt dessen automatisch den, auf der Erweiterungsplatine befindlichen Ersatz. Laut Anleitung [11] existierten aber Umschaltplatinen, mit denen dieser Platz weiter genutzt werden kann.
Bei der 1541c wird das entfernte DOS gegen das mitgelieferte Professional DOS-ROM ausgetauscht.
Zum korrekten Betrieb muss in jedem Fall das serielle Kabel auch weiterhin angeschlossen bleiben (siehe Floppy-Handbuch). Bei späteren Professional DOS Versionen musste noch die Steckbrücke (Jumper) J3 geschlossen werden [16].
Auf Seiten der C128-Floppy 1571 wurde das Kernal-ROM (Sockel U2) gegen das mitgelieferte ersetzt, sowie die Chips U1 (6502A) und U20 (je nach Modell einer der Chips 6526A, 8520 oder 8521) entfernt [16].

Die Arbeitsweise

Professional DOS verwendet keine Tricks, wie das Zwischenspeichern (Cachen) einer Ganzen oder Teile einer Diskettenseite in einem zusätzlichen RAM. Statt dessen setzt das System auf eine hardwaremäßige GCR-Dekodierung und die Erhöhung der Taktfrequenz (dazu später mehr). Hierdurch wird erreicht, dass eine komplette Spur während einer Diskettenumdrehung gelesen, dekodiert und zum Rechner übertragen werden kann ("Skew-Faktor 1") [16]. Der Speicherbaustein auf der Platine von 8 KByte RAM dient somit nur noch für den Sonderfall, dass eine Datei nicht direkt zum C64 übertragen werden kann [12].
Dieser Werbeaussage zum trotz, wird in der Praxis dennoch ein ganzer Track zwischengespeichert. Eine Ausnahme bildet lediglich eine Diskette, die eine ganz bestimmte Professional DOS Formatierung besitzt. Nur in diesem Fall können PRG-Dateien direkt von der Diskette zum C64 transferiert werden, ohne dass sie zwischengespeichert werden müssen. Bei allen normal formatierten Disketten, sowie bei allen anderen Dateitypen (SEQ, REL, GEOS-Format) wird der Speicher als Track-Cache zwingend benötigt, um die hohe Beschleunigung zu garantieren.

Um die Geschwindigkeit gegenüber einer unmodifizierten Floppy zu steigern, greift Professional DOS als erstes zu einer Erhöhung der Taktfrequenz. Hierdurch arbeitet das Laufwerk alle Befehle wesentlich schneller ab, als dies normalerweise der Fall ist. Dem Nutzer von Professional DOS steht hier neben einem 1 und 2 MHz Modus auch eine variable Taktung zur Verfügung. Die variable Taktung verhindert im Gegensatz zum Dauerhaften 2 MHz-Betrieb eine übermäßige Erwärmung des Prozessors. Wie an anderen Floppy-Speedern und der unter [1] als "Initial" bezeichneten Version zu sehen ist, kann diese Wärmeentwicklung doch beträchtlich sein und dem Prozessor im schlimmsten Fall sogar bleibende Schäden zufügen.

Der nächste Trick besteht in der parallelen Übertragung der Daten zum C64. Während bei der seriellen Verbindung die Daten immer der Reihe nach in den C64 wandern, schaufelt Professional DOS immer 8 Bits (= 1 Byte) gleichzeitig durch das Parallelkabel in den Speicher des Heimcomputers.

Der eigentliche Clou von Professional DOS liegt aber in der hardwaremäßigen, Nibble-weisen (d. h. 4 Bit-weisen) GCR Umwandlung (Kodierung/Dekodierung). Die Commodore-Laufwerke legen ihre Daten in einem speziellen Format auf der Diskette ab ("GCR"-Format). Die Floppy muss also erst sämtliche Daten vor dem Abspeichern in dieses Format umwandeln. Analoges gilt für die Rückrichtung. Spezielle, zusätzliche Hardware auf der Erweiterungsplatine unterstützt den Hauptprozessor beim Aufsplitten der Datenbytes in einzelne Nibbles (8 Bit = 1 Byte, 4 Bit = 1 Nibble) und der GCR-Umwandlung. Zum Verschicken über das Parallelkabel werden paarweise dekodierte Nibbles wieder zu einem Byte zusammengefasst. Dies ist nicht ganz so einfach, da von 5 Bytes im GCR-Format nach der Dekodierung nur noch 4 Bytes übrig bleiben.
Dank der zusätzlichen Hardware ist der 6502-Prozessor nur noch für den Datentransfer (Bytes) vom Lesekopf (Laufwerkskontroller) zur GCR-Umwandlung, der Kombination kodierter oder dekodierter Nibbles zu Bytes und dem Transport dieser weiter zum Parallelkabel zuständig.
Wie [12] beschreibt, erfolgt dies in 18 Zyklen, wodurch in bestimmten Situationen sogar eine direkte Übertragung der Daten vom Lesekopf in den C64 möglich wird (siehe oben). Andere Floppy-Speeder schaffen dies nicht.

Das Betriebssystem der Floppy muss selbstverständlich diese Hardware GCR-Umwandlung unterstützen. Hierzu wurde das originale DOS von Commodore um entsprechende Routinen, bzw. Programmcode erweitert. Das Ergebnis befindet sich in dem EPROM, welches sich wiederum auf der Floppy-Erweiterungsplatine befindet (vgl. Abbildung 1; der Chip mit dem Klebestreifen). Neben den schnellen GCR-Dekodierungsroutinen enthält das ROM noch einige große Dekodierungstabellen. Letztere dienen zur weiteren Vereinfachung der Dekodierungsarbeit: Nach dem Einlesen eines Datenbytes suchen die entsprechenden Betriebssystemroutinen nach der, zur Dekodierung benötigten Tabelle. Anschließend erledigt die Hardware den Rest, indem sie das Datenbyte in Nibbles aufteilt und sie mit Hilfe der GCR-Tabellen dekodiert.

Der kleine Unterschied

Der Professional DOS Kernal für den C64 scheint im Laufe der Zeit relativ unverändert geblieben zu sein [1]. So trifft man im Internet immer wieder auf ein und dieselbe ROM-Version einer bestimmten Release-Variante. Es ist anzunehmen, dass diese einfach nur am häufigsten verwendet wurde (C64, 1541, Userportvariante).
Der wichtigste Unterschied zwischen der, unter [1] als "Initial" bezeichneten Version und den Release-Varianten liegt in einer Veränderung der Adressierung: Da die Platine für das Diskettenlaufwerk kleinen Änderungen unterworfen wurde, mussten die DOS-Erweiterungen nebst den bereits angesprochenen Tabellen für die Floppy in einen anderen (Speicher-)Bereich verschoben werden. Möglicherweise ist diese Änderung auch für eine Steigerung der Softwarekompatibilität verantwortlich, da die "Initial"-Version im Gegensatz zu ihrem Release-Pendant mit einigen Programmen nicht zurecht kommt.

Fazit

Hiermit soll der kleine Ausflug in die Hardware des Professional DOS vorerst beendet werden. Eine detaillierte Arbeitsweise der Platine, sowie weiteres Material rund um den Beschleuniger ist unter [1] zu finden.

Infos 
[1] Wolfang Mosers Seite rund um Professional DOS: http://d81.de/ProfessionalDOS
[2] http://groups.google.com/groups?threadm=2m4gcj%24k1e%40nigel.msen.com
[3] 64'er Sonderheft 25, "Welcher Floppy Speeder ist der richtige?",Markt und Technik Verlag, Seite 18ff
[4] 64'er, Ausgabe 10/85, Markt und Technik Verlag, Seite 115
[5] 64'er, "So schnell wie der Wind...", Ausgabe 8/86, Markt und Technik Verlag, Seite 22
[6] 64'er, Ausgabe 10/87, Markt und Technik Verlag, Seite 143
[7] 64'er, "C128 Sprinter im Vergleich", Ausgabe 1/88, Markt und Technik Verlag, Seite 162ff
[8] 64'er, Ausgabe 3/88, Markt und Technik Verlag
[9] 64'er, Ausgabe 4/88, Markt und Technik Verlag
[10] 64'er, "Kampf der Giganten", Ausgabe 6/88, Markt und Technik Verlag, Seite 30ff
[11] Anleitung Professional DOS Release 4 und 7 von 1986, siehe auch [1] und [15]
[12] Preisliste und Werbematerial zu Professional DOS, Datiert auf September/November 1986, siehe auch [1] und [15]
[13] 64'er, Ausgabe 3/87, Markt und Technik Verlag, Seite 125
[14] 64'er, Ausgabe 6/87, Markt und Technik Verlag, Seite 141
[15] Das iDOC-Projekt: eine Sammlung von alten Anleitungen rund um den C64 http://www.softwolves.pp.se/idoc/
[16] Demodiskette, die VTS Data späteren Professional DOS Versionen beilegte, siehe auch [1]

Version 1, veröffentlicht am 03.11.2002

Copyright (C) 2002 Tim Schürmann
Dieser Artikel wird unter der GNU Free Documentation License, http://www.gnu.org/licenses/fdl.html, veröffentlicht und kann frei kopiert werden, solange die Nennung des Autors und der Internetquelle ( http://www.tim-schuermann.de ) erhalten bleibt.