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