On 2015-09-21 22:27, Paul Koning wrote:

On Sep 21, 2015, at 3:49 PM, Jerome H. Fine <jhfined...@compsys.to> wrote:

Johnny Billquist wrote:

On 2015-09-21 17:03, Paul Koning wrote:

And it would certainly be possible to write a driver that can handle both 
controllers; it would start by determining which controller it's dealing with, 
and then run the one or the other set of algorithms.  Since a boot block is 
just a small driver, the same is true there, so long as the whole body of code 
fits in the available space.  I suspect in this case that's doable; most 
bootloaders (other than MSCP ones) require only a small fraction of the 
available space.

You are absolutely right.
And I don't know the actual size of the boot blocks. It might very well be that 
they both fits in the same boot block, which would be nice.
I know that the M9312 have separate boot roms for the RX11 and the RX211, but 
those boot roms are pretty tiny...

And I don't know if the RX211 boot rom also deals with RX01 floppies, but I 
would assume it does.

I don't know how RSX-11 and RSTS/E manage their device
drivers and allocate the memory for that code.  BUT, under
RT-11, each device driver uses memory which the user program
can't use. ...
Finally, while the boot code could certainly support both
the RX01 and the RX02 drive, there would be no point
since the code in the device driver supports only one
drive.

RSTS isn't as frugal with memory as RT11 is.  It has a bit of per-unit memory 
whether the device is present or not.  But the kernel can be built with all 
sorts of device drivers for devices that aren't actually present.  If so, those 
are disabled at boot.

RSX does it somewhat different, but the basic idea is similar. At boot time, devices are mark offline or online depending on whether they actually exists. And in addition, you can always load and unload drivers while the system is running. So, you can do as you choose. The drivers for RX11 and RX211 are separate and different. You might have both loaded at the same time, and just have one online, depending on which controller you actually have. Or, if you have a multiprocessor system, you can always hot-plug them as well, and bring devices on- and offline as you feel like it, just as easily as you can change what CSR address and vector to use.

So for RSTS, it certainly makes sense to have a multi-lingual boot block, if 
you're dealing with a medium that can be installed into several types of drives 
with different controllers.

Also true for RSX, whenever possible. Unfortunately, not all devices can be booted by the same bootblock, but the most common ones can.

The RX01/RX02 case doesn't occur for RSTS since those aren't supported as boot 
devices.  But the analogous scenario does apply to magtape.  The RSTS magtape 
boot block works with every PDP-11 controller capable of supporting that tape, 
so 1600 BPI tapes can boot on TU16, TS80 (gag) and TMSCP controllers.  Yes, 
that's a fun bit of code.

Same with RSX. RX01/RX02 are too small to even be possible to boot from. All magtapes use the same bootblock. MSCP and Massbus disks also share a common boot block. RL01/RL02 have its own boot block, as do the RK06/RK07. And those are the only available options for booting.

        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

Reply via email to