On 2015-09-21 22:27, Paul Koning wrote:
On Sep 21, 2015, at 3:49 PM, Jerome H. Fine
<jhfinedp3k at 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: bqt at softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol