Commodore DOS
Commodore DOS ist der Name des Disketten-Betriebssystems der Firma Commodore, das in den Diskettenlaufwerken der Commodore-8-Bit-Reihe (z.B. VC1540, VC1541, VC1570/71, VC1581, SFD1001, SFD1002) eingesetzt wurde.
Hardware der Diskettenlaufwerke
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 häufig ein einfacher Controllerchip, und 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 gehalten, zeichenorientierte (nicht blockorientierte) Software- und Hardware-Schnittstellen zu externen Geräten, während die vollständige Logik zum Kodiern/Dekodieren von Sektoren sowie die Dateisystem- und DOS-Befehlslogik im Diskettenlaufwerk realisiert war.
Commodore-8-Bit-Diskettenlaufwerkseinheiten ("Units") waren deshalb eigenständige Computer mit einer oder zwei vom eigentlichen Computer unabhängigen Prozessoren. Eine Unit verfügte über ein oder mehr Laufwerke ("Drives"). Es konnten mehrere Units an einen Computer angeschlossen werden. 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 innerhalb des Laufwerks.
Die ursprünglichen Modelle für die Commodore-PET-Reihe besaßen zwei symmetrische CPUs, 2 KiB RAM und 16 KiB 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 zunutzemachte - 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 CPU wurde mehrmals pro Sekunde zwischen Modus 1 und Modus 2 umgeschaltet.
Eigenschaften von Commodore DOS
Aktionen wie das Formatieren von Disketten, das Umbenennen, Löschen oder Kopieren (nur sinnvoll bei Geräten mit mehr als einem Laufwerk) von Dateien wurden also von Commdore DOS ausgeführt und liefen vollständig in der Laufwerkseinheit ab.
Jedes Laufwerk kann über die Schnittstelle zum Computer 15 virtuelle Kanäle (0-14) für Dateidaten unterhalten, d.h. der Computer kann auf einem Laufwerk bis zu 15 Dateien zum Lesen bzw. Schreiben offen halten. Kanal 15 ("Befehlskanal") hat für das Laufwerk eine Sonderbedeutung: Über ihn laufen Befehle vom Computer an Commodore DOS sowie Statusmeldungen in die andere Richtung. Auf Computerseite wird der Befehlskanal allerdings genau wie eine normale Datei behandelt.
Folgende Liste fasst einige wichtige Commodore-DOS-Befehle zusammen:
- "N:name,id" - Formatieren einer Diskette
- "N:name" - Löschen einer Diskette
- "R:neu=alt" - Umbenennen einer Datei
- "C:neu=alt" - Kopieren einer Datei
- "S:name" - Löschen einer Datei
- "L,kanalnummer position" - Aufsuchen einer bestimmten Position in einer Datei
- "I" - Initialisieren des Laufwerks in den Einschaltzustand
- "V" - Überprüfung des Dateisystems, ähnlich dem Scandisk von MS Windows