Commodore 1541



The Commodore 1541 (also known as the CBM 1541 and VIC-1541) is a floppy disk drive which was made by Commodore International for the Commodore 64 (C64), Commodore's most popular home computer. The best-known floppy disk drive for the C64, the 1541 is a single-sided 170-kilobyte drive for 5¼" disks. The 1541 directly followed the Commodore 1540 (meant for the VIC-20).

The disk drive uses group coded recording (GCR) and contains a MOS Technology 6502 microprocessor, doubling as a disk controller and on-board disk operating system processor. The number of sectors per track varies from 17 to 21 (an early implementation of zone bit recording with 4 constant angular velocity zones). The drive's built-in disk operating system is CBM DOS 2.6.

Introduction
The 1541 was priced at under US$400 at its introduction. A C64 plus a 1541 cost about $900, while an Apple II with no disk drive cost $1,295. The first 1541 drives produced in 1982 have a label on the front reading VIC-1541 and have an off-white case to match the VIC-20. In 1983, the 1541 switched to having the familiar beige case and a front label reading simply "1541" along with rainbow stripes to match the Commodore 64.

By 1983 a 1541 sold for $300 or less. After a home computer price war instigated by Commodore, the C64 and 1541 together cost under $500. The drive became very popular and difficult to find. The company said that the shortage occurred because 90% of C64 owners bought the 1541 compared to its 30% expectation, but the press discussed what Creative Computing described as "an absolutely alarming return rate" because of defects. The magazine reported in March 1984 that it received three defective drives in two weeks, and Compute!'s Gazette reported in December 1983 that four of the magazine's seven drives had failed; "COMPUTE! Publications sorely needs additional 1541s for in-house use, yet we can't find any to buy. After numerous phone calls over several days, we were able to locate only two units in the entire continental United States", reportedly because of Commodore's attempt to resolve a manufacturing issue that caused the high failures.

The early (1982 to 1983) 1541s have a spring-eject mechanism (Alps drive), and the disks often fail to release. This style of drive has the popular nickname "Toaster Drive", because it requires the use of a knife or other hard thin object to pry out the stuck media just like a piece of toast stuck in an actual toaster. This was fixed later when Commodore changed the vendor of the drive mechanism (Mitsumi) and adopted the flip-lever Newtronics mechanism, greatly improving reliability. In addition, Commodore made the drive's controller board smaller and reduced its chip count compared to the early 1541s (which had a large PCB running the length of the case, with dozens of TTL chips). The beige-case Newtronics 1541 was produced from 1984 to 1986.

Versions and third-party clones
All but the very earliest non-II model 1541s can use either the Alps or Newtronics mechanism. Visually, the first models, of the VIC-1541 denomination, have an off-white color like the VIC-20 and VIC-1540. Then, to match the look of the C64, CBM changed the drive's color to brown-beige and the name to Commodore 1541.



The 1541's numerous shortcomings opened a market for a number of third-party clones of the disk drive. Examples include the Oceanic OC-118 a.k.a. Excelerator+, the MSD Super Disk single and dual drives, the Enhancer 2000, the Indus GT, Blue Chip Electronics's BCD/5.25, and CMD's FD-2000 and FD-4000. Nevertheless, the 1541 became the first disk drive to see widespread use in the home and Commodore sold millions of the units.

In 1986, Commodore released the 1541C, a revised version that offers quieter and slightly more reliable operation and a light beige case matching the color scheme of the Commodore 64C. It was replaced in 1988 by the 1541-II, which uses an external power supply to provide cooler operation and allows the drive to have a smaller desktop footprint (the power supply "brick" being placed elsewhere, typically on the floor). Later ROM revisions fixed assorted problems, including a software bug that causes the save-and-replace command to corrupt data.

Successors
The Commodore 1570 is an upgrade from the 1541 for use with the Commodore 128, available in Europe. It offers MFM capability for accessing CP/M disks, improved speed, and somewhat quieter operation, but was only manufactured until Commodore got its production lines going with the 1571, the double-sided drive. Finally, the small, external-power-supply-based, MFM-based Commodore 1581 3½-inch drive was made, giving 800 KB access to the C128 and C64.

Hardware
The 1541 does not have DIP switches to change the device number. If a user adds more than one drive to a system, the user has to cut a trace in the circuit board to permanently change the drive's device number, or hand-wire an external switch to allow it to be changed externally. It is also possible to change the drive number via a software command, which is temporary and would be erased as soon as the drive was powered off.

1541 drives at power up always default to device #8. If multiple drives in a chain are used, then the startup procedure is to power on the first drive in the chain, alter its device number via a software command to the highest number in the chain (if three drives were used, then the first drive in the chain would be set to device #10), then power on the next drive, alter its device number to the next lowest, and repeat the procedure until the final drive at the end of the chain was powered on and left as device #8.

Unlike the Apple II, where support for two drives is normal, it is relatively uncommon for Commodore software to support this setup, and the CBM DOS copy file command is not able to copy files between drives – a third party copy utility is necessary.

The pre-II 1541s also have an internal power source, which generates a lot of heat. The heat generation was a frequent source of humour. For example, Compute! stated in 1988 that "Commodore 64s used to be a favorite with amateur and professional chefs since they could compute and cook on top of their 1500-series disk drives at the same time". A series of humorous tips in MikroBitti in 1989 said "When programming late, coffee and kebab keep nicely warm on top of the 1541." The MikroBitti review of the 1541-II said that its external power source "should end the jokes about toasters".

The drive-head mechanism installed in the early production years is notoriously easy to misalign. The most common cause of the 1541's drive head knocking and subsequent misalignment is copy-protection schemes on commercial software. The main cause of the problem is that the disk drive itself does not feature any means of detecting when the read/write head reaches track zero. Accordingly, when a disk is not formatted or a disk error occurs, the unit tries to move the head 40 times in the direction of track zero (although the 1541 DOS only uses 35 tracks, the drive mechanism itself is a 40-track unit, so this ensured track zero would be reached no matter where the head was before). Once track zero is reached, every further attempt to move the head in that direction would cause it to be rammed against a solid stop: for example, if the head happened to be on track 18 (where the directory is located) before this procedure, the head would be actually moved 18 times, and then rammed against the stop 22 times. This ramming gives the characteristic "machine gun" noise and sooner or later throws the head out of alignment.

A defective head-alignment part likely caused many of the reliability issues in early 1541 drives; one dealer told Compute!'s Gazette in 1983 that the part had caused all but three of several hundred drive failures that he had repaired. The drives were so unreliable that Info magazine joked, "Sometimes it seems as if one of the original design specs ... must have said 'Mean time between failure: 10 accesses.'" Users can realign the drive themselves with a software program and a calibration disk. The user can remove the drive from its case and then loosen the screws holding the stepper motor that move the head, then with the calibration disk in the drive gently turn the stepper motor back and forth until the program shows a good alignment. The screws are then tightened and the drive is put back into its case.

A third-party fix for the 1541 appeared in which the solid head stop was replaced by a sprung stop, giving the head a much easier life. The later 1571 drive (which is 1541-compatible) incorporates track-zero detection by photo-interrupter and is thus immune to the problem. Also, a software solution, which resides in the drive controller's ROM, prevents the rereads from occurring, though this can cause problems when genuine errors do occur.

Due to the alignment issues on the Alps drive mechanisms, Commodore switched suppliers to Newtronics in 1984. The Newtronics mechanism drives have a lever rather than a pull-down tab to close the drive door. Although the alignment issues were resolved after the switch, the Newtronics drives add a new reliability problem in that many of the read/write heads are improperly sealed, causing moisture to penetrate the head and short it out.

The 1541's PCB consists mainly of a 6502 CPU, two 6522 VIA chips, and 2k of work RAM. Up to 48k of RAM can be added; this is mainly useful for defeating copy protection schemes since an entire disk track could be loaded into drive RAM, while the standard 2k only accommodates a few sectors (theoretically eight, but some of the RAM was used by CBM DOS as work space). Some Commodore users use 1541s as an impromptu math coprocessor by uploading math-intensive code to the drive for background processing.

Interface
The 1541 uses a proprietary serialized derivative of the IEEE-488 parallel interface, found in previous disk drives for the PET/CBM range of personal and business computers, but when the VIC-20 was in development, a cheaper alternative to the expensive IEEE-488 cables was sought. To ensure a ready supply of inexpensive cabling for its home computer peripherals, Commodore chose standard DIN connectors for the serial interface. Disk drives and other peripherals such as printers connect to the computer via a daisy chain setup, necessitating only a single connector on the computer itself.

Throughput and software
IEEE Spectrum in 1985 stated that:

"The one major flaw of the C-64 is not in the machine itself, but in its disk drive. With a reasonably fast disk drive and an adequate disk-operating system (DOS), the C-64 could compete in the business market with the Apple and perhaps with other business computers. With the present disk drive, though, it is hard-pressed to lose its image as a toy."

The C-64's designers blamed the 1541's slow speed on the marketing department's insistence that the computer be compatible with the 1540, which is slow because of a flaw in the 6522 VIA interface controller. Initially, Commodore intended to use a hardware shift register (one component of the 6522) to maintain fast drive speeds with the new serial interface. However, a hardware bug with this chip prevents the initial design from working as anticipated, and the ROM code was hastily rewritten to handle the entire operation in software. According to Jim Butterfield, this causes a speed reduction by a factor of five; had 1540 compatibility not been a requirement, the disk interface would have been much faster. In any case, the C64 normally cannot work with a 1540 unless the VIC-II display output is disabled via a register write to the DEN bit (register $D011, bit 4), which stops the halting of the CPU during certain video lines to ensure correct serial timing.

As implemented on the VIC-20 and C64, Commodore DOS transfers 300 bytes per second, compared to the Atari 810's 2,400 bytes per second, the Apple Disk II's 15,000 bytes per second, and the 300-baud data rate of the Commodore Datasette storage system. About 20 minutes are needed to copy one disk&mdash;10 minutes of reading time, and 10 minutes of writing time. However, since both the computer and the drive can easily be reprogrammed, third parties quickly wrote more efficient firmware that would speed up drive operations drastically. Without hardware modifications, some "fast loader" utilities (which bypassed routines in the 1541's onboard ROM) managed to achieve speeds of up to 4 kbit/s. The most common of these products are the Epyx Fast Load, the Final Cartridge, and the Action Replay plug-in ROM cartridges, which all have machine code monitor and disk editor software on board as well. The popular Commodore computer magazines of the era also entered the arena with type-in fast-load utilities, with Compute!'s Gazette publishing TurboDisk in 1985 and RUN publishing Sizzle in 1987.

Even though each 1541 has its own on-board disk controller and disk operating system, it is not possible for a user to command two 1541 drives to copy a disk (one drive reading and the other writing) as with older dual drives like the 4040 that was often found with the PET computer, and which the 1541 is backward-compatible with (it can read 4040 disks but not write to them as a minor difference in the number of header bytes makes the 4040 and 1541 only read-compatible). Originally, to copy from drive to drive, software running on the C64 was needed and it would first read from one drive into computer memory, then write out to the other. Only when Fast Hack'em and, later, other disk backup programs were released, was true drive-to-drive copying possible for a pair of 1541s. The user could, if they wished, unplug the C64 from the drives (i.e., from the first drive in the daisy chain) and do something else with the computer as the drives proceeded to copy the entire disk.

Media
The 1541 drive uses standard 5¼-inch double-density floppy media; high-density media will not work due to its different magnetic coating requiring a higher magnetic coercivity. As the GCR encoding scheme does not use the index hole, the drive was also compatible with hard-sectored disks. The standard CBM DOS format is 170 KB with 35 tracks and 256-byte sectors. It is similar to the format used on the PET 2031, 2040 & 4040 drives, but a minor difference in the number of header bytes makes these drives and the 1541 only read-compatible; disks formatted with one drive cannot be written to by the other. The drives will allow writes to occur, but the inconsistent header size will damage the data in the data portions of each track.

The 4040 drives use Shugart SA-400s, which were 35-track units, thus the format there is due to physical limitations of the drive mechanism. The 1541 uses 40 track mechanisms, but Commodore intentionally limited the CBM DOS format to 35 tracks because of reliability issues with the early units. It is possible via low-level programming to move the drive head to tracks 36–40 and write on them, this is sometimes done by commercial software for copy protection purposes and/or to get additional data on the disk.

However, one track is reserved by DOS for directory and file allocation information (the BAM, block availability map). And since for normal files, two bytes of each physical sector are used by DOS as a pointer to the next physical track and sector of the file, only 254 out of the 256 bytes of a block are used for file contents.

If the disk side is not otherwise prepared with a custom format, (e.g. for data disks), 664 blocks would be free after formatting, giving 664254 = $168,656 bytes$ (or almost $165 KB$) for user data.

By using custom formatting and load/save routines (sometimes included in third-party DOSes, see below), all of the mechanically possible 40 tracks can be used.

Owing to the drive's non-use of the index hole, it is also possible to make "flippy floppies" by inserting the diskette upside-down and formatting the other side, and it is commonplace and normal for commercial software to be distributed on such disks.

Tracks 36–42 are non-standard. The bitrate is the raw one between the read/write head and signal circuitry so actual useful data rate is a factor 5/4 less due to GCR encoding.

The 1541 disk typically has 35 tracks. Track 18 is reserved; the remaining tracks are available for data storage. The header is on 18/0 (track 18, sector 0) along with the BAM, and the directory starts on 18/1 (track 18, sector 1). The file interleave is 10 blocks, while the directory interleave is 3 blocks.

Header contents: The header is similar to other Commodore disk headers, the structural differences being the BAM offset ($04) and size, and the label+ID+type offset ($90).

$00–01 T/S reference to first directory sector (18/1) 02 DOS version ('A') 04-8F BAM entries (4 bytes per track: Free Sector Count + 24 bits for sectors) 90-9F Disk Label, $A0 padded A2-A3 Disk ID A5-A6 DOS type ('2A')

Uses
Early copy protection schemes deliberately introduce read errors on the disk, the software refusing to load unless the correct error message is returned. The general idea is that simple disk-copy programs are incapable of copying the errors. When one of these errors is encountered, the disk drive (as do many floppy disk drives) will attempt one or more reread attempts after first resetting the head to track zero. Few of these schemes have much deterrent effect, as various software companies soon released "nibbler" utilities that enable protected disks to be copied and, in some cases, the protection removed.

Commodore copy protection sometimes fails on specific hardware configurations. Gunship, for example, does not load if a second disk drive or printer is connected to the computer. Similarly Roland's Ratrace will crash if additional hardware is detected. The tape version will even crash if a floppy drive is switched on while the game is running.