On 2015-08-19 04:27, Jon Elson wrote:
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.
1975 was the year the 11/70 was introduced. The Unibus only came into
existence five years before this, in 1970. :-)
So, the gear you worked on was definitely no more than five years old.
Anyway, I can actually pinpoint the floating address space convention in
time pretty good.
The PDP-11 Peripherials Handbook from 1972 have each device listed with
specific addresses assigned for as many options as any customers were
expected to ever have. There is no mention of floating address space for
CSRs, but there is floating vector space.
The PDP-11 Peripherial Handbook frmo 1973 do define the floating address
space, so this is the timeframe when it was realized that address space
needed to be better utilized (was too small for reserved addresses for
everything that was popping up).
So devices up until 1972/1973 might have a more limited number of
jumpers, to just select from the reserved range for that specific
device. Anything from 1973 onwards, I would expect to have full
flexibility on address selection on the Unibus.
The Qbus is different in that DEC went back to a more limited
flexibility there.
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.
Yep. And SYSGENs took time. What a chore... :-)
Johnny