Subject: Re: Got It (VAX8200)
To: None <port-vax@NetBSD.ORG>
From: John Wilson <wilson@dbit.dbit.com>
List: port-vax
Date: 01/09/1998 02:18:44
>   I hope that you have really meant "SDI" where you have written "MSCP".
>(See my lengthy posting of 20-DEC-1997 for a description of the differences
>between the two). If this applied to all MSCP controllers, the universe
>would look completely different from the way it does. Suppose I have two
>RQDX3s in a MicroVAX (I can do that, right?). I can have 4 MFM disks on
>each, giving me a total of 8, right? On each RQDX3 the 4 MFM disks can't be
>numbered anything other than 0-3, right? The jumpers on the drives don't go
>beyond 3, and they don't matter anyway since the unit number is determined
>by the position of the control and data cables on the MFM signal
>distribution board, right? Then the drives on the first RQDX3 will be
>called DUA0-DUA3 and the ones on the second RQDX3 will be called DUB0-DUB3,
>right? And you are saying that it's impossible, right? Or are you saying
>that the second RQDX3 will automagically detect that it's secondary and
>bump all unit numbers up by 4? But how can it detect that it's secondary?

Good point.  All I can say is, according to The Way Things Should Be this
is wrong (the drives are supposed to be settable to a much wider range of
unit numbers).  Then again, the RQDX1/RQDX2 didn't pass grants properly so
unless I understand wrong you couldn't have >1 in a system anyway, maybe
by the time the RQDX3 came along they figured it wasn't worth losing too
much sleep over (since it's a stupid rule anyway) so they didn't "fix" it.

Anyway in general it's not up to the hardware to auto-configure, the user
is supposed to order the unit select plugs or set the DIP switches or
whatever to make sure every drive has a unique unit number no matter what
controller it's on.  So I certainly didn't mean RQDXes could detect each
other!  However I did mean MSCP not SDI.

Quoting from page 4-12 of the doc (whose part # is below):

All controllers and units must support unit numbers in the range 0 through
251 (inclusive);  unit numbers between 252 and 65535 may be supported or not
at the controller's and/or unit's option.  [...]  The intent of this broad
range of unit numbers is that, within a device class, all units that are
accessible to a single host must have unique unit numbers.

Sounds like the RQDX1/2/3 blew it!

>   P.S. You were referring to "the MSCP spec". What have you really meant
>by that and where have you got it?

What I have is the UDA50 Programmer's Doc Kit (QP905-GZ, still a good part
# last I checked and well worth the price), which appears to be the MSCP
spec with some of the juicy parts edited out (but the basic stuff still in),
plus an appendix with particulars about Unibus interfaces (and of course it's
obvious how the Q-bus ones are similar, the four "reserved" address bits
are even labeled "QQQQ").  To my knowledge this is the only publicly
available manual on MSCP, if anyone knows of anything else, especially
something that covers TMSCP, I'd love to hear about it!

There's also some more description (and sources to a really ancient VMS DU:
driver) in a patent (available on womplex), I don't have the # in front of
me right now though.

John Wilson
D Bit