idea for a universal disk interface

Paul Koning paulkoning at comcast.net
Wed Apr 13 08:47:20 CDT 2022



> On Apr 13, 2022, at 1:35 AM, shadoooo via cctalk <cctalk at classiccmp.org> wrote:
> 
> Hello,
> I'm a decent collector of big iron, aka mini computers, mainly DEC and DG.
> I'm often facing common problems with storage devices, magnetic discs and tapes are a little prone to give headaches after years, and replacement drives/media in case of a severe failure are unobtainable.
> In some cases, the ability to make a dump of the media, also without a running computer is very important.
> 
> Whence the idea: realize an universal device, with several input/output interfaces, which could be used both as storage emulator, to run a computer without real storage, and as controller emulator, to read/write a media without a running computer.
> To reduce costs as much as possible, and to allow the better compatibility, the main board shall host enough electrical interfaces to support a large number of disc standard interfaces, ideally by exchanging only a personality adapter for each specific interface, i.e. connectors and few components.
> 
> There are several orders of problems:
> - electrical signals, number and type (most disk employ 5V TTL or 3.3V TTL, some interfaces use differential mode for some faster signals?)
> - logical implementation: several electrical signals are used for a specific interface. These must be handled with correct timings
> - software implementation: the universal device shall be able to switch between interface modes and be controlled by a remote PC
> 
> I suppose the only way to obtain this is to employ an FPGA for logic implementation of the interface, and a microprocessor running Linux to handle software management, data interchange to external (via Ethernet). This means a Xilinx Zynq module for instance.
> I know there are several ready devices based on cheaper microcontrollers, but I'm sure these can't support fast and tight timing required by hard disk interfaces (SMD-E runs at 24MHz).

Interesting idea.  I wonder if it's cost-effective given the wide variety involved.

It's surprising how tight timing you can manage with some modern programmable PIO blocks in devices like the Raspberry Pico or the BeagleBone Black.  David Gesswein used the latter for his MFM emulator.  That's not quite as fast as the SDM interface you mentioned.  And I've used the Pico for some comms work, and realized at some point that it's fast enough to do Ethernet in software.  Again, not quite as fast but close, and with care and under certain constraints that device (a $4 item) can indeed generate and receive 24 MHz waveforms.

The thing that makes me wonder is the interfacing part.  Disks might have anywhere from a few wires (SI port on DEC RA series disks) to dozens of wires (older disks like RP04 or RK05).  Signal levels might be TTL at various voltages, differential, or even analog signals.  Would you want to emulate the disk to formatter interface, or the formatter to controller interface?

Another difficulty may be the low level format details.  As I recall, there is a massive amount of research and code that went into David Gesswein's emulator to understand and reproduce the great variety of bit level layouts.  If you're at a low enough level that might not matter, but if you want to manage data in terms of what the host thinks of as blocks, it does.

Things might get very strange with more exotic stuff than you find at DEC -- for example, emulating IBM 360 disk drives with their variable length blocks and key/data capability would be interesting.  Or CDC 6000 disks with sectors containing 322 12-bit words.

So, it seems that building a device to emulate one class of disks with one class of interface, as David has done, is hard enough.  Making something much more general is appealing, but I wonder if it's so hard, and requires so many parts, that it becomes infeasible and/or too expensive.

	paul




More information about the cctalk mailing list