On 2019-07-31 19:52, Paul Koning wrote:
On Jul 31, 2019, at 1:34 PM, Geoff Conway <gcon...@bigpond.net.au> wrote:
...
There is a reason for mentioning the OS side of things and while in the real
world the majority of PDP11 peripherals are set by switchpacks on the cards
(been there done that) - the device code for that peripheral (if it's
intelligent?) would (presumably) read those register values and load them into
itself so it knows what addresses to respond to. In sysgen/netgen (whichever
being relevant) the CSR/vector values for every peripheral are then manually
entered by a human and the system/DECNet built.
That depends on the OS.
Right.
I think most OS know the floating CSR rules and use that to identify the
devices; you specify CSRs manually only if your address settings don't conform.
With RSX, it's sortof a hybrid, with a hard leaning towards manual
configuration.
RSX actually only have one piece who knows anything about the floating
CSR rules, and that is a piece of software called the Autoconfig
Detection, which is only run when you do a SYSGEN on the baseline
installation system. So when you do your initial installation for the
first time, the system offers you the option of running the
autodetection of your hardware, and make use of that for the SYSGEN.
After that, you will never see that program again, and RSX will never
again care about the floating CSR rules, autoconfiguration or detection
or anything.
Similarly with vectors: the OS may implement the float vector rules to compute the vector
addresses for the devices. Or it may do what RSTS does, which is to "poke"
each device at boot time to make it interrupt, then remember what the vector address was.
So RSTS requires float CSRs in order to autoconfigure devices but doesn't mind what the
vectors are so long as they are all unique.
Again, in RSX this can be done on the initial installation, but will
never happen after that. And yes, for that one time, it's done by trying
to poke the controllers to make them create an interrupt, and then
figure out which vector they actually did use.
...
The 3 exceptions are all the 3 devices I included in my simh qbus configuration and when
I entered the "show dev" command prior to booting the OS disk all of those simh
devices had CSR values but no vectors - devices DEQNA=XQ/XQB; KDA50=RQ/RQB and finally
TK50=TQ.
Prior to entering the OS they had <no vector> against them and after the OS was
booted into a fully configured system and then finally shutdown those same 5 simh
device then had their vectors assigned.
Why ?
After reset, the vector address is not set. Once the OS programs the vector
address by appropriate commands to the device, it remains in effect until
cleared. Shutdown (on the OS you are using) apparently doesn't do a reset so
the vector remains set to what the OS assigned.
Yep.
...
Other cards I have experience of (ACC X.25 card) I believe also had
programmable vectors (yet to be confirmed) so while that mechanism certainly
won't be in an older card like the DEUNA it is in the newer
For SIMH purposes the discussion is about DEC peripherals: for those the three
mentioned are the only ones with programmable vectors. Sure, the idea makes a
lot of sense in newer devices and it's not surprising that some non-DEC boards
would have adopted the same feature.
Definitely. I sortof wonder if there might be something with the network
booting that made DEC choose to have a set of dip switches for the
vector of the DEUNA. The DEQNA did not support network booting to the
same degree, so it might have been less of an issue.
But I might just be totally wrong as well, and the vector could have
been programmable on the DEUNA as well. I wonder why they didn't, in
that case.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: b...@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
_______________________________________________
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh