I love the floppy disk. Everything about it is just neat. The engineering is neat.

Drive motors weren't perfect and could spin a little too fast or a little too slow and could even vary speed over one revolution (wobble).

Now consider you could have data on a single disk that was written in multiple drives with different characteristics.

The data on the disk, although digital, was encoded via a very analog magnetic represention (flux reversals).

To read the data off a floppy disk the drive controller had to synchronize a data window clock with the rate the data was coming off the disk. To accomplish this, clock bits were encoded in the signal. In the PC world, this is called MFM encoding.

To keep locked onto the floppy data signal, floppy drive controllers used something called a PLL or Phase Locked Loop. This is an essential electronics component that is found in all sorts of things from televisions to washing machines. They are ubiquitous.

The original IBM floppy controller implements a PLL via a pair of 70's vintage Motorola chips. One is a phase comparitor that takes a 500Khz reference clock and the raw, squared data signal coming off the floppy. The chip emits a voltage proportional to the difference in phase between these clocks.

This is filtered and then fed into the other chip, a voltage controlled oscillator. This adjusts the clock speed used to expect a bit of data on the floppy. Essentially, the entire disk can be divided up into little time slices or 'bitcells' in which we expect to read a flux transition (a 1 bit) or not (a 0 bit) and the offset of a bit within the slice or 'window' is used to slide the subsequent windows around, always trying to keep the bits centered.

0

If you have a fediverse account, you can quote this note from your own instance. Search https://oldbytes.space/users/gloriouscow/statuses/115664700654393602 on your instance and quote it. (Note that quoting is not supported in Mastodon.)