On Fri, 2003-12-05 at 21:44, Tom Jennings wrote:
My suggestion (worth every cent you paid for it) is to
use a whole damn
computer on the other side of the HD controller.
Construct an electrical interface of the simplest possible hardware to
get the job done (electrical interface, buss termination as required,
etc) and do the whole job in C or even Perl.
I agree, with the only caveat being that the computer required doesn't
have to be something costing a large amount of money. If it needs
something with a CPU in the GHz range then no thanks (personally), but
if all that's needed is (using a PC for the sake of argument) a high end
486 or low end Pentium class board (i.e. that can be had for free / beer
money) then it seems like a reasonable reuse of hardware which has no
collection value anyway.
As you say, do the bulk of the work in software. Use a free OS (or a M$
one if you desperately want the financial outlay) and you have all the
necessary drivers already for the 'rest' of the system (serial /
Ethernet / IDE disk / SCSI disk / whatever) to make whatever solution
suits.
The only coding effort is to talk to the custom homebrew interface that
handles ST506 or whatever flavour of drive you're needing to emulate.
This could simply read / write to a file image that represented the
emulated drive somehow. The surrounding OS and configuration would take
care of managing that file, whether it be a file on local or network
storage.
The hardware interface is the problem; in the case of ST506 it sounds
non-trivial and that's even assuming that once built the data stream
could be decoded and generated by the software (as I get the impression
that said data stream can change widely depending on what controller was
used to format the hard drive that you're emulating)
It does seem like a worthwhile project for someone who could take it on
though, as many older hard drives are coming to the end of their useful
lives.
cheers
Jules