User Tools

Site Tools


cdc:nos2:installation

Table of Contents

Installation (NOS 2.8.7)

A Step-by-Step Guide to Installing NOS 2.8.7 on a CYBER-865 from “Scratch”

Item Description
Author: Nick Glazzard
Date: August/September 2019
Cataloged: in CODEX: 20190911
Edited: Steve Zoppi

Acknowledgements

William Schaub for the direct contributions of a Y2K “patch” process (using Paul Koning's original work), discovering the X.MS “Manage System” procedures and for information on building Cyber Kermit (with an easy to install version too).

Many contributors to the Controlfreaks mailing list. Much vital information is in there. Particularly useful were posts from Tom Hunter, Paul Koning, Kevin Jordan, Digby Tarvin and Gerard van der Grinten.

Any errors in what follows are mine … :-)

Introduction

I've always wanted to be able to install NOS “from scratch” on a fresh DtCyber system, but I have never managed to do it in the past. Last try was about 12 years ago, so it was time to try again.

Note that there is no really good reason to do this. There are “ready to run” systems on the Controlfreaks website for NOS 2.8.1 and NOS 2.8.7 with Plato, built by Tom Hunter and Paul Koning.

However, doing it yourself gives you the feeling you understand the system better. At least, that's my feeling … :-)

You can also modify things to have any (reasonable) hardware configuration: more disks, tapes, etc.

I think it will take most of a day to perform the steps below. Working out the steps took a great deal longer, so I'm not really sure how quickly it could be done by following “the recipe”.

In theory, everything is documented in:

  • 60459320R_NOS_Version_2_Installation_Handbook_Aug94.pdf
  • Especially: Chapter 2: First-Time Installation

(Below, this document is referred to as the N.I.H.).

However, there are “issues” in practice.

Steps 1 to 3 are fine (with some pretty obvious adjustments).

Step 4: Bring Up a Network Terminal – This is where the trouble starts.

DtCyber in principle follows the NAM/CCP path in there. But, because only enough of the NPU and CCP is emulated to support terminals, and the default network configuration files try to start RBF, FTP, PSU … etc. … typing:

  NAM.
  IAF.

as specified there will definitely not work.

Tom Hunter and Paul Koning sorted out a network definition file and a network startup file which will provide 16 terminals and not try to start things that can't work. They did this when they first implemented an emulation with a working async TIP. These files must be installed. I have used a combination of batch jobs and DIS to do this.

The starting point for the installation is to use DECK 17 (2000K CM, 0 ESM, 885-12 disks on units 40 & 41) as a starting point. Almost everything in there is overridden, however, so maybe that wasn't a great place to start.

Another thing is what “from scratch” really means. At this point in time, we have a small number of “release tapes” that were prepared by CDC Arden Hills Operations (I think) long ago … The contents of the tape is what some customer ordered. The NOS 2.8.7 we have includes nice things like APL which don't appear to be available as separate products in any easily found form. “From scratch” means using a matched deadstart tape and set of “distribution” tapes as prepared for some customer at some point in the past.

The original deadstart tape has already been altered by Paul Koning for DtCyber because it specified a GE tape format which MT669s don't support, so it had to be changed to specify PE format. Also, it may have had double tape marks originally, which had to be removed. There may have been some other changes too (e.g. the name CYBER1 appears in several places).

What follows is pretty much a record of the successful steps I've made in this project. Many unsuccessful steps have been omitted!

Quite a lot of trial and error was involved, and much use was made of material found in the Controlfreaks mailing list. This answered most questions, actually, after some head scratching.

AFAICT, this has resulted in a correctly working NOS 2.8.7 on CYBER 865 system. Although I'm not 100% confident about that!

However, I really don't know how to configure UEM (and related matters) on the 865. The NOS 2 Analysis Handbook Revision D (1984) doesn't seem to mention UEMIN., for example … although my ignorance is deeper than that!

Procedures

1 - Pre-Installation

1.1 - Gather the "distribution materials"

StepFile Description
a. cy871b.tap.bz2 Initial deadstart tape for 2.8.7 (871), as modified by Paul Koning.
b. nos287-1.tap.gz First NOS permanent files distribution tape.
c. nos287-2.tap.gz Second NOS permanent files distribution tape.
d. nos287-3.tap.gz Third NOS permanent files distribution tape.
e. y2k.tap.gz Y2K patches tape.
f. network-batch.txt * Batch job for network: Makes NCF and LCF from NDL configuration file.
g. network-start.txt * Batch job for network: Changes NAMSTRT to start only viable components.
h. pli_compiler.tap PL/I compiler installation tape.
i. modset-1tm-1tn-batch.txt * Batch job to copy Kevin Jordan's 1TM/1TN patches to INSTALL catalog.
j. y2k-altfix-batch.txt * Alternative Y2K patch batch job (NOS core components only).
k. jobtdu.txt * Batch job to copy terminal definition for TeraTerm Pro to disk.
l. NOS_2_Installation_Handbook_60459320L_Dec88.pdf NOS Installation Handbook (Rev L)
m. NOS_Version_2_Installation_Handbook.60459320B.1983.pdf NOS Installation Handbook (Rev B)
n. 60459320-NOS2_Install-RevP.pdf NOS Installation Handbook (Rev P)

The items marked with a * are not easy to find (they came out of mailing list attachments, etc.) so I have put them in a zip file which can be found here: Rare Bits

The other items are all to be found in the usual places on the Controlfreaks Wiki.

1.2 - Prepare top of new directory tree

  1. mkdir newinstall
  2. cd newinstall

1.3 - Install DtCyber

  1. git clone https://github.com/kej715/DtCyber.git <your_directory>
  2. cd <your_directory>
  3. emacs window_x11.c
    1. change font to one that exists on the system
    2. this might not be necessary depending on what fonts are on the system

             /*
             **  Load three Cyber fonts.
             */
             #if 0
               hSmallFont = XLoadFont(disp, "-*-lucidatypewriter-medium-*-*-*-10-*-*-*-*-*-*-*\0");
               hMediumFont = XLoadFont(disp, "-*-lucidatypewriter-medium-*-*-*-14-*-*-*-*-*-*-*\0");
               hLargeFont = XLoadFont(disp, "-*-lucidatypewriter-medium-*-*-*-24-*-*-*-*-*-*-*\0");
             #else
               hSmallFont = XLoadFont(disp, "-*-fixed-medium-*-*-*-10-*-*-*-*-*-*-*\0");
               hMediumFont = XLoadFont(disp, "-*-fixed-medium-*-*-*-13-*-*-*-*-*-*-*\0");
               hLargeFont = XLoadFont(disp, "-*-fixed-medium-*-*-*-20-*-*-*-*-*-*-*\0");
             #endif

      * Optionally and perhaps debatably …

      I have found the following change to npu_async.c helps to get rid of (or reduce the frequency of) UNKNOWN CONTROL KEY, CHECK SCREEN in FSE. It may be that there is some set of telnet settings that makes this unnecessary, but I haven't found them with the client systems I use.

      In function: npuAyncProcessUplineTransparent() add:

                    npuTipInputReset(tp);
                  }
        #if 1
      	else if (ch == 0x0a )
      	  {
      	    /* NG: Swallow line feeds here. */
      	    continue;
      	  }
        #endif
              else if (ch == tp->params.fvUserBreak2 && tp->params.fvEnaXUserBreak)
                  {
                  *tp->inBufPtr++ = ch;
       
       
      (i.e. insert the conditionally compiled lines.)
        make -f Makefile.linux32
        cd ..

1.4 - Prepare remainder of new directory tree

User Terminal
mkdir new287 cd new287 mkdir disks # Where the files for the disks will go. mkdir tapes # Where tapes other than deadstart tapes will go. mkdir dstapes # Where deadstart tapes will go. mkdir cards # Where batch jobs that help install things will go. mkdir PersistStores/NNOS287

1.5 - Copy distribution materials to tree.

StepCommandsDescription
a. cp <distdir>/cy871b.tap.bz2 dstapes # Initial deadstart tape for 2.8.7 (871)
b. cd dstapes; bunzip2 cy871b.tap.bz2; cd .. # … uncompress it …
c. cp <distdir>/nos287-1.tap.gz tapes # First NOS distribution tape.
d. cd tapes; gunzip nos287-1.tap.gz; cd ..
e. cp <distdir>/nos287-2.tap.gz tapes # Second NOS distribution tape.
f. cd tapes; gunzip nos287-2.tap.gz; cd ..
g. cp <distdir>/nos287-3.tap.gz tapes # Third NOS distribution tape.
h. cd tapes; gunzip nos287-3.tap.gz; cd ..
i. cp <distdir>/y2k.tap tapes # Y2K patches tape.
j. cp <distdir>/pli_compiler.tap tapes # PL/I compiler.
k. cp <distdir>/network-batch.txt cards # Network: Make NCF and LCF from NDL configuration file.
l. cp <distdir>/network-start.txt cards # Network: Change NAMSTRT to start only viable components.
m. cp <distdir>/modset-1tm-1tn-batch.txt cards # Fixes for 1TM/1TN.
n. cp <distdir>/y2k-altfix-batch.txt cards # Alternative Y2K fixes job.
o. cp <distdir>/jobtdu.txt cards # TeraTerm Pro terminal definition file copy job.

1.6 - Create cyber.ini

Configure your CYBER Initialization File

cyber.ini
;---
; New NOS287 CYBER865 machine, installation configuration.
;---
 
[cyber]
model=CYBER865
deadstart=deadstart.N871
equipment=equipment.N871
clock=0
memory=4000000
ecsbanks=0
pps=12
persistDir=PersistStores/NNOS871
 
[equipment.N871]
; type, eq, un, ch, path
DD885,0,0,01,disks/DM01
DD885,0,1,01,disks/DM02
CO6612,0,0,10
CP3446,6,0,11
CR3447,7,0,11
LP512,7,0,07,3555
MT679,0,0,13,dstapes/cy871b.tap
MT679,0,1,13
MT679,0,2,13
MT679,0,3,13
TPM,0,0,15
NPU,7,0,05
 
[deadstart.N871]
0000
0000
0000
7553 DCN 13
7713 FAN 13,
0120        0120
7413 ACN 13
7113 IAM 13,
7301        7301
0000
0117 wxyy w=level, x=display on/off, yy=cmrdeck
0000

;--- EOF ---

2 - Initialize Virtual Hardware

2.1 - Run DtCyber and proceed to EQPDECK (equipment deck) display.

  1. ../trunk/dtcyber
  2. (CTI display) CR to auto load.
  3. (CMRINST display) NEXT.
  4. (EQPINST display) ] (to see EQPDECK).

2.2 - Remove everything to do with ECS/ESM/UEM

  • Backspace through:
    EQ005=DE,ET=EM,SZ=4000.
  • This will remove it and cause further issues to correct. As each one is presented, backspace through it to remove it:
    ASR=5. (delete)
    XM=AA,,200. (delete)
    MSAL,S=5. (delete)
    UEMIN. (delete)
    PF=5,F,,,CYBER,5. (delete)

2.3 - Change 885-21 disks from full (DQ) to half (DM) track:

  • At the NOS Console:
    EQ006=DM,UN=0,CH=1.
    EQ007=DM,UN=1,CH=1.

2.4 - Change line printer type.

  • At the NOS Console:
    EQ020=LQ,EQ=7,CH=7.

2.5 - Add card reader and card punch.

  • At the NOS Console:
    EQ021=CR,EQ=7,CH=11.
    EQ022=CP,EQ=6,CH=11.

2.6 - Change from 2 to 4 679 tape drives.

  • At the NOS Console:
    EQ050=NT-4,EQ=0,UN=0,CH=13,TF=ATS.

2.7 - Change the NPU definition.

  • At the NOS Console:
    EQ060=NP,ST=OFF,EQ=7,CH=5,PI=1,SA=OFF,ND=1.

2.8 - Schedule disk initialization.

  • At the NOS Console:
    INITIALIZE,AL,6.
    INITIALIZE,AL,7.

2.9 - Deadstart (first time).

  • At the NOS Console:
    GO.
    Accept default date and time.
    Wait for: USER DAYFILE PROCESSED in A display.

2.10 - Check equipment configuration after deadstart.

  • At the NOS Console:
    E,A.
  • Verify it looks as expected.

3 - Install NOS and Create New Deadstart

3.1 - Install permanent files for the system from distribution tape.

  • At the NOS Console:
    AB.
    X.SYSGEN(FULL)
  • When you see MAG, CHECK E,P DISPLAY message (request to load tape), on DtCyber operator console:
    operator> lt 13,0,1,r,tapes/nos287-1.tap
  • Wait for SYSGEN to complete. May take 20-30 minutes. 16 minutes on my 2GHz T60.

3.2 - Setup up usable network configuration.

  • Use a batch job to copy new network config file NDL15 and a CCL job to make compiled NCF (Network Configuration File) and LCF (Local Configuration File) from NDL15. These files are stored under user NETADMN/NETADMN.
  • In DtCyber operator console:
    operator> lc 11,7,cards/network-batch.txt
  • Wait for batch job to complete.
  • At the NOS Console:
    X.DIS
    USER,NETADMN,NETADMN.
    GET,NDLJOB.
    BEGIN,NDLJOB,NDLJOB.

    Wait for job to complete

    (REVERT. *** END OF NDLJOB ***)
    DROP.

    (leave DIS)

3.3 - Setup network start procedure that only starts things the emulator can do.

  • Use another batch job to overwrite NAMSTRT in INSTALL/INSTALL.
  • In DtCyber operator console:
    operator> lc 11,7,cards/network-start.txt

Wait for batch job to complete.

3.4 - Put NAMSTRT into NETOPS. Because that is where NAMSTRT is sought ...

  • At the NOS Console:

CDC Terminal
X.DIS. USER,INSTALL,INSTALL. GET,NAMSTRT. SUI,377772. CHANGE,NAMSOLD=NAMSTRT. SAVE,NAMSTRT/CT=PU. DROP.

3.5 - Start **NPU**

  • At the NOS Console:

CDC Terminal
E,A. ON,EQ=60. AB.

3.6 - Start NAM

  • At the NOS Console:
    NAM.
  • Wait for NAM to start. Hopefully, RBF, FTP, PSU and other stuff will NOT try to start.

3.7 - Start **IAF**

  • At the NOS Console:
    IAF.
  • Wait until NETWORK CONNECTED is shown for IAF in control point display.

It should now be possible to log in to the system from terminals.

3.8 - Login as INSTALL/INSTALL on an IAF terminal.

  • In a host terminal (shell) window:

User Terminal
ctelnet 127.0.0.1 6610 --crlf # Or just use normal # telnet client (if it works properly) FAMILY: (CR) USER NAME: INSTALL PASSWORD: INSTALL

3.9 - Edit CMRD17 and EQPD17 to match what we are now running with.

That is, reproduce the changes we made in previous steps. Also change the name shown for the system if wanted.

  • At the NOS Console:
    COMMON,SYSTEM.
    GTR,SYSTEM,DSTDECK.CMRD17,EQPD17
    XEDIT,DSTDECK.
  • Make changes in XEDIT
  • At the NOS Console:
    E,DSTDECK
  • NOTE: This could be done (more pleasantly, probably) with FSE if confident that there is a properly working terminal emulator and telnet client on the machine being used for access. With a matching termdef in NOS for the terminal the terminal emulator is emulating… This is a further adventure, potentially … XEDIT at least will work with any interactive access that will send keystrokes and print characters properly.

3.10 - Load a new, writeable, tape. This will be the new deadstart tape.

  • At the DtCyber operator console:
    operator> lt 13,0,2,w,dstapes/newnos287.tap

3.11 - Create the new deadstart tape in the IAF login session:

  • At the NOS Console:
    SYSGEN,DST,SYSTEM,DSTDECK,NEW,0,PE.
  • Wait for: MAG, CHECK E,P DISPLAY message (request to load tape)
  • At the NOS Console:
    VSN,52,NDT.
  • SYSGEN will then write the new deadstart tape and verify it.
  • Log out of IAF:
    BYE.

3.12 - Shutdown NOS.

  • At the NOS Console:
    UNLOCK.
    CHECK POINT SYSTEM.
  • (wait for CHECK POINT COMPLETE)
    STEP.
  • At the DtCyber operator console:
    shutdown

3.13 - Edit cyber.ini to use new deadstart tape.

  • Change:
    MT679,0,0,13,dstapes/cy871b.tap
  • To:
    MT679,0,0,13,dstapes/newnos287.tap

3.14 - Restart NOS (second deadstart):

  • ../trunk/dtcyber
  • When CIP/CTI screen is shown, (CR) for automatic load.
  • When CMRINST is shown, * At the NOS Console:
    GO.
  • When prompted to enter date, accept default with (CR).

4 - Clean Up Errors

4.1 - Try to understand new errors!

ERRORRemedy
CMS CLDT: No LID table created. Buffer too small.FIX: Add LDT=20 to CMRD17. On deadstart or permanently.
MSE SSF fails to load controlware for a 7990. (Or something like that. Falls into DIS.) (See Below)
  • Notes:
    1. This is reading MSECONF file in UI=377760
    2. Renaming this file did not change anything (recreated by something else?)
    3. Error messages are:
      00.01.23.MSE.
      00.01.23.GET,MSE/NA. 
      00.01.24.MSE.
      00.01.24.********************* 
      00.01.24.* SSEXEC. 
      00.01.24.* HOST=HOSTID/7990
      00.01.24.* CONFIGURATION FILE
      00.01.24.* IS MSECONF (UI=377760)
      00.01.24.* USES CHANNELS 2 AND 7 
      00.01.24.********************* 
      00.01.24.LOADBC(C=2) 
      00.01.24. NO CONTROLWARE ON CHANNEL. 
      00.01.24. CONTROLWARE LOAD ABORT, C=02.
      00.01.24.EXIT. 
      00.01.24.DIS.
      00.02.00.DMP.
      00.02.00.DMD,60000.
  • TEMPORARY FIX:
    DROP.


  • (leave DIS)
    IDLE,SSF.
  • PROPER FIX:
    1. This is really due to trying to use 7990 tape cartridge mass storage facility thing, I think. Which we don't have (of course).
    2. Need to alter IPRDECK settings on deadstart.
    3. NEXT. through to IPRDECK.
    4. “+” to see next page (because that is where ENABLE/DISABLE seem to be).
      DISABLE,MSE.
      DISABLE,MASTER MSE.
      DISABLE,CARTRIDGE PF STAGING.
      DISABLE,SSF.
      GO.
    5. NOTE: This is also where auto start of subsystems, etc. can be specified.
  • Apart from that, it all seems to work. To get to IAF login capability:
    ON,EQ=60.
    NAM.
    IAF.

(wait for IAF NETWORK CONNECTED on control point).

4.2 - Make these necessary changes permanent.

By writing a new deadstart tape with the changes made. Note that you have to edit these changes in after the system is running. Adding entries in deadstart doesn't change what is on the deadstart tape in itself. Which is obvious … but … may be overlooked!

NOTE: We'll use FSE here, assuming a terminal emulator, working telnet and a terminal definition that matches what the terminal emulator emulates have all been sorted out. It could otherwise be done with XEDIT again. For a Unix client system, using xterm with a 80×43 display matches the NCDX terminal definition in NOS, so – with a properly working telnet – this can work. Details on setup below.

Change CMRDECK:
  1. Login interactively as install/install
  2. TRMDEF,TC=7 # Note: stick to uppercase here. Do NOT use ASCII!
  3. SCREEN,NCDX
  4. SETJSL,*.
  5. SETTL,*.
  6. COMMON,SYSTEM.
  7. GTR,SYSTEM,DSTDECK.CMRD17
  8. FSE,DSTDECK


    — Contents —

    NOS FULL SCREEN EDITOR
    Upper Case File DSTDECK  Lines 1 - 9 Size 9 (No Changes)
    CMRD17
    * NON 810/830, 2000K CM, 885-12 DISKS
    NAME=HCCC NOS 2.8.7
    VERSION=NOS 2.8.7 871/871.
    MID=AA.
    LIB=2.
    NCP=34.
    QFT=3000.
    EJT=2000.

Add:

LDT=20.
  1. REWIND,DSTDECK
  2. LIBEDIT,P=SYSTEM,B=DSTDECK.
    ENTER DIRECTIVES -
    ? *REPLACE CMRD17
    ? ((return))
    
    
    
          RECORDS WRITTEN ON FILE NEW
              RECORD    TYPE      FILE       DATE      COMMENT
    
     DELETED-(CMRD17)   TEXT      SYSTEM
     INSERTED CMRD17    TEXT      DSTDECK
     ADDED    SYSTEM    OPLD      *****     97/11/05.
     EDITING COMPLETE.
  3. RENAME,STEP=NEW.
  4. RETURN,DSTDECK.
Change IPRDECK:
  1. GTR,SYSTEM,DSTDECK.IPRD00
  2. FSE,DSTDECK

– BEFORE –

ENABLE,MSE.
ENABLE,MASTER MSE.
ENABLE,CARTRIDGE PF STAGING.
ENABLE,USER EXTENDED MEMORY.
ENABLE,MAP.
DISABLE,NAM.
ENABLE,SSF.
DISABLE,RHF.
ENABLE,SUBCP.
DISABLE,TAF.
ENABLE,PROBE.

– AFTER –

DISABLE,MASTER MSE.
DISABLE,CARTRIDGE PF STAGING.
ENABLE,USER EXTENDED MEMORY.
ENABLE,MAP.
DISABLE,NAM.
DISABLE,SSF.
DISABLE,RHF.
ENABLE,SUBCP.
DISABLE,TAF.
ENABLE,PROBE.

{then type the following commands}

REWIND,DSTDECK.
LIBEDIT,P=STEP,B=DSTDECK.

ENTER DIRECTIVES -
? *REPLACE IPRD00
?

      RECORDS WRITTEN ON FILE NEW
          RECORD    TYPE      FILE       DATE      COMMENT

 DELETED-(IPRD00)   TEXT      STEP
 INSERTED IPRD00    TEXT      DSTDECK
 ADDED    SYSTEM    OPLD      *****     97/11/05.
 EDITING COMPLETE.
Write new deadstart tape with these changes.
  • On DSD console (allow dangerous commands):
    UNLOCK.
    DEBUG.
  • On DtCyber operator console (mount a blank tape to write to):
    lt 13,0,2,w,dstapes/newnos287edit.tap
  • In interactive session:
    1. resourc,pe=3. # Otherwise we would exceed default max of 2 tapes.
    2. assign,52,newtape,lb=ku,po=w.
    3. rewind,new.
    4. copyei,new,newtape.
    5. return,newtape.
    6. bye.
  • In the DSD console:
    CHECK POINT SYSTEM. (wait for CHECK POINT COMPLETE)
    STEP.
  • In the DtCyber operator console:
    shutdown
Restart with the new deadstart tape (third deadstart).
  • Edit cyber.ini to use new deadstart tape.
  • Restart. This time, GO. when CMRINST is displayed should successfully deadstart.
  • Yes, it works.
  • Still need to:
    ON,EQ=60.
    NAM.
    IAF.

It is good exercise for the fingers … :-)

Alternatively, EQ 60 can be set to be on in EQPD17 and NAM and IAF can be ENABLED in IPRD00 and a new deadstart tape written … now they all seem to work.

4.3 - 32. Adding PL/I.

This cannot be installed using the procedures described in Chapter 4 of the NOS Installation Handbook because it isn't an official product distribution tape. We install it by adding it to the system and creating a new deadstart tape.

Instead:

  • On DSD console (allow dangerous commands):
    UNLOCK.
    DEBUG.
  • On DtCyber operator console (mount tape with compiler on it):
    lt 13,0,1,r,tapes/pli_compiler.tap
  • Login interactively as install/install
    label,tape,vsn=pli,lb=kl.      # Get access to the tape
    common,system.                 # Get the current system library
    libedit,p=system,b=tape.       # Edit the current system library
    
    ENTER DIRECTIVES -
    ? ((just type return))
    
    
          RECORDS WRITTEN ON FILE NEW
              RECORD    TYPE      FILE       DATE      COMMENT
    
     ADDED    PLI       ABS       TAPE      84/11/28.
     ADDED    PLI10     OVL       TAPE      84/11/28.
     ADDED    PLI11     OVL       TAPE      84/11/28.
     ADDED    PLI13     OVL       TAPE      84/11/28.
     ADDED    PLI14     OVL       TAPE      84/11/28.
     ADDED    PLI15     OVL       TAPE      84/11/28.
     ADDED    PLI16     OVL       TAPE      84/11/28.
     ADDED    PLILIB    ULIB      TAPE      84/11/28.
     ADDED    SYSTEM    OPLD      *****     97/11/05.
     EDITING COMPLETE.
  • On DtCyber operator console (mount a blank tape to write to):
    lt 13,0,2,w,dstapes/newnos287pli.tap
  • In interactive session:
    resourc,pe=3.                    # Otherwise we would exceed default max of 2 tapes.
    assign,52,newtape,lb=ku,po=w.
    rewind,new.
    copyei,new,newtape.
    return,newtape.
    bye.
  • Shutdown NOS, then DtCyber.
  • Edit cyber.ini to use new deadstart tape.
  • Restart DtCyber, then NOS (fourth deadstart).
  1. Login, create a test PL/I program, compile and run it.
  2. Yes, that works.
  3. Beware using ASCII mode in FSE with PL/I though … colons cause trouble …

Maybe there is an option for this … Or stick to NORMAL character set.

4.4 - Preparing for re-building parts of NOS using source code.

Applying “corrective code” (patches) or “customizing” parts of the system requires rebuilding items from source. This means the source code for NOS needs to be available. At the end of the day, this should be in a file called OPL871 in the INSTALL user catalog. Actually getting OPL871 involves quite a few steps, though. These are (sort of) described in Chapter 6: Customizing Installations in the N.I.H. … but not all that clearly IMHO. The following seems to work.

  • Login in as INSTALL/INSTALL interactively (or it can be done in DIS on the console).
    SYSGEN,SOURCE.    # This gets tools needed to get the source, such as the COMMOD and INSTALL files, AFAICT.
    GET,COMMOD.       # COMMOD can be edited. It configures INSTALL, I think.
    ATTACH,INSTALL.
    BEGIN,SETUP,INSTALL,MOD=COMMOD,INSTALL.
    BEGIN,SEED,INSTALL,DST=SYSTEM.
    BEGIN,MODOPL,INSTALL,DISKINS=YES.

This last step will request tapes with VSN=BC004P and (eventually) VSN=BC004Q. These are nos287-1.tap and nos287-2.tap.

After some considerable time (when it isn't obvious that anything is happening), it will begin copying things from tape.

And when it completes, OPL871 is present on the INSTALL user catalog.

4.5 - Apply Kevin Jordan's patches for 1TM,1TN.

This enables 1TN to drive the 6676 mux and support multiple telnet connections to IAF on NOS 2.8.7. It also changes 1TM (2-port mux driver) so the 2-port mux can also be used for IAF logins. The configuration doesn't has a 6676 mux, but this is still an interesting exercise that validates source based changes.

  • Copy the modset for this to disk. This uses the batch job:modset-1tm-1tn-batch.txt. This is Kevin's modset with a trivial job added to the top to copy INPUT to MOD1TM in INSTALL catalog.
  • In DtCyber operator console:
    operator> lc 11,7,cards/modset-1tm-1tn-batch.txt
  • Login in as INSTALL via IAF.
    GET,MOD1TM.
    ATTACH,OPL=OPL871.
    MODIFY,I=MOD1TM.
    COMPASS,I,S=PPTEXT.
       (Note: this produces lots of output. Maybe L=0 a good idea?)
    COMMON,SYSTEM.
    REWIND,*.
  • Mount a new writeable tape on NT051.
    In DtCyber operator console:
    operator> lt 13,0,1,w,dstapes/dst1tmfixed.tap
  • Edit changes into system library and write new deadstart tape.
    In IAF login:
    LABEL,NEWDS,VSN=***051,D=PE,LB=KU,F=I.
    LIBEDIT,P=SYSTEM,B=LGO,N=NEWDS,I=0.
    
    
          RECORDS WRITTEN ON FILE NEWDS
              RECORD    TYPE      FILE       DATE      COMMENT
    
     REPLACED 2TN       PP        LGO       97/11/05.
     REPLACED 9JN       PP        LGO       97/11/05.
     REPLACED 9JO       PP        LGO       97/11/05.
     REPLACED 9JP       PP        LGO       97/11/05.
     REPLACED 9JQ       PP        LGO       97/11/05.
     REPLACED 9JR       PP        LGO       97/11/05.
     REPLACED 1TN       PP        LGO       97/11/05.
     REPLACED 1TM       PP        LGO       97/11/05.
     REPLACED 2TM       PP        LGO       97/11/05.
     REPLACED 3TM       PP        LGO       97/11/05.
     REPLACED 4TM       PP        LGO       97/11/05.
     EDITING COMPLETE.
    
    RETURN,NEWDS.
  • Shutdown
  • edit cyber.ini
  • restart.

No problems.

4.6 - Apply Y2K Fixes

4.6.1 A. The Y2K tape.

This presumably contains Y2K fixes for various parts of NOS. But what to do with it?

  1. From od -c | more, label seems to be: Y2K871
  2. on dtCyber console
    operator> lt 13,0,1,r,tapes/y2k.tap
  3. label,tape,vsn=y2k871,lb=kl,po=ru.
  4. itemize,tape.

         1   PFDUMPR   TEXT             101    4147  
         2   Y2KATF    TEXT             170    3774  
         3   Y2KCDCS   TEXT             221    2414  
         4   Y2KCHA    TEXT             165    1227  
         5   Y2KHPA    TEXT             373    0315  
         6   Y2KNORM   TEXT             242    5030  
         7   Y2KQU     TEXT             236    0737  
         8   Y2KNOS    TEXT            1130    4336  
         9   HPABIN    TEXT          427124    3125  
        10   NORMBIN   TEXT           66105    6534  
        11             DATA               1    6017  
     
        12   * EOF *       SUM =     520354

Turns out, this is a PFDUMP tape.

Probably that PFDUMPR record is a clue!

The file on it can be listed with:

  1. rewind,tape.
  2. pfatc,lo=t. # For IAF, requires UNLOCK. and DEBUG. issued on DSD console.

And they can be copied to disk using:

  1. rewind,tape.
  2. pfload,lo=t.

Unfortunately, though … this puts them in UI=10, a.k.a. PRINT01 … Hmm …

To make them accessible from INSTALL:

X.DIS.   # DSD console.
SUI,10.
PERMIT,Y2KNOS,INSTALL=W.
 ... etc ...
DROP.

Then back in IAF logged in as INSTALL:

  1. get,y2knos/un=print01.
  2. replace,y2knos.
To update OPL871:
  1. attach,install.
  2. begin,modopl,install,userf=y2knos.

Then rebuild NOS from source. This took about 30 mins on the T60.

begin,nos,install.     # All the COMPASS code, first PP then CPU ...
begin,nos2b,install.   # All FTN5 and SYMPL code ...

The result of all this building is a file called PRODUCT.

Write a new deadstart tape.

setjsl,*.   # Best to do this earlier. Do now, otherwise there will be SRU limit warnings.
settl,*.
return,tape.
common,system.
begin,gendst,install,list=info. # Use list to put output to a file.

When MAG E,P appears:

In DtCyber console:

operator> 13,0,1,w,dstapes/dstfromsource.tap

In DSD:

VSN,52,NDT.

In IAF:

route,info,dc=lp.               # Print the listing from gendst.
bye.

Restart with this latest SS tape.

NOS Console:

CHECK POINT SYSTEM.
STEP.

Edit cyber.ini to use dstapes/dstfromsource.tap

In DtCyber console:

operator> shutdown

Restart DtCyber:

../trunk/dtcyber

NOS Console:

(CR), GO. ...
ON,EQ=60.
NAM.
IAF.

And it all seems to work …

4.6.2 B. An alternative Y2K fix procedure.

A more targetted alternative to the above is due to Paul Koning and was passed on to me with practical details by William Schaub.

In DtCyber operator console:

operator> lc 11,7,cards/y2k-altfix-batch.txt

This will build a patched version of parts of NOS, leaving the result in the direct access file MTRBIN. This then needs to be edited into the system and a new deadstart tape written in the usual way:

Mount a new writeable tape on NT051.

In DtCyber operator console:

operator> lt 13,0,1,w,dstapes/dsty2kfixed.tap

Edit changes into system library and write new deadstart tape.

In IAF login:

ATTACH,MTRBIN.
LABEL,NEWDS,VSN=***051,D=PE,LB=KU,F=I.
LIBEDIT,P=SYSTEM,B=MTRBIN,N=NEWDS,I=0.
RETURN,NEWDS.

Then:

  • Perform a NORMAL shutdown
  • edit cyber.ini to reflect the change
  • restart dtCyber

4.7 - Install Tom Hunter's termdef for Teraterm Pro.

This is very useful for interactive access from Windows machines … although I don't have any of those to try it with. TeraTerm should work under Wine on Linux.

  • In DtCyber operator console:
    operator> lc 11,7,cards/jobtdu.txt

This creates the indirect access file STTERM in INSTALL.

  • In IAF, logged in as INSTALL:
    GET,STTERM.
    TDU,I=STTERM,L=LIST.
    REPLACE,TERMDEF.

The indirect file TERMDEF is now in the INSTALL users catalog.

  • INSTALL can now:
    SCREEN,TTERM.

    to set up for a TeraTerm Pro terminal.

Note this is *user specific*.

This TERMDEF adds to the “master” TERMDEF in the LIBRARY catalog for the user INSTALL. It would need to go in other users catalogs for them to be able to SCREEN,TTERM.

The “master” TERMDEF can be recreated from TDUFILE in LIBRARY, but adding the contents of STTERM to TDUFILE in FSE then rebuilding the “master” TERMDEF may be best avoided.

4.8 - Set up user accounts with X.MS

Thanks to William Schaub for discovering this. In NOS 2.8.7 there is a very “user friendly” method of adding user accounts. This is part of the MS (Manage System) “package”, and seems to be described only in:

CYBER Supermini Operations Handbook 60459850A (October 1984).

  • On the NOS console (DSD):
    AB.
    X.MS(VALUSER,NOLIMIT,usernam,passwor)

where usernam is the user name (1 to 7 letters or numbers) and passwor is the initial password (4 to 7 letters or numbers, default UNSECUR).

  • When prompted to (after completion):
    ASSIGN,jsn,2.

where jsn is the job sequence number for the VALUSER job shown in the B display.

And that's it! For a user with restricted privileges and resource usages, use: LIMITED instead of NOLIMIT.

4.9 - Dayfile dump and termination.

Also thanks to William Schaub for discovering this. Terminating dayfiles is needed periodically to keep the system healthy. A very straightforward way of doing this on NOS 2.8.7 is:

  • On the NOS console (DSD):
    AB.
  • Dump the various system dayfiles to the line printer.
    X.DFD.    # Dump the system dayfile.
    X.AFD.    # Dump the accounting file (optional).
    X.ELD.    # Dump the error log (optional).
  • Terminate the system dayfiles:
    X.MS(ENDLOG)

    Wait for the process to finish, and when prompted to:

    ASSIGN,jsn,2.

    where jsn is the job sequence number for the ENDLOG job shown in the B display.

  • Purge the dayfiles from disk:
    X.MS(PURGLOG)

    To confirm you really want to do this, when prompted to:

    ASSIGN,jsn,2.
  • When the process has finished and you are prompted to:
    ASSIGN,jsn,2.

    again to finish the process.

4.10 - Silencing: NAM. REQUEST *K* DISPLAY

Thanks to Digby Tarvin for discovering this. This DSD message can be considered harmless and “normal”, but it seems a way of stopping it happening is to turn off reports from NPUs.

  • On the NOS console (DSD) when

NAM. REQUEST *K* DISPLAY is shown at top right:

K,NAM.

The left display will show:

READY..
ALERT CS
NAM

Enter:

K.AP
K.RE,NPUS,OFF   # NOTE: you do not type in the K. here. Already there.
K.*
K.END.
AB.

4.11 - More things to do.

Install further products, such as Algol 5, Algol 68, console games, LISP, …

Install Kermit for file transfer. See William Schaub's website: Building Kermit NOS2

And so on … :-)

cdc/nos2/installation.txt · Last modified: 2023/08/05 15:34 by Site Administrator