"How to determine the required RPM for a 3.5-inch floppy disk as disks can apparently require different speeds?"
-> I think there's some confusion between drive rotation speed, which is standard (all 3.5" drives are supposed to rotate at the same speed) and is expressed in RPM (300 RPM for any 3.5" drive), and read/write speed, which depends on floppy disk formatting density and is expressed in kbit/s (250 kbit/s for a DD floppy disk, 500 kbit/s for an HD floppy disk).
The computer doesn't know which type of floppy disk is inserted (DD or HD), but it does when it reads it:
- an HD-formatted floppy disk is the only one that sends pulses as short as 2 microseconds
- a DD-formatted diskette is the only one to send pulses as long as 8 microseconds
But what about writing? An HD diskette has a hole in the bottom right-hand corner (absent on a DD diskette) which tells the drive to switch to HD mode (lower current for writing on the more sensitive surface). If an HD floppy disk is inserted in the drive and the computer writes to it by mistake in DD mode (250 kbit/s), it will find that the pulses are not written correctly (an 8-microsecond pulse will be read back as two 4-microsecond pulses, for example, because of the HD current corrector in the drive head).
Conversely, if a DD floppy disk is inserted (the drive switches to higher current) and the computer tries to write to it in HD mode, the overly high current in the head will be unable to write to the surface a pulse as short as 2 microseconds, and the computer will verify that the write has failed.
In both cases, the host operating system will display a read/write error.
To be clear: the error comes first because the current in the head is not adapted to the speed of reading/writing. A HD floppy disk with some tape on its HD hole, can be DD formatted since the level of current will then match the speed of reading/writing.
RPM differences arise with 5.25" drives: HD drives spin at 360 RPM and DD drives spin at 300 RPM. This time, the host computer is perfectly aware of the speed because the floppy disks have an index hole near their center that sends a pulse to the index wire of the cable every time the index hole pass near the index probe. So the host OS chooses the speed of writing accordingly :
- if the rotation speed is 300 RPM, then it can only read/write DD content at 250 kbit/s
- if the rotation speed is 360 RPM, then, when it wants to write HD content, it sends data to the drive at 500 kbit/s (and sends a signal on wire #2 of the cable to tell the drive to switch to low current). And When it wants to write DD content, it sends data to the drive at 300 kbit/s. And for reading, it's the same case as 3.5" drives : pulses as short as 2 microseconds will tell it's a HD formatted floppy disk, pulses as long as 6,67 microseconds will tell it's a DD formatted floppy. Level of current not adapted to read/write rate will trigger a problem.
One special case is the Amiga HD drive (Chinon FB/FZ-357A on Amiga 3000/4000) that spins at 150 RPM when a HD disk is inserted, while it spins at 300 RPM when it doesn't detect the HD hole. That's because the Amiga chipset is only able to read/write floppy data at 250 kbit/s, no more. So dividing by 2 the RPM makes a rate of 250 kbit/s to write twice more data per rotation, so per track.
In this case, the Amiga is also aware of the presence of the HD floppy disk because of the index signal that comes twice less often. Then, AmigaOS will expect tracks of 22 sectors, while they have 11 sectors in DD mode.
Commodore 8-bit, Apple II and first Macintosh have other speeds in kbit/s because their floppy disks are not encoded in FM or MFM (as all other computers do) ; they are encoded in GCR mode. But it's their own speed and the controller on any other computer is unable to decode/encode GCR. So the problem to know the speed of a Commodore 64 floppy disk on a PC, for instance, doesn't exist.
And if you wonder why you can't read Amiga floppy disks on a PC, for example, since they both use MFM encoding, this is not related to speed. They have the same speed, in RPM and in kbit/s. It's just because Amiga dumps a complete track in its memory, while other computer are limited by the buffer of their controller to one sector at a time. So the Amiga writes its tracks with no gap in between sectors, and can store 11 512-bytes sectors per track (in DD mode), while a PC has to manage gaps between sectors (because of the latency to fill/empty the controller buffer), and can't manage more than 9 sectors (sometimes 10) per track.