On Sun, 2003-12-07 at 10:47, Tony Duell wrote:
So you have to buffer an entire cylinder's-worth
of data in the emulator,
and keep on squirting out that part that corresponds to the selected
'head'. When the classic steps to a new cylinder, you have to save one or
more of the 'tracks' in the emulator's RAM buffer (you can flag writes to
particular tracks, since there is a write gate line, but you also have to
assume that it's possible the classic has written to all 16 tracks in the
cylinder -- it certainly would when formatting). Then you have to reload
all 16 tracks-worth of data from the modern hard disk, and then assert
seek-complete to tell the classic that the drive (emulator) is outputting
the data for the new cylinder.
I had forgotten this about ST506!
But hell, RAM costs being what they are, the whole disk image could be
kept in memory, with a dirty bit and/or timer to write changes to
permanent store to avoid data loss, in the simulator.
Hmm... how about a hardware simulator, with a USB port on the back side
that connects to a host computer. You load the "ST506" image into the
simulator, copy it back out for safe keeping when you're done.