Chuck Guzis wrote:
[catweasel]
Hmm,
that's interesting. Does it store fixed length counts in the buffer, or
does it use variable-length counts with a couple of bits of "header" to say
how many bits the count takes up?
Each count takes up 7 bits of an 8-bit byte. The high-order bit
records the presence of an index pulse (essential for decoding hard-
sectored formats). He gets around the fixed-width issue by having
several (3, IIRC) programmable clock speeds. As I said, brutally
simple.
The more I think about it, the more I like the idea of recording timings
between pulses, rather than oversampling the entire track - the former seems
the only way of recording exactly what's coming off the disk. I think I'm
still aiming for a sampled approach at first, but I can see a project that
records transition times waiting in the wings.
I need to run some calculations to see what values I get for both the shortest
time between flux transitions (according to bit density of the media) and the
longest time (assuming slowest floppy rotational speed and track with just a
single bit on it).
If the numbers work out, then I wonder if an improved format would be to have
variable-length counts: say three bits of "header", with the first bit
recording presence/absence of index pulse (vital, as you say), then two bits
which state how many bits make up the count value. That gives four possible
lengths of count which could be encoded....
From there I can figure out the maximum buffer memory needed. gut feeling is
that it should all fit within 512KB though, given the CW's 128KB and three
clock speeds.
Use of three different clocks as with the CW bugs me. I think I want the data
that comes out of the device to reflect exactly what's coming out of the drive
interface, no questions asked - and no need to check and tweak any parameters
without resampling.
GCR can be very challenging. You have an idea of the
way it works
and what the "prohibited" bit combinations probably are, but you
still don't have your mappings. I've taken several tracks and, based
on a suspicion that each sector probably contained some sort of
header information that included a cylinder number, have worked from
that.
Where are you typically finding such formats - other than the well-known
machines that used GCR? Is it more common in some of the factory process
control stuff etc. that you look at, rather than home/business systems?
Eventually, there will be an "Aha!" that
usually comes sometime around
bedtime. :-)
I usually get mine when waking up - and if I don't scribble them down
somewhere immediately then they're gone by the time of the first coffee :-)
cheers
Jules