On 2014-01-02 16:45, Paul_Koning at
Dell.com wrote:
On Jan 1, 2014, at 12:16 PM, John Wilson <wilson at dbit.com> wrote:
From: "Jerome H. Fine" <jhfinedp3k at compsys.to>
In respect of RSTS/E, is this possible as well or does RSTS/E
have the same requirement as TSX-Plus?
RSTS doesn't have loadable drivers, so it all has to be genned into the
system (and user-written drivers aren't officially supported). On the plus
side, RSTS autosizes the system on every boot (including floating CSRs, and
all vectors except card readers are autodetected so they don't need to follow
the rules at all -- user-written drivers would have to be hooked up to this
too), and passes CSR/vector/model information to the drivers that it enables.
So while RSTS requires the drivers to be linked to the system, it's not a
totally rigid mass that works only on the exact config it was built for.
You can run a monitor on totally different hardware and as long as it has
drivers for enough of the existing peripherals to work, you're all set.
Also, you can have multiple monitors (built different ways) on the same
pack and tell the pre-boot thingy (INIT.SYS) which one to boot.
A good example is the monitor called sysgen which is the one on the system
installation tape. It s a bit like the Unix Generic kernel. It s built to
support one or two units of every supported mass storage and distribution device, plus a
terminal line or two. That way, a single kernel works for every system on which a
customer might want to install. You then run that monitor to build your own, which would
normally have a more selective set of mass storage devices, the non-disk/tape I/O devices
on your system, and support for more jobs. But in all cases, you can build a monitor for
more hardware than you have, and whatever is missing is simply disabled at startup.
As for loadable drivers, true until late in the RSTS evolution. Somewhere in the V9 era,
I believe, the terminal driver system was redone so it has port drivers for each
terminal interface type, which are loaded at startup as appropriate for the hardware you
have. That s not a general mechanism, though.
In fact, RSTS has 3 or 4 quite distinct driver types: disk drivers, terminal drivers,
network device drivers, and other device drivers. Network and other are somewhat
similar, but terminal port drivers and disk drivers have no relationship at all to
regular device drivers.
User written drivers no such thing. In theory you might be able to, but only with a
source kit which few people did. And there was no documentation for this. It may be
that one or two people wrote an other driver; I can t imagine user written disk
drivers.
A friend of mine worked on a TCP/IP implementation for RSTS/E. It got as far as having
working IP, ICMP and UDP (and ARP), as far as I know, but I'm not sure exactly how he
hooked the whole thing into RSTS/E in general.
I have his code somewhere, if someone would be seriously interested in looking at it, or
do some work. I think it's for RSTS/E V8...
The "sysgen" monitor for RSTS/E sounds somewhat similar to the Baseline system
for RSX, which have a few of everything compiled in. That system is mostly used just as a
start to do a proper SYSGEN for a system tailored to your specific hardware.
RSX also marks devices that don't respond as offline, which is pretty much just like
disabling them.
Writing your own devices drivers in RSX, however, is very well documented, and supported.
There is a whole manual that only deals with that specific topic.
Writing your own ACPs however, is not that well documented, even though the interface is
actually very clean. There were DECUS papers published about writing your own ACPs
instead.
Johnny