Thursday, July 12, 2012

Installing RSX-11M 4.6 from scratch - Part 1: Creating the baseline system

A little bit of background

The first computer I had to work with was a VAX 8250  the company bought to replace a PDP-11/60 which was being used mainly to manage the catalog of a network of public libraries (at that time, it was the first mechanized catalog implemented in this country). The 11/60 ran a home-built catalog program, based on the library managing standards of the time, written in FORTRAN. Some terminal users did they data-entry work using VT52 screens, and once a month a batch process generated a tape which was used to generate microfiches which were distributed to the library network, so the whole catalog was accessible from every library. For the 70's - early 80's it was a huge improvement...

I was hired as part of the team which had to set up the new VAX, and with the goal to expand the computer usage to other parts of the "business". For that reason I never paid enough attention to the "old" PDP. I remember the guy who managed it typing in a printing terminal and talking about SYSGEN-ing the system, going around replacing RP06 disk packs and doing all kinds of weird things.

Of course now I regret the fact I mostly ignored that nice machine. Fortunately, with the advent of that awesome piece of software called simh, and with the growing pile of documentation and software available on the internet, I can partially repair that mistake. Of course I'll never be a "PDP pro", but I least I want to know how does it feel to operate one of those wonderful machines. 

Now, enough of rusting memories. My goal is now to set up a functioning RSX11M system under simh, and doing it from scratch. It's relatively easy to find pre-built systems images in the net, but this time I want to do it from scratch, using a tape distribution, and over a "virgin" machine...

Bill of materials

To setup our new system we need:
When you unzip the rsx11m46.zip file you'll get the tape image in TPC format; just remember to tell SIMH you are using that format instead of the native SIMH format or it won't work.

We'll need also a good PDP11 configuration for simh. My configuration tries to ressemble the one of the PDP11/60 I mentioned before:

  • 128 KWords of memory.
  • Two RP06 disks.
  • Two RL02 removable disks.
  • Line printer.
  • DZ11 terminal multiplexer with 8 lines.
  • TSxx tape drive.
It's convenient to use a INI file to set up simh. This is the one I'm using:

;---------------------------------------------------------------
; Disable devices, we'll enable what we need later 
;---------------------------------------------------------------
set CR disable
set DZ disable
set HK disable
set RK disable
set RL disable
set RP disable
set RQ disable
set RQB disable
set RQC disable
set RQD disable
set RX disable
set RY disable
;set TA disable
set TC disable
set TM disable
set TS disable
set TQ disable
set TU disable
set VH disable
set XQ disable
set XQB disable
set XU disable
set XUB disable

echo PDP-11/45 with 128 kwords of memory
echo 
set cpu 11/45
set cpu 256k
set cpu idle

SET RL enable
set RL0 RL02
set RL1 RL02

SET RP ENABLE
SET RP0 RP06
ATTACH RP0 RP06.000
SET RP1 RP06
;ATTACH RP1 RP06.001

SET TS ENABLE
SET TS0	FORMAT=TPC
SET TS0 LOCKED

SET DZ ENABLE
SET DZ LINES=8
ATTACH -am DZ 11023

SET LPT ENABLE
ATTACH LPT PRINTER.TXT

The install procedure

The task of setting up a new RSX11M system has three basic steps:
  1. Create the baseline bootable disk from the distribution tape.
  2. Running SYSGEN to generate an executive tailored to your machine configuration, as well as the necessary privileged and unprivileged tasks.
  3. Tailoring the system to your needs or tastes.
This first post covers just the first of these three steps. What follows is a slightly edited console log. I've tried to make it a little bit more readable and I have highlighted the typed commands and responses in bold. The configuration file, pdp11.ini, is the one listed above. Please tell me if you find any mistake in the log so I can correct it...

Macjordi:rsx11m46 jguillaumes$ pdp11 pdp11.ini

PDP-11 simulator V3.8-1
sim> do pdp11.ini
PDP-11/45 with 128 kwords of memory

RP: creating new file
Overwrite last track? [N] y
Listening on port 11023 (socket 5)
Modem control activated
Auto disconnect activated
LPT: creating new file
sim> 
sim> attach rsx11m46.tpc
sim> boot ts0


RSX-11M/RSX-11M-PLUS Standalone Copy System V04


RSX-11M/RSX-11M-PLUS Standalone Configuration and Disk Sizing Program

Valid switches are:
        /CSR=nnnnnn to change the default device CSR
        /VEC=nnn to change the default device vector
        /FOR=n to change the default magtape formatter number
        /DEV to list all default device CSR and vectors


Enter first device: MS0:
Enter second device: DB0:
Hit RETURN and enter date and time as 'TIM HH:MM MM/DD/YY'


>TIM 10:24 07/12/92
>TIM
10:24:01 12-JUL-92
>RUN BAD
BAD>DB0:
BAD -- DB0: Total bad blocks= 0.
BAD>^Z
>RUN BRU
BRU>/REW/INIT/BAC:DBSYS MS0: DB0:

BRU - Starting Tape 1 on MS0:
BRU - End of Tape 1 on MS0:
BRU - Completed


BRU>

<ctrl-e>
Simulation stopped, PC: 001344 (CLRB (R1)+)
sim> boot rp


  RSX-11M V4.6 BL56   124.K MAPPED (BASELINE)

>RED DB:=SY:
>RED DB:=LB:
>MOU DB:RSXM56
>@DB:[1,2]STARTUP

>* PLEASE ENTER TIME AND DATE (HR:MN DD-MMM-YY) [S]: 10:26 12-JUL-92

>TIM 10:26 12-JUL-92

>* ENTER LINE WIDTH OF THIS TERMINAL [D D:132.]: 
>SET /BUF=TI:132.
>ACS SY:/BLKS=1024.
>@ 


>@TAPEKIT

>;
>; RSX-11M V4.6 BL56 tape distribution kit extraction procedure.
>;      Started on 12-JUL-92 at 10:26:12
>;

>INS LB:$BRU

>;
>* Enter drive and unit with tape distribution kit [ddn:] [S]: MS0:
>LOA MS:/PAR=GEN
>;
>; Copying rest of RSXM56 to DB0: ...
>;
>BRU/DENS:1600/NOINI/SUP/UFD/BAC:RSXBAS MS0: DB0:
BRU - Starting Tape 1 on MS0:
BRU - End of Tape 1 on MS0:
BRU - Completed
>BRU/DENS:1600/NOINI/SUP/UFD/BAC:EXCPRV MS0: DB0:
BRU - Starting Tape 1
BRU - End of Tape 1
BRU - Completed
>BRU/DENS:1600/NOINI/SUP/UFD/BAC:PRVBLD MS0: DB0:
BRU - Starting Tape 1
BRU - End of Tape 1
BRU - Completed
>BRU/DENS:1600/NOINI/SUP/UFD/BAC:RLUTIL MS0: DB0:
BRU - Starting Tape 1
BRU - End of Tape 1
BRU - Completed
>BRU/DENS:1600/NOINI/SUP/UFD/BAC:MCRSRC MS0: DB0:
BRU - Starting Tape 1
BRU - End of Tape 1
BRU - Completed
>BRU/DENS:1600/NOINI/SUP/UFD/BAC:HLPDCL MS0: DB0:
BRU - Starting Tape 1
BRU - End of Tape 1
BRU - Completed
>BRU/DENS:1600/NOINI/SUP/UFD/BAC:RMSV20 MS0: DB0:
BRU - Starting Tape 1
BRU - End of Tape 1
BRU - Completed
>;
>;      Completed on 12-JUL-92 at 10:26:32
>;
>@ <eof>
>

<ctrl-e>
Simulation stopped, PC: 002770 (CLRB (R1)+)
sim> 

At this point we have a disk image, RP06.000, which contains the baseline system. This is a good moment to make a copy of that image file (probably in compressed format) so we can't go back to this point in case we make any mistake during the next steps of the install. It's nice to have this baseline to make clones and generate other configurations if we want to experiment.

If you take a look at the BRU command line, it references a BackupSet named DBSYS. That is the backupset to use to generate an RP06 based baseline system. If you are going to use different disks the backupset name can be different. The names are listed in the referenced manual, but I'm copying the list here for your convenience:

Disk TypeName
RP04/05/06DBSYS
RL01/02DLSYS
RK06/07DMSYS
RM02/03/05/80DRSYS
RA60/80/81DUSYS
RC25/RD52/53DUSYS

On the next post we'll proceed to do the first SYSGEN of our system, and we will end with a fully usable, but untailored RSX11M 4.6 operating system.