FDC (Floppy Disk Controller)

A Floppy Disk Controller, is a piece of hardware that allows application or operating system access to the Floppy Drive without having to control the “lines” directly.

In the Commodore Amiga, the “controller” is what you see listed in system information programs, not the drive itself. The few additional bonuses you get in this system are a clock source (and in true Commodore style it is not even a real standalone source as it should be, but derived from the system clock), Jitter, shifter and buffer logic that can be used to Sync (aka Mark) with marks on the disk (basically to compensate for “inaccurate” drive writes, which is essential for reading data written by other drives), and reads and writes can be channelled through DMA (Direct Memory Access). These are very very cheap features for an FDC, most controllers on other systems do everything for you (and are therefore far more restrictive).

Everything else must be done in software, and that means that the software must do a lot more work. In the Amiga operating system, this logic is done for you in the form of the trackdisk.device (the operating system interface to the FDC) - but obviously this only works for AmigaDOS disks, if you write your own disk format, or the operating system is disabled, then you are on your own.

To read a track on an Amiga you would:

  • Turn on the drive motor
  • Seek the head
  • Select side
  • Turn DMA on
  • Try to interpret what is being read...

In other words, the “controller” as it is commonly referred in other machines is pretty much non-existent on the Amiga. You have one, but it does not do very much for you. However, a “real” controller is able to do all these things automatically (including data encoding/decoding in the “interpret” stage above), and a large amount of other functionality is available.

Of course, we are rather lucky that all these extra features were cut out in the “el cheapo” Commodore design to allow us to read media with completely different disk formats.