On 5/20/2006 at 7:56 AM Brad Parker wrote:
This sounds right to me. It would not be hard to make
something in
hardware to pull the clock and data back out. You'd then have (as I
recall) the raw bytes for each sector (i.e. header + data + trailer).
If you knew how the controller was programmed you could then easily find
the data. It should also be reasonble to create the stream in the
opposite direction. Some simple tests should prove it out.
Please suffer a fool and allow me to toss a few random thoughts out. I
think it's a bit more complicated than what's been laid out.
There are fields not seen on the output of an IDE or SCSI drive that are
present on an MFM one, such as address headers (IAM, IDAM), ECC bytes,
preamble, etc. And note that there will be a shift in timing when the RWC
kicks in.
Bit rate on an ST412, IIRC is about 5MHz over differential lines.
The old WD100x MFM controllers could not keep up a sustained data transfer
at unity interleave. IIRC, an interleave of 3:1 was about the minimum at
which you could perform multi-sector reads, so you may want to take this
into account.
Since the controller isn't going to tell you what it's looking for, you may
have to pass an entire track's worth of data past the controller before it
finds the sector it's reading or writing. And, unless you want to incur
sizeable delays, you'll need to simulate the rotation of the disk itself.
Perhaps you could simulate the disk rotation by using a 256Kbit shift
register to hold track data with the index mark generated every time
position 000 went by.
Fortunately, I believe that the WD1000 or 1001 controller OEM manual is on
Bitsavers, so you've got a lot of very valuable information already. For
the remainder, one of the WD "silver books" with chip specs should take
care of things.
As far as handling control lines, that should be pretty simple.
My feeling is that this is a bit too weighty for a PIC to handle.
---------------
OT: Has anyone run into this document before? It looks to be a very
comprehensive guide to "everything you wanted to know about the PC":
http://ftp2.de.freebsd.org/pub/mpsf/pc_doc/dosbesch.ps
Does an English version exist?
Cheers,
Chuck