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"
Step | File | 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
- mkdir newinstall
- cd newinstall
1.3 - Install DtCyber
- git clone https://github.com/kej715/DtCyber.git
<your_directory>
- cd
<your_directory>
- emacs window_x11.c
- change font to one that exists on the system
- 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
1.5 - Copy distribution materials to tree.
Step | Commands | Description |
---|---|---|
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.
- ../trunk/dtcyber
- (CTI display) CR to auto load.
- (CMRINST display) NEXT.
- (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:
3.5 - Start **NPU**
- At the NOS Console:
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:
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!
ERROR | Remedy |
---|---|
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:
- This is reading MSECONF file in UI=377760
- Renaming this file did not change anything (recreated by something else?)
- 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:
- This is really due to trying to use 7990 tape cartridge mass storage facility thing, I think. Which we don't have (of course).
- Need to alter IPRDECK settings on deadstart.
- NEXT. through to IPRDECK.
- “+” 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.
- 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:
- Login interactively as install/install
- TRMDEF,TC=7 # Note: stick to uppercase here. Do NOT use ASCII!
- SCREEN,NCDX
- SETJSL,*.
- SETTL,*.
- COMMON,SYSTEM.
- GTR,SYSTEM,DSTDECK.CMRD17
- 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.
- REWIND,DSTDECK
- 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.
- RENAME,STEP=NEW.
- RETURN,DSTDECK.
Change IPRDECK:
- GTR,SYSTEM,DSTDECK.IPRD00
- 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:
- 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.
- 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).
- Login, create a test PL/I program, compile and run it.
- Yes, that works.
- 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?
- From od -c | more, label seems to be: Y2K871
- on dtCyber console
operator> lt 13,0,1,r,tapes/y2k.tap
- label,tape,vsn=y2k871,lb=kl,po=ru.
- 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:
- rewind,tape.
- pfatc,lo=t. # For IAF, requires UNLOCK. and DEBUG. issued on DSD console.
And they can be copied to disk using:
- rewind,tape.
- 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:
- get,y2knos/un=print01.
- replace,y2knos.
To update OPL871:
- attach,install.
- 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 … …