On 08/18/2015 01:00 PM, Johnny Billquist wrote:
The floating address space was pretty much there from the
start for the Unibus, even before you had "large" systems.
For most controllers, only the first one has a fixed
address, and all others were assigned from the floating
space. Makes sense, as it was just too costly to
statically assign space in the I/O page for all possibly
configurations you could imagine.
The CAPABILITY to do it was always there, that is
quite
true. But, most of the OLD PDP-11 devices had a VERY
limited selection of addresses. Now, some DID have
something like 6 address bits settable in a jumper or
wire-wrap field, but I know a number of devices had just a
couple DIP switches that limited you to 4 or 8 possible
addresses. I know on some old stuff I actually cut traces
and re-patched the address select bits to make them run at
non-standard addresses.
My PDP-11 experience started in 1975, and was with stuff
that was probably almost a decade old even then.
In some cases, you had to force a device to be at
a
non-standard
address, possibly because a 3rd party device could not be
configured at
the address the DEC enumeration scheme wanted to put it
at. This was
pretty easy to do in later VMS systems.
Very easy to do in RSX-11M-PLUS as well. A simple one line
command, which can be done on the running system.
OK, I ran RSX-11M, but never M-PLUS. I remember doing
sysgens late at night to reconfigure the I/O addresses.
Unfortunately,
this type of misconfiguration is fairly
hard to detect
with software. Later devices (MSCP) had an
autoconfiguration scheme
where the OS would assign the CSR and vector at boot time.
Well, half correct anyway.
The CSR is never autoassigned. It always is configured by
switches or jumpers on the board. Some of the more modern
controllers, like MSCP controllers, setup the vector
through software.
OK, what I USED to know is just fading away! Yes, what you
say makes perfect sense.
Jon