Previously Ed said:
The actual end result of this project would be Like this:
Custom machine's floppy port ---> Floppy emulator type device ---> New
PC w/serial port or whatever is easier on this side.
Only the custom machine side needs to use the floppy port.
The custome machine is much like an embedded pc with a custom o/s, so I
cannot add hardware or drivers.
Surprisingly there a quite a few of these machines out there.
I am willing to put in the time to design such an interface if I can find
sufficient info.
I am quite adept at the x51 series of microcontrollers and was planning on
using it.
I have already designed, and am currently distributing a "Teac MT-2" type
emulator that is working quite well that replaces these tape drives.
If you actually have experience with this and you don't want any kint
of real networking, just the custom machine reading from and writing
to floppy, then it is easier.
If so, this is not so difficult, as long as a standard floppy format
is used. I have a bit of experience with this, since a long time ago I
build a device for copying 720MB floppys by digitizing the signal from
them on an Atari ST. This would read tracks with 250ns resolution into
the computers memory and then write them out again on a different
floppy. I also looked at the data a bit during that project. This
device was able to copy any floppy, whether copy protected or not.
For MFM, a track is essentially a sequence of sectors. Each sector
has a header with some special codes that are illegal in normal MFM
and serve as a head mark. Headers are only written during
format. Then there is a bit of space, to allow the contoller chip to
switch to write mode (if it writes) and then there is the data
part. It consists again of a header with the special codes and then
the data bytes and a final checksum. The MFM clock for 1.44MB disks
is 1MHz, I believe. Floppy controllers use a 16x clock to read the
signal in the middle of the MFM ''bit'' and sunchronize on the
edges. Using an 8MHz sampling rate should therefore be enough. You
might want to add a serial/paralell converter to you only have to
read/write one Byte per microsecond.
Of course you need to process the data and Synthesize the data in
realtime. Hmmmm. Maybe one 80x51 for reading, that has a really high
clock (I believe I have heard of a 40HMz variant?) and one (can be
slower) for writing to the virtual floppy? Of course you need to
update the one pretending to be the floppy within 200ms (one disk
revolution) with what was written.
On a second layer you of course need to understand the filesystem of
the custom system. Simple media emulation will not be enough. And if
you want to transfer data to the custom system you will need to
emulate a floppy eject, since the custom system most likely can not
handle the data on floppy being changed from the outside.
Ok, to get the exact info about the floppy layout, you can look into a
floppy controller manual. The ATARI ST used a WD-1772 controller,
which is PC compatible. This is only a DD (720 kB/disk) controller,
but it records the same as a HD (1.44MB/Floppy) controller.
You can get a scan, which includes sector layout, here:
http://www.zimmers.net/anonftp/pub/cbm/documents/chipdata/wd177x/index.html
I don't know which floppy controller chip (or emulation thereof)
is used in todays PC's, but it should be relatively easy to find
out and and get documentation about. Anyways, the WD-1772
datasheet should get you a pretty good idea what is needed for the
low-level side of things. Significantly more difficult than
emulating a tape drive, but doable, I think.
For the filesystem side, it entirely depends on
the filesystem used.
Arno