CMD FD series

From Wikipedia, the free encyclopedia
Jump to: navigation, search

The CMD FD series was Creative Micro Designs (CMD)'s range of third-party floppy disk drives for the Commodore 8-bit line of home computers. Using 3½" floppy disks, they provided a significantly larger storage capacity than Commodore-produced drives; the FD-2000 offered 1600 kB of storage using standard double-sided, high-density floppies, while the FD-4000 also allowed the use of 3200 kB extended-density floppies. In contrast, the Commodore 1581 3½" drive only supported 800 kB double-sided, double-density disks.


In addition to the higher storage capacity, the FD series also provided additional features not found on the Commodore 1581. A "SWAP" button on the front panel allowed the drive number to be easily switched with that of another Commodore drive on the serial bus, without the need to enter any commands into the computer. It also provided a "1541 emulation mode", allowing partitions on a 3½" disk to simulate the behavior of a 5¼" Commodore 1541 floppy. The ability to use partitions and subdirectories was also expanded beyond the rudimentary form found in the 1581. A real-time clock was also available as an add-on feature; it could be used to time-stamp files and to automatically set the system clock in the GEOS operating system. The CMD FD series also included native JiffyDOS compatibility; while using the JiffyDOS system with a Commodore drive required replacing both the KERNAL and drive ROM chips, for full JiffyDOS use, only the computer's KERNAL ROM needed to be replaced when used in conjunction with an FD-2000 or FD-4000.

Native Partition Structure[edit]

The System Partition header is at track 26, sectors 5, 8, 9, 10, and 11. Sector 5 is the Device Information Block, which is $FF filled except in a few specific places. Sectors 8 thru 11 contain the System Partition Directory.

The first sector of a FD-2000 native partition is the header.

Header Contents

         $00–01: T/S reference to root directory  block  of  this
                 partition ($01/$24).
             02: DOS Type ("H")
          04-15: Disk label, $A0 padded
          16-17: Disk ID
          19-1A: DOS Version ("1H")
          20-21: T/S reference to present directory header block
          22-23: T/S reference to parent  directory  header  block
                 (set to $00/$00 when at the top of the directory)
          24-25: T/S reference to dir entry in  previous  directory
                 (set to $00/$00 when at the top of the directory)
             26: Index to parent directory entry ($00 at the top)
          AB-AC: GEOS border sector
          AD-BC: GEOS format string (GEOS format Vx.x)

The BAM (Block Allocation Map) starts at 1/2 (track 1, sector 2) and continues to 1/33.

BAM Contents

             02: DOS Type ("H")
          04-05: Disk ID
             06: I/O byte (as the 1581)
                   bit 7 set   - Verify on
                   bit 7 clear - Verify off
                   bit 6 set   - Check header CRC
                   bit 6 clear - Don't check header CRC
             08: Last available track # in partition ($19=#25)
          20-FF: BAM for tracks 1-7

Its directory structure is slightly different from the Commodore structure.