CBM-Diskettenlaufwerke

Van Wikipedia, de gratis encyclopedie

CBM 4031, CBM 4040, CBM 8050

Die Commodore-Rechner der Serien PET 2001 bis CBM 8000 mit Ausnahme des CBM 8296D hatten keine eingebauten Diskettenlaufwerke. Alle Laufwerke mussten extern über den IEC-Bus angeschlossen werden. Die Diskettenlaufwerke der Heimcomputer (VC-20, C64 etc.), wie das VC1541, wurden von diesen Laufwerken abgeleitet. Die Unterschiede bestehen in der Schnittstelle (serieller CBM-Bus) und einer kostensparenden Konstruktion.

Hardware[Bearbeiten | Quelltext bearbeiten]

Hinsichtlich der grundsätzlichen Eigenschaften der Hardwarestruktur gelten die Angaben hier auch für die Festplatten CBM 9060 und CBM 9090.

Bei typischen Computersystemen jener Zeit, und im Prinzip bis heute, waren Diskettenlaufwerke fast direkt über den Prozessorbus angebunden. Um das Kodieren der Daten kümmerte sich entweder ein einfacher Controllerchip oder die Software des Betriebssystems, und auch das Dateisystem wurde vom Betriebssystem des Computers verwaltet.

Bei den Computern der Commodore-8-Bit-Reihe wählte man einen anderen Weg. Um die Kosten für den Computer, der anfangs häufig ohne Diskettenlaufwerk eingesetzt wurde, zu minimieren und die Anbindung von Laufwerken so flexibel wie möglich zu halten, verfügte der Computer nur über sehr einfache und allgemein gehaltene, zeichenorientierte (nicht blockorientierte) Software- und Hardware-Schnittstellen zu externen Geräten, während die vollständige Logik zum Kodieren/Dekodieren von Sektoren sowie die Dateisystem- und DOS-Befehlslogik im Diskettenlaufwerk realisiert war.

Commodore-8-Bit-Diskettenlaufwerkseinheiten („Units“) waren deshalb eigenständige Computer mit einem oder zwei vom eigentlichen Computer unabhängigen Prozessoren. Eine Unit verfügte über ein oder zwei Laufwerke („Drives“). Es konnten mehrere Units an einen Computer angeschlossen werden. Die Laufwerke wurden über den dafür vorgesehenen parallelen IEC-Bus angeschlossen. Commodore brauchte nach Start des ersten PETs noch einige Zeit, bis es die passenden Diskettenlaufwerke anbieten konnte.

Software[Bearbeiten | Quelltext bearbeiten]

Das Betriebssystem, das in diesen Laufwerken zum Einsatz kam, war Commodore DOS. Im Gegensatz zu den DOSen der meisten anderen damaligen Firmen war es nicht auf einer Diskette gespeichert, sondern in ROM-Chips (Firmware) innerhalb des Laufwerks.

Das DOS kannte noch keine Unterverzeichnisse, was bei den begrenzten Kapazitäten noch keine große Einschränkung darstellte. Im Vergleich zur konkurrierenden CP/M- und IBM-PC-Welt durften Dateinamen mit 16 Zeichen aber wesentlich länger sein und waren nicht der Beschränkung auf das 8+3-Muster unterworfen.

Neben dem Inhaltsverzeichnis gab es als weitere Organisationsstrukturen in den normalen, „sequentiellen“ Dateien (und genauso bei den Programmdateien) am Anfang jedes Datensektors (hier meist Block genannt) von insgesamt 256 Byte zwei Bytes mit einem Verweis auf Spur- und Sektornummer des Folgeblocks. Wenn eine Diskette also z. B. 644 Datenblocks fasst und jeder dieser Blocks 2 Pointer-Bytes und 254 nutzbare Datenbytes enthält, ergibt das knapp eine Nettokapazität von 170 KB.[1] Diese Struktur war simpler als das CP/M-Inhaltsverzeichnis oder die MS-DOS FAT, erlaubte es aber nicht, Teile einer Datei zu lesen, ohne zuvor sämtliche vorausgehenden Teile ebenfalls zu lesen (sequentieller Zugriff). Wurde so ein Direktzugriff auf eine beliebige Stelle in einer Datei – beispielsweise bei Datenbankanwendungen – doch benötigt, wurde ein spezieller Dateityp namens relative Datei mit separat gespeicherten Zeigern („Pointern“) auf die Datenblöcke der Datei verwendet.

Um den durchschnittlichen Datenzugriff zu beschleunigen, wurde die Verzeichnis-Spur in die Mitte der Diskette gelegt, so dass von dort aus nur maximal der halbe Diskettenradius bis zum jeweiligen Dateianfang überfahren werden musste.

Die Befehle vom Computer zum Diskettenlaufwerk waren praktisch in Klartextkürzeln gefasst, die über den IEC-Bus (parallel oder seriell) gesendet wurden.

Aufbau der Laufwerke[Bearbeiten | Quelltext bearbeiten]

Mit Ausnahme der eher seltenen 8060/61/62- und 8280-Geräte, die 8-Zoll-Laufwerke verwendeten, basierten alle angebotenen Geräte auf 5,25-Zoll-Laufwerken.

Um die Datenkapazität möglichst effizient auszuschöpfen, wurden zwei Maßnahmen ergriffen: Zum einen wurde das GCR-Schreibverfahren (statt MFM) verwendet, womit man für 4 Netto-Bits 5 Brutto-Bits schreiben muss, während es bei MFM 8 gewesen wären. Zum anderen wurden auf die äußeren, längeren Spuren mehr Daten gepackt, indem die Schreibgeschwindigkeit (der Schreibtakt) dort erhöht wurde. Dadurch konnte die Rotationsgeschwindigkeit konstant gelassen werden, was die mechanische Konstruktion nicht verkomplizierte. Um die Schreibtaktumschaltung einfach zu halten, wurde zwischen vier verschiedenen Geschwindigkeitsstufen für bestimmte Spurbereiche umgeschaltet.

Mit diesen Maßnahmen konnte auf 5¼-Zoll-Disketten einfacher Schreibdichte („Single Density“, SD), die einseitig benutzt wurden, 170 KB[1] gespeichert werden, auf den späteren Laufwerken mit doppelseitigem Betrieb höherer Schreibdichte (aber immer noch mit SD-Diskettenmaterial) sogar bis zu 1 MB.

Die ursprünglichen Modelle für die Commodore-PET-Reihe besaßen zwei symmetrische CPUs (ebenfalls aus der 6502-Familie), 2 KB RAM und 16 KB ROM. CPU 1 realisierte die Logik, um Sektoren zu lesen und zu schreiben, während CPU 2 sich um die Dateisystemlogik sowie um die Kommunikation mit dem Computer kümmerte. Die Kommunikation zwischen den beiden Prozessoren fand über den Hauptspeicher statt: CPU 2 schrieb Befehls-Tupel (Aktion, Drive, Spur, Sektor, Speicheradresse) in einen definierten Speicherbereich, die CPU 1 auslas, ausführte und das Befehls-Tupel mit dem Ergebniscode überschrieb. Die beiden CPUs konnten dabei gleichzeitig denselben Speicher verwenden, indem man sich eine spezielle Eigenschaft der 6502-Prozessoren zunutze machte – diese greifen nur in einer der beiden Hälften jedes Taktzyklus auf den Systembus zu. Die CPUs wurden nun so verschaltet, dass CPU 1 jeweils in der ersten Takthälfte und CPU 2 in der zweiten Takthälfte den Bus benutzte, ganz genauso wie sich in den Commodore-Computern selbst der Prozessor und der Videochip den Bus teilten.

Spätere Geräte verfügten über nur ein Laufwerk, und die zweite CPU wurde aus Kostengründen eingespart. Die einzelne CPU übernahm beide Aufgaben, die ursprüngliche Konzeption des Systems blieb dabei allerdings bestehen: Die Aufgaben der CPU 2 (Dateisystem) liefen als Hauptprogramm ab, während die Aufgaben der CPU 1 (Hardwaresteuerung) in einer Interruptroutine erledigt wurden. Die CPU kommuniziert dabei weiterhin über Befehls-Tupel mit sich selbst.

Modellentwicklung[Bearbeiten | Quelltext bearbeiten]

CBM 4040

Die ersten Modelle waren durchweg 5,25-Zoll-Doppel-Diskettengeräte mit paralleler IEC-Bus-Schnittstelle. Zum PET 2001 sollte die CBM 2020 passen. Es war eine typische Erstausführung mit diversen Programmfehlern. Es ist unsicher, ob sie in Deutschland jemals verkauft wurde. Sie wurde von der CBM 2040 abgelöst, mit überarbeiteten ROMs, DOS 1 und 670 Blöcken für Benutzerdateien. Verwendet wurde ein VC1541-ähnliches Format, die von ihr beschriebenen Disketten sind damit lesbar auf den späteren Modellen CBM 3040, CBM 4040, CBM 2031, CBM 4031, VC 1540, VC 1541, VC 1551, VC 1570 und VC 1571. Das erste Modell in nennenswerten Stückzahlen wurde die CBM 3040, immer noch auf der CBM 2040 aufbauend, passend zur CBM-3xxx-Serie.

Für die CBM-4000-Serie kam dann die CBM 4040, mit überarbeitetem DOS 2.5/2.7, 664 Blöcken für Benutzerdateien, "Relativen Dateien" (die neben dem sequentiellen auch wahlfreien Zugriff erlauben), lese- und schreibkompatibel zu CBM 4031, CBM 2031, VC1541, VC1551, VC1570 und VC1571, Kapazität 2 × 170 kB.[1]

Die Spurdichte bei allen diesen bisher genannten Modellen entsprach dem Industriestandard von 48 tpi, so dass als Diskettenmaterial SD-Disketten Verwendung finden konnten.

Für die CBM-8000-Serie wollte man mehr Kapazität anbieten und entwickelte die CBM 8050 – einseitig schreibend, vierfache Schreibdichte, 100 TPI (also mehr als das Doppelte der Vorgängermodelle), Kapazität damit 2 × 500 kB. Sie war nicht rückwärtskompatibel, konnte also die Disketten der Vorgängermodelle nicht lesen. Etwas später wurde sie von der CBM 8250 übertroffen – beidseitig schreibend, vierfache Schreibdichte, Kapazität also 2 × 1 MB. Dieses Laufwerk gab es anschließend vor allem als CBM 8250LP – wie CBM 8250, aber in „Low Profile“ – neuem, flacherem Design, passend zur CBM-Pet-II-Serie. Alle diese Laufwerke waren trotz ihrer erhöhten Schreibdichte weiter auf SD-Disketten (nur jetzt in doppelseitigem Betrieb, Double Sided, DS, also DS SD) ausgelegt und versagten regelrecht bei HD-Diskettenmaterial, weil dieses höhere Schreibströme benötigt hätte. Dies war eine Quelle für zahlreiche Missverständnisse und Fehler bei Benutzern. Die Spurdichte von 100 TPI war der Grund dafür, dass kein Konkurrenzrechner solche Disketten auch nur physisch lesen konnte, denn deren Laufwerke arbeiteten standardmäßig mit einer Spurdichte von 96 TPI. Dieser Parameter ist durch den mechanischen Aufbau des Laufwerks festgelegt und kann daher nicht durch geschickte Treiberprogrammierung angepasst werden.

Neben diesen Standardausführungen mit Doppellaufwerken wurden auch Parallelmodelle als 5¼-Zoll-Einzel-Diskettengeräte mit IEC-Bus-Schnittstelle angeboten, wie die CBM 4031 (CBM 4040 in 1 × 170 kB), CBM 2031 (CBM 4031 in „low Profile“ – in neuem Design wie VC1541, wie diese nur mit einem Mikroprozessor 6502) und die SFD 1001 (CBM 8250LP in 1 × 1 MB, s. a. SFD100x).

Zum Datenaustausch mit IBM-Groß- und -Mini-Rechnern wurde auch ein 8-Zoll-Doppel-Diskettengerät mit IEC-Bus-Schnittstelle herausgebracht, die CBM 8280 – mit 2 × 1 MB oder 512 kB. Hiervon existierte aber nur eine sehr geringe Anzahl.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Commons: Commodore floppy disk drives – Sammlung von Bildern, Videos und Audiodateien

Anmerkungen[Bearbeiten | Quelltext bearbeiten]

  1. a b c Im Gegensatz zu Festplatten werden die Kapazitäten von Disketten in Zweierpotenzen notiert. Die Einheit „KB“ steht hier für die auch Kibibyte genannte Einheit von 210 = 1024 Byte.