# VC15xx

Die VC 15xx-Linie ist eine Modellreihe von Diskettenlaufwerken, die von Commodore für seine 8-Bit-Heimcomputer (u. a. VC 20, C64, C128) hergestellt wurden. Das Ursprungsmodell 1540 basiert auf dem CBM 4040, einem Doppellaufwerk, das für den Einsatz bei Heimcomputern aus Kostengründen um ein Laufwerk reduziert und mit einer seriellen Variante des parallelen IEEE-488-Busses (CBM-Bus) versehen wurde. Die Besonderheit dieser Laufwerke ist, dass in ihrem Inneren ein eigenständiger Computer (mit CPU) arbeitet. Deshalb waren sie auch sehr teuer. Dafür benötigten die Rechner, an die sie angeschlossen wurden, kein DOS und konnten somit billiger verkauft werden. Die Laufwerke enthielten selbst ein Betriebssystem, das Commodore DOS. Einige rechenintensive Programme nutzten die Rechenkapazität des Diskettenlaufwerks derart, dass der dort enthaltene Prozessor, der genauso schnell war wie der des C64, an aufwändigen Rechenaufgaben beteiligt wurde. Die Ergebnisse wurden dann über die serielle Schnittstelle zurück an dem Computer gegeben und man hatte theoretisch die doppelte Rechenkapazität.

## Modelle

* Serienmodelle:
** 1540: Konzipiert für den VC 20, ein Schreib-/Lesekopf, 170 KB Kapazität, Aufzeichnungsverfahren GCR
** 1541, 1541C, 1541-II: Konzipiert für den C64, auch am C128 und Plus/4 verwendbar. Die 1541 ist eine für den Betrieb am C64 modifizierte 1540.
** 1551: Konzipiert für den Plus/4, wie die 1540/1541, nur mit schnellerer paralleler Datenübertragung zum Rechner
** 1570: Konzipiert für den C128, ein Schreib-/Lesekopf, schnellere Datenübertragung, verbessertes DOS. Verwendete neben GCR auch das MFM-Verfahren zur Datenaufzeichnung und konnte so auch für den Datenaustausch mit CP/M- und MS-DOS-Computern eingesetzt werden. Die Modell 1570 war eine Notlösung, weil die eigentlich für den C128 gedachte 1571 nicht rechtzeitig fertig wurde. Sie war im Prinzip eine abgespeckte 1571 im 1541er-Gehäuse.
** 1571: Wie die 1570 aber mit zwei Schreib-/Leseköpfen, so dass die Disketten beidseitig ohne Umdrehen beschreibbar waren.
** 1581: Das erste 3½"-Laufwerk für den C64 und C128, 800 KB Kapazität, Aufzeichnungsverfahren MFM
* Prototypen:
** 1541D: 1541 mit zwei Laufwerken in einem Gehäuse.
** 1542: Wie eine 1541, jedoch für den Plus/4 gedacht. Wurde auf der CES 1984 vorgestellt, aber nie in Serie gefertigt.
** 1543/1541H: 1541 für High Density-Disketten.
** 1561: Ähnlich wie die 1581 ein 3½"-Zoll-Laufwerk, genaueres ist nicht bekannt. Für den Commodore LCD gedacht.
** 1563: Ähnlich wie die 1581 ein 3½"-Laufwerk, genaueres ist nicht bekannt. Für den C128 gedacht.
** 1565: Ein 3½"-Laufwerk für den C65, nie offiziell verkauft.
** 1572: Die 1571 mit zwei Laufwerken in einem Gehäuse.
** 1582/1590/1591: HighDensity-Versionen der 1581.
** SFS 481: Wurde später als 1551 hergestellt.

## Datenübertragung

Standardmäßig benutzten die Laufwerke (Ausnahme: VC1551) den CBM-Bus, eine bitserielle Version des IEEE-488-Protokolles. Ursprünglich sollte die Datenübertragung über ein serielles Schieberegister des Ein/Ausgabe-Bausteins VIA (MOS Technologies 6522) erfolgen. Aufgrund eines Designfehlers in diesem Chip war Commodore aber gezwungen, die Übertragung softwaremäßig zu implementieren, was mit einer stark reduzierten Geschwindigkeit einherging. Erst mit der 1570/1571 wurde dieses Problem teilweise behoben.
Die Laufwerke mit seriellem CBM-Bus können mit einem einfachen Kabel an den Parallelport eines PC angeschlossen werden. Bauanleitungen findet man im Internet. Mit einem entsprechenden Treiber können so z. B. alte C64-Disketten gelesen werden. Ein Einlesen und Beschreiben der 5¼"-Disketten mit einem herkömmlichen PC-Laufwerk ist mit alternativen Disk-Controllern (z. B. der Catweasel-Controller) möglich. Eine weitere Möglichkeit zum Einlesen existiert mit dem Tool Disk2FDI, welches jedoch spezielle Anforderungen an die PC-Hardware stellt.

## Dateisystem

Eine Diskette wurde eingeteilt in Tracks (Spuren) und jede Spur wiederum in Sektoren. Jeder Sektor bildete einen Datenblock zu 256 Byte, der mittels Track-Nummer (beginnend bei 1, die Null hatte eine besondere Bedeutung) und der Sektor-Nummer (beginnend mit 0) adressiert wurde. Ein belegter Block sah folgendermaßen aus: [TR-Next, SCT-Next, Data 1,...,Data 254]. TR-Next gab die Track-Nummer des nachfolgenden Datenblocks der Datei an, SCT-Next entsprechend die Sektornummer. Handelte es sich um den letzten Datenblock einer Datei, war TR-Next Null und SCT-Next enthielt die Anzahl der noch gültigen Datenbytes. Die restlichen 254 Bytes enthielten die eigentlichen Daten. Die am Medium freien und belegten Datenblöcke wurden dazu in einer Bit-Map, der sogenannten Block Availability Map (BAM) vermerkt (Bit mit Wert 0 für frei und Wert 1 für belegt).
Ein Problem dieser Struktur war, dass Daten nur sequentiell, d. h. fortlaufend, gelesen oder beschrieben werden konnten. Zur Behebung dieses Problems gab es einen speziellen Dateityp, die REL-Dateien (REL für relativ), die über eine so genannte „Side-Sector“-Tabelle (in entsprechend separaten Datenblöcken) verfügten, in der die physische Position aller Datenblöcke eingetragen waren, wodurch die Position eines jeden Datensatzes (engl. record) unmittelbar ermitteln ließ. Ein solcher Datensatz war für eine konkrete REL-Datei mit einer Größe zwischen 1 und 254 Bytes wählbar.
Auf einer Diskette konnten bis zu 144 Dateien gespeichert werden. Es gab keine Unterverzeichnisse, lediglich bei der 1581 war es möglich, mehrere Partitionen anzulegen. Die Dateinamen konnten bis zu 16 Zeichen lang sein und auch Sonderzeichen (sogar Steuerzeichen) enthalten. Ausnahmen waren nur das Komma und der Doppelpunkt. Unterschieden wurden 4 Dateitypen: PRG für Programme, SEQ für sequentielle Dateien, USR (User-Dateien) und REL für Dateien mit relativem (=wahlfreiem) Zugriff, wobei sich aber nur die REL-Dateien in der Speicherung unterschieden (siehe vorigen Absatz). Bei der 1581 kam noch CBM für die Partitionen dazu.