Philip Pemberton wrote:
I'm quite tempted to make the sync word
configurable, so you could sync
on any 8-bit MFM sequence you liked. I know there's at least one other
'missing clock' sync word in common use (IIRC it's 0xC1 with a missing
clock in the second nibble).
That seems sensible - along with the option of no sync word at all (in which
case you count index pulses and stop after n counts - where n is also
configurable)
The other 'interesting' bit is going to be
handling read/write for
hard-sectored discs. Reading shouldn't be too hard - AIUI, you'd wait
for an index pulse, start reading, then wait for N+1 index pulses (where
N=number of sectors -- n+1 provides one sector of overlap) and stop.
Yep - the only gotcha is that the sector pulses and index pulse is on the same
line, but the index pulse has different timing to the sector pulses to allow
differentiation.
Writing back would involve a bit of 'fun'
I'd thought the same thing. I wasn't even going to think about it at this
stage to be honest - my primary goal is to allow archiving of data onto modern
media (and interpretation of that data); being able to recreate the original
on magnetic media is more of a secondary task.
I think I'd mentioned this privately to Chuck the other week, but I'm not sure
if "playing back" raw data to a drive will even work, given that there will be
slight differences in drive RPM between drives: a track buffered on a "slow"
drive would run past the end of track on a "fast" drive by a few bits. It
makes me wonder if the only way to do a 100% reliable write is to interpret
the data that you're writing, lay down a format (which is guaranteed not to
overflow available space), then lay down the actual data.