On Fri, Jun 13, 2014 at 5:43 PM, Chuck Guzis <cclist at sydex.com> wrote:
For example, I figured that it would be convenient to
tell single-sided
formats from double-sided (drives were introduced later, but it was
inevitable that they would appear). So I started single-sided sector
addresses with 128--and double-sided with 192. That way, no matter where
you were on the floppy, a simple Read ID would tell you what you had.
Clever. Since I'm apparently not going to try to be format-compatible with
anyone else for 8-inch MFM, I may as well do that. For 8-inch I could
assume that double-sided media is always formatted double-sided, but I may
as well allow for formatting a single side of a double-sided medium. For
FM I'll only support single-sided (on either single- or double-sided
media). I suppose I'll try the MFM read ID first, and an FM read ID if
that fails, to optimize for the "native" case rather than the interchange
case. It's too bad that the controller isn't capable of formatting a disk
with one small FM sector on a track that is otherwise MFM. I could
certainly hack up something to do that, but I really want the machine to be
able to format its own disks without needing a hardware mod.
I'm vaguely considering a format with eight 1024B sectors and one 512B
sector per track (68 logical sectors). That would have the drawback of
breaking the alignment of allocation blocks to physical sector boundaries,
except that I could put the "extra" sector at the end of even tracks, and
at the beginning of odd tracks. (Or, for double-sided, at the end of
tracks on side 0 and the beginning of tracks on side 1.) Taking into
account skew, the physical position of the "extra" sectors on the tracks
might vary.
I only need one reserved track, so I can put the directory at the start of
track 1. Hmmm... maybe I should tell CP/M that it's 154 tracks of n
sectors rather than 77 tracks of 2n sectors, so that I truly only need one
reserved track, and not a whole reserved cylinder.