# VC1581

Die VC 1581 ist ein 3,5-Zoll-Diskettenlaufwerk für die Commodore-Heimcomputer C64, C16, C116, Plus/4 und C128. Das vom Laufwerk verwendete MFM-Format ermöglicht die Speicherung von 800 kB (zum Vergleich: MS-DOS 3,5″-DD-Disketten 720 kB, Amiga-DD-Disketten 880 kB).

## Charakteristika
### Äußeres & Allgemeines

Die 1581 besitzt ein beiges Gehäuse ähnlich der 1541 II und wie diese ein separates Netzteil. Das Gerät ist etwas breiter als und etwa doppelt so hoch wie die eigentliche Laufwerksmechanik. Es arbeitet schneller und leiser als die Vorgängermodelle.
Das Laufwerk hat an der Rückseite zwei DIP-Schalter zum Einstellen der Geräteadresse auf dem CBM-Bus im Bereich von 8 bis 11. Es verfügt, wie die VC1571, über einen Burst-Modus zur schnellen Datenübertragung, der einen C128 oder einen C64 mit Hardware-Modifikationen voraussetzt und dann eine bis zu 30-mal schnellere Datenübertragung als mit der VC1541 ermöglicht.

### Hardware

Wie alle Floppy-Laufwerke von Commodore für seine 8-Bit-Computer ist die 1581 ein eigenständiger Computer, hier mit einem 6502-Prozessor (mit 2 MHz getaktet) und 8 KB RAM (s. u.). Die Fähigkeiten des Laufwerks als Computer waren seinerzeit deutlich größer als die mancher Commodore-Computer (z. B. Geschwindigkeit des C64 ca. 1 MHz, Speicher des VC20 5 KB). Deswegen, und aufgrund der für ein Laufwerk recht großzügigen Speicherausstattung, gab es sogar Programme, die rechenintensive Aufgaben in das Diskettenlaufwerk verlagerten.
Neben der Steuerplatine besteht die 1581-Hardware im Prinzip aus einem DoubleDensity-Laufwerk, das sich problemlos durch ein Amiga-HD-Laufwerk austauschen lässt. Allerdings funktioniert auch dieses dann nur mit DD-Disketten, da das Betriebs-ROM in der 1581 sonst geändert werden müsste.
Frühe Modelle verwendeten den WD1770-Controller von Western Digital, jedoch kam es bei diesem (auch in der 1571 verwendeten) Chip mitunter zu Problemen, so dass spätere 1581 einen WD1772 besitzen. Der Umtausch kann problemlos nachträglich erfolgen.
Die 1581 verwendet, anders als die anderen Floppy-Laufwerke von Commodore, stets ein Modified-Frequency-Modulation-Format (MFM) für die Datenaufzeichnung. MFM wird auch von PC-Floppy-Controllern verwendet; mit Hilfe spezieller Software kann ein PC das spezifische MFM-Format der 1581 lesen und schreiben. Dies stellt eine einfache Möglichkeit des Datenaustauschs zwischen Commodore-Rechnern und PCs dar. Voraussetzung ist nur, dass der PC-Floppy-Controller für die CPU des PC auf Registerebene ansprechbar ist, was bei Onboard-Controllern oder solchen auf ISA- oder VLB-Steckkarten der Fall ist. USB-Diskettenlaufwerke für PCs können das Format dagegen nicht verarbeiten, weil hier dem PC der direkte Zugriff auf den Controllerchip nicht möglich ist. In diesem Fall bleibt nur die Möglichkeit, mit dem PC normale 720-KB-MS-DOS-Disketten zu erzeugen und commodoreseitig eine spezielle Software zum Lesen dieses Formats zu verwenden.

### Firmware

Intern verwendet die 1581 Commodore DOS Version 10, das sich trotz prinzipieller Abwärtskompatibilität der dokumentierten Befehle merklich von allen früheren Versionen unterscheidet. Disketten werden mit dem Kennzeichen „3D“ formatiert und bieten 3160 freie Blocks und 288 Directoryeinträge (pro Verzeichnis, vgl. 154x/157× 144 Einträge). Der „Save with Replace“-Bug ist korrigiert, auch gibt es gegenüber älteren Versionen keine Probleme mehr mit relativen (REL) Dateien, die bei der 1581 den gesamten freien Speicherplatz einnehmen können. Insgesamt ist das DOS stabiler als viele ältere Versionen, jedoch gibt es auch hier Befehle mit gravierenden Bugs, die zu Datenverlust führen können. Es existieren zwei Versionen der Firmware, die sich aber nur minimal unterscheiden.

#### Unterverzeichnisse

Als einzige Version von CBM-DOS besitzt diese eine Art Unterverzeichnisse, es sind aber in Wirklichkeit Partitionen, die zum Schutz von Sektoren gegen Überschreiben oder Austragen durch das DOS beim Bereinigen der BAM („Validieren“) verwendet werden können. Diese Partitionen können minimal einen Block groß sein (etwa zum Schutz eines C128-Bootblocks) und maximal so groß, wie durchgängig freier Speicher auf der Diskette vorhanden ist, also bei einer leeren Diskette etwa die Hälfte der Diskette, da auf der logischen Spur 40 das Directory liegt. Ist eine Partition groß genug (minimal 3 Spuren oder 120 Blocks) kann sie formatiert und als „Unterverzeichnis“ mit fester Datenkapazität verwendet werden. Partitionen werden im darüberliegenden Verzeichnis mit dem Dateityp „CBM“ markiert.

#### Autoload

Befindet sich beim Einschalten oder Zurücksetzen des Laufwerks eine USR-Datei auf einer eingelegten Diskette, die den festgelegten Namen "COPYRIGHT CBM 86" trägt und ein bestimmtes internes Format hat, so wird diese automatisch in einen bestimmten Speicherbereich des Laufwerks-RAM gelesen und ausgeführt. Von Commodore wurde das für die CP/M-Disketten für den C128 genutzt, bei entsprechender Programmierung ließen sich so auch Schnelllader direkt in das Laufwerks-RAM einbringen, ohne diese zuvor explizit auf den Rechner laden zu müssen.
Diese Fähigkeit ist eine rein laufwerksseitige und ist nicht zu verwechseln mit der Bootfähigkeit des C128, bei welcher von Computerseite aus ein Sektor der Diskette in das Rechner-RAM geladen und je nach Inhalt auch ausgeführt wird.

#### Parallelroutinen

Unerklärlicherweise existieren im ROM auch Routinen zur parallelen Datenübertragung, obwohl diese hardwareseitig nicht vorgesehen und auch nicht angekündigt worden war – eventuell plante CBM, dasselbe DOS in späteren Laufwerken, wie der nicht mehr erschienenen 1591, zu verwenden.

#### Easter Eggs

Es existieren die undokumentierten DOS-Befehle „B-*“ und „B-?“, die auf dem Fehlerkanal Credits der Programmierer und eine Widmung ausgeben.

## Datenorganisation

* Physikalisch (aus Sicht des WD177x-Controllers) besteht eine 1581-Diskette aus 80 Zylindern zu je 20 Sektoren (also zu 80 Spuren je Seite zu je 10 Sektoren) zu je 512 Bytes.
* Logisch dagegen (aus der Sicht des Anwenders, Computers oder höherer Ebenen des 1581-DOS) besteht eine 1581-Diskette aus 80 Spuren à 40 Sektoren zu 256 Bytes.
Die geringere logische Sektorgröße (man könnte von einer Clustergröße von 0,5 Sektoren sprechen) wird aus Gründen der Kompatibilität mit den älteren Laufwerken erzeugt, auch weil das DOS sonst stark hätte umstrukturiert werden müssen (bei einer Größe von 256 Bytes reicht 1 Byte als Pointer). Um trotzdem eine effiziente Datenverwaltung zu gewährleisten, wird eine gesamte Spur (alle Sektoren eines Tracks auf Ober- oder Unterseite) im Speicher gepuffert. Zu diesem Zweck besitzt das Laufwerk 8 KB RAM.
Auf eine 1581-formatierte Diskette passen somit 800 KB Daten („brutto“). Da zwei Bytes pro Sektor als Pointer zum nächsten logischen Sektor dienen und eine Spur (10 KB) für das Directory und andere interne Informationen (z. B. BAM, Block Availability Map) reserviert sind, verbleiben 79·40·254=802.640 Bytes (3160 Blocks oder knapp 784 KB) an Speicher für Benutzerdaten („netto“), sofern keine weiteren Partitionen eingerichtet werden.

## Schnelllader, Kopierschutz, Third-Party-DOS

Aufgrund der fundamentalen Unterschiede bei Timing, Format und Firmware funktionieren die meisten C64-Schnelllader oder Programme mit Kopierschutz nicht mit der 1581. Auch Spiele oder generell Programme, die auf das Laufwerk zugreifen, um z. B. weitere Teile nachzuladen, laufen nur, wenn sie ausschließlich die offiziellen I/O-Routinen des Computers und DOS-Befehle verwenden und nicht auf Low-Level-Hardwareebene operieren. Da sich mit späteren Laufwerken (CMD FD, HD, RAMLink etc.) derartige Probleme häuften, existieren von vielen Programmen (meist inoffiziell erstellte) laufwerksunabhängige Versionen, die sich natürlich auch gut für die 1581 eignen.
Ein Schnelllader speziell für die 1581 ist auf der mitgelieferten Test-/Demodiskette enthalten. Die Fastloader des Action-Replay-6, des Super-Snapshot 5 und des Nordic-Power Moduls laufen ohne weiteres mit der 1581. Die Schnelllader des Final-Cartridge-3 und des Mach-5 Moduls funktionieren hingegen nicht.
Wegen der im Vergleich zu den 5,25″-Laufwerken geringen Verbreitung erschienen nicht sehr viele Austausch-Betriebssysteme von Dritten für die 1581. Jedoch gibt es z. B. JiffyDOS für dieses Laufwerk, das die bekannten Softwareprobleme bei nahezu vollständiger Kompatibilität beseitigt.

## Spezifikationen

* Diskettentyp: 3½ Zoll
* Aufzeichnungsformat: MFM, doppelseitig, doppelte Dichte
* Kapazität: 1 MB unformatiert, 790 KB formatiert (theoretisch) bzw. ca. 784 KB (praktisch)
* CPU: MOS Technologies 6502 @ 2 MHz
* RAM: 8 KB
* ROM: 32 KB
* Transfer-Protokolle: Standard (wie 1541) und schnelles serielles (wie 157x, mit C128); Burst-Modus (mit C128); theoretisch auch parallel (über Hardwaremodifikationen im Eigenbau)
* Interface: 2× CBM-Bus über sechspolige DIN-Stecker („serielles IEEE-488“, „IEC-BUS“)