Commodore DOS

Commodore DOS is the name disks - of the operating system of the company Commodore, that in the floppy disk drives of the Commodore-8-Bit-Reihe (e.g. VC1540, VC1541, VC1570/71, VC1581, SFD1001, SFD1002 was used).

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 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 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 Aufgaben der CPU 2 (Dateisystem) liefen als Hauptprogramm ab, während die Aufgaben der CPU 1 (Hardwaresteuerung) in einer Interruptroutine erledigt wurden.

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
 

  > German to English > de.wikipedia.org (Machine translated into English)