Commodore 1541
The Commodore 1541 is an external 5¼-inch floppy-disk drive for Commodore’s 8-bit home-computer environment. Rather than acting only as a mechanism controlled by the host, it contains a 1 MHz MOS 6502, 2 KiB of RAM, 16 KiB of ROM, and drive-resident DOS; consequently, it performs disk and file-system work in the peripheral itself.[1][2] Its normal medium is a single-sided 5¼-inch diskette, and its standard DOS layout provides 174,848 bytes in 683 sectors, of which 664 blocks are free after formatting.[3][4]
Architecture and drive-resident DOS
[edit | edit source]The 1541’s 6502 runs from a 1 MHz system clock. Its two ROM chips occupy the upper 16 KiB of the processor’s address space, while the 2 KiB RAM area supplies processor workspace and four temporary buffers.[1][5] The practical result is a small computer dedicated to storage: the host sends requests, while the drive’s ROM routines locate blocks, manage the disk’s allocation and directory structures, and marshal sector data through RAM buffers.[5][2]
The service documentation identifies a 6522 Versatile Interface Adapter (VIA) on the serial-interface side and another VIA in the read/write and motor-control path.[1] The first connects the processor to the serial lines; the latter exchanges bytes with the disk logic and controls the stepper and spindle mechanisms.[1] This division is important when interpreting software that addresses the drive directly: a request can use the documented DOS interface, but software can also rely on drive timing, buffering, or ROM behavior that belongs to the peripheral rather than the host computer.[5][6]
The name “1541” covers more than one board and ROM revision. Commodore’s technical-manual archive distinguishes long-board, short-board, and 1541B material, while a reconstructed ROM-source history records original and updated 1541 ROM part numbers before the later 1541C and 1541-II revisions.[7][6] Accordingly, a program or repair procedure that assumes a particular board or ROM should identify that revision rather than treating every unit carrying the 1541 name as electrically identical.[7][8]
Serial bus
[edit | edit source]The drive connects through Commodore’s standard serial bus. The two rear serial sockets allow a device chain: the user guide describes connecting the computer to either socket and continuing from the other socket to a printer or additional drive.[3] At the electrical level, the six-pin connector carries ground, reset, service request, attention, clock, and data; clock and data provide the serial transfer and handshake roles, while attention participates in bus selection.[1][9]
This is a shared, daisy-chained peripheral bus rather than a point-to-point disk cable. A computer acts as controller, addresses a participant, and uses byte-stream transfers; devices can expose multiple channels, including a command/status channel and data channels.[9][10] The 1541’s serial implementation is also a major performance constraint. The original 6522 shift-register issue led Commodore to implement the transfer protocol in software, and C64 timing accommodations lengthened the relevant hold time to 60 microseconds for device-to-controller sending.[9] This explains why the data rate visible to the computer should not be confused with the much faster rate at which magnetic data passes the head.[9][5]
Disk organization and recording
[edit | edit source]In the standard DOS format, the disk is divided into 35 numbered tracks and 256-byte sectors. Tracks 1–17 contain 21 sectors each, tracks 18–24 contain 19, tracks 25–30 contain 18, and tracks 31–35 contain 17, for 683 sectors in total.[3][4] Track 18 holds the directory and allocation information, which accounts for the difference between the total 683 blocks and the 664 blocks reported free on a newly formatted disk.[3][5] The larger sector count on the outer tracks uses their longer circumference rather than making every track carry the same payload.[3][4]
The 1541 writes the disk using group-coded recording (GCR). For a normal sector, the mechanism reads an encoded stream into drive memory, the drive decodes it to the 256-byte logical sector, and a write operation re-encodes a full sector with its associated framing and checksum information.[5][11] The drive varies recording rate across four track ranges so that the physical track length and encoded data budget remain matched.[1][11]
There is a documentation inconsistency worth making explicit. One circuit-theory paragraph in the 1985 service manual reverses the physical orientation of the numbered track extremes, whereas the earlier user guide and the independently maintained D64 specification place track 1 at the outside and associate the 21-sector zone with tracks 1–17.[1][3][4] The latter numbering is used here because the two independent descriptions agree with the sector table; the isolated reversed orientation statement is not used as a basis for this article.[3][4]
Disk images and compatibility
[edit | edit source]A D64 file is a sector-for-sector representation of the standard 35-track 1540/1541 logical layout, not a claim that every disk readable by a physical 1541 has the same structure. Its conventional size is 174,848 bytes before optional per-sector error information.[4] G64 preserves a lower-level raw GCR track stream and was designed for disks whose custom recording, protection data, or nonstandard track content cannot be represented faithfully by a conventional D64 sector image.[11][4] The distinction matters because the 1541 hardware can encounter more than the standard DOS layout, while the standard DOS itself formats 35 tracks.[3][11]
For host use, the original user guide expressly describes attachment to the VIC-20 and Commodore 64, and the standard serial protocol is documented as the serial-bus variant used by the VIC-20, C64, Plus/4 series, C128, and C65 families.[3][10] Compatibility at the cable and command level therefore does not by itself guarantee compatibility with software that bypasses normal DOS operations, depends on a ROM revision, changes bus timing, or expects a nonstandard disk encoding.[5][8][11] The service manual’s rounded “170K” formatted-capacity figure and the user guide’s 174,848-byte figure describe the same standard layout at different precision, rather than competing capacities.[1][3][4]
See also
[edit | edit source]References
[edit | edit source]- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Commodore, Service Manual 1540–1541 Disk Drive (November 1985), “Product Specification” and “Circuit Theory”.
- ↑ 2.0 2.1 Smithsonian National Museum of American History, “Commodore VIC-1541 Floppy Disk Drive”, collection record 1989.0544.01.2.
- ↑ 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 Commodore, 1541 Disk Drive User’s Guide (September 1982), “Specifications” and chapter 6.
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 VICE Manual, “The D64 disk image format”, section 17.5.
- ↑ 5.0 5.1 5.2 5.3 5.4 5.5 5.6 C64 OS, “How Does the 1541 Drive Work” (10 November 2020), sections on drive-resident DOS and sector buffering.
- ↑ 6.0 6.1 mist64, “Commodore 1541 DOS ROM Source Code”, README and source-file inventory.
- ↑ 7.0 7.1 Zimmers.net, “Commodore Single Disk Drive, Technical Manual, Model 1540/1541, P/N 990445”, catalogue and board-documentation listing.
- ↑ 8.0 8.1 Michael Steil, “Building the Original Commodore 1541 DOS Source” (17 April 2019).
- ↑ 9.0 9.1 9.2 9.3 Michael Steil, “Commodore Peripheral Bus: Part 4: Standard Serial” (6 May 2019), “Layer 1: Electrical” and “Layer 2: Byte Transfer”.
- ↑ 10.0 10.1 Michael Steil, “Commodore Peripheral Bus: Part 0: Overview”, protocol-stack overview.
- ↑ 11.0 11.1 11.2 11.3 11.4 “G64 (raw GCR binary representation of a 1541 diskette)”, revision 1.6 (25 March 2004), introduction and track-data description.
Automation and sourcing note
[edit | edit source]This article was independently synthesized from cited sources under c64.wiki publication policy. Original manuals and schematics were used as citation-only evidence; no scans, images, code, or source prose have been reproduced.