Laufwerksübersicht Viele haben sich seinerzeit gewundert, weshalb die Diskettenlaufwerke von Commodore fast teurer waren als die zugehörigen Computer. Das hat nichts mit dem Laufwerk zu tun, sondern mit der eingebauten Elektronik. Hinter jeder CBM-Floppy verbirgt sich nämlich ein vollwertiger Computer mit eigenem Prozessor , eigenem Speicher , eigenen Ein/Ausgabebausteinen und eigenem Betriebssystem . Ganz im Gegensatz zu etwa dem IBM PC, wo die Diskettenlaufwerke wirklich nicht mehr als bloße Laufwerke waren.

Warum das alles? Um den Computer zu entlasten. Sämtliche Funktionen, die bei einem heutigen PC das Rechnerbetriebssystem übernimmt, werden bei den Commodore-Laufwerken vom Diskettenlaufwerk erledigt. Dabei reicht die Palette vom Umbenennen und Kopieren von Dateien bis zum Formatieren von Disketten . All dies wird völlig eigenständig von der Floppy erledigt, und der Computer muß lediglich das Kommando dazu geben bzw. beim Speichern und Lesen zusätzlich noch die zu verarbeitenden Daten bereitstellen bzw. abholen. Der Computer kann zwischenzeitlich andere Aufgaben erledigen. Das dahinterstehende Buskonzept ermöglicht aber nicht nur, dass der Computer die Peripherie steuert, die Peripherie kann sich auch gegenseitig ansteuern. Etwa kann man einen Druckerspooler schreiben, der die zu druckenden Daten erst auf einer Diskette abspeichert, und dann dem Laufwerk den Befehl gibt, diese Daten an den Drucker zu schicken. Der größte Nachteil ist leider, dass nur eine Aufgabe gleichzeitig erledigt werden kann da es sonst zu Datenkollisionen auf dem Bus kommt.

Im Endeffekt entspricht die Beziehung von Computer und Peripherie bei den Commodore-Rechnern eher einem einfachen Bus-Netzwerk. Man kann die Peripherie sogar zum verteilten Rechnen verwenden, ein "C64-und-Floppy-Rechencluster" ist also durchaus realisierbar.

Ein weiterer Vorteil dieses Konzeptes ist es, dass die Computer und die Peripherie auf Softwareebene nichts voneinander wissen müssen. So ist eine Floppy 1581 auch mit dem VC20 kompatibel, obwohl dazwischen fast 7 Jahre liegen, bei den IEEE-Floppys sieht es ähnlich aus. Die Kommandos zum Formatieren, löschen von Dateien und ähnlichem haben sich über die Jahre nicht geändert.

Floppytypen

Neben dem Bussystem (siehe unten) gibt es zwei grundlegende Untertypen bei den Commodore-Laufwerken, die Einzellaufwerke und die Doppellaufwerke. Bei den Doppellaufwerken haben die Laufwerke die Nummern 0 und 1. Beim Lesen muß keine Laufwerksnummer angegeben werden, die Laufwerke werden nacheinander nach dem gewünschten Dateinamen durchsucht. Dies funktioniert natürlich nur wenn der Dateiname bei beiden Disketten einmalig ist. Beim Schreiben dagegen muß explizit die Laufwerksnummer angegeben werden. Sämtliche Doppellaufwerke verfügen über zwei 6502-kompatible Mikroprozessoren zur Steuerung der Laufwerke und Abwicklung der DOS-Funktionen.

Bei Einzellaufwerken gibt es nur ein Laufwerk mit der Nummer 0, das automatisch als Default-Wert angenommen wird, wenn keine Laufwerksnummer angegeben ist. Floppy Befehle, die versuchen, auf Laufwerk 1 zuzugreifen, werden mit Blinken der Fehlerlampe quittiert, bei den Behlen DLOAD und LOAD außerdem mit 'FILE NOT FOUND ERROR'. Der Befehl BACKUP sowie der Kommandostring DUPLICATE verursachen einen Syntax Error. Von der SFD 1001 abgesehen verfügen die Einzellaufwerke nur über einen Prozessor, der die Aufgaben der beiden CPUs in den Doppellaufwerken übernimmt.

Das Dateisystem, das Inhaltsverzeichnis, die Dateitypen und die Kodierung die mit diesen Laufwerken eingeführt wurden hatten bei allen Laufwerken bis hin zur VC 1571 Bestand, lediglich bei der VC 1581 gab es eine andere Kodierung (MFM) und Partitionen.

Floppy-Stammbaum

Laufwerksübersicht Zur Verdeutlichung der Beziehungen der Laufwerke untereinander habe ich eine Stammbaumgrafik angefertigt. Direkte Abkömmlinge sind mit einer grünen gestrichelten Linie horizontal verbunden, Weiterentwicklungen sind mit blauen durchgezogenen Linien vertikal verbunden. Abkömmlinge definiere ich hierbei als Geräte mit:

Alle anderen Änderungen wie aktuellere DOS-Versionen oder höhere Geschwindigkeiten und Kapazitäten stufe ich als Weiterentwicklungen ein.

Der parallele IEC-Bus über den IEEE-488 Bus

Der IEEE-488 Standard wurde wie viele andere auch vom "Institute of Electrical and Electronic Engineers" (IEEE) gesetzt. Es handelt sich dabei um einen Datenbus der zum Verbinden elektronischer Geräte mit einem Computer gedacht ist. Bis zu 15 Geräte können an diesen Bus nacheinander angeschlossen werden. Dieses Bussystem wurde hauptsächlich bei den Rechnern der PET-Reihe und bei den CBM-IIs verwendet. Auch gab es Adapterkarten für den C64 und VC-20.

Der serielle IEC-Bus

Der serielle IEC-Bus war eine preisgünstige serielle Alternative zum parallelen IEEE488-Bus. Hierbei wurden einfache Videoüberspielkabel verwendet, die damals sehr gängig und günstig zu haben waren. Dieser Bus ist langsamer als der IEEE-Bus, durch die "Gewaltenverteilung" Rechner / Floppy war das auch der einzige Nachteil, er brachte also keine Funktionseinschränkungen mit sich. Verwendung fand dieses Bussystem in allen Commodore Heimcomputern.

Die Peripherie hatte üblicherweise zwei Serielle Anschlüsse, ein Eingang und ein Ausgang, an den ein weiteres Gerät angeschlossen werden konnte.

Der Serielle IEC-Bus : Beispielkonfiguration

Im Gegensatz zur landläufigen Meinung, die seriellen IEC-Floppys wären nur aufgrund ihres seriellen Anschlusses so langsam, war es tatsächlich so, dass die schnelle serielle Übertragung durch einen Timing-Fehler in den neuen VIA 6522 I/O-Chips unmöglich gemacht wurde. Dadurch und auch durch die nachträgliche Änderung der DOS-Routinen kam auch die entsetzlich umständliche Programmierung des Übertragungsprotokolls. Sogenannte Software-Speeder holten durch ein effizienteres Bustiming die achtfache Geschwindigkeit heraus. Statt 2 Minuten für 40 KB brauchten sie nur 15 Sekunden! Dabei gibt es aber häufig Probleme mit weiteren Geräten am Bus, da die anderen Geräte die Kommunikation mit der Floppy mißverstehen und sich ebenfalls in die Kommunikation einschalten wollten und sie dadurch die Übertragung zwischen Rechner und Floppy stören. Daher funktionieren viele Schnellader nur einwandfrei, wenn kein anderes Gerät am Bus hängt bzw. eingeschaltet ist.

Aufzeichnungsformat

Bei der Aufzeichung auf Magnetische Datenträger muß die Tatsache berücksichtigt werden, dass der Lesekopf immer nur zwischen magnetischen Flußwechseln unterscheiden kann. Eine Reihe von 100 1er-Bits würde also keine Änderung des Signalpegels vom Lesekopf hervorrufen, erst bei der nächsten 0 tut sich wieder etwas. Auf den ersten Blick scheint das nicht so schlimm, da die Laufwerkstypen ja meist standardisiert sind. Man könnte also anhand der standardisierten Laufwerksdrehzahl bestimmen, wie lang ein einzelnes Bit ist und sich beim lesen einfach danach richten.

Leider besteht ein Laufwerk aus mechanischen Bauelementen, und Mechanik besitzt Toleranzen. Bei einer geringfügigen Abweichung der Laufwerksdrehzahl, die eher die Regel als die Ausnahme ist, könnten statt unseren 100 1er Bits auch 99 oder 102 oder werweißwasallesnoch Bits interpretiert werden. Daher benötigt man zuverlässigere Aufzeichnungsformate.

Das MFM-Format (Modified Frequency Modulation)

Dies ist die Weiterentwicklung des FM-Formats. Bei diesem wurde in den Datenstrom noch eine Art Referenztakt eingefügt, der vor jedem Bit, egal ob 1 oder 0, ein zusätzlicher Flußwechsel einfügt. Dadurch wurde die zu speichernde Datenmenge verdoppelt. Bei MFM wird bei jeder 1 und bei mehr als einer 0 am Stück ein Flußwechsel eingefügt, was zu einer Reduzierung des Datenaufkommens um 100% führt.

Die Sektorenanzahl pro Spur ist auf jeder Spur identisch.

Das GCR-Format (Group Code Recording)

Praktisch alle CBM-Floppys, mit Ausnahme der Amiga-Laufwerke und der 1571 zeichnen ihre Daten ausschließlich als GCR-Kodierten Datenstrom auf . Mehr als 10 1er Bits am Stück stellen dabei die sogenannte Sync-Markierung dar, die den Anfang einer Spur kennzeichnet. Um zu verhindern, dass normale Daten mit der Sync-Markierung verwechselt werden, macht man aus 4 Datenbits 5 und fügt an gewissen Stellen Nullen ein. Durch diese Kodierung wird die auf die Diskette zu bringende Datenmenge natürlich um 25% größer.

Binär GCR-Code Binär GCR-Code
0000 01010 1000 01001
0001 01011 1001 11001
0010 10010 1010 11010
0011 10011 1011 11011
0100 01110 1100 01101
0101 01111 1101 11101
0110 10110 1110 11110
0111 10111 1111 10101

Eine weitere Besonderheit der GCR-Kodierung ist die Tatsache, dass die Sektorenanzahl der Spuren sowie deren Datendichte nach außen hin zunimmt. Einige der großen CBM-Floppys wie etwa die CBM 8250 bringen es daher fertig, so viele Daten (1 MByte und mehr) auf einer DD-Diskette unterzubringen, wofür man bei "modernen PCs" mit der MFM-Kodierung eine HD-Diskette benötigt.

Der Nachteil dieses Verfahrens ist der recht hohe Aufwand beim Dekodieren und Kodieren der Daten, weshalb den Laufwerken unter anderem auch ein eigener Computer verpasst wurde.