Installing RSTS V6

RSTS V6 installation tape

Most of my experience with RSTS was programming in BASIC on versions 5 and 6 using a PDP‑11/45. I thought it would be interesting to install RSTS/E V5 or V6 on my PDP‑11/70 emulator. At first, I assumed this would be straightforward.

Reading the release notes, I discovered that V6 was the first RSTS version to support the PDP‑11/70, and it could also boot from a non‑zero drive unit (e.g., DK2 instead of DK0). Full PDP‑11/70 support wasn’t essential for me, but many PDP operating systems prefer or require a zero disk unit number. Since zero drives are at a premium in my emulator, V6 seemed more practical than V5.

After some searching I found a V6C installation tape available for download at RSTS.ORG. Curiously, I could not locate any other V5 or V6 distributions, though I did find old postings from others who had been looking for them too.

I downloaded the V6C tape and attempted to install it to an RK05 disk image using SIMH. The installer allowed me to initialize the disk, but copying files failed with a disk index error:

Option: COpy
INIT bug - bad disk index
Fatal RSTS/E system initialization error!
Option:

Assuming I had made a mistake, I checked the installation manual and examples, but saw nothing different from what I was doing. I experimented with different sequences, output disk types, and SIMH configurations, but nothing worked.

I contacted Brett Bump from RSTS.ORG, who confirmed that the tape copy I was using had always had this problem — even back in 1984, when it produced the same error on a real PDP‑11/45.

I repeated my searches for a RSTS V5 or V6 distribution or disk image, but found nothing. In desperation I posted to alt.sys.pdp11 asking if anyone knew where to find one. No response. I also saw a photo of a DECTape V6 distribution at the Wolford Witch Project and emailed to ask about obtaining a copy, but again no reply. Even if a tape survived, finding hardware to read it would be another challenge.

Reconsidering the one tape I had, I wondered if the problem was minor — perhaps just a few flipped bits. If I examined the code, maybe I could spot the issue or work around it to force the copy routine to succeed. After all, I only needed to install RSTS once.

Using SIMH I examined the failing installation code. It was checking a device index, but because the value was negative it triggered the error. I determined that for an RK05 the index should be 6, which I validated experimentally. However, even after patching in the correct value, other strange errors appeared.

I considered whether RSTS V7 could be used to read the V6 tape, since V7 was the closest codebase I could find. I tried several test setups, but this approach never worked.

Returning to the V6 code, I eventually found a command dispatch routine — crucial for understanding what the installer was doing. Each command invoked a different routine, usually by calling a common subroutine with a parameter block. Oddly, the failing routine did not call the common subroutine. Dispatch was implemented via a JMP instruction into an index table, using R0 as an offset:

Option: COpy
Breakpoint, PC: 031176 (JMP @36370(R0))
sim>

I searched the V7 installation for a similar dispatch routine, but found that V7 was structured completely differently. Its copy routine was merged into a common subroutine with other commands, unlike V6. Perhaps the V6 command table was corrupt? That line of investigation yielded nothing useful.

While disassembling code, I noticed a subroutine with similar inputs and initialization to the working disk initialize routine. It even called some of the same subroutines, including one to get the date and time. This looked promising, but the code was orphaned — nothing referenced it — and it would not run successfully when executed manually.

A few days later, while tracing again, I saw that the disk copy routine went wrong when it jumped to address 124000. The code there immediately tried to use register R4, which had not been initialized. I experimented with alternatives: perhaps R4 was meant to be another register, or perhaps address 124000 was corrupted. Eventually I realized that the suspected copy code was actually located at 123000, exactly one tape block earlier. Using a binary editor, I inserted a dummy tape block before the code at 123000, relocating it to 124000.

Below is the beginning of the disk initialize code, which works and is similar in function to the disk copy routine:

sim> ex -m 104002-104100
104002: MOV #12,R0
104006: MOV #113210,R2
104012: MOVB (R1)+,(R2)+
104014: BEQ 104024
104016: SOB R0,104012
104020: CLRB 113211
104024: JSR PC,@#43620
104030: CLRB 42677

Here is the suspiciously similar orphaned code found at address 123000:

sim> ex -m 123000-123100
123000: MOV #12,R0
123004: MOV #135432,R2
123010: MOVB (R1)+,(R2)+
123012: BEQ 123022
123014: SOB R0,123010
123016: CLRB 134433
123022: JSR PC,@#43620

And finally here is the failing COpy command code at address 124000 which looks very different and uses R4 which has not been initialized.

sim> ex -m 124000-12410
124000: MOV R2,52(R4)
124004: JSR PC,@#47726
124010: MOV R0,54(R4)
124014: JSR PC,126104
124020: JSR PC,125462
124024: JSR PC,@#46774

Adding the dummy block was an immediate success! It relocated the above orphaned code from address 123000 to 124000 and allowed the COpy command to work without error. As a minor downside the previously working disk INitialise command now complained about a missing BADB.SYS file. I used the V7 installation tape to initialize a disk containing BADB.SYS and then used the V6 COpy command to create the other files. It looked like I might actually be able to get a V6 installation working.

But alas the next step to build the key RSTS.SIL operating system load image failed. When reviewing the installation log it appeared that the Macro assembler had simply not produced any output object files during the build. No errors or messages were reported. One possibility was that the disk initialized by V7 was causing some sort of problem for the V6 system.

So it was time to go back and find out what I had broken by inserting the dummy tape block. By reviewing disassembly listings I determined that when I had added my dummy tape block I had inadvertently relocated other code which had previously worked. By moving my inserted dummy tape block to a different position I was able to get both disk INitialise and disk COpy routines to work.

Back to building my RSTS V6 system files. Still no success — the Macro assembler would not produce any files required for the build of RSTS.SIL, even though my own test Macros all worked perfectly.

Figuring that perhaps the MACRO assembler had been corrupted I took all of the V6 source files to a RSTS V7 system and tried to build the files there. Unfortunately this generated exactly the same problem — no output files and no error messages. How could that be?

I checked that my RSTS V7 system could properly build itself from its own source files. It did, confirming that its Macro assembler was fine. I began comparing the source macro files from V6 and V7. They shared some parts in common but also had many differences — just as you would expect from different versions of an operating system.

By experimenting with dummy input files I discovered that the problem was in a particular source file called KERNEL.MAC. When comparing the V6 file with the V7 file I noticed that V6 contained an incomplete definition for a macro — essentially the last part of a multi‑line definition was missing. When I corrected that by including content borrowed from the V7 source, the V6 modules built successfully. I was able to generate the V6 RSTS.SIL image file and complete the installation of RSTS V06C‑03.

It appears that when the RSTS Macro assembler encounters a multi‑line macro without an end, it assumes all of the remaining source is part of the definition. Eventually something overflows and it crashes without displaying any indication of error. My V6 Macro assembler was not corrupt — just the macro in the file KERNEL.MAC.

I decided to see if I could edit back into the installation tape the missing section of the KERNEL.MAC macro. I doubt it is a coincidence that the section I had to insert aligned to the start of a tape block and was exactly one tape block in length.

I think we can safely say that the installation tape has at least two completely missing blocks.

While comparing files I noticed another difference: the heading of another file called COMMON.MAC was missing its copyright statement. I suspect it is about one block in length and aligns on the installation tape to the start of a block. I didn’t bother correcting this error as so far it hasn’t caused any problems.

With two insertions of tape blocks the V6 installation tape now allows me to completely install and configure a working RSTS V06C‑03 system without error. Though it works, I will never completely trust it as there is no realistic way to detect what other bits may be missing. If any vital part had not been recoverable then I suspect RSTS V6 would have been lost forever.

It is nostalgic to look at this system and consider the different era it comes from. Many programmers like me cut their teeth on similar environments.

As it stands I am unaware of any other working RSTS V5 or V6 system. So please enjoy it — take the time to boot up RSTS/E V06C‑03 at http://skn.noip.me/pdp11/pdp11.html and maybe play a game of ACEY.BAS.

Paul Nankervis

paulnank@hotmail.com
http://skn.noip.me/pdp11/

Example of a system build with the modified tape

BOOT> boot tm1

Enabling only console, disks, and tapes.


RSTS V06C (MT1)


Option: DSKINT

DD-MMM-YY? 13-MAR-76
12:00 PM? 09:00

Disk? DK0
Pack ID? SYSGEN
Pack cluster size? 1
SATT.SYS base?
MFD password? SYSTEM
MFD cluster size? 8
PUB, PRI, or SYS? SYS
Library password? SYSTEM
Library UFD cluster size? 8
Date last modified? Y
New files first? N
Use previous bad block info? N
Format? N
Patterns? 0
Proceed (Y or N)? Y


Option: DSKINT

23-Mar-76? 13-MAR-76
09:01 AM? 09:00

Disk? DK2
Pack ID? VIXEN
Pack cluster size? 1
SATT.SYS base?
MFD password? SYSTEM
MFD cluster size? 8
PUB, PRI, or SYS? SYS
Library password? SYSTEM
Library UFD cluster size? 8
Date last modified? Y
New files first? N
Use previous bad block info? N
Format? N
Patterns? 0
Proceed (Y or N)? Y


Option: COPY

13-Mar-76?
09:00 AM?

To which disk? DK0

Enabling only console, disks, and tapes.


RSTS V06C (DK0)


Option: INSTALL

  SIL? SYSGEN
  Rebooting . . .


RSTS V06C (DK0)


Option: REFRESH

13-Mar-76?
09:00 AM?

Disk? DK0

Clean? Y

Disk is being cleaned - wait ...


  REFRESH suboption? CHANGE

  SWAP.SYS changes? Y

    Size? 224

    Base?

  SWAP0.SYS changes?

  SWAP1.SYS changes?

  SWAP3.SYS changes?

  OVR.SYS changes?

  ERR.SYS changes?

  BUFF.SYS changes?

  CRASH.SYS changes?

  Other files?

  REFRESH suboption?


Option: DEFAULT

No defaults are currently set

You currently have: JOB MAX = 2, SWAP MAX = 16K.

JOB MAX or SWAP MAX changes? Y

  New JOB MAX?

  New SWAP MAX? 28

You currently have: JOB MAX = 2, SWAP MAX = 28K.

JOB MAX or SWAP MAX changes?

Run Time System? RT11

Error message file? ERR

Installation name? Vixen

  Memory allocation table:

     0K: 00000000 - 00117777 (  20K) : EXEC
    20K: 00120000 - 00137777 (   4K) : RTS (RT11)
    24K: 00140000 - 13777777 (1512K) : USER
  1536K: 14000000 - End              : NXM


  Table suboption?

You currently have crash dump disabled.
Warning - CRASH.SYS file of 24 blocks is not available

Crash dump? N

Magtape labelling default (none)? DOS

Preferred clock (L)?

Date format (ALPHABETIC)?

Time format (AM/PM)?

Power fail delay (1)?


Option: START

You currently have: JOB MAX = 2, SWAP MAX = 28K.

JOB MAX or SWAP MAX changes?

Any memory allocation changes?

You currently have crash dump disabled.

13-Mar-76?
09:00 AM?
BUFF.SYS not found or too small - DECtape disabled
DF0: disabled - no RF: controller
DS0: disabled - no RS: controller
DS1: disabled - no RS: controller
DM0: disabled - no RM: controller
DM1: disabled - no RM: controller
DP0: disabled - no RP: controller
DP1: disabled - no RP: controller
DR0: disabled - no RR: controller
DR1: disabled - no RR: controller
DB0: disabled - no RB: controller
DB1: disabled - no RB: controller
MM0: disabled - no TU: controller
MM1: disabled - no TU: controller
DT0: disabled - no TC: controller
DT1: disabled - no TC: controller
DX0: disabled - no RX0: controller
DX1: disabled - no RX0: controller

17 devices disabled

?Can't find file or account
.R MT1:CREATE





  ^C
  HELLO 1/2
  Password:
  1 other user is logged in under this account

  .
  .ASSIGN MT1: .DOS

  .ASSIGN MT1: IN

  .R IN:PIP.SAV
  *SY:$*.*<232>=IN:$LOGIN.SAV,$LOGOUT.SAV,$PIP.SAV
  *SY:$*.*<104>=IN:$UTILTY.SAV
  *SY:$*.*<104>=IN:$MACRO.SAV,$CREF.SAV,$LINK.SAV
  *SY:$*.*<104>=IN:$SILUS.SAV,$HOOK.SAV,$SYSGEN.SAV/NOREW
  *SY:$*.*<124>=IN:$SYSBAT.SAV
  *SY:$*.*<104>=IN:$ONLPAT.SAV
  *DK:$*.*<40>=IN:$ERR.STB,$PIPSAV.TXT/NOREW
  *^C

  .DEASSIGN IN

  .DEASSIGN MT1:

  .R LOGOUT
  Confirm: Y
  Saved all disk files; 357 blocks in use
  Job 2 User 1,2 logged off KB1 at 13-Mar-76 09:00 AM
  1 other user still logged in under this account
  System RSTS V06C-03 Vixen
  Run time was 0 seconds
  Elapsed time was 0 minutes
  Good morning











**13-Mar-76**


Beginning of RSTS/E  system  generation.


Questions come in long and short  forms.
If  you  are  familiar with them, answer
"S" for short; otherwise, answer "L" for
long form.

Form ?                          #S #

Same system ?                   #Y #

Distribution medium ?           #MT#

Output medium ?                 #MT#    DK

Pack ID ?                       #??#    VIXEN

Delete files ?                  #NO#    Y

LP for SYSGEN ?                 *Y *    N

Generate monitor ?              #Y #    Y/L

Monitor name ?                  #RSTS#

Monitor patching ?              #??#    N

Save RT11.RTS and PIP.SAV ?     #Y #

Generate BASIC-PLUS ?           #Y #

BASIC-PLUS RTS name ?           #BASIC#

BASIC-PLUS patching ?           #??#    N


Now you must specify the  hardware  con-
figuration  on  which this RSTS/E system
will run.

KL11,LC11,DL11A,DL11B's ?       *03*

DL11C, DL11D's ?                *00*

DC11's ?                        *00*

DL11E's ?                       *00*

DJ11's ?                        *00*

DH11's ?                        *00*

DZ11's ?                        *00*

Pseudo keyboards ?              #04#

Multi-terminal service ?        #Y #

Echo control ?                  #Y #

RC11/RS64's ?                   *NO*

RF/RS11's ?                     *NO*

RS03/RS04's ?                   *00*

RK05's ?                        #08#    4

Overlapped seek ?               *Y *    N

RK06's ?                        *00*

RP02/RP03's ?                   *00*

RM03's ?                        *00*

RP04/RP05/RP06's ?              *00*

TU16/TE16/TU45's ?              *00*

TU10/TE10/TS03's ?              #08#    4

DECtapes ?                      *00*

Printers ?                      *01*

RX01's ?                        *00*

CR11/CM11 card reader ?         *NO*

CD11 card reader ?              *NO*

P.T. reader ?                   *Y *

P.T. punch ?                    *NO*

DMC11's ?                       *00*

2780 support ?                  #NO#

Maximum jobs ?                  #10#    8

Small buffers ?                 #152#   192

System wide logicals ?          #10#

Monitor statistics ?            #NO#

FIP buffering ?                 #Y #

Resident disk handling ?        #Y #

Resident send/receive ?         #NO#    Y

Resident simple SYS calls ?     #NO#    Y

Resident file delete/rename ?   #NO#    Y

Res. login/attach/attribute ?   #NO#    Y

Resident catalog/lookup ?       #NO#    Y


The  following  questions  deal with the
BASIC-PLUS run-time system

FPP ?                           *Y *

Math precision ?                #02#    4

Log functions ?                 #Y #

Trig functions ?                #Y #

Print using ?                   #Y #

Matrices ?                      #NO#    Y

String arithmetic ?             #NO#


The system generation  dialog is finish-
ed. If you have any special requirements
which require editing the generated file
CONFIG.MAC(system configuration file) or
SYSGEN.CTL(batch control file)  you  may
do it now.  When  ready type "R SYSBAT".

.R SYSBAT



SYSGEN  batch  processing  has  started.
If any problems develop during the batch
process  it  may  be aborted  by  typing
"Control/C". To restart type "R SYSBAT".





  ^C
  HELLO 1/2
  Password:
  1 other user is logged in under this account

  .
  .SIZE 24


MOUNT AP-2773F-BC OR AP-2772F-BC ON A MAGTAPE DRIVE

WITH NO "WRITE RING" AND SET TO "ON LINE"

Mount MT:"SYSGNF"-write locked
Unit ? 1
  .ASSIGN  MT1: .DOS

  .ASSIGN  MT1: TAPE

  .R PIP.SAV
  **.*<40>=TAPE:$COMMON.MAC
  **.*=TAPE:$*.MAC/HALT/NOREW
  **.*=TAPE:$*.OBJ/HALT/NOREW
  **.*=TAPE:$*.SAV/HALT/NOREW
  *ODT.SAV<60>/RE
  *DEFALT.SAV<60>/RE
  **.*=TAPE:$*.STB/HALT/NOREW
  *^C


Dismount MT1:
  .DEASSIGN  TAPE

  .DEASSIGN  MT1:


  .ASSIGN  SY:  IN

  .R PIP.SAV
  *TBL.OBJ,TTDINT.OBJ,TTDVR.OBJ/DE
  ?Can't find file or account - file TBL   .OBJ - continuing
  ?Can't find file or account - file TTDINT.OBJ - continuing
  ?Can't find file or account - file TTDVR .OBJ - continuing
  *TBL.LST,TTDINT.LST,TTDVR.LST/DE
  ?Can't find file or account - file TBL   .LST - continuing
  ?Can't find file or account - file TTDINT.LST - continuing
  ?Can't find file or account - file TTDVR .LST - continuing
  *RSTS.SAV,TER.SAV,EMT.SAV,FIP.SAV,OVR.SAV/DE
  ?Can't find file or account - file RSTS  .SAV - continuing
  ?Can't find file or account - file TER   .SAV - continuing
  ?Can't find file or account - file EMT   .SAV - continuing
  ?Can't find file or account - file FIP   .SAV - continuing
  ?Can't find file or account - file OVR   .SAV - continuing
  *RSTS.MAP,TER.MAP,EMT.MAP,FIP.MAP,OVR.MAP/DE
  ?Can't find file or account - file RSTS  .MAP - continuing
  ?Can't find file or account - file TER   .MAP - continuing
  ?Can't find file or account - file EMT   .MAP - continuing
  ?Can't find file or account - file FIP   .MAP - continuing
  ?Can't find file or account - file OVR   .MAP - continuing
  *RSTS.STB,TER.STB,EMT.STB,FIP.STB,OVR.STB/DE
  ?Can't find file or account - file RSTS  .STB - continuing
  ?Can't find file or account - file TER   .STB - continuing
  ?Can't find file or account - file EMT   .STB - continuing
  ?Can't find file or account - file FIP   .STB - continuing
  ?Can't find file or account - file OVR   .STB - continuing
  *NSP.SAV,RJ2780.SAV/DE
  ?Can't find file or account - file NSP   .SAV - continuing
  ?Can't find file or account - file RJ2780.SAV - continuing
  *NSP.MAP,RJ2780.MAP/DE
  ?Can't find file or account - file NSP   .MAP - continuing
  ?Can't find file or account - file RJ2780.MAP - continuing
  *NSP.STB,RJ2780.STB/DE
  ?Can't find file or account - file NSP   .STB - continuing
  ?Can't find file or account - file RJ2780.STB - continuing
  *^C

  .R MACRO.SAV
  *TTDVR=IN:COMMON,KERNEL,DK:CONFIG,IN:CHECK,KBDEF,TTDVR
  ERRORS DETECTED:  0
  *^C

  .R PIP.SAV
  *TTDVR.MAC/DE
  *^C

  .R MACRO.SAV
  *TTDINT=IN:COMMON,KERNEL,DK:CONFIG,IN:CHECK,KBDEF,TTDINT
  ERRORS DETECTED:  0
  *^C

  .R PIP.SAV
  *KBDEF.MAC,TTDINT.MAC/DE
  *^C

  .R MACRO.SAV
  *TBL=IN:COMMON,KERNEL,DK:CONFIG,IN:CHECK,TBL
  ERRORS DETECTED:  0
  *^C

  .R PIP.SAV
  *COMMON.MAC,KERNEL.MAC,CHECK.MAC,TBL.MAC/DE
  *^C

  .R LINK.SAV
  *RSTS/Z,RSTS/A/W,RSTS=TBL,$ERR.STB/X/B:0/U:#1000/I/C
  *TTDINT/C
  *IN:RSTS
  Round section? MORBUF
  Library search? BUF
  Library search? LIGHTS
  Library search?
  *^C

  .R LINK.SAV
  *TER/Z,TER/A/W,TER=IN:TER,DK:RSTS.STB/X/B:#117000/U:#1000/C
  *TTDVR
  Round section? TERPAT
  *^C

  .R LINK.SAV
  *EMT/Z,EMT/A/W,EMT=IN:EMT,DK:RSTS.STB/X/B:#117000/U:#1000/C
  *IN:RSTS
  Round section? EMTPAT
  *^C

  .R LINK.SAV
  *FIP/Z,FIP/A/W,FIP=IN:FIP,DK:RSTS.STB/X/B:#117000/U:#1000/I/C
  *IN:RSTS
  Round section? FIPPAT
  Library search? OPN
  Library search? UUO
  Library search? SND
  Library search? LIN
  Library search? DLN
  Library search? DIR
  Library search?
  *^C

  .R LINK.SAV
  *OVR/Z,OVR/A/W,OVR=IN:OVR,DK:FIP.STB/X/B:#1000/C
  *IN:RSTS
  *^C

  .R PIP.SAV
  *TBL.OBJ,TTDINT.OBJ,TTDVR.OBJ/DE
  *RSTS.OBJ,TER.OBJ,EMT.OBJ,FIP.OBJ,OVR.OBJ/DE
  *^C

  .R SILUS.SAV
  *RSTS.SIL=RSTS,TER/M,EMT/M,FIP/M/C
  *OVR/M/C
  *IN:ODT,DEFALT
  *^C

  .R PIP.SAV
  *RSTS.SAV,RSTS.STB/DE
  *TER.SAV,TER.STB/DE
  *EMT.SAV,EMT.STB/DE
  *FIP.SAV,FIP.STB/DE
  *OVR.SAV,OVR.STB/DE
  *ODT.SAV,ODT.STB/DE
  *DEFALT.SAV,DEFALT.STB/DE
  *^C

  .R PIP.SAV
  *BASIC.SAV,BASIC.STB/DE
  ?Can't find file or account - file BASIC .SAV - continuing
  ?Can't find file or account - file BASIC .STB - continuing

MOUNT AP-2773F-BC OR AP-2772F-BC ON A MAGTAPE DRIVE

WITH NO "WRITE RING" AND SET TO "ON LINE"

Mount MT:"SYSGNF"-write locked
Unit ? 1
  *^C

  .ASSIGN  MT1: .DOS

  .ASSIGN  MT1: TAPE

  .R PIP.SAV
  **.*=TAPE:$RTS.OBJ
  **.*=TAPE:$*.OBJ/NOREW
  *^C


Dismount MT1:
  .DEASSIGN  TAPE

  .DEASSIGN  MT1:

  .R LINK.SAV
  *BASIC/Z,BASIC/A/W,BASIC=IN:RTS,DK:$ERR.STB/X/H:#177776/U:#4000/C
  *IN:MA4F/C
  *IN:XL4F/C
  *IN:XT4F/C
  *IN:IO/C
  *IN:PU/C
  *IN:MX/C
  *IN:SN/C
  *IN:VE
  Round section? PA
  *^C

  .R PIP.SAV
  *RTS.OBJ/DE
  *MA2.OBJ,MA2I.OBJ,MA2F.OBJ,MA4.OBJ,MA4F.OBJ,MA4D.OBJ/DE
  *XL2.OBJ,XL2I.OBJ,XL2F.OBJ,XL4.OBJ,XL4F.OBJ/DE
  *XT2.OBJ,XT2I.OBJ,XT2F.OBJ,XT4.OBJ,XT4F.OBJ/DE
  *SF.OBJ,IO.OBJ,PU.OBJ,MX.OBJ/DE
  *SN.OBJ,VE.OBJ/DE
  *^C

  .R SILUS.SAV
  *BASIC.RTS=BASIC
  *^C

  .R PIP.SAV
  *BASIC.SAV,BASIC.STB/DE
  *^C

  .DEASSIGN  IN


MOUNT THE NEWLY INITIALIZED DISK "VIXEN" ON A DISK DRIVE

READY AND WRITE ENABLE THE DRIVE

Mount DK:"VIXEN "-write enabled
Unit ? 2
  .ASSIGN  DK2: VIXEN

  .R PIP.SAV
  *VIXEN:[0,1]*.*=SY0:[0,1]INIT.SYS
  *^C

  .R HOOK.SAV
  *VIXEN:[0,1]INIT.SYS
  Hook complete
  *^C

  .R PIP.SAV
  *VIXEN:[0,1]*.*/CLU:-8./MODE:16.=SY0:[0,1]ERR.ERR
  *VIXEN:[0,1]*.*=RSTS.SIL
  *^C

  .R PIP.SAV
  *VIXEN:[0,1]*.*/MODE:16.=BASIC.RTS
  *VIXEN:[0,1]*.*/MODE:16.=SY0:[0,1]RT11.RTS
  *VIXEN:$*.*=$PIP.SAV,$PIPSAV.TXT
  *BASIC.RTS/DE
  *^C


Dismount DK2:
  .DEASSIGN  VIXEN

  .R LOGOUT
  Confirm: Y
  Saved all disk files; 790 blocks in use
  Job 2 User 1,2 logged off KB1 at 13-Mar-76 09:00 AM
  1 other user still logged in under this account
  System RSTS V06C-03 Vixen
  Run time was 1.7 seconds
  Elapsed time was 0 minutes
  Good morning










Batch job completed.

.
BOOT> boot rk2

Enabling only console, disks, and tapes.


RSTS V06C (DK2)


Option: INSTALL

  SIL? RSTS
  Rebooting . . .


RSTS V06C (DK2)


Option: HARDWR

  HARDWR suboption? HERTZ
    New AC line hertz? 50

  HARDWR suboption?

  1 change being made.

  Rebooting . . .


RSTS V06C (DK2)


Option: REFRESH

DD-MMM-YY? 13-MAR-76
12:00 PM? 09:00

Disk? DK2

Clean? Y

Disk is being cleaned - wait ...


  REFRESH suboption? CHANGE

  SWAP.SYS changes? Y

    Size? 448

    Base?

  SWAP0.SYS changes?

  SWAP1.SYS changes?

  SWAP3.SYS changes?

  OVR.SYS changes?

  ERR.SYS changes?

  BUFF.SYS changes?

  CRASH.SYS changes?

  Other files?

  REFRESH suboption?


Option: DEFAULT

No defaults are currently set

You currently have: JOB MAX = 8, SWAP MAX = 16K.

JOB MAX or SWAP MAX changes? Y

  New JOB MAX? 4

  New SWAP MAX? 28

You currently have: JOB MAX = 4, SWAP MAX = 28K.

JOB MAX or SWAP MAX changes?

Run Time System? BASIC

Error message file? ERR

Installation name? Vixen

  Memory allocation table:

     0K: 00000000 - 00137777 (  24K) : EXEC
    24K: 00140000 - 00237777 (  16K) : RTS (BASIC)
    40K: 00240000 - 13777777 (1496K) : USER
  1536K: 14000000 - End              : NXM


  Table suboption?

You currently have crash dump disabled.
Warning - CRASH.SYS file of 28 blocks is not available

Crash dump? N

Magtape labelling default (none)? DOS

Preferred clock (L)?

Date format (NUMERIC)? AL

Time format (24-HOUR)? AM

Power fail delay (1)?


Option:

You currently have: JOB MAX = 4, SWAP MAX = 28K.

You currently have crash dump disabled.

13-Mar-76?
09:00 AM?
?Can't find file or account
?Program lost-Sorry

Ready

RUN MT1:BUILD
BUILD   V06C-03 RSTS V06C-03 Vixen
System Build <No>? Y
Source Input Device <MT1:/DENSITY:800/PARITY:ODD>?
Library Output Device <SY:>?
Target System Device <SY0:>?
Library Account <[1,2]>?
 *** Copying file MT1:[1,2]BUILD.CTL to SY:BUILD.TMP
ASSIGN SY0:SYSDSK
ASSIGN [1,2]
ASSIGN MT1:INPUT
OLD INPUT:$LOGIN
COMPILE SYSDSK:@LOGIN
CHAIN 'INPUT:$BUILD' 31000

Ready


Ready


Ready


Ready


Ready


Ready

BUILD Detaching...




^C
HELLO

RSTS V06C-03 Vixen  Job 2  KB0  13-Mar-76  09:00 AM
#1/2
Password:
Job 1 is detached under this account
Job number to attach to?
1 other user is logged in under this account





Ready

ASSIGN SY0:SYSDSK

Ready

ASSIGN SY:SYSTEM

Ready

ASSIGN [1,2]

Ready

ASSIGN MT1:INPUT

Ready


!********** BUILD.CTL - STANDARD LIBRARY PROGRAMS

OLD INPUT:$PATCPY

Ready

COMPILE SYSTEM:@PATCPY

Ready

OLD INPUT:$PBUILD

Ready

COMPILE SYSTEM:@PBUILD

Ready

OLD INPUT:$CPATCH

Ready

COMPILE SYSTEM:@CPATCH

Ready

OLD INPUT:$AUTOED

Ready

COMPILE SYSTEM:@AUTOED

Ready

OLD INPUT:$LOGOUT

Ready

COMPILE SYSDSK:@LOGOUT

Ready

OLD INPUT:$UTILTY

Ready

COMPILE SYSTEM:@UTILTY

Ready

OLD INPUT:$UTILT1

Ready

COMPILE SYSTEM:@UTILT1

Ready

OLD INPUT:$INIT

Ready

COMPILE SYSDSK:@INIT

Ready

OLD INPUT:$SHUTUP

Ready

COMPILE SYSTEM:@SHUTUP

Ready

OLD INPUT:$ERRBLD

Ready

COMPILE SYSTEM:@ERRBLD

Ready

RUN SYSTEM:@ERRBLD
ERRBLD  V06C-03 RSTS V06C-03 Vixen

Ready

OLD INPUT:$ERRINT

Ready

COMPILE SYSTEM:@ERRINT

Ready

OLD INPUT:$ERRCPY

Ready

COMPILE SYSTEM:@ERRCPY

Ready

OLD INPUT:$PIPSML

Ready

COMPILE SYSTEM:@PIPSML<40>

Ready

OLD INPUT:$DIRECT

Ready

COMPILE SYSTEM:@DIRECT

Ready

OLD INPUT:$TTYSET

Ready

COMPILE SYSTEM:@TTYSET

Ready

OLD INPUT:$SYSTAT

Ready

COMPILE SYSTEM:@SYSTAT

Ready

OLD INPUT:$EDIT

Ready

COMPILE SYSTEM:@EDIT<40>

Ready

OLD INPUT:$EDITCH

Ready

COMPILE SYSTEM:@EDITCH<40>

Ready

OLD INPUT:$BUILD

Ready

COMPILE SYSTEM:@BUILD

Ready

OLD INPUT:$ERRDIS

Ready

COMPILE SYSTEM:@ERRDIS

Ready

OLD INPUT:$ERRDET

Ready

COMPILE SYSTEM:@ERRDET

Ready

OLD INPUT:$ANALYS

Ready

COMPILE SYSTEM:@ANALYS

Ready

OLD INPUT:$ANALY1

Ready

COMPILE SYSTEM:@ANALY1

Ready

OLD INPUT:$SYSCAT

Ready

COMPILE SYSTEM:@SYSCAT

Ready

OLD INPUT:$PRIOR

Ready

COMPILE SYSTEM:@PRIOR

Ready

OLD INPUT:$ODT

Ready

COMPILE SYSTEM:@ODT

Ready

OLD INPUT:$REACT

Ready

COMPILE SYSTEM:@REACT

Ready

OLD INPUT:$REORDR

Ready

COMPILE SYSTEM:@REORDR

Ready

OLD INPUT:$DSKINT

Ready

COMPILE SYSTEM:@DSKINT

Ready

OLD INPUT:$UMOUNT

Ready

COMPILE SYSTEM:@UMOUNT

Ready

OLD INPUT:$COPY

Ready

COMPILE SYSTEM:@COPY<40>

Ready

OLD INPUT:$FILCOM

Ready

COMPILE SYSTEM:@FILCOM<40>

Ready

OLD INPUT:$QUOLST

Ready

COMPILE SYSTEM:@QUOLST

Ready

OLD INPUT:$MONEY

Ready

COMPILE SYSTEM:@MONEY<40>

Ready

OLD INPUT:$GRIPE

Ready

COMPILE SYSTEM:@GRIPE

Ready

OLD INPUT:$TALK

Ready

COMPILE SYSTEM:@TALK

Ready

OLD INPUT:$PLEASE

Ready

COMPILE SYSTEM:@PLEASE

Ready

OLD INPUT:$INUSE

Ready

COMPILE SYSTEM:@INUSE<40>

Ready

OLD INPUT:$SWITCH

Ready

COMPILE SYSTEM:@SWITCH

Ready

RUN SYSTEM:@PIPSML
PIPSML  V06C-03  - RSTS V06C-03 Vixen
#SYSTEM:@NOTICE.TXT<40>=INPUT:$NOTICE.TXT/FA
#SYSTEM:@HELP  .TXT<40>=INPUT:$HELP  .TXT/FA
#SYSDSK:@START .CTL    =INPUT:$START .CTL/FA
#SYSTEM:@TTY   .CMD    =INPUT:$TTY   .CMD/FA
#SYSTEM:@SPOOL .CMD    =INPUT:$SPOOL .CMD/FA
#SYSTEM:@RTS   .CMD    =INPUT:$RTS   .CMD/FA
#SYSTEM:@CCL   .CMD    =INPUT:$CCL   .CMD/FA
#SYSDSK:@CRASH .CTL    =INPUT:$CRASH .CTL/FA
#SYSTEM:@ANALYS.CMD    =INPUT:$ANALYS.CMD
#SYSTEM:@UTILTY.TXT    =INPUT:$UTILTY.TXT/FA
#SYSTEM:@PIPSML.TXT<40>=INPUT:$PIPSML.TXT/FA
#SYSTEM:@DIRECT.HLP<40>=INPUT:$DIRECT.HLP/FA
#SYSTEM:@ERRDIS.HLP    =INPUT:$ERRDIS.HLP/FA
#SYSTEM:@ACCT  .SYS    =INPUT:$ACCT  .SYS/FA
#SYSTEM:@COPY  .TXT<40>=INPUT:$COPY  .TXT/FA
#=SYSDSK:@LOGIN .BAC<232>/RE
#=SYSDSK:@LOGOUT.BAC<232>/RE
#=SYSTEM:@DIRECT.BAC<232>/RE
#=SYSTEM:@TTYSET.BAC<232>/RE
#=SYSTEM:@SYSTAT.BAC<232>/RE
#=SYSTEM:@UMOUNT.BAC<232>/RE
#=SYSTEM:@QUOLST.BAC<232>/RE
#=SYSTEM:@GRIPE .BAC<232>/RE
#=SYSTEM:@TALK  .BAC<232>/RE
#=SYSTEM:@PLEASE.BAC<232>/RE
#=SYSTEM:@SWITCH.BAC<232>/RE
#^Z


Ready

RUN SYSTEM:@UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#LOGINS
#EXIT

Ready

^C

Ready

HELLO

RSTS V06C-03 Vixen  Job 2  [1,2]  KB0  13-Mar-76  09:00 AM
Job 1 is detached under this account
Job number to attach to? 1
Attaching to job 1

BUILD Complete

Ready

RUN MT1:BUILD
BUILD   V06C-03 RSTS V06C-03 Vixen
System Build <No>?
Source Input Device <MT1:/DENSITY:800/PARITY:ODD>?
Library Output Device <SY:>?
Library Account <[1,2]>?
Control File is? MT1:RSXBLD.CTL
 *** Copying file MT1:RSXBLD.CTL to SY:BUILD.TMP
BUILD Detaching...




^C
HELLO

RSTS V06C-03 Vixen  Job 2  KB0  13-Mar-76  09:00 AM
#1/2
Password:
Job 1 is detached under this account
Job number to attach to?
1 other user is logged in under this account





Ready

ASSIGN SY:SYSDSK

Ready

ASSIGN SY:SYSTEM

Ready

ASSIGN [1,2]

Ready

ASSIGN MT1:INPUT

Ready

!
! BUILD PROCEDURE FOR RSX RUN-TIME SYSTEM AND UTILITIES
!

!
! MAKE SURE RT11 RUN-TIME SYSTEM IS ADDED
!
RUN $UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#ADD RT11
#EXIT

Ready


!
! COPY RUN-TIME SYSTEM FROM DISTRIBUTION KIT
!
RUN $PIP.SAV
*SYSTEM:[0,1]=INPUT:$RSX.RTS/BL
*SYSTEM:[0,1]/MODE:16.=SYSTEM:[0,1]RSX.RTS
*^Z


Ready


!
! ADD THE RUN-TIME SYSTEM
!
RUN $UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#ADD SYSTEM:RSX
#EXIT

Ready


!
! COPY SYSTEM LIBRARIES AND PROGRAMS TO TARGET SYSTEM
!
ASSIGN <40>

Ready

RUN $PIP.SAV
*SYSTEM:[1,1]=INPUT:$SYSLIB.OLB/BL
*SYSTEM:[1,1]=INPUT:$RSXMAC.SML/BL
*SYSTEM:@<104>=INPUT:$TKB.TSK/BL
*SYSTEM:@<104>=INPUT:$MAC.TSK/BL
*SYSTEM:@<104>=INPUT:$LBR.TSK/BL
*SYSTEM:@<104>=INPUT:$PAT.TSK/BL
*SYSTEM:@<104>=INPUT:$EDT.TSK/BL
*SY:=INPUT:$EDTCOM.TXT
*^Z


Ready


!
! ENSURE RIGHT RTS NAMES ARE ASSOCIATED WITH .TSK FILES
!
RUN $UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#NAME RSX=SYSTEM:@TKB.TSK
#NAME RSX=SYSTEM:@MAC.TSK
#NAME RSX=SYSTEM:@LBR.TSK
#NAME RSX=SYSTEM:@PAT.TSK
#NAME RSX=SYSTEM:@EDT.TSK
#EXIT

Ready


!
! ADD THE FOLLOWING UTILTY COMMANDS TO SYSTEM START-UP FILE
!
RUN $UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#CCL TKB=$TKB.TSK
#CCL MAC=$MAC.TSK
#CCL LBR=$LBR.TSK
#CCL PAT=$PAT.TSK
#CCL EDT=$EDT.TSK
#EXIT

Ready


!
! EXTRACT ODT.OBJ FROM SYSLIB
!
LBR SYSTEM:[1,1]ODT=SYSTEM:[1,1]SYSLIB/EX:ODTRSX

Ready


!
! FORMAT THE EDITOR'S DIAGNOSTIC TEXT FILE
! IF THE FILE DOESN'T EXIST ALREADY, EXPECT AN ERROR MESSAGE
!
RUN SYSTEM:@EDT
EDT>SYSTEM:@EDTCOM.MSG=SY:EDTCOM.TXT
DIAGNOSTIC FILE NOT PRESENT OR INCORRECTLY DEFINED
*EX/DI
162 LINES OUTPUT

Ready


!
! CREATE A PIP.BAC FOR INSTALLATION PROCEDURES DEPENDING ON IT
!
RUN $PIP.SAV
*SYSTEM:@.BAC/PR=$PIP.SAV
*^Z


Ready


!
! END OF RSX BUILD PROCEDURE
!
DEASSIGN

Ready

^C

Ready

HELLO

RSTS V06C-03 Vixen  Job 2  [1,2]  KB0  13-Mar-76  09:00 AM
Job 1 is detached under this account
Job number to attach to? 1
Attaching to job 1

BUILD Complete

Ready

RUN MT1:BUILD
BUILD   V06C-03 RSTS V06C-03 Vixen
System Build <No>?
Source Input Device <MT1:/DENSITY:800/PARITY:ODD>?
Library Output Device <SY:>?
Library Account <[1,2]>?
Control File is? MT1:RMSBLD.CTL
 *** Copying file MT1:RMSBLD.CTL to SY:BUILD.TMP
BUILD Detaching...




^C
HELLO

RSTS V06C-03 Vixen  Job 2  KB0  13-Mar-76  09:00 AM
#1/2
Password:
Job 1 is detached under this account
Job number to attach to?
1 other user is logged in under this account





Ready

ASSIGN SY:SYSDSK

Ready

ASSIGN SY:SYSTEM

Ready

ASSIGN [1,2]

Ready

ASSIGN MT1:INPUT

Ready

!
! BUILD PROCEDURE FOR RMS RUN-TIME SYSTEM AND UTILITIES
!

!
! MAKE SURE RT11 RUN-TIME SYSTEM IS ADDED
!
RUN $UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#ADD RT11
?Name or account now exists - in ADD
#EXIT

Ready


!
! COPY RUN-TIME SYSTEM FROM DISTRIBUTION KIT
!
RUN $PIP.SAV
*SYSTEM:[0,1]=INPUT:$RMS11.RTS/BL
*SYSTEM:[0,1]/MODE:16.=SYSTEM:[0,1]RMS11.RTS
*^Z


Ready


!
! ADD THE RUN-TIME SYSTEM
!
RUN $UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#ADD SYSTEM:RMS11
#EXIT

Ready


!
! COPY THE RMS COMPONENTS TO THE TARGET SYSTEM
!
ASSIGN <40>

Ready

RUN $PIP.SAV
*SYSTEM:[1,1]=INPUT:$RMS11.ODL
*SYSTEM:[1,1]=INPUT:$RMS11.TSK/BL
*SYSTEM:[1,1]=INPUT:$RMS11.STB
*SYSTEM:[1,1]=INPUT:$RMSMAC.MLB/BL
*SYSTEM:[1,1]=INPUT:$RMSLIB.OLB/BL
*^Z


Ready


!
! COPY THE RMS UTILITIES TO THE TARGET LIBRARY
!
RUN $PIP.SAV
*SYSTEM:@<104>=INPUT:$RMSBCK.TSK/BL
*SYSTEM:@<232>=INPUT:$RMSRST.TSK/BL
*SYSTEM:@<104>=INPUT:$RMSDFN.TSK/BL
*SYSTEM:@<104>=INPUT:$RMSDEF.TSK/BL
*SYSTEM:@<104>=INPUT:$RMSDSP.TSK/BL
*SYSTEM:@<104>=INPUT:$RMSCNV.TSK/BL
*^Z


Ready


!
! ENSURE CORRECT RTS NAME IS ASSOCIATED WITH .TSK FILES
!
RUN $UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#NAME RSX=SYSTEM:@RMSBCK.TSK
#NAME RSX=SYSTEM:@RMSRST.TSK
#NAME RSX=SYSTEM:@RMSDFN.TSK
#NAME RSX=SYSTEM:@RMSDEF.TSK
#NAME RSX=SYSTEM:@RMSDSP.TSK
#NAME RSX=SYSTEM:@RMSCNV.TSK
#EXIT

Ready


!
! ADD THE FOLLOWING UTILTY COMMANDS TO SYSTEM START-UP FILE
!
RUN $UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#CCL BCK=$RMSBCK.TSK
#CCL RST=$RMSRST.TSK;PRIV
#CCL DFN=$RMSDFN.TSK
#CCL DEF=$RMSDEF.TSK
#CCL DSP=$RMSDSP.TSK
#CCL CNV=$RMSCNV.TSK
#EXIT

Ready


!
! END OF RMS BUILD PROCEDURE
!
DEASSIGN

Ready

^C

Ready

HELLO

RSTS V06C-03 Vixen  Job 2  [1,2]  KB0  13-Mar-76  09:00 AM
Job 1 is detached under this account
Job number to attach to? 1
Attaching to job 1

BUILD Complete

Ready

RUN MT1:BUILD
BUILD   V06C-03 RSTS V06C-03 Vixen
System Build <No>?
Source Input Device <MT1:/DENSITY:800/PARITY:ODD>?
Library Output Device <SY:>?
Library Account <[1,2]>?
Control File is? MT1:$TECBLD.CTL
 *** Copying file MT1:$TECBLD.CTL to SY:BUILD.TMP
BUILD Detaching...




^C
HELLO

RSTS V06C-03 Vixen  Job 2  KB0  13-Mar-76  09:00 AM
#1/2
Password:
Job 1 is detached under this account
Job number to attach to?
1 other user is logged in under this account





Ready

ASSIGN SY:SYSDSK

Ready

ASSIGN SY:SYSTEM

Ready

ASSIGN [1,2]

Ready

ASSIGN MT1:INPUT

Ready

!
! BUILD PROCEDURE FOR TECO
!

!
! MAKE SURE RT11 RUN-TIME SYSTEM IS ADDED
!
RUN $UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#ADD RT11
?Name or account now exists - in ADD
#EXIT

Ready


!
! COPY ALL TECO COMPONENTS FROM DISTRIBUTION KIT
!
RUN $PIP.SAV
*SYSTEM:[0,1]<60>=INPUT:$TECO.RTS
*SYSTEM:[0,1]<60>/MODE:16.=SYSTEM:[0,1]TECO.RTS
*SYSTEM:@<232>=INPUT:$TECO.TEC
*SYSTEM:@<232>=INPUT:$VT52.TEC
*SYSTEM:@<104>=INPUT:$TYPE.TEC
*SYSTEM:@< 40>=INPUT:$TECO.DOC
*^Z


Ready


!
! SET RTS NAME TO TECO FOR THE .TEC FILES
!
RUN $UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#NAME TECO=SYSTEM:@TECO.TEC
#NAME TECO=SYSTEM:@VT52.TEC
#NAME TECO=SYSTEM:@TYPE.TEC
#EXIT

Ready


!
! ADD THE FOLLOWING UTILTY COMMANDS TO SYSTEM START-UP FILE
!
RUN $UTILTY
UTILTY  V06C-03 RSTS V06C-03 Vixen
#ADD TECO
#CCL MAK-E=$TECO.TEC;0
#CCL MU-NG=$TECO.TEC;0
#CCL TE-CO=$TECO.TEC;0
#CCL TY-PE=$TYPE.TEC;8
#EXIT

Ready


!
! END OF BUILD PROCEDURE FOR TECO
!
DEASSIGN

Ready

^C

Ready

HELLO

RSTS V06C-03 Vixen  Job 2  [1,2]  KB0  13-Mar-76  09:00 AM
Job 1 is detached under this account
Job number to attach to? 1
Attaching to job 1

BUILD Complete

Ready

RUN TTYSET
TTYSET  V06C-03 RSTS V06C-03 Vixen
Terminal characteristics program
? LC INPUT
? ^Z

Ready

run pip
*$*.*<40>=MT1:$MACRO.SAV,$CREF.SAV,$LINK.SAV,$LIBR.SAV
*notice.txt<40>=tt:

Welcome to RSTS V06C-03 time sharing

This system was installed from a tape with missing blocks!!
Errors which caused the installation and build to fail have been
manually patched or worked around. The result is a system which
runs but should not be relied upon too much.

I don't have any optional software tapes so this is a pretty basic
system (pun intended)

Rather interesting to look back at how things were done in the
good old days.

Paul Nankervis
paulnank@hotmail.com
http://skn.noip.me/pdp11/pdp11.html
^Z
*^Z

Ready

run react
REACT   V06C-03 RSTS V06C-03 Vixen
System Account Manager
Function? s
Account [1,1] being bypassed
Account [1,2] on System Disk being bypassed
All Accounts in Account File are now Entered
Function? e
Proj,Prog? 11,70
Disk:Password? sy:pdp
Quota? 500
Cluster Size? 2
Account Name? PDP 11/70 Emulator
Proj,Prog? ^Z

Ready

mount dk1: vixen

Ready

run pip
*teco.doc/de
*[11,70]=dk1:[11,70]*.*
*^Z

Ready

run $shutup
SHUTUP   V06C-03   RSTS V06C-03 Vixen

########  Set-up Dialogue Phase  ########

Type 'ESC'('ALT') to any query to backup one (1) step

'OPSER' not running

Minutes until system shutdown (0-99) <5>?  0

########  Warning Message Phase  ########
Further LOGINs are now disabled

########  Initial Job Killing Phase  ########

########  Unload/Remove RTS Phase  ########

########  SWAP File Removal Phase  ########

########  Disk DISMOUNT Phase  ########

########  Final Shutdown Phase  ########

Please wait for system to re-boot itself



RSTS V06C-03 Vixen (DK2)


Option: