Reverse-engineering WD1000, WD1001 hard disk controllers
spacewar at gmail.com
Sat Nov 19 23:19:49 CST 2016
On Sat, Nov 19, 2016 at 6:20 PM, Kip Koon <computerdoc at sc.rr.com> wrote:
> When you have a stable version, please let me know.
I'll try to remember to post an update here.
I would be interested in seeing the disassembled source code for the
> WD1000 8-bit card I modified years ago.
> I had an MFM hard drive or two that I was trying to format, but the 4 sets
> of hard drive parameters offered by the WD1000 didn't match one of my hard
> drives so I replaced one of the sets of hard drive parameters by reading
> the eprom using my homebrew eprom burner setup I built for my Color
> Computer 1 F Board version way back when I was in my 20s.
The WD1000 itself doesn't store any hard drive parameters. It just assumes
that the host knows the correct ranges of cylinders heads, and sectors to
use. I think the EPROM you describe that has stored drive parameters must
be have been a firmware BIOS EPROM that was executed by the host system.
It's possible that some variation of the WD1000, e.g., for ISA bus, had
such a thing, but I've only concerned myself with the firmware that
actually runs on the 8X300 processor on the WD1000, so nothing I'm doing
will help in any way with an EPROM as you describe.
I did design and wire-wrap a WD1000 to Color Computer 2 interface back in
the day, and wrote an OS/9 driver for it, though I never wrote any boot ROM
for it, so I had to boot from floppy.
> After reinstalling the WD1000 back into the computer, the WD1000 came
> right up and asked for my choice to pick for the hard drive parameters to
> use to format the hard drive with! It even included the set of hard drive
> parameters I had put into the eprom! I was very proud of what I had
Rightfully so. I've done a lot of firmware hacking over the years, but I
never needed to do it to change disk geometry. It really sucked that so
many controllers had only hard-coded choices in their BIOS ROMs; thankfully
by the 1990s almost all of them were configurable.
More information about the cctalk