Ethan Dicks <erd_6502(a)yahoo.com> wrote about the floppy controller
in early Macintosh computers:
Well... it's standard to Apple... there's a
chip on there marked
"IWM" - Integrated Woz Machine. That's the "floppy controller",
Replaced by the SWIM (Super Woz Integrated Machine) in the Mac IIx
and newer machines, and as an upgrade to the Mac II and Mac SE. The
SWIM chip supports industry-standard MFM in addition to Apple GCR
format. The SWIM went through multiple generations, and got absorbed
into larger chips. AFAIK, recent Macs no longer have any ability to
read or write GCR format.
So there isn't a "standard" floppy controller, even just amongst
Macintoshes.
though
I'm not certain that 100% of the floppy functions are performed by that
chip (thinking of the Amiga where it takes two or three chips to run the
floppies - Paula, an 8520, and Gary (if present)). There might or might
not be some control-line stuff and/or analog stuff
external to the IWM.
The only extra stuff was the PWM speed control signal used by the 400K
drives. The later 800K and FDHD/"Superdrive" drives had integral speed
control, and the connector pin used for speed control on the 400K drive
became a no-connect.
In the original Macintosh, the speed control was done using bytes from
the same buffer as the sound output; the video controller grabbed one
16-bit word from this buffer during every horizontal retrace, and used
one byte for sound and the other for disk speed.
AFAIK, it's the IWM that controls the data
clocks and handles the number of sectors-per-track changes, among
other functions.
The IWM has no concept of sectors per track. In fact, it doesn't even
know what sectors are! That's handled entirely by software. It works
essentially the same way as the Disk ][ controller for the Apple ][.
The SWIM chip probably has some idea of sectors, but I suspect that it
still doesn't know how many sectors belong on a track. (The industry-
standard controllers based on the WD17xx and NEC uPD765 don't know or
care about how many sectors are on a track either.)