On 2026-01-17 04:16,
terri-...@glaver.org wrote:
> [Please forgive my brevity - I've got my nose right up against a tiny 14"
> screen to read this and related documentation since I'm in a hotel room
> with malfunctioning climate control in 27-degreee (F) weather.]
>
> On Friday, January 16, 2026 at 7:48:45 PM UTC-5 b...@softjar.sewrote:
>
> Well. Controllers have a slightly more relevant difference, yes. In
> that
> the addressing differs if we talk about different buses. But an
> RQDX3 or
> a KDA50 makes no difference to the PDP-11 (pick any other Qbus MSCP
> controller as well if you want to). The controller can call itself
> whatever. It still works the same from the software point of view.
>
>
> I don't recall offhand if there's a bit specifying whether MSCP BBR is host-
> initiated or controller initiated, or if the port driver bases that
> decision on
> controller models it knows about.
I don't think there is any information about that at all. It's just that
a controller that handles it on its own will never report bad blocks
that need replacing. But I could be remembering wrong.
But essentially, that means you don't know or have different code. You
just have some handling of reported bad blocks, if you want to, or just
report, ignore and continue if not. The 2.11BSD driver for example does
not handle bad block replacement.
> I really should do a test SIMH build that "takes off the guardrails" and
> lets you do things like put a KDB50 on a Q-bus system, as well as allow-
> ing arbitrary device type and media names, and see what goes "kaboom".
Again. How do you even know if it's a KDB50? And a KDB50 would be
something you connect to VAXBI, so I don't think it uses a structure in
memory that looks the same as for Qbus controllers. But the identity
bytes reported by the controller are not used by the drivers for
anything. At least not in RSX, and from what I gathered from Paul K.
RSTS/E don't either. Even though RSTS/E sometimes is a bit more picky/weird.
> The disks obviously don't care what bus your system have.
>
>
> To a great extent, true for MSCP. But an RD54 appears as a DU-class de-
> vice even though its physical interface is ST506. The same is true of the
> early CD-ROM devices which use the LSMI interface. But certainly any
> combination of real-world disk + controller that speaks MSCP is going
> to look pretty much the same to the host OS. And I doubt a host OS is
> going to go out of its way to check for impossible combinations and re-
> ject them.
Again. The disk don't care. Yes, an RD54 have a ST506 interface. Talking
to an RQDX3. But the disk don't know what an RQDX3 is even. It just
talks ST506, no matter what you connect it to.
And from the PDP-11 point of view, accessing an RD54 via an RQDX3 or an
RA73 via a KDA50 works exactly the same. And if you access that same
RA73 via an UDA50 on a Unibus machine is no different from the disk
point of view.
And there are no "impossible" combinations. The PDP-11 might query the
controller for an identity of a disk. But that is just a string, and
there are no strings that are "impossible". You can have a disk or
controller that says anything, and it's fine. It's just a string with no
actual meaning to the system. It only have some kind of meaning to humans.
> > Or, even odder, a case of an 18-bit Unibus controller sitting on
> a 22-bit
> > Q-bus. I doubt [m]any PDP-11 operating systems would know to allo-
> > cate a bounce buffer in low memory for the case of an 11/73 witha
> > RK611 controller. Of course, being an emulator it can just say "it's
> > magic". RSTS/E does have some sanity checks, mostly for J11 quirks
> > but there's some for an ENABLE/34 (I think that's what it was
> called).
>
> Note that an RK611 is not an MSCP controller by any definition, and
> thus
> is something completely different and irrelevant here.
> It's MSCP where disk "names" are just meaningless strings. Disk types
> for other controllers are a different story.
>
>
> I was just trying (badly, apparently 8-) to say that SIMH goes out of
> its way
> to support some impossible bus/controller combinations while being
> picky about drive model names in MSCP.
Ok. That is true. However, it certainly did happen that people put an
RK611 on a Qbus system via a bus adapter from Qbus to Unibus. So it's
less impossible than one might first think.
> I do remember a not-too-ancient heated debate about whether it made
> sense for SIMH to separately report the UDA50 vs. the UDA50A, even
> though to SIMH it was just a change in the model number byte. "Why do
> you want that?" "Well, it's two different variants of a real
> controller!". SIMH
> has the luxury of going (as my cat would say) "Feh!", whereas commercial
> emulators have to implement what customers want, or they aren't buying,
> even if the VMS device is connected to something utterly different in the
> host. I helped getting FDDI added to AlphaVM because without FDDI in the
> emulated system it was "no sale".
Unless you want to emulate some internal bugs and so on, there is no
real point in having both the UDA50 and UDA50A. But I don't see any
problems allowing you to set the actual ID reported by the emulated
controller to anything you can dream of.
> > If we're talking about MSCP or SCSI device identifiers, agreed.
> But the
> > various oddball combinations of hardware are generally allowed.
> In the
> > specific case of an RK611 on an 11/73, if there's more than 18
> bits worth
> > of memory, you get:
>
> Again. This was about MSCP.
>
>
> And again, SIMH allows "impossible in the real world" combinations of hard-
> ware but doesn't let you pick your own MSCP device names. I am expressing
> support for your assertion, please give me a little credit 8-)
:-D
> I was talking about model names. Sorry for using wrong/confusing
> terminology.
>
> The ones you think of as 5 characters are in fact three characters,
> plus
> that number.
>
> Basically, it's all encoded in one 32-bit number (you'll find this if
> you look up the manual). First you have five 5-bit values, which are
> letters. The first two letters are "class" (or something like that),
> followed by up to three letters which is the model name, followed by a
> 7-bit number which gives the whole thing.
>
>
> RAD50? Plus 2 more RAD50 characters and the remaining bits treated as a
> numeric value? I'm surprised DEC was so skimpy on storage for these names,
> particularly when compared to the size of an MSCP packet 8-)
No. It's not Radix50.
The layout is like this:
Five 5-bit values, which are letters. You can have 32 different values
in a 5-bit value. So all letters are possible, but numbers are not.
Then after those five 5-bit letters, you have a 7-bit number.
So an RA81 would be coded like this:
+-----+-----+-----+-----+-----+-------+
|00100|10101|10010|00001|00000|1010001|
+-----+-----+-----+-----+-----+-------+
D U R A _ 81
Basically, 1=A and so on. And the number is just a binary number with
seven bits.
And then you can do that as a 32-bit number, and that's the type ID for
the disk.
> So an RA81 is actually given as "DURA_<81>" (I hope you get the
> notion I
> used here.)
>
> PDP-11 OSes don't care about the "class" name, but VMS makes use ofit,
> which is why the RA60 is DJ: and not DU:
> The full 32-bit value for an RA60 is "DJRA_<60>". (I think it was DJ,
> right?)
>
>
> Yes, for no explicable reason. It can't be removable vs. fixed, since
> the RX50
> floppy and the RC25 cartridge are both DU. Maybe somebody didn't like the
> RA60, or maybe it really did need special handling.
I can't see any reason for that about the RA60. And on any PDP-11 OS,
the RA60 is a DU: device. It's only VMS that decided to go with a
different name for it.
> What happens if you use one of the unassigned device model bytes? There
> doesn't seem to be much rhyme or reason - we have DU intermingled with
> DI. For that matter, would the encoding of DUESE<20> break if instead it was
> BQTSE<20>? If RA60s are so special that they had to be DJ, what happens
> if a PDP-11 OS driver sees a BQ device type name instead of a DU one?
Nothing strange happens at all. At least not anywhere I've seen, or with
code I've looked at. This information is, in RSX, only used by the error
logger, and the type name is shown when you look at the device as a
user. That's it. The software itself actually only cares about the
reported capacity of the drive, which is independent of the type string.
> Maybe it's all just display fluff and nothing cares.
That is the case. And that is why I think it's silly that simh tries to
make it appear otherwise.
> Certainly the port/
> device
> driver combo can figure out that you can't write to a CD-ROM, presumably
> by looking at other info in the returned device characteristics
> (writable CDs
> didn't appear in VMS until SCSI / IDE models - the earlier ones had no pro-
> vision for writing in hardware).
Right.
> And then we go off into another
> unrelated-to-
> PDP-11 discussion, where the VMS DQDRIVER for IDE CD-ROMs supports
> 2048-byte sectors (because DEC had become such a niche market for op-
> tical drive makers that they were having trouble getting 512-byte support,
> even on SCSI drives. As I recall, DEC had built up a rather large
> inventory of
> 512-byte SCSI CD-ROMS due to "final lifetime buy" notices from manufac-
> turers. I believe Plextor was the last company to introduce a new 512-byte-
> capable SCSI CD-ROM.
DEC wasn't the only one. SUN also required CD roms that did 512 byte
sectors. And many (most?) CD rom drives I've come across will do that
happily, even today. I have a CD-rom hooked up to a PDP-11...
But yes, read only. Writing to CD rom is not something any MSCP SCSI
controller I've seen will know how to do.
> Going off on another tangent, didn't DEC have large (12" before caddy) mag-
> neto-optical drives that were also MSCP on the host side? Presumably they
> needed special handling in the VMS DUDRIVER as well.
Yes. RRV40.
WORM drives, as they were called. If I remember right, they looked more
like tape drives, I think.