# VC1541

Die VC 1541 ist ein 5¼-Zoll-Diskettenlaufwerk für den Heimcomputer C64 von Commodore. Sie kam 1982 auf den Markt und wurde das erfolgreichste Modell der VC15xx-Serie. Die 1541 besitzt nur einen Schreib/Lese-Kopf und kann daher Disketten nur einseitig beschreiben. Um die volle Kapazität einer Diskette zu nutzen, kann man diese zum Beispiel mittels eines Diskettenlochers mit einer zusätzlichen Schreib/Lese-Kerbe an der linken Seite versehen. Auf einer solcherart modifizierten Diskette können dann durch Umdrehen weitere 165 KB gespeichert werden.
Wie die anderen Diskettenlaufwerke der Commodore-8-Bit-Modellserien ist die 1541 ein eigenständiger Computer. Als CPU wurde der 6502 verwendet, ein naher Verwandter des im C64 eingesetzten 6510. Man konnte die beiden bei trickreicher Programmierung parallel rechnen lassen (auch wenn diese Möglichkeit nur von sehr wenigen Programmen verwendet wurde).

## Format

Die Datenspeicherung erfolgt auf 35 Spuren mit je 17 bis 21 Sektoren zu 256 Byte (Zone Bit Recording). Die ersten zwei Byte jedes Sektors sowie Spur 18 ist für die Verwaltung reserviert (Inhaltsverzeichnis, Belegungsplan „Block Availability Map“ BAM), so dass 664 Sektoren bzw. 168.656 Byte für Nutzdaten verwendet werden können.

## Firmware

Das Betriebssystem des Laufwerks, CBM DOS v2.6, eine abgespeckte Version der Vorgängerlaufwerke der CBM-Serie, enthält eine Reihe von Fehlern. Der bekannteste ist der sogenannte „SAVE @“-Bug. Das „SAVE @“ dient zum Überschreiben von Dateien mit einem neuen Inhalt unter Beibehaltung des Dateinamens. War auf der Diskette vor dem Speichern weniger freier Speicherplatz vorhanden als für die Speicherung der neuen Dateiversion notwendig war, kam es zu einer Zerstörung des Disketteninhaltes. Da dieser Fehler bald bekannt wurde, benutzen die meisten Commodore-Programme stattdessen den „Scratch“-Befehl, um Dateien zu löschen und schrieben sie dann mit dem normalen SAVE-Befehl neu.
Das Betriebssystem übernimmt in der 1541 auch hardwaretechnische Steuerungsaufgaben, da die Hardware selbst möglichst simpel gehalten werden sollte. Das Laufwerk verwendet eine GCR-Kodierung, mit dem die Daten auf die Diskette geschrieben werden, indem die Bytes beim Schreiben zunächst von der Firmware in 10-Bit-Werte umkodiert werden und beim Lesen entsprechend umgekehrt. Der Beginn (Sync) einer aufgezeichneten Bytefolge (Datenblock-Kopf oder Datenblock-Inhalt) wird allerdings, anders als etwa beim Apple II, hardwaremäßig erkannt.
Auch die unterschiedliche Länge der Spuren, je nach Abstand des Lesekopfes vom Diskettenmittelpunkt, wird von der Software ausgenutzt. Auf den weiter außen liegenden Spuren werden mehr Daten untergebracht, indem die Bitrate in vier Stufen angepasst wird (die Bitraten werden dabei an sich in der Hardware erzeugt, jedoch wird per Software zwischen ihnen umgeschaltet). Das bedeutet, dass die Oberfläche radial in vier Zonen geteilt ist, die unterschiedliche Zahlen von Sektoren je Spur haben.

## Schnittstelle

Die VC1541 verwendet ein proprietäres serialisiertes Derivat der parallelen IEEE-488-Schnittstelle, das Commodore auf seinen vorherigen Laufwerken für die PET/CBM-Reihe von Personal- und Business-Computern verwendet hat. Als damals der VIC-20 in der Entwicklung war, war das billiger. Es wurde nach einer Alternative zu den teuren IEEE-488-Kabeln gesucht. Um eine kostengünstige Verbindung der Heimcomputer-Peripheriegeräte zu gewährleisten, wählte Commodore Standard-DIN-Steckverbinder für die serielle Schnittstelle, Diskettenlaufwerke und andere Peripheriegeräte, z. B. Drucker, die über eine Reihenschaltung mit dem Computer verbunden sind und nur einen einzigen Anschluss am Computer selbst erfordern.

## Technische Schwächen
### Langsamkeit und Floppy-Speeder

Geradezu sprichwörtlich war die Langsamkeit der 1541 (deshalb unter Usern auch Schneckenkarussell genannt). Bereits das Lesen der Daten von der Diskette in den internen Speicher des Laufwerks war nicht optimal gestaltet. Vor allem aber war die Langsamkeit durch die umständliche Programmierung der Datenübertragung zwischen Laufwerk und Rechner über den seriellen CBM-Bus bedingt. Diese wurde ursprünglich für die zum VC 20 passende VC1540 entwickelt, da der damals im VC-20 eingesetzte Interface-Chip MOS 6522 VIA einen Fehler in der automatischen seriellen Übertragung enthielt (in unregelmäßigen Abständen wurden 9 statt 8 Bit übertragen). Daher wurde die Übertragung so organisiert, dass jedes einzelne Bit vom Prozessor explizit übertragen werden muss – ein äußerst langsamer Prozess. Bei dem kleinen Speicher des VC-20 machte das nicht so viel aus wie später beim C64. Der Interface-Chip des C64, der MOS 6526 CIA, enthielt diesen Fehler zwar nicht, aber zwecks Rückwärtskompatibilität zu den VC1540-Laufwerken (die ebenfalls den fehlerhaften 6522 enthielten) entschloss man sich, für den C64 kein ganz neues Laufwerk zu entwickeln.
Darüber hinaus wurde die Übertragungsrate in der 1541 im Vergleich zur 1540 nochmals künstlich reduziert, um durch den VIC-II-Chip verursachte Timingprobleme des C64 zu umgehen. Anders als der VIC I des VC-20 stoppt der VIC II von Zeit zu Zeit den Prozessor für bis zu 40 Mikrosekunden, um Grafikdaten aus dem Speicher zu lesen. Somit musste sichergestellt werden, dass das Laufwerk jedes Bit deutlich länger als 40 µs auf den Bus legte, damit es nicht verlorengehen konnte. Das wurde durch eine leichte Änderung der Firmware erreicht; im Hardwareaufbau sind die 1540 und frühe 1541-Laufwerke ansonsten identisch.
Mit Hilfe sogenannter Floppy-Speeder, trickreich programmierter Übertragungsprogramme (z. B. Hypra Load), die auf das komplizierte Protokoll auf der seriellen Leitung verzichten oder alternativ über einen getrennten parallelen Bus übertragen, kann die Übertragungsgeschwindigkeit von 300 Bytes/s auf teilweise über 10 kB/s gesteigert werden. Die Floppy-Speeder-Software wurde teilweise, zusammen mit noch anderen Features (Funktionstastenbelegung etc.) ins Betriebssystem integriert, was einen Wechsel des ROM-Bausteins im C64 und in der 1541 erforderlich machte. Daneben gab es Floppy-Speeder als Steckmodule für den Computer (der laufwerksseitige Code wurde in diesem Fall bei jedem Ladevorgang ins RAM des Laufwerks übertragen) und rein softwaremäßige, die schon bald auch in die meisten kommerziellen Programme für den C64 integriert wurden.
Eine parallele Datenübertragung wurde durch Nutzung des Userport am C64 und eines freien 8-Bit-Ports eines 6522-Portbausteines in der 1541 realisiert. Das Ganze erledigten Umbausätze, wie zum Beispiel das bekannte SpeedDOS: Zwei Eproms mit modifizierten Betriebssystemen für den C64 und das Laufwerk 1541 und ein paralleles Datenkabel vom Userport des C64 zur Floppy. Der Befehlsaustausch zwischen Rechner und Diskettenlaufwerk mittels des seriellen Busses wurde beibehalten, zusätzlich wurde mit dem Parallelkabel ein „HiSpeed-Bus“ gelegt. Da das mit Extrakosten für zusätzliche Hardware verbunden war, war diese Realisierung bei weitem nicht so verbreitet wie der rein softwarebasierte Ansatz.
Im Zuge dieser Modifikationen zur Beschleunigung gab es angesichts gefallener RAM-Preise später sogar eine Platine zum Einbau in die 1541, die eine komplette Diskettenspur (und in einer noch späteren Version einen ganzen Disketteninhalt) im eigenen RAM (also als Cache) speicherte und dann mit hoher Geschwindigkeit mit dem Rechner austauschen konnte.

### Weitere Probleme

Weitere negative Eigenschaften sind die durch das interne Netzteil hervorgerufenen Überhitzungsprobleme sowie in der ersten Generation das charakteristische Rattern, das beim Anschlagen des Schreib/Lesekopfes an Spur 0 entsteht. Einen Spur-0-Sensor hatte Commodore gespart, deshalb wird beim Formatieren oder bei Lesefehlern der Kopfschlitten – unabhängig von seiner Position – einfach 40 Spuren nach außen gefahren, wobei ein mechanischer Anschlag verhindert, dass er sich über die Spur 0 hinausbewegen kann. Dieses Rattern ist nicht nur sehr unangenehm, sondern durch die mechanische Belastung auch der Hauptgrund für eine häufige Dejustage des Laufwerks.

## Diskettenkopien

Die Erstellung einer Diskettenkopie erfordert zusätzliche Software. Zwar enthält die 1541 das DOS der Doppellaufwerk-Geräte und damit auch den dortigen Kopierbefehl fast unverändert, mangels eines zweiten Laufwerks ist dieser aber funktionslos. Ein Kopierprogramm, das auf allen Commodore-Heimcomputern ablauffähig ist, ist zusammen mit einigen anderen Werkzeugen und Programmierbeispielen auf der Test/Demo-Diskette enthalten, die jeder 1541 beigelegt ist. Es ist allerdings sehr langsam, weil es wegen der erforderlichen Kompatibilität mit allen Commodore-Heimcomputern nur die regulären DOS-Befehle zum Lesen und Schreiben von Datenblöcken nutzt. Daher wurde relativ schnell von Fremdherstellern und in Computerzeitschriften Zusatzsoftware – meist für den Commodore 64 – angeboten, die wie Schnellladeprogramme auch eigene Übertragungsroutinen für den seriellen Bus nutzte und daher um ca. den Faktor 10 schneller war. Dadurch konnten einige dieser Kopierprogramme, z. B. der Turbonibbler die einzelnen Spuren einer Diskette roh, also ohne Interpretation der Sektorgrenzen an den Computer übertragen und auch auf der Zieldiskette wiederherstellen und so die meisten der gängigen Kopierschutzmechanismen aushebeln.
Am Ende der C64-Zeit wurden einige Kopierprogramme veröffentlicht, die sich darin überboten, Diskettenkopien besonders schnell durchzuführen. Hervorzuheben ist dabei das im 64’er-Magazin veröffentlichte Programm „Master-Copy Plus“ (Heft 2/89; S. 28, 30–33) von Frank Riemenschneider, bis heute als das einzige, das eine Diskettenkopie auf einer VC1541 ohne jede Hardware-Erweiterung in unter einer Minute erstellen kann. Später gab es noch eine Nachfolgeversion „Master-Copy Parallel“, die mittels paralleler Datenübertragung über den Userport diese Aufgabe in unter 30 s erledigt. Zu bedenken ist allerdings, dass zusätzlich noch die Quell- und Zieldiskette mehrmals getauscht werden mussten, da der C64 nur über 64 KB RAM verfügt und somit pro Diskettenseite mindestens drei Wechsel notwendig sind.

## Versionen

* 1541 (1. Generation)
** Einführung 1982
** Die ersten Exemplare hatten ein hellbeiges Gehäuse wie der VC 20, später dunkelbraun wie der Commodore 64, ähnlich den PC-Diskettenlaufwerken dieser Zeit
** Kann auch in ein PC-Gehäuse eingebaut werden
** Zwei Platinenvarianten: Umgebaute 1540 („lange Platine“ mit 74xx-Logik), später „kurze Platine“ mit Custom Chip
** Zwei Laufwerksvarianten: ALPS-Laufwerk mit brauner Frontblende und Verschlussklappe, sowie ein nur in geringer Stückzahl verbautes Knebellaufwerk von Mitsumi mit brauner oder weißer Frontblende
** Frühe Exemplare (lange Platine und hellbeiges Gehäuse) unterscheiden sich ggf. nur im verbauten DOS sowie den Aufklebern vom Vorgängermodell 1540, wobei durch das DOS die Kompatibilität zum Commodore 64 sichergestellt wird
* 1541c (2. Generation):
** Einführung 1986
** Beiges Gehäuse, wie der Commodore 64 der zweiten Generation.
** Meistens mit Mitsumi-Knebellaufwerk, seltener auch mit dem überwiegend in dem vorherigen 1541-Modell verwendeten ALPS-Laufwerk, jedoch mit nachträglich weiß lackierter Frontblende
** Lichtschranke zur Spur-0-Erkennung: Das modifizierte DOS erkennt damit die Spur 0, das Rattern aufgrund des Zurückziehens des Schreib-/Lesekopfes bis zum Anschlag entfällt und die Mechanik wird geschont. Dadurch allerdings inkompatibel zu Hardware-Speedern für 1541 der ersten Generation. Die Lichtschranke belegte eine Leitung des von den Speedern für den Anschluss des Parallelkabels verwendeten CIA-Ports A von UC1. Sie konnte jedoch durch Auftrennen der entsprechenden Leiterbahn deaktiviert werden, wobei die Firmware gegen eine der beiden anderen Varianten (1541 oder 1541-II) ausgetauscht werden muss.
** Meistens mit neuer, noch kürzerer, nahezu quadratischer Platine: 1541B mit einer Hybridschaltung (UD1) anstelle der bisher diskret aufgebauten Verstärkerschaltung für den Schreib-/Lesekopf
** Seltener auch mit der späten "kurzen" Platinenvariante des ersten 1541-Modells bestückt, dann jedoch ohne aktiver Spur-0-Erkennung und mit älterem DOS, selbst wenn die Laufwerksmechanik über die Lichtschranke verfügt
* 1541-II (3. Generation):
** Einführung 1988
** Hellgrau, in einem deutlich kleineren Gehäuse mit Knebelverschluss
** Ein externes Netzteil verhindert Temperaturprobleme
** Wieder ohne Lichtschranke
** Wieder voll kompatibel mit der 1541-I
** Die Firmware behebt verschiedene Bugs der älteren Laufwerke, darunter den oben erwähnten „SAVE @“-Bug; sie kann auch in der 1541 der 1. Generation genutzt werden.
** Es gab drei verschiedene Varianten dieser Baureihe, welche sich in der verbauten Laufwerksmechanik und einer an die jeweilige Mechanik angepassten Frontblende unterscheiden.
** Die verbauten Laufwerksmechaniken sind das bereits aus der 1541c bekannte Mitsumi-Laufwerk (mit veränderten Anschlüssen), ein Laufwerk von Chinon sowie ein Laufwerk von Digital System (teilweise auch unter den Markennamen Safronic und JPN Corp., bei welchen es sich jedoch um den gleichen Laufwerksmechanismus handelt)

## Arten von Schnellladern
### Hardware

Die Hardware-Schnelllader werden auf Platinen oder Chips geliefert und müssen im Heimcomputer und im Diskettenlaufwerk eingebaut werden. Manche Schnelllader verwenden eine zusätzliche parallele Datenverbindung zwischen C64-Userport und einem Floppy-VIA, andere verwenden die vorhandene serielle Verbindung.
Die Geschwindigkeitsfaktoren beziehen sich auf LOAD mit C64 und 1541. Mit anderer Hardware (HDD statt Floppy...) können die Werte stark abweichen.
| Name | System | Faktor | Bemerkung |
| STR DOS | C64 | 40 | mit Parallelkabel; umgebautes Dolphin DOS, mit Schnellcopy 22 Sek. für 2 Floppy 1541, Einzeltrack-Formatierung und gezielte Readerror schreiben |
| Dolphin DOS | C64, C128 | 25–32 | mit Parallelkabel; Versionen 2.x für C64 und 3.x für C128, Dolphin DOS, Dolphin DOS 2.0 |
| Dynamic DOS | C64 | 25 | |
| Formel 64 | C64, C128 | 16 | arbeitet mit Parallelkabel. C64 und C128, Test Happy Computer 12/87 |
| FSD System | C64, C128 | ? | |
| Exos V3 | C64 | 14 / 6 | C64, Test und Listing des Monats 64’er 12/1986, Seite 51 |
| JiffyDOS | C64 | 6–10 | Jiffy DOS für VC1541/VC1571/VC1581 CMD-HD/FD bzw. VC 20, C64/C128/C16, SX-64 |
| Mach 71 | C128 | ? | |
| Pro Speed 71 | C128 | ? | |
| P3/128 | C128 | ? | |
| Professional-DOS | C64, C128 | 40 | Faktor 40 beim Lesen von Diskette |
| Prologic-DOS Classic | C64 | 25 | mit Parallelkabel |
| Rex-DOS | C64 | 20 / 13 | mit Parallelkabel |
| Ross-Drive | C64 | ? | |
| SpeedDOS | C64 | 20–25 | mit Parallelkabel |
| Turbo Access | C64 | ? | |
| Turbo Trans | C64 | 20 | Turbo Access mit einer RAM-Erweiterung |
| Ultra-Load | C64 | ? | |

### Steckmodul

Einige Schnelllader erschienen auch als Steckmodul für den Expansionsport.
| Name | System | Faktor (lesend/schreibend) | Bemerkung |
| Action Replay 6 | C64 | 15/7 | Multifunktionsmodul, auch schnelles Speichern |
| DELA DOS | C64 | 8 / 8 | Nur Schnelllader |
| Disk-Booster 64 | C64 | 6 | F-Tasten-Belegung, Speeder und Fast Format |
| Epyx FastLoad | C64 | 5 | Multifunktionsmodul |
| Final Cartridge 2 | C64 | 6 | Multifunktionsmodul |
| Final Cartridge 3 | C64 | 10/10 | Multifunktionsmodul, auch schnelles Speichern |
| Hypra-Diskmodul | C64 | 7/– | Multifunktionsmodul, Funktionstastenbelegung |
| Magic Formel | C64 | 16/15 | Multifunktionsmodul, auch schnelles Speichern |
| Profi-DOS | C64 | 7/7 | Multifunktionsmodul, Funktionstastenbelegung |
| Retro Replay | C64 | ? | Multifunktionsmodul |
| Super-Betriebssystem | C64 | 7/– | Multifunktionsmodul, Funktionstastenbelegung |
| Super Snapshot | C64 | 5,5 | Multifunktionsmodul |

### Software

Ein Software-Schnelllader ist ein kurzes Programm und wird zuerst geladen und gestartet, danach das eigentliche Programm, das sinnvollerweise deutlich größer sein sollte als der Schnelllader. Solche Software-Schnelllader waren auch in die meisten kommerziellen Programme für den Commodore 64 eingebaut, meist eng verflochten mit dem Kopierschutz der Diskette.
| Name | System | Faktor | Bemerkung |
| Accelerator | C64 | ? | Magic Disk 64, Ausgabe 12/1988 |
| Cyber Loader | C64 | 16 | Nur für VC-1541 mit C64 |
| Fast Disk | C64 | ? | Magic Disk 64, Ausgabe 05/1988 |
| FLOAD | C64 | ? | Magic Disk 64, Ausgabe 02/1989 |
| Gigaload | C64 | ? | |
| Heureka-Sprint | C64 | 25 | 64’er Ausgabe 3/87, Listing des Monats, eigenes Diskettenformat |
| Hypra Load | C64 | 6,2 | Nur für VC-1541 mit C64, 64’er Ausgabe 10/84, Listing des Monats |
| ISEPIC | C64 | 10 | Nur für 1541 mit C64 |
| Most-Access | C64 | ? | Nur für VC-1541 |
| Mr. Byte | C64 | ? | Nur für VC-1541 mit C64 |
| Speed 1581 | C64 | 16 | Nur für VC-1581 |
| Speedload V1.0 | C64 | 25–30 | Nur für VC-1541 mit C64, BKS Odenwald |
| Ultraload Plus | C64 | 6,8 | Happy Computer 3/86, 64'er Spielesammlung Band 3 |
| ZAP 1581 | C64 | 16 | Nur für VC-1581 |

## Spezifikationen

* Diskettentyp: 5.25″
* Aufzeichnungsformat: einseitig, einfache Dichte
* Kodierung: Group Coded Recording
* Kapazität: 170 KB
* CPU: 6502 1 MHz
* Ein-/Ausgabe-Chip, interner Timer: 6522
* SRAM: 2 KB
* ROM: 16 KB
* Transfer-Protokoll: Standard 1541 Mode, 400 Byte/s
* Interface: 2× CBM-Bus über DIN-Stecker („serielles IEEE-488“)
* Gesamtkapazität: 174.848 Bytes
* nutzbare Kapazität:
** sequentielle Dateien: 168.656 Bytes
** relative Dateien: 167.132 Bytes, 65.535 Records pro Datei
* Verzeichniseinträge: 144
* Sektoren pro Spur: 17 bis 21 (Zone Bit Recording)
* Bytes pro Sektor: 256, 254 nutzbar
* Spuren: 35 verwendet, 40 physisch
* Sektoren: 683 (664 Sektoren frei)