On Jul 26 2005, 14:42, Jules Richardson wrote:
...
> I don't think there's a need to
handle anything complex in the virtual
> drive. I believe an ST506 drive's purely a data store/replay device and
> it knows nothing of the actual data stored on it - most of the circuirty
> on board is presumably just motor control and head amplifiers / filters.
You'd need to encode the bits correctly so the data/clock seperator
That's just what I'd not want to do. You can't make any asumptions about
the clock/data encoding scheme if you want this emulator to be universal
(after all, a real ST506 doesn't do anything to the pulse stream other than
record it on the disk, unchanged [1]).
That was the reason for the high (10*, 8* would probably be OK as well)
sampling rate. Just record the pulses to memory, then play them back.
Yes, it's wasteful of memory, but it means it should work with any ST506
controller (and there are some very strange ones in classic computers).
[1] THat is a simplfication. IIRC, a rising (falling?) edge of the write
data line causes a flux transition on the disk. The opposite edge is
ignored. On read, a flux transition on the disk causes a pulse on the
read data line, the width of this pulse is fixed (determined by a
one-shot on the drive logic board). There are restrictions as to how fast
and how slowly you can send pulses, due to the design of the read
amplifier/filter.
-tony