On Mon, Jul 26, 2021 at 6:02 AM Peter Corlett via cctalk <cctalk@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