Multi-platform distribution format (Was: Backups [was

Johnny Billquist bqt at
Mon Sep 21 20:49:20 CDT 2015

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

More information about the cctalk mailing list