ST-506 hard drive emulation

Tony Duell ard at
Tue Jul 26 13:01:38 CDT 2005

> I'm not sure how complex such a box would be. I *think* an ST506-
> interface drive looks pretty much like a big floppy, just with more

Correct. Don't uou have at least one ST506/ST412-interfaced drive schematic?

> heads. Far as I know, it doesn't do anything intelligent on the drive
> itself, just responds to head select / step commands from the controller
> and reads or writes data.
> The bit I don't know is the nature of the data signal at the interface -
> it uses +/- signal lines for both read and write data. I'm not sure if
> that's an analogue signal or a digital one.

It's differentical digital. The line drivers are 26LS31s, the receivers 
26LS32s (at least normally). It's much the same as the floppy read data / 
write data line, just faster.

The problem is that although the signal is digital in amplitude (2 
states), it's analogue in time. There are restrictions (both minimum and 
maximum) on the time between data pulses, but apart from that you can 
essentailly do what you like. The drive does not impose any restrictions 
on the data format, the format of the sector header, etc. You could write 
18 bit words if you wanted to.

> I could imagine a device containing a pile of non-volatile memory in a
> row/column arrangement. There'd be a free-running counter to address the
> memory row and simulate the rotation of the drive (this would also drive
> the index line when at address 0). Then there'd be a second counter
> linked to the memory column and controlled by the step line on the
> interface, in order to simulate a drive track; this would also drive the
> track 0 line when at address 0.  
> OK, that's only simulating a single head; but it just scales up with
> more memory planes to simulate more platter surfaces.

You need to sample and replay at about 10 times the data rate. That's 
50MHz. Do-able, but a bit harder than you imply. You need to keep on 
replaying a given track's data, and do the right thing (I nearly said 
write thing :-() if write gate gets asserted. Remember the interface is 
bit serial, preesumably your memory is at least 8 bits wide, you may well 
have to start writing in the middle of a memory word.

As I said, it's not that difficult, just a bit harder than you may have 
first thoguth.


More information about the cctech mailing list