On Mon, Jul 26, 2021 at 6:02 AM Peter Corlett via cctalk
<cctalk at classiccmp.org> wrote:
The Amiga could get 880kiB on a DD disk, and 1760kiB
on a HD disk if you have
one of those hen's teeth drives which spin at 150RPM. It does this by doing a
read-modify-reformat of the entire track of 11 or 22 sectors, which allows
omitting all of the guard bands except for the one between the start and end of
the track.
In particular, the Amiga trackdisk.device driver would start by
spinning up the disk motor, then writing out about 10% of a track of
gap bytes, then emit all 11/22 sectors in a tight line,
(intentionally) overwriting some of the just-written gap bytes. The
little transition right at the end where the write stopped was
irrelevant since it would just be skipped over by the
find-the-first-sector scheme.
It also meant that you didn't have to wait for part of a rotation for
your sector to come around. As soon as the disk was up to speed, you
could begin writing immediately.
The "disk controller" was really a giant shift register that read or
wrote media-ready bits. The encoding/decoding happened in RAM, using
part of the graphics subsystem to transform unencoded-binary blocks
to/from MFM-encoded data.
Screwy but it was pretty flexible. Reading/writing "DOS floppies" was
a simpler process, and there was a different diskette driver for that
(mfm.device) and a filesystem handler that knew about the FAT
filesystems.
-ethan