A little background on the subject...
I'm working with a number of old 100 TPI 5.25" HS diskettes and a
catweasel to read them. The data encoding is plain MFM and thus far,
the whole project involving some 27-year old media is going pretty
well, considering the age and condition of the media.
Occasionally, I'll pick up a data error (no big surprise). According
to what I've been able to determine from the CW output, most of the
errors involve extraneous noise in the read output. In other words,
if the normal pulse timings for MFM are 0.5 1.0 and 1.5 cell-time
units, a pulse will sometimes be seen that occurs less than 0.25 time
unit from the previous one.
The CW output is essentially a bunch of 7 bit numbers that express
the number of clocks seen since the last pulse was read.
My original thought was to ignore each noise pulse by adding its
clock-count value to that of the next pulse that comes along. In
other words, if I get a stream of pulses with clock counts of, say,
10 20 30 20 5 15 10..., I'd skip the 5 pulse and convert the 15 to a
20.
This doesn't work well. While it's better than acually counting the
extraneous pulse as a data pulse, much better results are obtained if
the pulse is simply ignored and the next pulse clock-count is used as-
is without "correction".
Does anyone know why this would be? I can't rationalize it.
Cheers,
Chuck