<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<br>
<div class="moz-cite-prefix">On 23-Jun-19 13:30, Bob Supnik wrote:<br>
</div>
<blockquote type="cite"
cite="mid:2a076447-f6ec-350a-2a64-aa25bd35acd0@supnik.org">The
four ports is not arbitrary. SimH simulates actual hardware. </blockquote>
<br>
<blockquote type="cite"
cite="mid:2a076447-f6ec-350a-2a64-aa25bd35acd0@supnik.org">DEC
never built a backplane MSCP controller with more than four ports.
<br>
<br>
</blockquote>
<p>I think that's true for the U/Qbuses. However, the KDM70 (XMI,
last I knew not emulated by SimH) has eight universal ports - any
mix of SDI/STI (disk/tape) that you can plug in. Officially, max
of 2 STI, 8 SDI. Note that what plugs into STI is a formatter -
each of which might have 4 drives behind it. Unit numbers are
assigned by the drive - IIRC 12 bits for disk, 4 decimal digits
for tape (due to bcd encoding of the unit select switches). This
is slightly simplified - SSDs have different rules, and some tapes
formatters support less than 4 drives.</p>
<p>Those are KDM70 architectural limits - MSCP might be up to 16
bits, but I don't have a spec handy. There might be some flag
bits in the field.</p>
<p>(I was somewhat involved in the KDM70 development.)<br>
</p>
<blockquote type="cite"
cite="mid:2a076447-f6ec-350a-2a64-aa25bd35acd0@supnik.org">If you
want to extend the current RQ simulator to include third party
boards (either SMD-based emulators or SCSI-based emulators), feel
free to add an appropriate mode switch. I don't know what
controller ID these third party boards returned, though, nor do I
know how VMS determined the number of ports per controller.
<br>
<br>
</blockquote>
<p>(T)MSCP doesn't deal with ports; it deals with (logical)
units.[1] I don't remember an efficient mechanism to enumerate
the units; IIRC, you simply wait for an attention message with
"Unit Available". You could also try a "get unit status" for
each possible LUN - but that's a very large number, especially in
a large configuration -- e.g. a CI with lots of HSC controllers,
or even lots of NI workstations with MSCP-served disks. STAR had
over 200 NI satellites at one point.<br>
</p>
<p>As noted, the LUNs are arbitrary - for the larger disks, set by a
plug on the drive. No requirement for starting at zero, or
sequential numbers. (Of course, you can't use the same LUN on the
same controller more than once.)<br>
</p>
<p>VMS enumerates controllers to assign a letter, and uses the LUN
from the attention message to build the UDB[2] and record the unit
number. (Allocation classes, used to link dual-ported drives)
would be a prefix). So, if the 4th controller has a single RA81
with a unit plug of 251, the device name would be _DUD251:. If
in allocation class 18, _$18$DUD251:. Units can come/go/morph if,
for example, the unit plug is removed or swapped, which is why
"mount verification" exists.<br>
</p>
<p>I don't remember whether VMS will try to set a unit on-line if it
hasn't received a unit available first. But I believe that it
won't try anything if it hasn't found the controller. The
controllers (except for the boot device) are found by running
sysgen autoconfig all in one of the DEC-supplied startup
scripts. This is towards the middle of the process - it takes
quite a while in large configs, so the startup initiates a bunch
of other stuff that can overlap it first. There are several
callouts in the startup scripts - it's important that disk mounts
be after sysgen is run. sylogicals(-v5).com would be too soon.<br>
</p>
<blockquote type="cite"
cite="mid:2a076447-f6ec-350a-2a64-aa25bd35acd0@supnik.org">I think
it would be better to understand why VMS is waiting to mount
additional discs. Alternately, just create bigger discs and have
fewer of them.
<br>
<br>
</blockquote>
<p>One thing to check is that the unit available (attention)
messages are sent at the right times. <br>
</p>
<p>The other is where in the startup the mounts are placed. The
site-specific startup - systartup(_v5).com, or something called by
it should be OK. [the _v5 suffix was introduced with VMS V5
because things like device naming changed, it was removed many
releases later].</p>
<p>[1] This caused some pain with devices that shared a resource
across units - e.g. the RC25 that shared one motor/spindle between
a fixed platter and a removable cartridge... "Clever" hardware
design that ignored the software architecture...<br>
</p>
<p>[2] Unit Data Block - VMS's drive context. They materialize when
a unit is discovered.<br>
</p>
<blockquote type="cite"
cite="mid:2a076447-f6ec-350a-2a64-aa25bd35acd0@supnik.org">/Bob
<br>
<br>
<br>
</blockquote>
</body>
</html>