Unibus disk controller with modern storage
paulkoning at comcast.net
Thu Oct 20 15:31:12 CDT 2016
> On Oct 20, 2016, at 4:27 PM, Noel Chiappa <jnc at mercury.lcs.mit.edu> wrote:
>> From: Paul Koning
>> I'd suggest the Massbus series, they are just about as simple as
>> anything and that's where you find the largest capacities short of MSCP
> If you want to exactly emulate only DEC controllers, yes. (Of course, such a
> project should do that, for binary compatability.)
> However, as I think I have mentioned before, I'm actually enamoured of taking
> a very simple controller like an RP11, which has lots of spare disk address
> bits, and defining an 'RP11-E' which maxes out the virtual drive size without
> changing _anything_ about the register format other than using unused bits in
> the cyclinder address register. That will produce disks with 2^28 blocks, or
> 2^36 bytes, or 64GB. That's most of a large SD card... :)
That's fine if your target is an OS for which you can write drivers. It wouldn't help RSTS users.
> Not too useful to those without the ability to tweak drivers, but... there's
> another issue with the older controllers, which is that they only support
> 18-bit addressing, and for use on QBUS machines, where one would really like
> to be able to do DMA to anywhere in the 22-bit space (for Unix, this would be
> for swapping, and raw I/O - buffered I/O would be fine with 18 bits). So maybe
> an updated version of those old, simple controllers would actually have some
> use. (I'd certainly want them for my Unix boxes.)
Q22 disks existed on MSCP, of course. And RL02 also, if I remember right.
>> Apart from MSCP, avoid RL emulation also.
> Why avoid RL's? Not the greatest controller, I agree, but it is a 'lowest
> common denominator' drive for a certain era of gear.
Significantly uglier program interface, so more complex emulation compared to RK05 or RP06. Not nearly as hard as MSCP, of course.
A possible answer for a lot of this is to do the actual emulation algorithms in software, in an embedded CPU inside the FPGA. For MSCP that's obvious, but it would work for the others as well I suspect. The main trick is to have the register side effects done right. That can get complicated, as the DMC-11 example illustrates.
More information about the cctalk