Joe Stegeman wrote me because he had a problem. He wanted to add another DSSI drive to his MicroVAX 3400 but he didn't have any ID plugs. He had blank ones but none of the numbered ones. DEC of course doesn't sell them any more and while some resellers will that's a pain, and he had blank ones after all.
And yet, a similar problem occurs when people have a KFQSA (DSSI Qbus adapter) and they want to run a DSSI drive in a cabinet that DEC never really expected DSSI drives to inhabit. (The BA123 comes to mind.)
The fact is, the drive can, on its own, operate without a front panel, however you have to tell it that you want it to do that. If you have a KFQSA this is a fairly difficult task, however if you've got a KA640 or a KA660 its pretty easy (or other VAX with DSSI in the monitor).
So when I boot up TestVAX this is what I see when I type "SHO DSSI"
>>>sho dssi DSSI Node 2 (RF30D) -DIA2 (RF30) DSSI Node 7 (*) >>> |
And as you can see from the picture, that's expected because I have the '2' plug in the drive control bulkhead. Now let's say I wanted to use that drive as UNIT 1 ? I don't have a plug that says UNIT 1, I've just got a #2 and two blanks.
This is where the secret power of DSSI comes into play. As it turns out DSSI drives are in fact embedded systems that you can talk to, run programs on, etc. You get to talk to that computer using something called the DUP protocol.
On the KA640 (MicroVAX 3300/3400) you type
SET HOST/DUP/DSSI <num>
Where <num> is the unit number you want to talk to, so on TestVAX I use unit 2 and this is what I get:
>>>set host/dup/dssi 2 Starting DUP server... Copyright © 1988 Digital Equipment Corporation DRVEXR V1.1 D 1-NOV-1988 13:39:09 DRVTST V1.1 D 1-NOV-1988 13:39:09 HISTRY V1.0 D 1-NOV-1988 13:39:09 ERASE V1.3 D 1-NOV-1988 13:39:09 PARAMS V1.2 D 1-NOV-1988 13:39:09 DIRECT V1.0 D 1-NOV-1988 13:39:09 End of directory Task Name? |
Is that cool or what? I've just logged into a disk drive and gotten a directory of a set of utilities that are stored in its firmware. What do they do you ask? Well some are obvious and some aren't.
Task Name
|
Description
|
---|---|
DIRECT | This task gives you a directory of the installed utilities. That is what you get by default. |
DRVEXR | This task is the drive Exerciser and can tell the drive to do seeks and such. |
DRVTST | This task is the drive tester, this actually runs on power up and when you get the 'fault' light it means that this program found something it didn't like. |
HISTRY | This task tells you about the history of the drive, when it was built, its drive type, and ECOs and such. It also tells you how many hours the drive has on it (next to last number) and how many times power has been cycled (last line). |
ERASE | Fairly obviously, this task just tells the drive to reformat itself. If you ever want to sell a drive but you don't want the person who gets it to have access to the data on it, then log in and run ERASE and that will clean it pretty effectively. |
PARAMS | This is the interesting one, these are parameters that control the drive and this is how we get the drive to do what we want. |
Yup, what we want is to change the unit number and we want the drive to tell the DSSI controller what its unit number is, rather than have it respond to the one on the disk bulkhead. So we start up the PARAMs task and have it show us the MSCP parameters.
Task Name? params Copyright © 1988 Digital Equipment Corporation PARAMS> help EXIT HELP SET {parameter | .} value SHOW {parameter | . | /class} /ALL /CONST /DRIVE /SERVO /SCS /MSCP /DUP STATUS [type] CONFIG LOGS DATALINK PATHS WRITE PARAMS> show /mscp Parameter Current Default Type Radix --------- ---------------- ---------------- -------- ----- MSCPNVR 2020202020202020 2020202020202020 2020202020202020 2020202020202020 2020202020202020 2020202020202020 2020202020202020 2020202020202020 String Hex RO UNITID 1502401184806919 0000000000000 Quadword Hex RO ALLCLASS 2 0 Byte Dec B MEDIAID 2264601E 2264601E Longword Hex RO U UNITNUM 0 0 Word Dec U FIVEDIME 1 1 Boolean 0/1 B FORCEUNI 1 1 Boolean 0/1 U FORCECID 1 1 Boolean 0/1 RO CNT_TMO 60 60 Word Dec RO PARAMS> |
As you can see from the printout above, when you start the PARAMs task you get a new prompt of the form PARAMS>, one of the more useful commands here is HELP. The output from HELP shows what you can do. Since I'm focused on using a drive without the ID plug, this discussion will stick with the MSCP parameters of the drive (of which UNITNUM is one).
This output table from PARAMS defines the name of the unit in column 1, the current value, the factory default value, the type expected and the radix of the type. Then there is a flag (RO) which will tell you that the parameter is "read only", (U) updatable, and (B) which I've never quite figured out.
The above shows you that the UNITNUM defaults to 0 and is currently set to 0. However, the flag FORCEUNI is set to 1 (also its default) Now if you can change UNITNUM and FORCEUNI with the SET command. This is shown below. Be sure and use the WRITE command to save your results before you exit the PARAMs program!
PARAMS> set unitnum 1 PARAMS> set forceuni 0 PARAMS> sho /mscp Parameter Current Default Type Radix --------- ---------------- ---------------- -------- ----- MSCPNVR 2020202020202020 2020202020202020 2020202020202020 2020202020202020 2020202020202020 2020202020202020 2020202020202020 2020202020202020 String Hex RO UNITID 1502401184806919 0000000000000 Quadword Hex RO ALLCLASS 2 0 Byte Dec B MEDIAID 2264601E 2264601E Longword Hex RO U UNITNUM 1 0 Word Dec U FIVEDIME 1 1 Boolean 0/1 B FORCEUNI 0 1 Boolean 0/1 U FORCECID 1 1 Boolean 0/1 RO CNT_TMO 60 60 Word Dec RO PARAMS> write PARAMS> exit Exiting... Task Name? |
Now that we've exited (see above) we're back to the DUP prompt of "Task?" type exit again to get back to the VAX console prompt as shown below and now look to see what DSSI drives are out there.
Task Name? exit Stopping DUP server... >>>sho dssi DSSI Node 2 (RF30D) -DIA1 (RF30) DSSI Node 7 (*) >>> |
Notice that now the unit that shows up is DIA1, not DIA2 which was the case when it was forced to follow the ID plug in the front of the box. However that its still DSSI unit 2 to the controller! Well we can fix that too by pulling the 10 pin cable from the drive to the drive bulkhead. That prevents us from being able to set the drive online and offline, however when we rescan the DSSI bus ...
KA640-A V4.1, VMB 2.5 Performing normal system tests. 41..40..39..38..37..36..35..34..33..32..31..30..29..28..27..26.. 25..24..23..22..21..20..19..18..17..16..15..14..13..12..11..10.. 09..08..07..06..05..04..03.. Tests completed. >>>sho dssi DSSI Node 0 (RF30D) -DIA1 (RF30) DSSI Node 7 (*) >>> |
You can see that the drive has now shown up as Node 0 (although still unit number 1 so VMS would still boot this as DIA1)
"But, but..." you say, "I've only got a "0" ID plug, if the unplugging the 10 pin cable makes it Node 0 I'm still screwed right? Nope, not at all.
All DSSI drives have a 3 bit SIP switch mounted on them. Generally its near the connectors, care to guess what this sets? Yup! The DSSI node number when there isn't a bulkhead with an ID plug present. So I pull out the drive, set the switch labeled as '1' (they are 1, 2, and 3) to "up" and do the rescan.
KA640-A V4.1, VMB 2.5 Performing normal system tests. 41..40..39..38..37..36..35..34..33..32..31..30..29..28..27..26.. 25..24..23..22..21..20..19..18..17..16..15..14..13..12..11..10.. 09..08..07..06..05..04..03.. Tests completed. >>>sho dssi DSSI Node 4 (RF30D) -DIA1 (RF30) DSSI Node 7 (*) >>> |
Voila, the drive now assigns itself node 4, and unit 1 on the DSSI bus! Problem solved.
Ok, so for closure, care to guess what happens if we turn FORCEUNI back off? Yup the drive then takes its unit number from the node number and shows up as unit 4.
>>>set host/dup/dssi 4 Starting DUP server... DSSI Node 4 (RF30D) Copyright © 1988 Digital Equipment Corporation DRVEXR V1.1 D 1-NOV-1988 13:39:09 DRVTST V1.1 D 1-NOV-1988 13:39:09 HISTRY V1.0 D 1-NOV-1988 13:39:09 ERASE V1.3 D 1-NOV-1988 13:39:09 PARAMS V1.2 D 1-NOV-1988 13:39:09 DIRECT V1.0 D 1-NOV-1988 13:39:09 End of directory Task Name? params Copyright © 1988 Digital Equipment Corporation PARAMS> set forceuni 1 PARAMS> write PARAMS> exit Exiting... Task Name? Stopping DUP server... >>>sho dssi DSSI Node 4 (RF30D) -DIA4 (RF30) DSSI Node 7 (*) >>> |
So what have we learned? We've learned that even if we don't have one of those little plastic ID things we can still use our DSSI drives.
We've learned that if we only have ID plugs 2 and 4 we can still make our drives appear as unit 0 and 1 to VMS by overriding their unit numbers.
And we've learned that you can run your DSSI drive with out a drive bulkhead at all and its ok.
Finally, we've learned that you can log into your drive and ask it things, as my RF30 here has over 66 thousand hours of on-time recorded (that's over seven and one half YEARs of continuous service) we know that these things are pretty damn reliable!