*DECK,CMLINST 
.PROC,BININST*I,/PRD[ENTER PRODUCT]=(*N=CML3),
MFT[ENTER MAINFRAME TYPE]=(*N=A), 
VRB[ENTER VARIANT]=(*N=A),
DEMA[DO YOU HAVE DEMA]=(*N=,*K=DEMA,Y=DEMA,N=), 
ESM[DO YOU HAVE ESM]=(*N=,*K=ESM,Y=ESM,N=), 
FSCDISK[DO YOU HAVE FSCDISK]=(*N=,*K=FSCDISK,Y=FSCDISK,N=), 
FSCTAPE[DO YOU HAVE FSCTAPE]=(*N=,*K=FSCTAPE,Y=FSCTAPE,N=), 
LCN[DO YOU HAVE LCN]=(*N=,*K=LCN,Y=LCN,N=), 
PLATO[DO YOU HAVE PLATO]=(*N=,*K=PLATO,Y=PLATO,N=), 
405[DO YOU HAVE 405]=(*N=,*K=405,Y=405,N=), 
415[DO YOU HAVE 415]=(*N=,*K=415,Y=415,N=), 
512580[DO YOU HAVE 512 OR 580]=(*N=,*K=512580,Y=512580,N=), 
65X[DO YOU HAVE 65X]=(*N=,*K=65X,Y=65X,N=), 
66X[DO YOU HAVE 66X]=(*N=,*K=66X,Y=66X,N=), 
67X[DO YOU HAVE 67X]=(*N=,*K=67X,Y=67X,N=), 
639[DO YOU HAVE 639]=(*N=,*K=639,Y=639,N=), 
698[DO YOU HAVE 698]=(*N=,*K=698,Y=698,N=), 
800[DO YOU HAVE 800]=(*N=,*K=800,Y=800,N=), 
83X[DO YOU HAVE 83X]=(*N=,*K=83X,Y=83X,N=), 
844[DO YOU HAVE 844]=(*N=,*K=844,Y=844,N=), 
885[DO YOU HAVE 885 (SMALL SECTOR)]=(*N=,*K=885,Y=885,N=),
885LS[DO YOU HAVE 885LS (LARGE SECTOR)]=(*N=,*K=885LS,Y=885LS,N=),
895[DO YOU HAVE 895]=(*N=,*K=895,Y=895,N=), 
2550[DO YOU HAVE 2550]=(*N=,*K=2550,Y=2550,N=), 
2550100[DO YOU HAVE 2550100]=(*N=,*K=2550100,Y=2550100,N=), 
5X70[DO YOU HAVE 5X70]=(*N=,*K=5X70,Y=5X70,N=), 
667X[DO YOU HAVE 667X]=(*N=,*K=667X,Y=667X,N=), 
7X54[DO YOU HAVE 7X54]=(*N=,*K=7X54,Y=7X54,N=), 
7155[DO YOU HAVE 7155]=(*N=,*K=7155,Y=7155,N=), 
7155C[DO YOU HAVE 7155C]=(*N=,*K=7155C,Y=7155C,N=), 
CYBERPLUS[DO YOU HAVE CYBERPLUS]=(*N=,*K=CYBERPLUS,Y=CYBERPLUS,N=), 
CARTAPE[DO YOU HAVE 5680 CARTRIDGE TAPE]=(*N=,*K=CARTAPE,Y=CARTAPE,N=), 
UNIBUS[DO YOU HAVE UNIBUS]=(*N=,*K=UNIBUS,Y=UNIBUS,N=), 
STORNET[DO YOU HAVE STORNET]=(*N=,*K=STORNET,Y=STORNET,N=), 
IPIDISK[DO YOU HAVE IPIDISK]=(*N=,*K=IPIDISK,Y=IPIDISK,N=), 
PROCFIL=(*N=#FILE). 
.*
.* PROCEDURE NAME - BININST 
.*
.* PURPOSE - PERFORM A BINARY INSTALL OF THE DIAGNOSTICS AND UTILITIES
.*           NECESSARY TO SUPPORT THE SPECIFIED CONFIGURATION.
.*
.* PARAMETERS - SEE "METHOD USED" 
.*
.* CALLED BY - USER EVOKED
.*
.* PROCEDURES USED - CMLINST
.*                   XLOADY 
.*                   LDMAL
.*                   SAVEIT 
.*
.* PREREQUISITES - THE CML RELEASE TAPE (OR FILE) LOCAL TO THE JOB
.*                 AS LFN "CMLTAPE".
.*
.* METHOD USED -
.*
.* PROCEDURE BININST CREATES THE CUSTOMER ENGINEER'S PERMANENT FILE BASE. 
.* WITH THIS PROCEDURE, THE CUSTOMER ENGINEER CAN QUICKLY GAIN ACCESS TO
.* ALL OF THE MALET DIAGNOSTICS AND SUPPORT FILES REQUIRED FOR MAINTENANCE
.* OF A SPECIFIC SYSTEM CONFIGURATION.  IT IS PRIMARILY INTENDED FOR USE
.* DURING INITIAL SYSTEM INSTALLATION AND CHECKOUT.  THIS PROCEDURE EXECUTES
.* ONLY ON NOS 2.1 LEVEL 580 AND LATER SYSTEM LEVELS. 
.*
.* BININST WILL CREATE THE PERMANENT FILE BASE FROM EITHER THE CML RELEASE
.* TAPE OR THE CML SOURCE FILE CONTAINED ON THE NOS SYSTEM RELEASE TAPES. 
.* THE FILE MUST BE AVAILABLE AS LOCAL FILE "CMLTAPE".
.*
.* THIS PROCEDURE MAY BE EXECUTED IN EITHER PASSIVE OR PROMPTING MODE.
.* IF ANY DEVICES ARE INCLUDED IN THE CALL TO THIS PEOCEDURE, PASSIVE 
.* MODE IS EVOKED.  ALL DESIRED DEVICES MUST BE INCLUDED IN THE CALL. 
.*
.* TO EXECUTE THE PROCEDURE IN PASSIVE MODE, PERFORM THE FOLLOWING--
.*
.*     ATTACH,CMLTAPE=CML3AAS/UN=PSR.  [PSR = PSR LEVEL OF THE CML RELEASE
.*             OR                       BEING INSTALLED (E.G., 580)]
.*     LABEL,CMLTAPE,VSN=CMLVSN,F=SI. 
.*     COPYBF,CMLTAPE,PROCFIL.
.*     -BININST,,EQ1,EQ2,...EQI.
.*
.*     EQI = THE EQUIPMENT INCLUDED IN THE CONFIGURATION. 
.*
.*   LEGAL VALUES INCLUDE - 
.*
.*       CYBERPLUS 2550    66X     844
.*       DEMA      2550100 667X    885
.*       ESM       405     67X     885LS
.*       FSCDISK   415     698     895
.*       FSCTAPE   512580  7X54 
.*       LCN       7155    IPIDISK
.*       MASSSTOR  5X70    7155C
.*       PLATO     639     800
.*       UNIBUS    65X     83X
.*       STORNET
.*
.* ADDITIONAL INFORMATION CONCERNING THE USE OF THIS AND OTHER CML SUPPORT
.* PROCEDURES REFER TO THE CML REFERENCE MANUAL (60455980). 
.*
.* PROMPTING MODE IS EVOKED BY APPENDING A QUESTION MARK TO THE CALL
.* TO THIS PROCEDURE (E.G., "-BININST?").  PROMPTING MODE IS VALID
.* ONLY FOR TIMESHARING ORIGIN (INTERACTIVE) JOBS.
.*
.* EXAMPLE -
.*
.*     ATTACH,CMLTAPE=CML3AAS/UN=PSR.  [PSR = PSR LEVEL OF THE CML RELEASE
.*             OR                       BEING INSTALLED (E.G., 580)]
.*     LABEL,CMLTAPE,VSN=CMLVSN,F=SI. 
.*     COPYBF,CMLTAPE,PROCFIL.
.*     -BININST?
.*
.* A MORE DETAILED EXPLAINATION OF ANY SPECIFIC HARDWARE DEVICE MAY BE
.* OBTAINED BY ENTERING A QUESTION MARK (?) IN RESPONSE TO THE PROMPT.
.* WHEN PROMPTED, ENTER A "Y" TO INDICATE THE PRESENCE OF A DEVICE.  ENTER
.* A "N" OR A CARRIAGE RETURN TO INDICATE THE DEVICE IS NOT PRESENT IN
.* THE CONFIGURATION IF IN LINE MODE. 
.*
.* PROMPTING MAY BE TERMINATED AT ANY TIME BY ENTERING A PERIOD (.) IN
.* RESPONSE TO AN EQUIPMENT PROMPT, OR BY ENDING A PARAMETER ENTRY WITH A 
.* PERIOD IF IN LINE MODE.
.*
.* IF IN SCREEN MODE A "Y" TO INDICATE THE PRESENCE OF A DEVICE A "N" OR
.* MOVE OF THE CURSOR TO THE NEXT LINE TO INDICATE THE DEVICE NOT PRESENT.
.* A CARRIAGE RETURN WILL TERMINATE.
.*
.HELP,,NOLIST.
YOU HAVE SELECTED THE PROMPTING MODE OF EXECUTION.
  
IF IN LINE MODE THE FOLLOWING APPLIES.
  
IN RESPONSE TO A PROMPT, ENTER A "Y" TO INDICATE THE PRESENCE OF A DEVICE.
  
ENTER A "N" (OR JUST A CARRIAGE RETURN) TO INDICATE THE ABSENCE OF A DEVICE.
  
FOR ADDITIONAL INFORMATION REGARDING ANY DEVICE, ENTER A QUESTION MARK (?). 
  
ENTERING A PERIOD (.) WILL TERMINATE PROMPTING. 
  
IF IN SCREEN MODE THE FOLLOWING APPLIES.
  
ENTER A "Y" TO INDICATE THE PRESENCE OF A DEVICE. 
  
ENTER A "N" (OR MOVE THE CURSOR TO THE NEXT LINE) TO INDICATE THE ABSENCE 
  
OF A DEVICE. A CARRIAGE RETURN WILL TERMINATE.
  
- 
-  PARAMETER PROMPTING FOLLOWS....
- 
.HELP,DEMA. 
DEMA      SPECIFIES THAT DEMA HARDWARE IS 
          INCLUDED IN THE CONFIGURATION.
          CAUSES MALET DIAGNOSTICS FHD, FHC,
          DH8, FEP, AND FMU TO BE LOADED
          AND SAVED.
.HELP,ESM.
ESM       SPECIFIES THAT ESM HARDWARE IS
          INCLUDED IN THE CONFIGURATION.
          CAUSES MALET DIAGNOSTIC ELR TO
          BE LOADED AND SAVED.
.HELP,FSCDISK.
FSCDISK   SPECIFIES THAT A FEDERAL STANDARD 
          CHANNEL DRIVING DISKS IS INCLUDED 
          IN THE CONFIGURATION.  CAUSES 
          MALET DIAGNOSTICS F44, F88, FLM,
          AND FFU TO BE LOADED. 
          ALSO, NAD DIAGNOSTICS NDM AND NDP 
          ARE LOADED AND SAVED. 
.HELP,FSCTAPE.
FSCTAPE   SPECIFIES THAT A FEDERAL STANDARD 
          CHANNEL DRIVING TAPE DRIVES IS
          INCLUDED IN THE CONFIGURATION.
          CAUSES MALET DIAGNOSTICS F7X, 
          FLM, AND FSM TO BE LOADED.
          ALSO, NAD DIAGNOSTICS NDM AND NDP 
          ARE LOADED AND SAVED. 
.HELP,LCN.
LCN       SPECIFIES THAT LCN IS INCLUDED
          IN THE HARDWARE CONFIGURATION.
          CAUSES MALET DIAGNOSTICS LCI, LCN,
          LCM, AND NLM TO BE LOADED AND 
          SAVED.
          ALSO, NAD DIAGNOSTICS 
          NDM, NDP, AND NDT ARE LOADED
          AND SAVED.
.HELP,PLATO.
PLATO     SPECIFIES THAT THE SYSTEM IS
          RUNNING PLATO, AND CAUSES MALET 
          DIAGNOSTIC CIU TO BE LOADED AND 
          SAVED.
.HELP,405.
405       SPECIFIES THAT A 405 CARD READER
          IS INCLUDED IN THE CONFIGURATION. 
          CAUSES MALET DIAGNOSTICS CRE AND
          CR1 TO BE LOADED.  ALSO CAUSES
          CR1SCR TO BE LOADED AND SAVED.
.HELP,415.
415       SPECIFIES THAT A 415 CARD PUNCH 
          IS INCLUDED IN THE CONFIGURATION. 
          CAUSES MALET DIAGNOSTICS CPE AND
          CP1 TO BE LOADED AND SAVED. 
.HELP,512580. 
512580    SPECIFIES THAT A 512 OR 580 LINE
          PRINTER IS INCLUDED IN THE
          CONFIGURATION. CAUSES MALET 
          DIAGNOSTICS FTP, LPE AND
          LP1 TO BE LOADED AND SAVED. 
.HELP,65X.
65X       SPECIFIES THAT A 60X OR 65X MAGNETIC
          TAPE SUBSYSTEM IS INCLUDED IN THE 
          CONFIGURATION.  CAUSES MALET
          DIAGNOSTIC T5X TO BE LOADED 
          AND SAVED.
.HELP,66X.
66X       SPECIFIES THAT A 66X MAGNETIC TAPE
          SUBSYSTEM IS INCLUDED IN THE
          CONFIGURATON.  CAUSES MALET 
          DIAGNOSTICS T6X, BCX, AND MY8 
          TO BE LOADED AND SAVED. 
          ALSO CAUSES BCXBC AND MY8BC 
          TO BE LOADED AND SAVED. 
          ALSO LOAD AND SAVES MTPLOT. 
.HELP,67X.
67X       SPECIFIES THAT A 67X MAGNETIC TAPE
          SUBSYSTEM IS INCLUDED IN THE
          CONFIGURATON.  CAUSES MALET 
          DIAGNOSTICS T7X AND ATC TO
          BE LOADED AND SAVED.
          ALSO LOADS AND SAVES MTPLOT.
.HELP,639.
639       SPECIFIES THAT A 639 MAGNETIC TAPE
          SUBSYSTEM IS INCLUDED IN THE SYSTEM 
          CONFIGURATION.  CAUSES MALET UTILITY
          ITU AND MALET DIAGNOSTIC IST TO BE
          LOADED AND SAVED. ALSO CAUSES MTPLOT
          TO BE LOADED AND SAVED. 
.HELP,698.
698       SPECIFIES THAT 698 TAPE DRIVES AND
          CYBER CHANNEL COUPLER ARE INCLUDED
          IN THE CONFIGURATION. CAUSES MALET
          DIAGNOSTICS T7X, CCM, AND CLM TO BE 
          LOADED AND SAVED. ALSO NAD DIAGNOSTICS
          NDM AND NDP ARE LOADED AND SAVED. 
          ALSO LOADS AND SAVES MTPLOT.
.HELP,800.
800       SPECIFIES THAT A CYBER 170-800 SERIES 
          SYSTEM (EXCEPT 865/875) IS INCLUDED IN THE
          CONFIGURATION.  CAUSES MICROCODE
          UTILITIES MCDUMP AND MCCOMP TO
          BE LOADED AND SAVED.
.HELP,83X.
83X       SPECIFIES THAT 834(ISDI) OR 836(ISDII)
          DISK DRIVES ARE INCLUDED IN THE 
          CONFIGURATION. CAUSES MALET DIAGNOSTICS 
          FSD, DTI AND DFU TO BE LOADED AND SAVED.
          ALSO LOADS AND SAVES DSPLOT AND DKDATA. 
.HELP,844.
844       SPECIFIES THAT 844 DISK DRIVES
          ARE INCLUDED IN THE CONFIGURATION.
          CAUSES MALET DIAGNOSTIC D44 
          TO BE LOADED AND SAVED. 
          IF 7155 IS ALSO DEFINED, MALET
          DIAGNOSTIC DTC IS ALSO LOADED 
          AND SAVED.
          ALSO LOADS AND SAVES DSPLOT AND DKDATA. 
.HELP,885.
885       SPECIFIES THAT 885 DISK DRIVES
          (SERIAL, SMALL SECTOR DRIVES) 
          ARE INCLUDED IN THE CONFIGURATION.
          CAUSES MALET DIAGNOSTICS
          D88, FMC, FMD, AND FMU TO BE
          LOADED AND SAVED. 
          ALSO LOADS AND SAVES DSPLOT AND DKDATA. 
.HELP,885LS.
885LS     SPECIFIES THAT LARGE SECTOR 885 
          DISK DRIVES ARE INCLUDED IN THE SYSTEM
          CONFIGURATION.  CAUSES MALET DIAGNOSTICS
          FLD AND DL8 TO BE LOADED AND SAVED. 
          WILL ALSO CAUSE FMC AND FMU TO BE 
          LOADED AND SAVED IF NOT DONE THROUGH
          THE INCLUSION OF OTHER PARAMETERS 
          (7155/885/DEMA).
          ALSO LOADS AND SAVES DSPLOT AND DKDATA. 
.HELP,895.
895       SPECIFIES THAT 895 DISK DRIVES AND
          CYBER CHANNEL COUPLER ARE INCLUDED
          IN THE CONFIGURATION. CAUSES MALET
          DIAGNOSTICS DFU, DM8, DTI, CCM, AND 
          CLM TO BE LOADED AND SAVED.  ALSO 
          NAD DIAGNOSTICS NDM AND NDP ARE 
          LOADED AND SAVED. 
.HELP,2550. 
2550      SPECIFIES THAT A 2550 COMMUNICATIONS
          CONTROLLER IS INCLUDED IN THE 
          CONFIGURATION.  CAUSES MALET
          DIAGNOSTICS TFF AND TFL TO BE 
          LOADED AND SAVED.  THE ODS DIAG-
          NOSTICS WILL ALSO BE LOADED 
          AND SAVED.
.HELP,2550100.
2550100   SPECIFIES THAT A 2550-100 
          COMMUNICATIONS CONTROLLER IS
          INCLUDED IN THE CONFIGURATION.
          CAUSES MALET DIAGNOSTIC TFE TO
          BE LOADED AND SAVED.
.HELP,5X70
5X70      SPECIFIES THAT 5870 OR 5970 NON-IMPACT
          PRINTER AND CYBER CHANNEL COUPLER ARE 
          INCLUDED IN THE CONFIGURATION. CAUSES 
          MALET DIAGNOSTICS NIP, CCM, AND CLM 
          TO  BE  LOADED  AND  SAVED.  ALSO NAD 
          DIAGNOSTICS NDM AND NDP ARE LOADED AND
          SAVED.
.HELP,667X. 
667X      SPECIFIES THAT EITHER A 6671, 6673/6674,
          OR 6676 MULTIPLEXOR IS INCLUDED IN THE
          CONFIGURATION.  CAUSES MALET DIAGNOSTICS
          TT3, RT3, AND RT5 TO BE LOADED AND SAVED. 
.HELP,7X54. 
7X54      SPECIFIES THAT EITHER A 7054, 
          7154, OR 7152 CONTROLLER IS 
          INCLUDED IN THE CONFIGURATION.
          CAUSES MALET DIAGNOSTICS BCX AND
          MY8 TO BE LOADED.  BCXBC
          AND MY8BC WILL ALSO BE LOADED 
          AND SAVED.
.HELP,7155. 
7155      SPECIFIES THAT A 7155 DISK
          CONTROLLER IS INCLUDED IN THE 
          CONFIGURATION.  IT BOTH 844 AND 
          7155 ARE DEFINED, MALET DIAGNOSTIC
          DTC WILL BE LOADED, IN ADDITION 
          TO FMD, FMC, AND FMU. 
.HELP,7155C.
7155C     SPECIFIES THAT A 7155C DISK 
          CONTROLLER IS INCLUDED IN THE 
          CONFIGURATION.  IF EITHER DEMA
          OR 7155C IS DEFINED, MALET
          DIAGNOSTIC FHC WILL BE LOADED.
.HELP,CYBERPLUS.
CYBERPLUS SPECIFIES THAT CYBERPLUS HARDWARE 
          (CYBER RING PORT) IS INCLUDED IN
          THE CONFIGURATION.  CAUSES MALET
          DIAGNOSTICS  CRP  AND  DMA TO BE
          LOADED AND SAVED. 
.HELP,CARTAPE.
CARTAPE   SPECIFIES THAT 5680 CARTRIDGE TAPE AND CYBER
          CHANNEL COUPLER ARE INCLUDED IN THE CONFIGURATION.
          CAUSES MALET DIAGNOSTICS TCT, CCM, AND CLM TO BE
          LOADED AND SAVED. ALSO NAD DIAGNOSTICS NDM AND
          NDP ARE LOADED AND SAVED. 
          ******************** NOTE *********************** 
          IF MASSTOR AND CYBER CHANNEL COUPLER ARE INCLUDED 
          IN THE CONFIGURATION USE CARTAPE AS ALL MALET AND 
          NAD DIAGNOSTICS NEEDED WILL BE LOADED AND SAVED.
.HELP,UNIBUS
UNIBUS    SPECIFIES THAT CYBER/UNIBUS INTERFACE 
          AND DEC PDP11 ARE INCLUDED IN THE 
          CONFIGURATION. CAUSES MALET DIAGNOSTIC
          PDP TO BE LOADED AND SAVED. 
.HELP,STORNET 
STORNET   SPECIFIES THAT STORNET OR ESM II
          SUBSYSTEM ARE INCLUDED IN THE 
          CONFIGURATION. CAUSES MALET DIAGNOSTICS 
          MSD AND MSM TO BE LOADED AND SAVED. 
.HELP,IPIDISK 
IPIDISK   SPECIFIES THAT DAS DISK SUBSYSTEM 
          OR THAT 9853 DISK SUBSYSTEM IS
          INCLUDED IN THE CONFIGURATION.
          CAUSES MALET DIAGNOSTICS IDA AND
          IDT TO BE LOADED AND SAVED. 
.ENDHELP
.*
IFE,SYS.NE.NOS.REVERT,ABORT. - BININST RUNS ONLY ON NOS - 
ENDIF,NOHELP. 
IFE,$DEMA$.EQ.$$,GOINST.
IFE,$ESM$.EQ.$$,GOINST. 
IFE,$FSCDISK$.EQ.$$,GOINST. 
IFE,$FSCTAPE$.EQ.$$,GOINST. 
IFE,$LCN$.EQ.$$,GOINST. 
IFE,$PLATO$.EQ.$$,GOINST. 
IFE,$405$.EQ.$$,GOINST. 
IFE,$415$.EQ.$$,GOINST. 
IFE,$512580$.EQ.$$,GOINST.
IFE,$65X$.EQ.$$,GOINST. 
IFE,$66X$.EQ.$$,GOINST. 
IFE,$67X$.EQ.$$,GOINST. 
IFE,$800$.EQ.$$,GOINST. 
IFE,$83X$.EQ.$$,GOINST. 
IFE,$844$.EQ.$$,GOINST. 
IFE,$885$.EQ.$$,GOINST. 
IFE,$2550$.EQ.$$,GOINST.
IFE,$2550100$.EQ.$$,GOINST. 
IFE,$667X$.EQ.$$,GOINST.
IFE,$7X54$.EQ.$$,GOINST.
IFE,$7155$.EQ.$$,GOINST.
IFE,$7155C$.EQ.$$,GOINST. 
IFE,$885LS$.EQ.$$,GOINST. 
IFE,$CYBERPLUS$.EQ.$$,GOINST. 
IFE,$639$.EQ.$$,GOINST. 
IFE,$698$.EQ.$$,GOINST. 
IFE,$895$.EQ.$$,GOINST. 
IFE,$CARTAPE$.EQ.$$,GOINST. 
IFE,$5X70$.EQ.$$,GOINST.
IFE,$UNIBUS$.EQ.$$,GOINST.
IFE,$STORNET$.EQ.$$,GOINST. 
IFE,$IPIDISK$.EQ.$$,GOINST. 
.*
.*   ADD TESTS FOR ADDITIONAL DEVICES BEFORE THIS COMMENT.
.*   E.G., *BEFORE,CMLA144.303
.*         IFE,$NEWDEV$.EQ.$$,GOINST. 
.*
NOTE,OUTPUT./NO HARDWARE PARAMETERS WERE PASSED.
NOTE./REQUEST PROMPTING MODE (-BININST?) OR 
NOTE,OUTPUT./REFER TO THE CML REFERENCE MANUAL. 
REVERT,ABORT. 
.*
.*
.*    SAVE THE CML INTALLL PROCEDURES AS A PERMANENT FILE.
.*    INCORPORATE ANY MODS THAT MAY EXIST ON FILE "INSTMDS".
.*
ENDIF,GOINST. 
SET,R1=77B. 
NOTE././...GETTING INSTALLATION PROCEDURES
.*
BEGIN,CMLINST,PROCFIL.
.*
.*    SKIP THE CML PROGRAM LIBRARY (FILE 2).
.*
NOTE././...SKIPPING CML PROGRAM LIBRARY (FILE 2)
SKIPF,CMLTAPE.
.*
.*    IF 7X54 OR 66X, LOAD MY8BC (FILE 3) AND BCXBC (FILE 4)
.*
IFE,$7X54$.NE.$#7X54$,STEP2A. 
IFE,$66X$.EQ.$#66X$,STEP3.
ENDIF,STEP2A. 
NOTE././...LOADING MY8BC AND BCXBC
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=MY8BC,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=BCXBC,INFILE=CMLTAPE. 
ELSE,STEP3. 
SKIPF,CMLTAPE,2.
.*
.*    IF 2550, LOAD THE ODS DIAGNOSTICS (FILE 5)
.*
ENDIF,STEP3.
IFE,$2550$.EQ.$#2550$,STEP4.
NOTE././...LOADING ODS DIAGNOSTICS
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=LDCHK3,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MPINS,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MPMOS,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MOSMA,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MPRTC,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MIMEM,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MIINS,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=PAGE1,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=CEL042,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MST041,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=CPL040,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=CPLX40,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=TTYA08,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=UTOPIA,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=CCP48K,INFILE=CMLTAPE.
ELSE,STEP4. 
SKIPF,CMLTAPE.
.*
.*    IF 405, LOAD CR1SCR(FILE 6) 
.*
ENDIF,STEP4.
IFE,$405$.EQ.$#405$,STEP5.
NOTE././...LOADING CR1SCR 
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=CR1SCR,INFILE=CMLTAPE.
ELSE,STEP5. 
SKIPF,CMLTAPE.
.*
.*    IF FSCTAPE, FSCDISK, 895, CARTAPE, 5X70, 698, 
.*    OR LCN, LOAD NDM AND NDP. LOAD NDT ONLY IF
.*    LCN IS DEFINED (FILE 7) 
.*
ENDIF,STEP5.
IFE,$698$.NE.$#698$,STEP5A. 
IFE,$FSCTAPE$.NE.$#FSCTAPE$,STEP5A. 
IFE,$FSCDISK$.NE.$#FSCDISK$,STEP5A. 
IFE,$CARTAPE$.NE.$#CARTAPE$,STEP5A. 
IFE,$895$.NE.$#895$,STEP5A. 
IFE,$5X70$.NE.$#5X70$,STEP5A. 
IFE,$LCN$.EQ.$#LCN$,STEP6.
ENDIF,STEP5A. 
NOTE././...LOADING LCN, CCC, AND FSC DIAGNOSTICS
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=NDM,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=NDP,INFILE=CMLTAPE. 
IFE,$LCN$.EQ.$#LCN$,STEP6.
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=NDT,INFILE=CMLTAPE. 
ELSE,STEP6. 
SKIPF,CMLTAPE.
.*
.*    IF 800, LOAD MCCOMP (FILE 8) AND MCDUMP (FILE 9)
.*
ENDIF,STEP6.
IFE,$800$.EQ.$#800$,STEP7.
NOTE././...LOADING MICROCODE UTILITIES
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=MCCOMP,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=MCDUMP,INFILE=CMLTAPE.
ELSE,STEP7. 
SKIPF,CMLTAPE,2.
.*
.*    IF 66X, 67X, 639, OR 698 LOAD MTPLOT. 
.*
.*
ENDIF,STEP7.
IFE,($66X$.EQ.$#66X$).OR.($67X$.EQ.$#67X$).OR.($639$.EQ.$#639$).OR. 
($698$.EQ.$#698$),STEP7A. 
NOTE././...LOADING MTPLOT 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MTPLOT,INFILE=CMLTAPE.
ELSE,STEP7A.
SKIPR,CMLTAPE.
.*
.*    IF 83X, 844, 885, 885LS OR 895, LOAD DSPLOT AND DKDATA. 
.*
ENDIF,STEP7A. 
IFE,($83X$.EQ.$#83X$).OR.($844$.EQ.$#844$).OR.($885$.EQ.$#885$).OR. 
($885LS$.EQ.$#885LS$).OR.($895$.EQ.$#895$),STEP7B.
NOTE././...LOADING DSPLOT 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=DSPLOT,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=DKDATA,INFILE=CMLTAPE.
ELSE,STEP7B.
SKIPF,CMLTAPE.
ENDIF,STEP7B. 
.*
.*    LOAD SKEDULR (FILE 11) AND MLTDOC (FILE 12).
.*
NOTE././...LOADING SKEDULR AND MLTDOC 
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=SKEDULR,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=MLTDOC,INFILE=CMLTAPE.
.*
.*    COPY THE MALET DIAGNOSTIC BINARIES (FILE 13) TO DISK AND
.*    CREATE A RANDOM INDEX.  THEN LOAD THE APPROPRIATE 
.*    DIAGNOSTICS BASED ON THE HARDWARE CONFIGURATION PASSED. 
.*
NOTE././...LOADING MALET DIAGNOSTIC FILE
COPYBF,CMLTAPE,DIAGBIN. 
NOTE././...GENERATING DIAGNOSTIC LIBRARY
LIBEDIT,L=0,P=DIAGBIN,N=DIAGLIB,B=0,Z."*BUILD,DIAGIX
RETURN,DIAGBIN,CMLTAPE. 
.*
.*    IF 2550100, LOAD TFE
.*
IFE,$2550100$.EQ.$#2550100$,STEP8.
BEGIN,LDMAL,CMLINST,TFE,TFE00,ULD99.
ENDIF,STEP8.
.*
.*    IF 2550, LOAD TFF AND TFL 
.*
IFE,$2550$.EQ.$#2550$,STEP9.
BEGIN,LDMAL,CMLINST,TFF,TFF01,TFF99.
BEGIN,LDMAL,CMLINST,TFL,TFL01,TFL99.
ENDIF,STEP9.
.*
.*    IF 667X, LOAD RT3, RT5, AND TT3 
.*
IFE,$667X$.EQ.$#667X$,STEP10. 
BEGIN,LDMAL,CMLINST,RT3,RT301,RT399A. 
BEGIN,LDMAL,CMLINST,RT5,RT500,RT5999. 
BEGIN,LDMAL,CMLINST,TT3,TT301,TT3991. 
ENDIF,STEP10. 
.*
.*    IF 405, LOAD CR1 AND CRE
.*
IFE,$405$.EQ.$#405$,STEP11. 
BEGIN,LDMAL,CMLINST,CR1,CR101,CR1993. 
BEGIN,LDMAL,CMLINST,CRE,CRE00,CRE99.
ENDIF,STEP11. 
.*
.*    IF 415, LOAD CP1 AND CPE
.*
IFE,$415$.EQ.$#415$,STEP12. 
BEGIN,LDMAL,CMLINST,CP1,CP100,CP1991. 
BEGIN,LDMAL,CMLINST,CPE,CPE00,CPE99.
ENDIF,STEP12. 
.*
.*    IF 512580, LOAD FTP, LP1 AND LPE
.*
IFE,$512580$.EQ.$#512580$,STEP13. 
BEGIN,LDMAL,CMLINST,FTP,FTP00,FTP991. 
BEGIN,LDMAL,CMLINST,LP1,LP100,LP199B. 
BEGIN,LDMAL,CMLINST,LPE,LPE00,LPE99.
ENDIF,STEP13. 
.*
.*    IF 65X, LOAD T5X
.*
IFE,$65X$.EQ.$#65X$,STEP15. 
BEGIN,LDMAL,CMLINST,T5X,T5X00,T5X99A. 
ENDIF,STEP15. 
.*
.*    IF 66X, LOAD T6X
.*
IFE,$66X$.EQ.$#66X$,STEP16. 
BEGIN,LDMAL,CMLINST,T6X,T6X01,T6X995. 
ENDIF,STEP16. 
.*
.*    IF 698 LOAD T7X OR IF 67X LOAD T7X AND ATC
.*
IFE,$67X$.NE.$#67X$,STEP17A.
IFE,$698$.EQ.$#698$,STEP17. 
ENDIF,STEP17A.
BEGIN,LDMAL,CMLINST,T7X,T7X00,T7X99A. 
IFE,$67X$.EQ.$#67X$,STEP17. 
BEGIN,LDMAL,CMLINST,ATC,ATC00,ATC998. 
ENDIF,STEP17. 
.*
.*    IF 844, LOAD D44
.*
IFE,$844$.EQ.$#844$,STEP18. 
BEGIN,LDMAL,CMLINST,D44,D4400,D4499A. 
ENDIF,STEP18. 
.*
.*    IF 7X54 OR 66X, LOAD BCX AND MY8
.*
IFE,$7X54$.NE.$#7X54$,STEP18A.
IFE,$66X$.EQ.$#66X$,STEP19. 
ENDIF,STEP18A.
BEGIN,LDMAL,CMLINST,BCX,BCX00,BCX99.
BEGIN,LDMAL,CMLINST,MY8,MY800,MY899.
ENDIF,STEP19. 
.*
.*    IF 7155, LOAD FMC, FMD, AND FMU.  IF 885 ALSO, LOAD D88.
.*    IF 844 ALSO, LOAD DTC.
.*
IFE,$885$.NE.$#885$,STEP19A.
IFE,$7155$.EQ.$#7155$,STEP20. 
ENDIF,STEP19A.
BEGIN,LDMAL,CMLINST,FMC,FMC00,FMC99C. 
BEGIN,LDMAL,CMLINST,FMD,FMD00,FMD99C. 
BEGIN,LDMAL,CMLINST,FMU,FMU01,FMU99A. 
IFE,$885$.EQ.$#885$,STEP19B.
BEGIN,LDMAL,CMLINST,D88,D8801,D8899A. 
ENDIF,STEP19B.
IFE,$844$.EQ.$#844$,STEP20. 
BEGIN,LDMAL,CMLINST,DTC,DTC00,DTC99D. 
ENDIF,STEP20. 
.*
.*    IF 7155C, LOAD FHC
.*
IFE,$DEMA$.NE.$#DEMA$.AND.$7155C$.EQ.$#7155C$,STEP20A.
BEGIN,LDMAL,CMLINST,FHC,FHC00,FHC99C. 
ENDIF,STEP20A.
.*
.*    IF FSCTAPE, LOAD F7X
.*
IFE,$FSCTAPE$.EQ.$#FSCTAPE$,STEP21. 
BEGIN,LDMAL,CMLINST,F7X,F7X00,F7X99A. 
ENDIF,STEP21. 
.*
.*    IF FSCDISK, LOAD F44, F88, AND FFU
.*
IFE,$FSCDISK$.EQ.$#FSCDISK$,STEP22. 
BEGIN,LDMAL,CMLINST,F44,F4401,F4499A. 
BEGIN,LDMAL,CMLINST,F88,F8801,F8899A. 
BEGIN,LDMAL,CMLINST,FFU,FFU01,FFU99A. 
ENDIF,STEP22. 
.*
.*    IF FSCTAPE OR FSCDISK, LOAD FLM AND FSM 
.*
IFE,$FSCDISK$.NE.$#FSCDISK$,STEP22A.
IFE,$FSCTAPE$.EQ.$#FSCTAPE$,STEP23. 
ENDIF,STEP22A.
BEGIN,LDMAL,CMLINST,FLM,FLM00,FLM99C. 
BEGIN,LDMAL,CMLINST,FSM,FSM00,FSM99A. 
ENDIF,STEP23. 
.*
.*    IF LCN, LOAD LCI, LCN, LCM, AND NLM.
.*
IFE,$LCN$.EQ.$#LCN$,STEP24. 
BEGIN,LDMAL,CMLINST,LCI,LCI00,LCI99A. 
BEGIN,LDMAL,CMLINST,LCN,LCN01,LCN99B. 
BEGIN,LDMAL,CMLINST,LCM,LCM00,LCM99B. 
BEGIN,LDMAL,CMLINST,NLM,NLM00,NLM99C. 
ENDIF,STEP24. 
.*
.*    IF DEMA, LOAD FHD, FHC, DH8, AND FEP.  ALSO, IF FMU HAS NOT 
.*    ALREADY BEEN LOADED, LOAD IT. 
.*
IFE,$DEMA$.EQ.$#DEMA$,STEP25. 
BEGIN,LDMAL,CMLINST,FHD,FHD00,FHD99C. 
BEGIN,LDMAL,CMLINST,FHC,FHC00,FHC99C. 
BEGIN,LDMAL,CMLINST,DH8,DH801,DH899A. 
BEGIN,LDMAL,CMLINST,FEP,FEP01,FEP99B. 
IFE,$7155$.NE.$#7155$,STEP25. 
IFE,$885$.NE.$#885$,STEP25. 
BEGIN,LDMAL,CMLINST,FMU,FMU01,FMU99A. 
ENDIF,STEP25. 
.*
.*    IF PLATO, LOAD CIU
.*
IFE,$PLATO$.EQ.$#PLATO$,STEP26. 
BEGIN,LDMAL,CMLINST,CIU,CIU00,CIU99A. 
ENDIF,STEP26. 
.*
.*    IF ESM, LOAD ELR
.*
IFE,$ESM$.EQ.$#ESM$,STEP27. 
BEGIN,LDMAL,CMLINST,ELR,ELR01,ELR99.
ENDIF,STEP27. 
.*
.*    IF 83X, LOAD FSD
.*
IFE,$83X$.EQ.$#83X$,STEP28. 
BEGIN,LDMAL,CMLINST,FSD,FSD01,FSD99D. 
ENDIF,STEP28. 
.*
.*    IF 885LS, LOAD FLD AND DL8. 
.*    ALSO LOAD FMC AND FMU IF NOT
.*    LOADED BY A PREVIOUS STEP.
.*
IFE,$885LS$.EQ.$#885LS$,STEP29. 
BEGIN,LDMAL,CMLINST,FLD,FLD00,FLD99C. 
BEGIN,LDMAL,CMLINST,DL8,DL801,DL899A. 
IFE,$7155$.NE.$#7155$,STEP29. 
IFE,$885$.NE.$#885$,STEP29. 
IFE,$DEMA$.NE.$#DEMA$,STEP28A.
BEGIN,LDMAL,CMLINST,FMU,FMU01,FMU99A. 
ENDIF,STEP28A.
BEGIN,LDMAL,CMLINST,FMC,FMC00,FMC99C. 
ENDIF,STEP29. 
.*
.*    IF CYBERPLUS, LOAD CRP AND DMA. 
.*
IFE,$CYBERPLUS$.EQ.$#CYBERPLUS$,STEP30. 
BEGIN,LDMAL,CMLINST,CRP,CRP00,CRP99A. 
BEGIN,LDMAL,CMLINST,DMA,DMA00,DMA99A. 
ENDIF,STEP30. 
.*
.*    IF 639, LOAD IST AND ITU. 
.*
IFE,$639$.EQ.$#639$,STEP31. 
BEGIN,LDMAL,CMLINST,IST,IST00,IST99A. 
BEGIN,LDMAL,CMLINST,ITU,ITU00,ITU99A. 
ENDIF,STEP31. 
.*
.*    IF 698, 895, 5X70 OR CARTAPE, LOAD CCM AND CLM
.*
IFE,$698$.NE.$#698$,STEP32A.
IFE,$895$.NE.$#895$,STEP32A.
IFE,$5X70$.NE.$#5X70$,STEP32A.
IFE,$CARTAPE$.EQ.$#CARTAPE$,STEP33. 
ENDIF,STEP32A.
BEGIN,LDMAL,CMLINST,CCM,CCM00,CCM99A. 
BEGIN,LDMAL,CMLINST,CLM,CLM00,CLM99B. 
ENDIF,STEP33. 
.*
.*    IF 83X OR 895, LOAD DFU AND DTI.
.*
IFE,$83X$.NE.$#83X$,STEP33A.
IFE,$895$.EQ.$#895$,STEP34. 
ENDIF,STEP33A.
BEGIN,LDMAL,CMLINST,DFU,DFU00,DFU99B. 
BEGIN,LDMAL,CMLINST,DTI,DTI00,DTI99A. 
ENDIF,STEP34. 
.*
.*    IF 5X70, LOAD NIP.
.*
IFE,$5X70$.EQ.$#5X70$,STEP35. 
BEGIN,LDMAL,CMLINST,NIP,NIP00,NIP99A. 
ENDIF,STEP35. 
.*
.*    IF UNIBUS, LOAD PDP.
.*
IFE,$UNIBUS$.EQ.$#UNIBUS$,STEP36. 
BEGIN,LDMAL,CMLINST,PDP,PDP01,PDP99B. 
ENDIF,STEP36. 
.*
.*    IF 895, LOAD DM8. 
.*
IFE,$895$.EQ.$#895$,STEP37. 
BEGIN,LDMAL,CMLINST,DM8,DM800,DM899B. 
ENDIF,STEP37. 
.*
.*    IF STORNET, LOAD MSD AND MSM. 
.*
IFE,$STORNET$.EQ.$#STORNET$,STEP38. 
BEGIN,LDMAL,CMLINST,MSD,MSD00,MSD99B. 
BEGIN,LDMAL,CMLINST,MSM,MSM00,MSM99B. 
ENDIF,STEP38. 
.*
.*    IF IPIDISK LOAD IDA AND IDT.
.*
IFE,$IPIDISK$.EQ.$#IPIDISK$,STEP39. 
BEGIN,LDMAL,CMLINST,IDA,IDA00,IDA99A. 
BEGIN,LDMAL,CMLINST,IDT,IDT00,IDT99A. 
ENDIF,STEP39. 
.*
.*    IF CARTAPE LOAD TCT.
.*
IFE,$CARTAPE$.EQ.$#CARTAPE$,STEP40. 
BEGIN,LDMAL,CMLINST,TCT,TCT00,TCT99B. 
ENDIF,STEP40. 
.*
.*   END
.*
NOTE././...CML BINARY LOAD COMPLETE..././.
*WEOR 
.PROC,INTINST*M"CML INSTALLATION PROCEDURES",SELECT=( 
1"BINARY INSTALL",
2"CML UTILITY INSTALLATION",
3"CML INSTALLATION INTERACTIVE",
4"ANALYZE EDD DUMP TAPE").
.HELP.
  
GENERAL INFORMATION ABOUT EACH OF THE CAPABILITIES LISTED IN THE MENU 
CAN BE OBTAINED BY ENTERING THE APPROPRIATE NUMBER FOLLOWED BY A
QUESTION MARK (?).  FOR EXAMPLE, TO OBTAIN INFORMATION ON BINARY
INSTALL, ENTER "1?" FOLLOWED BY A CARRIAGE RETURN.
  
ALL PROCEDURES MAY BE CALLED DIRECTLY, INSTEAD OF USING THIS MENU 
DRIVEN PROCEDURE (INTINST).  THE NAME OF THE PROCEDURE WHICH
CORRESPONDS TO A SPECIFIC NUMBER SELECTION CAN BE DETERMINED BY 
APPENDING A QUESTION MARK (?) TO THE NUMBER.
  
ALL REFERENCES TO "(CR)" WITHIN THIS HELP DOCUMENTATION IMPLIES A CARRIAGE
RETURN CHARACTER. 
  
HELP INFORMATION IS AVAILABLE FOR ALL PROMPTS.  TO OBTAIN HELP, RESPOND 
TO THE PROMPT WITH A QUESTION MARK FOLLOWED BY A CARRIAGE RETURN ("?(CR)).
  
A PROCEDURE CAN BE TERMINATED AT ANY TIME BY ENTERING THE "USER BREAK 2"
CHARACTER SEQUENCE.  THIS CAN VARY FROM SITE-TO-SITE, BUT IS USUALLY
"CTRL/T(CR)". (HOLD "CTRL" AND "T" KEYS SIMULTANEOUSLY.)
  
THE PROGRESS OF INTERACTIVE JOBS CAN BE DETERMINED BY ENTERING
ESCAPE/E ("ESC/E(CR)"). (RELEASE "ESC" KEY BEFORE DEPRESSING "E".)
.* EXAMPLE OF HOW TO GET INTINST (INTERACTIVE INSTALL) STARTED. 
.*
.*     DEFINE,CMLPROC.
.*     LABEL,CMLTAPE,F=SI,PO=RU,VSN=CMLVSN,D=PE.
.*     COPYBF,CMLTAPE,CMLPROC.
.*     -INTINST,CMLPROC.
.*
.HELP,1.
  
SELECTING OPTION 1 INITIATES PROCEDURE "BININST". 
  
PROCEDURE "BININST" WILL PERFORM A BINARY INSTALL OF THE DIAGNOSTICS
AND UTILITIES NECESSARY TO SUPPORT THE SPECIFIED CONFIGURATION. 
.HELP,2.
  
SELECTING OPTION 2 INITIATES PROCEDURE "CMLUTIL". 
  
PROCEDURE "CMLUTIL" WILL ALLOW SELECTION OF CML UTILITIES.
.HELP,3.
  
SELECTING OPTION 3 INITATES PROCEDURE "CMLINST".
  
PROCEDURE "CMLINST" WILL CREATE A JOB TO PASS PARAMETERS TO CMLINST FROM
A TERMINAL. 
.HELP,4.
  
SELECTING OPTION 4 INITIATES PROCEDURE "ANALDMP". 
  
PROCEDURE "ANALDMP" WILL ANALYZE AN EDD DUMP TAPE WITH PRESET PARAMETERS. 
.ENDHELP
.*
IFE,SYS.NE.NOS.REVERT,ABORT. -INTINST RUNS ONLY ON NOS -
.*
NOTE,OUTPUT,NR./ YOU HAVE SELECTED OPTION SELECT /
IFE,FILE(PFNOTE,LO),NONOTE. 
COPYCR,PFNOTE.
RETURN,PFNOTE.
ENDIF,NONOTE. 
LABEL,CMLTAPE,F=SI,PO=RU,VSN=CMLVSN,D=PE. 
ATTACH,CMLINST/NA.
IFE,FILE(CMLINST,.NOT.AS),NOCMLI. 
.IF,SELECT.EQ.1.BEGIN,BININST,CMLPROC,?.
CLEAR.
.IF,SELECT.EQ.2.BEGIN,CMLUTIL,CMLPROC,?.
.IF,SELECT.EQ.3.BEGIN,INTSYS,CMLPROC,?. 
.IF,SELECT.EQ.4.BEGIN,ANALDMP,CMLPROC,?.
ELSE,NOCMLI.
.IF,SELECT.EQ.1.BEGIN,BININST,CMLINST,?.
CLEAR.
.IF,SELECT.EQ.2.BEGIN,CMLUTIL,CMLINST,?.
.IF,SELECT.EQ.3.BEGIN,INTSYS,CMLINST,?. 
.IF,SELECT.EQ.4.BEGIN,ANALDMP,CMLINST,?.
ENDIF,NOCMLI. 
REVERT. 
*WEOR 
.PROC,INTSYS*I, 
SYSVER[ENTER SYSTEM VERSION]=(NOS27,NOS26,NOS25,NOS24,NOS23,NOS6),
8LPI[DO YOU WANT 8 LINES PER INCH]=(*N=,*K=8LPI,Y=8LPI,N=), 
PAPER85[DO YOU HAVE 11 INCH PRINTER PAPER]=(*N=,*K=PAPER85,Y=PAPER85,N=), 
NOTSECURE[DO YOU WANT SECURE PURGED]=(*N=,*K=NOTSECURE,Y=NOTSECURE,N=), 
MMF[DO YOU HAVE MULTI MAINFAME]=(*N=,*K=MMF,Y=MMF,N=),
HPSORT[DO YOU WANT HPSORT]=(*N=,*K=HPSORT,Y=HPSORT,N=), 
MALDOC[WHAT KIND OF DIAGNOSTIC DOCUMENTATION, (CR) IF NONE]=
(*N=NONE,INT,EXT,BOTH), 
SYSEDIT[DO YOU WANT TO DO A SYSEDIT]=(*N=,*K=SYSEDIT,Y=SYSEDIT,N=), 
USER[ENTER USER,PASSWORD,FAMILY]= 
(*S40(1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ$,.*/$)), 
CHARGE[ENTER CHARGE NUMBER,PROJECT NUMBER]= 
(*S40(1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ$,.*/$)), 
REL1APFN[ENTER REL1APFN (DEFAULT = OMITTED)]=(*F,*N=),
REL1AUN[ENTER USERNAME OF REL1A (OPL), (CR) IF NONE]= 
(*S7(1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ$*$),*N=), 
REL1APW[ENTER FILE PASSWORD FOR REL1A (OPL), (CR) IF NONE]= 
(*S7(1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ$*$),*N=), 
REL1APAK[ENTER REL1A (OPL) PACKNAME, (CR) IF NONE] =
(*S7(1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ$*$),*N=), 
REL1ADT[ENTER REL1A (OPL) DEVICE TYPE, (CR) IF NONE]= 
(DB,DC,DD,DG,DI,DJ,DK,DL,DM,DQ,DV,DW,*N=),
REL1AVSN[WHAT IS REL1A (OPL) VOLUMN SERIAL NUMBER, (CR) IF DEFAULT]=
(*S7(1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ$*$),*N=), 
REL1ADEN[WHAT IS REL1A (OPL) TAPE DENSITY (DEFAULT = PE)(CR) IF DEFAULT]= 
(*N=,GE,PE,HD,HY),
PROCFIL=(*N=#FILE). 
.*
.* PROCEDURE NAME - INTSYS
.*
.* PURPOSE - ALLOW SYSTEM PARAMETERS TO BE SELECTED FROM A TERMINAL THAT ARE
.*           NECESSARY TO SUPPORT THE SPECIFIED CONFIGURATION.
.*
.* PARAMETERS - SEE "METHOD USED" 
.*
.* CALLED BY - USER EVOKED
.*
.* PROCEDURES USED - INTHDW 
.*
.* PREREQUISITES - THE CML RELEASE TAPE (OR FILE) LOCAL TO THE JOB
.*                 AS LFN "CMLTAPE".
.*
.* METHOD USED -
.*
.* THIS PROCEDURE EXECUTES ONLY ON NOS 2.1 LEVEL 580 AND LATER SYSTEM LEVELS. 
.*
.* ADDITIONAL INFORMATION CONCERNING THE USE OF THIS AND OTHER CML SUPPORT
.* PROCEDURES REFER TO THE CML REFERENCE MANUAL (60455980). 
.*
.* A MORE DETAILED EXPLAINATION OF ANY SPECIFIC PARAMETER MAY BE OBTAINED 
.* BY ENTERING A QUESTION MARK (?) IN RESPONSE TO THE PROMPT. WHEN PROMPTED,
.* ENTER A "Y" OR AN "N" IF ASKED YES OR NO. LEGAL PARAMETERS ARE NECESSARY 
.* WHEN ASKED OR A CARRIAGE RETURN TO SPECIFY NONE OR THE DEFAULT.
.*
.* PROMPTING MAY BE TERMINATED AT ANY TIME BY ENTERING A PERIOD (.) IN
.* RESPONSE TO AN PARAMETER PROMPT, OR BY ENDING A PARAMETER ENTRY WITH A 
.* PERIOD.
.*
.HELP,,NOLIST.
YOU HAVE SELECTED THE PROMPTING MODE OF EXECUTION.
  
IN RESPONSE TO A PROMPT, ENTER A "Y" OR AN "N" IF ASKED YES OR NO.
  
ENTER LEGAL PARAMETERS WHEN NECESSARY OR A CARRIAGE RETURN TO SPECIFY 
  
NONE OR THE DEFAULT.
  
FOR ADDITIONAL INFORMATION REGARDING ANY DEVICE, ENTER A QUESTION MARK (?). 
  
ENTERING A PERIOD (.) WILL TERMINATE PROMPTING. 
- 
-  PARAMETER PROMPTING FOLLOWS....
- 
.HELP,NOTSECURE.
NOTSECURE KEYWORD PASSED TO EVOKE A "*YANK,SECURE" DIRECTIVE DURING THE UPDATE
          OF MLD. THIS ALTERS THE MALET MASS STORAGE ACCESS LEVEL CAPABILITIES. 
          OMITTED = *DEFINE,SECURE  (RECOMMENDED) 
          SPECIFIED=*YANK,SECURE    (NOT RECOMMENDED) 
.HELP,SYSVER. 
ENTER THE SYSTEM VERSION AS FOLLOWS-
    NOS27 ==> NOS 2.7 
    NOS26 ==> NOS 2.6 
    NOS25 ==> NOS 2.5 
    NOS24 ==> NOS 2.4 
    NOS23 ==> NOS 2.3 
    NOS6  ==> NOS 2.2, NOS 2.1, OR NOS 2.0
.HELP,8LPI. 
MALET PRINTER OUTPUT CAN BE AT EITHER 8 OR 6 LINES PER INCH.
ENTER "Y" FOR 8 LINES PER INCH; "N" OR (CR) FOR 6 LINES PER INCH. 
.HELP,PAPER85.
MALET PRINTER OUTPUT CAN BE SIZED FOR EITHER 8.5 INCH (SHORT) PAPER OR
11 INCH (STANDARD) PAPER.  ENTER "Y" FOR 8.5 INCH PAPER; "N" OR (CR) FOR
11 INCH PAPER.
.HELP,MMF.
MMF       KEYWORD PASSED TO CAUSE SKEDULR TO BE ASSEMBLED FOR USE IN A
          MULTIMAINFRAME ENVIRONMENT. 
          OMITTED= SKEDULR ASSEMBLED FOR USE IN SINGLE OR NON-SHARED
          MAINFRAME ENVIRONMENT.
.HELP,HPSORT. 
HPSORT    KEYWORD PASSED TO EVOKE THE INTERNAL HPA SORT ROUTINE IN LIEU OF
          SORT/MERGE 5. 
          OMITTED = USE SORT/MERGE 5  (RECOMMENDED) 
          SPECIFIED = USE INTERNAL HPA SORT (RECOMMENDED ONLY IF
          SORT/MERGE 5 IS NOT AVAILABLE.) 
.HELP,MALDOC. 
MALDOC    TYPE OF HARDCOPY DOCUMENTATION DESIRED FOR COMPILED MALET DIAGNOSTICS.
          DEFAULT=NONE
          LEGAL VALUES- 
          (CR) = NONE = NO DOCUMENTATION PRODUCED (DEFAULT) 
          EXT  = EXTERNAL DOCUMENTATION PRODUCED
          INT  = INTERNAL DOCUMENTATION PRODUCED
          BOTH = BOTH INTERNAL AND EXTERNAL DOCUMENTATION PRODUCED
.HELP,SYSEDIT.
SYSEDIT   KEYWORD SPECIFIED IF A SYSEDIT IS TO BE PERFORMED BY CML4. IF NOT 
          SPECIFIED, CML4 WILL CREATE A PERMANENT FILE COPY OF THE COMPILER 
          FOR USE BY THE JOBS CREATED BY CML5A. IF THE KEYWORD IS NOT SPECIFIED,
          CML5A WILL USE MALET FROM THE SYSTEM LIBRARY AFTER THE SYSEDIT IS 
          PERFORMED.
.HELP,USER. 
USER      USER STATEMENT IMAGE.  PARAMETER MUST BE PASSED AS FOLLOWS
          IF IN SCREEN MODE.
          (USER,PASSWORD,FAMILY).  PARAMETER IS REQUIRED. 
          IF IN LINE MODE.
          ($USER,PASSWORD,FAMILY$). PARAMETER IS REQUIRED.
.HELP,CHARGE. 
CHARGE    CHARGE STATEMENT IMAGE.  PARAMETER MUST BE PASSED AS FOLLOWS
          IF IN SCREEN MODE.
          (CHARGE NUMBER,PROJECT NUMBER).  PARAMETER IS REQUIRED. 
          IF NO CHARGE NUMBER REQUIRED PARAMETER MUST BE PASSED AS FOLLOWS. 
          (*).  PARAMETER IS REQUIRED.
          IF IN LINE MODE.
          ($CHARGE NUMBER,PROJECT NUMBER$).  PARAMETER IS REQUIRED. 
          IF NO CHARGE NUMBER REQUIRED PARAMETER MUST BE PASSED AS FOLLOWS. 
          ($*$).  PARAMETER IS REQUIRED.
.HELP,REL1APFN. 
REL1APFN  PERMANENT FILE NAME OF REL1A (SYSOPL) PROGRAM LIBRARY, IF ONE EXISTS. 
(OPLPFN)  IF PASSED, THE SPECIFIED COPY WILL BE USED, AND PARAMETERS REL1AUN, 
          REL1APAK, AND REL1APW WILL BE USED IF SPECIFIED. OTHERWISE, REL1A 
          WILL BE LOADED FROM TAPE AND SAVED ON DIRECT ACCESS PERM FILE 
          "SYSOPL" UNDER THE USER'S USER INDEX. PROCEDURE "GETOPL" IS USED TO 
          ACCESS/CREATE THIS FILE.
          OMITTED = LOAD REL1A FROM TAPE. 
.HELP,REL1APAK. 
REL1APAK  REMOVABLE PACK ON WHICH REL1APFN RESIDES.  THIS KEYWORD IS NOT
(OPLPAK)  REQUIRED IF FILE IS ON A NON-REMOVABLE DEVICE.
          OMITTED = REL1APFN ON NON-REMOVABLE DEVICE. 
          (CR) IF NONE IS REQUIRED. 
.HELP,REL1ADT.
REL1ADT 
(OPLDTSET)
      IF THE FILE RESIDES ON A REMOVABLE DEVICE OF A TYPE DIFFERENT THAN THE
      INSTALLATION DEFINED DEFAULT, ENTER THE APPROPRIATE DEVICE TYPE.
      LEGAL VALUES INCLUDE- 
      DB - 885-42 DISKS                 DK - 844-21 DISKS (HALF TRACK)
      DC - 895 DISKS                    DL - 844-4X DISKS (FULL TRACK)
      DD - 834 DISKS                    DM - 885-11/12 DISKS (HALF TRACK) 
      DG - 836 DISKS                    DQ - 885-11/12 DISKS (FULL TRACK) 
      DI - 844-21 DISKS (HALF TRACK)    DV - 819-DISKS (SINGLE DENSITY) 
      DJ - 844-4X DISKS (FULL TRACK)    DW - 819 DISKS (DOUBLE DENSITY) 
  (CR) IF NONE IS REQUIRED OR IF THE INSTALLATION DEFINED DEFAULT IS TO BE USED.
.HELP,REL1APW.
REL1APW   PASSWORD USED FOR READ ACCESS TO REL1APFN.  THIS KEYWORD IS NOT 
(OPLPW)   REQUIRED IF A PASSWORD NOT USED.
          OMITTED = PASSWORD NOT REQUIRED TO ACCESS REL1APFN. 
          (CR) IF PASSWORD IS NOT REQUIRED. 
.HELP,REL1AUN.
REL1AUN   USER NUMBER OF THE PERMANENT FILE NAME PASSED IN REL1APFN.
(OPLUNID) DEFAULT = NONE, REQUIRED PARAMETER IF "REL1APFN" SPECIFIED. 
          (CR) IF NONE IS REQUIRED. 
.HELP,REL1AVSN. 
REL1AVSN  THE VSN OF THE REL1A MAGNETIC TAPE PROGRAM LIBRARY. THIS KEYWORD IS 
(OPLVSN)  NOT REQUIRED IF A PERMANENT FILE NAME IS PASSED IN REL1APFN.
          DEFAULT = REL1A 
          (CR) IF DEFAULT IS TO BE USED.
.HELP,REL1ADEN. 
REL1ADEN  DENSITY OF THE REL1A MAGNETIC TAPE. 
(OPLDEN)  LEGAL VALUES- 
          6250 OR GE = 9 TRK GCR
          1600 OR PE = 9 TRK PHASE
           800 OR HD = 9 TRK NRZI 
                  HY = 7 TRK NRZI (800 BPI) 
          DEFAULT = PE
          (CR) IF DEFAULT IS TO BE USED.
.ENDHELP
.*
IFE,SYS.NE.NOS.REVERT,ABORT. - CMLTERM RUNS ONLY ON NOS - 
ENDIF,NOHELP. 
ENDIF,GOCMLI. 
NOTE././...SAVING SYSTEM PARAMETERS IN JOB
REPLACE,INSTJOB.
NOTE././...GOING TO HARDWARE PARAMETERS 
.*
BEGIN,INTHDW,CMLPROC,?. 
REVERT. 
.DATA,INSTJOB.
CMLRT,T7000.
#USER,USER. 
#CHARGE,CHARGE. 
LABEL,CMLTAPE,F=SI,PO=RU,VSN=CMLVSN,D=PE. 
BEGIN,CMLINST,CMLPROC,
HPSORT,MMF,NOTSECURE,PAPER85,8LPI,SYSEDIT,
#MALDOC=MALDOC,OPLDEN=REL1ADEN,OPLDTSET=REL1ADT,OPLPAK=REL1APAK,OPLPFN=REL1APFN,
OPLPW=REL1APW,OPLUNID=REL1AUN,OPLVSN=REL1AVSN,#SYSVER=SYSVER, 
#USER=_$#USER,USER_.$,
#CHARGE=$#CHARGE,CHARGE_.$, 
.EOR
*WEOR 
.PROC,INTHDW*I,/PRD[ENTER PRODUCT]=(*N=CML3), 
DEMA[DO YOU HAVE DEMA]=(*N=,*K=DEMA,Y=DEMA,N=), 
ESM[DO YOU HAVE ESM]=(*N=,*K=ESM,Y=ESM,N=), 
FSCDISK[DO YOU HAVE FSCDISK]=(*N=,*K=FSCDISK,Y=FSCDISK,N=), 
FSCTAPE[DO YOU HAVE FSCTAPE]=(*N=,*K=FSCTAPE,Y=FSCTAPE,N=), 
LCN[DO YOU HAVE LCN]=(*N=,*K=LCN,Y=LCN,N=), 
PLATO[DO YOU HAVE PLATO]=(*N=,*K=PLATO,Y=PLATO,N=), 
405[DO YOU HAVE 405]=(*N=,*K=405,Y=405,N=), 
415[DO YOU HAVE 415]=(*N=,*K=415,Y=415,N=), 
512580[DO YOU HAVE 512 OR 580]=(*N=,*K=512580,Y=512580,N=), 
65X[DO YOU HAVE 65X]=(*N=,*K=65X,Y=65X,N=), 
66X[DO YOU HAVE 66X]=(*N=,*K=66X,Y=66X,N=), 
67X[DO YOU HAVE 67X]=(*N=,*K=67X,Y=67X,N=), 
639[DO YOU HAVE 639]=(*N=,*K=639,Y=639,N=), 
698[DO YOU HAVE 698]=(*N=,*K=698,Y=698,N=), 
800[DO YOU HAVE 800]=(*N=,*K=800,Y=800,N=), 
83X[DO YOU HAVE 83X]=(*N=,*K=83X,Y=83X,N=), 
844[DO YOU HAVE 844]=(*N=,*K=844,Y=844,N=), 
885[DO YOU HAVE 885 (SMALL SECTOR)]=(*N=,*K=885,Y=885,N=),
885LS[DO YOU HAVE 885LS (LARGE SECTOR)]=(*N=,*K=885LS,Y=885LS,N=),
895[DO YOU HAVE 895]=(*N=,*K=895,Y=895,N=), 
2550[DO YOU HAVE 2550]=(*N=,*K=2550,Y=2550,N=), 
2550100[DO YOU HAVE 2550100]=(*N=,*K=2550100,Y=2550100,N=), 
5X70[DO YOU HAVE 5X70]=(*N=,*K=5X70,Y=5X70,N=), 
667X[DO YOU HAVE 667X]=(*N=,*K=667X,Y=667X,N=), 
7X54[DO YOU HAVE 7X54]=(*N=,*K=7X54,Y=7X54,N=), 
7155[DO YOU HAVE 7155]=(*N=,*K=7155,Y=7155,N=), 
7155C[DO YOU HAVE 7155C]=(*N=,*K=7155C,Y=7155C,N=), 
CYBERPLUS[DO YOU HAVE CYBERPLUS]=(*N=,*K=CYBERPLUS,Y=CYBERPLUS,N=), 
CARTAPE[DO YOU HAVE 5680 CARTRIDGE TAPE]=(*N=,*K=CARTAPE,Y=CARTAPE,N=), 
UNIBUS[DO YOU HAVE UNIBUS]=(*N=,*K=UNIBUS,Y=UNIBUS,N=), 
STORNET[DO YOU HAVE STORNET]=(*N=,*K=STORNET,Y=STORNET,N=), 
IPIDISK[DO YOU HAVE IPIDISK]=(*N=,*K=IPIDISK,Y=IPIDISK,N=). 
.HELP.
YOU HAVE SELECTED THE PROMPTING MODE OF EXECUTION.
  
IF IN LINE MODE THE FOLLOWING APPLIES.
  
IN RESPONSE TO A PROMPT, ENTER A "Y" TO INDICATE THE PRESENCE OF A DEVICE.
  
ENTER A "N" (OR JUST A CARRIAGE RETURN) TO INDICATE THE ABSENCE OF A DEVICE.
  
FOR ADDITIONAL INFORMATION REGARDING ANY DEVICE, ENTER A QUESTION MARK (?). 
  
ENTERING A PERIOD (.) WILL TERMINATE PROMPTING. 
  
IF IN SCREEN MODE THE FOLLOWING APPLIES.
  
ENTER A "Y" TO INDICATE THE PRESENCE OF A DEVICE. 
  
ENTER A "N" (OR MOVE THE CURSOR TO THE NEXT LINE) TO INDICATE THE ABSENCE 
  
OF A DEVICE. A CARRIAGE RETURN WILL TERMINATE.
  
- 
-  PARAMETER PROMPTING FOLLOWS....
- 
.HELP,DEMA. 
DEMA      SPECIFIES THAT DEMA HARDWARE IS INCLUDED IN THE CONFIGURATION. CAUSES 
          MALET DIAGNOSTICS FHD, FHC, DH8, FEP, AND FMU TO BE COMPILED AND
          SAVED.
.HELP,ESM.
ESM       SPECIFIES THAT ESM HARDWARE IS INCLUDED IN THE CONFIGURATION. CAUSES
          MALET DIAGNOSTIC ELR TO BE COMPILED AND SAVED.
.HELP,FSCDISK.
FSCDISK   SPECIFIES THAT A FEDERAL STANDARD CHANNEL DRIVING DISKS IS INCLUDED 
          IN THE CONFIGURATION.  CAUSES MALET DIAGNOSTICS F44, F88, FLM, AND
          FFU TO BE COMPILED AND SAVED. ALSO, NAD DIAGNOSTICS NDM AND NDP ARE 
          LOADED FROM THE CML TAPE AND SAVED BY CML1. 
.HELP,FSCTAPE.
FSCTAPE   SPECIFIES THAT A FEDERAL STANDARD CHANNEL DRIVING TAPE DRIVES IS
          INCLUDED IN THE CONFIGURATION. CAUSES MALET DIAGNOSTICS F7X, FLM, 
          AND FSM TO BE COMPILED AND SAVED. ALSO, NAD DIAGNOSTICS NDM AND NDP 
          ARE LOADED FROM THE CML TAPE AND SAVED BY CML1. 
.HELP,LCN.
LCN       SPECIFIES THAT LCN IS INCLUDED IN THE HARDWARE CONFIGURATION. CAUSES
          MALET DIAGNOSTICS LCI, LCN, LCM, AND NLM TO BE COMPILED AND SAVED.
          ALSO, NAD  DIAGNOSTICS NDM, NDP, AND NDT ARE LOADED FROM THE CML TAPE 
          AND SAVED  BY CML1
.HELP,PLATO.
PLATO     SPECIFIES THAT THE SYSTEM IS RUNNING PLATO, AND CAUSES MALET
          DIAGNOSTIC CIU TO BE COMPILED AND SAVED.
.HELP,405.
405       SPECIFIES THAT A 405 CARD READER IS INCLUDED IN THE CONFIGURATION.
          CAUSES MALET DIAGNOSTICS CRE AND CR1 TO BE COMPILED AND SAVED.
          ALSO CAUSES CML1 TO LOAD AND SAVE CR1SCR FROM THE CML TAPE. 
.HELP,415.
415       SPECIFIES THAT A 415 CARD PUNCH IS INCLUDED IN THE CONFIGURATION. 
          CAUSES MALET DIAGNOSTICS CPE AND CP1 TO BE COMPILED AND SAVED.
.HELP,512580. 
512580    SPECIFIES THAT A 512 OR 580 LINE PRINTER IS INCLUDED IN THE 
          CONFIGURATION. CAUSES MALET DIAGNOSTICS FTP, LPE AND LP1 TO 
          BE COMPILED AND SAVED.
.HELP,65X.
65X       SPECIFIES THAT A 60X OR 65X MAGNETIC TAPE SUBSYSTEM IS INCLUDED IN
          THE CONFIGURATION. CAUSES MALET DIAGNOSTIC T5X TO BE COMPILED AND 
          SAVED.
.HELP,66X.
66X       SPECIFIES THAT A 66X MAGNETIC TAPE SUBSYSTEM IS INCLUDED IN THE 
          CONFIGURATON.  CAUSES MALET DIAGNOSTICS T6X, BCX, AND MY8 TO BE 
          COMPILED AND SAVED. ALSO CAUSES THE DETAIL STATUS ANALYSIS TABLES 
          FOR 66X TO BE INCLUDED IN HPA. ALSO CAUSES CML1 TO LOAD AND SAVE
          BCXBC AND MY8BC FROM THE CML TAPE. ALSO COMPILES AND SAVES MTPLOT.
.HELP,67X.
67X       SPECIFIES THAT A 67X MAGNETIC TAPE SUBSYSTEM IS INCLUDED IN THE 
          CONFIGURATON. CAUSES MALET DIAGNOSTICS T7X AND ATC TO BE COMPILED 
          AND SAVED. ALSO COMPILES AND SAVES MTPLOT.
.HELP,639.
639       SPECIFIES THAT A 639 MAGNETIC TAPE SUBSYSTEM IS INCLUDED IN 
          THE SYSTEM CONFIGURATION. CAUSES MALET UTILITY ITU AND MALET
          DIAGNOSTIC IST TO BE COMPILED AND SAVED. ALSO COMPILES AND
          SAVES MTPLOT. 
.HELP,698 
698       SPECIFIES THAT 698 TAPE DRIVES AND CYBER CHANNEL COUPLER ARE
          INCLUDED IN THE CONFIGURATION. CAUSES MALET DIAGNOSTICS T7X, CCM, 
          AND CLM TO BE COMPILED AND SAVED. ALSO NAD DIAGNOSTICS NDM AND NDP
          WILL BE LOADED FROM THE CML TAPE AND SAVED BY CML1. ALSO COMPILES 
          AND SAVES MTPLOT. 
.HELP,800.
800       SPECIFIES THAT A CYBER 170-800 SERIES SYSTEM (EXCEPT 865/875) IS
          INCLUDED IN THE CONFIGURATION.  CAUSES MICROCODE UTILITIES MCDUMP 
          AND MCCOMP TO BE COMPILED AND SAVED.
.HELP,83X.
83X       SPECIFIES THAT 834(ISDI) OR 836(ISDII) DISK DRIVES ARE INCLUDED 
          IN THE CONFIGURATION. CAUSES MALET DIAGNOSTICS FSD AND DFU TO BE
          COMPILED AND SAVED. ALSO COMPILES AND SAVES DSPLOT,HPTEXT, AND
          DKDATA. 
.HELP,844.
844       SPECIFIES THAT 844 DISK DRIVES ARE INCLUDED IN THE CONFIGURATION. 
          CAUSES MALET DIAGNOSTIC D44 TO BE COMPILED AND SAVED. IF 7155 IS
          ALSO DEFINED, MALET DIAGNOSTIC DTC IS ALSO COMPILED AND SAVED.
          ALSO COMPILES AND SAVES DSPLOT,HPTEXT, AND DKDATA.
.HELP,885.
885       SPECIFIES THAT 885 DISK DRIVES (SERIAL, SMALL SECTOR DRIVES) ARE
          INCLUDED IN THE CONFIGURATION. CAUSES MALET DIAGNOSTICS D88, FMC, 
          FMD, AND FMU TO BE COMPILED AND SAVED. ALSO COMPILES AND SAVES
          DSPLOT,HPTEXT, AND DKDATA.
.HELP,885LS.
885LS     SPECIFIES THAT LARGE SECTOR 885 DISK DRIVES ARE INCLUDED IN THE 
          SYSTEM CONFIGURATION. CAUSES MALET DIAGNOSTICS FLD AND DL8 TO BE
          COMPILED AND SAVED. WILL ALSO CAUSE FMC AND FMU TO BE COMPILED
          AND SAVED IF NOT DONE THROUGH THE INCLUSION OF OTHER PARAMETERS 
          (7155/885/DEMA). ALSO COMPILES AND SAVES DSPLOT,HPTEXT, AND DKDATA. 
.HELP,895.
895       SPECIFIES THAT 895 DISK DRIVES AND CYBER CHANNEL COUPLER ARE
          INCLUDED IN THE CONFIGURATION. CAUSES MALET DIAGNOSTICS DFU,
          DM8, DTI, CCM, AND CLM TO BE COMPILED AND SAVED. ALSO CAUSES
          CML1 TO LOAD AND SAVE NAD DIAGNOSTICS NDM AND NDP FROM THE
          CML TAPE. 
.HELP,2550. 
2550      SPECIFIES THAT A 2550 COMMUNICATIONS CONTROLLER IS INCLUDED IN THE
          CONFIGURATION.  CAUSES MALET DIAGNOSTICS TFF AND TFL TO BE COMPILED 
          AND SAVED. THE ODS DIAGNOSTICS WILL ALSO BE LOADED FROM THE CML 
          TAPE AND SAVED BY CML1. 
.HELP,2550100.
2550100   SPECIFIES THAT A 2550-100 COMMUNICATIONS CONTROLLER IS INCLUDED IN
          THE CONFIGURATION. CAUSES MALET DIAGNOSTIC TFE TO BE COMPILED AND 
          SAVED.
.HELP,5X70
5X70      SPECIFIES THAT 5870 OR 5970 NON-IMPACT PRINTER AND CYBER CHANNEL
          COUPLER ARE INCLUDED IN THE CONFIGURATION. CAUSES MALET DIAGNOSTICS 
          NIP, CCM, AND CLM TO BE COMPILED AND SAVED. ALSO NAD DIAGNOSTICS
          NDM AND NDP WILL BE LOADED FROM THE CML TAPE AND SAVED BY CML1. 
.HELP,667X. 
667X      SPECIFIES THAT EITHER A 6671, 6673/6674, OR 6676 MULTIPLEXOR IS 
          INCLUDED IN THE CONFIGURATION.  CAUSES MALET DIAGNOSTICS TT3, 
          RT3, AND RT5 TO BE COMPILED AND SAVED.
.HELP,7X54. 
7X54      SPECIFIES THAT EITHER A 7054, 7154, OR 7152 CONTROLLER IS INCLUDED
          IN THE CONFIGURATION. CAUSES MALET DIAGNOSTICS BCX AND MY8 TO BE
          COMPILED AND SAVED. BCXBC AND MY8BC WILL ALSO BE LOADED FROM THE
          CML TAPE AND SAVED BY CML1. 
.HELP,7155. 
7155      SPECIFIES THAT A 7155 DISK CONTROLLER IS INCLUDED IN THE
          CONFIGURATION.  IF BOTH 844 AND 7155 ARE DEFINED, MALET 
          DIAGNOSTIC DTC WILL BE COMPILED AND SAVED, IN ADDITION TO 
          FMD, FMC, AND FMU.
.HELP,7155C.
7155C     SPECIFIES THAT A 7155C DISK CONTROLLER IS INCLUDED IN THE 
          CONFIGURATION.  IF EITHER DEMA OR 7155C IS DEFINED, MALET 
          DIAGNOSTIC FHC WILL BE COMPILED AND SAVED.
.HELP,CYBERPLUS.
CYBERPLUS SPECIFIES THAT CYBERPLUS HARDWARE (CYBER RING PORT) IS INCLUDED 
          IN THE CONFIGURATION. CAUSES MALET DIAGNOSTICS CRP AND DMA TO BE
          COMPILED AND SAVED. 
.HELP,CARTAPE.
CARTAPE   SPECIFIES THAT 5680 CARTRIDGE TAPE AND CYBER CHANNEL COUPLER
          ARE INCLUDED IN THE CONFIGURATION. CAUSES MALET DIAGNOSTICS 
          TCT, CCM, AND CLM TO BE LOADED AND SAVED. ALSO NAD DIAGNOSTICS
          NDM AND NDP ARE LOADED AND SAVED. 
          *************************** NOTE *****************************
          IF MASSTOR AND CYBER CHANNEL COUPLER ARE INCLUDED IN THE
          CONFIGURATION USE CARTAPE AS ALL MALET AND NAD DIAGNOSTICS
          NEEDED WILL BE LOADED AND SAVED.
.HELP,UNIBUS
UNIBUS    SPECIFIES THAT CYBER/UNIBUS INTERFACE AND DEC PDP11 ARE INCLUDED
          IN THE CONFIGURATION. CAUSES MALET DIAGNOSTIC PDP TO BE COMPILED
          AND SAVED.
.HELP,STORNET 
STORNET   SPECIFIES THAT STORNET OR ESM II SUBSYSTEM ARE INCLUDED IN
          THE CONFIGURATION. CAUSES MALET DIAGNOSTICS MSD AND MSM TO
          BE COMPILED AND SAVED.
.HELP,IPIDISK 
IPIDISK   SPECIFIES THAT DAS DISK SUBSYSTEM OR 9853 DISK SUBSYSTEM
          IS INCLUDED IN THE CONFIGURATION. CAUSES MALET DIAGNOSTICS
          IDA AND IDT TO BE COMPILED AND SAVED. 
.ENDHELP
.*
IFE,SYS.NE.NOS.REVERT,ABORT. - INTINST RUNS ONLY ON NOS - 
ENDIF,NOHELP. 
IFE,$DEMA$.EQ.$$,GOCMLI.
IFE,$ESM$.EQ.$$,GOCMLI. 
IFE,$FSCDISK$.EQ.$$,GOCMLI. 
IFE,$FSCTAPE$.EQ.$$,GOCMLI. 
IFE,$LCN$.EQ.$$,GOCMLI. 
IFE,$PLATO$.EQ.$$,GOCMLI. 
IFE,$405$.EQ.$$,GOCMLI. 
IFE,$415$.EQ.$$,GOCMLI. 
IFE,$512580$.EQ.$$,GOCMLI.
IFE,$65X$.EQ.$$,GOCMLI. 
IFE,$66X$.EQ.$$,GOCMLI. 
IFE,$67X$.EQ.$$,GOCMLI. 
IFE,$800$.EQ.$$,GOCMLI. 
IFE,$83X$.EQ.$$,GOCMLI. 
IFE,$844$.EQ.$$,GOCMLI. 
IFE,$885$.EQ.$$,GOCMLI. 
IFE,$2550$.EQ.$$,GOCMLI.
IFE,$2550100$.EQ.$$,GOCMLI. 
IFE,$667X$.EQ.$$,GOCMLI.
IFE,$7X54$.EQ.$$,GOCMLI.
IFE,$7155$.EQ.$$,GOCMLI.
IFE,$7155C$.EQ.$$,GOCMLI. 
IFE,$885LS$.EQ.$$,GOCMLI. 
IFE,$CYBERPLUS$.EQ.$$,GOCMLI. 
IFE,$698$.EQ.$$,GOCMLI. 
IFE,$895$.EQ.$$,GOCMLI. 
IFE,$CARTAPE$.EQ.$$,GOCMLI. 
IFE,$5X70$.EQ.$$,GOCMLI.
IFE,$UNIBUS$.EQ.$$,GOCMLI.
IFE,$STORNET$.EQ.$$,GOCMLI. 
IFE,$IPIDISK$.EQ.$$,GOCMLI. 
.*
NOTE,OUTPUT./NO HARDWARE PARAMETERS WERE PASSED.
NOTE./REQUEST PROMPTING MODE (-INTINST?) OR 
NOTE,OUTPUT./REFER TO THE CML REFERENCE MANUAL. 
REVERT,ABORT. 
.*
ENDIF,GOCMLI. 
.*
GET,INSTJOB.
COPY,INSTJOB,INSJ2. 
COPY,INSJ1,INSJ2. 
PACK,INSJ2. 
REPLACE,INSJ2=INSTJOB.
CLEAR.
GET,INSTJOB.
ROUTE,INSTJOB,DC=IN.
REVERT. 
.EOR
.DATA,INSJ1.
CYBERPLUS,639,7155C,895,CARTAPE,5X70,UNIBUS,698,STORNET,IPIDISK,
DEMA,ESM,FSCDISK,FSCTAPE,LCN,PLATO,405,415,512580,65X,66X,67X,800,844,
885,885LS,83X,2550,2550100,667X,7X54,7155.
GET,CML1. 
ROUTE,CML1,DC=IN. 
.EOR
*WEOR 
.PROC,CMLINST,
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
NOTSECURE=$$/NOTSECURE, 
CYBERPLUS=$$/CYBERPLUS,895=$$/895,CARTAPE=$$/CARTAPE, 
5X70=$$/5X70,UNIBUS=$$/UNIBUS,698=$$/698,STORNET=$$/STORNET,
83X=$$/83X,844=$$/844,885=$$/885,885LS=$$/885LS,7155=$$/7155,7X54=$$/7X54,
DEMA=$$/DEMA,LCN=$$/LCN,2550=$$/2550,667X=$$/667X,639=$$/639,7155C=$$/7155C,
2550100=$$/2550100,65X=$$/65X,66X=$$/66X,67X=$$/67X,
405=$$/405,415=$$/415,512580=$$/512580,800=$$/800,ESM=$$/ESM, 
IPIDISK=$$/IPIDISK, 
FSCTAPE=$$/FSCTAPE,FSCDISK=$$/FSCDISK,PLATO=$$/PLATO,SYSVER=, 
PAPER85=$$/PAPER85,8LPI=$$/8LPI,MMF=$$/MMF,HPSORT=$$/HPSORT,
MALDOC=NONE,SYSEDIT=$$/SYSEDIT,CEID=CDCCE,
USER=$COMMENT. - NO USER NUMBER SUPPLIED -$,
CHARGE=$COMMENT. - NO CHARGE NUMBER SUPPLIED -$,
OPLPFN=,OPLPAK=,OPLDTSET=,OPLPW=,OPLUNID=,OPLVSN=OPLVSN,OPLDEN=PE.
.*
.* PROCEDURE NAME - CMLINST 
.*
.* PUPOSE - THIS PROCEDURE IS INTENDED TO RESIDE IN EXECUTABLE FORM 
.*          AS THE FIRST FILE ON THE CML TAPE.  WHEN CALLED INTO
.*          EXECUTION, THIS PROCEDURE WILL EXTRACT THE CML INSTALLATION 
.*          PROCEDURES FROM THE CML PROGRAM LIBRARY, INCORPORATE ANY
.*          REQUIRED MODIFICATIONS, SAVE THE PROCEDURES ON PERMANENT
.*          FILE "CMLINST", AND CREATE THE REQUIRED INSTALLATION JOBS.
.*
.* PARAMETERS USED - THIS PROCEDURE ACCEPTS ALL PARAMETERS LISTED IN
.*          THE DOCUMENTATION FOR BOTH NOS AND NOSBE CML INSTALLATION.
.*          (SEE GENERAL DOCUMENTATION FOR NOS AND/OR NOSBE.)  THE
.*          FOLLOWING ENVIRONMENTAL PARAMETERS ARE RENAMED IN SUBSEQUENT
.*          PROCEDURES, DEPENDING ON THE TYPE OF OPERATING SYSTEM ON
.*          WHICH THE PROCEDURE IS BEING EXECUTED.
.*
.*      COMMON PARAMETER       NOS PARAMETER       NOSBE PARAMETER
.*           NAME                  NAME                NAME 
.*      ----------------       -------------       ---------------
.*
.*         SYSEDIT                SYSEDIT             EDITLIB 
.*         OPLDEN                 REL1ADEN            PL1BDEN 
.*         OPLDTSET               REL1ADT             PL1BSET 
.*         OPLPAK                 REL1APAK            PL1BPAK 
.*         OPLPFN                 REL1APFN            PL1BPFN 
.*         OPLPW                  REL1APW             PL1BPW
.*         OPLUNID                REL1AUN             PL1BID
.*         OPLVSN                 REL1AVSN            PL1BVSN 
.*
.* MODIFICATIONS - MODIFICATIONS CAN BE INCORPORATED INTO THE CML 
.*         INSTALLATION PROCEDURES BY PLACING THE MODSET(S) IN UPDATE FORMAT
.*         ON PERMANENT FILE "INSTMDS".  FOR NOS, THE FILE MUST BE AN 
.*         INDIRECT ACCESS FILE; FOR NOSBE, THE FILE MUST BE CATALOGED UNDER
.*         THE IDENT SPECIFIED BY KEYWORD "CEID". 
.*
.* PROCEDURE CALLED BY - USER EVOKED
.*
.* INITIATES - PROCEDURE CML
.*
.* PROCEDURES USED - NONE 
.*
.* METHOD USED - CMLINST FIRST DETERMINES THE TYPE OF OPERATING SYSTEM
.*               ON WHICH IT IS EXECUTING (NOS OR NOS/BE).
.*
.*               IF NOS, ANOTHER CHECK IS MADE TO SEE IF THERE ARE
.*               MODS TO APPLY TO THE INSTALLATION PROCEDURES.  IF
.*               MODS ARE AVAILABLE, THEY ARE APPLIED AGAINST THE 
.*               DECK "CMLINST" AND THE RESULTING PROCEDURES ARE
.*               SAVED AS A PERMANENT FILE.  IF NO MODS ARE FOUND,
.*               THE FIRST FILE OF THE CML RELEASE TAPE IS SAVED. 
.*               A RANDOM INDEX IS ADDED BEFORE THE PROCS ARE SAVED.
.*
.*               IF NOS/BE, UPDATE IS CALLED TO EXTRACT THE NOS/BE
.*               INSTALLATION PROCEDURES FROM THE CML PROGRAM 
.*               LIBRARY.  IF MODS ARE AVAILABLE, THEY ARE
.*               INCORPORATED DURING THE UPDATE.  THE PROCEDURES
.*               ARE THEN CATALOGED UNDER THE IDENT SUPPLIED IN 
.*               PARAMETER "CEID".
.*
.*               AFTER THE PROCEDURES ARE SAVED, PROCEDURE "CML" IS 
.*               CALLED TO GENERATE THE INSTALLATION JOBS.
.*
.*    STEP 1 - DETERMINE WHICH TYPE OF SYSTEM WE ARE EXECUTING ON.
.*             IF NOS, PROCEED TO STEP 2; IF NOS/BE, GO TO STEP 5.
.*
REWIND,CMLTAPE. 
IFE,SYS.EQ.NOS,NOSBE. 
.*
.*    STEP 2 - IF MODS ARE AVAILABLE, PERFORM AN UPDATE; IF NOT, COPY 
.*             THE PROCEDURES FROM THE CML RELEASE TAPE (FILE 1).  THEN 
.*             PROCEED TO STEP 3. 
.*
GET,INSTMDS/NA. 
IFE,FILE(INSTMDS,LO),STEP2A.
SKIPF,CMLTAPE.
$UPDATE,Q,P=CMLTAPE,D,8,C=CMLCCLZ,I=NOSDEF,R=C,L=1. 
RETURN,NOSDEF,NOSBDEF,INSTMDS.
ELSE,STEP2A.
COPYBF,CMLTAPE,CMLCCLZ. 
RETURN,NOSDEF,NOSBDEF.
ENDIF,STEP2A. 
.*
.*    STEP 3 - IF CALLED BY "BININST" (R1=77B) OR SYSTEM VERSION
.*             IS NOT PRE-NOS6, RUN THE PROCS THROUGH LIBGEN, 
.*             SAVE THEM ON PERMANENT FILE "CMLINST", THEN PROCEED
.*             TO STEP 4.  IF PRE-NOS6, OMIT THE LIBGEN AND SAVE
.*             THE SEQUENTIAL FILE CONTAINING THE PROCS; THEN 
.*             PROCEED TO STEP 4. 
.*
IFE,R1.NE.77B,STEP3A. 
IFE,$SYSVER$.NE.$NOS4$,STEP3B.
IFE,$SYSVER$.NE.$NOS5$,STEP3B.
ENDIF,STEP3A. 
.*
REWIND,CMLCCLZ. 
LIBGEN,F=CMLCCLZ,P=CMLINST. 
RETURN,CMLCCLZ. 
SKIP,STEP3B.
ELSE,STEP3B.
RENAME,CMLINST=CMLCCLZ. 
ENDIF,STEP3B. 
BEGIN,SAVEIT,CMLINST,CMLINST. 
.*
.*    STEP 4 - RETURN THE PROCEDURES.  IF R1=77B, THE PROC WAS CALLED 
.*             BY PROCEDURE "BININST", SO REVERT BACK TO IT TO CONTINUE 
.*             THE BINARY INSTALL PROCESS; ELSE CALL PROCEDURE "CML"
.*             TO GENERATE THE SOURCE INSTALLATION JOBS.
RETURN,CMLINST. 
IFE,R1.EQ.77B,STEP4A. 
REVERT. - RETURN TO BININST - 
ENDIF,STEP4A. 
RETURN,CMLTAPE. 
BEGIN,CML,CMLINST,
CYBERPLUS,639,7155C,895,CARTAPE,5X70,UNIBUS,698,STORNET,IPIDISK,DEMA, 
ESM,FSCDISK,FSCTAPE,LCN,PLATO,405,415,512580,65X,66X,67X,800,844,885, 
885LS,83X,2550,2550100,667X,7X54,7155,HPSORT,MMF,NOTSECURE,PAPER85,8LPI,SYSEDIT,
#MALDOC=MALDOC,REL1ADEN=OPLDEN,REL1ADT=OPLDTSET,REL1APAK=OPLPAK,REL1APFN=OPLPFN,
REL1APW=OPLPW,REL1AUN=OPLUNID,REL1AVSN=OPLVSN,#SYSVER=SYSVER, 
#USER=_$USER_$, 
#CHARGE=$_CHARGE_$. 
.*
.*    STEP 5 - WE ARE EXECUTING ON NOS/BE.  PERFORM AN UPDATE TO
.*             EXTRACT THE NOS/BE INSTALL PROCS FROM THE PROGRAM
.*             LIBRARY (FILE 2).  INCORPORATE ANY MODS ON FILE
.*             "INSTMDS".  THEN PROCEED TO STEP 6.
.*
SKIP,NOSBE. 
EXIT. 
REVERT,ABORT. - ABORT IN CMLINST -
ELSE,NOSBE. 
SKIPF,CMLTAPE,1,17. 
PURGE,CMLINST,ID=CEID.
RETURN,CMLINST. 
EXIT,U. 
REQUEST,CMLINST,*PF.
ATTACH,INSTMDS,ID=CEID. 
EXIT,U. 
IFE,FILE(INSTMDS,AS),STEP5A.
UPDATE,Q,P=CMLTAPE,D,8,C=CMLINST,I=NOSBDEF,R=C,L=1. 
ELSE,STEP5A.
UPDATE,Q,P=CMLTAPE,D,8,C=CMLINST,I=NOSBDEF,R=C,L=1. 
ENDIF,STEP5A. 
RETURN,CMLTAPE,NOSDEF,NOSBDEF.
.*
.*    STEP 6 - CATALOG THE PROCEDURES, THEN CALL PROCEDURE "CML" TO 
.*             GENERATE THE INSTALLATION JOBS.  WHEN COMPLETE, SKIP 
.*             TO STEP 7. 
.*
CATALOG,CMLINST,ID=CEID,RP=30.
BEGIN,CML,CMLINST,
ESM,FSCDISK,FSCTAPE,LCN,405,415,512580,65X,66X,67X,844,885,2550,2550100,
885LS,800,667X,7X54,7155,7155C,SYSEDIT,HPSORT,NOTSECURE,PAPER85,8LPI, 
895,CARTAPE,5X70,UNIBUS,698,639,83X,STORNET,IPIDISK,
#MALDOC=MALDOC,PL1BDEN=OPLDEN,PL1BID=OPLUNID,PL1BPAK=OPLPAK,
PL1BPW=OPLPW,PL1BSET=OPLDTSET,PL1BVSN=OPLVSN,#SYSVER=SYSVER,
PL1BPFN=OPLPFN,#CEID=CEID,
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$. 
ENDIF,NOSBE.
.*
.*    STEP 7 - TERMINATE. 
.*
REVERT. - END CML JOB CREATION -
.*
.*    UPDATE INPUT DIRECTIVES 
.*
*TEXT 
.DATA,NOSDEF. 
*IDENT,NOSDEF 
*DEFINE,NOS 
*DEFINE,SYSVER
*READ,INSTMDS 
*COMPILE,CMLINST
.EOR
.*
.DATA,NOSBDEF.
*IDENT,NOSBDEF
*DEFINE,NOSBE 
*READ,INSTMDS 
*COMPILE,CMLINST
.EOR
*ENDTEXT
.****************************************************** 
.*                                                    * 
.* IN ORDER TO OBTAIN A LISTING OR TO CREATE THE CML  * 
.* INSTALLATION PROCEDURES, EITHER A                  * 
.*                                                    * 
.*                *DEFINE,NOS                         * 
.*                                                    * 
.*                   OR A                             * 
.*                                                    * 
.*                *DEFINE,NOSBE                       * 
.*                                                    * 
.* MUST BE INCLUDED IN THE UPDATE INPUT STREAM.       * 
.*                                                    * 
.****************************************************** 
*WEOR 
*IF,-DEF,NOSBE
.PROC,CML,
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
NOTSECURE=$$/NOTSECURE, 
MALDOC=NONE,SYSEDIT=$$/SYSEDIT,639=$$/639,895=$$/895,CARTAPE=$$/CARTAPE,
5X70=$$/5X70,UNIBUS=$$/UNIBUS,698=$$/698,STORNET=$$/STORNET,
844=$$/844,885=$$/885,885LS=$$/885LS,7155=$$/7155,7X54=$$/7X54,83X=$$/83X,
CYBERPLUS=$$/CYBERPLUS,DEMA=$$/DEMA,LCN=$$/LCN,2550=$$/2550,667X=$$/667X, 
2550100=$$/2550100,65X=$$/65X,66X=$$/66X,67X=$$/67X,7155C=$$/7155C, 
405=$$/405,415=$$/415,512580=$$/512580,800=$$/800,ESM=$$/ESM, 
IPIDISK=$$/IPIDISK, 
FSCTAPE=$$/FSCTAPE,FSCDISK=$$/FSCDISK,PLATO=$$/PLATO,SYSVER=, 
PAPER85=$$/PAPER85,8LPI=$$/8LPI,MMF=$$/MMF,HPSORT=$$/HPSORT,
USER=$COMMENT. - NO USER NUMBER SUPPLIED -$,
CHARGE=$COMMENT. - NO CHARGE NUMBER SUPPLIED -$,
REL1APFN=,REL1APAK=,REL1ADT=,REL1APW=,REL1AUN=,REL1AVSN=,REL1ADEN=. 
.*
.* -------------- START OF GENERAL DOCUMENTATION -----------------------------
.*
.* THE CML INSTALLATION PROCEDURES CONTAINED IN DECK CMLINST ARE DESIGNED TO
.* PERFORM AN INITIAL INSTALLATION OF THE CML COMPONENTS INTO THE OPERATING 
.* SYSTEM, OR UPGRADE THE LEVEL OF EXISTING CML COMPONENTS CONTAINED ON THE 
.* SYSTEM.  THE MAJOR FUNCTIONS PERFORMED BY THESE PROCEDURES INCLUDE-
.*
.*          - ASSEMBLY OF MALET, HPA, REGEN, AND TIO
.*
.*          - ASSEMBLY OF THE PPU ROUTINES MLD, WLD AND SBP 
.*
.*          - OPTIONAL INCORPORATION OF THESE BINARIES INTO 
.*            THE RUNNING SYSTEM. 
.*
.*          - THE BUILDING OF A NEW DEADSTART TAPE WHICH INCLUDES THESE 
.*            BINARIES. 
.*
.*          - ASSEMBLY/COMPILATION OF SKEDULR, MLTDOC, MTPLOT, AND DSPLOT 
.*            AND RETENTION OF THE BINARIES ON PERMANENT FILES. 
.*
.*          - OPTIONAL COMPILATION OF MICROCODE UTILITIES MCCOMP
.*            AND MCDUMP AND RETENTION AS PERMANENT FILES.
.*
.*          - COMPILATON OF THE MALET DIAGNOSTICS NECESSARY TO SUPPORT THE
.*            SPECIFIED EQUIPMENT CONFIGURATION.
.*
.*          - OPTIONAL GENERATION OF HARDCOPY DOCUMENTATION FOR ALL COMPILED
.*            MALET DIAGNOSTICS.
.*
.*          - INCORPORATION OF LOCAL MODIFICATIONS OR CORRECTIVE CODE 
.*            INTO ANY OF THE ASSEMBLED/COPMPILED BINARIES. 
.*
.* WHEN CALLED INTO EXECUTION, THE PROCEDURES CREATE INSTALLATION JOBS WHICH
.* ARE TAILORED TO THE SPECIFIC HARDWARE, SOFTWARE, AND OPERATIONAL ENVIRONMENT 
.* WHICH THE USER DEFINES.  THESE JOBS ARE SAVED AS PERMANENT FILES FOR 
.* SUBSEQUENT EXECUTION.
.*
.* EXECUTION OF THE INSTALLATION JOBS IS BEGUN BY ROUTING THE FIRST JOB TO THE
.* INPUT QUEUE.  THE REMAINDER OF THE INSTALLATION JOBS ARE EVOKED
.* AT THE PROPER TIME IN THE SEQUENCE.  THE JOBS ARE DESIGNED TO MAKE 
.* OPTIMUM USE OF SYSTEM RESOURCES, THUS MINIMIZING THE INSTALLATION TIME.
.*
.* THE PROCEDURES EXIST IN EXECUTABLE FORM AS THE FIRST FILE ON THE CML 
.* RELEASE TAPE.  WHEN CALLED INTO EXECUTION, THE INTERFACE PROCEDURE 
.* "CMLINST" WILL GENERATE THE APPROPRIATE NOS OR NOSBE INSTALLATION
.* PROCEDURE FILE, SAVE IT AS A PERMANENT FILE ON MASS STORAGE, AND 
.* CREATE THE INSTALLATION JOB DECKS.  EXECUTION IS BEGUN BY USING A
.* "BEGIN" STATEMENT TO PASS THE HARDWARE, SOFTWARE, AND OPERATIONAL
.* ENVIRONMENTS TO THE PROCEDURES.  THESE PROCEDURES THEN EXECUTE AND CREATE
.* THE CML INSTALLATION JOBS WHICH ARE TAILORED TO MEET THE INSTALLATION'S
.* SPECIFIC REQUIREMENTS.  FOLLOWING THIS, A ROUTE STATEMENT STARTS EXECUTION 
.* OF THE FIRST INSTALLATION JOB. 
.*
.* THE FOLLOWING SAMPLE JOB ILLUSTRATES HOW THIS CAN BE ACCOMPLISHED. 
.* WHILE THIS EXAMPLE SHOWS HOW IT CAN BE DONE VIA A CARD DECK, EXECUTION CAN 
.* ALSO BE ACCOMPLISHED BY CREATING A SIMILAR JOB OR PROCEDURE INTERACTIVELY, 
.* OR THROUGH USE OF O26 AT THE SYSTEM CONSOLE. 
.*
.*          JOB,T7000.
.*             - USER/CHARGE STATEMENTS - 
.*          LABEL,CMLTAPE,F=SI,PO=RU,VSN=CMLVSN,D=PE. 
.*          COPYBF,CMLTAPE,CMLPROC. 
.*          BEGIN,CMLINST,CMLPROC,844,885,2550,67X,580,405,800, 
.*          PAPER85,SYSEDIT,SYSVER=NOS6,
.*          USER=$USER,1234567,PASSWRD,FM.$,
.*          CHARGE=$CHARGE,7654321,CDC.$, 
.*          OPLPFN=OPL,OPLUNID=LIBRARY. 
.*          ROUTE,CML1,DC=IN. 
.*          6/7/8/9 
.*
.* EXAMPLE OF HOW TO GET INTINST (INTERACTIVE INSTALL) STARTED. 
.*
.*          DEFINE,CMLPROC. 
.*          LABEL,CMLTAPE,F=SI,PO=RU,VSN=CMLVSN,D=PE. 
.*          COPYBF,CMLTAPE,CMLPROC. 
.*          -INTINST,CMLPROC. 
.*
.*
.* IN THIS EXAMPLE, THE HARDWARE CONFIGURATION HAS BEEN DEFINED TO INCLUDE
.* 844 AND 885 DISK DRIVES, A 2550 COMMUNICATIONS CONTROLLER, 67X MAGNETIC
.* TAPES, 580 LINE PRINTERS, AND A 405 CARD READER.   THE MAINFRAME IS DEFINED
.* AS A CYBER 170-815/825/835/855 TYPE (800 PARAMETER).  THE SOFTWARE 
.* ENVIRONMENT IS DEFINED AS NOS 2.X (NOS6 PARAMETER).  THE OPERATIONAL 
.* ENVIRONMENT IS DEFINED AS USING 8.5 INCH PRINTER PAPER, A SYSEDIT WILL 
.* BE PERFORMED DURING THE INSTALLATION, THE USER NUMBER, PASSWORD, FAMILY, 
.* CHARGE NUMBER AND PROJECT NUMBER HAVE BEEN SUPPLIED.  THE SYSTEM OPL 
.* (REL1A) IS AVAILABLE TO THE JOB AS PERMANENT FILE "OPL" UNDER THE
.* USER NAME OF "LIBRARY".
.*
.* AFTER EXECUTION OF THIS JOB, ALL THAT IS REQUIRED IS THE MOUNTING
.* AND ASSIGNING OF MAGNETIC TAPES, AND TO ASSIGN A NULL DEVICE IF A SYSEDIT IS 
.* TO BE PERFORMED.  EXECUTION TIME OF THE SAMPLE JOB IS AS FOLLOWS-
.*
.*     NOTE- THE TIME REFLECTS NO OTHER ACTIVITIES ON THE SYSTEM.  TIMES
.*           WILL VARY DEPENDING UPON SPECIFIC SYSTEM CONFIGURATION.
.*
.*           CPU              WALL CLOCK TIME 
.*      -------------       ------------------- 
.*
.*       CYBER 170-825             49 MINUTES 
.*
.* SHOULD ERRORS OCCUR DURING EXECUTION OF ANY OF THE INSTALLATION JOBS,
.* THE SEQUENCE CAN BE RESTARTED BY MANUALLY ROUTING TO THE INPUT QUEUE 
.* THE JOB WHICH FAILED.
.*
.*       EXAMPLE - GET,CML3.
.*                 ROUTE,CML3,DC=IN.
.*
.* CARE MUST BE TAKEN WHEN RESTARTING ANY JOB DUE TO JOB INTERDEPENDENCIES. 
.* IF IN DOUBT, IT IS RECOMMENDED THAT THE ENTIRE SEQUENCE BE RESTARTED.
.* NOTE THAT IF THE PROGRAM LIBRARIES REL1A AND REL2B ARE SAVED AS PERMANENT
.* FILES BY THE JOBS.  ONCE THEY HAVE BEEN SUCCESSFULLY LOADED FROM TAPE, 
.* A RESTART OF THE JOBS WILL USE THE PERMANENT FILES IN LIEU OF RELOADING
.* THEM FROM TAPE.
.*
.* VALIDATION REQUIREMENTS
.* -----------------------
.*
.* EXECUTION OF THE CML INSTALLATION PROCEDURES REQUIRES THE USER TO
.* HAVE THE FOLLOWING MINIMUM VALIDATION LIMITS AND PERMISSIONS.  ALL VALUES
.* ARE BASED ON THE RELEASED DEFAULT VALUES CONTAINED IN COMSACC.  ALL ENTRIES
.* AND NUMERIC VALUES LISTED ARE IN OCTAL NOTATION.  NOT ALL ENTRIES APPLY
.* TO EVERY OPERATING SYSTEM VERSION AND LEVEL.  REFER TO THE SYSTEM
.* MAINTENANCE REFERENCE MANUAL APPLICABLE TO THE SYSTEM LEVEL ON WHICH 
.* THE INSTALLATION IS TO BE PERFORMED FOR SPECIFICS. 
.*
.*       AP=IAF,AP=RBF            USER MUST BE VALIDATED FOR IAF AND/OR 
.*                                RBF IF INSTALLATION IS TO BE ACCOMPLISHED 
.*                                USING INTERACTIVE/BATCH TERMINALS.
.*
.*       AW=CLPF,AW=CSPF,         THE USER MUST BE ABLE TO CREATE DIRECT
.*       AW=CSOJ,AW=CASF,         (CLPF) AND INDIRECT (CSPF) ACCESS PERMANENT 
.*       AW=CAND,AW=CSRP          FILES, ACCESS SYSTEM FILES (CASF), AND REQUEST
.*                                NONALLOCATABLE DEVICES (CAND). IF 
.*                                REL1A (SYSOPL) RESIDES ON AN AUXILIARY
.*                                DEVICE, THE USER MUST BE VALIDATED TO 
.*                                ISSUE AUXILIARY DEVICE COMMANDS (CSRP).  IF 
.*                                A SYSEDIT IS TO BE PERFORMED, THE USER
.*                                MUST ALSO BE VALIDATED FOR SYSTEM ORIGIN
.*                                PRIVILIGES (CSOJ).
.*
.*       CC=77B                   VALIDATION FOR UNLIMITED BATCH COMMAND
.*                                PROCESSING. 
.*
.*       CM=34B                   VALIDATION FOR A MAXIMUM OF 163,700 WORDS 
.*                                OF CENTRAL MEMORY.
.*
.*                                           ****  NOTE  **** 
.*
.*                                   THIS IS THE MAXIMUM AMOUNT OF CENTRAL
.*                                   MEMORY THAT IS ANTICIPATED TO BE 
.*                                   REQUIRED ON A VERY LARGE OPERATING 
.*                                   SYSTEM (MANY PRODUCTS INSTALLED).
.*                                   LESS FIELD LENGTH MAY BE REQUIRED
.*                                   ON SMALLER SYSTEMS.  IF THE USER 
.*                                   MAXIMUM CM VALIDATION IS LESS THAN 
.*                                   THAT INDICATED HERE, THE INSTALLATION
.*                                   JOB CML4 WILL DYNAMICALLY DETERMINE
.*                                   THE MAXIMUM AMOUNT AVAILABLE AND 
.*                                   REQUEST THAT AMOUNT. 
.*
.*       CS=4                     VALIDATION FOR A CUMULATIVE MAXIMUM 
.*                                OF 10,000 PRU'S OF INDIRECT ACCESS
.*                                PERMANENT FILE SPACE. 
.*
.*       DB=7                     VALIDATION FOR UNLIMITED NUMBER OF JOBS 
.*                                TO EXIST CONCURRENTLY IN THE SYSTEM.
.*
.*       DS=6                     VALIDATION FOR AN INDIVIDUAL DIRECT ACCESS
.*                                PERMANENT FILE SIZE OF 100,000 PRU'S. 
.*
.*       FC=7                     VALIDATION FOR AN UNLIMITED NUMBER OF 
.*                                PERMANENT FILES.
.*
.*       FS=6                     VALIDATION FOR A MAXIMUM INDIRECT ACCESS
.*                                PERMANENT FILE SIZE OF 300 PRU'S. 
.*
.*                                          **** NOTE ****
.*
.*                                   THE FS PARAMETER SHOULD NOT BE SET 
.*                                   EQUAL TO 7 AS THIS MAY RESULT IN 
.*                                   INEFFICIENT USE OF SYSTEM RESOURCES. 
.*
.*       LP=77B                   VALIDATION FOR UNLIMITED PRINT OUTPUT.
.*
.*       MS=20B                   VALIDATION FOR A MAXIMUM OF 201,000 
.*                                ADDITIONAL PRU'S THE USER MAY ALLOCATE
.*                                PER JOB.
.*
.*       MT=1                     VALIDATION FOR 1 MAGNETIC TAPE UNIT.
.*
.*       RP=1                     VALIDATION FOR 1 REMOVABLE DISK PACK. 
.*                                (THIS VALIDATION IS REQUIRED ONLY IF
.*                                REL1A (SYSOPL) IS TO BE ACCESSED AND IT 
.*                                RESIDES ON A REMOVABLE DEVICE.
.*
.*       SAV=CULT                 VALIDATION TO ALLOW USER TO WRITE UNLABELED 
.*                                MAGNETIC TAPES.  REQUIRED ONLY ON NOS 2.2 
.*                                AND LATER VERSIONS. 
.*
.*       SL=77B                   VALIDATION FOR UNLIMITED SRU ACCUMULATION.
.*
.*       TL=7                     VALIDATION FOR 7,100 SECONDS OF CPU TIME. 
.*
.*
.* MAGNETIC TAPE/PERMANENT FILE REQUIREMENTS
.* -----------------------------------------
.*
.* THE INSTALLATION JOBS REQUIRE THE FOLLOWING MAGNETIC TAPES, OR THEIR 
.* PERMANENT FILE EQUIVALENTS, TO BE AVAILABLE.  ALL MAGNETIC TAPE REQUESTS 
.* ISSUED BY THE INSTALLATION JOBS CONTAIN A VSN PARAMETER WHICH CAUSES 
.* THE JOB TO BE ROLLED OUT UNTIL THE REQUEST IS SATISFIED.  THE TAPE 
.* REQUESTS CAN THEN BE VIEWED VIA THE "E,P" CONSOLE DISPLAY.  ALL MAGNETIC 
.* TAPES CAN BE MOUNTED AND THE VSN ASSIGNED PRIOR TO INITIATION OF THE 
.* INSTALLATION PROCESS, THUS AVOIDING THE NEED TO USE THE E,P DISPLAY. 
.*
.*  MAGNETIC   PERMANENT   USED 
.*  TAPE VSN      FILE      IN     C O M M E N T S
.*  --------   ---------   ----    ---------------
.*
.*   CMLVSN       N/A      CML1    CML PROGRAM LIBRARY.  TAPE MUST BE 1600
.*                                 BPI, LABELED, SYSTEM INTERNAL FORMAT,
.*                                 WITHOUT THE WRITE ENABLE RING.  PERMANENT
.*                                 FILE "CMLPL" IS CREATED FROM THE UPDATE
.*                                 PROGRAM LIBRARY (FILE 2) FOR USE BY
.*                                 SUBSEQUENT INSTALLATION JOBS.  DEPENDING 
.*                                 UPON SYSTEM CONFIGURATION, VARIOUS OTHER 
.*                                 FILES ARE COPIED FROM THE TAPE AND RETAINED
.*                                 AS PERMANENT FILES.  FILE "CMLPL" MAY
.*                                 BE PURGED WHEN INSTALLATION IS COMPLETE. 
.*
.*  REL1A        USER      CML2    REL1A PROGRAM LIBRARY.  TAPE MUST BE NOS 
.*              DEFINED    CML3    INTERNAL FORMAT, LABELED, WITHOUT THE
.*                OR               THE WRITE ENABLE RING.  THE DEFAULT VSN
.*              SYSOPL             OF "REL1A" AND THE DEFAULT DENSITY OF
.*                                 "1600" MAY BE OVERRIDDEN THROUGH USE OF
.*                                 THE "REL1AVSN" AND "REL1ADEN" PARAMETERS.
.*                                 THE INSTALLATION JOB (CML2 OR CML3) WILL 
.*                                 CREATE RANDOM ACCESS PERMANENT FILE
.*                                 "SYSOPL" FROM THE TAPE, WHICH MAY BE 
.*                                 PURGED WHEN INSTALLATION IS COMPLETE.
.*
.*                                 ONCE PERMANENT FILE "SYSOPL" IS CREATED, 
.*                                 A RE-RUN OF THE CREATING JOB (CML2 OR CML3)
.*                                 WILL DETERMINE THAT THE FILE ALREADY EXISTS
.*                                 AND WILL NOT REQUEST THE TAPE AGAIN. 
.*
.*                                 IF REL1A (FREQUENTLY REFERRED TO AS
.*                                 "SYSOPL" OR "OPL") IS AVAILABLE ON DISK, 
.*                                 IT MAY BE USED IN LIEU OF THE MAGNETIC 
.*                                 TAPE.  IT MUST BE A RANDOM ACCESS PROGRAM
.*                                 LIBRARY FILE IN MODIFY FORMAT.  THE DISK 
.*                                 COPY CAN BE USED BY PASSING THE PERMANENT
.*                                 FILE NAME IN PARAMETER "REL1APFN".  THE
.*                                 DEFAULT USER NAME FOR THIS FILE IS "LIBRARY",
.*                                 WHICH MAY BE CHANGED THROUGH USE OF THE
.*                                 PARAMETER "REL1AUN".  IF A PASSWORD IS 
.*                                 REQUIRED, IT CAN BE PASSED IN PARAMETER
.*                                 "REL1APW".  IF THE FILE EXISTS ON AN 
.*                                 AUXILIARY DEVICE, THE PACKNAME AND DEVICE
.*                                 TYPE ARE PASSED IN PARAMETERS "REL1APAK" 
.*                                 AND "REL1ADT" RESPECTIVELY.  IF "REL1ADT"
.*                                 IS NOT SPECIFIED, THE DEFAULT AUXILIARY
.*                                 DEVICE TYPE DEFINED AT SYSTEM INSTALLATION 
.*                                 WILL BE ASSUMED. 
.*
.*  OLDDST      N/A        CML4    OLD DEADSTART TAPE.  TAPE MUST BE NOS
.*                                 INTERNAL FORMAT, UNLABELED, WITH NO
.*                                 WRITE ENABLE RING.  THE REQUESTED DENSITY
.*                                 IS THE INSTALLATION DEFAULT.  THIS TAPE
.*                                 IS USED AS THE BASE FOR GENERATION OF A NEW
.*                                 DEADSTART TAPE (NEWDST) WHICH WILL CONTAIN 
.*                                 THE CML SOFTWARE.
.*
.*  NEWDST      N/A       CML4     NEW DEADSTART TAPE.  THE TAPE IS WRITTEN 
.*                                 IN NOS INTERNAL FORMAT AT THE INSTALLATION 
.*                                 DEFINED DEFAULT DENSITY.  THE TAPE MUST
.*                                 BE UNLABELED AND HAVE A WRITE ENABLE RING
.*                                 INSTALLED. 
.*
.* JOB CML4 ISSUES A DUMMY REQUEST FOR LFN "S".  THIS REQUEST IS SIMPLY A 
.* WARNING TO THE OPERATOR OF AN IMPENDING "SYSEDIT", AND TO ALLOW THE
.* NETWORK TO BE DROPPED AND THE SYSTEM PLACED IN "DEBUG" MODE.  WHEN THIS
.* HAS BEEN ACCOMPLISHED, THE REQUEST CAN BE ASSIGNED TO A DISK OR A NULL 
.* DEVICE.
.*
.* PERMANENT FILE CLEANUP 
.* ---------------------- 
.*
.* THE FOLLOWING PERMANENT FILES MAY BE PURGED AFTER CML INSTALLATION IS
.* COMPLETE.
.*
.*   CMLPL    CMLINST  SYSOPL   DIAGLIB 
.*   CML1     CML2     CML3     CML4
.*   CML5     CML6     HPTEXT 
.*
.* LOCAL MODIFICATIONS AND INCORPORATION OF CORRECTIVE CODE 
.* ---------------------------------------------------------
.*
.* LOCAL MODIFICATIONS OR CORRECTIVE CODE CAN BE INCLUDED IN ANY OF 
.* THE ASSEMBLED/COMPILED BINARIES.  THE MODIFICATIONS MUST BE
.* CORRECTION SETS IN UPDATE FORMAT AND EXIST ON INDIRECT ACCESS
.* PERMANENT FILES ACCORDING TO THE FOLLOWING TABLE.  THE FILES MUST
.* RESIDE UNDER THE USER'S USER INDEX.
.*
.*     MODIFICATIONS TO         MUST RESIDE ON
.*     ----------------         --------------
.*
.*      CMLINST                   INSTMDS 
.*      MLD/WLD/SBP               MLDMODS 
.*      MALET                     MALMODS 
.*      HPA                       HPAMODS 
.*      REGEN                     REGMODS 
.*      TIO                       TIOMODS 
.*      SKEDULR                   SKEDMDS 
.*      MLTDOC                    MLTMODS 
.*      MCCOMP                    MCCMODS 
.*      MCDUMP                    MCDMODS 
.*      MTPLOT                    MTPMODS 
.*      DSPLOT                    DSPMODS 
.*      DKDATA                    DKDMODS 
.*      HPTEXT                    HPTMODS 
.*
.*     (MALET DIAGNOSTICS)
.*
.*               ATC              ATCMODS 
.*               BCX              BCXMODS 
.*               CCM              CCMMODS 
.*               CIU              CIUMODS 
.*               CLM              CLMMODS 
.*               CPE              CPEMODS 
.*               CP1              CP1MODS 
.*               CRE              CREMODS 
.*               CRP              CRPMODS 
.*               CR1              CR1MODS 
.*               DFU              DFUMODS 
.*               DMA              DMAMODS 
.*               DM8              DM8MODS 
.*               DTC              DTCMODS 
.*               DTI              DTIMODS 
.*               D44              D44MODS 
.*               D88/DH8/DL8      D88MODS 
.*               ELR              ELRMODS 
.*               FEP              FEPMODS 
.*               FFU              FFUMODS 
.*               FLM              FLMMODS 
.*               FHC              FHCMODS 
.*               FMC              FMCMODS 
.*               FMD/FHD/FLD      FMDMODS 
.*               FMU              FMUMODS 
.*               FSD              FSDMODS 
.*               FSM              FSMMODS 
.*               FTP              FTPMODS 
.*               F44              F44MODS 
.*               F7X              F7XMODS 
.*               F88              F88MODS 
.*               IDA              IDAMODS 
.*               IDT              IDTMODS 
.*               IST              ISTMODS 
.*               ITU              ITUMODS 
.*               LCI              LCIMODS 
.*               LCM              LCMMODS 
.*               LCN              LCNMODS 
.*               LPE              LPEMODS 
.*               LP1              LP1MODS 
.*               MSD              MSDMODS 
.*               MSM              MSMMODS 
.*               MY8              MY8MODS 
.*               NIP              NIPMODS 
.*               NLM              NLMMODS 
.*               PDP              PDPMODS 
.*               RT3              RT3MODS 
.*               RT5              RT5MODS 
.*               TCT              TCTMODS 
.*               TFE              TFEMODS 
.*               TFF              TFFMODS 
.*               TFL              TFLMODS 
.*               TT3              TT3MODS 
.*               T5X              T5XMODS 
.*               T6X              T6XMODS 
.*               T7X              T7XMODS 
.*
.* PARAMETERS 
.* ---------- 
.* THE PARAMETERS PASSED TO THE PROCEDURES MUST COMFORM TO THE SPECIFIC 
.* FORMATS AS INDICATED BELOW.
.*
.*       FORMAT              APPLIES TO 
.*    -------------      -------------------------------------- 
.*
.*      KEYWORD           ALL HARDWARE CONFIGURATION PARAMETERS 
*IF,DEF,DEBUG,1 
.*                        EXECUTE 
.*                        HPSORT
.*                        MMF 
.*                        NOTSECURE 
.*                        PAPER85 
.*                        SYSEDIT 
.*                        8LPI
.*
.*   KEYWORD=VALUE        MALDOC
.*                        REL1ADT    (OPLDTSET) 
.*                        REL1ADEN   (OPLDEN)   NOTE- IF PROCEDURE CMLINST IS 
.*                        REL1APAK   (OPLPAK)         CALLED, USE THE KEYWORD 
.*                        REL1APFN   (OPLPFN)         INDICATED IN PARENTHESES
.*                        REL1APW    (OPLPW)          (OPL....).  IF PROCEDURE
.*                        REL1AUN    (OPLUNID)        "CML" IS CALLED DIRECTLY
.*                        REL1AVSN   (OPLVSN)         BY THE INSTALLER, USE THE 
.*                        SYSVER                      APPROPRIATE "REL1A..."
.*                                                    KEYWORD TO PASS PARAM-
.*   KEYWORD=$VALUE$      CHARGE                      ETERS.
.*                        USER
.*
.*
.* FOLLOWING IS A DESCRIPTION OF THE PARAMETERS USED IN THESE 
.* PROCEDURES.
.*
.* HARDWARE CONFIGURATION PARAMETERS
.* ---------------------------------
.*
.*
.*    PARAMETER         USED IN 
.*      NAME           PROCEDURE            FUNCTION
.*   -----------      -----------     ------------------------------
.*
.*    CYBERPLUS          CML5         SPECIFIES THAT CYBERPLUS HARDWARE 
.*                                    (CYBER RING PORT) IS INCLUDED IN
.*                                    THE CONFIGURATION.  CAUSES MALET
.*                                    DIAGNOSTICS CRP AND DMA TO BE 
.*                                    COMPILED. 
.*
.*     DEMA            CML2,CML5      SPECIFIES THAT DEMA HARDWARE IS 
.*                                    INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTICS FHD, FHC,
.*                                    DH8, FEP, AND FMU TO BE COMPILED. 
.*                                    ALSO CAUSES DETAIL STATUS ANALYSIS
.*                                    TABLES FOR 885'S TO BE INCLUDED IN
.*                                    HPA.
.*
.*     ESM               CML5         SPECIFIES THAT ESM HARDWARE IS
.*                                    INCLUDED IN THE CONFIGURATION.
.*                                    IF SYSVER IS EITHER NOS4 OR 
.*                                    NOS5, CAUSES MALET DIAGNOSTIC 
.*                                    ELR TO BE COMPILED. 
.*
.*     FSCDISK           CML1,CML5    SPECIFIES THAT A FEDERAL STANDARD 
.*                                    CHANNEL DRIVING DISKS IS INCLUDED 
.*                                    IN THE CONFIGURATION.  CAUSES 
.*                                    MALET DIAGNOSTICS F44, F88, FLM,
.*                                    AND FFU TO BE COMPILED. 
.*                                    ALSO, NAD DIAGNOSTICS NDM AND NDP 
.*                                    ARE LOADED FROM THE CML TAPE
.*                                    AND SAVED BY CML1.
.*
.*     FSCTAPE          CML1,CML5     SPECIFIES THAT A FEDERAL STANDARD 
.*                                    CHANNEL DRIVING TAPE DRIVES IS
.*                                    INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTICS F7X, 
.*                                    FLM, AND FSM TO BE COMPILED.
.*                                    ALSO, NAD DIAGNOSTICS NDM AND NDP 
.*                                    ARE LOADED FROM THE CML TAPE
.*                                    AND SAVED BY CML1.
.*
.*     IPIDISK           CML5         SPECIFIES THAT A DAS DISK 
.*                                    SUBSYSTEM OR 9853 DISK
.*                                    SUBSYSTEM IS INCLUDED IN
.*                                    THE CONFIGURATION. CAUSES 
.*                                    MALET DIAGNOSTIC IDA AND
.*                                    IDT TO BE COMPILED. 
.*
.*     LCN               CML1,CML5    SPECIFIES THAT LCN IS INCLUDED
.*                                    IN THE HARDWARE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTICS LCI, LCN,
.*                                    LCM, AND NLM TO BE COMPILED.
.*                                    ALSO CAUSES CML1 TO LOAD
.*                                    NDM, NDP, AND NDT FROM THE
.*                                    CML TAPE AND SAVE THEM. 
.*
.*     PLATO             CML5         SPECIFIES THAT THE SYSTEM IS
.*                                    RUNNING PLATO, AND CAUSES MALET 
.*                                    DIAGNOSTIC CIU TO BE COMPILED.
.*
.*     CARTAPE           CML1,CML5    SPECIFIES THAT A CYBER CHANNEL
.*                                    COUPLER AND 5680 CARTRIDGE TAPE 
.*                                    ARE INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTICS TCT, CCM 
.*                                    AND CLM TO BE COMPILED. ALSO, NAD 
.*                                    DIAGNOSTICS NDM AND NDP ARE LOADED
.*                                    FROM THE CML TAPE AND SAVED BY
.*                                    CML1. 
.*                                    ************** NOTE **************
.*                                    IF MASSTOR AND CYBER CHANNEL
.*                                    COUPLER ARE INCLUDED IN THE 
.*                                    CONFIGURATION USE CARTAPE AS ALL
.*                                    MALET AND NAD DIAGNOSTICS NEEDED
.*                                    WILL BE LOADED AND SAVED. 
.*
.*     UNIBUS            CML5         SPECIFIES THAT A CYBER/UNIBUS 
.*                                    INTERFACE AND DEC PDP11 ARE 
.*                                    INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTIC PDP 
.*                                    TO BE COMPILED. 
.*
.*     STORNET           CML5         SPECIFIES THAT A STORNET OR 
.*                                    ESM II SUBSYSTEM ARE INCLUDED 
.*                                    IN THE CONFIGURATION. CAUSES
.*                                    MALET DIAGNOSTICS MSD AND MSM 
.*                                    TO BE COMPILED. 
.*
.*     405               CML1,CML5    SPECIFIES THAT A 405 CARD READER
.*                                    IS INCLUDED IN THE CONFIGURATION. 
.*                                    CAUSES MALET DIAGNOSTICS CRE AND
.*                                    CR1 TO BE COMPILED.  ALSO CAUSES
.*                                    CML1 TO LOAD AND SAVE CR1SCR FROM 
.*                                    THE CML TAPE. 
.*
.*     415               CML5         SPECIFIES THAT A 415 CARD PUNCH 
.*                                    IS INCLUDED IN THE CONFIGURATION. 
.*                                    CAUSES MALET DIAGNOSTICS CPE AND
.*                                    CP1 TO BE COMPILED. 
.*
.*     512580            CML5         SPECIFIES THAT A 512 OR 580 LINE
.*                                    PRINTER IS INCLUDED IN THE
.*                                    CONFIGURATION. CAUSES MALET 
.*                                    DIAGNOSTICS FTP, LPE AND LP1
.*                                    TO BE COMPILED. 
.*
.*     65X               CML5         SPECIFIES THAT A 60X OR 65X MAGNETIC
.*                                    TAPE SUBSYSTEM IS INCLUDED IN THE 
.*                                    CONFIGURATION.  CAUSES MALET
.*                                    DIAGNOSTIC T5X TO BE COMPILED.
.*
.*     66X               CML2,CML5    SPECIFIES THAT A 66X MAGNETIC TAPE
.*                       CML1         SUBSYSTEM IS INCLUDED IN THE
.*                                    CONFIGURATION.  CAUSES THE DETAIL 
.*                                    STATUS ANALYSIS TABLES FOR 66X TO BE
.*                                    INCLUDED IN HPA, AND MALET
.*                                    DIAGNOSTICS T6X, BCX, AND MY8 TO
.*                                    BE COMPILED.  ALSO CAUSES BCXBC 
.*                                    AND MY8BC TO BE LOADED FROM THE 
.*                                    CML TAPE AND SAVED BY CML1. 
.*
.*     67X               CML5         SPECIFIES THAT A 67X MAGNETIC TAPE
.*                                    SUBSYSTEM IS INCLUDED IN THE
.*                                    CONFIGURATON.  CAUSES THE DETAIL
.*                                    STATUS ANALYSIS TABLES FOR 67X
.*                                    TO BE INCLUDED IN HPA, AND CAUSES 
.*                                    MALET DIAGNOSTICS T7X AND ATC TO
.*                                    BE COMPILED.
.*
.*     639               CML5         SPECIFIES THAT A 639 MAGNETIC TAPE
.*                                    SUBSYSTEM IS INCLUDED IN THE SYSTEM 
.*                                    CONFIGURATION.  CAUSES MALET UTILITY
.*                                    ITU AND MALET DIAGNOSTIC IST TO BE
.*                                    LOADED AND SAVED. 
.*
.*     698               CML1,CML5    SPECIFIES THAT 698 TAPE DRIVES AND
.*                                    CYBER CHANNEL COUPLER ARE INCLUDED
.*                                    IN THE CONFIGURATION.  CAUSES 
.*                                    MALET DIAGNOSTICS T7X, CCM, AND 
.*                                    CLM TO BE COMPILED. ALSO, NAD 
.*                                    DIAGNOSTICS NDM AND NDP ARE 
.*                                    LOADED FROM THE CML TAPE AND
.*                                    SAVED BY CML1.
.*
.*     800               CML6         SPECIFIES THAT A CYBER 170-800 SERIES 
.*                                    SYSTEM (EXCEPT 865/875) IS INCLUDED IN
.*                                    THE CONFIGURATION.  CAUSES MICROCODE
.*                                    UTILITIES MCCOMP AND MCDUMP TO BE COMPILED
.*                                    AND RETAINED AS PERMANENT FILES.
.*
.*
.*     83X               CML5         SPECIFIES THAT 834(ISDI) OR 836(ISDII)
.*                                    DISK DRIVES ARE INCLUDED IN THE 
.*                                    CONFIGURATION. CAUSES MALET DIAGNOSTICS 
.*                                    FSD, DTI AND DFU TO BE COMPILED.
.*
.*     844               CML2,CML5    SPECIFIES THAT 844 DISK DRIVES
.*                                    ARE INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES THE DETAIL STATUS ANALYSIS 
.*                                    TABLES FOR 844'S TO BE INCLUDED IN
.*                                    HPA, AND MALET DIAGNOSTIC D44 
.*                                    TO BE COMPILED. 
.*                                    IF 7155 IS ALSO DEFINED, MALET
.*                                    DIAGNOSTIC DTC IS ALSO COMPILED.
.*
.*     885               CML2,CML5    SPECIFIES THAT 885 DISK DRIVES
.*                                    (SERIAL, SMALL SECTOR DISKS)
.*                                    ARE INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES THE DETAIL STATUS ANALYSIS 
.*                                    TABLES FOR 885'S TO BE INCLUDED 
.*                                    IN HPA, AND MALET DIAGNOSTICS 
.*                                    D88, FMC, FMD, AND FMU TO BE
.*                                    COMPILED. 
.*
.*     885LS             CML5         SPECIFIES THAT LARGE SECTOR 
.*                                    885 DISK DRIVES ARE INCLUDED
.*                                    IN THE CONFIGURATION.  CAUSES 
.*                                    MALET DIAGNOSTICS DL8 AND FLD 
.*                                    TO BE LOADED/COMPILED.  CAUSES
.*                                    FMC AND FMU TO BE LOADED/COMPILED 
.*                                    IF NOT DONE THROUGH USE OF OTHER
.*                                    HARDWARE PARAMETERS.
.*
.*     895               CML1,CML5    SPECIFIES THAT AN 895 DISK AND A
.*                                    CYBER CHANNEL COUPLER ARE INCLUDED
.*                                    IN THE CONFIGURATION.  CAUSES 
.*                                    MALET DIAGNOSTICS DFU, DM8, DTI,
.*                                    CCM, AND CLM TO BE COMPILED. ALSO 
.*                                    NAD DIAGNOSTICS NDM AND NDP ARE 
.*                                    LOADED FROM THE CML TAPE  AND 
.*                                    SAVED BY CML1.
.*
.*     2550              CML1,CML5    SPECIFIES THAT A 2550 COMMUNICATIONS
.*                                    CONTROLLER IS INCLUDED IN THE 
.*                                    CONFIGURATION.  CAUSES MALET
.*                                    DIAGNOSTICS TFF AND TFL TO BE 
.*                                    COMPILED.  ALSO, THE ODS DIAG-
.*                                    NOSTICS WILL BE LOADED FROM THE 
.*                                    CML TAPE AND SAVED BY CML1. 
.*
.*     2550100           CML5         SPECIFIES THAT A 2550-100 
.*                                    COMMUNICATIONS CONTROLLER IS
.*                                    INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTIC TFE TO
.*                                    BE COMPILED.
.*
.*     5X70              CML1,CML5    SPECIFIES THAT A CYBER CHANNEL
.*                                    COUPLER AND 5870 OR 5970 NON- 
.*                                    IMPACT PRINTER ARE INCLUDED IN
.*                                    THE CONFIGURATION. CAUSES MALET 
.*                                    DIAGNOSTICS NIP,CCM AND CLM 
.*                                    TO BE COMPILED. ALSO, NAD 
.*                                    DIAGNOSTICS NDM AND NDP ARE 
.*                                    LOADED FROM THE CML TAPE AND
.*                                    ARE SAVED BY CML1.
.*
.*     667X              CML5         SPECIFIES THAT EITHER A 6671, 
.*                                    6673/6674, OR 6676 MULTIPLEXOR
.*                                    IS INCLUDED IN THE CONFIGURATION. 
.*                                    CAUSES MALET DIAGNOSTICS TT3, 
.*                                    RT3, AND RT5 TO BE COMPILED.
.*
.*     7X54              CML1,CML5    SPECIFIES THAT EITHER A 7054, 
.*                                    7154, OR 7152 CONTROLLER IS 
.*                                    INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTICS BCX AND
.*                                    MY8 TO BE COMPILED.  ALSO, BCXBC
.*                                    AND MY8BC WILL BE LOADED FROM 
.*                                    THE CML TAPE AND SAVED BY CML1. 
.*
.*     7155              CML5         SPECIFIES THAT A 7155 DISK
.*                                    CONTROLLER IS INCLUDED IN THE 
.*                                    CONFIGURATION.  THIS PARAMETER
.*                                    IS ONLY REQUIRED WHEN 844 DISK
.*                                    DRIVES ARE CONNECTED TO THE 
.*                                    7155 CONTROLLER.  IF BOTH 844 
.*                                    7155 ARE DEFINED, MALET DIAGNOSTIC
.*                                    DTC WILL BE COMPILED, IN ADDITION 
.*                                    TO FMD, FMC, AND FMU. 
.*
.*     7155C             CML5         SPECIFIES THAT A 7155C DISK 
.*                                    CONTROLLER IS INCLUDED IN THE 
.*                                    CONFIGURATION.  THIS PARAMETER
.*                                    IS REQUIRED WHEN A 7155C TYPE 
.*                                    CONTROLLER IS USED AND DEMA IS
.*                                    NOT DEFINED, MALET DIAGNOSTIC 
.*                                    FHC WILL BE COMPILED. 
.*
.* SOFTWARE/OPERATIONAL ENVIRONMENT PARAMETERS
.* -------------------------------------------
.*
.* KEYWORDS IN PARENTHESES (OPL...) MUST BE USED IF PROCEDURE "CML" IS
.* CALLED THROUGH USE OF THE PROCEDURE "CMLINST".  IF PROCEDURE "CML" IS
.* CALLED DIRECTLY BY THE INSTALLER, THE "REL1A..." FORM OF THE KEYWORD 
.* MUST BE USED.
.*
.*    KEYWORD           USED IN 
.*      NAME           PROCEDURE            FUNCTION
.*   -----------      -----------     ------------------------------
.*
.*     CHARGE         CML1,CML2       CHARGE STATEMENT IMAGE.  PARAMETER
.*                    CML3,CML4       MUST BE PASSED AS A LITERAL 
.*                    CML5,CML5A      (ENCLOSED IN $...$).  PARAMETER 
.*                    CML6            REQUIRED ONLY IF SYSTEM REQUIRES
.*                                    CHARGE NUMBERS.  DEFAULT= 
.*                                    COMMENT.-NO CHARGE NUMBER SUPPLIED- 
.*
*IF,DEF,DEBUG,26
.*     EXECUTE        CML1,CML2,      IF KEYWORD "EXECUTE" IS PASSED
.*                    CML3,CML4       THE INSTALLATION JOBS WILL BE 
.*                    CML5,CML6       SAVED AS INDIRECT ACCESS
.*                                    PERMANENT FILES, WHICH ARE THEN 
.*                                    READY FOR EXECUTION.  IF THE
.*                                    KEYWORD IS NOT PASSED, THE JOBS 
.*                                    THE JOBS ARE NOT MADE PERMANENT.
.*
.*                      CML5A         IF NOT SPECIFIED, JOB CML5 WILL 
.*                                    EXECUTE AND CREATE MALET
.*                                    DIAGNOSTIC COMPILATION JOBS.
.*                                    THESE CREATED JOBS WILL NOT BE
.*                                    EXECUTED, BUT WILL BE AVAILABLE 
.*                                    FOR PRINTING AND INSPECTION.
.*                                    IF KEYWORD IS SPECIFIED,
.*                                    PROCEDURE CML5A WILL ROUTE THE
.*                                    CREATED JOB TO INPUT. 
.*
.*                                    THIS PARAMETER IS USED ONLY 
.*                                    IN DEVELOPING AND MAINTAINING 
.*                                    THE INSTALLATION PROCEDURES.
.*                                    A DIRECTIVE OF "*DEFINE,DEBUG" IS 
.*                                    REQUIRED DURING THE UPDATE OF 
.*                                    DECK "CMLINST" IN ORDER FOR 
.*                                    THIS PARAMETER TO BE EFFECTIVE. 
.*
.*     HPSORT          CML2           KEYWORD PASSED TO EVOKE THE INTERNAL
.*                                    HPA SORT ROUTINE IN LIEU OF 
.*                                    SORT/MERGE 5. 
.*                                    OMITTED = USE SORT/MERGE 5
.*                                              (RECOMMENDED) 
.*                                    SPECIFIED = USE INTERNAL HPA SORT 
.*                                               (RECOMMENDED ONLY IF 
.*                                               SORT/MERGE 5 IS NOT
.*                                               AVAILABLE.)
.*
.*     MALDOC            CML5,CML5A   TYPE OF HARDCOPY DOCUMENTATION
.*                                    DESIRED FOR COMPILED MALET
.*                                    DIAGNOSTICS.
.*                                    DEFAULT=NONE
.*
.*                                    LEGAL VALUES- 
.*
.*                                    NONE = NO DOCUMENTATION PRODUCED
.*                                           (DEFAULT)
.*                                    EXT  = EXTERNAL DOCUMENTATION 
.*                                           PRODUCED 
.*                                    INT  = INTERNAL DOCUMENTATION 
.*                                           PRODUCED 
.*                                    BOTH = BOTH INTERNAL AND EXTERNAL 
.*                                           DOCUMENTATION PRODUCED 
.*
.*     MMF               CML6         KEYWORD PASSED TO CAUSE SKEDULR 
.*                                    TO BE ASSEMBLED FOR USE IN A
.*                                    MULTIMAINFRAME ENVIRONMENT. 
.*                                    OMITTED= SKEDULR ASSEMBLED FOR
.*                                    USE IN SINGLE OR NON-SHARED 
.*                                    MAINFRAME ENVIRONMENT.
.*
.*     NOTSECURE        CML3          KEYWORD PASSED TO EVOKE A 
.*                                    "*YANK,SECURE" DIRECTIVE
.*                                    DURING THE UPDATE OF MLD. 
.*                                    THIS ALTERS THE MALET MASS
.*                                    STORAGE ACCESS LEVEL CAPABILITIES.
.*                                    OMITTED = *DEFINE,SECURE
.*                                    (RECOMMENDED) 
.*                                    SPECIFIED=*YANK,SECURE
.*                                    (NOT RECOMMENDED) 
.*
.*     PAPER85           CML2         KEYWORD PASSED TO CAUSE MALET TO
.*                                    BE ASSEMBLED FOR USE WITH 8.5 
.*                                    INCH PRINTER PAPER.  OMITTED= 
.*                                    MALET ASSEMBLED FOR USE WITH
.*                                    STANDARD 11 INCH PRINTER PAPER. 
.*
.*     REL1ADEN          CML2,CML3    DENSITY OF THE REL1A MAGNETIC 
.*     (OPLDEN)          CML6,GETOPL  TAPE. 
.*
.*                                    LEGAL VALUES- 
.*
.*                                    6250 OR GE = 9 TRK GCR
.*                                    1600 OR PE = 9 TRK PHASE
.*                                     800 OR HD = 9 TRK NRZI 
.*                                            HY = 7 TRK NRZI (800 BPI) 
.*
.*                                    DEFAULT = PE
.*
.*     REL1ADT           CML2,CML3    THE DEVICE TYPE ON WHICH REL1APFN 
.*     (OPLDTSET)        CML6,GETOPL  RESIDES IF ON A REMOVABLE DEVICE, 
.*                                    AND THE DEVICE TYPE IS OTHER THAN 
.*                                    THE INSTALLATION DEFINED DEFAULT. 
.*                                    THIS PARAMETER IS NOT REQUIRED IF 
.*                                    IF REL1APFN IS ON A NON-REMOVABLE 
.*                                    DEVICE. 
.*
.*                                    OMITTED - THE INSTALLATION DEFINED
.*                                              DEFAULT IS ASSUMED. 
.*
.*                                    LEGAL VALUES - DB   DG   DK   DQ
.*                                                   DC   DI   DL   DV
.*                                                   DD   DJ   DM   DW
.*
.*     REL1APAK          CML2,CML3    REMOVABLE PACK ON WHICH REL1APFN
.*     (OPLPAK)          CML6,GETOPL  RESIDES.  THIS KEYWORD IS NOT 
.*                                    REQUIRED IF FILE IS ON A NON- 
.*                                    REMOVABLE DEVICE. 
.*
.*                                    OMITTED = REL1APFN ON NON-REMOVABLE 
.*                                              DEVICE. 
.*
.*     REL1APFN          CML2,CML3    PERMANENT FILE NAME OF REL1A
.*     (OPLPFN)          CML6,GETOPL  (SYSOPL) PROGRAM LIBRARY, IF
.*                                    ONE EXISTS.  IF PASSED, THE 
.*                                    SPECIFIED COPY WILL BE USED,
.*                                    AND PARAMETERS REL1AUN, REL1APAK, 
.*                                    AND REL1APW WILL BE USED IF 
.*                                    SPECIFIED.  OTHERWISE, REL1A
.*                                    WILL BE LOADED FROM TAPE AND
.*                                    SAVED ON DIRECT ACCESS PERM FILE
.*                                    "SYSOPL" UNDER THE USER'S USER
.*                                    INDEX.  PROCEDURE "GETOPL" IS USED
.*                                    TO ACCESS/CREATE THIS FILE. 
.*
.*                                    OMITTED = LOAD REL1A FROM TAPE. 
.*
.*     REL1APW           CML2,CML3    PASSWORD USED FOR READ ACCESS TO
.*     (OPLPW)           CML6,GETOPL  REL1APFN.  THIS KEYWORD IS NOT
.*                                    REQUIRED IF A PASSWORD NOT USED.
.*
.*                                    OMITTED = PASSWORD NOT REQUIRED TO
.*                                    ACCESS REL1ADEN.
.*
.*     REL1AUN           CML2,CML3    USER NUMBER OF THE PERMANENT FILE 
.*     (OPLUNID)         CML6,GETOPL  NAME PASSED IN REL1APFN.
.*
.*                       DEFAULT = NONE, REQUIRED PARAMETER IF "REL1APFN" 
.*                                 SPECIFIED. 
.*
.*     REL1AVSN          CML2,CML3    THE VSN OF THE REL1A MAGNETIC TAPE
.*     (OPLVSN)          CML6,GETOPL  PROGRAM LIBRARY.  THIS KEYWORD IS 
.*                                    NOT REQUIRED IF A PERMANENT FILE
.*                                    NAME IS PASSED IN REL1APFN. 
.*
.*                                    DEFAULT = REL1A 
.*
.*     SYSEDIT        CML4,CML5       KEYWORD SPECIFIED IF A SYSEDIT
.*                    CML5A           IS TO BE PERFORMED BY CML4. 
.*
.*                                    IF NOT SPECIFIED, CML4 WILL CREATE
.*                                    A PERMANENT FILE COPY OF THE
.*                                    COMPILER FOR USE BY THE JOBS
.*                                    CREATED BY CML5A.  IF THE 
.*                                    KEYWORD IS NOT SPECIFIED, CML5A 
.*                                    WILL USE MALET FROM THE SYSTEM
.*                                    LIBRARY AFTER THE SYSEDIT IS
.*                                    PERFORMED.
.*
.*     SYSVER            CML2,CML3    SYSTEM VERSION NUMBER.  USED BY 
.*                       CML5,CML6    CML2, CML3, AND CML6 IN ASSEMBLY
.*                                    OF MLD, WLD, SBP, MALET, AND
.*                                    SKEDULR.
.*
.*                                    USED BY CML5 TO DETERMINE THE 
.*                                    NEED FOR MALET DIAGNOSTIC ELR.
.*
.*                                    DEFAULT = NONE, REQUIRED PARAMETER
.*
.*                                    LEGAL VALUES- 
.*
.*                                    NOS27= NOS 2.7
.*                                    NOS26= NOS 2.6
.*                                    NOS25= NOS 2.5
.*                                    NOS24= NOS 2.4
.*                                    NOS23= NOS 2.3
.*                                    NOS6 = NOS 2.0 / NOS 2.1 / NOS 2.2
.*                                    NOS5 = NOS 1.4
.*                                    NOS4 = NOS 1.3
.*
.*     USER              CML1,CML2    USER STATEMENT IMAGE.  PARAMETER
.*                       CML3,CML4    MUST BE PASSED AS A LITERAL 
.*                       CML5,CML5A   (ENCLOSED IN $...$).  PARAMETER 
.*                       CML6         IS REQUIRED UNLESS THE CREATED
.*                                    JOBS ARE MANUALLY MODIFIED TO 
.*                                    INCLUDE "SUI" STATEMENTS IN THE JOB 
.*                                    STREAM.  OMITTED =
.*                                    COMMENT. - NO USER NUMBER SUPPLIED -
.*
.*     8LPI              CML2         KEYWORD PASSED TO CAUSE MALET TO
.*                                    BE ASSEMBLED TO USE A PRINT DENSITY 
.*                                    OF 8 LINES PER INCH.  OMITTED=
.*                                    MALET ASSEMBLED FOR PRINT DENSITY 
.*                                    OF 6 LINES PER INCH.
.*
.* ---------------- END OF GENERAL DOCUMENTATION ---------------------------- 
.*
.*
.*    STEP 1 - CHECK THE SYSTEM VERSION (SYSVER), MALDOC, AND REL1ADEN
.*    FOR LEGAL VALUES.  IF ILLEGAL VALUE, ABORT; ELSE GO TO STEP 2.
.*
REWIND,CMLJOBS. 
*IF,DEF,DEBUG,1 
REWIND,MALJOBS. 
IFE,$SYSVER$.EQ.$$,STEP1A.
REVERT,ABORT. - #SYSVER NOT SPECIFIED - 
ENDIF,STEP1A. 
.*
.* INSERT NEW SYSVER CHECKS AFTER THIS COMMENT. 
.*
IFE,$SYSVER$.NE.$NOS27$,STEP1B. 
IFE,$SYSVER$.NE.$NOS26$,STEP1B. 
IFE,$SYSVER$.NE.$NOS25$,STEP1B. 
IFE,$SYSVER$.NE.$NOS24$,STEP1B. 
IFE,$SYSVER$.NE.$NOS23$,STEP1B. 
IFE,$SYSVER$.NE.$NOS6$,STEP1B.
IFE,$SYSVER$.NE.$NOS5$,STEP1B.
IFE,$SYSVER$.NE.$NOS4$,STEP1B.
REVERT,ABORT. - #SYSVER OF SYSVER ILLEGAL - 
ENDIF,STEP1B. 
.*
.*    CHECK REL1ADEN FOR LEGAL VALUES 
.*
IFE,$REL1ADEN$.NE.$$,STEP1C.
IFE,$REL1ADEN$.NE.$6250$,STEP1C.
IFE,$REL1ADEN$.NE.$GE$,STEP1C.
IFE,$REL1ADEN$.NE.$1600$,STEP1C.
IFE,$REL1ADEN$.NE.$PE$,STEP1C.
IFE,$REL1ADEN$.NE.$#800$,STEP1C.
IFE,$REL1ADEN$.NE.$HD$,STEP1C.
IFE,$REL1ADEN$.NE.$HY$,STEP1C.
REVERT,ABORT. - #REL1ADEN (OPLDEN) OF REL1ADEN IS ILLEGAL - 
ENDIF,STEP1C. 
.*
.*    IF DEVICE TYPE IS SPECIFIED, ENSURE IT IS A LEGAL VALUE.
.*
IFE,$REL1ADT$.NE.$$,STEP1D. 
IFE,$REL1ADT$.NE.$DB$,STEP1D. 
IFE,$REL1ADT$.NE.$DC$,STEP1D. 
IFE,$REL1ADT$.NE.$DD$,STEP1D. 
IFE,$REL1ADT$.NE.$DG$,STEP1D. 
IFE,$REL1ADT$.NE.$DI$,STEP1D. 
IFE,$REL1ADT$.NE.$DJ$,STEP1D. 
IFE,$REL1ADT$.NE.$DK$,STEP1D. 
IFE,$REL1ADT$.NE.$DL$,STEP1D. 
IFE,$REL1ADT$.NE.$DM$,STEP1D. 
IFE,$REL1ADT$.NE.$DQ$,STEP1D. 
IFE,$REL1ADT$.NE.$DV$,STEP1D. 
IFE,$REL1ADT$.NE.$DW$,STEP1D. 
REVERT,ABORT. - #REL1ADT (OPLDTSET) OF "REL1ADT" IS ILLEGAL - 
ENDIF,STEP1D. 
.*
.*    IF "REL1APFN" IS SPECIFIED, ENSURE "REL1AUN" IS ALSO SPECIFIED. 
.*
IFE,$REL1APFN$.NE.$$,STEP1E.
IFE,$REL1AUN$.EQ.$$,STEP1E. 
REVERT,ABORT. - #REL1AUN (OPLUNID) MUST BE SPECIFIED -
ENDIF,STEP1E. 
.*
.*    CHECK MALDOC FOR LEGAL VALUES.
.*
IFE,$MALDOC$.NE.$$,STEP2. 
IFE,$MALDOC$.NE.$NONE$,STEP2. 
IFE,$MALDOC$.NE.$EXT$,STEP2.
IFE,$MALDOC$.NE.$INT$,STEP2.
IFE,$MALDOC$.NE.$BOTH$,STEP2. 
REVERT,ABORT. - #MALDOC OF MALDOC IS ILLEGAL -
ENDIF,STEP2.
.*
*IF,DEF,DEBUG,10
.*    STEP 2 - CALL EACH OF THE CML INSTALLATION PROCEDURES (CML1,2,3,4,5,
.*    AND 6) TO GENERATE THE INSTALLATION JOBS.  IF EXECUTE IS DEFINED, SAVE
.*    EACH JOB AS A PERMANENT FILE.  IF EXECUTE IS NOT DEFINED, THE JOBS
.*    WILL REMAIN LOCAL FILES, AND CML5 WILL BE EXECUTED.  THIS WILL
.*    ALLOW THE USER TO CHECK THE FLOW THROUGH CML5 WITH VARIOUS
.*    CONFIGURATION PARAMETER SETS.  UPON COMPLETION, ALL CREATED CML 
.*    INSTALLATION JOBS (CML1,2,3,4,5 AND 6) WILL RESIDE ON LIST FILE 
.*    "CMLJOBS".  ALL GENERATED MALET DIAGNOSTIC COMPILATION JOBS WILL
.*    RESIDE ON FILE "MALJOBS".  THESE FILES CAN BE ROUTED TO THE OUTPUT
.*    QUEUE IF DESIRED. 
*IF,-DEF,DEBUG,5
.*    STEP 2 - CALL PROCEDURES CML1,2,3,4,5 AND 6 TO GENERATE THE 
.*    INSTALLATION JOBS AND SAVE THEM AS INDIRECT ACCESS PERMANENT
.*    FILES.  UPON COMPLETION, A LIST COPY OF EACH OF THE CREATED 
.*    JOBS WILL RESIDE ON FILE "CMLJOBS", WHICH MAY BE ROUTED TO THE
.*    OUTPUT QUEUE IF DESIRED.
.*
BEGIN,CML1,CMLINST, 
7X54,LCN,2550,66X,
405,FSCTAPE,FSCDISK,
895,CARTAPE,
5X70,698, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$. 
REWIND,CML1.
COPYSBF,CML1,CMLJOBS. 
.*
BEGIN,CML2,CMLINST, 
PAPER85,8LPI,HPSORT,844,885,66X,67X,DEMA, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#SYSVER=SYSVER, 
#REL1APFN=REL1APFN,#REL1AUN=REL1AUN,#REL1APW=REL1APW,#REL1APAK=REL1APAK,
#REL1AVSN=REL1AVSN,#REL1ADEN=REL1ADEN,#REL1ADT=REL1ADT. 
REWIND,CML2.
COPYSBF,CML2,CMLJOBS. 
.*
BEGIN,CML3,CMLINST, 
NOTSECURE,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#SYSVER=SYSVER, 
#REL1APFN=REL1APFN,#REL1AUN=REL1AUN,#REL1APW=REL1APW,#REL1APAK=REL1APAK,
#REL1AVSN=REL1AVSN,#REL1ADEN=REL1ADEN,#REL1ADT=REL1ADT. 
REWIND,CML3.
COPYSBF,CML3,CMLJOBS. 
.*
BEGIN,CML4,CMLINST, 
SYSEDIT,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$. 
REWIND,CML4.
COPYSBF,CML4,CMLJOBS. 
.*
BEGIN,CML5,CMLINST, 
SYSEDIT,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
844,885,885LS,7155,7X54,DEMA,LCN,2550,667X,2550100,65X,66X,67X,CYBERPLUS, 
405,415,512580,FSCTAPE,FSCDISK,PLATO,ESM,83X,639,7155C,895,CARTAPE, 
5X70,UNIBUS,698,STORNET,IPIDISK,
#SYSVER=SYSVER,#MALDOC=MALDOC,
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$. 
REWIND,CML5.
COPYSBF,CML5,CMLJOBS. 
.*
BEGIN,CML6,CMLINST,MMF, 
800,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#SYSVER=SYSVER, 
#REL1APFN=REL1APFN,#REL1AUN=REL1AUN,#REL1APW=REL1APW,#REL1APAK=REL1APAK,
#REL1ADT=REL1ADT,#REL1AVSN=REL1AVSN,#REL1ADEN=REL1ADEN. 
REWIND,CML6.
COPYSBF,CML6,CMLJOBS. 
REVERT. - CML INSTALL JOBS CREATED -
*WEOR 
.PROC,CML1, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
66X=$$/66X,7X54=$$/7X54,405=$$/405,LCN=$$/LCN,2550=$$/2550, 
FSCTAPE=$$/FSCTAPE,FSCDISK=$$/FSCDISK,895=$$/895,CARTAPE=$$/CARTAPE,
5X70=$$/5X70,698=$$/698,
USER=,CHARGE=.
.*
.* PROCEDURE NAME - CML1
.*
.* PURPOSE - CREATE AND INSTALLATION JOB WHICH WILL CREATE A RANDOM CML 
.*           PROGRAM LIBRARY PERMANENT FILE AND, BASED ON THE EQUIPMENT 
.*           CONFIGURATION PASSED, LOAD AND RETAIN AS PERMANENT FILES THE 
.*           NECESSARY SUPPLEMENTAL CML SUPPORT FILES (E.G., ODS DIAGNOSTICS, 
.*           MALET DIAGNOSTIC SCRATCH FILES, ETC.)
.*
.* PARAMETERS USED - CHARGE        66X        895 
.*                   7X54          405        5X70
.*                   CARTAPE       LCN        698 
.*                   2550          FSCTAPE
.*                   FSCDISK       USER 
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* PROCEDURE CALLED BY - CML
.*
.* INSTALLATION JOB INITIATED BY - MANUAL GET/ROUTE 
.*
.* INITIATES - CML2 
.*
.* PROCEDURES USED - XLOADY 
.*                   SAVEIT (INDIRECTLY)
.*
.* METHOD USED - CML1 USES UPDATE TO COPY THE SEQUENTIAL CML PROGRAM LIBRARY
.*               TO A RANDOM DISK PL.  THE SUPPLIED HARDWARE CONFIGURATION
.*               IS THEN USED TO LOAD THE REQUIRED SUPPORT FILES FROM THE 
.*               CML TAPE.
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
REPLACE,CML1. 
*IF,DEF,DEBUG,1 
ENDIF,GONOXEQ.
REVERT. - CML1 CREATED -
.*
.* START OF CML1 INSTALLATION JOB 
.*
.DATA,CML1. 
CML1,T7000.      - LOAD CML TAPE -
USER
CHARGE
SETTL,*.
SETASL,*. 
SETJSL,*. 
.*
.*    STEP 1 - PURGE ANY OLD COPIES OF THE CML PROGRAM LIBRARY (CMLPL), 
.*    REQUEST THE NEW CML PROGRAM LIBRARY TAPE, AND CREATE A RANDOM PL ON 
.*    DISK.  AS SOON AS THE RANDOM PL IS COMPLETE, ROUTE INSTALLATION JOB 
.*    CML2 TO INPUT.
.*
PURGE,CMLPL/NA. 
LABEL,TAPE,VSN=CMLVSN,F=SI,PO=RF,D=PE.
DEFINE,NEWPL=CMLPL. 
SKIPF,TAPE,1.  (SKIP TO FILE 2) 
$UPDATE,A,R=N,P=TAPE. 
RETURN,NEWPL. 
SKIPF,TAPE. 
GET,CML2. 
ROUTE,CML2,DC=IN. 
.*
.*    IF 7X54 OR 66X IS DEFINED, LOAD MY8BC AND BCXBC; ELSE GO TO STEP 3
.*
IFE,$7X54$.NE.$#7X54$,STEP2A. 
IFE,$66X$.EQ.$#66X$,STEP3.
ENDIF,STEP2A. 
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=MY8BC,INFILE=TAPE.
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=BCXBC,INFILE=TAPE.
ELSE,STEP3. 
SKIPF,TAPE,2. 
.*
.*    STEP 3 - IF 2550 IS DEFINED, LOAD THE ODS DIAGNOSTICS; ELSE GO TO STEP 4. 
.*
ENDIF,STEP3.
IFE,$2550$.EQ.$#2550$,STEP4.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=LDCHK3,INFILE=TAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MPINS,INFILE=TAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MPMOS,INFILE=TAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MOSMA,INFILE=TAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MPRTC,INFILE=TAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MIMEM,INFILE=TAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MIINS,INFILE=TAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=PAGE1,INFILE=TAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=CEL042,INFILE=TAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MST041,INFILE=TAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=CPL040,INFILE=TAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=CPLX40,INFILE=TAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=TTYA08,INFILE=TAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=UTOPIA,INFILE=TAPE. 
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=CCP48K,INFILE=TAPE. 
ELSE,STEP4. 
SKIPF,TAPE. 
.*
.*    STEP 4 - IF 405 IS DEFINED, LOAD CR1SCR; ELSE GO TO STEP 5. 
.*
ENDIF,STEP4.
IFE,$405$.EQ.$#405$,STEP5.
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=CR1SCR,INFILE=TAPE. 
ELSE,STEP5. 
SKIPF,TAPE. 
.*
.*    STEP 5 - IF FSCTAPE, FSCDISK, 895, CARTAPE, 5X70, 698 OR LCN IS 
.*    DEFINED, LOAD NDM AND NDP. (ALSO LOAD NDT IF LCN IS DEFINED.);
.*    ELSE GO TO STEP6. 
.*
ENDIF,STEP5.
IFE,$698$.NE.$#698$,STEP5A. 
IFE,$FSCTAPE$.NE.$#FSCTAPE$,STEP5A. 
IFE,$FSCDISK$.NE.$#FSCDISK$,STEP5A. 
IFE,$895$.NE.$#895$,STEP5A. 
IFE,$CARTAPE$.NE.$#CARTAPE$,STEP5A. 
IFE,$5X70$.NE.$#5X70$,STEP5A. 
IFE,$LCN$.EQ.$#LCN$,STEP6.
ENDIF,STEP5A. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=NDM,INFILE=TAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=NDP,INFILE=TAPE.
IFE,$LCN$.EQ.$#LCN$,STEP6.
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=NDT,INFILE=TAPE.
ELSE,STEP6. 
SKIPF,TAPE. 
.*
.*    STEP 6 HAS BEEN DELETED 
.*
ENDIF,STEP6.
.*
.*    STEP 7 - SKIP THE NEXT 5 FILES (8-12) SINCE THEY ARE
.*    USED ONLY DURING BINARY INSTALLS. 
.*
SKIPF,TAPE,5. 
.*
.*    STEP 8 - LOAD THE MALET DIAGNOSTIC BINARIES FOR SUBSEQUENT
.*    USE BY CML5A. 
.*
PURGE,DIAGLIB/NA. 
DEFINE,DIAGLIB. 
COPYBF,TAPE,DIAGBIN.
RFL,60000.
LIBEDIT,P=DIAGBIN,B=0,N=DIAGLIB,LO=E,Z./*BUILD,DIAGIX 
RETURN,DIAGBIN,DIAGLIB. 
****************************
*                          *
*  CML TAPE LOAD COMPLETE  *
*                          *
****************************
*WEOR 
.PROC,CML2, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
844=$*/  844 NOT DEFINED$/$*DEFINE,844$,
885=$*/  885 NOT DEFINED$/$*DEFINE,885$,
DEMA=$*/  DEMA NOT DEFINED$/$*DEFINE,885$,
66X=$*/  66X NOT DEFINED$/$*DEFINE,66X$,
67X=$*/  67X NOT DEFINED$/$*DEFINE,67X$,
PAPER85=$*/  PAPER85 NOT DEFINED$/$*DEFINE,PAPER85$,
8LPI=$*/  8LPI NOT DEFINED$/$*DEFINE,8LPI$, 
HPSORT=$*/  HPSORT NOT DEFINED$/$*DEFINE,HPSORT$, 
REL1APFN=,REL1AUN=,REL1APW=,REL1APAK=,REL1AVSN=,REL1ADEN=,REL1ADT=, 
USER=,CHARGE=,SYSVER=.
.*
.* PROCEDURE NAME - CML2
.*
.* PURPOSE - CREATE AN INSTALLATION JOB WHICH WILL GENERATE THE BINARIES
.*           OF MALET, HPA, REGEN, AND TIO FOR SUBSEQUENT INCLUSION ON THE
.*           SYSTEM LIBRARY.
.*
.* PARAMETERS USED - USER       REL1APFN    SYSVER   DEMA 
.*                   CHARGE     REL1AUN     HPSORT
.*                              REL1APW     844 
.*                   PAPER85    REL1APAK    885 
.*                   8LPI       REL1AVSN    66X 
.*                   REL1ADT    REL1ADEN    67X 
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* PROCEDURE CALLED BY - CML
.*
.* INSTALLATION JOB INITIATED BY - CML1 OR MANUAL GET/ROUTE 
.*
.* INITIATES - CML3 
.*             CML4 
.*             CML6 
.*
.* PROCEDURES USED - GETOPL 
.*
.* METHOD USED - SEE IMBEDDED TEXT
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
REPLACE,CML2. 
*IF,DEF,DEBUG,1 
ENDIF,GONOXEQ.
REVERT.  - END CML2 - 
.*
.* START OF CML2 INSTALLATION JOB 
.*
.DATA,CML2. 
CML2,T7000,CM120000. - ASSEMBLE MALET,HPA,REGEN,TIO - 
USER
CHARGE
SETTL,*.
SETASL,*. 
SETJSL,*. 
.*
.*    STEP 1 - CREATE (OR ACCESS) SYSOPL.  WHEN IT HAS BEEN 
.*    DETERMINED THAT SYSOPL IS AVAILABLE, START UP JOBS CML3 
.*    AND CML6.  AN INTERLOCK FILE (ILOCK4) IS USED TO KEEP 
.*    CML4 FROM ATTEMPTING TO PERFORM A SYSEDIT AND/OR BUILD
.*    A NEW DEADSTART TAPE BEFORE BOTH CML2 AND CML3 ARE
.*    FINISHED. 
.*
BEGIN,GETOPL,CMLINST,REL1APFN,REL1AUN,REL1APW,REL1APAK,REL1AVSN,REL1ADEN, 
REL1ADT.
PURGE,ILOCK4/NA.
DEFINE,ILOCK4.
RETURN,ILOCK4.
ATTACH,ILOCK4/M=R.
GET,CML3. 
ROUTE,CML3,DC=IN. 
GET,CML6. 
ROUTE,CML6,DC=IN. 
.*
.*    STEP 2 - PURGE ANY OLD COPY OF CMLBIN, OBTAIN THE CML PROGRAM 
.*    LIBRARY AND ANY MODIFICATIONS, THEN PERFORM THE UPDATE.  IF 
.*    MODIFICATIONS ARE TO BE INCORPORATED DURING THE UPDATE, INCLUDE 
.*    THEM IN THE LIST FILE; ELSE LIST ONLY ERRORS. 
.*
PURGE,CMLBIN/NA.
ATTACH,OLDPL=CMLPL. 
GET,MALMODS,HPAMODS,REGMODS,TIOMODS/NA. 
IFE,(FILE(MALMODS,LO)).OR.(FILE(HPAMODS,LO)).OR.(FILE(REGMODS,LO)).OR.
(FILE(TIOMODS,LO)),NOMODS.
$UPDATE,Q,K.
RETURN,CMLMODS. 
ELSE,NOMODS.
$UPDATE,Q,K,L=1.
ENDIF,NOMODS. 
RETURN,OLDPL. 
.*
.*    STEP 3 - PERFORM THE ASSEMBLIES, RUN THE BINARIES THROUGH LOADER, 
.*    THEN PROCEED TO STEP 4. 
.*
COMPASS,A,I,B=REL,S=NOSTEXT,S=CETEXT,S=CPUTEXT,S=PSSTEXT,L=0. 
WRITEF,REL. 
FTN5,I,B=REL,PL=999999,L=0,OPT=2,ET,ANSI=0. 
WRITEF,REL. 
FTN5,ANSI=0,I,B=REL,PL=999999,L=0,ET,S=CPCTEXT,S=IOTEXT,STATIC. 
WRITEF,REL. 
FTN5,ANSI=0,I,B=REL,PL=999999,L=0,ET,S=CPCTEXT,S=IOTEXT,STATIC. 
RETURN,COMPILE,OPL. 
DEFINE,LGO=CMLBIN.
LOAD(REL) 
NOGO(LGO) 
LOAD(REL/NR)
NOGO(HPALGO)
REWIND,HPALGO.
COPYBR,HPALGO,HPALGO1.
LIBGEN,F=HPALGO,P=HPALIB. 
REWIND,HPALGO1,HPALIB.
COPYBR,HPALGO1,LGO. 
COPYBF,HPALIB,LGO.
BKSP,LGO. 
SET,R3=2. 
WHILE,R3.NE.0,STEP3A. 
LOAD(REL/NR)
NOGO(LGO) 
SET,R3=R3-1.
ENDW,STEP3A.
RENAME,CMLBIN=LGO.
ITEMIZE,CMLBIN,N. 
.*
.*    STEP 4 - START UP CML4, THEN TERMINATE. 
.*
GET,CML4. 
ROUTE,CML4,DC=IN. 
.EOR
*TEXT 
*IDENT,CMLDEF 
*DEFINE,NOS,SYSVER
8LPI
PAPER85 
*TEXT 
*READ,MALMODS 
*ENDTEXT
*COMPILE,MALET.MALET40
*COMPILE,CWEOR4 
HPSORT
66X 
67X 
844 
885 
DEMA
*TEXT 
*READ,HPAMODS 
*ENDTEXT
*COMPILE,HPA.HPA9 
*COMPILE,CWEOR5 
*TEXT 
*READ,REGMODS 
*ENDTEXT
*TEXT 
*COMPILE,REGEN
*ENDTEXT
*COMPILE,CWEOR6 
*ENDTEXT
*TEXT 
*READ,TIOMODS 
*COMPILE,TIO
*ENDTEXT
*WEOR 
.PROC,CML3, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
NOTSECURE=$*DEFINE,SECURE$/$*YANK,SECURE$,
USER=,CHARGE=,SYSVER=,
REL1APFN=,REL1AUN=,REL1APW=,REL1APAK=,REL1ADT=, 
REL1AVSN=,REL1ADEN=.
.*
.* PROCEDURE NAME - CML3
.*
.* PURPOSE - ASSEMBLE THE PP ROUTINES MLD, WLD AND SBP. 
.*
.* PARAMETERS USED - NOTSECURE     REL1APFN 
.*                   USER          REL1AUN
.*                   CHARGE        REL1APW
.*                   SYSVER        REL1APAK 
.*                   REL1ADEN      REL1AVSN 
.*                   REL1ADT
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* PROCEDURE CALLED BY - CML
.*
.* INSTALLATION JOB INITIATED BY - CML2 OR MANUAL GET/ROUTE.
.*
.* INITIATES - NO JOBS
.*
.* PROCEDURES USED - GETOPL 
.*
.* METHOD USED - CML3 PRODUCES INSTALLATION JOB CML3 AND SAVES IT AS A
.*               PERMANENT FILE.  THIS JOB FIRST ACCESSES (OR 
.*               CREATES) SYSOPL, THEN ATTACHES THE CML PROGRAM 
.*               LIBRARY.  THESE FILES ARE USED BY UPDATE AND COMPASS 
.*               TO ASSEMBLE THE PP ROUTINES MLD, WLD AND SBP.  ALL MLD 
.*               AND WLD PRODUCT OVERLAYS ARE ASSEMBLED, REGARDLESS OF
.*               HARDWARE CONFIGURATION.  ANY LOCAL MODIFICATIONS TO
.*               THESE ROUTINES MUST RESIDE ON INDIRECT ACCESS PERMANENT
.*               FILE MLDMODS. THE ASSEMBLED BINARIES ARE SAVED ON
.*               DIRECT ACCESS PERMANENT FILE "MLDBIN". 
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
REPLACE,CML3. 
*IF,DEF,DEBUG,1 
ENDIF,GONOXEQ.
REVERT. - CML3 CREATED -
.*
.* START OF CML3 INSTALLATION JOB 
.*
.DATA,CML3. 
CML3.  - COMPILE MLD/WLD/SBP -
USER
CHARGE
SETTL,*.
SETASL,*. 
SETJSL,*. 
.*
.*    STEP 1 - ATTACH THE CML4 INTERLOCK FILE (ILOCK4), THEN
.*    CALL GETOPL TO OBTAIN A PERMANENT FILE COPY OF SYSOPL.
.*
ATTACH,ILOCK4/M=R.
BEGIN,GETOPL,CMLINST,REL1APFN,REL1AUN,REL1APW,REL1APAK,REL1AVSN,REL1ADEN, 
REL1ADT.
.*
.*    STEP 2 HAS BEEN DELETED.
.*
.*    STEP 3 - ATTACH THE CML PROGRAM LIBRARY AND PERFORM THE 
.*    UPDATE.  IF LOCAL MODIFICATIONS ARE TO BE INCORPORATED
.*    DURING THE UPDATE, INCLUDE THEM IN THE LIST FILE; ELSE
.*    LIST ONLY ERRORS. 
.*
ATTACH,OLDPL=CMLPL. 
GET,MLDMODS/NA. 
IFE,FILE(MLDMODS,LO),STEP3A.
$UPDATE,Q,K.
RETURN,MLDMODS. 
ELSE,STEP3A.
$UPDATE,Q,K,L=1.
ENDIF,STEP3A. 
RETURN,OLDPL. 
.*
.*    STEP 4 - ASSEMBLE MLD/WLD/SBP AND SAVE THE BINARIES ON DIRECT 
.*    ACCESS PERMANENT FILE MLDBIN, THEN TERMINATE. 
.*
PURGE,MLDBIN/NA.
DEFINE,LGO=MLDBIN.
IFE,$SYSVER$.EQ.$NOS4$.OR.$SYSVER$.EQ.$NOS5$,NORFL. 
RFL,120000. 
ENDIF,NORFL.
COMPASS,A,I,L=0,S=NOSTEXT,S=CETEXT,X. 
RENAME,MLDBIN=LGO.
ITEMIZE,MLDBIN,N. 
.EOR
*TEXT 
*IDENT,MLDDEF 
*DEFINE,NOS,SYSVER
NOTSECURE 
*READ,MLDMODS 
*COMPILE,MLD,WLD,SBP
*ENDTEXT
.EOF
*WEOR 
.PROC,CML4, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
SYSEDIT=$$/SYSEDIT, 
USER=,CHARGE=.
.*
.* PROCEDURE NAME - CML4
.*
.* PURPOSE - CREATE AN INSTALLATION JOB WHICH WILL GENERATE A NEW 
.*           DEADSTART TAPE AND OPTIONALLY PERFORM A SYSEDIT. 
.*
.* PARAMETERS USED - CHARGE       SYSEDIT 
.*                   USER 
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* CALLED BY - CML
.*
.* INSTALLATION JOB INITIATED BY - CML2 OR MANUAL GET/ROUTE 
.*
.* PROCEDURES USED - NONE 
.*
.* METHOD USED - CML4 PRODUCES INSTALLATION JOB CML4 AND SAVES IT AS
.*               A PERMANENT FILE.  THIS JOB WILL GENERATE A NEW
.*               DEADSTART TAPE FROM AN EXISTING ONE USING THE SYSTEM 
.*               UTILITY LIBEDIT.  IF SPECIFIED, A SYSEDIT WILL ALSO
.*               BE PERFORMED.  IF THE SYSEDIT IS EVOKED, THE JOB WILL
.*               ROUTE INSTALLATION JOB CML5 TO INPUT UPON COMPLETION 
.*               OF THE SYSEDIT.  IF THE SYSEDIT IS NOT PERFORMED,
.*               A PERMANENT FILE COPY OF THE MALET COMPILER IS CREATED 
.*               AND USED BY CML5A TO COMPILE THE MALET DIAGNOSTICS.
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
REPLACE,CML4. 
*IF,DEF,DEBUG,1 
ENDIF,GONOXEQ.
REVERT. - CML4 CREATED -
.*
.* START OF CML4 INSTALLATION JOB 
.*
.DATA,CML4. 
CML4. - SYSTEM #SYSEDIT AND DEADSTART TAPE GENERATION - 
USER
CHARGE
SETTL,*.
SETASL,*. 
SETJSL,*. 
.*
.*    STEP 1 - ATTACH THE INTERLOCK FILE (ILOCK4) IN WRITE MODE TO
.*    ENSURE THAT BOTH CML2 AND CML3 ARE FINISHED, THEN PURGE IT. 
.*    ATTACH THE CML/MLD BINARIES GENERATED BY CML2 AND CML3, 
.*    AND PERFORM A SYSEDIT IF IT HAS BEEN REQUESTED, 
.*    THEN ROUTE INSTALLATION JOB CML5 TO INPUT; ELSE GO TO STEP 1A.
.*
ATTACH,ILOCK4/M=W,NA. 
RETURN,ILOCK4.
PURGE,ILOCK4/NA.
ATTACH,MLDBIN,CMLBIN. 
IFE,$SYSEDIT$.EQ.$#SYSEDIT$,STEP1A. 
NOTE,SYSDIR,NR.'*FILE,MLDBIN
NOTE,SYSDIR,NR.'*FILE,CMLBIN
PACK,SYSDIR.
REWIND,SYSDIR.
.*
.*    DUMMY REQUEST TO WARN OPERATOR OF IMPENDING SYSEDIT.
.*    ALLOWS OPERATOR TIME TO DROP NETWORK AND SET DEBUG. 
.*    ASSIGN REQUEST TO DISK OR NULL EQUIPMENT. 
.*
REQUEST,S. #SYSEDIT WARN - ASSIGN DISK
RETURN,S. 
#SYSEDIT,B=0,I=SYSDIR.
RETURN,SYSDIR.
GET,CML5. 
ROUTE,CML5,DC=IN. 
ELSE,STEP1A.
.*
.*    SINCE A SYSEDIT WILL NOT BE COMPLETED, CREATE A PERMANENT FILE COPY 
.*    OF MALET SO THE DIAGNOSTICS CAN BE COMPILED AND SAVED; THEN ROUTE 
.*    CML5 TO INPUT.
.*
PURGE,MALET/NA. 
DEFINE,MALET. 
GTR(CMLBIN,MALET,,,S)ABS/MALET-OVL/MALET40
RETURN,MALET. 
GET,CML5. 
ROUTE,CML5,DC=IN. 
ENDIF,STEP1A. 
.*
.*    STEP 2 - LOAD THE OLD DEADSTART TAPE TO DISK IN PREPARATION 
.*    FOR THE LIBEDIT.
.*
REQUEST,OLDDST,F=I,LB=KU,PO=R,VSN=OLDDST. OLD DEADSTART TAPE
COPYEI,OLDDST,OLD,V.
RETURN,OLDDST.
.*
.*    STEP 3 - DETERMINE WHAT LIBEDIT DIRECTIVES ARE REQUIRED TO
.*    BUILD A NEW DEADSTART TAPE AND WRITE THEM TO FILE 
.*    LIBDIR. 
.*
.*    CUT LIBEDIT DIRECTIVES FOR MLDBIN 
.*
.*    IF MLD IS NOT ON OLD, CUT DIRECTIVES TO INSERT THE NEW PP CODE
.*    AFTER THE CUX RECORD.  IF MLD IS ALERADY ON OLD, CUT DIRECTIVES 
.*    TO DELETE MLD THROUGH SBP FIRST, THEN CUT THE INSERT DIRECRIVES.
.*
GTR(OLD,MLDTEST,,,,NA)PP/MLD
IFE,FILE(MLDTEST,LO),STEP3A.
RETURN,MLDTEST. 
NOTE(LIBDIR,NR)'*DELETE PP/MLD-SBP
ENDIF,STEP3A. 
NOTE(LIBDIR,NR)'*FILE MLDBIN'*INSERT PP/CUX,PP/MLD-SBP
.*
.*    IF MALET IS NOT ON OLD, CUT DIRECTIVES TO INSERT THE NEW CPU
.*    CODE IN LIB50; IF MALET IS ALREADY ON OLD, THEN CUT DIRECTIVES
.*    TO DELETE ALL THE OLD CML CODE FIRST, THEN ADD THE NEW CODE.
.*
GTR(OLD,CMLTEST,,,,NA)ABS/MALET 
IFE,FILE(CMLTEST,LO),STEP3B.
RETURN,CMLTEST. 
NOTE(LIBDIR,NR)'*DELETE ABS/MALET-TIO 
ENDIF,STEP3B. 
NOTE(LIBDIR,NR)'*FILE CMLBIN'*ADD LIB50,ABS/MALET-TIO 
PACK,LIBDIR.
REWIND,LIBDIR,OLD.
.*
.*    STEP 4 - PERFORM THE LIBEDIT TO GENERATE THE NEW DEADSTART TAPE.
.*    THEN TERMINATE.  (VFYLIB IS CALLED BY LIBEDIT TO VERIFY THE NEW 
.*    TAPE.  DIFFERENCES WILL BE LISTED IN OUTPUT.) 
.*
BEGIN,SETRFL,CMLINST,MAXFL=MFL+B,RFLREQ=160000. 
LIBEDIT,B=0,P=OLD,N=NEWLIB,I=LIBDIR,V,LO=CEM. 
RETURN,OLD. 
REQUEST,NEWDST,F=I,LB=KU,PO=W,VSN=NEWDST. - NEW DEADSTART TAPE -
COPYEI,NEWLIB,NEWDST,V. 
*WEOR 
.PROC,CML5, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
844=$$/844,885=$$/885,885LS=$$/885LS,7155=$$/7155,7X54=$$/7X54,639=$$/639,
DEMA=$$/DEMA,LCN=$$/LCN,MSS=$$/MSS,2550=$$/2550,667X=$$/667X,7155C=$$/7155C,
2550100=$$/2550100,65X=$$/65X,66X=$$/66X,67X=$$/67X,
405=$$/405,415=$$/415,512580=$$/512580,83X=$$/83X,895=$$/895, 
FSCTAPE=$$/FSCTAPE,FSCDISK=$$/FSCDISK,PLATO=$$/PLATO,ESM=$$/ESM,
CYBERPLUS=$$/CYBERPLUS,CARTAPE=$$/CARTAPE,5X70=$$/5X70, 
UNIBUS=$$/UNIBUS,698=$$/698,STORNET=$$/STORNET,IPIDISK=$$/IPIDISK,
MALDOC=,SYSVER=,SYSEDIT=$$/SYSEDIT, 
USER=,CHARGE=.
.*
.* PROCEDURE NAME - CML5
.*
.* PURPOSE - ASSEMBLE THE NECESSARY MALET DIAGNOSTICS AND PRODUCE 
.*           DOCUMENTATION TO SUPPORT THE HARDWARE CONFIGURATION. 
.*
.* PARAMETERS USED - DEMA       SYSEDIT    USER    CHARGE    83X
.*                   LCN        ESM        FSCDISK FSCTAPE   885LS
.*                   512580     PLATO      405     415       639
.*                   66X        IPIDISK    UNIBUS  65X       7155C
.*                   2550       67X        844     885       895
.*                   7155       2550100    667X    7X54      CARTAPE
.*                   5X70       698        STORNET
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* PROCEDURE CALLED BY - CML
.*
.* INSTALLATION JOB INITIATED BY - CML4, MANUAL GET/ROUTE 
.*
.* PROCEDURES USED - CML5A
.*                   SAVEIT (INDIRECT)
.*
.* METHOD USED - CML5 PRODUCES INSTALLATION JOB CML5 AND SAVES IT AS A
.*               PERMANENT FILE.  THIS JOB USES THE HARDWARE AND SOFTWARE 
.*               CONFIGURATION PASSED TO DETERMINE WHICH MALET DIAGNOSTICS
.*               NEED TO BE COMPILED IN ORDER TO SUPPORT THE CONFIGURATION. 
.*               ONCE IT HAS BEEN DETERMINED THAT A DIAGNOSTIC REQUIRES 
.*               COMPILATION, PROCEDURE CML5A IS CALLED TO GENERATE A JOB 
.*               WHICH WILL PERFORM THE COMPILE AND PRODUCE THE REQUESTED 
.*               HARDCOPY DOCUMENTATION (NONE, INTERNAL, EXTERNAL, OR 
.*               BOTH). 
.*
.*               IF FILE 14 OF THE CML RELEASE TAPE IS AVAILABLE AS 
.*               PERMANENT FILE "DIAGLIB", AND THERE ARE NO MODIFICATIONS 
.*               TO BE SUPPLIED TO THE TEST, CML5A WILL ATTEMPT TO
.*               EXTRACT THE DIAGNOSTIC FROM THIS FILE, THUS AVOIDING 
.*               THE LENGTHY MALET COMPILATION.  THE FIRST MODULE OF THE
.*               DIAGNOSTIC SEQUENCE IS PASSED TO CML5A THROUGH 
.*               PARMAETER "FMOD"; THE LAST MODULE IS PASSED THROUGH
.*               PARAMETER "LMOD".  (THESE PARAMETERS ARE HARD-CODED
.*               INTO CML5; THE USER NEED NOT BE CONCERNED WITH THEM.)
.*               FILE "DIAGLIB" IS CREATED BY INSTALLATION JOB "CML1" 
.*               AND MAY BE PURGED WHEN CML INSTALLATION IS COMPLETE. 
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
REPLACE,CML5. 
*IF,DEF,DEBUG,4 
ELSE,GONOXEQ. 
XEDIT,CML5,B,I=XDIR,L=0,NH. 
BEGIN,CML5X,CML5X.
ENDIF,GONOXEQ.
REVERT. - END CML5 -
*IF,DEF,DEBUG,13
.*
.* XEDIT DIRECTIVES TO ALLOW CML5 TO BE EXECUTED FOR TESTING
.* PURPOSES.
.*
.DATA,XDIR. 
XD3 
IB
.PROC,CML5X.
E,CML5X 
.EOR
.*
.* END OF XEDIT DIRECTIVES
.*
.*
.* START OF CML5 INSTALLATION JOB 
.*
.DATA,CML5. 
CML5,T7000.     - ASSEMBLE MALET DIAGNOSTICS -
USER
CHARGE
SETTL,*.
SETASL,*. 
SETJSL,*. 
.*
.*    STEP 1 - IF 2550100 IS DEFINED, COMPILE TFE; ELSE GO TO STEP 2. 
.*
IFE,$2550100$.EQ.$#2550100$,STEP2.
BEGIN,CML5A,CMLINST,TEST=TFE, 
FMOD=TFE00,LMOD=ULD99,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=TFE,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 2 - IF 2550 IS DEFINED, COMPILE TFF AND TFL; ELSE GO TO STEP 3.
.*
ENDIF,STEP2.
IFE,$2550$.EQ.$#2550$,STEP3.
BEGIN,CML5A,CMLINST,TEST=TFF, 
FMOD=TFF01,LMOD=TFF99,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=TFF,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=TFL, 
FMOD=TFL01,LMOD=TFL99,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=TFL,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 3 - IF 667X IS DEFINED, COMPILE RT3, RT5, AND TT3; ELSE GO 
.*             TO STEP 4. 
.*
ENDIF,STEP3.
IFE,$667X$.EQ.$#667X$,STEP4.
BEGIN,CML5A,CMLINST,TEST=RT3, 
FMOD=RT301,LMOD=RT399A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=RT3,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=RT5, 
FMOD=RT500,LMOD=RT5999, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=RT5,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=TT3, 
FMOD=TT301,LMOD=TT3991, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=TT3,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 4 - IF 405 IS DEFINED, COMPILE CR1 AND CRE; ELSE GO TO STEP 5. 
.*
ENDIF,STEP4.
IFE,$405$.EQ.$#405$,STEP5.
BEGIN,CML5A,CMLINST,TEST=CR1, 
FMOD=CR101,LMOD=CR1993, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CR1,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=CRE, 
FMOD=CRE00,LMOD=CRE99,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CRE,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 5 - IF 415 IS DEFINED, COMPILE CP1 AND CPE; ELSE GO TO STEP 6. 
.*
ENDIF,STEP5.
IFE,$415$.EQ.$#415$,STEP6.
BEGIN,CML5A,CMLINST,TEST=CP1, 
FMOD=CP100,LMOD=CP1991, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CP1,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=CPE, 
FMOD=CPE00,LMOD=CPE99,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CPE,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 6 - IF 512580 IS DEFINED, COMPILE FTP, LP1 AND LPE; ELSE GO
.*             TO STEP 8. 
.*
ENDIF,STEP6.
IFE,$512580$.EQ.$#512580$,STEP8.
BEGIN,CML5A,CMLINST,TEST=FTP, 
FMOD=FTP00,LMOD=FTP991, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FTP,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=LP1, 
FMOD=LP100,LMOD=LP199B, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=LP1,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=LPE, 
FMOD=LPE00,LMOD=LPE99,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=LPE,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 8 - IF 65X IS DEFINED, COMPILE T5X; ELSE GO TO STEP 9. 
.*
ENDIF,STEP8.
IFE,$65X$.EQ.$#65X$,STEP9.
BEGIN,CML5A,CMLINST,TEST=T5X, 
FMOD=T5X00,LMOD=T5X99A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=T5X,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 9 - IF 66X IS DEFINED, COMPILE T7X; ELSE GO TO STEP 10.
.*
ENDIF,STEP9.
IFE,$66X$.EQ.$#66X$,STEP10. 
BEGIN,CML5A,CMLINST,TEST=T6X, 
FMOD=T6X01,LMOD=T6X995, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=T6X,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 10 - IF 67X OR 698 IS DEFINED, COMPILE T7X IF 67X ALSO COMPILE ATC;
.*    ELSE GO TO STEP 11. 
.*
ENDIF,STEP10. 
IFE,$67X$.NE.$#67X$,STEP10A.
IFE,$698$.EQ.$#698$,STEP11. 
ENDIF,STEP10A.
BEGIN,CML5A,CMLINST,TEST=T7X, 
FMOD=T7X00,LMOD=T7X99A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=T7X,#SYSEDIT=SYSEDIT. 
IFE,$67X$.EQ.$#67X$,STEP11. 
BEGIN,CML5A,CMLINST,TEST=ATC, 
FMOD=ATC00,LMOD=ATC998, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=ATC,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 11 - IF 844 IS DEFINED, COMPILE D44; ELSE GO TO STEP 12. 
.*
ENDIF,STEP11. 
IFE,$844$.EQ.$#844$,STEP12. 
BEGIN,CML5A,CMLINST,TEST=D44, 
FMOD=D4400,LMOD=D4499A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=D44,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 12 - IF 66X OR 7X54 IS DEFINED, COMPILE BCX AND MY8; ELSE GO TO
.*    STEP 13.
.*
ENDIF,STEP12. 
IFE,$7X54$.NE.$#7X54$,STEP12A.
IFE,$66X$.EQ.$#66X$,STEP13. 
ENDIF,STEP12A.
BEGIN,CML5A,CMLINST,TEST=BCX, 
FMOD=BCX00,LMOD=BCX99,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=BCX,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=MY8, 
FMOD=MY800,LMOD=MY899,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=MY8,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 13 - IF 885 IS DEFINED, COMPILE D88, FMC, FMD, AND FMU; ELSE GO
.*    TO STEP 14. 
.*
ENDIF,STEP13. 
IFE,$885$.EQ.$#885$,STEP14. 
BEGIN,CML5A,CMLINST,TEST=D88, 
FMOD=D8801,LMOD=D8899A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=D88,DEFINE=SFMD,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=FMC, 
FMOD=FMC00,LMOD=FMC99C, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMC,DEFINE=SFMD,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=FMD, 
FMOD=FMD00,LMOD=FMD99C, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMD,DEFINE=SFMD,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=FMU, 
FMOD=FMU01,LMOD=FMU99A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMU,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 14 - IF 885 IS NOT DEFINED AND 7155 IS DEFINED, COMPILE FMD, FMC,
.*    FMU, AND DTC; ELSE TO TO STEP 15. 
.*
ENDIF,STEP14. 
IFE,$885$.NE.$#885$,STEP15. 
IFE,$7155$.EQ.$#7155$,STEP15. 
BEGIN,CML5A,CMLINST,TEST=FMD, 
FMOD=FMD00,LMOD=FMD99C, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMD,DEFINE=SFMD,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=FMC, 
FMOD=FMC00,LMOD=FMC99C, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMC,DEFINE=SFMD,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=FMU, 
FMOD=FMU01,LMOD=FMU99A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMU,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 15 - IF 844 AND 7155 ARE DEFINED, COMPILE DTC; ELSE GO TO STEP 16. 
.*    (844 AND 7155 DEFINED IMPLIES THAT 844'S ARE CONNECTED TO THE 7155'S.)
.*
ENDIF,STEP15. 
IFE,$844$.EQ.$#844$,STEP15A.
IFE,$7155$.EQ.$#7155$,STEP15A.
BEGIN,CML5A,CMLINST,TEST=DTC, 
FMOD=DTC00,LMOD=DTC99D, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=DTC,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 15A - IF 7155C IS DEFINED, COMPILE FHC; ELSE GO TO STEP 16.
.*
ENDIF,STEP15A.
IFE,$DEMA$.NE.$#DEMA$,STEP16. 
IFE,$7155C$.EQ.$#7155C$,STEP16. 
BEGIN,CML5A,CMLINST,TEST=FHC, 
FMOD=FHC00,LMOD=FHC99C, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FHC,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 16 - IF FSCTAPE IS DEFINED; COMPILE F7X, ELSE GO TO STEP 17. 
.*
ENDIF,STEP16. 
IFE,$FSCTAPE$.EQ.$#FSCTAPE$,STEP17. 
BEGIN,CML5A,CMLINST,TEST=F7X, 
FMOD=F7X00,LMOD=F7X99A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=F7X,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 17 - IF FSCDISK IS DEFINED, COMPILE F44, F88, AND FFU; ELSE GO 
.*    TO STEP 18. 
.*
ENDIF,STEP17. 
IFE,$FSCDISK$.EQ.$#FSCDISK$,STEP18. 
BEGIN,CML5A,CMLINST,TEST=F44, 
FMOD=F4401,LMOD=F4499A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=F44,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=F88, 
FMOD=F8801,LMOD=F8899A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=F88,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=FFU, 
FMOD=FFU01,LMOD=FFU99A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FFU,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 18 - IF FSCTAPE OR FSCDISK IS DEFINED, COMPILE FLM AND FSM;
.*    ELSE GO TO STEP 19. 
.*
ENDIF,STEP18. 
IFE,$FSCTAPE$.NE.$#FSCTAPE$,STEP18A.
IFE,$FSCDISK$.EQ.$#FSCDISK$,STEP19. 
ENDIF,STEP18A.
BEGIN,CML5A,CMLINST,TEST=FLM, 
FMOD=FLM00,LMOD=FLM99C, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FLM,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=FSM, 
FMOD=FSM00,LMOD=FSM99A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FSM,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 19 - IF LCN IS DEFINED, COMPILE LCI, LCN, LCM, AND NLM; ELSE 
.*    GO TO STEP 20.
.*
ENDIF,STEP19. 
IFE,$LCN$.EQ.$#LCN$,STEP20. 
BEGIN,CML5A,CMLINST,TEST=LCI, 
FMOD=LCI00,LMOD=LCI99A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=LCI,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=LCN, 
FMOD=LCN01,LMOD=LCN99B, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=LCN,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=LCM, 
FMOD=LCM00,LMOD=LCM99B, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=LCM,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=NLM, 
FMOD=NLM00,LMOD=NLM99C, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=NLM,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 20 - IF DEMA IS DEFINED, COMPILE FHD, FHC, DH8, AND FEP.  ALSO,
.*    IF FMU HASN'T BEEN PREVIOUSLY COMPILED, COMPILE IT NOW; ELSE GO 
.*    TO STEP 21. 
.*
ENDIF,STEP20. 
IFE,$DEMA$.EQ.$#DEMA$,STEP21. 
BEGIN,CML5A,CMLINST,TEST=FHD, 
FMOD=FHD00,LMOD=FHD99C, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMD,DEFINE=PFMD,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=FHC, 
FMOD=FHC00,LMOD=FHC99C, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FHC,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=DH8, 
FMOD=DH801,LMOD=DH899A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=D88,DEFINE=PFMD,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=FEP, 
FMOD=FEP01,LMOD=FEP99B, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FEP,#SYSEDIT=SYSEDIT. 
IFE,$885$.NE.$#885$,STEP21. 
IFE,$7155$.NE.$#7155$,STEP21. 
BEGIN,CML5A,CMLINST,TEST=FMU, 
FMOD=FMU01,FMU99A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMU,#SYSEDIT=SYSEDIT. 
.*
.*    IF PLATO IS DEFINED, COMPILE CIU; ELSE GO TO STEP 22. 
.*
ENDIF,STEP21. 
IFE,$PLATO$.EQ.$#PLATO$,STEP22. 
BEGIN,CML5A,CMLINST,TEST=CIU, 
FMOD=CIU00,LMOD=CIU99A, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CIU,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 22 - IF ESM IS DEFINED AND THE SYSTEM VERSION (SYSVER) IS EITHER 
.*    NOS4 OR NOS5, COMPILE ELR; ELSE GO TO STEP 23.
.*
ENDIF,STEP22. 
IFE,$ESM$.EQ.$#ESM$,STEP23. 
IFE,$SYSVER$.NE.$NOS4$,STEP22A. 
IFE,$SYSVER$.EQ.$NOS5$,STEP23.
ENDIF,STEP22A.
BEGIN,CML5A,CMLINST,TEST=ELR, 
FMOD=ELR01,LMOD=ELR99,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=ELR,#SYSEDIT=SYSEDIT. 
.*
.*    STEP 23 - IF 83X IS DEFINED, COMPILE FSD. 
.*
ENDIF,STEP23. 
IFE,$83X$.EQ.$#83X$,STEP24. 
BEGIN,CML5A,CMLINST,TEST=FSD, 
FMOD=FSD01,LMOD=FSD99D, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FSD,#SYSEDIT=SYSEDIT. 
ENDIF,STEP24. 
.*
.*    STEP 24 - IF 885LS DEFINED, LOAD/COMPILE DL8 AND FLD. 
.*    ALSO LOAD/COMPILE FMU AND FMC IF NOT DONE SO BY A 
.*    PREVIOUS STEP.
.*
IFE,$885LS$.EQ.$#885LS$,STEP25. 
BEGIN,CML5A,CMLINST,TEST=DL8,FMOD=DL801,LMOD=DL899A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=D88,#SYSEDIT=SYSEDIT,DEFINE=LSFMD.
BEGIN,CML5A,CMLINST,TEST=FLD,FMOD=FLD00,LMOD=FLD99C,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMD,#SYSEDIT=SYSEDIT,DEFINE=LSFMD.
IFE,$7155$.NE.$#7155$,STEP25. 
IFE,$885$.NE.$#885$,STEP25. 
IFE,$DEMA$.NE.$#DEMA$,STEP24A.
BEGIN,CML5A,CMLINST,TEST=FMU,FMOD=FMU01,LMOD=FMU99A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMU,#SYSEDIT=SYSEDIT. 
ENDIF,STEP24A.
BEGIN,CML5A,CMLINST,TEST=FMC,FMOD=FMC00,LMOD=FMC99C,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMC,#SYSEDIT=SYSEDIT,DEFINE=SFMD. 
ENDIF,STEP25. 
.*
.*    STEP 25 - IF CYBERPLUS IS DEFINED, COMPILE CRP AND DMA. 
.*
IFE,$CYBERPLUS$.EQ.$#CYBERPLUS$,STEP26. 
BEGIN,CML5A,CMLINST,TEST=CRP,FMOD=CRP00,LMOD=CRP99A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CRP,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=DMA,FMOD=DMA00,LMOD=DMA99A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=DMA,#SYSEDIT=SYSEDIT. 
ENDIF,STEP26. 
.*
.*    STEP 26 - IF 639 IS DEFINED, COMPILE IST AND ITU. 
.*
IFE,$639$.EQ.$#639$,STEP27. 
BEGIN,CML5A,CMLINST,TEST=IST,FMOD=IST00,LMOD=IST99A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=IST,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=ITU,FMOD=ITU00,LMOD=ITU99A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=ITU,#SYSEDIT=SYSEDIT. 
ENDIF,STEP27. 
.*
.*    STEP 27 - IF 895, 5X70, 698 OR CARTAPE IS DEFINED,
.*    COMPILE CCM AND CLM;  ELSE GO TO STEP 28. 
.*
IFE,$698$.NE.$#698$,STEP27A.
IFE,$895$.NE.$#895$,STEP27A.
IFE,$5X70$.NE.$#5X70$,STEP27A.
IFE,$CARTAPE$.EQ.$#CARTAPE$,STEP28. 
ENDIF,STEP27A.
BEGIN,CML5A,CMLINST,TEST=CCM,FMOD=CCM00,LMOD=CCM99A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CCM,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=CLM,FMOD=CLM00,LMOD=CLM99B,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CLM,#SYSEDIT=SYSEDIT. 
ENDIF,STEP28. 
.*
.*    STEP 28 - IF 83X OR 895 IS DEFINED, COMPILE DFU AND DTI.
.*
IFE,$83X$.NE.$#83X$,STEP28A.
IFE,$895$.EQ.$#895$,STEP29. 
ENDIF,STEP28A.
BEGIN,CML5A,CMLINST,TEST=DFU,FMOD=DFU00,LMOD=DFU99B,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=DFU,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=DTI,FMOD=DTI00,LMOD=DTI99A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=DTI,#SYSEDIT=SYSEDIT. 
ENDIF,STEP29. 
.*
.*    STEP 29 - IF 5X70 IS DEFINED, COMPILE NIP.
.*
IFE,$5X70$.EQ.$#5X70$,STEP30. 
BEGIN,CML5A,CMLINST,TEST=NIP,FMOD=NIP00,LMOD=NIP99A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=NIP,#SYSEDIT=SYSEDIT. 
ENDIF,STEP30. 
.*
.*    STEP 30 - IF UNIBUS IS DEFINED, COMPILE PDP.
.*
IFE,$UNIBUS$.EQ.$#UNIBUS$,STEP31. 
BEGIN,CML5A,CMLINST,TEST=PDP,FMOD=PDP01,LMOD=PDP99B,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=PDP,#SYSEDIT=SYSEDIT. 
ENDIF,STEP31. 
.*
.*    STEP 31 - IF 895 IS DEFINED, COMPILE DM8. 
.*
IFE,$895$.EQ.$#895$,STEP32. 
BEGIN,CML5A,CMLINST,TEST=DM8,FMOD=DM800,LMOD=DM899B,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=DM8,#SYSEDIT=SYSEDIT. 
ENDIF,STEP32. 
.*
.*    STEP 32 - IF STORNET IS DEFINED, COMPILE MSD AND MSM. 
.*
IFE,$STORNET$.EQ.$#STORNET$,STEP33. 
BEGIN,CML5A,CMLINST,TEST=MSD,FMOD=MSD00,LMOD=MSD99B,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=MSD,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=MSM,FMOD=MSM00,LMOD=MSM99B,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=MSM,#SYSEDIT=SYSEDIT. 
ENDIF,STEP33. 
.*
.*    STEP 33 - IF IPIDISK IS DEFINED, COMPILE IDA AND IDT. 
.*
IFE,$IPIDISK$.EQ.$#IPIDISK$,STEP34. 
BEGIN,CML5A,CMLINST,TEST=IDA,FMOD=IDA00,LMOD=IDA99A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=IDA,#SYSEDIT=SYSEDIT. 
BEGIN,CML5A,CMLINST,TEST=IDT,FMOD=IDT00,LMOD=IDT99A,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=IDT,#SYSEDIT=SYSEDIT. 
ENDIF,STEP34. 
.*
.*    STEP 34 - IF CARTAPE IS DEFINED, COMPILE TCT. 
.*
IFE,$CARTAPE$.EQ.$#CARTAPE$,STEP35. 
BEGIN,CML5A,CMLINST,TEST=TCT,FMOD=TCT00,LMOD=TCT99B,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=TCT,#SYSEDIT=SYSEDIT. 
ENDIF,STEP35. 
.*
.*    TERMINATE  (ADD NEW TESTS BEFORE THIS COMMENT.) 
.*
*WEOR 
.PROC,CML5A,
MALDOC=NONE,DEFINE=NULL,SYSEDIT=,TEST=,DECK=,FMOD=,LMOD=, 
*IF,DEF,DEBUG,1 
EXECUTE=, 
USER=,CHARGE=.
.*
.* PROCEDURE NAME - CML5A 
.*
.* PURPOSE - CREATE A JOB WHICH WILL COMPILE ONE MALET DIAGNOSTIC 
.*           (OR COPY THE PRECOMPILED BINARY) AND GENERATE ANY
.*           REQUESTED DIAGNOSTIC DOCUMENTATION.
.*
.* PARAMETERS USED - USER       CHARGE
.*                   SYSEDIT
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* LOCAL PARAMETERS USED (NOT SUPPLIED BY USER) 
.*
.*            DEFINE - THE UPDATE DEFINE REQUIRED TO COPY THE 
.*                     CORRECT SOURCE CODE FOR THE SPECIFIED
.*                     TEST TO THE COMPILE FILE.
.*
.*            TEST   - THE NAME OF THE TEST TO BE COMPILED. 
.*
.*            DECK   - THE UPDATE DECKNAME FROM WHICH THE 
.*                     SOURCE CODE IS PULLED FOR THE TEST.
.*
.*            FMOD   - THE NAME OF THE FIRST MODULE IN THE TEST SERIES. 
.*
.*            LMOD   - THE NAME OF THE LAST MODULE IN THE TEST SERIES.
.*
.* PROCEDURE CALLED BY - CML5 
.*
.* INSTALLATION JOB INITIATED BY - CML5A
.*
.* PROCEDURES USED - SAVEIT 
.*
.* PREREQUISITES - LOCAL MODS, IF ANY, MUST BE ON AN INDIRECT ACCESS
.*                 PERMANENT FILE DECK_MODS; WHERE _DECK_ IS A 3-CHARACTER
.*                 MALET DIAGNOSTIC DECKNAME (NOT A TEST NAME). 
.*
.*                 CML PROGRAM LIBRARY ON DIRECT ACCESS FILE CMLPL. 
.*
.*                 IF INSTALLATION OF PRECOMPILED MALET DIAGNOSTICS IS
.*                 DESIRED, A COPY OF THE MALET DIAGNOSTIC BINARY FILE
.*                 FROM THE CML TAPE (FILE 14) MUST BE ON DIRECT ACCESS 
.*                 FILE "DIAGLIB".  (NOTE - THE FILE SHOULD BE A LIBRARY
.*                 FILE IN ORDER TO REDUCE SEARCH TIME.)
.*
.*                 MALET COMPILER (THE VERSION ASSEMBLED BY CML2) EITHER
.*                 ON THE SYSTEM LIBRARY (IF SYSEDIT WAS PERFORMED) OR
.*                 ON DIRECT ACCESS FILE MALET (IF SYSEDIT WAS NOT
.*                 PERFORMED. 
.*
.*                 MLTDOC ON EITHER A DIRECT OR INDIRECT ACCESS FILE MLTDOC 
.*                 IF HARDCOPY DOCUMENTATION IS REQUESTD. 
.*
.* METHOD USED - JOB CML5A FIRST CHECKS TO SEE IF A MODFILE EXIXTS
.*               FOR THE DIAGNOSTIC.  IF ONE IS FOUND, THE MODS 
.*               ARE APPLIED AGAINST THE DECK CONTAINED ON CMLPL, 
.*               THE DIAGNOSTIC COMPILED, AND ANY REQUESTED 
.*               REQUESTED DOCUMENTATION IS GENERATED.
.*
.*               IF NO MODFILE IS FOUND, A CHECK IS MADE TO SEE IF
.*               A PERMANENT FILE NAMED "DIAGLIB" IS AVAILABLE.  IF 
.*               AVAILABLE, THE SPECIFIED DIAGNOSTIC BINARY IS
.*               EXTRACTED FROM THE FILE AND SAVED AS A PERMANENT 
.*               FILE UNDER THE TEST NAME.  IF ERRORS OCCUR WHEN
.*               EXTRACTING THE TEST, IT IS COMPILED FROM CMLPL.
.*               ANY REQUESTED DOCUMENTATION IS ALSO GENERATED. 
.*
.* REGISTERS USED - R1=0 ... MALET COMPILE NOT REQUIRED.
.*                  R1=1 ... COMPILE THE DIAGNOSTIC WITH MODS.
.*                  R1=2 ... COMPILE THE DIAGNOSTIC WITHOUT MODS. 
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
.*
.*    IF LOCAL MODIFICATIONS ARE TO BE INCORPORATED IN THE TEST,
.*    SAVE THE GENERATED JOB IN CASE ERRORS RESULT AND THE JOB
.*    MUST BE RERUN.
.*
GET,DECK_MODS/NA. 
IFE,FILE(DECK_MODS,LO),NOMODS.
REPLACE,TEST=GEN_TEST.
RETURN,DECK_MODS. 
ENDIF,NOMODS. 
ROUTE,TEST,DC=IN. 
*IF,DEF,DEBUG,4 
ELSE,GONOXEQ. 
REWIND,TEST.
COPYSBF,TEST,MALJOBS. 
RETURN,TEST.
ENDIF,GONOXEQ.
REVERT. - TEST COMPILE SUBMITTED -
.*
.* START OF CML5A INSTALLATION JOB
.*
.DATA,TEST. 
CML_TEST,T7000.  - TEST COMPILE - 
USER
CHARGE
SETTL,*.
SETASL,*. 
SETJSL,*. 
.*
.*    STEP 1 - CHECK TO SEE IF A MODFILE IS AVAILABLE.  IF NOT, PROCEED 
.*    TO STEP 2; ELSE GO TO STEP 4. 
.*
SET,R1=0. 
GET,DECK_MODS/NA. 
IFE,FILE(DECK_MODS,LO),STEP2. 
SET,R1=1. 
SKIP,STEP4. 
.*
.*    STEP 2 - CHECK TO SEE IF FILE "DIAGLIB" IS AVAILABLE.  IF YES,
.*    PROCEED TO STEP 3; IF NOT, GO TO STEP 4.
.*
ENDIF,STEP2.
SET,R1=2. 
ATTACH,DIAGLIB/NA.
IFE,FILE(DIAGLIB,AS),STEP4. 
.*
.*    STEP 3 - USE GTR TO GET THE FIRST THROUGH LAST MODULES, THEN
.*    COPY THE INDEX RECORD USING "COPYBR".  IF NO ERRORS, SAVE THE 
.*    DIAGNOSTIC.  IF DOCUMENTATION IS NOT REQUESTED, GO TO STEP 7. 
.*    IF ERRORS AND/OR DOCUMENTATION IS REQUESTED, PROCEED TO STEP 4. 
.*
RFL,50000.
GTR,DIAGLIB,TEST,,NR,,NA.TEXT/FMOD-LMOD 
IFE,FILE(TEST,LO),STEP4.
COPYBR,DIAGLIB,TEST.
WRITEF,TEST.
SET,R1=0. 
BEGIN,SAVEIT,CMLINST,PFILE=TEST.
IFE,$MALDOC$.NE.$NONE$,STEP7. 
.*
.*    STEP 4 - PERFORM THE UPDATE.
.*
ENDIF,STEP4.
ATTACH,OLDPL=CMLPL. 
IFE,R1.EQ.1,STEP4A. 
$UPDATE,Q.
RETURN,DECK_MODS. 
ELSE,STEP4A.
$UPDATE,Q,L=1.
ENDIF,STEP4A. 
RETURN,OLDPL. 
.*
.*    STEP 5 - COMPILE THE DIAGNOSTIC IF REQUIRED AND SAVE IT.
.*
IFE,R1.NE.0,STEP6.
PURGE,TEST/NA.
.*
.*    IF SYSEDIT WAS NOT PERFORMED, ATTACH THE PERMANENT FILE COPY OF MALET 
.*    CREATED BY CML4; ELSE USE THE VERSION ON THE SYSTEM LIBRARY.  THEN
.*    COMPILE THE DIAGNOSTIC. 
.*
IFE,$SYSEDIT$.NE.$#SYSEDIT$,STEP5A. 
ATTACH,MALET. 
ENDIF,STEP5A. 
MALET,I=COMPILE,L=TRASH,R=TEST. 
.*
.*    STEP 5A - CALL SAVEIT TO MAKE THE COMPILED BINARY EITHER A DIRECT OR
.*    INDIRECT ACCESS PERMANENT FILE.  (ALL BINARIES ARE SAVED AS INDIRECT
.*    ACCESS, UNLESS THEY EXCEED THE MAXIMUM ALLOWABLE INDIRECT ACCESS FILE 
.*    SIZE, IN WHICH CASE THEY ARE COPIED TO A DIRECT ACCESS PERMANENT FILE.
.*
BEGIN,SAVEIT,CMLINST,PFILE=TEST.
RETURN,TEST,TRASH.
.*
.*
.*    STEP 6 - IF DOCUMENTATION IS REQUESTED, ACCESS MLTDOC; ELSE 
.*    GO TO STEP7.
.*
ENDIF,STEP6.
IFE,$MALDOC$.NE.$NONE$,STEP7. 
GET,MLTDOC/NA.
IFE,FILE(MLTDOC,.NOT.LO),STEP6A.
ATTACH,MLTDOC.
ENDIF,STEP6A. 
REWIND,COMPILE. 
MLTDOC,COMPILE,EXT,INT. 
RETURN,MLTDOC.
.*
.*    STEP6A - DETERMINE THE TYPE OF DOCUMENTATION REQUESTED AND
.*    COPY IT TO OUTPUT.
.*
IFE,$MALDOC$.NE.$BOTH$,STEP6B.
IFE,$MALDOC$.EQ.$EXT$,STEP6C. 
ENDIF,STEP6B. 
REWIND,EXT. 
COPY,EXT,OUTPUT.
ENDIF,STEP6C. 
IFE,$MALDOC$.NE.$EXT$,STEP7.
REWIND,INT. 
COPY,INT,OUTPUT.
.*
.*    STEP 7 - TERMINATE
.*
ENDIF,STEP7.
.EOR
*TEXT 
*READ,DECK_MODS 
*IDENT,TEST_DEF 
*#DEFINE,DEFINE 
*COMPILE,DECK 
*ENDTEXT
.EOF
*WEOR 
.PROC,CML6, 
800=$$/800, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
MMF=$*/  MULTI-MAINFRAME NOT DEFINED$/$*DEFINE,MMF$,
REL1APFN=,REL1AUN=,REL1APW=,REL1APAK=,REL1ADT=,REL1AVSN=,REL1ADEN=, 
USER=$_USER_$,
CHARGE=,
SYSVER=.
.*
.* PROCEDURE NAME - CML6
.*
.* PURPOSE - CREATE AN INSTALLATION JOB WHICH WILL ASSEMBLE SKEDULR AND 
.*           COMPILE MLTDOC, MCCOMP, MCDUMP, MTPLOT, AND DSPLOT.
.*
.* PARAMETERS USED - USER     CHARGE   REL1APFN   REL1APAK   REL1APW
.*                   SYSVER   MMF      REL1AUN    REL1ADT    REL1AVSN 
.*                                                800        RELEADEN 
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* PROCEDURE CALLED BY - CML
.*
.* INSTALLATION JOB INITIATED BY - CML2 
.*
.* PROCEDURES USED - SAVEIT 
.*                   GETOPL 
.*
.* PREREQUSITES - MLTDOC MODS, IF ANY, ON INDIRECT ACCESS FILE MLTDOC.
.*
.*                SKEDULR MODS, IF ANY, ON INDIRECT ACCESS FILE SKEDMDS.
.*
.*                MCCOMP MODS, IF ANY, ON INDIRECT ACCESS FILE MCCMODS. 
.*
.*                MCDUMP MODS, IF ANY, ON INDIRECT ACCESS FILE MCDMODS. 
.*
.*                MTPLOT MODS, IF ANY, ON INDIRECT ACCESS FILE MTPMODS. 
.*
.*    HPTEXT MODS, IF ANY, ON INDIRECT ACCESS FILE HPTMODS
.*
.*    DSPLOT MODS, IF ANY, ON INDIRECT ACCESS FILE DSPMODS
.*   HPTEXT MUST HAVE BEEN INSTALLED BEFORE DSPLOT. 
.*
.*                DKDATA MODS, IF ANY, ON INDIRECT ACCESS FILE DKDMODS. 
.*
.*                CML PROGRAM LIBRARY ON DIRECT ACCESS FILE CMLPL.
.*
.* METHOD USED - SEE IMBEDDED TEXT. 
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
REPLACE,CML6. 
*IF,DEF,DEBUG,1 
ENDIF,GONOXEQ.
REVERT. - END CML6 -
.*
.* START OF CML6 INSTALLATION JOB 
.*
.DATA,CML6. 
CML6,T7000.     - SKEDULR/MLTDOC/MCCOMP/MCDUMP/MTPLOT/DSPLOT/DKDATA - 
USER
CHARGE
SETTL,*.
SETASL,*. 
SETJSL,*. 
.*
.*    STEP 1 - ACCESS CMLPL, OBTAIN ANY MODIFICATIONS TO MLDTOC, SKEDULR, 
.*    MCCOMP, MCDUMP, MTPLOT, DSPLOT, AND DKDATA, THEN PERFORM THE UPDATE.
.*    IF ANY MODS ARE INCORPORATED, INCLUDE THEM IN THE UPDATE LIST FILE; 
.*    ELSE LIST ONLY ERRORS.
.*
ATTACH,OLDPL=CMLPL. 
GET,SKEDMDS,MLTMODS,MTPMODS,HPTMODS,DSPMODS,DKDMODS/NA. 
IFE,$800$.EQ.$#800$,STEP1A1.
GET,MCCMODS,MCDMODS/NA. 
ENDIF,STEP1A1.
IFE,FILE(MLTMODS,.NOT.LO),STEP1A. 
IFE,$800$.EQ.$#800$,STEP1A2.
IFE,FILE(MCCMODS,.NOT.LO),STEP1A. 
IFE,FILE(MCDMODS,.NOT.LO),STEP1A. 
ENDIF,STEP1A2.
IFE,FILE(MTPMODS,.NOT.LO),STEP1A. 
IFE,FILE(HPTMODS,.NOT.LO),STEP1A. 
IFE,FILE(DSPMODS,.NOT.LO),STEP1A. 
IFE,FILE(DKDMODS,.NOT.LO),STEP1A. 
IFE,FILE(SKEDMDS,LO),STEP1B.
ENDIF,STEP1A. 
$UPDATE,Q,K,D,8.
RETURN,MLTMODS,SKEDMDS,MCCMODS,MCDMODS,MTPMODS,HPTMODS,DSPMODS. 
RETURN,DKDMODS. 
ELSE,STEP1B.
$UPDATE,Q,K,D,8,L=1.
ENDIF,STEP1B. 
RETURN,OLDPL. 
.*
.*    STEP 2 - ACCESS SYSOPL, COMPILE MLTDOC AND RUN IT THROUGH LOADER.  THEN 
.*    CALL SAVEIT TO MAKE THE ABSOLUTE BINARY A PERMANENT FILE. 
.*
BEGIN,GETOPL,CMLINST,REL1APFN,REL1AUN,REL1APW,REL1APAK,REL1AVSN,REL1ADEN, 
REL1ADT.
FTN5,ANSI=0,I,PL=999999,ET,L=0.   - COMPILE MLTDOC -
PURGE,MLTDOC/NA.
RETURN,MLTDOC.
MAP(OFF)
LOAD(LGO) 
NOGO(MLTDOC)
BEGIN,SAVEIT,CMLINST,PFILE=MLTDOC.
RETURN,MLTDOC,LGO.
.*
.*    STEP 3 - ASSEMBLE SKEDULR, THEN SAVE THE RELOCATABLE BINARY AS AN 
.*    INDIRECT ACCESS PERMANENT FILE. 
.*
RFL,100000. 
COMPASS,A,I,X,S=NOSTEXT,L=0,B=SKEDULR.   - ASSEMBLE SKEDULR 
BEGIN,SAVEIT,CMLINST,PFILE=SKEDULR. 
RETURN,SKEDULR,LGO. 
.*
.*    STEP 4 - IF 800 IS DEFINED, COMPILE MCCOMP AND MCDUMP, RUN THEM 
.*    THROUGH LOADER, AND RETAIN THEM AS PERMANENT FILES. 
.*
IFE,$800$.EQ.$#800$,STEP4.
FTN5,ANSI=0,I,PL=999999,L=0,OPT=2,ET,B=MCCOMP.
BEGIN,SAVEIT,CMLINST,PFILE=MCCOMP.
RETURN,MCCOMP,LGO.
FTN5,ANSI=0,I,PL=999999,L=0,OPT=2,ET,B=MCDUMP. - COMPILE MCDUMP - 
BEGIN,SAVEIT,CMLINST,PFILE=MCDUMP.
RETURN,MCDUMP,LGO.
ELSE,STEP4. 
SKIPR,COMPILE,2.
ENDIF,STEP4.
.*
.*    STEP 5 - COMPILE MTPLOT.
.*
FTN5,ANSI=0,I,L=0,OPT=2,B=MTPLOT,ET. - COMPILE MTPLOT - 
BEGIN,SAVEIT,CMLINST,PFILE=MTPLOT.
RETURN,LGO,MTPLOT.
.*
.*    STEP 6 - COMPILE HPTEXT, DSPLOT, AND DKDATA.
.*
COMPASS,A,I,B=TXT,L=0.
IFE,$SYSVER$.EQ.$NOS4$.OR.$SYSVER$.EQ.$NOS5$,NOLIB. 
FTN5,I,ANSI=0,L=0,OPT=2,B=DSPLOT,G=TXT,ET.  - COMPILE DSPLOT -
ENDIF,NOLIB.
IFE,$SYSVER$.NE.$NOS4$.OR.$SYSVER$.NE.$NOS5$,NOLIB1.
LIBGEN,F=TXT,P=HPTEXT,N=HPTEXT. 
FTN5,I,ANSI=0,L=0,OPT=2,B=DSPLOT,ET,G=HPTEXT.  - COMPILE DSPLOT - 
ENDIF,NOLIB1. 
BEGIN,SAVEIT,CMLINST,PFILE=DSPLOT.
RETURN,LGO,DSPLOT.
COPY,COMPILE,DKDATA. - COPY DKDATA -
BEGIN,SAVEIT,CMLINST,PFILE=DKDATA.
RETURN,DKDATA.
.EOR
*TEXT 
*IDENT,CML6DEF
*TEXT 
*READ,MLTMODS 
*ENDTEXT
*COMPILE,MLTDOC 
*TEXT 
*COMPILE,CWEOR1 
*ENDTEXT
*DEFINE,NOS,SYSVER
MMF 
*TEXT 
*READ,SKEDMDS 
*ENDTEXT
*COMPILE,SKEDULR
*ENDTEXT
*TEXT 
*COMPILE,CWEOR2 
*READ,MCCMODS 
*COMPILE,MCCOMP 
*COMPILE,CWEOR3 
*READ,MCDMODS 
*COMPILE,MCDUMP 
*COMPILE,CWEOR4 
*READ,MTPMODS 
*COMPILE,MTPLOT 
*COMPILE,CWEOR5 
*TEXT 
*READ,HPTMODS 
*COMPILE,HPTEXT 
*COMPILE,CWEOR6 
*ENDTEXT
*READ,DSPMODS 
*COMPILE,DSPLOT 
*TEXT 
*COMPILE,CWEOR7 
*ENDTEXT
*READ,DKDMODS 
*COMPILE,DKDATA 
*ENDTEXT
.EOR
*WEOR 
*IF DEF,NOS23,1 
.PROC,CMSI*M"CMSI -    CMSI  INITIALIZATION (NOS 2.3) - CMLLEV" 
*IF -DEF,NOS23,1
.PROC,CMSI*M"CMSI   -   CMSI  INITIALIZATION (CML859)"
*IF DEF,NOS22,1 
.PROC,CMSI*M"CMSI -    CMSI  INITIALIZATION     - CMLLEV" 
,OPTINIT= 
(1"   INITIALIZE CMSI PROCEDURES" 
,2"   EXIT"). 
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - CMSI 
.*
.*        CMSI INITIALIZATION INTERFACE 
.*
.*    PURPOSE - FORCE THE USER THROUGH THE CMSI INITIALIZATION
.*              PROCEDURE (CMSI500) THE FIRST TIME THE CMSI 
.*              PROCEDURES ARE CALLED.
.*
.*              **************** NOTE ******************
.*
.*              THIS PROCEDURE EXISTS IN THE CMLINST LIBRARY
.*              ONLY UNTIL THE INITIALIZATION PROCESS IS COMPLETE.
.*              DURING INITIALIZATION, THIS PROCEDURE IS REPLACED 
.*              BY ONE OF THE SAME NAME WHICH WILL THEN PASS THE
.*              USER DIRECTLY THROUGH TO THE CMSI MAIN MEMU 
.*              CONTAINED IN CMSI000. 
.*
.*    PARAMETERS - OPTININT 
.*
.*    CALLED BY - DIRECTLY BY USER
.*
.*    PROCEDURES CALLED - CMSI500 
.*
.* -------------------------------------------------------------
.*
.PROMPT,CMSI> SELECT BY NUMBER OR TYPE ? FOR HELP.
.HELP.
  
    CMSI (COMMON MAINTENANCE SOFTWARE INTERFACE)
    IS A SET OF NOS CYBER CONTROL LANGUAGE (CCL)
    PROCEDURE FILES CONTAINED ON CMLINST LIBRARY
    PERMANENT FILE.  THE INTENT IS TO PROVIDE THE 
    FIELD WITH A STANDARD CML INTERFACE.  ACCES TO
    COMMON PROCEDURES WILL IMPROVE RTA AND SERVICE
    CENTER SUPPORT OF THE FIELD SITES AND MOVE THE
    FIELD TOWARD A COMMON MAINTENANCE APPROACH. 
  
    A FULL SET OF HELP SECTIONS ARE PROVIDED FOR
    ALL ENTRIES REQUIRED TO USE THESE PROCEDURES. 
  
    FOR ANY ENTRY A '?' MAY BE USED TO SEE THE
    AVAILABLE HELP INFORMATION. 
  
.HELP,1,NOLIST. 
  
    THIS SELECTION ALLOWS THE USER TO INITIALIZE THE CMSI PROCEDURES. 
    INITIALIZATION IS REQUIRED BEFORE THE PROCEDURES CAN BE USED. 
  
    ITEMS YOU MUST KNOW IN ORDER TO SUCCESSFULLY INITIALIZE THE CMSI
    PROCEDURES INCLUDE- 
  
    - THE PERM FILE NAME OF THE HPA OLD HISTORY FILE (OLDHF)
  
    - THE USERNAME OF THE PERM FILE CATALOG WHERE OLDHF RESIDES 
  
    - THE SITE NAME 
  
    - THE NUMBER OF DISK DRIVES CONTAINED ON THE SYSTEM 
  
     - THE RESIDENCY OF THE OLDHF.  IF ON AN
       AUXILLIARY DEVICE. 
  
    - THE DESIRED MODE OF OPERATION - CAPTURE OR AVAILABLE
  
.HELP,2,NOLIST. 
  
    THIS SELECTION WILL EXIT THE PROCEDURES AND RETURN THE USER 
    TO NOS.  IF YOU DO NOT HAVE ALL OF THE DATA LISTED IN THE 
    HELP INFORMATION FOR SELECTION 1, IT IS SUGGESTED THAT YOU
    SELECT THIS OPTION. 
  
.ENDHELP. 
.*
.*    STEP 1 - IF CMLINST IS NOT ALREADY IN THE GLOBAL LIBRARY
.*             SET, PUT IT THERE. 
.*
$IF,FILE(CMLINST,.NOT.GL).$LIBRARY,CMLINST/A. 
.*
.*   TEST LIBRARY AGAIN.....
.*
$IF,FILE(CMLINST,.NOT.GL),STEP1.
$NOTE.++  CMLINST NOT IN LIBRARY FORMAT.
$NOTE.++  RUN BININST TO FORMAT THE CMLINST PROCEDURE 
$NOTE.+  FILE INTO THE PROPER FORMAT.....++ 
$SKIP,ERREND. 
.*
$ENDIF,STEP1. 
.IF,OPTINIT.EQ.1,GOEXIT.
CMSI500.
.ELSE,GOEXIT. 
$RETURN,CMLINST.
$LIBRARY,CMLINST/D. 
$REVERT. - CANCEL CMSI INTIALIZATION -
.ENDIF,GOEXIT.
$ENDIF,ERREND.
$REVERT......ERROR END TO CMSI......
*WEOR 
*IF DEF,NOS23,1 
.PROC,CMSI000*M"COMMON MAINTENANCE SOFTWARE INTERFACE (NOS 2.3) - CMLLEV ", 
*IF -DEF,NOS23,1
.PROC,CMSI000*M"COMMON MAINTENANCE SOFTWARE INTERFACE (CML859)",
*IF DEF,NOS22,1 
.PROC,CMSI000*M"COMMON MAINTENANCE SOFTWARE INTERFACE - CMLLEV ", 
OPT000= 
(1"  ANALYSIS INTERFACE    - HPA / NPA / MTPLOT / DSPLOT" 
,2"  DIAGNOSTIC INTERFACE  - MALET / CPU / MST / TIO-REGEN / LCN / CDCNET"
,3"  DUMP INTERFACE        - DSDI /  MCDUMP / MCCOMP / ANALDMP "
,4"  UTILITIES INTERFACE   - CMLUTIL / EST TABLE / MOD CMLINST  " 
,5"  REINITIALIZE CMSI     - RESET ANY CMSI PARAMETERS "
,6"  EXIT TO NOS           - EXIT TO THE NOS OPERATING SYSTEM " 
,7"  LOGOFF                - TERMINATE THIS TERMINAL SESSION"). 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI000
.*
.*       CMSI MAIN MENU 
.*
.*    PURPOSE - DISPLAY MAIN CMSI MENU SELECTIONS.
.*
.*    PARAMETERS - OPT000 
.*
.*    CALLED BY - ALL PROCEDURES
.*
.*    PROCEDURES CALLED - CMSI000 , CMSI100 , CMSI200 , CMSI300 
.*                        CMSI400 , CMSI001 , CMSI700 , CMSIEFC 
.*
.* -------------------------------------------------------- 
.*
.PROMPT,CMSI000> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.HELP.
  
    CMSI (COMMON MAINTENANCE SOFTWARE INTERFACE)
    IS A SET OF NOS CYBER CONTROL LANGUAGE (CCL)
    PROCEDURE FILES CONTAINED ON CMLINST LIBRARY
    PERMANENT FILE.   THE INTENT IS TO PROVIDE THE
    FIELD WITH A STANDARD CML INTERFACE.   ACCESS TO
    COMMON PROCEDURES WILL IMPROVE  RTA AND SERVICE 
    CENTER SUPPORT OF THE FIELD SITES AND MOVE THE
    FIELD TOWARD A COMMON MAINTENANCE APPROACH. 
  
    A FULL SET OF HELP SECTIONS ARE PROVIDED FOR
    ALL ENTRIES REQUIRED TO USE THESE PROCEDURES. 
  
    FOR ANY ENTRY A '?' MAY BE USED TO SEE THE
    AVAILABLE HELP INFORMATION. 
  
     SEVERAL INCOMPATIBILITIES BETWEEN CCL FEATURES OF
     NOS 2.4 AND NOS 2.3 REQUIRE THAT CMLINST PROCEDURE 
     BE RUN IF YOU ARE RUNNING ON A NOS 2.3 L617 SYSTEM.
     CMLINST WILL UPDATE THE PROCEDURE LIBRARY FROM THE 
     RELEASED CML FILES AND USE 'SYSVER' TO CONFIGURE THE 
     CMSI PROCEDURES PROPERLY.  (THE CML AND CML1.. JOBS
     NEED NOT BE RUN TO FIX CMSI.  THEY MAY BE RUN FOR
     OTHER REASONS IF THE USER DESIRES.). 
  
  
.HELP,1,NOLIST. 
  
    THIS SELECTION PROVIDES ACCESS TO THE HPA USAGE 
    ROUTINES AND MTPLOT AND DSPLOT ANALYSIS PROGRAMS
    AND THE CDCNET REPORT GENERATOR  NPA. 
  
    OPTIONS ARE PROVIDED TO RUN HPA FOR ANY SELECTED
    NUMBER OF DAYS , ON ANY DEVICE IN THE CONFIGURATION 
    OR ON THE HISTORY FILE.  (LIMITED BY THE HISTORY
    FILE LIMITS ENFORCED AT THE SITE. 
  
    MTPLOT AND DSPLOT CAN BE RUN ON A DAILY OR
    WEEKLY BASIS OR THE PREVIOUSLY SAVED WEEKLY RUN 
    LIST OUTPUT CAN BE VIEWED OR PRINTED. 
  
.HELP,2,NOLIST. 
  
    THIS SELECTION PROVIDES ACCESS TO MALET , 
    CPU  /MEMORY BACKGROUND DIAGNOSTIC TEST,
    CDCNET DIAGNOSTICS AND STATUS DISPLAYS, 
    AND THE NOS MASS STORAGE TEST  MST. 
  
    MALET HELPS ARE AVAILABLE AND THE SYSTEM
    EST CAN BY VIEWED.
  
.HELP,3,NOLIST. 
  
    THIS SELECTION PROVIDES ACCESS TO THE NOS EDD 
    DUMP POST PROCESSOR ( INTERPRETER)  DSDI. 
  
    OPTIONS FOR SELECTING CANNED PARAMETERS OR
    ENTERING DIRECTIVES FROM THE TERMINAL ARE 
    PROVIDED. 
  
  
.HELP,4,NOLIST. 
  
  
    THIS SELECTION PROVIDES ACCESS TO OTHER MISC. 
    FUNCTIONS AND PROCEDURES WITHIN CMSI. 
     - ACCESS TO THE CMLUTIL ROUTINES FOR INSTALLATION
       AND UPDATE OF CML ITEMS. 
     - LIST THE MACHINE EQUIPMENT STATUS TABLE (EST) TO 
       DISPLAY OR PRINTER.
     - ACCESS TO PROCEDURES TO ADD/CORRECT CMLINST OR CMSI
       CODE TO CMSI OR CMLINST DECK.
       CODE TO CMSI OR CMLINST DECK.
  
  
.HELP,5,NOLIST. 
  
     THIS SELECTION PROVIDES CMSI WITH A MEANS TO CHANGE
     THE INITIALIZATION PARAMETERS WITHIN CMSI.   THIS
     PROCESS WILL USE THE SAME PATH THAT THE ORIGINAL 
     INITIALIZATION PROCESS USED. 
  
.HELP,6,NOLIST. 
  
     EXIT TO THE NOS OPERATING SYSTEM.. 
     TERMINATE THIS CMSI PROCEDURE. 
  
.HELP,7,NOLIST. 
  
    THIS SELECTION PROVIDES FOR A TERMINAL LOGOFF 
    DIRECTLY FROM CMSI.  NO FILES ARE REPLACED IN 
    THIS LOGOFF NOR ARE ANY STATISTICS CAPTURED.
  
.ENDHELP. 
.*
.*       STEP  1. 
.*        BEGIN PROPER PROCEDURE BASED UPON 
.*        THE SELECTION OF OPT000.
.*
DISPLAY(PNL)
.*
.IF,OPT000.EQ.1.CMSI100.         ANALYSIS INTERFACE 
.IF,OPT000.EQ.2.CMSI200.         DIAGNOSTICS TESTS
.IF,OPT000.EQ.3.CMSI300.         DSDI ROUTINES
.IF,OPT000.EQ.4.CMSI400.         UTILITIES
.IF,OPT000.EQ.5.CMSI500.         RESET CMSI 
.IF,OPT000.EQ.6.CMSI001.         TO NOS 
.IF,OPT000.EQ.7.CMSI700.         LOGOFF 
.*
DISPLAY(PNL)
$REVERT,EX.CMSI000. 
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT,EX.CMSI000. 
*WEOR 
.PROC,CMSI001.
$NOTE.+ ///  IN  CMSI001  /// 
$NOTE.+ LIBRARY  RETURNED.+ 
DISPLAY(PNL)
.*
.*------------------------
$LIBRARY,CMLINST/D. 
$RETURN,CMLINST.
$CLEAR. 
$EXIT.     EXIT TO NOS
*WEOR 
.PROC,CMSI100*M"CMSI - ANALYSIS INTERFACE  -  CMSI100", 
OPT100= 
(1" HPA INTERFACE"
,2" NPA CDCNET INTERFACE" 
,3" MTPLOT / DSPLOT INTERFACE"
,9" --------------- RETURN TO MAIN CMSI MENU" ).
.PROMPT,CMSI100> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI100
.*
.*       PROCESS ANALYSIS PROGRAM SELECTIONS
.*
.*
.*    PURPOSE - PROCESS THE SELECTION OF OPT000=1 FROM THE MAIN 
.*            CMSI000 MENU.  THEN START THE PROPER PROCEDURE. 
.*
.*    PARAMETERS - OPT100 
.*
.*    CALLED BY - CMSI000 , CMSI100 , CMSI110 , CMSI111 
.*
.*    PROCEDURES CALLED - CMSI100 , CMSI110 , CMSI120 , CMSIEFC 
.*                        CMSI130 
.*
.* -------------------------------------------------------- 
.*
.HELP.
  
    THIS SELECTION PROVIDES ACCESS TO RUN SEVERAL 
    SITE EQUIPMENT ANALYSIS PROGRAMS:  HPA , MTPLOT , 
    AND DSPLOT. 
    EACH MAIN SELECTIONS PROVIDE SEVERAL OPTIONS
     TO CONTROL PROCESSING. 
  
    SEE HELPS FOR EACH FOR MORE DETAIL. ( TYPE NUMBER? (CR) ) 
                                   IE.  2? (CR) 
  
.HELP,1.
  
      SUBMIT/PROCESS A VARITY OF HPA RELATED JOBS IN BOTH BATCH 
      AND INTERACTIVELY MODE.   OPTIONS FOR EQUIMENT, 
      REPORT TYPE, AND DATA SOURCE AND OUTPUT ARE AVAILABLE.
  
      SUBMIT A LOCAL SITE JOB FILE FOR BATCH PROCESSING.
  
     THIS PROCEDURE DOES NOT MAINTAIN NOR UPDATE
     THE SITE HPA HISTORY FILES.
     THIS TASK REMAINS THE RESPONSIBILITY OF THE SITE.
  
.HELP,2,NOLIST. 
  
     THIS SELECTION PROVIDES A CMSI ACCESS
     TO THE CDCNET REPORT GENERATOR  NPA. 
     CMSI WILL FORMAT A CALL TO THE CRECAR
     PROCEDURE IN THE NPAPLIB PROVIDED BY 
     THE CDCNET SOFTWARE. 
  
  
.HELP,3,NOLIST. 
  
    THIS SELECTION PROVIDES CMSI ACCESS TO THE
    MTPLOT AND DSPLOT ROUTINES SUPPLIED ON
    THE CML RELEASE TAPE. 
  
    OPTIONS ARE PROVIDED TO:  
     1. READ PREVIOUS WEEKLY MTPLOT OR
        DSPLOT OUTPUT.
     2. RUN MTPLOT OR DSPLOT IN A 'DAILY' 
        MANNER.  JOB IS RUN INTERACTIVELY.
     3. RUN MTPLOT AND DSPLOT IN A 'WEEKLY' 
        MANNER AND REPLACE THE SAVED OUTPUT 
        FILE.  RUN IN A BATCH OR INTERACTIVE
        MODE. 
  
    FOR MORE INFORMATION ON MTPLOT AND DSPLOT 
    SEE THE APPROPRIATE SECTION OF THE
    CML REFERENCE MANUAL  PUB NO. 60455980. 
  
.HELP,9,NOLIST. 
  
      THIS SELECTION WILL RETURN TO CMSI000 MAIN MENU 
  
.ENDHELP. 
.*
.*    STEP  1.
.*       BEGIN PROPER PROCEDURE BASED UPON OPT1 
.*       SELECTION. 
.*
DISPLAY(PNL)
.IF,OPT100.EQ.1.CMSI110.            HPA 
.IF,OPT100.EQ.2.CMSI120.            NPA 
.IF,OPT100.EQ.3.CMSI130.            MTPLOT/DSPLOT 
.*
.IF,OPT100.EQ.9.$REVERT,NOLIST. 
.*
DISPLAY(PNL)
$REVERT,EX.CMSI100. 
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
*WEOR 
.PROC,CMSI110*M"CMSI - HPA   INTERFACE    -   CMSI110", 
OPT110= 
(1"INTERACTIVE HPA RUN",
 2"BATCH HPA RUN",
 3"READ BATCH HPA OUTPUT",
 4"SUBMIT USER HPA JOB",
 5"DISPLAY EST TABLE",
 9" --------------- RETURN TO MAIN CMSI MENU" ).
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI110
.*
.*       PROCESS HPA SELECTION. 
.*
.*    PURPOSE - BEGIN PROCESSING HPA SELECTIONS FOR CMSI. 
.*             MENU PROCEDUURE TO FURTHER DEFINE THE SELECTION FOR
.*             PROCESSING HPA.
.*
.*    PARAMETERS - OPT110 
.*
.*    CALLED BY - CMSI100 
.*
.*    PROCEDURES CALLED - CMSI000 , CMSI100 , CMSI111 , CMSI112 
.*                        CMSI113 , CMSI114 , CMSI115 , CMSI116 
.*
.* -------------------------------------------------------- 
.*
.PROMPT,CMSI110> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.HELP,,NOLIST.
  
    TYPE A SELECTION NUMBER FOLLOWED BY A ? AND A (CR) FOR HELP 
    SELECTIONS ALLOW FOR CHOISE OF HPA RUN TYPE.
  
.HELP,1,NOLIST. 
  
    PROCESS HPA FROM THIS INTERACTIVE SESSION.
    OUTPUT IS RETURNED TO YOUR TERMINAL AND OPTIONALLY
    SENT TO THE CENTRAL SITE PRINTER. 
  
.HELP,2,NOLIST. 
  
    PROCESS HPA FROM A DETACHED BATCH JOB.  OUTPUT
    WILL BE SAVED ON A USER NAMED PERMANENT FILE AND OPTIONALLY 
    PRINTED AT A CENTRAL SITE PRINTED.
  
.HELP,3,NOLIST. 
  
    THIS SELECTION RETRIEVES THE PREVIOUSLY 
    SAVED OUTPUT FROM AN EARLIER HPA RUN. 
    THE USER MUST SUPPLY THE FILE NAME ON TO
    WHICH THE OUTPUT WAS COPIED.  IF THIS FILE IS 
    FOUND , IT IS COPIED TO THE TERMINAL. 
    IF NOT FOUND , A WARNING MESSAGE IS ISSUED. 
  
.HELP,4,NOLIST. 
  
    THIS SELECTION WILL SUBMIT A LOCALLY
    GENERATED HPA JOB DECK FOR
    BATCH PROCESSING. 
    THE USER IS PROMPTED FOR THE JOB/ FILE
    NAME AND JOB OUTPUT DISPOSITION.
  
.HELP,5,NOLIST..
  
     DISPLAY THE EST TABLE FOR THIS MACHINE.
  
.HELP,9,NOLIST. 
  
     THIS ENTRY RETURNS TO THE MAIN CMSI MENU (CMSI000) 
  
.ENDHELP. 
DISPLAY(PNL)
.*
.*
.IF,OPT110.EQ.1.CMSI111.
.IF,OPT110.EQ.2.CMSI112.
.*
.*.IF,OPT110.EQ.3.CMSI113.
.*
.IF,OPT110.EQ.3.CMSI114.          READ HPA FILE 
.IF,OPT110.EQ.4.CMSI115.          SUBMIT USER JOB 
.*
.IF,OPT110.EQ.5.OFFSW,1.          PRINT FULL EST
.IF,OPT110.EQ.5.CMSI116.
.*
.*             TO 100     TO 000
.IF,OPT110.EQ.9.$REVERT,EX.$REVERT. 
.*
DISPLAY(PNL)
.*
$REVERT,NOLIST.         .RESTART CMSI100
$EXIT.
$REVERT....ABORT FROM CMSI110.. 
*WEOR 
.PROC,CMSI111*M"CMSI - HPA REPORT TYPE SELECTION     -     CMSI111",
RT= 
(1" SUMMARY ( S=1 )", 
 2" DETAIL  ( DX  )", 
 3" UNIT ANALYSIS ( A )", 
 4" ALL OF ABOVE REPORT (A,DX,S=1 )", 
 9" --------------- RETURN TO MAIN CMSI MENU" ).OUTFILE.
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI111
.*
.*       PROCESS HPA REPORT TYPE SELECTION. 
.*
.*    PURPOSE - PROMPT THE USER TO SELECT THE DESIRED HPA REPORT
.*                TYPE TO GENERATE. 
.*
.*    PARAMETERS - RT  ( REPORT TYPE )
.*
.*    CALLED BY - CMSI110 
.*
.*    PROCEDURES CALLED - CMSIHP1 , CMSI100 , CMSI000 
.*
.* -------------------------------------------------------- 
.*
.PROMPT,CMSI111> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.HELP.
  
      FOR BRIEF DESCRIPTION TYPE SELECTION NUMBER FOLLOWED BY 
          A QUESTION MARK....    1?  (CR) 
  
.HELP,1,NOLIST. 
  
  
    SUMMARY REPORTS - 
  
 DT EST  UN             MESSAGE              DATE     TIME/FIRST--LAST  TOTAL 
  
 CH 004  00   CONTROLWARE LOGGED-DS/DFTERM 85/08/21  23.00.42--23.00.42     1 
 DK 007  01   READ PARITY                  85/08/22  15.59.00--15.59.00     1 
 DK 012  04   READ PARITY                  85/08/22  15.33.16--15.33.16     1 
 DK 012  04   WRITE PARITY                 85/08/22  01.30.13--14.57.02   164 
 DK 012  04   SC254-UNRCVD DATA CKWD ERROR 85/08/22  12.28.06--14.45.37    12 
 DK 013  05   FUNCTION TIMEOUT             85/08/22  13.23.04--13.23.04     1 
 LS 042  00   UNIT HUNG BUSY               85/08/22  13.18.06--15.18.39     4 
 NP 001  00   NPU STATISTICS               85/08/21  23.02.02--16.04.10   549 
 NT 061  01   SC1203-R-PHASE WR ERR-TK 3   85/08/22  09.32.43--09.32.43     1 
 NT 062  02   SC501-R-TPE BAD RESYNC       85/08/22  12.42.47--12.42.47     1 
 SY 000  00   NORM PACK MESSAGE            85/08/22  07.30.50--16.04.42    25 
  
  
          SAMPLE 'SUMMARY' REPORT 
          (CR) FOR MENU 
  
.HELP,2,NOLIST. 
     DETAIL REPORTS 
  
                      MSG TYPE >>> SC254-UNRCVD DATA CKWD ERROR<<<
   DATE      JOB                 CW  RT R                       CW  MF GEN
      TIME     CONTLR PACK-ID  R RLD CT W CH EQ UN  CYL TRK SEC REV ID STAT 
 ------------------------------------------------------------------------------ 
 85/08/22 
    12.28.06   AAVET. 161947   N  NO 63 R 05 00 04 0360 014 000  7     5201 
                 7X54      700/1400/ 100/4704/3603/    /    /    / 700/4001 
                          7560/    /2000/    /    /6054/6070/ 412/ 240/6023 
    12.45.07   AAVOB. 161947   N  NO 63 R 25 00 04 0532 014 013  7     5201 
                 7X54      700/1400/ 100/4704/5323/ 540/    /    / 700/4001 
                          7560/    /2000/    /    /6054/6070/ 412/ 240/6023 
  
            ---  SAMPLE EXTENDED DETAIL PRINTOUT  --- 
  
            (CR) FOR MENU 
.HELP,3,NOLIST. 
      ANALYSIS REPORTS -- 
  
 DT-CHAN                 DATE 
 CH 004                85/08/21 
                                >>>>> MESSAGE DISTRIBUTION <<<<<
 MESSAGE                                  TIME - HOURS                     MF 
 -------                     00----04----08----12----16----20----24 TOTALS ID 
 CONTROLWARE LOGGED-DS/DFTERM /     /     /     /     /     /    1/      1
                               ----- ----- ----- ----- ----- -----  ------
               TOTALS         /     /     /     /     /     /    1/      1
 DT-EST    CH-EQ-UN      DATE 
 DK 012    25 00 04    85/08/22 
                                >>>>> MESSAGE DISTRIBUTION <<<<<
 MESSAGE                                  TIME - HOURS                     MF 
 -------                     00----04----08----12----16----20----24 TOTALS ID 
 READ PARITY                  /     /     /     /    1/     /     /      1
 WRITE PARITY                 /    1/    1/    4/  158/     /     /    164
 SC254-UNRCVD DATA CKWD ERROR /     /     /     /   12/     /     /     12
                               ----- ----- ----- ----- ----- -----  ------
               TOTALS         /    1/    1/    4/  171/     /     /    177
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
       ... DISK ERROR  THRESHOLD EXCEEDED ... WARNING 
           OCCURRED    3 TIMES,  PACK S/N WAS 161947
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
                ... POSITION ANALYSIS SUMMARY ... 
 CYLINDER  QTY              TRACK    QTY            SECTOR   QTY
    0021    1                 000     10               000    12
   --------  --------  --------  --------  --------  -------- 
  
           ---  SAMPLE ANALYSIS PRINTOUT  --- 
            (CR)  FOR MENU
  
.HELP,4,NOLIST. 
       COMPLETE REPORTING 
     -SUMMARY, DETAIL, AND ANALYSIS-
  
         (CR) FOR MENU
.HELP,9,NOLIST. 
  
     THIS SELECTION WILL RETURN TO THE MAIN CMSI MENU (CMSI000) 
  
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*
.IF,RT.EQ.1.CMSIHP1,#RT=S,#OUTFILE=OUTFILE. 
.*
.IF,RT.EQ.2.CMSIHP1,#RT=DX,#OUTFILE=OUTFILE.
.*
.IF,RT.EQ.3.CMSIHP1,#RT=A,#OUTFILE=OUTFILE. 
.*
.IF,RT.EQ.4.CMSIHP1,#RT=ALL,#OUTFILE=OUTFILE. 
.*
.*          TO 110,   TO 100,  TO 000 
.IF,RT.EQ.9.$REVERT,EX.$REVERT,EX.$REVERT.
DISPLAY(PNL)
.*
.* TO 110   TO 100
$REVERT,EX.$REVERT,NOLIST.    RETURN TO CMSI100 
$EXIT.
$REVERT....ABORT FROM CMSI111.. 
*WEOR 
.PROC,CMSI112*I , 
OUTFILE'ENTER PERMANENT FILE NAME FOR OUTPUT. (CR)=HPAOUT. END TO STOP'=
  ( =HPAOUT , END,E=END , *F )  . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI112
.*
.*       GET OUTPUT FILE NAME 
.*
.*    PURPOSE - CONTINUE DEFINING THE HPA PROCESSING PARAMETERS.
.*
.*    PARAMETERS - OUTFILE
.*
.*    CALLED BY - CMSI110 
.*
.*    PROCEDURES CALLED - CMSI111 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP.
  
    THIS PROCEDURE ALLOWS SELECTION OF A PERMANENT FILE NAME
    ONTO WHICH THE BATCH HPA OUTPUT WILL BE SAVED.
  
.HELP,OUTFILE.
  
    ENTER THE FILE NAME ONTO WHICH THE HPA OUTPUT 
    IS TO BE SAVED.  CAUTION : NO CHECK IS MADE TO
    INSURE THIS FILE DOES NOT ALREADY EXIST.   IF A PERMANENT 
    FILE BY THIS NAME EXISTS IN THE CATALOG, THAT FILE WILL BE
    DESTROYED.
  
    AN OPTION WILL LATER BE PRESENTED TO ALLOW PRINTING THIS
    FILE. 
  
    THE DEFAULT FILE NAME IS  HPAOUT. ************
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.IF,$OUTFILE$.EQ.$END$.$REVERT,EX.$REVERT,NOLIST. 
.*
.*     CALL CMSI111 WITH FILE NAME AS COMMENT 
CMSI111,.OUTFILE
.*
.*  TO 111   TO 100 
$REVERT,EX.$REVERT,NOLIST.
*WEOR 
.PROC,CMSI113*I"CMSI - EXPRESS HPA ENTRY   -  CMSI113", 
P1,P2,P3,P4,P5. 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI113
.*
.*       PROCESS ONE ENTRY HPA CALL.
.*
.*    PURPOSE - FAST CALL TO HPA TO ALLOW FOR 'EXPERT USER'.
.*
.*    PARAMETERS - P1 , P2 , P3 , P4 , P5 
.*
.*    CALLED BY - CMSI110 
.*
.*    PROCEDURES CALLED - 
.*
.* -------------------------------------------------------- 
.*
$REVERT,NOLIST. 
.*
.*     TBD
.*
$REVERT,NOLIST. 
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMSI113.. 
*WEOR 
.PROC,CMSI114*I,
HRDCPY'DO YOU WANT A HARDCOPY PRINTED OF THIS OUTPUT FILE (YES,NO)  (CR)=NO'= 
  (=N,NO=N,N , YES=Y,Y )  , 
FN'ENTER FILE NAME TO LIST , "LIST" FOR PERM.FILE LIST OR "END" TO QUIT'= 
  ( LIST , E=END,END , *F )    .
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI114
.*
.*       PRINT SAVED HPA LIST FILE
.*
.*    PURPOSE - LIST AN EXISTING HPA PRINT FILE TO THE TERMINAL 
.*
.*    PARAMETERS - FN 
.*
.*    CALLED BY - CMSI110 , CMSI114 
.*
.*    PROCEDURES CALLED - CMSI110 
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
    THIS PROCEDURE WILL GET A NAMED FILE FROM THIS USERS
    PERMANENT FILE CATALOG AND PRINT IT AT
     THIS TERMINAL. 
  
     'LIST' WILL PRINT THE PERMANENT FILE OF THIS USER. 
  
     'END' WILL RETURN TO CMSI100 MENU. 
  
.HELP,FN,NOLIST.
  
     ENTER THE NOS FILE NAME OF AN INDIRECT 
     PERMANENT FILE CONTAINING A PREVIOUSLY 
     RUN HPA OUTPUT.
  
     THE KEYWORD 'LIST' WILL PRINT THE PF. CATALOG
     FOR THIS USER. 
  
     THE KEYWORD END WILL RETURN TO CMSI100.
  
.HELP,HRDCPY,NOLIST.
  
     IF YOU ALSO WANT A COPY OF THE HPA TERMINAL OUTPUT 
     ROUTED TO A CENTRAL SITE PRINTER,  ENTER  YES  TO
     THIS HRDCPY PROMPT.
  
.ENDHELP. 
.*
.*
.*     STEP  1. 
.*        CHECK FOR END.
.IF,$FN$.EQ.$END$.$REVERT,NOLIST. 
.*
.*     STEP  2. 
.*        CHECK IF LIST.
.*
.IF,$FN$.EQ.$LIST$,STEP2. 
$CATLIST,LO=0.
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$REVERT,EX.CMSI114,#HRDCPY=HRDCPY.
.ENDIF,STEP2. 
.*
.*     STEP  3. 
.*        GET FILE IF POSSIBLE. 
.*
GETATT,FN.
$IF,FILE(FN,.NOT.AS).$NOTE.+   BAD FILE NAME, CHECK CATALOG.
.*
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.* RECALL CMSI114 WITH FORCED CATLIST FROM PARAMETERS 
$IF,FILE(FN,.NOT.AS).$REVERT,EX.CMSI114,#FN=LIST,#HRDCPY=NO.. 
.*
.IF,$HRDCPY$.EQ.$Y$.$COPYBF,FN,ZZZZOUT,77.
.IF,$HRDCPY$.EQ.$Y$.$ROUTE,ZZZZOUT,DC=LP. 
.*
$REWIND,FN. 
$COPYBF,FN,OUTPUT.
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$REVERT,NOLIST. 
$EXIT.
$REVERT....ABORT FROM CMSI114.. 
*WEOR 
.PROC,CMSI115*I"CMSI - SUBMIT USER HPA JOB  - CMSI115", 
OUTOPT'ENTER OUTPUT DISPOSITION CODE FOR HPA JOB. ( BC , NO , TO )' = 
   (=BC,BC,B , NO,N , TO )  , 
 OWNFILE'INDIRECT ACCESS FILE TO BE SUBMITTED.  LIST FOR FILES , END TO STOP'=
   (END,E=END , LIST , *F )  .
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI115
.*
.*       SUBMIT USER GENERATED HPA JOB FILE.
.*
.*    PARAMETERS - OWNFILE , OUTOPT 
.*
.*    CALLED BY - CMSI110 
.*
.*    PROCEDURES CALLED - CMSI110 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     OWNHPA PROCEDURE WILL SUBMIT A LOCALLY GENERATED JOB 
     DECK FROM AN INDIRECT ACCESS PERMANENT FILE OF THIS
     USER TO THE BATCH INPUT QUEUE FOR PROCESSING.
     TWO PARAMETERS ARE AVAILABLE:  
      - OWNFILE : THE INDIRECT FILE NAME TO SUBMIT. (REQUIRED)
      - OUTOPT  : THE DISPOSITION CODE FOR THE JOB OUTPUT.
     SEE THE SPECIFIC HELPS FOR MORE INFORMATION. 
  
.HELP,OWNFILE.
  
     OWNFILE IS THE FILE NAME OF THE INDIRECT ACCESS PERMANENT FILE 
     CONTAINING THE HPA JOB DECK TO BE SUBMITTED.   THIS JOB SHOULD 
     BE IN THE FORM:  
       /JOB 
         JOBCARD
       /USER
          .  /   TEXT OF
          . <    USER JOB 
          .  \  TO SUBMIT 
      /EOR
      /EOF
  
     KEYWORD = LIST TO SEE CATALOG OF FILES.
  
     KEYWORD = END TO RETURN TO CMSI100.
  
.HELP,OUTOPT,NOLIST.
  
     OUTOPT SPECIFIC THE DISPOSITION OF THE JOB OUTPUT AT JOB 
     TERMINATION.   REFER TO THE NOS VERSION 2 REFERENCE SET VOL 3
     UNDER THE SUBMIT COMMAND FOR DETAILS.
     ALLOWABLE VALUES ARE:  
          BC - ROUTE OUTPUT TO BATCH PRINTER
          NO - DISCARD ANY JOB OUTPUT 
          TO - ROUTE JOB OUTPUT TO THE WAIT QUEUE FOR LATER VIEWING 
          (CR) OR NEXT DEFAULTS TO BC 
  
.ENDHELP. 
.*
.*     STEP 1.
.*       TEST FOR END . 
.*
.*
.*
.IF,$OWNFILE$.EQ.$END$.$REVERT,NOLIST.
.*
.*     STEP 2.
.*       CHECK FOR LIST.
.*       AND RECALL CMSI114.
.*
.*
.IF,$OWNFILE$.EQ.$LIST$,STEP2.
$CATLIST. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$REVERT,EX.CMSI115. 
.*
.ENDIF,STEP2. 
.*
.*     STEP 3.
.*       PROCESS FILE TO OUTPUT.
.*
.*
$GET,OWNFILE/NA.
$IF,FILE(OWNFILE,LO),STEP1. 
$SUBMIT,OWNFILE,OUTOPT. 
.*
$ELSE,STEP1.
.*
$NOTE.//   ** FILE , OWNFILE , NOT FOUND
$NOTE./   ** NO JOB SUBMITTED //
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$REVERT,EX.CMSI115,#OWNFILE=LIST,#OUTOPT=#NO. 
$ENDIF,STEP1. 
.*
$REVERT,NOLIST. 
$EXIT.
$REVERT....ABORT FROM CMSI115.. 
*WEOR 
.PROC,CMSI116.
.*
.* - - - - - - - - - - -
.*  THIS PROCEDURE IS REPLACED
.*  BY THE INITIALIZATION 
.*  PROCEDURE CMSI501 
.* - - - - - - - - - - -
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI116
.*
.*       PRINT SYSTEM EST TABLE.
.*
.*    PURPOSE - PRINT THE EST TABLE IN 1 OF 2 FORMS.
.*
.*    PARAMETERS - SENSE SWITCH 1 
.*
.*    CALLED BY - MANY
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
.*     RUN FTN JOB TO LIST EST
$REWIND,ESTPRT. 
$NOEXIT.
.*
$GETLOG.
$ONEXIT.
$RETURN,ERR.
$IF,FILE(OUTPUT,.NOT.TT).$BLOCK,,,1./EST LISTING///DATE/TIME
.*
$NOTE.++ EST TABLE LISTING++
.*
$MAP,OFF. 
$FTN5,I=ESTPRT,GO,B=LGOXXX,L=0. 
$RETURN,ERR,LGOXXX,BML,EST,ESTPRT.
.*
$IF,FILE(OUTPUT,TT),STEP1.
$NOTE,,NR.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$ENDIF,STEP1. 
$REVERT,NOLIST. 
.*
.*
$EXIT.
$REVERT...ABORT FROM CMSI116..
.*----------------------- 
.DATA,ESTPRT. 
      PROGRAM ESTPRT(INPUT=513,OUTPUT=513,EST=513,TAPE50=EST) 
* 
*          CODE REMOVED FROM NORM L647  GETEST PROGRAM
*           SUBROUTINE.   MODIFIED FOR CMSI  12/23/85     RVS 
*               MODIFIED FOR NOS 2.5.2 EST TABLE/CIO ..87/03/18.. 
* 
      IMPLICIT INTEGER (A-Z)
      DIMENSION ESTFIT(35), ESTBUF(11)
      DIMENSION IEST(512),IPAR(2),ICH (10)
       CHARACTER*10 ZDATE,ZTIME,DATE,TIME 
      DATA INPUT / L"INPUT"  /
      DATA IPAR(1) / L"OUTPUT" /
      DATA IPAR(2) / L"EST" / 
       DATA ICH / L" ",L"S",L"M",L"R",L"L",L"U",L"D",L"I",L"A",L"C" / 
      EST = 50
* 
*       GET PRINT OPTION FLAG 
*          SW1 ON = PRINT ONLY DISKS (YSW = 1)
      CALL SSWTCH(1,YSW)
      REWIND EST
* 
*     GET COPY OF EST TABLE FROM AN S-TYPE RECORD MANAGER FILE
* 
      CALL FILESQ (ESTFIT,L"LFN",IPAR(2),L"RT",L"S",L"BT",L"C",L"WSA",ES
     .TBUF,                     L"MRL",50070) 
      CALL OPENM (ESTFIT, L"INPUT", L"R") 
* 
*     GET EST HEADER INFO FROM THE EST FILE (11 WORDS X 10 CHARACTERS)
* 
      MAXEST = 0
      CALL GETP (ESTFIT,ESTBUF,90)
      IF (IFETCH(ESTFIT,L"FP") .EQ. O"100") GO TO 70
      MAXEST = SHIFT(ESTBUF(1),-12) .AND. O"7777" 
      MAXCHAR = (ESTBUF(1) .AND. O"7777") * 10
* 
*     GET EST ENTRIES (WORDS PER ENTRY X 10 CHARACTERS = MAXCHAR) 
* 
      DO 60 J = 1,MAXEST
      CALL GETP (ESTFIT,ESTBUF,MAXCHAR) 
   60 IEST(J) = ESTBUF(1) 
   70 CALL CLOSEM (ESTFIT)
* 
      IF ( MAXEST .EQ. 0 )  GOTO 160
      ZDATE = DATE()
      ZTIME = TIME()
* 
*     PRINT THE EST TABLE 
* 
      PRINT 99,ZDATE,ZTIME
99    FORMAT ( "1",  // 24X,">>>>>    E S T    <<<<<",// ,
     1  20X,"DATE ",A10,3X,"TIME ",A10, /1X,78("-"),//
     1  3X,"*CHANNEL TYPE AND STATUS FLAGS ",5X,
     1                      "**RMS FLAGS FROM BYTE-0 OF EST WORD:",/
     2  6X,"FORMAT IS X-YZ-NN WHERE        ",4X,
     2                        " S=SYSTEM FILES  ,  M= SHARED MMF",/ 
     3  6X,"X - CHANNEL STATUS: U=UP,      ",4X,
     3                      " R=REMOVABLE     ,  L='LDAM' DEVICE",/ 
     4  6X,"    I=IDLE, D=DOWN, N=UNUSED   ",4X,
     4                        " U=UNAVAILABLE   ,  D=DOWN & OFF ",/ 
     5  6X,"Y - CHAN TYPE: N=NIO, C=CIO    ",4X,
     5                          " I=INDEPENDENTLY SHARED DEVICE ",/ 
     6  6X,"Z - CONCURRENT CHAN PORT: A OR B",3X, 
     6                         " A= ACTIVE       ,  C=CHECKPOINT",/ 
     7  6X,"     (PERIOD FOR NIO CHAN)     "                      / 
     8  6X,"NN - THE CHANNEL NUMBER: 0-37  "                      / 
     9  6X,"V - CHANNEL PRESENT/ENABLE FLAG"                      / 
     1  6X,"    * = DISABLED OR NOT PRESENT"                    / ) 
      PRINT 100 
100   FORMAT (
     1 1X,"EST DVCE  EQ   CHANNEL..+..STATUS  EQ  BYTE-4 OR   MST"/ 
     2 1X,"NO. TYPE STAT  PRIMARY.....SECOND  NO. " 
     3 , "RMS FLAG**  ADDR.  EST ORD",13(".") / 
     4 ,1X,15X,"X-YZ-NNV  X-YZ-NNV ") 
* 
      DO 150 J = 1,MAXEST 
      IF (IEST(J) .EQ. 0) GO TO 150 
      ORD = J - 1 
      IDT = SHIFT (IEST(J),48) .AND. O"3777"
      IF (IDT .EQ. 0) GO TO 150 
* 
*     ----- CODE FOR NOS .GE. 2.5.2 ----- 
      IZ = SHIFT(IEST(J),12).AND.O"0003"
      IF(IZ.EQ.0) ON = L" ON "
      IF(IZ.EQ.1) ON = L"IDLE"
      IF(IZ.EQ.2) ON = L" OFF"
      IF(IZ.EQ.3) ON = L"DOWN"
* 
*     SET UP THE CHANNEL FLAG.
      PF1=PF2 = R"----" 
      PL1 = SHIFT(IEST(J),24).AND.O"7777" 
      PL2 = SHIFT(IEST(J),36).AND.O"7777" 
      CD1 = CD2 = R" "
      IF((PL1.AND.O"4000").EQ.O"0000") CD1 = R"*" 
      IF((PL2.AND.O"4000").EQ.O"0000") CD2 = R"*" 
*     ----- CHECK CHANNEL STATUS -----
      IF(CD1.EQ.R"*") GOTO 110
      IF((PL1.AND.O"3000").EQ.O"0000" )PF1 = R"U-"
      IF((PL1.AND.O"3000").EQ.O"1000" )PF1 = R"I-"
      IF((PL1.AND.O"3000").EQ.O"2000" )PF1 = R"N-"
      IF((PL1.AND.O"3000").EQ.O"3000" )PF1 = R"D-"
*     ----- CHECK CHANNEL TYPE (N/C)
      IF((PL1.AND.O"0040").EQ.0 ) THEN
       PF1 = SHIFT(PF1,12).OR.R"N." 
        GOTO 110
        ELSE
       PF1 = SHIFT(PF1,12)
*     ----- CHECK CIO PORT -----
      IF((PL1.AND.O"0200").EQ.O"0000")
     1  PF1=PF1.OR.R"CA"
      IF((PL1.AND.O"0200").EQ.O"0200")
     1  PF1=PF1.OR.R"CB"
       END IF 
*     ----- CHECK SECOND CHANNEL -----
110    IF(CD2.EQ.R"*") GOTO 120 
      IF((PL2.AND.O"3000").EQ.O"0000" )PF2 = R"U-"
      IF((PL2.AND.O"3000").EQ.O"1000" )PF2 = R"I-"
      IF((PL2.AND.O"3000").EQ.O"2000" )PF2 = R"N-"
      IF((PL2.AND.O"3000").EQ.O"3000" )PF2 = R"D-"
*     ----- CHECK CHANNEL TYPE (N/C)
      IF((PL2.AND.O"0040").EQ.0 ) THEN
       PF2 = SHIFT(PF2 , 12).OR. R"N."
       GOTO 120 
       ELSE 
*     ----- CHECK CIO PORT -----
      PF2 = SHIFT(PF2,12) 
      IF((PL2.AND.O"0200").EQ.O"0000")
     1  PF2=PF2 .OR. R"CA"
      IF((PL2.AND.O"0200").EQ.O"0200")
     1  PF2=PF2 .OR.R"CB" 
       END IF 
*     ----- SET CHANNEL NUMBER -----
120   PL1 = PL1 .AND. O"0037" 
      PL2 = PL2 .AND. O"0037" 
* 
* 
      EQ = SHIFT(IEST(J),-9).AND.O"0007"
* 
      BY4 = IEST(J).AND.O"7777" 
* 
      IZ = SHIFT(IEST(J),1).AND.O"0001" 
* 
      IF ( IZ.EQ. 0 ) THEN
*           SKIP IF SW 1 IS ON : PRINT ONLY DISKS 
         IF(YSW.EQ.2)PRINT 144,ORD,IDT,ON,PF1,PL1,CD1,PF2,PL2,CD2,
     1   EQ,BY4,IEST(J) 
144      FORMAT(1X,O3,2X,R2,2X,A4,2(2X,R4,"-",O2,R1),2X,O1, 
     1 3X,O4,15X,O20 )
      ELSE
         EQ = 0 
         PLMA = SHIFT(IEST(J),3).AND.O"77770" 
         BYT0=L".........." 
         BY0 = SHIFT(IEST(J),12).AND.O"7777"
         DO 139 I = 1 , 10
         IF( (BY0.AND.O"4000") .NE. O"4000" ) GOTO 138
         BYT0 = (BYT0.AND.O"00777777777777777777").OR. ICH(I) 
138      BYT0 = SHIFT(BYT0 , 6) 
         BY0 = SHIFT(BY0 , 1 )
139      CONTINUE 
         PRINT 143,ORD,IDT,ON,PF1,PL1,CD1,PF2,PL2,CD2,
     1   BYT0,PLMA,IEST(J)
143      FORMAT(1X,O3,2X,R2,2X,A4,2(2X,R4,"-",O2,R1),2X,1X,1X,
     1   R9,4X,O5,3X,O20) 
* 
      END IF
  150 CONTINUE
  160 CONTINUE
      PRINT 98
98    FORMAT (  1X,78("-") ,/ 10X,"END OF EST LIST" / ) 
      END 
.EOF
*WEOR 
.PROC,CMSI120*M"CMSI - CDCNET NPA INTERFACE - CMSI120", 
OPT120= 
 (1"  NPA MCI STATISTICS REPORT - MCISRP3"
 ,2"  NPA ESCI STATISTIC REPORT - ETHRRP2"
 ,3"  NPA LINE STATISTIC REPORT - TERMRP2"
 ,4"  NPA HARDWARE ERROR REPORT - HRDWRP2"
 ,5"  NPA REPORT OF 'ALL' FORMATS"
 ,6"  USER ACCESS TO NPA REPORT GENERATOR CRECAR" 
 ,9"  --------------- RETURN TO MAIN CMSI MENU" ).
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI120
.*
.*       CDCNET NPA INTERFACE 
.*
.*    PURPOSE - PROVIDE CMSI ACCESS TO CDCNET NPA REPORT GENERATOR
.*
.*    PARAMETERS - OPT120 
.*
.*    CALLED BY - CMSI000 
.*
.*    PROCEDURES CALLED - CMSI121 , CMSI126 
.*    EXTERNAL PROCEDURES CALLED - CRECAR FROM NPAPLIB
.*
.* -------------------------------------------------------- 
.*
.PROMPT,CMSI120> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.HELP,,NOLIST.
  
     THIS PROCEDURE PROVIDES A CMSI ACCESS
     TO THE CDCNET REPORT GENERATOR  NPA. 
     CMSI WILL FORMAT A CALL TO THE CRECAR
     PROCEDURE IN THE NPAPLIB PROVIDED BY 
     THE CDCNET SOFTWARE. 
  
     FOR DETAILS ON NPA SEE:  
     CDCNET NETWORK PERFORMANCE ANALYZER MANUAL 
     PUBLICATIONS NUMBER - 60461510 
     SECTION: "CREATE_CDCNET_ANALYSIS_REPORT" 
                                (CRECAR)
  
     CMSI ASSUMES THAT ALL NECESSARY NPA AND
     CDCNET FILES ARE AVAILABLE UNDER THE 
     NOS SYSTEM PROVIDED USERNAME 'NETADMN'.
     IT FURTHER ASSUMES THAT THE THIS CE ACCOUNT
     HAS THE NECESSARY VALIDATION TO ACCESS 
     THESE FILES. 
  
  
.HELP,1,NOLIST. 
  
     PROVIDE ACCESS TO NPAPLIB OR NPAULIB PROC. CRECAR
     REPORT GENERATOR WITH REPORT NAME OF 
     MCISRP3. 
     ALL PARAMETERS ARE SUPPLIED BY CMSI EXCEPT 
     THE 'BEGINNING DATE' OF THE DATA.  THIS  MUST
     BE ENTERED BY THE USER.
  
     IF MORE CONTROL OF THE CRECAR PARAMETERS IS
     DESIRED USE OPTION  6  . 
  
     REFER TO THE CDCNET NPA MANUAL PUB. NO.60461510. 
  
.HELP,2,NOLIST. 
  
     PROVIDE ACCESS TO NPAPLIB OR NPAULIB PROC. CRECAR
     REPORT GENERATOR WITH REPORT NAME OF 
     ETHRRP2. 
     ALL PARAMETERS ARE SUPPLIED BY CMSI EXCEPT 
     THE 'BEGINNING DATE' OF THE DATA.  THIS  MUST
     BE ENTERED BY THE USER.
  
     IF MORE CONTROL OF THE CRECAR PARAMETERS IS
     DESIRED USE OPTION  6  . 
  
     REFER TO THE CDCNET NPA MANUAL PUB. NO.60461510. 
  
.HELP,3,NOLIST. 
  
     PROVIDE ACCESS TO NPAPLIB OR NPAULIB PROC. CRECAR
     REPORT GENERATOR WITH REPORT NAME OF 
     TERMRP2. 
     ALL PARAMETERS ARE SUPPLIED BY CMSI EXCEPT 
     THE 'BEGINNING DATE' OF THE DATA.  THIS  MUST
     BE ENTERED BY THE USER.
  
     IF MORE CONTROL OF THE CRECAR PARAMETERS IS
     DESIRED USE OPTION  6  . 
  
     REFER TO THE CDCNET NPA MANUAL PUB. NO.60461510. 
  
.HELP,4,NOLIST. 
  
     PROVIDE ACCESS TO NPAPLIB OR NPAULIB PROC. CRECAR
     REPORT GENERATOR WITH REPORT NAME OF 
     HRDWRP2. 
     ALL PARAMETERS ARE SUPPLIED BY CMSI EXCEPT 
     THE 'BEGINNING DATE' OF THE DATA.  THIS  MUST
     BE ENTERED BY THE USER.
  
     IF MORE CONTROL OF THE CRECAR PARAMETERS IS
     DESIRED USE OPTION  6  . 
  
     REFER TO THE CDCNET NPA MANUAL PUB. NO.60461510. 
  
.HELP,5,NOLIST. 
  
     PROVIDE ACCESS TO NPAPLIB OR NPAULIB PROC. CRECAR
     REPORT GENERATOR WITH REPORT NAME OF 
     'ALL'. 
     ALL PARAMETERS ARE SUPPLIED BY CMSI EXCEPT 
     THE 'BEGINNING DATE' OF THE DATA.  THIS  MUST
     BE ENTERED BY THE USER.
  
     IF MORE CONTROL OF THE CRECAR PARAMETERS IS
     DESIRED USE OPTION  6  . 
  
     REFER TO THE CDCNET NPA MANUAL PUB. NO.60461510. 
  
.HELP,6,NOLIST. 
  
     THIS OPTION PROVIDES ACCESS TO THE NPA REPORT
     GENERATOR WITH MOST PARAMETERS TO BE SUPPLIED
     BY THE USER OF CMSI.   CMSI CALLS CRECAR FROM
     THE NPAPLIB OR NPAULIB.
  
     FOR DETAILS ON HPA SEE:  
     CDCNET NETWORK PERFORMANCE ANALYZER MANUAL 
     PUBLICATIONS NUMBER - 60461510 
     SECTION: "CREATE_CDCNET_ANALYSIS_REPORT" 
                                (CRECAR)
  
.HELP,9,NOLIST. 
  
     RETURN TO THE CMSI MAIN MENU CMSI000 
  
.ENDHELP. 
.*
.*     STEP 1.
.*       CHECK FOR RETURN TO CMSI000. 
.*
.IF,OPT120.EQ.9.$REVERT,NOLIST. 
.*
.*     STEP 2.
.*       ATTACH THE NPA PROCEDURE LIBRARY 
.*       NPAPLIB....... 
.*
$NOEXIT.
$SET,R1G=0. 
.*
NPA.
.*
.*   2.5.1 KLUGE
$IF,FILE(NPAULIB,AS),STEP1B.
$SET,R1G=3.   ....NPAULIB FROM PROC. NPA
$SKIP,GOTLIB. 
$ENDIF,STEP1B.
.*
$IF,FILE(NPAPLIB,AS),STEP1A.
$SET,R1G=1.  ....NPAPLIB FROM PROC.NPA. 
$SKIP,GOTLIB. 
$ENDIF,STEP1A.
.*
$ATTACH,NPAPLIB/UN=NETADMN,NA.
$IF,FILE(NPAPLIB,AS),STEP2. 
$SET,R1G=2.     NPAPLIB FROM ATTACH.
$SKIP,GOTLIB. 
$ENDIF,STEP2. 
.*
$NOTE.++ CMSI CANNOT FIND NPAPLIB OR NPAULIB ON ACCOUNT 
$NOTE.+ USERNAME= NETADMN.   NPA CANNOT BE RUN
$NOTE.+ FROM CMSI.  ++
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*
$ONEXIT.
$REVERT.....ERROR FROM CMSI120. 
.*
$ENDIF,GOTLIB.
.*
$ONEXIT.
.*
.*
.*
.*
.*     STEP 3.
.*       SELECT THE REPORT TO GENERATE. 
.*
.IF,OPT120.GE.1 .AND. OPT120.LT.6, STEP3. 
.IF,OPT120.EQ.5.SETTL,1000. 
.*
 $IF,R1G.EQ.3.CMSI121,#OPT120=OPT120,#VER=3.     ..... 2.5.1
 $IF,R1G.EQ.1.CMSI121,#OPT120=OPT120,#VER=1.
 $IF,R1G.EQ.2.CMSI121,#OPT120=OPT120,#VER=2.
.*
.ENDIF,STEP3. 
.*
.*
.IF,OPT120.EQ.6. $IF,R1G.EQ.3.CMSI126,#VER=3. 
.IF,OPT120.EQ.6. $IF,R1G.NE.3.CMSI126,#VER=1. 
.*
.*
$REVERT,NOLIST. 
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT.....ABORT FROM CMSI120..
*WEOR 
.PROC,CMSI121*I"CMSI - NPA INTERFACE I - CMSI121",
OPT120=(1=MCISRP3, 2=ETHRRP2, 3=TERMRP2, 4=HRDWRP2, 5=ALL ) , 
VER= (*S1(123) ) ,
BD'BEGINNING DATE FOR REPORT (YYMMDD) ' = (*S6(0123456789) ), 
HRDCPY'DO YOU WANT A BATCH COPY (YES OR NO) OR END TO STOP  (CR)=NO' =
  (YES=Y,Y , NO=N,N,=N , E=END , END)   . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI121
.*
.*       PROCESS NPA FOR CMSI 
.*
.*    PURPOSE - PROCESS NPA CALL TO NPAPLIB FOR 5 CMSI OPTIONS. 
.*
.*    PARAMETERS - OPT120 , HRDCPY
.*
.*    CALLED BY - CMSI120 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     PROVIDE CMSI ACCESS TO NPA ON FILE NPAPLIB/UN=NETADMN. 
  
.HELP,OPT120,NOLIST.
  
     THIS PARAMETER SUPPLIED BY CALLING PROCEDURE.
  
     OPT120 IS THE REPORT CODE FROM THE CMSI120 MENU
     INDICATING THE REPORT REQUESTED. 
  
.HELP,VER,NOLIST. 
  
     PARAMETER VER IS GENERATED BY CMSI120 TO 
     INDICATE WHERE THE NPAPLIB IS LOCATED. 
  
     - NOTE -  THIS IS NOT A USER ENTERED PARAMETER.
  
.HELP,BD,NOLIST.
  
THE DATE OF THE BEGINNING OF THE REPORT PERIOD. 
  
    THE DATA ENTRY FORMAT IS AS FOLLOWS...
  
        (YYMMDD)  WHERE -  YY = LAST TWO DIGITS OF THE YEAR.
                           MM = TWO DIGITS REPRESENTING THE MONTH.
                           DD = TWO DIGITS REPRESENTING THE DAY.
  
  
.HELP,HRDCPY,NOLIST.
  
     THIS OPTION ALLOWS THE USER TO SELECT IF A BATCH 
     HARDCOPY OF THE SELECTED NPA REPORT IS PRINTED.
  
     ENTER YES TO PRINT A BATCH COPY AND TERMINAL COPY
  
     ENTER NO FOR ONLY A TERMINAL COPY. 
  
     ENTER END TO RETURN TO THE CMSI100 ANALYSIS MENU.
  
.ENDHELP. 
.*
.*
DISPLAY(PNL)
.*
CMSIDFX,XPARAM=B. 
.*
.*
$RETURN,ZZZZOUT,Q.
.*
.IF,$HRDCPY$.EQ.$END$.$REVERT,NOLIST. 
.*
.*     SELECT THE REPORT DESIRED. 
.*
.*     SELECT OUTPUT HEADER 
BLOCK,Q,,1./NPA REPORT/OPT120//DATE/TIME
.*     SELECT LIBRARY 
$NOTE.++ SELECTED REPORT BEING GENERATED.++ 
.IF,VER.EQ.1 .OR. VER.EQ.2.$BEGIN,CRECAR,NPAPLIB,O=ZZZZOUT,APPEND=NO, 
.IF,VER.EQ.3.$BEGIN,CRECAR,NPAULIB,O=ZZZZOUT,APPEND=NO, 
.*      SELECT REPORT 
RN=OPT120,#BD=BD,ED=991231,BT=0000,ET=2400,SID=000000,O=ZZZZOUT,
.*     COMPLETE PROC CALL 
.IF,VER.EQ.1.DBFUN=NETADMN,BDO=0,EDO=0. 
.IF,VER.EQ.2 .OR. VER.EQ.3.DBFUN=NETADMN. 
.*
.*
$REWIND,ZZZZOUT,Q.
$SKIPEI,Q.
.IF,$HRDCPY$.EQ.$Y$,STEP2.
.*
CMSIDFX,XPARAM=E. 
.*
.ENDIF,STEP2. 
.*
$REWIND,ZZZZOUT.
$COPYCF,ZZZZOUT,OUTPUT,1,2,81.
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$RETURN,ZZZZOUT.
$RETURN,NPAPLIB,NPAULIB,REFCLF,NPATMP2,PROCFIL,NPAATTR,NPBCONN,NPBMCIS. 
$LIBRARY,NPAPLIB,NPAULIB/D. 
.*
.*
$REVERT,NOLIST. 
$EXIT.
$REVERT.....ABORT FROM CMSI121..
*WEOR 
.PROC,CMSI126*I"CMSI - NPA INTERFACE VI - CMSI126", 
VER = (1=NPAPLIB ,2=NPAPLIB ,3=NPAULIB ) ,
HRDCPY'DO YOU WANT A BATCH COPY (YES OR NO) OR END TO STOP  (CR)=NO' =
  (YES=Y,Y , NO=N,N,=N , E=END , END)   . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI126
.*
.*       PROCESS BLANK CALL TO NPA  CRECAR
.*
.*    PURPOSE - PROCESS BLANK CALL TO NPA CRECAR FOR USE SELECTION. 
.*
.*    PARAMETERS - HRDCPY 
.*
.*    CALLED BY - CMSI120 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     PROVIDE CMSI ACCESS TO NPA ON FILE NPAPLIB/UN=NETADMN. 
  
.HELP,HRDCPY,NOLIST.
  
     THIS OPTION ALLOWS THE USER TO SELECT IF A BATCH 
     HARDCOPY OF THE SELECTED NPA REPORT IS PRINTED.
  
     ENTER YES TO PRINT A BATCH COPY AND TERMINAL COPY
  
     ENTER NO FOR ONLY A TERMINAL COPY. 
  
     ENTER END TO RETURN TO THE CMSI100 ANALYSIS MENU.
  
.ENDHELP. 
.*
.*
DISPLAY(PNL)
CMSIDFX,XPARAM=B. 
.*
.IF,$HRDCPY$.EQ.$END$.$REVERT,NOLIST. 
.*
BEGIN,CRECAR,VER,DBFUN=NETADMN,APPEND=NO,O=ZZZZOUT,?. 
.*
$REWIND,ZZZZOUT,Q.
.*
.IF,$HRDCPY$.EQ.$Y$,STEP2.
$BLOCK,Q,,1./NPA REPORT//DATE/TIME
CMSIDFX,XPARAM=E. 
.*
.ENDIF,STEP2. 
.*
$REWIND,ZZZZOUT.
$COPYCF,ZZZZOUT,OUTPUT,1,5,85.
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$RETURN,ZZZZOUT.
$RETURN,VER,REFCLF,NPATMP2,PROCFIL,NPAATTR,NPBCONN,NPBMCIS. 
$LIBRARY,VER/D. 
.*
$REVERT,NOLIST. 
$EXIT.
$REVERT.....ABORT FROM CMSI126..
*WEOR 
.PROC,CMSI130*M"CMSI - MTPLOT/DSPLOT INTERFACE - CMSI130" , 
OPT130= 
(1"READ PREVIOUS MTPLOT OUTPUT",
 2"READ PREVIOUS DSPLOT OUTPUT",
 3"RUN DAILY MTPLOT INTERACTIVE JOB", 
 4"RUN DAILY DSPLOT INTERACTIVE JOB", 
 5"RUN WEEKLY MTPLOT JOB",
 6"RUN WEEKLY DSPLOT JOB",
 9"--------------- RETURN TO MAIN CMSI MENU" ). 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI130
.*
.*       MTPLOT AND DSPLOT MENUS
.*
.*    PURPOSE - PROMPT THE SELECTION OF MTPLOT AND DSPLOT OPTIONS 
.*
.*    PARAMETERS - OPT130 
.*
.*    CALLED BY - CMSI100 
.*
.*    PROCEDURES CALLED - CMSI000 , CMSI130 , CMSI131 , CMSI133 
.*                        CMSI135 , CMSIEFC 
.*
.* -------------------------------------------------------- 
.*
.*
.PROMPT,CMSI130> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.HELP,,NOLIST.
  
    THIS PROCEDURE PROVIDES ACCESS TO THE 
    MTPLOT AND DSPLOT ROUTINES SUPPLIED ON
    THE CML RELEASE TAPE. 
  
    OPTIONS ARE PROVIDED TO:  
     1. READ PREVIOUS WEEKLY MTPLOT OR
        DSPLOT OUTPUT.
     2. RUN MTPLOT OR DSPLOT IN A 'DAILY' 
        MANNER.  JOB IS RUN INTERACTIVELY.
     3. RUN MTPLOT AND DSPLOT IN A 'WEEKLY' 
        MANNER AND REPLACE THE SAVED OUTPUT 
        FILE.  RUN IN A BATCH OR INTERACTIVE
        MODE. 
  
    FOR MORE INFORMATION ON MTPLOT AND DSPLOT 
    SEE THE APPROPRIATE SECTION OF THE
     CML REFERENCE MANUAL  PUB NO. 60455980.
  
.HELP,1,NOLIST. 
  
     READ THE LAST WEEKLY MTPLOT OUTPUT SAVED 
     ON FILE WMTPLOT. 
  
.HELP,2,NOLIST. 
  
     READ THE LAST WEEKLY DSPLOT OUTPUT SAVED 
     ON FILE OSKPLOT. 
  
.HELP,3,NOLIST. 
  
     RUN AN INTERACTIVE PROCEDURE TO EXECUTE AN 
     MTPLOT.
  
     MTPLOT IS INTENDED TO BE RUN WEELKLY NOT DAILY 
     THEREFORE THIS OPTION DOES NOT UPDATE OR REPLACE 
     THE PERFORMANCE DATA FILE.   THIS SHOULD BE DONE 
     VIA A SKEDULR SUBMITTED JOB AT A ONE WEEK INTERVAL.
  
.HELP,4,NOLIST. 
  
     RUN AN INTERACTIVE PROCEDURE TO EXECUTE AN 
     DSPLOT.
  
     DSPLOT IS INTENDED TO BE RUN WEELKLY NOT DAILY 
     THEREFORE THIS OPTION DOES NOT UPDATE OR REPLACE 
     THE PERFORMANCE DATA FILE.   THIS SHOULD BE DONE 
     VIA A SKEDULR SUBMITTED JOB AT A ONE WEEK INTERVAL.
  
.HELP,5,NOLIST. 
  
     RUN A 'WEEKLY' MTPLOT JOB INTERACTIVELY. 
  
     MTPLOT IS INTENDED TO BE RUN WEEKLY TO 
     ANALYZE THE PERFORMANCE TRENDS OF THE SITE 
     TAPE UNITS.   IT IS BEST RUN FROM A BATCH JOB
     AND AS SUCH IS A PRIME  EXAMPLE OF A TASK
     TO BE RUN AS A SKEDULR JOB.
  
     THIS OPTION WILL UPDATE THE PERFORMANCE DATA 
     FILE AND REPLACE THE WMTPLOT LIST FILE.
  
.HELP,6,NOLIST. 
  
     RUN A 'WEEKLY'  DSPLOT JOB INTERACTIVELY.
  
     DSPLOT IS INTENDED TO BE RUN WEEKLY TO 
     ANALYZE THE PERFORMANCE TRENDS OF THE SITE 
     DISK UNITS.   IT IS BEST RUN FROM A BATCH JOB
     AND AS SUCH IS A PRIME  EXAMPLE OF A TASK
     TO BE RUN AS A SKEDULR JOB.
  
     THIS OPTION WILL UPDATE THE PERFORMANCE DATA 
     FILE AND REPLACE THE WMTPLOT LIST FILE.
  
.HELP,9,NOLIST. 
  
     THIS OPTION RETURNS TO THE CMSI MAIN MENU
  
.ENDHELP. 
.*
.*
DISPLAY(PNL)
.*
.*       CALL NEXT PROCEDURE PASSING OPT130 
.*       TO DETERMINE WHICH OF MTPLOT OR DSPLOT 
.*       TO USE.
.*
.IF,OPT130.EQ.1.CMSI131,OPT130. 
.IF,OPT130.EQ.2.CMSI131,OPT130. 
.*
.IF,OPT130.EQ.3.CMSI133,OPT130. 
.IF,OPT130.EQ.4.CMSI133,OPT130. 
.*
.*       OPT130 IS PASSED AS A COMMENT
.*       TO ALLOW NEXT PROC. TO BE A MENU 
.*       TYPE.
.*
*IF DEF,NOS23,2 
.IF,OPT130.EQ.5.CMSI135,?OPT130.
.IF,OPT130.EQ.6.CMSI135,?OPT130.
*IF -DEF,NOS23,2
.IF,OPT130.EQ.5.CMSI135,?.OPT130
.IF,OPT130.EQ.6.CMSI135,?.OPT130
.*
.*             TO 100      TO 000 
.IF,OPT130.EQ.9.$REVERT,EX.$REVERT,NOLIST.
.*
$REVERT,EX.CMSI130.          RESTART CMSI130. 
.*
.*
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMSI130.. 
*WEOR 
.PROC,CMSI131*I"CMSI - PLOT OUTPUT READ INTERFACE - CMSI131", 
OPT130=(*S1(12)) ,
BATCPY'DO YOU WANT A BATCH COPY (YES , NO) OR END TO STOP (CR)=NO' =
(YES=Y,Y,NO=N,N,=N,E=END,END)   . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI131
.*
.*       READ MTPLOT/DSPLOT OUTPUT FILE 
.*
.*    PURPOSE - READ A PREVIOUSLY SAVED MTPLOT OR DSPLOT FILE 
.*
.*    PARAMETERS - OPT130 , BATCRY
.*
.*    CALLED BY - CMSI130 
.*
.*    PROCEDURES CALLED - CMSI130 , CMSI000 
.*
.* -------------------------------------------------------- 
.*
.*
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE WILL GET THE LAST COPY OF THE 
     WEEKLY DSPLOT OR MTPLOT AND COPY IT TO THE 
     TERMINAL AND OPTIONALLY TO A CENTRAL SITE
     PRINTER. 
  
.HELP,OPT130,NOLIST.
  
     DETERMINES WHICH (DSPLOT OR MTPLOT)
     LISTING IS PRESENTED FROM CMSI130 MENU SELECTION.
  
.HELP,BATCPY,NOLIST.
  
     THIS PROCEDURE WILL OPTIONALLY PRINT A HARDCOPY
     OF THE REQUESTED LISTING.   THIS IS CONTROLLED 
     BY THE ANSWER TO THIS QUESTION.
  
     YES  TO PRINT A CENTRAL SITE HARDCOPY AND TERMINAL,
  
     NO   TO ONLY GET A TERMINAL COPY,
  
     END TO TERMINATE THIS PROCEDURE AND
     RETURN TO CMSI130. 
  
.ENDHELP. 
.*
.*
.*     STEP 1.
.*       CHECK FOR END. 
.*
.IF,$BATCPY$.EQ.$END$.$REVERT,NOLIST. 
.*
.*     STEP 2.
.*       GET WEEKLY LISTING OF MT/DS PLOT 
.*       NOTE;  USE DEFAULT FILE NAMES FOR
.*       THE PERFORMANCE DATA FILES.
.*
.IF,OPT130.EQ.1.GET,ZZZPLOT=WMTPLOT/NA. 
.IF,OPT130.EQ.2.GET,ZZZPLOT=OSKPLOT/NA. 
.*
$IF,FILE(ZZZPLOT,.NOT.LO),STEP2.
.*
$NOTE.++   WEEKLY PLOT LISTING FILE 
.IF,OPT130.EQ.1.$NOTE.+    FILE NAME = WMTPLOT
.IF,OPT130.EQ.2.$NOTE.+    FILE NAME = OSKPLOT
$NOTE.+    NOT FOUND...#OPT130 = OPT130. ++ 
$REVERT,NOLIST. 
.*
$ENDIF,STEP2. 
.*
.*     STEP 3.
.*       PRINT HARDCOPY IF BATCPY IS Y
.*
.IF,$BATCPY$.EQ.$Y$,STEP3.
$COPYBF,ZZZPLOT,Q.
$ROUTE,Q,DC=LP.         SEND COPY TO PTR. 
$REWIND,ZZZPLOT.
.ENDIF,STEP3. 
.*
.*     STEP 4.
.*       PRINT COPY TO TERMINAL 
.*
$COPY,ZZZPLOT,OUTPUT. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*
$RETURN,Q,ZZZPLOT.
.*
$REVERT,NOLIST. 
$EXIT.
$REVERT....ABORT FROM CMSI131.. 
*WEOR 
.PROC,CMSI133*I"CMSI - PLOT INTERFACE II   -  CMSI133", 
OPT130=(*S1(34)) ,
BATCPY'DO YOU WANT A BATCH COPY (YES,NO) , OR END TO STOP (CR)=NO' =
(YES=Y,Y , NO=N,N,=N , E=END,END)   . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI133
.*
.*       RUN MT/DSPLOT JOB INTERACTIVELY
.*
.*    PURPOSE - RUN MTPLOT OR DSPLOT JOB INTERACTIVELY FROM THIS
.*              PROCEDURE TO REPORT ON 'DAILY' EQUIPMENT TRENDS.
.*
.*    PARAMETERS - OPT130 , BATCPY
.*
.*    CALLED BY - CMSI130 
.*
.*    PROCEDURES CALLED - OLDHIST , GETATT , CMSIEFC , CMSI139
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE WILL RUN A 'DAILY'
     MTPLOT OR DSPLOT JOB INTERACTIVELY.
     THIS IS A DAILY JOB IN THAT IT WILL
     NOT UPDATE THE OLD PERFORMANCE DATA
     PERMANENT FILE.     WEEKLY RUNS SHOULD 
     BE RUN FROM A JOB SUBMITTED BY SKEDULR.
  
.HELP,OPT130,NOLIST.
  
     DETERMINES WHICH (DSPLOT OR MTPLOT)
     JOB IS RUN FROM CMSI130 MENU SELECTION.
  
.HELP,BATCPY,NOLIST.
  
     THIS PROCEDURE WILL OPTIONALLY PRINT A HARDCOPY
     OF THE REQUESTED JOB RUN.   THIS IS CONTROLLED 
     BY THE ANSWER TO THIS QUESTION.
  
     YES  TO PRINT A CENTRAL SITE HARDCOPY, 
  
     NO   TO ONLY GET A TERMINAL COPY,
  
     END TO TERMINATE THIS PROCEDURE AND
     RETURN TO CMSI130. 
  
.ENDHELP. 
.*
.*
DISPLAY(PNL)
.*
CMSIDFX,XPARAM=B. 
.*
.*
$SETTL,*. 
$SETASL,*.
$SETJSL,*.
.*
.*     STEP 1.
.*       CHECK FOR END
.*
.IF,$BATCPY$.EQ.$END$.$REVERT,NOLIST. 
.*
.*
.*     STEP 1A. 
.*       CLEANUP POSSIBLE LEFTOVER FILES. 
.*
$RETURN,ZZZZOUT,PLOTIN. 
.*
.*     STEP 2.
.*       DO EITHER MTPLOT OR DSPLOT 
.*       DEPENDING ON OPT130. 
.*
.IF,OPT130.EQ.3,STEP2.
.*
.*     STEP 2A..
.*       DO MTPLOT
.*       ( THIS SHOULD MATCH THE MTPLOT 
.*         JOB SHOWN IN THE CML RM.     ) 
.*
.*
.*     STEP 2.
.*       GET HPA FILES AND GENERATE TAPE10 FOR MTPLOT.
.*
OLDHIST.
$IF,R1G.NE.0.$REVERT,NOLIST.
$REWIND,OLDHF.
$COPYBR,OLDHF,OLD,8.
$RETURN,OLDHF.
$RENAME,OLDHF=OLD.
.*
$REWIND,OLDHF.
.*
$NOTE.++ RUNNING HPA FOR MTPLOT. +
.*
$HPA,H,HR=MT,HR=NT,T=D,L=ZZZOUTX. 
$RETURN,OLDHF,ZZZOUTX.
.*
.*
.*     STEP 2B. 
.*       GET MTPLOT PROGRAM.
.*
GETATT,MTPLOT.
$IF,R1G.NE.0,STEP2B.
$NOTE.++  MTPLOT NOT AVAILABLE , INSTALL WITH CMLUTIL. ++ 
$REVERT,NOLIST. 
$ENDIF,STEP2B.
.*
.*     STEP 2C. 
.*       GET OLD PERFORMANCE DATA FILE. 
.*
GETATT,WOLDPDT. 
$IF,FILE(WOLDPDT,.NOT.LO),STEP2C. 
$NOTE.+ + WOLDPDT NOT AVAILABLE. +
$NOTE.+ RUN WEEKLY MTPLOT TO BUILD WOLDPDT. ++
$REVERT,NOLIST. 
$ENDIF,STEP2C.
.*
$IF,FILE(WOLDPDT,LO).$RENAME,OLDPDT=WOLDPDT.
.*
.*
.*     STEP 2D. 
.*       CALL CMSI139 TO GET INPUT FILE OF THE SITE.
.*
CMSI139,#OPT130=OPT130. 
.*
$NOTE.+ START MTPLOT WITH OUTPUT TO THE TERMINAL. 
.*
.*     STEP 2E. 
.*       RUN MTPLOT AND MAKE BOTH COPIES. 
.*
$ONSW,1.          PRINT REPORT 4
.*
.*
MTPLOT,ZZZZOUT,PLOTIN.
.*
$OFFSW,1.         RESET SWITCH 1
.*
.*
.IF,$BATCPY$.EQ.$Y$,STEP2E. 
$REWIND,ZZZZOUT.
.*
CMSIDFX,XPARAM=E. 
.*
.ENDIF,STEP2E.
.*
$REWIND,ZZZZOUT.
$COPYBF,ZZZZOUT,OUTPUT. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*
.*
CLUPHPA.         CLEAN UP HPA FILES.
.*
$RETURN,OLDHF,OLDPD,MTPLOT,Q,ZZZZOUT,PLOTIN.
$RETURN,TAPE5,TAPE10,OLDPDT,MTPLOT. 
.*
.*
.*--------------------------------------
.*
.*     END  OF  MTPLOT JOB. 
.*
.*------------------------------------------- 
.*
.ELSE,STEP2.
.*
.*     STEP 3.
.*       RUN A DAILY DSPLOT JOB INTERACTIVELY.
.*      STEP 3A 
.*       GET ALL NECESSARY FILES FOR DSPLOT.
.*
OLDHIST.
$IF,R1G.NE.0.$REVERT,NOLIST.
$REWIND,OLDHF.
$COPYBR,OLDHF,OLD,8.
$RETURN,OLDHF.
$RENAME,OLDHF=OLD.
.*
$REWIND,OLDHF.
.*
.*      STEP 3A1 - DSPLOT.
.*
GETATT,DSPLOT.
$IF,R1G.NE.0,STEP3A1. 
$NOTE.++ DSPLOT NOT AVAILABLE ... USE CMLUTIL 
$NOTE.+  TO INSTALL DSPLOT. 
$REVERT,NOLIST......DSPLOT NOT FOUND. 
$ENDIF,STEP3A1. 
.*
.*      STEP 3A2 - DKDATA 
.*
GETATT,DKDATA.
$IF,FILE(DKDATA,.NOT.LO),STEP3A2. 
$NOTE.+  DKDATA FILE NOT FOUND ... USE
$NOTE.+  CMLUTIL TO INSTALL DKDATA. 
$REVERT,NOLIST.....DKDATA NOT FOUND.
$ENDIF,STEP3A2. 
.*
.*      STEP 3A3 - OLDPD
.*
GETATT,OLDPD. 
$IF,FILE(OLDPD,.NOT.LO),STEP3A3.
$NOTE.+OLDPD NOT FOUND ,
$NOTE.+RUN DSPLOT WEEKLY TO BUILD OLDPD.
$REVERT,NOLIST. 
$ENDIF,STEP3A3. 
.*
.*
$ONSW,2.          *FLAG DAILY RUN.
.*
.*     STEP 4.
.*       CALL CMSI139 TO GET INPUT FILE.
.*
.*
.*       RUN DSPLOT OUTPUT TO FILE ZYX
CMSI139,#OPT130=OPT130. 
.*
.*
$OFFSW,1.          PRINT REPORTS 4 AND 5
.*
.*
DSPLOT,ZZZZOUT,PLOTIN.
.*
.*
$OFFSW,2.          *RESET SWITCH. 
.*
.*     STEP5. 
.*       CHECK BATCPY FLAG AND MAKE LISTINGS. 
.*
.IF,$BATCPY$.EQ.$Y$,STEP5.
$REWIND,ZZZZOUT.
.*
CMSIDFX,XPARAM=E. 
.*
.ENDIF,STEP5. 
.*
$REWIND,ZZZZOUT.
$COPY,ZZZZOUT,. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$RETURN,ZZZZOUT,Q,TAPE3.
$RETURN,DSPLOT,DKDATA,OLDPD,OLDHF,PLOTIN. 
.*
.ENDIF,STEP2. 
.*
.*
$REVERT,NOLIST. 
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMSI133.. 
*WEOR 
.PROC,CMSI135*I"CMSI - PLOT INTERFACE III  -  CMSI135", 
BATCPY'DO YOU WANT A HARDCOPY (YES, NO), OR END TO STOP  (CR)=NO' = 
(YES=Y,Y , NO=N,N,=N , E=END,END).OPT130. 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI135
.*
.*       PROCESS MTPLOT-DSPLOT WEEKLY 
.*
.*    PURPOSE - PROCESS MTPLOT-DSPLOT IN A 'WEEKLY' MODE AND UPDATE HISTORY 
.*
.*    PARAMETERS - OPT130 , BATCPY
.*
.*    CALLED BY - CMSI130 
.*
.*    PROCEDURES CALLED - OLDHIST , GETATT , CMSIEFC , CMSI130
.*                        CMSI139 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     ----- WARNING ON RUN FREQUENCY ----- 
     THIS PROCEDURE WILL RUN A 'WEEKLY' 
     MTPLOT OR DSPLOT JOB INTERACTIVELY.
     THIS IS A WEEKLY JOB IN THAT IT WILL 
     UPDATE THE OLD PERFORMANCE DATA
     PERMANENT FILE AND REPLACE THE OUTPUT
     LISTING FILE.  WEEKLY RUNS SHOULD BE 
     RUN FROM A JOB SUBMITTED BY SKEDULR. 
  
.HELP,BATCPY,NOLIST.
  
     THIS PROCEDURE WILL OPTIONALLY PRINT A HARDCOPY
     OF THE REQUESTED JOB RUN.   THIS IS CONTROLLED 
     BY THE ANSWER TO THIS QUESTION.
  
     YES  TO PRINT A CENTRAL SITE HARDCOPY, 
  
     NO   TO ONLY GET A TERMINAL COPY,
  
     END  TO TERMINATE THIS PROCEDURE AND 
          RETURN TO CMSI130.
  
.ENDHELP. 
.*
.*
DISPLAY(PNL)
.*
CMSIDFX,XPARAM=B. 
.*
.*
.*
$SETTL,*. 
$SETASL,*.
$SETJSL,*.
.*
.*     STEP 1.
.*       CHECK FOR END
.*       CHECK FOR BAD OPT130 VALUE.
.*
.IF,$BATCPY$.EQ.$END$.$REVERT,NOLIST. 
.*
.IF,OPT130.EQ.5.$SKIP,STEP1A. 
.IF,OPT130.EQ.6.$SKIP,STEP1A. 
.*
$NOTE.++ BAD #OPT130 VALUE.  CMSI ERROR.....
$NOTE.+ DOCUMENT USAGE OPTIONS ON A PSR.  ++
$REVERT.....ABORT FROM CMSI135.1. 
.*
$ENDIF,STEP1A.
.*
.*
.*
.*     STEP 1B. 
.*       CLEANUP POSSIBLE LEFTOVER FILES. 
.*
$RETURN,ZZZZOUT,PLOTIN. 
.*     STEP 2.
.*       DO EITHER MTPLOT OR DSPLOT 
.*       DEPENDING ON OPT130. 
.*
.IF,$OPT130$.EQ.$5$,STEP2.
.*
.*     STEP 2A..
.*       DO MTPLOT
.*       ( THIS SHOULD MATCH THE MTPLOT 
.*         JOB SHOWN IN THE CML RM.     ) 
.*
.*
.*     STEP 2B. 
.*       GET HPA FILES AND GENERATE TAPE10 FOR MTPLOT.
.*
OLDHIST.
$IF,R1G.NE.0.REVERT,NOLIST. 
$REWIND,OLDHF.
$COPYBR,OLDHF,OLD,8.
$RETURN,OLDHF.
$RENAME,OLDHF=OLD.
.*
$REWIND,OLDHF.
.*
$NOTE.+ RUNNING HPA FOR MTPLOT. 
.*
$HPA,H,HR=MT,HR=NT,T=D,L=ZZZOUTX. 
$RETURN,OLDHF,ZZZOUTX.
.*
GETATT,MTPLOT.
$IF,R1G.NE.0,STEP2B.
$NOTE.++  MTPLOT NOT AVAILABLE , INSTALL WITH CMLUTIL.
$REVERT,NOLIST. 
$ENDIF,STEP2B.
.*
GETATT,WOLDPDT. 
$IF,FILE(WOLDPDT,.NOT.LO).$NOTE.+ WOLDPDT NOT AVAILABLE.
$IF,FILE(WOLDPDT,LO).$RENAME,OLDPDT=WOLDPDT.
.*
.*
$NOTE.+ START MTPLOT WITH OUTPUT TO THE TERMINAL. 
.*
.*     STEP 2C. 
.*       CALL CMSI139 TO GET INPUT FILE.
.*
CMSI139,#OPT130=OPT130. 
.*
.*
$ONSW,1.           PRINT REPORT 4 
.*
MTPLOT,ZZZZOUT,PLOTIN.
.*
$OFFSW,1.          RESET SWITCH 
.*
.*     STEP 2D. 
.*       REPLACE DATA FILE AND LISTING. 
.*
$RENAME,WOLDPDT=NEWPDT. 
SAVEIT,WOLDPDT. 
$RETURN,WOLDPDT.
.*
$REPLACE,ZZZZOUT=WMTPLOT.      REPLACE LIST FILE. 
.*
.*
.IF,$BATCPY$.EQ.$Y$,STEP2D. 
$REWIND,ZZZZOUT.
.*
CMSIDFX,XPARAM=E. 
.*
.ENDIF,STEP2D.
.*
$REWIND,ZZZZOUT.
$COPYBF,ZZZZOUT,OUTPUT. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*
.*
.*
CLUPHPA.        CLEAR UP HPA FILES. 
.*
$RETURN,OLDHF,OLDPD,MTPLOT,Q,ZZZZOUT,PLOTIN.
$RETURN,TAPE5,TAPE10,OLDPDT.
.*
.ELSE,STEP2.------------------------------- 
.*
.*     STEP 3.
.*       RUN A WEEKLY DSPLOT JOB INTERACTIVELY. 
.*      STEP 3A 
.*       GET ALL NECESSARY FILES FOR DSPLOT.
.*
OLDHIST.
$IF,R1G.NE.0.$REVERT,NOLIST.
$REWIND,OLDHF.
$COPYBR,OLDHF,OLD,8.
$RETURN,OLDHF.
$RENAME,OLDHF=OLD.
.*
.*      STEP 3A1 - DSPLOT.
.*
GETATT,DSPLOT.
$IF,R1G.NE.0,STEP3A1. 
$NOTE.++ DSPLOT NOT AVAILABLE ... USE CMLUTIL 
$NOTE.+  TO INSTALL DSPLOT. 
$REVERT......DSPLOT NOT FOUND.
$ENDIF,STEP3A1. 
.*
.*      STEP 3A2 - DKDATA 
.*
GETATT,DKDATA.
$IF,FILE(DKDATA,.NOT.LO),STEP3A2. 
$NOTE.+  DKDATA FILE NOT FOUND ... USE
$NOTE.+  CMLUTIL TO INSTALL DKDATA. 
$REVERT......DKDATA NOT FOUND.
$ENDIF,STEP3A2. 
.*
.*      STEP 3A3 - OLDPD
.*
GETATT,OLDPD. 
$IF,R1G.NE.0,STEP3A3. 
$NOTE.+OLDPD NOT FOUND , RUN CONTINUES. 
$ONSW,2.      INITIAL RUN 
$ELSE,STEP3A3.
$OFFSW,2.......NOT 1ST RUN. 
$ENDIF,STEP3A3. 
.*
.*
.*     STEP 3A4.
.*       GET DSPLOT INPUT FILE. 
.*
CMSI139,#OPT130=OPT130. 
.*
.*     STEP 4.
.*
$OFFSW,1.               PRINT REPORTS 4 AND 5 
.*
DSPLOT,ZZZZOUT,PLOTIN.
.*
.*
$OFFSW,2.        *RESET SWITCH. 
.*
.*     STEP 5.
.*       REPLACE DATA FILE AND LISTING  FILE. 
.*
$RETURN,OLDPD.
$IF,FILE(NEWPD,LO),STEP5A.
$RENAME,OLDPD=NEWPD.
SAVEIT,OLDPD. 
.*
$ELSE,STEP5A. 
.*
$NOTE.++ OLDPD NOT REPLACED BY CMSI135... 
$NOTE.+ NEWPD WAS NOT CREATED BY DSPLOT...
$NOTE.++ SEE THE FOLLOWING DSPLOT MESSAGES FOR REASON.+ 
.*
$ENDIF,STEP5A.
$RETURN,OLDPD.
.*
.*
$IF,FILE(ZZZZOUT,LO).$REPLACE,ZZZZOUT=OSKPLOT.
.*
.*
.*     STEP 6.
.*       CHECK BATCPY FLAG AND MAKE LISTINGS. 
.*
.IF,$BATCPY$.EQ.$Y$,STEP6.
$REWIND,ZZZZOUT.
.*
CMSIDFX,XPARAM=E. 
.*
.ENDIF,STEP6. 
.*
$REWIND,ZZZZOUT.
$COPYBF,ZZZZOUT,. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$RETURN,ZZZZOUT,Q,TAPE3.
$RETURN,DSPLOT,DKDATA,OLDPD,PLOTIN. 
.*
.ENDIF,STEP2. 
$REVERT,NOLIST. 
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMSI135.. 
*WEOR 
.PROC,CMSI139.
.*
.*  THIS PROCEDURE IS REPLACED BY THE CMSI500 
.*  PROCEDURE DURING INITIALIZATION .   SEE CMSI500 DATA
.*  RECORD FOR THE PROCEDURE TEXT.
.*
*WEOR 
.PROC,CMSI200*M"CMSI - DIAGNOSTIC INTERFACE - CMSI200", 
OPT200= 
(1" RUN A MALET DIAGNOSTICS"
,2" RUN A CPU DIAGNOSTIC (MAINTENANCE DIAGNOSTIC)"
,3" RUN NOS TEST MST" 
,4" RUN TIO / REGEN"
,5" RUN LCN HOST TO HOST CONFIDENCE TEST" 
,6" RUN CDCNET DIAGNOSTICS" 
,7" DISPLAY EST TABLE"
,9" --------------- RETURN TO MAIN CMSI MENU" ).
.*
.PROMPT,CMSI200> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI200
.*
.*       PRIMARY DIAGNOSTIC INTERFACE MENU
.*
.*    PURPOSE - PROMPT FOR SELECTION OF FURTHER TESTING PARAMETERS
.*
.*    PARAMETERS - OPT200 
.*
.*    CALLED BY - CMSI000 
.*
.*    PROCEDURES CALLED - CMSI210 , CMSI220 , CMSI230 , CMSI240 
.*                        CMSI250 , CMS260E , CMSI116 , CMSI000 
.*                        CMSIEFC 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP.
  
    THIS SELECTION PROVIDES ACCESS TO MALET , 
    CPU/MEMORY BACKGROUND DIAGNOSTIC TEST,
    THE NOS MASS STORAGE TEST MST, AND TIO-REGEN. 
  
    MALET HELPS ARE AVAILABLE AND THE SYSTEM
    EST CAN BY VIEWED.
  
  
.HELP,1.
  
  
     THIS PROCEDURE PROUIDES ACCESS TO THE
     SEVERAL  MALET RUNNING MODES AVAILABLE 
     TO THE USER. 
     OPTIONS ARE PROVIDED TO RUN MALET IN EITHER
     MANUAL MODE OR AUTO MODE ( CONFIDENCE TESTING )
     MALET HELPS AND EST DISPLAY. 
  
     NOT SUPPORTED ARE PUNCH FILE , AND BINARY
     FILE USAGE OPTIONS.
  
  
.HELP,2.
  
  
    THIS PROCEDURE PROVIDES ACCESS TO INDIVIDUAL
    CPU TESTS SUPPLIED AS PART OF THE NOS OPERATING 
    SYSTEM.   THESE TESTS CAN BE RUN FROM THE SYSTEM
    CONSOLE WITH THE 'MAINTENANCE' COMMAND. 
    3 ENTRIES ARE NEEDED TO RUN THE TESTS:  
     - TEST NAME  (HELP = 'TEST?' FOR LIST) 
     - CPU TO RUN IN 0,1,2
     - TIME TO RUN
  
     THIS PROCEDURE SUBMITS A BATCH JOB 
     FOR EXECUTION BY THE BATCH SUBSYSTEM.
  
  
.HELP,3.
  
  
         MST IS A CENTRAL PROCESSOR DRIVEN MASS STORAGE TEST.  IT 
         PERFORMS SEQUENTIAL WRITES, READS AND POSITIONS ALONG WITH 
         RANDOM READS AND WRITES ON A SELECTED MASS STORAGE DEVICE. 
         MST ALSO CONTAINS THE ENTRY POINT MSADR WHICH CONVERTS 
         LOGICAL DISK ADDRESSES TO PHYSICAL ADDRESSES.
  
         OPERATING INSTRUCTIONS.
         WHEN CALLED, MST WILL REQUEST ASSIGNMENT OF THE FILE *DISK1*.
  
  
.HELP,4,NOLIST. 
  
     THIS SELECTION PROVIDES CMSI ACCESS TO THE I/O 
     CONFIDENCE TESTS TIO AND REGEN.   FOR FULL 
     DETAILS OF THIER USAGE , SEE SECTION  4
     OF THE CML REFERENCE MANUAL. 
  
.HELP,5,NOLIST. 
  
  
     CMSI250  PROVIDES CMSI WITH THE MEANS TO EXECUTE 
     A CONFIDENCE MODE TEST ON A LCN NETWORK BETWEEN THIS 
     NOS MACHINE AND A REMOTE HOST RUNNING ANY OF THE FOLLOWING 
     TYPES: 
        NOS - NOS        NOS - NOSVE       NOS - NOSBE
        NOS - VSOS(205)  NOS - IBM         NOS - VAX
  
     THIS IS A HIGH LEVEL CONFIDENENCE TEST WHICH USES THE NOS
     'REMOTE HOST FILE TRANSFER' CAPABILITY PROVIDED BY THE 
     SYSTEM COMMAND 'MFLINK'. 
  
     FOR MORE INFORMATION ON THE "MFLINK" COMMAND 
     SEE THE NOS 2 REFERENCE SET VOLUME 3 "SYSTEM COMMANDS" 
     PUB.NUMBER 60459680. 
  
  
  
.HELP,6,NOLIST. 
  
      THIS SELECTION PROVIDES ACCESS TO CDCNET DIAGNOSTICS
      AND STATUS DISPLAYS.
  
.HELP,7,NOLIST. 
  
     THIS SELECTION WILL DISPLAY THE EST
     TABLE FOR THIS MACHINE.   IF A CENTRAL SITE
     PRINTED COPY OF THIS EST IS REQUIRED, SEE THE
     UTILITIES SELECTION FROM THE MAIN CMSI000
     MENU.
  
.HELP,9,NOLIST. 
  
      THIS OPTION RETURNS TO MAIN CMSI MENU 
  
.ENDHELP. 
.*
.*    STEP  1.
.*       BEGIN PROPER PROCEDURE BASED UPON THE OPT200 
.*       SELECTION. 
.*
DISPLAY(PNL)
.IF,OPT200.EQ.1.CMSI210.
.IF,OPT200.EQ.2.CMSI220.
.IF,OPT200.EQ.3.CMSI230.
.IF,OPT200.EQ.4.CMSI240.
.IF,OPT200.EQ.5.CMSI250.
.IF,OPT200.EQ.6.CMS260E.
.*
.IF,OPT200.EQ.7.OFFSW,1.
.IF,OPT200.EQ.7.CMSI116.
.*
.IF,OPT200.EQ.9.$REVERT,NOLIST. 
.*
DISPLAY(PNL)
$REVERT,EX.CMSI200. 
$EXIT.
$REVERT,EX.CMSI000. 
*WEOR 
.PROC,CMSI210*M"CMSI - MALET INTERFACE   -    CMSI210", 
OPT210= 
(1"MALET CONFIDENCE LEVEL TESTING", 
 2"MALET MANUAL ENTRY MODE TESTING",
 3"MALET HELPS",
 4"DISPLAY EST",
  9"--------------- RETURN TO MAIN CMSI MENU" ).
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI210
.*
.*       MALET INTERFACE
.*
.*    PURPOSE - PROMPT THE USER TO SELECT WHAT MALET TESTING TO BE DONE 
.*
.*    PARAMETERS - OPT210 
.*
.*    CALLED BY - CMSI200 
.*
.*    PROCEDURES CALLED - CMSI211 , CMSI213 , CMSI116 , CMSIEFC 
.*                        CMSI200 , CMSI000 
.*
.* -------------------------------------------------------- 
.*
.PROMPT,CMSI210> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE PROUIDES ACCESS TO THE
     SEVERAL  MALET RUNNING MODES AVAILABLE 
     TO THE USER. 
     OPTIONS ARE PROVIDED TO RUN MALET IN EITHER
     MANUAL MODE OR AUTO MODE ( CONFIDENCE TESTING )
     MALET HELPS AND EST DISPLAY. 
  
.HELP,1.
  
     RUN A USER SELECTED MALET DIAGNOSTIC IN CONFIDENCE 
     LEVEL TESTING MODE.   USER WILL BE PROMPTED FOR
     ALL NECESSARY PARAMETERS.
  
.HELP,2.
  
     RUN USER SELECTED MALET DISGNOSTIC IN FULLY
     MANUAL MODE.   TESTING LEVEL.   PARAMETERS ARE 
     RESPONSIBILITY OF THE USER.
     - THE OPTION WILL EITHER PROMPT FOR NECESSARY
       PARAMETERS OR EXPRESS MODE CAN BE SELECTED.
  
.HELP,3.
  
     THIS PROCEDURE WILL DISPLAY A SET OF 
     HELPS FOR THE PERIPHERAL TESTING PACKAGE 
     MALET. 
  
     FOR MORE COMPLETE MALET USAGE SEE THE
     CML REFERENCE MANUAL PUB. NO. 60455980.
  
     FOR MORE INFORMATION ON MALET PROGRAMMING AND
     MALET LANGUAGE SEE THE MALET REFERENCE MANUAL
     PUB. NO. 60456020. 
  
     MALET HELP DISPLAYS INCLUDE: 
     - GENERAL INFORMATION
     - MALET DISPLAYS 
     - MALET COMMANDS 
     - EST DISPLAY
     - TEST LISTS 
  
.HELP,4.
  
     DISPLAY SYSTEM EQUIPMENT TABLE FOR THIS MACHINE. 
  
.HELP,9,NOLIST. 
  
     RETURN TO THE MAIN CMSI MENU AT LEVEL CMSI000. 
  
.ENDHELP. 
.*
.*      STEP  1.
.*
.IF,OPT210.EQ.1.CMSI211,#MODE=$AUTO$. 
.IF,OPT210.EQ.2.CMSI211,#MODE=$MANUAL$. 
.*
.IF,OPT210.EQ.3.CMSI213.
.*
.IF,OPT210.EQ.4.OFFSW,1.         PRINT FULL EST 
.IF,OPT210.EQ.4.CMSI116.
.*              TO 200    TO 000
.IF,OPT210.EQ.9.$REVERT,EX.$REVERT,EX.CMSI000.
.*
DISPLAY(PNL)
$REVERT,NOLIST. 
$EXIT.
$REVERT....ABORT FROM CMSI210.. 
*WEOR 
.PROC,CMSI211*I"CMSI - MALET INTERFACE II  -  CMSI211", 
MODE=(AUTO,MANUAL), 
TEST'MALET TEST NAME  OR END TO QUIT' = 
*CALL CDCMLI2 
   E=END,END )  . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI211
.*
.*       MALET INTERFACE
.*
.*    PURPOSE - CONTINUE PROCESSING MALET PARAMETER SELECTIONS
.*
.*    PARAMETERS - MODE , TEST
.*
.*    CALLED BY - CMSI210 
.*
.*    PROCEDURES CALLED - CMSI212 , CMSI210 , GETATT
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
    THIS PROCEDURE INPUTS INTERACTIVELY 
    ALL THE NECESSARY PARAMETERS
    NEEDED TO RUN MALET TESTS.
  
.HELP,MODE,NOLIST.
  
     PARAMETER SUPPLIED BY CALLING PROCEDURE. 
       MODE = AUTO
              MANUAL
                END 
  
.HELP,TEST,NOLIST.
  
     VALID DIAGNOSTICS INCLUDE- 
  
*CALL,CDCMLI1 
  
        "END" TO TERMINATE
  
     -  TYPE 'END' TO RETURN TO DIAGNOSTIC INTERFACE MENU ( CMSI200 ) 
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*
.*     STEP 1 
.*       TEST THE INTERACTIVE ENTERIES FOR SPECIAL
.*       ITEMS. 
.*     (1A) - TEST = 'END'
.*
.IF,$TEST$.EQ.$END$,STEP1.
.*
$NOTE.+ MALET TESTING ENDED 
$SKIP,XENDOUT.
.*
.ELSE,STEP1.
.*
.*
.*     STEP 1A. 
.*       GET THE REQUESTED MALET TEST 
.*        MODULES.
.*
GETATT,TEST.
$IF,R1G.NE.0,STEP1A.
.*
$NOTE.+  CMSI21X  -  UNABLE TO FIND FILE = TEST 
$NOTE.+             RUN CMLUTIL TO INSTALL  TEST. 
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*
$SKIP,XENDOUT.
$ENDIF,STEP1A.    ----------------- 
.*     STEP 2.
.*       CALL CMSI212 TO CONTINUE PARAMETER 
.*       SELECTION FOR MALET. 
.*
CMSI212,#MODE=$MODE$,#TEST=$TEST$.
.*
.*
.ENDIF,STEP1. 
.*
$ENDIF,XENDOUT. 
$REVERT,NOLIST. 
.*
$EXIT.
$REVERT.....ABORT FROM CMSI211..
*WEOR 
.PROC,CMSI212*I,
MODE=(AUTO,MANUAL), 
TEST= 
*CALL CDCMLI2 
      END)   ,
EST" NUM TO TEST, 'NO' IF NOT IN EST, 'LIST' FOR EST, 'END' TO QUIT"= 
   (*S3(01234567) , NO , LIST , END ) . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI212
.*
.*       MALET INTERFACE
.*
.*    PURPOSE - CONTINUE PROCESS MALET SELECTIONS 
.*
.*    PARAMETERS - MODE , TEST , EST
.*
.*    PROCEDURES CALLED - CMSI116 , CMS2123 , MLTFTP
.*                        MLTTFF , CMS2125 , CMS2127 , CMSIEFC
.*
.*    CALLED BY - CMSI211 
.*
.*     FILES REQUIRED: TEST    - FROM CMSI211 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
    THIS PROCEDURE INPUTS INTERACTIVELY 
    ALL THE NECESSARY PARAMETERS
    NEEDED TO RUN MALET TESTS.
  
.HELP,MODE,NOLIST.
  
     PARAMETER SUPPLIED BY CALLING PROCEDURE. 
       MODE = AUTO
              MANUAL
                END 
  
.HELP,TEST,NOLIST.
     PARAMETER SUPPLIED BY CALLING PROCEDURE. 
  
     VALID DIAGNOSTICS INCLUDE- 
  
*CALL,CDCMLI1 
  
  
.HELP,EST,NOLIST. 
  
     EST , ENTER THE 1-3 OCTAL DIGIT SYSTEM EQUIPMENT 
     STATUS TABLE ELEMENT ORDINAL WHICH YOU WISH TO TEST. 
  
     - ENTER 'LIST' TO DISPLAY EST LIST.
  
     - ENTER 'NO' IF DEVICE IS NOT IN THE 
       SYSTEM EST.
  
     - ENTER 'END' TO QUIT MALET TESTING. 
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*
.*     STEP 1.
.*     TEST 'EST' = LIST EXECUTE CMSI116. 
.*
.IF,$EST$.EQ.$LIST$,STEP1.
.*
$OFFSW,1. 
.*
CMSI116.
$REVERT,EX.CMSI212,#MODE=$MODE$,#TEST=$TEST$. 
.ENDIF,STEP1. 
.*
.*
.*     STEP 2.
.*       TEST FOR 'END' 
.IF,$EST$.EQ.$END$,STEP2. 
$SKIP,XENDOUT.
.*
.ENDIF,STEP2. 
.*
.*
$RENAME,RFILE=TEST. 
.*
.*     STEP 3.
.*       TEST EST = NO .... CALL CMS2127
.*
.IF,$EST$.EQ.$NO$.CMS2127,#TEST=TEST. 
.IF,$EST$.EQ.$NO$.$REVERT,EX.$REVERT,NOLIST.. 
.*
.*
.*     STEP 3A. 
.*       TEST MODE = MANUAL .. CALL CMS2125.
.*
.IF,$MODE$.EQ.$MANUAL$.CMS2125,#TEST=TEST,#EST=EST. 
.IF,$MODE$.EQ.$MANUAL$.$REVERT,EX.$REVERT,NOLIST. 
.*
.*
.*
.*     STEP 3B. 
.*       FOR ALL OTHERS CALL CMS2122. 
.*
CMS2122,#TEST=$TEST$,#EST=$EST$.
.*
$ENDIF,XENDOUT. 
$REVERT,NOLIST. 
.*
.*
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT.....ABORT FROM CMSI212..
*WEOR 
.PROC,CMS2122*I,
TEST= 
  (*S3(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789) ) ,
EST"- NUMBER TO TEST"=(*S3(01234567)),
CH'-ENTER 170/NIO CHANNEL NUMBER OR (CR) IF CIO CHAN OR TO USE EST'=
        ( *S2(01234567), $$ , =$$ ) , 
CCH'-ENTER CIO CHANNEL NUMBER OR (CR) IF NIO CHAN OR TO USE EST'= 
        ( *S2(01234567), $$ , =$$ ) , 
UNIT"NUMBER OF EQUIP. TO TEST , (CR) FOR AUTO SELECTION , N/A"= 
  ( *S2(01234567) , =X , X )   ,
DC'DEVICE CODE TO USE. (CR) FOR AUTO SELECTION'=
  ( *S4(01234567) , =X , X )   .
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI2122 
.*
.*       MALET INTERFACE CONTINUED
.*
.*    PURPOSE - CONTINUE PROCESS MALET SELECTIONS 
.*
.*     PARAMETERS - TEST, EST, CH, CCH, UNIT, DC
.*
.*    PROCEDURES CALLED - CMSI116 , GETATT , CMS2123 , MLTFTP 
.*                        MLTTFF , CMS2125 , CMS2127 , CMSIEFC
.*                 MLTDEMA
.*
.*    CALLED BY - CMSI212 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
    THIS PROCEDURE INPUTS INTERACTIVELY 
    ALL THE NECESSARY PARAMETERS
    NEEDED TO RUN MALET TESTS.
  
.HELP,TEST,NOLIST.
  
     VALID DIAGNOSTICS INCLUDE- 
  
*CALL,CDCMLI1 
  
.HELP,EST,NOLIST. 
  
     PARAMETER SUPPLIED BY CMSI212 CALL.
  
     EST , ENTER THE 1-3 OCTAL DIGIT SYSTEM EQUIPMENT 
     STATUS TABLE ELEMENT ORDIANL WHICH YOU WISH TO TEST. 
  
.HELP,CH,NOLIST.
  
     PROVIDE MEANS TO SPECIFY THAT 170 OR I4 NIO CHANNEL
     TO BE USED DURING TESTING. 
  
     - ENTER (CR) IF THE PRIMARY EST CHANNEL IS TO BE USED
       FOR TESTING.  (THIS CAN BE EITHER AN NIO OR CIO CHANNEL).
  
     - ENTER A NUMBER IF YOU WISH TO EXPLICITLY SPECIFY THE 170 
       TYPE CHANNEL TO BE USED FOR TESTING. 
  
     - ENTER (CR) IF THE CHANNEL TO BE USED IS AN I4-CIO CHANNEL. 
  
     --- NOTE: ---
       BOTH CH AND CCH CHANNEL NUMBERS CANNOT BE USED 
       AT THE SAME TIME.  AN ERROR WILL BE RETURNED 
       IF BOTH CH AND CCH ARE ENTERED.
  
.HELP,CCH,NOLIST. 
  
     PROVIDE MEANS TO SPECIFY TESTING OF A DEVICE CONNECTED 
     TO AN I4-CIO-DMA CHANNEL.
  
     - ENTER (CR) IF THE PRIMARY EST CHANNEL IS TO BE 
       USED FOR TESTING.  (CIO OR NIO). 
  
     - ENTER A NUMBER IF YOU WISH TO EXPLICITLY SPECIFY THE 
       I4-CIO-DMA CHANNEL TO BE USED FOR TESTING. 
  
     - ENTER (CR) IF THE CHANNEL TO BE USED HAS BEEN ENTERED
       IN THE 170 CHANNEL PARAMETER 'CH' ABOVE. 
  
     --- NOTE: ---
       BOTH CH AND CCH CHANNEL NUMBERS  CANNOT BE USED
       AT THE SAME TIME.  AN ERROR WILL BE RETURNED 
       IF BOTH CH AND CCH ARE ENTERED.
  
.HELP,UNIT,NOLIST.
  
     UNIT , ENTER THE UNIT NUMBER TO TEST.  IF THIS IS A SINGLE 
     UNIT EQUIPMENT OR IF THE FIRST UNIT OF A MULTI-UNIT DEVICE 
     IS TO BE TESTED THEN A (CR) OR (NEXT) MAY BE ENTERED.
  
.HELP,DC,NOLIST.
  
     SEVERAL MALET TESTS SUPPORT MULTIPLE DEVICE CODES FOR THE
     SAME EQUIPMENT AND CONDITIONS THE MODULES RUN WITH THE CODE. 
     THIS PARAMETER ALLOWS THE USER TO SPECIFY THE DEVICE CODE TO 
     BE USED WHILE TESTING THIS DEVICE. 
  
     ENTER  (CR)  TO USE DEFAULT DEVICE CODE. 
       "    DEVICE CODE NUMBER DESIRED IF DIFFERENT THAN
     THE DEFAULT. 
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*
.*     STEP 0.
.*     TEST FOR BOTH CH AND CCH.  IF SO RECALL CMS2122
.*      FOR CORRECTION....
.*
.IF,(NUM(CH)).AND.(NUM(CCH)),STEP0. 
.*
$NOTE.++++   ERROR - <<< #CH = CH  ... #CCH = CCH >>> ++
$NOTE.+          BOTH #CH AND #CCH CANNOT BE SPECIFIED AS 
$NOTE.+          NUMBERS. 
$NOTE.+          PLEASE RE-ENTER VALUES FOR #CH AND/OR #CCH.++
.*
$NOTE.+  ENTER (CR) TO CONTINUE.
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.*
$REVERT,EX.CMS2122,#TEST=TEST,#EST=EST,#UNIT=UNIT,#DC=DC. 
.*
.ENDIF,STEP0. 
.*
.*
.*
.*     STEP 1.
.*       CHECK FOR CONFIDENCE TYPE TESTS. 
.*
.IF,($TEST$.EQ.$D44$).OR.($TEST$.EQ.$F44$)
 .OR.($TEST$.EQ.$D88$).OR.($TEST$.EQ.$F88$) 
 .OR. ($TEST$.EQ.$DL8$).OR.($TEST$.EQ.$DTC$).OR.($TEST$.EQ.$FLD$) 
 .OR.($TEST$.EQ.$DM8$).OR.($TEST$.EQ.$DTI$),STEP1.
.*
$BEGIN,CMS2123,CMLINST, 
 #TEST=TEST,#EST=EST,#UNIT=UNIT,
  .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH, 
  .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH,
  .IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC, 
 #AL=03...............................END OF CALL. 2122-1.
.*
.ENDIF,STEP1A1. 
$SKIP,XENDOUT.
.*
.ENDIF,STEP1.  -----
.*
.*
.IF,($TEST$.EQ.$FEP$).OR.($TEST$.EQ.$DH8$).OR.($TEST$.EQ.$FHD$),STEP1A. 
.*
MLTDEMA,#TEST=TEST,#EST=EST,
 .IF,(NUM(CH)).#CH=CH,
 .IF,(NUM(CCH)).#CCH=CCH, 
 #UNIT=UNIT,#DC=DC............2122-1A.. 
.*
$SKIP,XENDOUT.
.*
.ENDIF,STEP1A.
.*
.*
.IF,($TEST$.EQ.$FMD$).OR.($TEST$.EQ.$FSD$),STEP2. 
.*  PATCH FOR 2.3 / 2.4 DIFFERENCE
$BEGIN,CMS2123,CMLINST, 
 #TEST=TEST,#EST=EST,#UNIT=UNIT,
  .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH, 
   .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH, 
   .IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC,
 #AL=03,#P4=4000,#P5=0010............END OF CALL. 2122-2. 
.*
.*
$SKIP,XENDOUT.
.ENDIF,STEP2.  -----
.*
.*     STEP 3.
.*       CHECH CONFIDENCE LEVEL TEST ON TAPE. 
.*
.IF,($TEST$.EQ.$T5X$).OR.($TEST$.EQ.$T6X$).OR.($TEST$.EQ.$T7X$),STEP3.
MLTTAP1,#TEST=TEST,#EST=EST,
  .IF,(NUM(CH)).#CH=CH, 
  .IF,(NUM(CCH)).#CCH=CCH,
  #UNIT=UNIT,#DC=DC....2122-3...
$SKIP,XENDOUT.
.ENDIF,STEP3.  -----
.*
.*
.*     STEP 4.
.*          **  ACCESS LEVEL 10 TEST
.*
.IF,($TEST$.EQ.$FHC$).OR.($TEST$.EQ.$FMC$),STEP4. 
$NOTE.S 
$NOTE.+  **  MALET  -  WARNING:  TEST REQUIRES ACCESS LEVEL 10
$NOTE.+  **            DEVICE MUST BE OFF AND DOWN IN (#EST)
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.*
.*  PATCH FOR 2.3 / 2.4 DIFFERENCE
$BEGIN,CMS2123,CMLINST, 
 #TEST=TEST,#EST=EST,#UNIT=UNIT,
  .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH, 
   .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH, 
   .IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC,
 #AL=10,#P4=4000,#P5=1010..............END OF CALL. 2122-4. 
.*
.*
$SKIP,XENDOUT.
.ENDIF,STEP4.  -----
.*
.*
.IF,$TEST$.EQ.$FTP$,STEP6.
MLTFTP,#EST=EST,#UNIT=UNIT, 
  .IF,(NUM(CH)).#CH=CH, 
  .IF,(NUM(CCH)).#CCH=CCH,
   #DC=DC......2122-6.. 
$SKIP,XENDOUT.
.ENDIF,STEP6. ----- 
.*
.IF,$TEST$.EQ.$CP1$.OR.$TEST$.EQ.$CR1$,STEP7. 
$NOTE.S 
$NOTE.+  MALET  -  WARNING: TEST REQUIRES ACCESS LEVEL 10 
$NOTE.+            DEVICE MUST BE OFF AND DOWN IN (#EST)
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.*
.IF,$TEST$.EQ.$CR1$,STEP7A. 
GETATT,CR1SCR.
$IF,R1G.NE.0,STEP7B.
.** 
$NOTE.++ CMS2122 - UNABLE TO FIND #FILE=#CR1SCR.
$NOTE.+ USE CMLUTIL TO INSTALL #CR1SCR. 
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
.*
$RETURN,ZTRASH. 
$ENDIF,STEP7B.
.*
$REVERT,EX.$REVERT,EX.$REVERT,EX.CMSI200. 
.*
$ELSE,STEP7B. 
.*
$NOTE.++ #SCRATCH FILE #CR1SCR ATTACHED.
$RENAME,#SCRATCH=#CR1SCR. 
.*
.ENDIF,STEP7A.
$BEGIN,CMS2123,CMLINST, 
 #TEST=TEST,#EST=EST,#UNIT=UNIT,
  .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH, 
   .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH, 
   .IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC,
 #AL=10...............................END OF CALL. 2122-7.
.*
.*
$SKIP,XENDOUT.
.ENDIF,STEP7. ----- 
.*
.*
.*     STEP 8.
.*          **  ACCESS LEVEL 20 TEST
.*
.IF,$TEST$.EQ.$CRP$.OR.$TEST$.EQ.$TFF$.OR.$TEST$.EQ.$TFL$,STEP8.
$NOTE.S 
$NOTE.+  **  MALET  -  WARNING: TEST REQUIRES ACCESS LEVEL 20 
.IF,$TEST$.EQ.$CRP$,STEP8A. 
$NOTE.+                DEDICATED CHANNEL, ALL UNITS, AND CONTROLLERS
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.*
$BEGIN,CMS2123,CMLINST, 
 #TEST=TEST,#EST=EST,#UNIT=UNIT,
  .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH, 
   .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH, 
   .IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC,
 #AL=20...............................END OF CALL. 2122-8A. 
.*
.*
$SKIP,XENDOUT.
.ENDIF,STEP8A. -----
*.
.IF,$TEST$.EQ.$TFF$,STEP8B. 
$NOTE.+                DEDICATED CHANNEL, DEVICE MUST DOWN IN (#EST)
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.*
MLTTFF,#EST=EST,#UNIT=UNIT, 
  .IF,(NUM(CH)).#CH=CH, 
  .IF,(NUM(CCH)).#CCH=CCH,
   #DC=DC......2122-8B..
$SKIP,XENDOUT.
.ENDIF,STEP8B. -----
.ENDIF,STEP8. 
.*
.*     STEP 9.
.*       FORCE MANUAL... TEST NOT IN CONFIDENCE LIST. 
.*
$NOTE.+  **  MALET  -  TEST NOT IN AUTO #TEST LIST
$NOTE.+                USER MAY RUN TEST IN MANUAL #MODE
$NOTE.S 
.*
CMS2125,#TEST=TEST,#EST=EST,
  .IF,$CH$.EQ.$$.#CH=$X$, 
  .IF,$CH$.NE.$$.#CH=CH,
  .IF,$CCH$.EQ.$$.#CCH=$X$, 
  .IF,$CCH$.NE.$$.#CCH=CCH, 
  #UNIT=UNIT,#DC=DC............2122-9.
$SKIP,XENDOUT.
.*
.*
$REVERT,EX.CMSI210. 
.*
$ENDIF,XENDOUT. 
.*
$REVERT,NOLIST. 
.*
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT.....ABORT FROM CMSI212..
*WEOR 
.PROC,CMS2123*I,
TEST =
  (*S3(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789) ) ,
EST=(*S3(01234567)),
XCH=( $,CH=$ , $,CCH=$ , *N= ) ,
ZCH=(*S2(01234567) , *N= ) ,
UNIT=(*S2(01234567) ,=X,X), 
AL= 
*CALL COMMTAL 
     *N=0 , =0 ) ,
XDC=(*N= , $,DC=$ ) , 
DC =( *N= , *S4(01234567) ) , 
P0=(*S4(01234567),*N=$0000$) , P1=(*S4(01234567),*N=$0000$) , 
P2=(*S4(01234567),*N=$0000$) , P3=(*S4(01234567),*N=$0000$) , 
P4=(*S4(01234567),*N=$0000$) , P5=(*S4(01234567),*N=$0000$) , 
P6=(*S4(01234567),*N=$0000$) , P7=(*S4(01234567),*N=$0000$) , 
P8=(*S4(01234567),*N=$0000$) , P9=(*S4(01234567),*N=$0000$) , 
SE=(*F,*N=$ON  $) , RT=(*F,*N=$OFF $) , 
AFLG=(*F,*N=0),AINP=(*F,*N=0) , 
ESM'(USED ONLY FOR TEST FEP)'=(*N=, YES=$$, NO=$,ESM=NO$ ) ,
TRK=(MT , NT ,*N=$$ ).
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2123
.*
.*       MALET CONFIDENCE TEST PROC.
.*
.*    PURPOSE - PROCESS LAST STEP OF MALET CONFIDENCE LEVEL TESTING.
.*
.*    PARAMETERS - TEST,EST,XCH,ZCH,XDC,DC,UNIT,
.*                 AL,P0,...P9,SE,RT,AFLG,AINP
.*
.*     CALLED BY - CMS2122 , MLTTAP2 , MLTTAP1 , MLTFTP 
.*                 MLTDEMA , MLTTFF 
.*
.*    PROCEDURES CALLED - CLUPMLT 
.*
.* -------------------------------------------------------- 
.*
.*
.*
.*
.*                 CMSI MALET RUN MODULE
.*
.*
$NOTE.+  **  CMSI MALET  -  CONFIDENCE LEVEL #TEST = TEST 
.*
.IF,$TRK$.EQ.$MT$.OR.$TRK$.EQ.$NT$,STEP0. 
.IF,($XCH$.EQ.$$),STEP0A. 
$NOTE.+  WAIT TAPE MOUNT+ 
$LABEL,CDCSCR,$TRK$,VSN=#EST_EST,LB=KU,PO=W..ASSIGN MALET TEST TO #EST=EST. 
.ENDIF,STEP0A.
.*
.ENDIF,STEP0. 
.IF,$AFLG$.EQ.$NT$ .OR. $AFLG$.EQ.$MT$,STEP1. 
.*
.IF,($XCH$.EQ.$$),STEP1A. 
$MALET,T=80,I=TAPEINP,L=CMSIOUT.
.ELSE,STEP1A. 
$MALET,T=80,I=TAPEINQ,L=CMSIOUT.
.ENDIF,STEP1A.
.ELSE,STEP1.
.*
.*    ALL EXCEPT TAPES
.IF,$UNIT$.NE.$X$.$MALET,T=80,I=MULTI2,L=CMSIOUT. 
.IF,$UNIT$.EQ.$X$.$MALET,T=80,I=MULTI2A,L=CMSIOUT.
.*
.ENDIF,STEP1. 
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$UNLOAD,CDCSCR. 
.*
CLUPMLT.
.*
$RETURN,MLTGCX1,MLTPGX1,MLTGPX1.
$RETURN,MLTIRZ,MULTI2A,MULTI2.
$REVERT,NOLIST. 
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMS2123.. 
.*
.*--------------------
.DATA,MULTI2. 
A,#EST=EST_XCH_ZCH_,#UN=UNIT,#AL=AL_ESM_XDC_DC_.
P,#P0=P0,#P1=P1,#P2=P2,#P3=P3.
P,#P4=P4,#P5=P5,#P6=P6,#P7=P7.
P,#P8=P8,#P9=P9,#TL=0010,#LL=0000.
SETSW,#SE.
CLRSW,#RT.
R,TEST. 
DROP. 
.*
.*--------------------
.DATA,TAPEINP.
A_XCH_ZCH_,#AL=AL,#MNE=TRK_XDC_DC_. 
P,#P0=P0,#P1=P1,#P2=P2,#P3=P3.
P,#P4=P4,#P5=P5,#P6=P6,#P7=P7.
P,#P8=P8,#P9=P9,#TL=0010,#LL=0000.
SETSW,#SE.
CLRSW,#RT.
R,TEST. 
.IF,$AINP$.EQ.$MLTPGX1$.P,#P1=0014. 
.IF,$AINP$.EQ.$MLTGPX1$.P,#P1=0012. 
.IF,$AINP$.EQ.$MLTGPX1$.OR.$AINP$.EQ.$MLTPGX1$.R,TEST.
DROP. 
.*
.*--------------------
.DATA,TAPEINQ.
A_XCH_ZCH_,#AL=AL,#EST=EST_XDC_DC_. 
P,#P0=P0,#P1=P1,#P2=P2,#P3=P3.
P,#P4=P4,#P5=P5,#P6=P6,#P7=P7.
P,#P8=P8,#P9=P9,#TL=0010,#LL=0000.
SETSW,#SE.
CLRSW,#RT.
R,TEST. 
.IF,$AINP$.EQ.$MLTPGX1$.P,#P1=0014. 
.IF,$AINP$.EQ.$MLTGPX1$.P,#P1=0012. 
.IF,$AINP$.EQ.$MLTGPX1$.OR.$AINP$.EQ.$MLTPGX1$.R,TEST.
DROP. 
.*
.*------------------
.DATA,MULTI2A.
A,#EST=EST_XCH_ZCH_,#AL=AL_ESM_XDC_DC_. 
P,#P0=P0,#P1=P1,#P2=P2,#P3=P3.
P,#P4=P4,#P5=P5,#P6=P6,#P7=P7.
P,#P8=P8,#P9=P9,#TL=0010,#LL=0000.
SETSW,#SE.
CLRSW,#RT.
R,TEST. 
DROP. 
.EOF
*WEOR 
.PROC,CMS2125*I,
TEST=(*S3(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789) ),
EST'     - ENTER EST:           '=(*S3(01234567)),
CH'     - ENTER 170/NIO CHANNEL: NUMBER OR (CR) IF USE EST.'= 
         (*S2(01234567) , X , *N= ) , 
CCH'     - ENTER CIO CHANNEL: NUMBER OR (CR) IF IN EST OR NOT CIO CHAN.'= 
         (*S2(01234567) , X , *N= ) , 
UNIT'     - ENTER UNIT NUMBER:   '=(*S2(01234567),=X,X),
DC'     - ENTER DEVICE CODE:     '= (*S4(01234567),=X,X), 
AL'     - ENTER ACCESS LEVEL:  '= 
*CALL COMMTAL 
      =0 )  . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2125
.*
.*       PROCESS MALET FOR MANAUL RUNS. 
.*
.*    PURPOSE - PROCESS MALET FOR REQUESTED AND FORCED MANUAL RUNS
.*
.*     PARAMETERS - EST, CH, CCH, UNIT, AL, DC
.*
.*    CALLED BY - CMSI212 , CMS2122 
.*
.*    PROCEDURES CALLED - CLUPMLT , CMSMANL 
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
    PROCESS THE LAST STEP OF A MANUAL AND FORCED
    MANUAL MALET RUN. 
  
.HELP,TEST,NOLIST.
  
     TEST SUPPLIED BY CALLING PROCEDURE.
  
.HELP,EST,NOLIST. 
  
    EST SUPPLIED BY CALLING PROC. 
  
.HELP,CH,NOLIST.
  
     PROVIDE MEANS TO SPECIFY THAT 170 OR I4 NIO CHANNEL
     TO BE USED DURING TESTING. 
  
     - ENTER (CR) IF THE PRIMARY EST CHANNEL IS TO BE USED
       FOR TESTING.  (THIS CAN BE EITHER AN NIO OR CIO CHANNEL).
  
     - ENTER A NUMBER IF YOU WISH TO EXPLICITLY SPECIFY THE 170 
       TYPE CHANNEL TO BE USED FOR TESTING. 
  
     - ENTER (CR) IF THE CHANNEL TO BE USED IS AN I4-CIO CHANNEL. 
  
     --- NOTE: ---
       BOTH CH AND CCH CHANNEL NUMBERS CANNOT BE USED 
       AT THE SAME TIME.  AN ERROR WILL BE RETURNED 
       IF BOTH CH AND CCH ARE ENTERED.
  
.HELP,CCH,NOLIST. 
  
     PROVIDE MEANS TO SPECIFY TESTING OF A DEVICE CONNECTED 
     TO AN I4-CIO-DMA CHANNEL.
  
     - ENTER (CR) IF THE PRIMARY EST CHANNEL IS TO BE 
       USED FOR TESTING.  (CIO OR NIO). 
  
     - ENTER A NUMBER IF YOU WISH TO EXPLICITLY SPECIFY THE 
       I4-CIO-DMA CHANNEL TO BE USED FOR TESTING. 
  
     - ENTER (CR) IF THE CHANNEL TO BE USED HAS BEEN ENTERED
       IN THE 170 CHANNEL PARAMETER 'CH' ABOVE. 
  
     --- NOTE: ---
       BOTH CH AND CCH CHANNEL NUMBERS  CANNOT BE USED
       AT THE SAME TIME.  AN ERROR WILL BE RETURNED 
      IF BOTH CH AND CCH ARE ENTERED. 
  
.HELP,UNIT,NOLIST.
  
     UNIT NUMBER OF DEVICE TO TEST. 
     (SUPPLIED BY CMS2122 BUT, NOT CMSI212) 
  
     ENTER A VALID UNIT NUMBER OR A (CR) IF THIS
      DEVICE HAS NO PHYSICAL UNIT NUMBER. 
  
.HELP,DC,NOLIST.
  
     THE DC PARAMETER ALLOWS THE USER TO ENTER A
     DEVICE CODE IF ONE OTHER THE DEFAULT IS DESIRED. 
     ENTER (CR) TO USE THE DEFAULT. 
     ENTER  THE NUMBER IF ANOTHER IS TO BE USED.
  
  
.HELP,AL,NOLIST.
  
    MALET ACCESS LEVEL (AL) TO BE USED WHEN TESTING.
  
    CHOOSE A VALID ACCESS LEVEL.
  
    SOME TESTS HAVE A MINIMIUM ALLOWED ACCESS 
    LEVEL AT WHICH THE TEST WILL RUN.  REFER
    TO THE SPECIFIC TEST DOCUMENTATION. 
  
.ENDHELP. 
DISPLAY(PNL)
.*
.*     TEST FOR BOTH CH AND CCH.  IF SO RECALL CMS2125
.*      FOR CORRECTION....
.*
.IF,(NUM(CH)).AND.(NUM(CCH)),RECALLX. 
.*
$NOTE.++++   ERROR - <<< #CH = CH  ... #CCH = CCH >>> ++
$NOTE.+          BOTH #CH AND #CCH CANNOT BE SPECIFIED AS 
$NOTE.+          NUMBERS. 
$NOTE.+          PLEASE RE-ENTER VALUES FOR #CH AND/OR #CCH.++
.*
$NOTE.+  ENTER (CR) TO CONTINUE.
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.*
$REVERT,EX.CMS2125,#TEST=TEST,#EST=EST,#UNIT=UNIT,#DC=DC,#AL=AL.
.*
.ENDIF,RECALLX. 
.*
.*  **  START MANUAL MALET
.*
$NOTE.++************************************************
$NOTE.+*
$NOTE.++  **  CMSI MALET    MANUAL MODE  CMS2125  **
$NOTE.+*
$NOTE.+************************************************ 
.*
.*     STEP 0.
.*       MODIFY THE DATA RECORDS WITH THE DC PARAMETER. 
.*
  CMSMANL,#EST=EST,#UNIT=UNIT,
   .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH,
   .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH, 
   .IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC,
 #AL=AL...................................CMS2125...
.*
.*     GET ANY NEEDED SCRATCH FILES.
.*
GETSCR,#TEST=TEST.
.*
.*     SELECT MALET COMMAND DEPENDING ON
.*     THE COMBINATIONS OF CH AND UNIT GIVEN. 
.*
.IF,$TEST$.EQ.$CLM$.OR.$TEST$.EQ.$FLM$.OR.$TEST$.EQ.$NLM$,STEP1.
$NOTE.++ #SCRATCH FILES #NDM, #NDP, (#NDT IF NLM) ARE 
$NOTE.+ LOCAL .  THE USER MUST USE THE MALET DIRECTIVE
$NOTE.+ 'SCRATCH=XXX' TO USE THE FILES. 
$NOTE.++
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.ENDIF,STEP1. 
.*
.IF,$TEST$.EQ.$TFL$,STEP2.
$NOTE.++ #SCRATCH FILES NORMALLY USED BY #TEST #TFL 
$NOTE.+ LOCAL.  THE USER MUST USE THE MALET DIRECTIVE 
$NOTE.+ 'SCRATCH=XXX' TO USE THE FILES. 
$NOTE.++
.*
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.ENDIF,STEP2. 
.*
$NOTE.++  *****  THE USE OF 
$NOTE.+ MALET ASSIGN DIRECTIVE PARAMETERS OTHER 
$NOTE.+ THAN "#EST", "#AL", "#CH", "#CCH", "#UNIT", "#EQ", "#DC"
$NOTE.+ WILL REQUIRE THAT YOU REENTER THE ASSIGN
$NOTE.+ DIRECTIVE.  + 
.*
.*
.IF,AL.GT.7,STEP3.
$NOTE.++ UNITS TESTED WITH THIS PROCEDURE 
$NOTE.+ REQUIRE THAT THE #UNIT IS OFF IN THE #EST 
$NOTE.+ BEFORE MALET WILL ALLOW ASSIGNMENT. 
$NOTE.++
.ENDIF,STEP3. 
$NOTE.++ THE USER MUST ENTER ALL ADDITIONAL MALET 
$NOTE.+ DIRECTIVES INCLUDING:  RUN,#TEST, ... DROP, ...ETC. 
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
.*
$RETURN,ZTRASH. 
.*
.*       UNIT = X 
.IF,$UNIT$.EQ.$X$.$MALET,T=80,I=MLTMZ,L=CMSIOUT.
.*       UNIT = NUMBER
.IF,(NUM(UNIT)).$MALET,T=80,I=MLTMZZ,L=CMSIOUT. 
.*
CLUPMLT.
.*
$RETURN,MLTMZ,MLTMZZ. 
$REVERT,NOLIST. 
$EXIT.
.*
.*
$REVERT,NOLIST. 
*WEOR 
.PROC,CMSMANL*I"",
 EST=( *S3(01234567) ), 
 XCH=( $,CH=$ , $,CCH=$ , *N= ) , 
 ZCH=( *S2(01234567) , *N=  )  ,
 UNIT=(*S2(01234567) , =X , X ) , 
 AL= ( *S2(01234567) ) ,
 XDC=( $,DC=$ ,  *N= ) ,
 DC= ( *S4(01234567) ,*N= )         . 
.*
.*   . . . . . . . . . . . . . . . . . . . . . . . .
.*  CALLED BY CMS2125 TO ADD 'DC' AND 'CH'OR'CCH' TO DATA RECORDS.
.*   . . . . . . . . . . . . . . . . . . . . . . . .
.*
$REWIND,MLTMX,MLTMXX,MLTMZ,MLTMZZ.
$REVERT,NOLIST. 
.*----------------
.DATA,MLTMZ.
A,#EST=EST_XCH_ZCH_,#AL=AL_XDC_DC_. 
PARAM,TL=0010B,LL=0.
.*
.* ---------------
.DATA,MLTMZZ. 
A,#EST=EST_XCH_ZCH_,#AL=AL,#UN=UNIT_XDC_DC_.
PARAM,TL=0010B,LL=0.
*WEOR 
.PROC,CMS2127*I"CMS2127 - REQUIRED PARAMETERS FOR NON-EST EQUIPMENTS",
TEST=(*S3(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789) ),
CH'  - ENTER CHANNEL NUMBER: OR (CR) IF CIO CHAN.'= 
              ( *S2(01234567), $$ , =$$ ) , 
CCH'  - ENTER CIO CHANNEL NUM: OR (CR) IF 170/NIO CHAN.'= 
              ( *S2(01234567), $$ , =$$ ) , 
EQ'  - ENTER EQUIPMENT:    '=(*S2(01234567)), 
UN'  - ENTER UNIT:         '=(*S2(01234567),=0),
DC'  - ENTER DEVICE CODE:  '=( *S4(01234567) ) ,
AL'  - ENTER ACCESS LEVEL:      '=
*CALL COMMTAL 
      =0  ) . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2127
.*
.*       PROCESS MANUAL MALET RUN WHERE EST=NO
.*
.*    PURPOSE - PROCESS THE MALET RUNS WHERE EST=NO 
.*
.*     PARAMETERS - CH, CCH, EQ, UN, DC, AL 
.*
.*    CALLED BY - CMSI212 
.*
.*    PROCEDURES CALLED - CLUPMLT 
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
    PROCEDURE TO RUN MALET WHEN EST=NO IS 
    ENTERED.   ALL PARAMETERS ARE REQUIRED. 
  
.HELP,TEST,NOLIST.
  
     TEST SUPPLIED BY CALLING PROCEDURE.
  
.HELP,CH,NOLIST.
  
     - ENTER THE 170/NIO CHANNEL TO BE USED FOR TESTING.
  
     - ENTER (CR) IF TESTING IS TO BE DONE ON AN I4-CIO-DMA 
       CHANNEL.  (SEE THE NEXT PARAMETER FOR CCH CHANNEL ENTRY).
  
     -- NOTE: --
        ONLY ONE OF CH OR CCH CAN BE USED AT ONE TIME.
  
        ONE OF CH AND CCH MUST BE USED... 
  
.HELP,CCH,NOLIST. 
  
     - ENTER THE CIO CHANNEL TO BE USED FOR TESTING.
  
     - ENTER A (CR) IF TESTING IS TO BE DONE ON A 170 
       CHANNEL AND THIS CHANNEL WAS ENTERED ABOVE.
  
     -- NOTE: --
        ONLY ONE OF CH OR CCH CAN BE USED AT A ONE TIME.
  
     ONE OF CH OR CCH MUST BE ENTERED.
  
.HELP,EQ,NOLIST.
  
    ENTER THE EQUIPMENT NUMBER TO BE
    TESTED.  THIS PARAMETER IS REQUIRED.
  
.HELP,UN,NOLIST.
  
    ENTER THE UNIT NUMBER TO BE TESTED. 
    IF UNIT NUMBER IS NOT APPLICABLE ENTER
    (CR). 
  
.HELP,DC,NOLIST.
  
    ENTER THE DEVICE CODE (DC) OF THE 
    DEVICE TO BE TESTED.
  
    - THERE IS NO DEFAULT.
  
     THE FOLLOWING DISPLAY IS GENERATED FROM MALET DEVICES COMMAND
  
             MALET LXXX       YY/MM/DD.  HH.MM.SS.
       HH.MM.SS.DIRECTIVE=PICTURE,DEVICES 
                          CODES FOR DEVICES 
        01=841 DISK                    02=7054/844-2 DISK 
        03=7054/844-4 DISK             04=7154/844-2 DISK 
        05=7154/7155/844-4 DISK        06=819 DISK
        07=FMD-885                     10=FSC-100 MBYTE 
        11=FSC-200 MBYTE               12=FSC-317 MBYTE 
        13=RESERVED                    14=7155/855-42 DISK (DEMA) 
        15=7155/885-42 DISK (PFMDW)    16=7155/885-1X DISK (LSFMD)
        17=RESERVED                    20=405 CARD READER 
        21=415 CARD PUNCH              22=512-LINE PRINTER
        23=580-12 LINE PRINTER         24=580-16 LINE PRINTER 
        25=580-20 LINE PRINTER         26=580-12 PFC LINE PRINTER 
        27=580-16 PFC LINE PRINTER     30=580-20 PFC LINE PRINTER 
        31=CCC/5870 PRINTER (NIP)      32=CCC/5970 PRINTER (NIP)
        33=RESERVED                    40=60X 7 TRK TAPE
        41=65X 7 TRK TAPE              42=66X 7 TK TAPE 
        43=RESERVED                    44=67X 7 TRK TAPE
        45=FSC 7 TRK TAPE              46=CCC/5680/5744 ACS 
        47=CCC/5680 CARTRIDGE TAPE     50=60X 9 TRK TAPE
        51=65X 9 TRK TAPE              52=66X 9 TRK TAPE
                          CODES FOR DEVICES 
        53=698 9 TRK TAPE              54=67X 9 TRK TAPE
        55=67X GCR 9 TRK TAPE          56=FSC 9 TRK TAPE
        57=639 9 TRK TAPE              60=6671 MUX
        61=6676 MUX                    62=2550-100 EMULATING 6671 
        63=2550-100 EMULATING 6676     64=2550
        65=7077-1 LCC                  66=6673 DATA SET 
        67=6683 COUPLER                70=DDP 
        71=ECS COUPLER                 100=MSS-MST
        101=MSS-CSU                    104=CCC/MASSTOR SUBSYSTEM
        105=CCC/MASSTOR (CSS)          110=7255/834 DISK (FSDI) 
        111=7255/836 DISK (FSDII)      112=RESERVED 
        115=CCC/895 DISK               124=CM-3/9853 DISK SUBSYSTEM 
        129=RESERVED                   130=5830 DAS DISK (SSD 1X) 
        131=5830 DAS DISK (SSD 2X)     132=5830 DAS DISK (SABRE 1X) 
        133=5830 DAS DISK (SABRE 1XP)  134=5830 DAS DISK (SABRE 2X) 
        135=5830 DAS DISK (SABRE 3XP)  136=5830 DAS DISK (SABRE 4X) 
        137=5830 DAS DISK (SABRE 2XP)  140=RESERVED 
        171=ESM II SUBSYSTEM           200=CYBERPLUS RING PORT
        211=STORNET SUBSYSTEM          300=LCN-NAD LOCAL
                          CODES FOR DEVICES 
        301=LCN-NAD REMOTE             400=CIU OUTPUT CONTRL
        401=CIU INPUT CONTRL           500=CYBER/UNIBUS INTERFACE 
        7700-7777 QSE 
  
  
.HELP,AL,NOLIST.
  
    ENTER THE ACCESS LEVEL (AL) TO USE FOR
    THE TESTING.
  
     - THE DEFAULT IS  0 .
  
.ENDHELP. 
.*
.*     STEP 0:  
.*       TEST FOR ERRORS IN CH AND CCH ENTRIES. 
.*       BOTH CANNOT BE NUMBERS.
.IF,(NUM(CH)).AND.(NUM(CCH)),RECALLX. 
$NOTE.++++  ERROR - <<< #CH = CH ... #CCH = CCH >>> + 
$NOTE.+       BOTH #CH AND #CCH CANNOT BE SPECIFIED FOR 
$NOTE.+       TESTING.   PLEASE RE-ENTER YOUR SELECTIONS
$NOTE.+       OF #CH AND #CCH CORRECTLY.  + 
.*
$NOTE.+  ENTER (CR) TO CONTINUE.
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.*
$REVERT,EX.CMS2127,#TEST=TEST,#EQ=EQ,#UN=UN,#DC=DC,#AL=AL.
.ENDIF,RECALLX. 
.*
.* TEST BOTH CH AND CCH BLANK.
.IF,$CH$.#EQ.$$.AND.$CCH$.#EQ.$$,RECALLY. 
$NOTE.++++  ERROR - BOTH #CH AND #CCH CANNOT BE BLANK.
$NOTE.+       AT LEAST ONE OF #CH OR #CCH MUST BE SPECIFIED 
#NOTE.+       FOR TESTING.   PLEASE RE-ENTER YOUR SELECTIONS
$NOTE.+       OF #CH AND #CCH CORRECTLY.   +
.*
$NOTE.+  ENTER (CR) TO CONTINUE.
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.*
$REVERT,EX.CMS2127,#TEST=TEST,#EQ=EQ,#UN=UN,#DC=DC,#AL=AL.
.ENDIF,RECALLY. 
.*
.*     STEP 0.
.*       MODIFY THE DATA INPUT RECORD WITH PARAMETERS.
.*       (PRIMARILY FOR CH AND CCH. 
.*
  CMSMANX,#EQ=EQ,#UN=UN,
   .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH,
   .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH, 
   #AL=AL,#DC=DC.........................CMS2127..
.*
GETSCR,#TEST=TEST.
.*     GET ANY NEEDED SCRATCH FILES.
.*
.IF,$TEST$.#EQ.$CLM$.OR.$TEST$.#EQ.$FLM$.OR.$TEST$.#EQ.$NLM$,STEP1. 
$NOTE.++ #SCRATCH FILES #NDM, #NDP, (#NDT IF NLM) ARE 
$NOTE.+ LOCAL .  THE USER MUST USE THE MALET DIRECTIVE
$NOTE.+ 'SCRATCH=XXX' TO USE THE FILES. 
$NOTE.++
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.ENDIF,STEP1. 
.*
.IF,$TEST$.#EQ.$TFL$,STEP2. 
$NOTE.++ #SCRATCH FILES NORMALLY USED BY #TEST #TFL 
$NOTE.+ LOCAL.  THE USER MUST USE THE MALET DIRECTIVE 
$NOTE.+ 'SCRATCH=XXX' TO USE THE FILES. 
$NOTE.++
.*
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.ENDIF,STEP2. 
.*
$NOTE.++  *****  THE USE OF 
$NOTE.+ MALET ASSIGN DIRECTIVE PARAMETERS OTHER 
$NOTE.+ THAN #AL , #CH , #CCH , #UNIT , #EQ , #DC 
$NOTE.+ WILL REQUIRE THAT YOU REENTER THE ASSIGN
$NOTE.+ DIRECTIVE.  + 
.*
$NOTE.++ UNITS TESTED WITH THIS PROCEDURE 
$NOTE.+ REQUIRE THAT THE #UNIT IS OFF IN THE
$NOTE.+ #EST OR NOT IN THE #EST BEFORE MALET
$NOTE.+ WILL ALLOW ASSIGNMENT.
$NOTE.++
.*
$NOTE.++ THE USER MUST ENTER ALL ADDITIONAL MALET 
$NOTE.+ DIRECTIVES INCLUDING: RUN,#TEST, ... DROP, ...ETC.
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
.*
$RETURN,ZTRASH. 
.*
.*
DISPLAY(PNL)
.*
$NOTE.+* *********************************************
$NOTE.+*
$NOTE.+  **  CMSI MALET MANUAL MODE  CMS2127  **
$NOTE.+*
$NOTE.+*********************************************
$MALET,T=80,I=MLTMXX,L=CMSIOUT. 
$RETURN,MLTMXX. 
.*
CLUPMLT.
.*
$REVERT,NOLIST. 
.*
$EXIT.
$REVERT.....ABORT FROM CMS2127. 
*WEOR 
.PROC,CMSMANX*I"",
XCH=( $,CH=$ , $,CCH=$ ) ,
ZCH=( *S2(01234567) )    ,
EQ=(  *S2(01234567) )    ,
UN=(  *S2(01234567) )    ,
DC=(  *S4(01234567) )    ,
AL=(  *S2(01234567) )    .
.*
.* . . . . . . . . . . . . . . . . . . . . . . .
.*     CALLED BY CMS2127 TO ADD PARAMETERS TO THE DATA INPUT RECORD 
.* . . . . . . . . . . . . . . . . . . . . . . .
.*
$REWIND,MLTMXX. 
$REVERT,NOLIST. 
.*
.*----------------
.DATA,MLTMXX. 
A,#EST=NO_XCH_ZCH_,#EQ=EQ,#UN=UN,#DC=DC,#AL=AL. 
PARAM,TL=0010B,LL=0.
*WEOR 
.PROC,CMSI213*M"CMSI - MALET   HELPS    -   CMSI213", 
OPT213= 
(1"MALET - COMMANDS DISPLAY", 
 2"MALET - PARAMETERS DISPLAY", 
 3"MALET - DEVICE CODES DISPLAY", 
 4"MALET - MODULES DISPLAY (REQUIRES TEST NAME)", 
 5"TEST - EQUIPMENT/DIAGNOSTIC XREF", 
 6"TEST - DESCRIPTION/PARAMETERS" , 
 9"--------------- RETURN TO MAIN CMSI MENU" ). 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI213
.*
.*       MALET HELPS MENU 
.*
.*    PURPOSE - PROVIDE HELP DISPLAYS FOR MALET 
.*
.*    PARAMETERS - OPT213 
.*
.*    CALLED BY - CMSI210 
.*
.*    PROCEDURES CALLED - CMSI210 , CMSI000 , CMSI213 , CMS2131 
.*                        CMS2135 , CMS2133 , CMS2132 
.*
.* -------------------------------------------------------- 
.*
.*
.PROMPT,CMSI213> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.HELP.
  
     THIS PROCEDURE WILL DISPLAY A SET OF 
     HELPS FOR THE PERIPHERAL TESTING PACKAGE 
     MALET. 
  
     FOR MORE COMPLETE MALET USAGE SEE THE
     CML REFERENCE MANUAL PUB. NO. 60455980.
  
     FOR MORE INFORMATION ON MALET PROGRAMMING AND
     MALET LANGUAGE SEE THE MALET REFERENCE MANUAL
     PUB. NO. 60456020. 
  
.HELP,1,NOLIST. 
  
     THIS OPTION DISPLAYS THE MALET 'DIRECTIVE' AVAILABLE 
     FOR USE DURING A MALET SESSION.
     THESE DIRECTIVES AND THIS DISPLAY ARE AVAILABLE TO THE 
     MALET USER BY ENTERING THE MALET COMMAND:  
  
       PICTURE,MALET
  
.HELP,2,NOLIST. 
  
     DISPLAY THE STANDARD MALET 'PARAMETER' DISPLAY.
     THIS DISPLAY IS AVAILABLE TO THE MALET USER
     WITH THE DIRECTIVE:  
  
       PICTURE,PARAM
  
.HELP,3,NOLIST. 
  
     DISPLAY THE CURRENT MALET 'DEVICE' CODES.
     THIS DISPLAY IS AVAILABLE TO THE MALET USER
     WITH THE DIRECTIVE:  
  
       PICTURE,DEVICES
  
.HELP,4,NOLIST. 
  
      DISPLAY THE MODULES INCLUDED IN A TEST. 
      THIS IS THE MALET 'MODULES' DISPLAY FOR THE TEST
      NAMED  AT THE NEXT MENU.
  
       PICTURE,MODULES
  
  
.HELP,5,NOLIST. 
  
       THIS IS A LISTING OF HARDWARE EQUIPMENT PRODUCT NAMES WITH 
       THEIR ASSOCIATED DISGNOSTIC TEST NAME(S).
  
.HELP,6,NOLIST
  
      DISPLAYS THE INDIVIDUAL DESCRIPTIONS/ & OR PARAMETERS 
      ASSOCIATED WITH THE RUNNING OF EACH DIAGNOSTIC ROUTINE. 
      LOAD,XXX99....PICTURE,SOURCE IS THE EQUIVALENT FOR DESCRIPTIONS.
      LOAD,XXX99A...PICTURE,SOURCE IS THE EQUIVALENT FOR PARAMETERS.
      NORMALLY YOU MAY OBTAIN THIS INFORMATION BY USING THE 
      PREVIOUS 2 COMMANDS AT THE ? IN MALET.
       XXX = THE 3 LETTER DIAGNOSTIC NAME.
  
     FULL MODULE LISTINGS ARE AVAILABLE WITH CMLUTIL
     UTILITY IN CML.   FOR MORE INFORMATION ON CMLUTIL
     SEE THE CML REFERENCE MANUAL PUB.NO. 60455980. 
     ALSO SEE CMLUTIL FROM THE CMSI UTILITIES IN THE MAIN 
     MENU.
  
  
.HELP,9,NOLIST. 
  
     RETURN TO THE CMSI MAIN MENU CMSI000.
  
.ENDHELP. 
.*
.*
DISPLAY(PNL)
.*
.IF,OPT213.EQ.1.CMS2131,MALET.
.IF,OPT213.EQ.2.CMS2131,PARAM.
.IF,OPT213.EQ.3.CMS2131,DEVICES.
.*
.IF,OPT213.EQ.4.CMS2132.
.IF,OPT213.EQ.5.CMS2135.
.IF,OPT213.EQ.6.CMS2133.
.*
.*               TO 210....TO 200....TO 000.
.IF,OPT213.EQ.9.$REVERT,EX.$REVERT,EX.$REVERT,NOLIST. 
$CLEAR. 
.*
DISPLAY(PNL)
$REVERT,EX.CMSI210. 
$EXIT.
$REVERT....ABORT FROM CMSI213.. 
*WEOR 
.PROC,CMS2131*I,
OPTHELP=(MALET,PARAM,DEVICES).
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2131
.*
.*       MALET HELP DISPLAYS
.*
.*    PURPOSE - PICTURE MALET DISPLAYS TO THE TERMINAL. 
.*
.*    PARAMETERS - OPTHELP
.*
.*    CALLED BY - CMSI213 
.*
.*    PROCEDURES CALLED - CLUPMLT 
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
    PICTURE MALET DISPLAYS FOR THE USER.
    - MALET ( COMMANDS )
    - PARAM(ETERS)
    - DEVICE CODES
  
.HELP,OPTHELP,NOLIST. 
  
    TYPE OF HELP REQUIRED.
    MALET , PARAM , DEVICES ARE THE ALLOWABLE 
    ENTRIES.
  
    PARAMETER IS SUPPLIED BY THE CALLING PROCEDURE. 
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
$DAYFILE,ZTRASH.
$RETURN,ZTRASH. 
.*
.*     STEP 1.
.*       TEST FOR BAD OPTHELP PARAMETER.
.*
.IF,$OPTHELP$.NE.$$,STEP1.
.*
$NOTE.+++ 
$MALET,I=IN.
$NOTE.++
.*
.ELSE,STEP1.
$NOTE.+     CMSI ERROR , CHECK DAYFILE
* 
* 
$DAYFILE,OP=I.
.ENDIF,STEP1. 
.*
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*
$RETURN,IN. 
.*
CLUPMLT.
.*
$REVERT,NOLIST. 
.*
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMS2131.. 
.*
.*--------------- 
.DATA,IN. 
PICTURE,_OPTHELP. 
DROP. 
*WEOR 
.PROC,CMS2132*I,
TEST'ENTER THE MALET TEST FOR WHICH MODULES ARE TO BE LISTED OR END TO QUIT' =
*CALL CDCMLI2 
   E=END,END ) .
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2132
.*
.*       DISPLAY MODULE LIST
.*
.*    PURPOSE - DISPLAY THE MODULES ON THE RFILE. 
.*
.*    PARAMETERS - TEST 
.*
.*    CALLED BY - CMSI213 
.*
.*    PROCEDURES CALLED - GETATT , CLUPMLT
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
    THIS PROCEDURE IS TO DISPLAY THE MODULES
    ON THE SELECTED TEST RANDOM FILE. 
  
     - (PICTURE,MODULES)
  
.HELP,TEST,NOLIST.
  
     VALID DIAGNOSTICS INCLUDE- 
  
*CALL,CDCMLI1 
  
     -  TYPE 'END' TO RETURN TO DIAGNOSTIC MENU ( CMSI200 ) 
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.IF,$TEST$.EQ.$END$.$REVERT,EX.$REVERT,NOLIST.
.*
.*     STEP 2.
.*       GET TEST FILE .
.*
GETATT,TEST.
$IF,R1G.NE.0,STEP2. 
$NOTE.++ #TEST TEST NOT AVAILABLE ... 
$NOTE.+ USE CMLUTIL TO INSTALL TEST.
.*
$SKIP,XENDOUT.
$ENDIF,STEP2. 
.*
.*     STEP 3.
.*       USE RFILE. 
.*
$RENAME,RFILE=TEST. 
$MALET,I=IN.
.*
$ENDIF,XENDOUT. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
CLUPMLT.
.*
$RETURN,IN. 
$REVERT,NOLIST. 
.*
$EXIT.
$REVERT....ABORT FROM CMS2132.
.*
.*--------------------
.DATA,IN. 
PICTURE,MODULES.
DROP. 
.EOF
*WEOR 
.PROC,CMS2133*I"DIAGNOSTIC NAME", 
TEST'ENTER THE MALET DIAGNOSTIC NAME YOU WISH LISTED  OR END TO STOP' = 
*CALL CDCMLI2 
   E=END, END )  ,
DOCTYP'ENTER 99 OR 99- OF THE TEST SUBMODULE DESIRED. (CR)=99.' = 
 ( =99, 99,99A,99B,99C,99D,99E, 991,992,993,994,995,996,997,998,999 ) . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2133
.*
.*       LIST MALET 99 MODULES
.*
.*    PURPOSE - LIST MALET MODULES 99 , 99A .. ETC .. 
.*
.*    PARAMETERS - TEST , DOCTYP
.*
.*    CALLED BY - CMSI213 
.*
.*    PROCEDURES CALLED - GETATT , CMSIEFC , CMSI213 , CLUPMLT
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
    DISPLAY THE DOCUMENTATION MODULES OF THE
    SPECIFIED MALET TEST. 
  
    MALET CODING STANDARDS SPECIFY THAT MALET 
    TESTS WILL USE MODULES 99 AND FOLLOWING 
    TO PROVIDE USER DOCUMENTATION.
  
    99 SHOULD BE THE TABLE OF CONTENTS FOR THE
    99 SUBMODULES, PROGRAM RESTRICTIONS , AND 
    PARAMETER REGISTER USAGE. 
  
    99A AND FOLLOWING MODULES SHOULD LIST THE 
    PROGRAMS PRIMARY MODULE NAMES , DESCRIPTION,
    ACCESS LEVEL REQUIRED, AND RUN TIME.
    - (ARH5000 REV B) 
  
.HELP,TEST,NOLIST.
  
     VALID DIAGNOSTIC INCLUDE - 
  
*CALL CDCMLI1 
  
     - TYPE "END" TO RETURN TO DIAGNOSTIC MENU (CMSI200). 
  
.HELP,DOCTYP. 
  
     ENTER 99 OR 99X WHERE X IS THE SUBMODULE CHARACTER 
     OF THE TEST  SUBMODULE DESIRED.  X CAN BE ANY VALID
     SUBMODULE NUMBER OR CHARACTER.  ( 1,2,3,4,5,6,7,8,9,A..Z)
  
    99 SHOULD BE THE TABLE OF CONTENTS FOR THE
    99 SUBMODULES, PROGRAM RESTRICTIONS , AND 
    PARAMETER REGISTER USAGE. 
  
    99A AND FOLLOWING MODULES SHOULD LIST THE 
    PROGRAMS PRIMARY MODULE NAMES , DESCRIPTION,
    ACCESS LEVEL REQUIRED, AND RUN TIME.
    - (ARH5000 REV B) 
  
     SEVERAL MALET TEST USE 991,992... OR 99B,99C... AS 
     DOCUMENTATION MODULES.  THESE 99N ENTRIES ARE ALSO 
     VALID. 
  
  
.ENDHELP. 
.*
$DISPLAY(PNL) 
.*
.*
.*
.*      STEP 0. 
.*       CHECK FOR END AS TEST NAME 
.*
.IF,$TEST$.EQ.$END$.$REVERT,NOLIST. 
.*
.*     STEP 1.
.*       GET MODULE FILE.  IF NOT FOUND 
.*       REPORT ERROR AND EXIT.  ELSE PRINT.
.*
GETATT,_TEST. 
$IF,R1G.NE.0,STEP1. 
$NOTE.++ FILE _TEST NOT FOUND   CHECK XREF LIST 
$NOTE.+  OR USE CMLUTIL TO INSTALL. 
$RETURN,IN5.
$SKIP,XENDOUT.
.*
$ENDIF,STEP1. 
.*
$RENAME,RFILE=_TEST.
.*
.*     STEP 2.
.*     CALL MALET TO DISPLAY LIST.
.*
MALET,I=IN5.
.*
$ENDIF,XENDOUT. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
CLUPMLT.
.*
$RETURN,IN5,_TEST,RFILE.
.*
.*
$REVERT,NOLIST. 
.*
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMS2133.
.*
.*----------------- 
.DATA,IN5.
LOAD,_TEST_DOCTYP.
PICTURE,SOURCE. 
DROP. 
*WEOR 
.PROC,CMS2135.
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2135
.*
.*       PROCESS - PRINT EQUIPMENT TO TEST CROSS REFERENCE TABLE
.*
.*    PURPOSE - TO COPY TO PRINT OR TERMINAL THE CROSS REFERENCE TABLE
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI213 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
$COPY,LIST,OUTPUT.
.*
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH,LIST,OUTPUT. 
.*
$REVERT,NOLIST. 
$EXIT.
$REVERT,NOLIST. 
.*
.*--------------------
.DATA,LIST. 
  
  
      FROM CML L796 RELEASE TAPE (BININSTL) 
  
 EQUIPMENT       MALET TESTS
 ---------       -----------
CARTRIDGE TAPE TCT    CCM    CLM    NDM    NDP
CYBERPLUS      CRP    DMA 
DAS            IDA
DEMA           FHD    FHC    DH8    FEP    FMU
ESM/STORNET    ELR    MSD    MSM
FSCDISK        F44    F88    FLM    FFU    NDM    NDP 
FSCTAPE        F7X    FLM    FSM    NDM    NDP
LCN            LCI    LCN    LCM    NLM    NDM    NDP   NDT 
MASSTOR        CCM    CLM    NDM    NDP 
PLATO          CIU
UNIBUS         PDP
2550           TFF    TFL    ODS
2550-100       TFE
405            CRE    CR1 
415            CPE    CP1 
512            LPE    LP1 
580            LPE    FTP 
639            ITU    IST 
65X(607)       T5X
66X            T6X    BCX    MY8
67X            T7X    ATC 
698            T7X    CCM    CLM    NDM    NDP
83X            FSD    DTI    DFU
844            D44    DTC 
885(SS)        D88    FMC    FMU    FMD 
885(LS)        FLD    DL8    FMC    FMU 
895            DFU    DM8    DTI    CCM    CLM    NDM    NDP
5X70           NIP    CCM    CLM    NDM    NDP
667X           TT3    RT3    RT5
7054/7154/
 7152          BCX    MY8 
7155           DTC    FMD    FMC    FMU 
7155C          FHC
9853           IDT
.EOF
*WEOR 
.PROC,CMSI220*I"CMSI - CPU TEST INTERFACE  -  CMSI220", 
TEST'NAME OF TEST, END OR ? FOR HELP'=
 (CSU,MY1,EC3,ALX,CT3,CT8,CT6,CT7,CU1,EC8,FM2,CMU,FST,FS8,
  IWS,MRG,RAN,RA8,CU8 , E=END,END  )  . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI220
.*
.*       CPU TEST INTERFACE 
.*
.*    PURPOSE - PROMPT FOR SELECTIONS TO RUN CPU BACKGROUND DIAGNOSTICS.
.*
.*    PARAMETERS - TEST , CPU , TIME
.*
.*    CALLED BY - CMSI200 
.*
.*    PROCEDURES CALLED - CMSI200 , CMSIEFC 
.*
.* -------------------------------------------------------- 
.*
.*
.*
.HELP,,NOLIST.
  
    THIS PROCEDURE PROVIDES ACCESS TO INDIVIDUAL
    CPU TESTS SUPPLIED AS PART OF THE NOS OPERATING 
    SYSTEM.   THESE TESTS CAN BE RUN FROM THE SYSTEM
    CONSOLE WITH THE 'MAINTENANCE' COMMAND. 
    3 ENTRIES ARE NEEDED TO RUN THE TESTS:  
     - TEST NAME  (HELP = 'TEST?' FOR LIST) 
     - CPU TO RUN IN 0,1,2
     - TIME TO RUN
  
     THIS PROCEDURE SUBMITS A BATCH JOB 
     FOR EXECUTION BY THE BATCH SUBSYSTEM.
  
  
     JOB WILL SAVE ERROR DUMP ON FILE 'TEST_CPU_DMP' .
  
.HELP,TEST,NOLIST.
  
     THE FOLLOWING TESTS ARE AVAILABLE TO BE RUN ON 
     THIS NOS SYSTEM: 
  
  
                    TEST  VS  MACHINE 
  
             6    6 
             4    6    1 7    1 7    8 8    8 8    9    9 
             0    0    7+L    7+U    1+6    6+7    6    9 
             0    0    L 0    U 0    0 0    5 5    0    0 
          _________________________________________________ 
         I                                                 I
    ALX  I  X    X      X      X      X      X     X    X  I
    CMU  I  X    -      X      -      X      -     X    -  I
    CSU  I  -    -      X      X      -      X     -    -  I
    CU1  I  X    X      X      X      -      -     -    X  I
    CU8  I  -    -      -      -      X      X     X    X  I
    EC3  I  X    X      X      X      -      -     -    -  I
    EC8  I  -    -      -      -      -      X     -    -  I
    FM2  I  -    X      -      -      -      -     -    X  I
    FST  I  X    X      X      X      -      -     -    X  I
    FS8  I  -    -      -      -      X      X     X    X  I
    MRG  I  X    X      X      X      X      -     X    -  I
    MY1  I  X    X      -      -      -      -     -    X  I
    RAN  I  X    X      X      X      -      -     -    X  I
    RA8  I  -    -      -      -      X      X     X    -  I
    IWS  I  -    X      -      -      -      -     -    -  I
    CT3  I  X    X      X      -      -      -     -    -  I
    CT6  I  -    -      -      -      -      X     -    -  I
    CT7  I  -    -      -      X      -      X     -    -  I
    CT8  I  -    -      -      -      X      -     X    X  I
         I-------------------------------------------------I
  
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*
.IF,$TEST$.EQ.$END$.$REVERT,NOLIST. 
.*
CMSI221,#TEST=TEST. 
$REVERT,NOLIST. 
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMSI220.. 
*WEOR 
.PROC,CMSI221*I"CMSI - CPU TEST INTERFACE  -  CMSI221", 
TEST"NAME"=(*S3(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789) ),
CPU'CPU TO RUN IN. 0 = EITHER,1=CPU0, 2=CPU1. (CR) =0'=(*S1(012),=0), 
TIME'DECIMAL CPU SECONDS TO RUN. (CR)= 600 SEC.'=(*S5(0123456789) ,=600)  . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI221
.*
.*       CPU TEST INTERFACE 
.*
.*    PURPOSE - PROMPT FOR SELECTIONS TO RUN CPU BACKGROUND DIAGNOSTICS.
.*
.*    PARAMETERS - TEST , CPU , TIME
.*
.*    CALLED BY - CMSI220 
.*
.*    PROCEDURES CALLED - CMSI200 , CMSIEFC 
.*
.* -------------------------------------------------------- 
.*
.*
.*
.HELP,,NOLIST.
  
    THIS PROCEDURE PROVIDES ACCESS TO INDIVIDUAL
    CPU TESTS SUPPLIED AS PART OF THE NOS OPERATING 
    SYSTEM.   THESE TESTS CAN BE RUN FROM THE SYSTEM
    CONSOLE WITH THE 'MAINTENANCE' COMMAND. 
    3 ENTRIES ARE NEEDED TO RUN THE TESTS:  
     - TEST NAME  (HELP = 'TEST?' FOR LIST) 
     - CPU TO RUN IN 0,1,2
     - TIME TO RUN
  
     THIS PROCEDURE SUBMITS A BATCH JOB 
     FOR EXECUTION BY THE BATCH SUBSYSTEM.
  
  
     JOB WILL SAVE ERROR DUMP ON FILE 'TEST_CPU_DMP' .
  
.HELP,TEST,NOLIST.
  
     TEST PARAMETER SUPPLIED BY CALLING PROCEDURE.
  
.HELP,CPU,NOLIST. 
  
     0,1,2 ON A DUAL CPU MACHINE THIS PARAMETER 
     CAN BE USED TO SELECT THE CPU TO BE TESTED 
     ON A SINGLE CPU SYSTEM IT IS IGNORED.
     DEFAULT IS EITHER. 
     0 = EITHER 
     1 = CPU 0
     2 = CPU 1
  
.HELP,TIME,NOLIST 
  
     ENTER THE DECMIAL NUMBER OF CPU SECONDS FOR
     THIS TEST TO RUN.  THE DEFAULT IS 600 SECONDS. 
  
.ENDHELP. 
.*
.IF,$TEST$.EQ.$EC3$ .OR. $TEST$.EQ.$EC8$,STEP1. 
  .*
  $RETURN,CPUTEST.
  CMSI222,#TEST=TEST,#CPU=CPU,#TIME=TIME. 
  .*
.ELSE,STEP1.
  .*
  $SUBMIT,CPUTEST,N.
.ENDIF,STEP1. 
.*
$RETURN,CPUTEST.
.*
$REVERT,NOLIST. 
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMSI221.. 
.*
.*
.*--------------------------- 
.DATA,CPUTEST.
/JOB
TEST_P_CPU. 
/USER 
$SETTL,_TIME. 
$MODE,0.
$USECPU,_CPU. 
TEST. 
$EXIT.
$IF,EF.EQ.TLE,STEP2.
$BLOCK,,,1./CPUTEST/#TEST = TEST/ /DATE/#TIME 
**
** - - - - - - - - - -
**
**  #TEST = TEST HAS RUN TO TIME
**  SECOND #TIME LIMIT WITHOUT ERROR
**
** - - - - - - - - - -
**
$DAYFILE. 
$ELSE,STEP2.
$DAYFILE. 
$REPLACE,OUTPUT=TEST_CPU_DMP. 
$ENDIF,STEP2. 
$ROUTE,OUTPUT,DC=LP.
/EOF
.EOF
*WEOR 
.PROC,CMSI222*I"CMSI - EC3 / EC8 TEST INTERFACE - CMSI222", 
TEST=(EC3,EC8), 
CPU=( *S1(012) ) ,
TIME=( *S5(0123456789) ) ,
CK'CHECKSUM DATA AFTER NTH PASSES, ENTER OCTAL NUMBER FOR N (CR)=0'=
  ( =0 , *S7(01234567) ) ,
D'CHECK DATA ON EVERY NTH PASS. ENTER OCTAL NUMBER FOR N, (CR)=0'=
  (=0 , *S7(01234567) ) , 
PASS" COUNT FOR REPEAT OF TEST. (CR)=ONE PASS ONLY"= ( =0,*S7(01234567) ),
L'LOOP ON ERROR.  YES OR NO . (CR)=NO'= (Y=1,YES=1,NO=0,N=0, =0) ,
S'SELECT SECTIONS. (A...L). ENTER OCTAL BIT VALUE. (CR)=7777' = 
 ( =7777 , *S4(01234567) ) ,
PART'SELECT PART OF ECS TO TEST. "ALL","HALF","PRE"  (CR)=PRE' =
  ( ALL=$,ALL$, HALF=$,HALF$, PRE=$,PRE$ , =$,PRE$ ) .
.HELP,,NOLIST.
  
     TEST ECS WITH TESTS EC3 AND EC8. 
  
     FOR DETAILS ON THE PARAMETERS REQUIRED BY
     CMSI222 SEE THE  NOS ON-LINE MAINTENANCE 
     SOFTWARE REFERENCE MANUAL (OLMS) PUB NUMBER
     60454200 SECTION 2.
  
     NOT ALL PARAMETERS LISTED THERE ARE AVAILABLE
     TO THE CMSI USER.
  
.HELP,TEST,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE
  
.HELP,CPU,NOLIST. 
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE
  
.HELP,TIME,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE
  
.HELP,CK,NOLIST.
  
     CKSUM  -  CHECKSUM DATA ON EVERY NTH PASS. 
  
.HELP,D,NOLIST. 
  
     DATA   -  CHECK DATA ON EVERY NTH PASS.
  
.HELP,PASS,NOLIST.
     PASS   -  PASS COUNT FOR REPEAT TEST.
  
.HELP,L,NOLIST. 
  
     LOOP   -  LOOP ON ERROR YES OR NO. 
  
.HELP,S,NOLIST. 
  
     SELECT -  SELECTION SECTIONS BY OCTAL BIT
               A - BIT 0      B - BIT 1 
               C - BIT 2      D - BIT 3 
               E - BIT 4      F - BIT 5 
               G - BIT 6      H - BIT 7 
               I - BIT 8      J - BIT 9 
               K - BIT 10     L - BIT 11
  
.HELP,PART,NOLIST.
  
     ALL , HALF , PRE  -  THE PORTION OF ECS TO TEST. 
        NOTE THE RESTRICTIONS IN THE REFERENCE MANUAL.
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
$REWIND,CPUTEST.
.*
$SUBMIT,CPUTEST,N.
.*
.* ---------- 
.*
.DATA,CPUTEST.
/JOB
#TEST_TEST. 
/USER 
$SETTL,_TIME. 
$MODE,0.
$USECPU,_CPU. 
TEST,#CKSUM=CK,#DATA=D,#LOOP=L,#PASS=PASS,#SELECT=S_PART_.
$DAYFILE. 
$EXIT.
$IF,EF.EQ.TLE,STEP2.
$BLOCK,,,1./CPUTEST/#TEST = TEST/ /DATE/#TIME 
**
** - - - - - - - - - -
**
**  #TEST = TEST HAS RUN TO TIME
**  SECOND #TIME LIMIT WITHOUT ERROR
**
** - - - - - - - - - -
**
$DAYFILE. 
$ELSE,STEP2.
$DAYFILE. 
$REPLACE,OUTPUT=_TEST_CPU_DMP.
$ENDIF,STEP2. 
$ROUTE,OUTPUT,DC=LP.
/EOF
.EOF
*WEOR 
.PROC,CMSI230*I"CMSI - MST   INTERFACE    -   CMSI230", 
MODE'RUN MODE INTERACTIVE OR SUBMITTED BATCH (I OR B ) OR END. (CR)=I'= 
 ( =I,I,INTER=I,INTERACTIVE=I , B,BAT=B,BATCH=B , END,E=END ) . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI230
.*
.*       MST TEST INTERFACE 
.*
.*    PURPOSE - ACCESS TO USE NOS MST TEST FROM CMSI
.*
.*    PARAMETERS - MODE 
.*
.*    CALLED BY - CMSI200 
.*
.*    PROCEDURES CALLED - CMSI231 , CMSI230 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
         MST IS A CENTRAL PROCESSOR DRIVEN MASS STORAGE TEST.  IT 
         PERFORMS SEQUENTIAL WRITES, READS AND POSITIONS ALONG WITH 
         RANDOM READS AND WRITES ON A SELECTED MASS STORAGE DEVICE. 
         MST ALSO CONTAINS THE ENTRY POINT MSADR WHICH CONVERTS 
         LOGICAL DISK ADDRESSES TO PHYSICAL ADDRESSES.
  
         OPERATING INSTRUCTIONS.
         WHEN CALLED, MST WILL REQUEST ASSIGNMENT OF THE FILE *DISK1*.
  
    NOTE: 
  
    THE MST TEST IS CURRENTLY PART OF THE NOS OPERATING 
    SYSTEM AND IS INTENDED OLNY AS AN INTERNAL TOOL.  AS
    SUCH IT IS NOT SUPPORTED BY THE DIAGNOSTIC DEVELOPMENT
    DIVISION NOR E.S.  ITS CONTINUED INCLUSION IS AT THE
    DISCRETION OF THE ARDEN HILLS PROGRAMMING DIVISION. 
    PSR'S SUBMITTED MAY NOT BE ANSWERED AND ARE NOT 
    SUBJECT TO THE SAME CRITERIA AS A SUPPORTED PRODUCT.
  
  
  
.HELP,MODE,NOLIST.
  
    THIS IS THE MODE OF THE RUN.
    B - BATCH FOR A SUBMITTED BATCH JOB TO BE 
    SENT TO THE INPUT QUEUE FOR PROCESSING. 
  
    I-INTERACTIVE RUN OF MST.  IN THIS MODE 
    THE TERMINAL IS TIRED UP RUNNING THE MST JOB. 
    JOB STATUS MAY BE MONITORED WITH THE COMMANDS:  
    CTS   AND CTE  WHERE CT IS THE CONTROL CHARACTER. 
  
    'END' WILL RETURN TO CMSI200 MENU.
  
.ENDHELP. 
.*
.*
$SETASL,*.
$SETJSL,*.
$SETTL,*. 
.*
.*
.*     CHECK FOR "END" AND REVERT IF SELECTED.
.IF,$MODE$.EQ.$END$.$REVERT,EX.$REVERT,NOLIST.     *TO CMSI200
.*
.*     CALL NEXT PROC TO CONTINUE.
$NOTE.+ 
CMSI231,#MODE=$MODE$. 
.*
$REVERT,NOLIST. 
.*
$EXIT.
$REVERT....ABORT FROM CMSI230.
*WEOR 
.PROC,CMSI231*I,
MODE=(I , B ) , 
EST'EST NUMBER TO TEST WITH MST OR "LIST" TO DISPLAY EST, OR END'=
  (*S3(01234567) , LIST , E=END,END ) . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI231
.*
.*       MST INTERFACE
.*
.*    PURPOSE - CONTINUE GATHERING PARAMETERS FRO MST RUN 
.*
.*    PARAMETERS - MODE , EST 
.*
.*    CALLED BY - CMSI230 
.*
.*    PROCEDURES CALLED - CMSI116 , CMSI232 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
         MST IS A CENTRAL PROCESSOR DRIVEN MASS STORAGE TEST.  IT 
         PERFORMS SEQUENTIAL WRITES, READS AND POSITIONS ALONG WITH 
         RANDOM READS AND WRITES ON A SELECTED MASS STORAGE DEVICE. 
         MST ALSO CONTAINS THE ENTRY POINT MSADR WHICH CONVERTS 
         LOGICAL DISK ADDRESSES TO PHYSICAL ADDRESSES.
  
         OPERATING INSTRUCTIONS.
         WHEN CALLED, MST WILL REQUEST ASSIGNMENT OF THE FILE *DISK1*.
  
  
.HELP,MODE,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
       MODE = B OR I  FOR BATCH OR INTERACTIVE
       MODE OF RUNNING. 
  
.HELP,EST,NOLIST. 
  
     THE DISK EST TO RUN THE MST TEST ON. 
     THIS MUST BE A VALID SYSTEM EST ORDINAL. 
     THREE ENTRIES ARE POSSIBLE:  
     - EST NUMBER 
     - KEYWORD      LIST      WILL CAUSE CMSI116 TO 
        LIST ALL THE MASS STORAGE ES     S IN THE SYSTEM
  
     - THE KEYWORD      END      WILL RETURN TO THE 
        CMSI200 MENU. 
  
.ENDHELP. 
.*
$DISPLAY(PNL) 
.*
.*     STEP 1.
.*       CHECK FOR 'END'
.*
.*                TO 230      TO 200
.IF,$EST$.EQ.$END$.$REVERT,EX.$REVERT,NOLIST.      *TO CMSI200
.*
.*     STEP 2.
.*       TEST FOR LIST AND CALL 
.*       CMSI116 WITH SW,1 ON . 
.*
.IF,$EST$.EQ.$LIST$,STEP2.
.*
.*     SET SWITCH 1 FOR DISKS ONLY FROM CMSI116.
$ONSW,1.
CMSI116.                          *PRINT ALL DISK ESTS
$OFFSW,1. 
.*
$REVERT,EX.CMSI230. 
.ENDIF,STEP2. 
.*
.*     STEP 3.
.*       IF NOT 'END' OR 'LIST' 
.*     THEN ASSUME A VALID EST AND
.*       CALL THE NEXT PROC.
.*     CALL NEXT PROC TO CONTINUE 
$NOTE.+ 
CMSI232,#MODE=$MODE$,#EST=$EST$.
$REVERT,NOLIST. 
.*
$EXIT.
.*
$REVERT.....ABORT FROM CMSI231. 
.*
*WEOR 
.PROC,CMSI232*I,
MODE=( I , B ) ,
EST=(*S3(01234567)),
SECTORS'OCTAL NUMBER OF SECTORS(XXXXX) TO TEST.  (CR)=10,000.' =
  (*S5(01234567) , =$$ ) ,
PASSCOUNT"THE NUMBER OF PASSES TO EXECUTE. (CR) = 1 PASS"=(*S3(0123456789) ,=1),
T'(-OPTIONAL-)'=(*N=,0=$,T=0$,1=$,T=1$,2=$,T=2$,3=$,T=3$,4=$,T=4$,5=$,T=5$),
P'(-OPTIONAL-)'=(*N=,0=$,P=0$,1=$,P=1$,2=$,P=2$,3=$,P=3$,4=$,P=4$,5=$,P=5$) . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI232
.*
.*       MST INTERFACE
.*
.*    PURPOSE - CONTINUE GATHERING MST PARAMETERS 
.*
.*    PARAMETERS - MODE , EST , SECTOR , PASSCOUNT
.*
.*    CALLED BY - CMSI231 
.*
.*    PROCEDURES CALLED - CMSIEFC , CMSI230 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
         MST IS A CENTRAL PROCESSOR DRIVEN MASS STORAGE TEST.  IT 
         PERFORMS SEQUENTIAL WRITES, READS AND POSITIONS ALONG WITH 
         RANDOM READS AND WRITES ON A SELECTED MASS STORAGE DEVICE. 
         MST ALSO CONTAINS THE ENTRY POINT MSADR WHICH CONVERTS 
         LOGICAL DISK ADDRESSES TO PHYSICAL ADDRESSES.
  
         OPERATING INSTRUCTIONS.
         WHEN CALLED, MST WILL REQUEST ASSIGNMENT OF THE FILE *DISK1*.
  
  
.HELP,MODE,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
       MODE = B OR I  FOR BATCH OR INTERACTIVE
       MODE OF RUNNING. 
  
.HELP,EST,NOLIST. 
  
     PARAMETER SUPPLIED BY CALLING PROCEDURE. 
       EST =  EST ORDINAL 
  
.HELP,SECTORS,NOLIST. 
  
             NUMBER OF SECTORS .
                 N=0 GIVES ARGUMENT ERROR MESSAGE AND PROGRAM ABORT.
                 N=XXXX WILL ENABLE THE TEST TO BE RUN ON XXXX SECTORS
                     (BE CAREFUL THAT TRACK LIMIT IS NOT EXCEEDED)
                  N = 10,000 SECTORS IS THE DEFAULT SIZE. 
  
     ENTER THE NUMBER OF SECTORS TO TEST .
     (CR) = 10,000  SECTORS.  EXCEPT FOR DEVICES DE AND DP. 
     THESE HAVE A DEFAULT COUNT OF 3400 SECTORS.
  
     THIS IS SMALLER THAN THE 
     MST DEFAULT BECAUSE SOME CONDITIONS CAUSE
     MST TO RUN TO TRACK-LIMIT  ON THE ASSIGNED 
     DEVICE.
  
.HELP,PASSCOUNT,NOLIST. 
  
     ENTER THE NUMBER OF PASSES TO RUN MST ON THE SELECTED EST. 
     (CR) IS ONE PASS.
  
.HELP,T,NOLIST. 
  
     OPTIONAL PARAMETER.
  
     PARAMETER ALLOWED  FOR OTHER CALLS TO MST. 
     ALLOWS USE OF THE MST SECTION SELECTION PARAMETER. 
                TEST SECTION (CAN BE EQUATED).
                 T=0 OR T OR OMISSION OF THIS PARAMETER WILL RUN ALL
                     SECTIONS.
                 T=1 WRITE SEQUENTIAL.
                 T=2 READ SEQUENTIAL. 
                 T=3 POSITION SEQUENTIAL. 
                 T=4 RANDOM READ. 
                 T=5 RANDOM WRITE.
  
  
.HELP,P,NOLIST. 
  
     OPTIONAL PARAMETER.
  
     PARAMETER ALLOWED  FOR OTHER CALLS TO MST. 
     ALLOWS USE OF THE MST PATTERN SELECTION PARAMETER. 
  
                TEST PATTERN (CAN BE EQUATED).
                 P=0 ALL ZEROS PATTERN. 
                 P=1 ALL ONES PATTERN.
                 P=2 25252525252525252525B PATTERN. 
                 P=3 52525252525252525252B PATTERN. 
                 P=4 DO NOT GENERATE OR CHECK DATA.  SECTOR NUMBERS 
                     ARE GENERATED AND CHECKED. 
                 P=5 OR P OR OMISSION OF THIS PARAMETER WILL ENABLE 
                     RANDOM PATTERN.
  
  
.ENDHELP. 
.*
$SETTL,*. 
.*
$NOTE.
$NOTE.+  ** MST PARAMETERS
$NOTE.+  ** #EST=EST - #SECTORS=SECTORS - #PASSES=PASSCOUNT 
.*
.*     STEP 1.
.*       CHECK FOR BATCH PROCESSING FLAG. 
.*
.IF,$MODE$.EQ.$B$,STEP1.
.*
$SUBMIT,MSTBAT,BC.
.*
.ELSE,STEP1.
.*
.*     STEP 2.
.*       PROCESS INTERACTIVE MST. 
.*
.*     ASSIGN EST 
$RETURN,MSTBAT. 
$ASSIGN,EST,DISK1.
$NOTE.+  **  #EST EST ASSIGN TO DISK1 
$SET,R1=0.
.*
.*     PASS COUNT LOOP. 
.*
$WHILE,R1.LT.PASSCOUNT,LOOP.
$SET,R1=R1+1. 
$NOTE.S 
$NOTE.+  **  MST - TESTING #EST EST 
$SET,EF=0.
$NOEXIT.
.*
.*     CLEAR DAYFILE. 
$DAYFILE,L=MSTOUTX,OP=I.
$RETURN,MSTOUTX.
.*
.*     STEP 3.
.*       TEST FOR DE AND DP DEVICES.
.*
$IF,FILE(DISK1,DT(DE)) .OR. FILE(DISK1,DT(DP)) , STEP3. 
 .IF,$SECTORS$.EQ.$$.$MST,N=3400_T_P_.
 .* 
 .IF,$SECTORS$.NE.$$.$MST,N=SECTORS_T_P_. 
$ELSE,STEP3.
.*  - - - - - - - - - - - 
.IF,$SECTORS$.EQ.$$.$MST,N=10000_T_P_.
.*
.IF,$SECTORS$.NE.$$.$MST,N=SECTORS_T_P_.         *ALLOW ALL MST PARAMETERS
.*  - - - - - - - - - - - 
$ENDIF,STEP3. 
$IF,EF.NE.0.$DISPLAY,EF.
.*
.*
.*     STEP 4.
.*       REPORT ERROR ( IF ANY FROM RUN ) 
$IF,EF.EQ.CPE,STEP4A. 
$NOTE.S 
$NOTE.+  **  MST - TRACK SIZE ERROR 
$NOTE.+            #TRACKS# MUST BE GREATER THAN 2
$ENDIF,STEP4A.
.*
$IF,EF.EQ.TKE,STEP4B. 
$NOTE.S 
$NOTE.+  **  MST - TRACK LIMIT ERROR
$NOTE.+            NUMBER OF TRACKS MUST BE SMALLER 
$ENDIF,STEP4B.
.*
.*
$NOTE.S 
$NOTE.+  **  MST - END PASS 
.*
$ONEXIT.
$ENDW,LOOP. 
.*
.*     STEP 5.
.*
$RETURN,DISK1.
$NOTE.+  **  MST - END TEST ON #EST EST 
.*
.ENDIF,STEP1. 
.*
$REVERT,NOLIST. 
.*
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMSI232.. 
.*
.* ---------------------
.DATA,MSTBAT. 
/JOB
MST_EST.
/USER 
$SETTL,*. 
$BLOCK.*MST_EST**DATE*TIME
$ASSIGN,EST,DISK1.
$NOTE.+  **  #EST EST ASSIGN TO DISK1 
$SET,R1=0.
$WHILE,R1.LT.PASSCOUNT,LOOP.
$SET,R1=R1+1. 
$NOTE.S 
$NOTE.+  **  MST - TESTING #EST EST 
$SET,EF=0.
.*  - - - - - - - - - - - 
.*       TEST FOR DE AND DP DEVICES.
.*
$IF,FILE(DISK1,DT(DE)) .OR. FILE(DISK1,DT(DP)) , STEP3. 
 .IF,$SECTORS$.EQ.$$.$MST,N=3400_T_P_.
 .* 
 .IF,$SECTORS$.NE.$$.$MST,N=SECTORS_T_P_. 
$ELSE,STEP3.
.IF,$SECTORS$.EQ.$$.$MST,N=10000_T_P_.
.*
.IF,$SECTORS$.NE.$$.$MST,N=SECTORS_T_P_.         *ALLOW ALL MST PARAMETERS
.*  - - - - - - - - - - - 
$ENDIF,STEP3. 
$NOTE.+  **  MST - END PASS 
$ENDW,LOOP. 
.*
.*
$RETURN,DISK1.
$NOTE.+  **  MST - END TEST ON #EST EST 
$DAYFILE. 
/EOF
.EOF
*WEOR 
.PROC,CMSI240*M"CMSI - TIO / REGEN INTERFACE  -  CMSI240",
OPT240= 
 (1" EXPRESS TIO ON DISKS"
 ,2" EXPRESS TIO ON TAPE" 
 ,3" RUN TIO MANUAL BATCH MODE" 
 ,4" EXPRESS REGEN ON DISK" 
 ,5" EXPRESS REGEN ON TAPE" 
 ,6" RUN REGEN MANUAL MODE" 
 ,7" RUN ISOLATE ON TAPE 99 FILE" 
 ,8" GENERATE REGEN DATA FILE"
 ,9" --------------- RETURN TO MAIN CMSI MENU" ). 
.PROMPT,CMSI240> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI240
.*
.*       TIO - REGEN INTERFACE
.*
.*    PURPOSE - PROVIDE USER MENU SELECTIONS TO TIO-REGEN 
.*
.*    PARAMETERS - OPT240 
.*
.*    CALLED BY - CMSI200 
.*
.*    PROCEDURES CALLED - CMSI000 , CMSI243 , CMSI246 , CMSI000 
.*                        CMSI247 , CMSI248 
.*
.* -------------------------------------------------------- 
.HELP,,NOLIST.
  
     THIS PROCEDURE PROVIDES CMSI ACCESS TO 
     THE I/O CONFIDENCE TESTS  REGEN AND  TIO.
     OPTIONS ARE PROVIDED TO ALLOW SUBMITTION 
     OF BATCH JOBS TO TEST DISK AND TAPE UNITS
     WITH PRESELECTED OR USER SUPPLIED PARAMETERS.
  
     TO RUN TIO/REGEN ON DISK DEVICES REQUIRES THE USER TO HAVE CSOJ
     VALIDATION, SEE THE CML REFERENCE MANUAL SECTION 1 FOR MORE DETAIL.
  
     FOR GREATER INFORMATION ON THESE CONFIDENCE TESTS
     SEE THE  CML REFERENCE MANUAL SECTION 4. 
  
.HELP,1.
  
     THIS SELECTION SUBMITS A JOB FOR BATCH 
     PROCESSING TO RUN TIO ON THE PERMANENT FILE
     DEVICE ASSIGNED TO THIS USER NUMBER, AND THE 
     CURRENT LOCAL FILE DEVICE. 
  
.HELP,2.
  
     THIS SELECTION SUBMITS A JOB FOR BATCH 
     PROCESSING TO RUN TIO ON A TAPE UNIT TO
     BE ASSIGNED WHEN THE REQUEST CARD IS PROCESSRED. 
  
     A TAPE WITH A VSN OF TIOTST WILL BE REQUESTED. 
  
.HELP,3.
  
     THIS SELECTION ALLOWS THE USER TO SELECT THE 
     PARAMETERS FOR THE BATCH TIO JOB.
  
.HELP,4.
  
     THIS SELECTION SUBMITS A JOB FOR 
     BATCH PROCESSING TO RUN REGEN ON 2 
     DISK DRIVES.  COPY MASTER TO '02' A PERMANENT FILE 
     DEVICE , COPY '02' TO '03' (A LOCAL FILE DEVICE) , AND 
     COPY '03' TO '04' AND REGENERATE '04' FOR
     1000 RECORDS.
  
.HELP,5.
  
     THIS SELECTION SUBMITS A JOB FOR 
     BATCH PROCESSING TO RUN REGEN ON 
     A TAPE UNIT TO BE ASSIGNED WHEN THE REQUEST
     CARD IS PROCESSED. 
  
     A TAPE WITH A VSN OF REGMST WILL BE REQUESTED. 
  
.HELP,6,NOLIST. 
  
     THIS SELECTION ALLOWS THE USER TO SELECT THE 
     PARAMETERS FOR THE BATCH REGEN  JOB. 
  
.HELP,7,NOLIST. 
  
     THIS SELECTION WILL RUN AN ISOLATE JOB 
     ON THE PERMANENT FILE TAPE99 AND GENERATE
     A BATCH LISTING. 
  
.HELP,8,NOLIST. 
  
      THIS SELECTION WILL RUN A GENERATE
     BATCH JOB TO CREATE THE 'MASTER' REGEN 
     DATA FILE ON 9 TRACK TAPE WITH VSN SELECTED AT 
     INITIALIZATION TIME... DEFAULT IS REGMST...... 
     A MAGNETIC TAPE IS USED BECAUSE OF FILE SPACE
     CONSIDERATIONS IF THIS DATA FILE WERE TO BE
     PLACED ON A PERMANENT FILE DEVICE. 
     3750 PASSES WILL BE WRITTEN. 
  
.HELP,9,NOLIST. 
  
     RETURN TO THE MAIN CMSI MENU  CMSI000. 
  
.ENDHELP. 
.*
.*
.IF,(OPT240.NE.3).OR.(OPT240.NE.6).$NOTE.++ 
.IF,OPT240.EQ.1.$SUBMIT,TIOBAT,B. 
.IF,OPT240.EQ.2.$SUBMIT,TIOBAT,B. 
.*
.IF,OPT240.EQ.3.$RETURN,TIOBAT,REGNBAT,REGISOL,REGNGEN. 
.IF,OPT240.EQ.3.CMSI243.
.*
.IF,OPT240.EQ.4.$SUBMIT,REGNBAT,B.
.IF,OPT240.EQ.5.$SUBMIT,REGNBAT,B.
.*
.IF,OPT240.EQ.6.$RETURN,TIOBAT,REGNBAT,REGISOL,REGNGEN. 
.IF,OPT240.EQ.6.CMSI246.
.*
.*
.IF,OPT240.EQ.7.$SUBMIT,REGISOL,B.
.IF,OPT240.EQ.8.$SUBMIT,REGNGEN,B.
.*
.IF,OPT240.EQ.9.$REVERT,EX.$REVERT,NOLIST.
.*
$RETURN,TIOBAT,REGNBAT,REGNGEN,REGISOL. 
$REVERT,EX.CMSI240.          RESTART CMSI240. 
.*
.*
$EXIT.
CMSIEFC.
$REVERT....ABORT FROM CMSI240.
.*
.*----------------- 
.DATA,TIOBAT. 
/JOB
TIOBAT_OPT240_. 
/USER 
$SETTL,600. 
.IF,OPT240.EQ.1,STEP1.
$PURGE,ZZZTIO1/NA.
$DEFINE,ZZZTIO1.
.ELSE,STEP1.
$LABEL,ZZZTIO1,PO=W,LB=KU,VSN=TIOTST...CDC CE TIO TEST TAPE.
.ENDIF,STEP1. 
WRITEF,ZZZTIO2. 
$REWIND,ZZZTIO1,ZZZTIO2.
.*
TIO,FILES=ZZZTIO1/ZZZTIO2,PASSES=10,LIST=50,HISTORY=4.
.*
.IF,OPT240.EQ.1.$PURGE,ZZZTIO1/NA.
$DAYFILE. 
$BLOCK,,NR,1./TIOBAT_OPT240.//DATE/TIME 
EXIT. 
DAYFILE.
EXIT. 
.EOF
.* ------------------------------ 
.DATA,REGNBAT.
/JOB
REGNBT_OPT240_. 
/USER 
$SETTL,650. 
$BEGIN,GETRVSN,CMLINST. 
$RETURN,CMLINST.
LABEL,TAPE1,D=PE,LB=KL,F=I,PO=R,R,FI=REGENMASTER...ASSIGN CDC CE REGEN TAPE.
.IF,OPT240.EQ.4,STEP1.
$PURGE,ZZZREGN/NA.
$DEFINE,TAPE2=ZZZREGN.
.ELSE,STEP1.
$COPYEI,TAPE1,ZXZREGN,V.
$RETURN,TAPE1.
$RENAME,TAPE1=ZXZREGN.
$REWIND,TAPE1.
$REQUEST,TAPE2.....ASSIGN CDC-CE TEST TAPE UNIT.
.ENDIF,STEP1. 
$REWIND,TAPE1,TAPE2,TAPE3,TAPE4.
$MODE,1.
REGEN.
$PURGE,ZZZREGN/NA.
$IF,FILE(TAPE99,LO),STEP2.
$REPLACE,TAPE99.
$NOTE.+--------------------------------+
$NOTE.+++ REGEN BATCH JOB REGNBT_OPT240 ERRORS++
$NOTE.+ ERRORS SAVED ON FILE TAPE99 ++
$NOTE.+--------------------------------+
$ENDIF,STEP2. 
.*
$BLOCK,,NR./REGNBT_OPT240//DATE/TIME
$DAYFILE. 
$EXIT.
$BLOCK,,NR,1./REGNBT_OPT240/ERRORS//DATE/TIME 
$DMP,10000. 
/EOR
JOB1   1000 
COPY       01 02
RETURN     01 
COPY       02 03
RETURN     02 
COPY       03 04
RETURN     03 
REGENERATE 04 
/EOF
.EOF
.*
.*--------------------- 
.DATA,REGISOL.
/JOB
REGISOL.
/USER 
$BLOCK,,NR,1./REGEN ISOL.//DATE/TIME
$SETTL,600. 
$GET,TAPE99/NA. 
$IF,FILE(TAPE99,.NOT.LO).EXIT.
$BEGIN,GETRVSN,CMLINST. 
$RETURN,CMLINST.
$LABEL,TAPE1,D=PE,LB=KL,F=I,PO=R,R,FI=REGENMASTER...ASSIGN CDC CE REGEN TAPE. 
$REWIND,TAPE1,TAPE99. 
REGEN.
$EXIT.
$NOTE.++ TAPE99 NOT AVAILABLE TO RUN
$NOTE.+  ISOLATE AGAINST. 
$DAYFILE. 
/EOR
REGISOL 
ISOLATE    01 99
/EOF
.EOF
.*
.*----------------------
.DATA,REGNGEN.
/JOB
REGNGEN.
/USER 
$BLOCK,,NR,1./REGEN GEN./MASTER//DATE/TIME
$SETTL,*. 
.*
$BEGIN,GETRVSN,CMLINST. 
$RETURN,CMLINST.
$LABEL,TAPE1,D=PE,LB=KL,F=I,PO=W,W,FI=REGENMASTER...MASTER REGEN TAPE.
$REWIND,TAPE1.
MODE,1. 
REGEN.
DAYFILE.
EXIT. 
$BLOCK,,NR,1./REGEN GEN/ERROR//DATE/TIME
DMP,10000.
EXIT. 
/EOR
MASTER 3750 
GENERATE   01 
/EOF
.EOF
*WEOR 
.PROC,CMSI243*I"CMSI - TIO  JOB  INTERFACE  - CMSI243", 
DEVICE"TO TEST (NT, MT, MS) "= ( NT, MT, MS ),
EST"OF THE DEVICE TO TEST. OR (CR) IF ANY OF TYPE OK"=(*S3(01234567),=$$),
SEQ"PARAMETER. RANGE IS 0-9999999,  (CR)=200. 0=NO SEQ RECORDS" = 
   (*S7(0123456789), =200)  , 
RAN"PARAMETER. RANGE IS 0-9999999,  (CR)=1000. 0=NO RANDOM RECORDS" = 
   (*S7(0123456789), =1000)   , 
PAS'NUMBER OF PASSES TO BE RUN.  RANGE IS 1-9999999,  (CR)=3.  '  = 
   (*S7(0123456789), =3 )  ,
MX'ENTER MAXREC SIZE. RANGE IS 1-2000, (CR)=2000'=(*S4(0123456789),=2000)  ,
MN'ENTER MINREC SIZE. 1-2000, MUST BE LESS THAN OR EQUAL TO MAXREC'=
   (*S4(0123456789) , =1 )  , 
PAT'ENTER 4 OCTAL PATTERN TO USE, RAN FOR RANDOM , (CR)=PRESET/RANDOM'= 
   (*S4(01234567) , RAN,RANDOM=RAN , =$$ , $$ )  ,
BCT'ENTER THE NUMBER OF SIGNIFICANT BITS IN PATTERN  (CR) IF PATTERN=RAN'=
   (*S2(0123456789) , $$ , 0=$$)   ,
MD'MODE OF THE DATA,  BINARY OR BCD  (CR)=BOTH'=
   (BINARY=$=BIN$ , BIN=$=BIN$, BCD=$=BCD$,CODED=$=BCD$, =$$  ) . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI243
.*
.*       TIO JOB INTERFACE
.*
.*    PURPOSE - PROVIDE USER ACCESS TO TIO WITH 
.*              USER SELECTED PARAMETERS..
.*
.*    PARAMETERS - EST, SEQ, RAN, PAS, MAXREC, MINREC 
.*                 PAT, BCT, MD 
.*
.*    CALLED BY - CMSI240 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE ALLOWS THE USER TO SUPPLY MUST OF 
     THE RUNNING PARAMETERS FOR THE TIO RUN.
  
     REFER TO THE CML REFERENCE MANUAL FOR A DETAILED 
     EXPLAINATION OF EACH IF DESIRED. 
  
.HELP,DEVICE,NOLIST.
  
     ENTER THE DEVICE TO BE TESTED WITH TIO.
  
     ENTER NT OR MT FOR TESTING OF ANY 7-TRACK OR 9-TRACK 
     TAPE UNIT RESPECTIVELY.
  
     ENTER MS FOR THE TESTING OF ANY MASS STORAGE DEVICE. 
  
.HELP,EST,NOLIST. 
  
     ENTERED THE EST OF THE DEVICE ENTERED ABOVE TO TEST. 
  
     IF ANY EST OF THAT DEVICE TYPE IS ACCEPTABLE 
     ENTER (CR).
  
     THE USER MUST INSURE THAT DEVICE AND EST DO NOT
     CONFLICT.
  
.HELP,SEQ,NOLIST. 
  
     THIS PARAMETER IS THE NUMBER OF SEQUENCAL PASSES OF
     DATA TO RUN. DEFAULT IS 200.  RANGE IS 0 TO 9,999,999. 
     IF 0 IS ENTERED THEN NO SEQ PASSES ARE RUN.
  
.HELP,RAN,NOLIST. 
  
     THIS PARAMETER IS THE NUMBER OF RANDOM PASSES OF 
     DATA TO RUN.  DEFAULT IS 1000.  RANGE IS 0 TO 9,999,999. 
     IF 0 IS ENTERED THEN NO RANDOM PASSES ARE RUN. 
  
.HELP,PAS,NOLIST. 
  
     THIS PARAMETER IS THE NUMBER OF PASSES TO RUN OF THE 
     TIO TEST. SEE THE REFERENCE MANUAL FOR DETAILS OF THIS 
     PARAMETER.  DEFAULT IS 3.
  
.HELP,MX,NOLIST.
  
     THIS PARAMETER SPECIFIES THE MAXIMIUM RECORD SIZE TO 
     WRITE.  RECORDS WILL BE VARIED BETWEEN MAXREC AND MINREC.
     DEFAULT MAXREC SIZE IS 2000. 
  
.HELP,MN,NOLIST.
  
     THIS PARAMETER SPECIFIES THE MINIMIUM RECORD SIZE TO WRITE.
     RECORDS WILL BE VARIED BETWEEN THE MAXREC AND MINREC SIZE. 
     DEFAULT MINREC IS 1. 
     MINREC MUST BE LESS THAN OR EQUAL TO MAXREC. 
  
.HELP,PAT,NOLIST. 
  
     THIS PARAMETER IS THE PATTERN TO BE USED IN THE TIO
     TESTING.  THIS PARAMETER IS NOT THE SAME AS THE FORMAT 
     ALLOWED IN THE REFERENCE MANUAL.   ONLY ONE 12 BIT PATTERN 
     CAN BE ALLOWED BY CMSI.   THIS WILL ALLOW FOR 12 , 6 , 8 
     PATTERNS AND'RAN' FOR RANDOM PATTERNS. 
  
     DEFAULT FOR PATTERN IS PRESET/RANDOM.
.HELP,BCT,NOLIST. 
  
    THIS PARAMETER IS THE NUMBER OF SIGNIFICANT BITS IN THE 
    PATTERN ABOVE.  THIS BIT COUNT WILL BE GENERATED INTO A 
    60 BIT CENTRAL MEMORY WORD. 
  
.HELP,MD,NOLIST.
  
    THIS PARAMETER IS THE MODE OF THE DATA TO BE WRITTEN
    THE ALLOWABLE PARAMETERS ARE  BIN OR BCD.   IF (CR) 
    IS ENTERED, BOTH BINARY AND BCD DATA WILL BE USED.
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*     STEP 1.
.*       CHECK FOR END. 
.*
.*
.IF,$EST$.EQ.$END$.$REVERT,EX.$REVERT,NOLIST. 
.*
.*     STEP 2.
.*       CHECK MIN .LT. MAX 
.*
.IF,$MN$.GT.$MX$,STEP2. 
.*
$NOTE.++ RECORD SIZE ERROR.... #MINREC .GT. #MAXREC.
$NOTE.+ #MINREC=MN   #MAXREC=MX 
.*
.*       RECALL CMSI243.
.*
$REVERT,EX.CMSI243,#EST=EST,#SEQ=SEQ,#RAN=RAN,#PAS=PAS,#PAT=PAT,#BCT=BCT. 
.*
.ENDIF,STEP2. 
.*
.*     STEP 3.
.*       SUBMIT TIO JOB.
.*
$NOTE.++
$SUBMIT,TIOBATX,B.
.*
$RETURN,TIOBATX.
.*
$REVERT,NOLIST. 
.*
.*----------------------
.DATA,TIOBATX.
/JOB
TIOBATX.
/USER 
#*
#*
.*
.*    SET TL BASED ON PASSES. 
.*
.IF,$PAS$.LE.$50$.SETTL,200B. 
.IF,$PAS$.GT.$50$.AND.$PAS$.LE.$100$.SETTL,400B.
.IF,$PAS$.GT.$100$.AND.$PAS$.LE.$200$.SETTL,1000B.
.IF,$PAS$.GT.$200$.AND.$PAS$.LE.$400$.SETTL,2000B.
.IF,$PAS$.GT.$400$.AND.$PAS$.LE.$800$.SETTL,4000B.
.IF,$PAS$.GT.$800$.AND.$PAS$.LE.$1600$.SETTL,10000B.
.IF,$PAS$.GT.$1600$.AND.$PAS$.LE.$3200$.SETTL,20000B. 
.IF,$PAS$.GT.$3200$.SETTL,*.
.*
.*     STEP 3.
.*       GET TAPE 1 ASSIGNED... 
.*
.IF,$DEVICE$.EQ.$MT$ .OR. $DEVICE$.EQ.$NT$, STEP1.
 .* 
 .IF,$EST$.EQ.$$,STEP1A.
  $ASSIGN,DEVICE,TAPE1,DEVICE,PO=W. 
 .ELSE,STEP1A.
  $ASSIGN,EST,TAPE1,DEVICE,PO=W.
 .ENDIF,STEP1A. 
 .* 
.ELSE,STEP1.  .... NOT A TAPE.. 
 .* 
 .IF,$EST$.EQ.$$,STEP1B.
  $ASSIGN,DEVICE,TAPE1. 
  .ELSE,STEP1B. 
  $ASSIGN,EST,TAPE1.
  .ENDIF,STEP1B.
.ENDIF,STEP1. 
#*
#*
.*
.*
IF,$PAT$.EQ.$RAN$.OR.$PAT$.EQ.$$.OR.$BCT$.EQ.$$,STEP2.
.*
TIO,#SEQ=SEQ,#RAN=RAN,#PASSES=PAS,#MAXREC=MX,#MINREC=MN,#PAT=PAT,#MODE=MD.
.*
ELSE,STEP2. 
.*
TIO,#SEQ=SEQ,#RAN=RAN,#PASSES=PAS,#MAXREC=MX,#MINREC=MN,#PAT=_BCT/PAT,#MODE=MD. 
.*
ENDIF,STEP2.
DAYFILE.
/EOF
.EOF
*WEOR 
.PROC,CMSI246*I"CMSI - REGEN JOB INTERFACE  - CMSI246", 
DEVICE"TYPE AS KNOWN TO NOS. (MT,NT,PE,GE,DI,DK...DW) END TO QUIT"= 
 ( MT,NT,LO,HI,HY,HD,PE,GE, 
   DB,DB1=DB,DB2,DB3 , DC,DC1=DC,DC2 , DD,DD1=DD,DD2,DD3,DD4,DD5,DD6,DD7,DD8, 
   DG,DG1=DG,DG2,DG3,DG4,DG5,DG6,DG7,DG8, 
 DI,DI1=DI,DI2,DI3,DI4,DI5,DI6,DI7,DI8, DJ,DJ1=DJ,DJ2,DJ3,DJ4,DJ5,DJ6,DJ7,DJ8,
 DK,DK1=DK,DK2,DK3,DK4,DK5,DK6,DK7,DK8, DL,DL1=DL,DL2,DL3,DL4,DL5,DL6,DL7,DL8,
 DM,DM1=DM,DM2,DM3, DQ,DQ1=DQ,DQ2,DQ3, DV, DW   ,  END , E=END ) ,
EST"TO BE TESTED. OR (CR) IF ANY OF ABOVE DEVICE TYPE ACCEPTABLE"=
  (*S3(01234567) , $$, =$$ ) ,
PASS'ENTER THE NUMBER OF PASSES TO RUN.  (CR)=1000.  ENTER MUST BE 4 DIGITS'= 
   ( *S4(0123456789) , =1000 ) .
.*
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI246
.*
.*       REGEN JOB INTERFACE
.*
.*    PURPOSE - PROVIDE USER ACCESS TO REGEN WITH 
.*              USER SELECTED PARAMETERS..
.*
.*    PARAMETERS - EST , PASS 
.*
.*    CALLED BY - CMSI240 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
       THIS PROCEDURE ALLOWS THE USER TO SUPPLY THE 
     EST AND NUMBER OF PASSES TO THE REGEN JOB. 
  
     REFER TO THE CML REFERENCE MAUNAL FOR A DETAILED 
     EXPLAINATION OF EACH IF THE DESIRED PARAMETERS.
  
.HELP,EST,NOLIST. 
  
     ENTER THE EST OF THE DEVICE TO BE TESTED WITH REGEN
     THIS EST WILL BE ASSIGNED WITH AN'ASSIGN'COMMAND 
     TO THE NOS OPERATING SYSTEM. 
  
     ENTER (CR) IF ANY EST OF DEVICE TYPE ABOVE IS ACCEPTABLE.
  
.HELP,DEVICE,NOLIST.
  
     ENTER THE NOS DEVICE TYPE TO BE TESTED.
  
  
     ENTER NT FOR ANY 9 TRACK 800/1600 BPI TAPE UNIT. 
     ENTER MT FOR ANY 7 TRACK UNIT. 
     ENTER DENSITY FOR ANY UNIT OF THAT DENSITY 
     TYPE.  IE. LO , HI , HY , HD , PE , GE.
  
     ENTER THE NOS MASS STORAGE DEVICE TYPE FOR 
     SPECIFIED EST .  THIS IS IN THE FORM DXY WHERE 
     DX IS THE DRIVE TYPE AND Y IS THE NUMBER OF UNITS
     IN THE SET IF A MULTIPLE UNIT EST. 
     EXAMPLE:  DJ4  ,  OR  ,  DK
  
     ENTER 'END' TO QUIT THIS REGEN INTERFACE AND RETURN
     TO THE DIAGNOSTIC MENU ( CMSI200 ).
  
.HELP,PASS,NOLIST.
  
     THIS PARAMETER ALLOWS THE USER TO SELECT THE NUMBER
     OF PASSES TO BE TRUN OF REGEN.  THIS NUMBER HAS A RANGE
     OF 1 - 3750.   THE DEFAULT (CR)  IS 1000.
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*     STEP 1.
.*       TEST FOR END.
.*
.IF,$DEVICE$.EQ.$END$.$REVERT,EX.$REVERT,NOLIST.
.*
.*     STEP 2.
.*       SUBMIT REGEN JOB FOR BATCH PROCESSING. 
.*
$NOTE.++
$SUBMIT,REGNBAT,B.
.*
$RETURN,REGNBAT.
$REVERT,NOLIST. 
.*
.*
$EXIT.
.*
.*----------------------- 
.DATA,REGNBAT.
/JOB
REGNBAT.
/USER 
$BLOCK,,NR,1./REGEN BATCH///DATE/TIME 
$SETTL,1000.
#*
.IF,($DEVICE$.EQ.$MT$).OR.($DEVICE$.EQ.$NT$).OR.($DEVICE$.EQ.$LO$)
  .OR.($DEVICE$.EQ.$HI$).OR.($DEVICE$.EQ.$HY$).OR.($DEVICE$.EQ.$HD$)
  .OR.($DEVICE$.EQ.$PE$).OR.($DEVICE$.EQ.$GE$),STEP1. 
.*
  .IF,$DEVICE$.EQ.$MT$.$RESOURC,MT=1,NT=1.
  .IF,($DEVICE$.EQ.$LO$).OR.($DEVICE$.EQ.$HI$)
   .OR.($DEVICE$.EQ.$HY$).$RESOURC,MT=1,NT=1. 
.*
  .IF,$DEVICE$.EQ.$NT$.$RESOURC,NT=2. 
  .IF,$DEVICE$.EQ.$HD$.$RESOURC,NT=2. 
  .IF,$DEVICE$.EQ.$PE$.$RESOURC,PE=2. 
  .IF,$DEVICE$.EQ.$GE$.$RESOURC,GE=1,PE=1.
.*
  .IF,$EST$.EQ.$$,STEP2.
    .IF,$DEVICE$.EQ.$MT$.OR.$DEVICE$.EQ.$NT$,STEP2AA. 
      $ASSIGN,DEVICE,TAPE2,DEVICE,PO=W. 
    .ELSE,STEP2AA.
     .IF,($DEVICE$.EQ.$LO$).OR.($DEVICE$.EQ.$HI$) 
      .OR.($DEVICE$.EQ.$HY$).$ASSIGN,MT,TAPE2,MT,D=DEVICE,PO=W. 
.*
     .IF,($DEVICE$.EQ.$HD$).OR.($DEVICE$.EQ.$PE$) 
      .OR.($DEVICE$.EQ.$GE$).$ASSIGN,NT,TAPE2,NT,D=DEVICE,PO=W. 
    .ENDIF,STEP2AA. 
  .ELSE,STEP2.
    .IF,$DEVICE$.EQ.$MT$.OR.$DEVICE$.EQ.$NT$,STEP2AB. 
     $ASSIGN,EST,TAPE2,DEVICE,PO=W. 
    .ELSE,STEP2AB.
     $ASSIGN,EST,TAPE2,D=DEVICE,PO=W. 
    .ENDIF,STEP2AB. 
  .ENDIF,STEP2. 
.ELSE,STEP1.
.*       DEVICE IS MASS STORAGE TYPE
.*
  $RESOURC,DEVICE=1,NT=1. 
.*
    .IF,$EST$.EQ.$$,STEP2B. 
      .IF,($DEVICE$.EQ.$DB$).OR.($DEVICE$.EQ.$DB2$) 
       .OR.($DEVICE$.EQ.$DB3$).$ASSIGN,DB,TAPE2.
.*
      .IF($DEVICE$.EQ.$DC$).OR($DEVICE$.EQ.$DC2$).$ASSIGN,DC,TAPE2. 
.*
      .IF,($DEVICE$.EQ.$DD$).OR.($DEVICE$.EQ.$DD2$).OR.($DEVICE$.EQ.$DD3$)
       .OR.($DEVICE$.EQ.$DD4$).OR.($DEVICE$.EQ.$DD5$) 
       .OR.($DEVICE$.EQ.$DD6$).OR.($DEVICE$.EQ.$DD7$) 
       .OR.($DEVICE$.EQ.$DD8$).$ASSIGN,DD,TAPE2.
.*
      .IF,($DEVICE$.EQ.$DG$).OR.($DEVICE$.EQ.$DG2$).OR.($DEVICE$.EQ.$DG3$)
       .OR.($DEVICE$.EQ.$DG4$).OR.($DEVICE$.EQ.$DG5$) 
       .OR.($DEVICE$.EQ.$DG6$).OR.($DEVICE$.EQ.$DG7$) 
       .OR.($DEVICE$.EQ.$DG8$).$ASSIGN,DG,TAPE2.
.*
      .IF,($DEVICE$.EQ.$DI$).OR.($DEVICE$.EQ.$DI2$).OR.($DEVICE$.EQ.$DI3$)
       .OR.($DEVICE$.EQ.$DI4$).OR.($DEVICE$.EQ.$DI5$) 
       .OR.($DEVICE$.EQ.$DI6$).OR.($DEVICE$.EQ.$DI7$) 
       .OR.($DEVICE$.EQ.$DI8$).$ASSIGN,DI,TAPE2.
.*
      .IF,($DEVICE$.EQ.$DJ$).OR.($DEVICE$.EQ.$DJ2$).OR.($DEVICE$.EQ.$DJ3$)
       .OR.($DEVICE$.EQ.$DJ4$).OR.($DEVICE$.EQ.$DJ5$) 
       .OR.($DEVICE$.EQ.$DJ6$).OR.($DEVICE$.EQ.$DJ7$) 
       .OR.($DEVICE$.EQ.$DJ8$).$ASSIGN,DJ,TAPE2.
.*
      .IF,($DEVICE$.EQ.$DK$).OR.($DEVICE$.EQ.$DK2$).OR.($DEVICE$.EQ.$DK3$)
       .OR.($DEVICE$.EQ.$DK4$).OR.($DEVICE$.EQ.$DK5$) 
       .OR.($DEVICE$.EQ.$DK6$).OR.($DEVICE$.EQ.$DK7$) 
       .OR.($DEVICE$.EQ.$DK8$).$ASSIGN,DK,TAPE2.
.*
      .IF,($DEVICE$.EQ.$DL$).OR.($DEVICE$.EQ.$DL2$).OR.($DEVICE$.EQ.$DL3$)
       .OR.($DEVICE$.EQ.$DL4$).OR.($DEVICE$.EQ.$DL5$) 
       .OR.($DEVICE$.EQ.$DL6$).OR.($DEVICE$.EQ.$DL7$) 
       .OR.($DEVICE$.EQ.$DL8$).$ASSIGN,DL,TAPE2.
.*
      .IF,($DEVICE$.EQ.$DM$).OR.($DEVICE$.EQ.$DM2$) 
       .OR.($DEVICE$.EQ.$DM3$).$ASSIGN,DM,TAPE2.
.*
      .IF,($DEVICE$.EQ.$DQ$).OR.($DEVICE$.EQ.$DQ2$) 
       .OR.($DEVICE$.EQ.$DQ3$).$ASSIGN,DQ,TAPE2.
.*
      .IF,$DEVICE$.EQ.$DV$.$ASSIGN,DV,TAPE2.
.*
      .IF,$DEVICE$.EQ.$DW$.$ASSIGN,DW,TAPE2.
.*
  .ELSE,STEP2B. 
    $ASSIGN,EST,TAPE2.
  .ENDIF,STEP2B.
.*
.ENDIF,STEP1. 
.*
.*
#*
$BEGIN,GETRVSN,CMLINST. 
$RETURN,CMLINST.
$LABEL,TAPE1,D=PE,LB=KL,F=I,PO=R,R,FI=REGENMASTER...ASSIGN CDC CE REGEN TAPE. 
#*
REWIND,TAPE1,TAPE2. 
MODE,1. 
REGEN.
IF,FILE(TAPE99,.NOT.AS).EXIT. 
REWIND,TAPE2,TAPE1,TAPE99.
$BLOCK,,NR,1./REGEN/ISOLATE ERRORS//DATE/TIME 
REGEN.............ISOLATE MODE. 
#*
DAYFILE.
EXIT. 
DMP,10000.
DAYFILE.
/EOR
JOBX       PASS 
COPY       01 02
COPY       02 03
REGENERATE 02 
REGENERATE 03 
/EOR
JOBISOL 
ISOLATE    01 99
RETURN     01 
RETURN     99 
/EOF
.EOF
*WEOR 
.PROC,CMSI250*M"CMSI - LCN HOST-TO-HOST CONFIDENCE TEST-MFCHECK - CMSI250", 
OPT250= 
(1" EXPRESS LCN CONFIDENCE TEST"
,2" MANUAL LCN  CONFIDENCE TEST (PARAMETER ENTRY)"
,3" LIST SYSTEM NETWORK CONFIGURATION (LISTLID)"
,9" --------------- RETURN TO MAIN CMSI MENU" ) . 
.PROMPT,CMSI250> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - CMSI250
.*
.*    PURPOSE - INITIAL MENU SELECTION FOR LCN TEST 
.*
.*    PARAMETERS - OPT250 
.*
.*    CALLED BY - CMSI200 
.*
.*    PROCEDURE CALLED - CMSI256
.*
.* -------------------------------------------------------------
.*
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE PROVIDES CMSI WITH THE MEANS TO EXECUTE 
     A CONFIDENCE MODE TEST ON A LCN NETWORK BETWEEN THIS 
     NOS MACHINE AND A REMOTE HOST RUNNING ANY OF THE FOLLOWING 
     TYPES: 
        NOS - NOS        NOS - NOSVE       NOS - NOSBE
        NOS - VSOS(205)  NOS - IBM         NOS - VAX
  
     THIS IS A HIGH LEVEL CONFIDENENCE TEST WHICH USES THE NOS
     'REMOTE HOST FILE TRANSFER' CAPABILITY PROVIDED BY THE 
     SYSTEM COMMAND 'MFLINK'. 
  
     DATA PATTERNS ARE SEND IN ANY OR ALL OF THREE PATTERNS TO THE
     REMOTE HOST,  RETRIEVED FROM THE REMOTE HOST,  AND VERIFIED. 
  
     FOR MORE INFORMATION ON THE "MFLINK" COMMAND 
     SEE THE NOS 2 REFERENCE SET VOLUME 3 "SYSTEM COMMANDS" 
     PUB.NUMBER 60459680. 
  
     FOLLOWING AN LCN TEST SYSTEM DETECTED ERRORS ARE BEST SEEN 
     BY RUNNING HPA SELECTING A REPORT ON DEVICE TYPE "NC". 
  
     SEE THE HELP INFORMATION IN SELECTIONS 1 AND 2 WHAT PARAMETERS 
     ARE AVAILABLE. 
  
.HELP,1,NOLIST. 
  
     EXPRESS LCN CONFIDENCE TESTING.
  
     THIS SELECTION USES ALL DEFAULT PARAMETERS TO RUN THE MFLINK 
     COMMANDS TO THE SELECTED NOS REMOTE HOST.
     PARAMETERS NEEDED TO RUN ARE : 
     - LOGICAL ID OF REMOTE HOST
     - VALID USER NAME ON REMOTE HOST 
     - VALID USER PASSWORD ON REMOTE HOST 
     - VALID USER FAMILY ON REMOTE HOST 
  
     PARAMETER DEFAULTS USED :  
     - FILE NAMES FOR DATA TYPE FILES C6FILE,C8FILE,UUFILE
     - DATA FILE LENGTH OF 10 KILO-BYTES
     - TERMINAL PAGE MODE SET TO YES AT END OF TEST.
     - MFLINK DIRECTIVE FILE FOR REMOTE HOST. 
  
     IF USE NEED TO CHANGE THESE DEFAULT PARAMETERS, USE THE
     MANUAL MODE SELECTION IN THIS MENU.
  
.HELP,2,NOLIST. 
  
     MANUAL LCN CONFIDENCE TESTING. 
  
     THIS SELECTION PROMPTS THE USER TO ENTER ALL THE AVAILABLE 
     PARAMETER SELECTIONS FOR THE LCN / CMSI250 PROCEDURES. 
     MOST PARAMETERS HAVE DEFAULTS.  REQUIRED PRAMETERS ARE:  
     - USER FAMILY , NAME , PASSWORD , REMOTE HOST LOGICAL ID.
  
     OTHER PARAMETERS ARE:  
     - FILE NAMES FOR DATA TYPE FILES FOR CODED,ASCII,AND BINARY DATA 
     - DATA FILE LENGTH IN KILO-BYTES FOR TRANSFER. 
     - TERMINAL PAGE MODE SET TO YES AT END OF TEST.
     - MFLINK DIRECTIVE FILE FOR REMOTE HOST. 
  
.HELP,3,NOLIST. 
  
     THIS SELECTION ALLOWS THE USER TO EXECUTE THE NOS
     COMMAND 'LISTLID' WHICH DISPLAYS THE SYSTEM NETWORK
     CONFIGURATION. 
  
     FOR MORE DETAIL ON THIS SYSTEM COMMAND 'LISTLID' , 
     SEE THE NOS 2 REFERENCE SET VOL 3 " SYSTEM COMMANDS "
  
     LID'S WITH A 'NETWORK' PARAMETER OF 'RHF' ARE
     AVAILABLE TO RUN THE LCN CONFIDENCE TEST ON. 
  
  
.HELP,9,NOLIST. 
  
     THIS SELECTION WILL RETURN TO CMSI000 MAIN MENU. 
  
.ENDHELP. 
.*
.*
$DISPLAY(PNL) 
.*
.IF,OPT250.EQ.1,STEP1.
CMSI256,#HT=NOS,#C6=C6,#C8=C8,#UU=UU,#DATAL=10,#PG=N,#MFLDIRS=ZXD.
.ENDIF,STEP1. 
.*
.IF,OPT250.EQ.2.CMSI256.
.*
.IF,OPT250.EQ.3.CMSI253.
.*
.*
.IF,OPT250.EQ.9.$REVERT,NOLIST. 
.*
$REVERT,EX.CMSI250..... RESTART CMSI250.. 
.*
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMSI250.. 
*WEOR 
.PROC,CMSI253*I"CMSI - LISTLID COMMAND 'LISTLID' - CMSI253",
RPTTYPE'SELECT LISTLID BY LID OR PID. ENTER L OR P. (CR)=L' = 
 (L=$$,LID=$$,=$$, P=$,PID$,PID=$,PID$ ), 
BATCPY'DO YOU WANT A HARDCOPY (YES,NO) OR END TO STOP. (CR)=NO'=
 (YES=Y,Y , NO=N,N,=N , END , E=END) .
.HELP,,NOLIST.
  
     THIS SELECTION ALLOWS THE USER TO EXECUTE THE NOS
     COMMAND 'LISTLID' WHICH DISPLAYS THE SYSTEM NETWORK
     CONFIGURATION. 
  
     FOR MORE DETAIL ON THIS SYSTEM COMMAND , SEE THE 
     NOS 2 REFERENCE SET VOL 3 " SYSTEM COMMANDS "
     LISTLID. 
  
  
.HELP,RPTTYPE.
  
     SELECT THE REPORT TYPE FOR THE LISTLID COMMAND.
     SELECT EITHER REPORT BY LCN LID (ENTER L) OR 
     BY PID (ENTER P) . 
  
      THE FOLLOWING ARE SHORT EXAMPLES OF THE TWO LISTINGS
     WHICH ARE AVAILABLE: 
  
     LIST BY LID: 
  
    LID    MAINFRAME  ATTRIBUTE          NETWORK
    M07     NOS907    HOST               NAM, RHF 
    LBK     NOS907    LOOPBACK           NAM, RHF 
    S01     SVL125    LINKED             NAM
    SVL     SVL125    LINKED             NAM
    M0A     SVL125    STORE FORWARD      NAM
    V01     SVL125    STORE FORWARD      NAM
    S02     SVL125    STORE FORWARD      NAM
    V02     SVL125    STORE FORWARD      NAM
     .         .            .            .
     .         .            .            .
     .         .            .            .
  
    ATTRIBUTES:  H - HOST,  L - LINKED,  V - VALIDATION REQUIRED, 
                 S - STORE FORWARD,      B - LOOPBACK.
                 IN - PATH IN SERVICE,   OUT - PATH OUT OF SERVICE, 
                 NA - NOT AVAILABLE.
  
  
  
     LIST BY PID: 
  
  
        PID   LID    MAINFRAME   TYPE    ATTRIBUTE   RHF       NAM       SSF
        M07           NOS907     HOST      HV        IN        IN        NA 
              M07 
              LBK                           B 
              M10                           S 
              MA1                           S 
              MA2                           S 
              MA3                           S 
        S01           SVL125     LINKED    L         NA        IN        NA 
              S01 
              SVL 
              M0A                           S 
              V01                           S 
       .      .                             . 
       .      .                             . 
       .      .                             . 
    ATTRIBUTES:  H - HOST,  L - LINKED,  V - VALIDATION REQUIRED, 
                 S - STORE FORWARD,      B - LOOPBACK.
                 IN - PATH IN SERVICE,   OUT - PATH OUT OF SERVICE, 
                 NA - NOT AVAILABLE.
  
.HELP,BATCPY. 
  
     THIS PARAMETER WILL OPTION ALLOW THE LISTING TO
     BE PRINTED TO THE CENTRAL SITE BATCH PRINTER 
     IN ADDITION TO THE COPY DISPLAYED AT THE TERMINAL. 
     SELECT YES TO PRINT  OR  NO OR (CR) TO NOT PRINT.
     ENTER END TO LEAVE THIS PROCEDURE AND RETURN TO THE
     LCN SELECTION MENU ( CMSI250 ) . 
  
.ENDHELP. 
.*
$DISPLAY(PNL) 
.*
.IF,$BATCPY$.EQ.$END$.$REVERT,NOLIST. 
.*
.*----------------------- 
.*
.*
$LISTLID,L=ZCMS253_RPTTYPE_.
.*
$REWIND,ZCMS253.
.*
.IF,$BATCPY$.EQ.$Y$,XPRT. 
.*
$BLOCK,ZTRASH,,1./LCN LIST//LISTLID/DATE/TIME 
$COPYEI,ZCMS253,ZTRASH. 
$ROUTE,ZTRASH,DC=LP.
$REWIND,ZCMS253.
.ENDIF,XPRT.
.*
$COPYBF,ZCMS253,. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH,ZCMS253. 
.*
$REVERT,NOLIST. 
.*
.*
$EXIT.
$REVERT,NOLIST....ABORT FROM CMSI253... 
*WEOR 
.PROC,CMSI256*I'CMSI256 - LCN HOST-TO-HOST CONFIDENCE TEST',
ST     'REMOTE HOST LOGICAL ID. (REQUIRED)    ' 
          =(*A3), 
HT     'REMOTE HOST TYPE   (CR)=NOS           ' 
          =(NOS,NOSVE=NVE,NVE,NOSBE=NBE,NBE,C205=VSOS,VSOS,IBM,VAX,=NOS), 
U      'REMOTE HOST USER NAME ( REQUIRED )    ' 
          =(*A),
PW     'REMOTE HOST USER PASSWORD ( REQUIRED )' 
          =(*A),
FM     'REMOTE HOST FAMILY(NOS-NOSVE) (CR)=N/A' 
          =(*A,=$$),
C6     'DISPLAY CODE DATA FILE (CR)=C6FILE    ' 
          =(C6,=C6 , *F), 
C8     'ASCII8 DATA FILE DEFAULT: (CR)=C8FILE ' 
          =(C8,=C8 , *F), 
UU     'BINARY DATA FILE DEFAULT: (CR)=UUFILE ' 
          =(UU,=UU , *F), 
DATAL  'DATA FILE LENGTH  (CR)=10 KILO-BYTES  ' 
          =(*S5(0123456789),=10), 
PG     'SET PAGE WAIT AT END. YES/NO (CR)=NO  ' 
          =(Y,N,YES=Y,NO=N,=Y), 
MFLDIRS'REMOTE HOST DIRECTIVE (CR)=ZXZXDIR    ' 
          =(ZXD=ZXZXDIR,=ZXZXDIR , *F). 
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - CMSI256
.*
.*    PURPOSE - GATHER PARAMETERS FOR LCN TEST
.*
.*    PARAMETERS - ST , HT , U , PW , FM , C6 , C8
.*                 UU , DATAL , PG , MFLDIRS
.*
.*    CALLED BY - CMSI250 
.*
.*    PROCEDURE CALLED - LCNDIR , CMSI257 
.*
.* -------------------------------------------------------------
.*
.HELP,,NOLIST.
  
      CMSI250 IS A HIGH-LEVEL CONFIDENCE TEST 
      OF REMOTE HOST FILE TRANSFER CAPABILITES. 
      CMSI250 USES THE NOS OR NOS/BE MFLINK 
      COMMAND TO TRANSFER THREE DATA FILE FORMATS 
      TO AND FROM A REMOTE HOST AND VERIFY THAT 
      THE DATA SENT MATCHES THE DATA RECEIVED.
  
      CAUTIONS -
      (1) IF YOU SUPPLY YOUR OWN DATA FILES, BE 
          SURE THEY ARE IN THE PROPER FORMAT
          (C6, C8, OR UU).
      (2) ON NOS, USE THE LISTLID COMMAND TO
          SEE WHICH TYPE OF NETWORK CONNECTION
          (RHF/LCN OR NAM/CDCNET/2550 ) EXISTS
          TO THE REMOTE HOST. 
      (3) THE REMOTE HOST MFLINK DIRECTIVES 
          SUPPLIED BY CMSI250 MAY HAVE TO BE
          TAILORED FOR YOUR REMOTE HOSTS. 
  
     THIS PROCEDURE PROVIDES CMSI WITH THE MEANS TO EXECUTE 
     A CONFIDENCE MODE TEST ON A LCN NETWORK BETWEEN THIS 
     NOS MACHINE AND A REMOTE HOST RUNNING ANY OF THE FOLLOWING 
     TYPES: 
        NOS - NOS        NOS - NOSVE       NOS - NOSBE
        NOS - VSOS(205)  NOS - IBM         NOS - VAX
  
     THIS IS A HIGH LEVEL CONFIDENENCE TEST WHICH USES THE NOS
     'REMOTE HOST FILE TRANSFER' CAPABILITY PROVIDED BY THE 
     SYSTEM COMMAND 'MFLINK'. 
  
     DATA PATTERNS ARE SEND IN ANY OR ALL OF THREE PATTERNS TO THE
     REMOTE HOST,  RETRIEVED FROM THE REMOTE HOST,  AND VERIFIED. 
  
  
.HELP,ST,NOLIST.
  
      SPECIFY THE THREE CHARACTER LOGICAL ID
      (LID) OF THE REMOTE HOST. 
      NO DEFAULT. 
  
.HELP,HT,NOLIST.
  
      SPECIFY THE REMOTE HOST TYPE. 
     HOST TYPES AVAILABLE ARE:  
     NOS , NOSVE , NOSBE , C205 , IBM , VAX 
      DEFAULT = NOS.
  
.HELP,U,NOLIST. 
  
      SPECIFY THE REMOTE HOST USER NAME.
      NO DEFAULT. 
  
.HELP,PW,NOLIST.. 
  
      SPECIFY THE REMOTE HOST USER PASSWORD.
      NO DEFAULT. 
  
.HELP,FM,NOLIST.
  
      SPECIFY THE REMOTE HOST FAMILY NAME,
      IF THE REMOTE HOST TYPE IS NOS OR NOS/VE. 
      DEFAULT = DEFAULT FAMILY, IF DEFINED. 
     IF NO FAMILY IS IN USE ON THE REMOTE HOST THEN 
     ENTER A (CR).
  
.HELP,C6,NOLIST.. 
  
      SPECIFY THE FILE NAME OF A FILE TO TRANSFER 
      CONTAINING C6 (DISPLAY CODE) FORMAT DATA. 
      IF THE FILE DOES NOT EXIST AS A LOCAL OR
      NOS PERMANENT FILE, CMSI250 CREATES ONE 
      OF LENGTH DATAL.
      DEFAULT = C6FILE. 
  
.HELP,C8,NOLIST.
  
      SPECIFY THE FILE NAME OF A FILE TO TRANSFER 
      CONTAINING C8 (ASCII8) FORMAT DATA. 
      IF THE FILE DOES NOT EXIST AS A LOCAL OR
      NOS PERMANENT FILE, CMSI250 CREATES ONE 
      OF LENGTH DATAL.
      DEFAULT = C8FILE. 
  
.HELP,UU,NOLIST.
  
      SPECIFY THE FILE NAME OF A FILE TO TRANSFER 
      CONTAINING UU (TRANSPARENT) FORMAT DATA.
      IF THE FILE DOES NOT EXIST AS A LOCAL OR
      NOS PERMANENT FILE, CMSI250 CREATES ONE 
      OF LENGTH DATAL.
      DEFAULT = UUFILE. 
  
.HELP,DATAL,NOLIST. 
  
      SPECIFY THE DATA LENGTH IN KILO-BYTES.
      THIS PARAMETER IS ONLY USED IF A DATA FILE
      DOES NOT EXIST AND IS CREATED BY CMSI250. 
      DEFAULT = 10 KBS. 
  
.HELP,PG,NOLIST.
  
      SPECIFY IF YOU WANT TERMINAL PAGE WAIT
      TURNED ON AT THE END OF THIS PROCEDURE. 
      DEFAULT = NO. 
  
.HELP,MFLDIRS,NOLIST. 
  
      SPECIFY THE NOS PERM. FILE NAME CONTAINING THE
      MFLINK DIRECTIVES FOR THE REMOTE HOST,
      IF YOU WISH TO USE OTHER THAN THE DEFAULT 
      DIRECTIVES SUPPLIED BY CMSI250. 
      THE FILE MUST CONTAIN THREE RECORDS - 
      (1) DELETE FILE ON REMOTE HOST, 
      (2) SAVE FILE ON REMOTE HOST, 
      (3) RETRIEVE FILE FROM REMOTE HOST. 
      IF YOU SPECIFY A FILE NAME AND IT DOES
      NOT EXIST, CMSI250 CREATES A DEFAULT SET. 
      DEFAULT = USE DEFAULT DIRECTIVES. 
  
.ENDHELP. 
$TRMDEF(#PG=N)
LCNDIR,#FID=HID+B,#FM=FM,#U=U,#PW=PW,#HT=HT.. 
.*
CMSI257,#ST=ST,#C6=C6,#C8=C8,#UU=UU,#MFLDIRS=MFLDIRS,#DATAL=DATAL.
$NOTE.+*
$NOTE.+* LCN TEST - CHECK OF ST PASSED. 
$NOTE.+*
$TRMDEF(#PG=PG) 
$RETURN,ZXZXTTY,ZXCHECK,ZXFTNIN,ZXFTNC8,ZXZXDIR,MFLDIRS,ZXZXREM.
$RETURN,C6FILE,C8FILE,UUFILE. 
.*
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$REVERT,NOLIST. CMSI250 - CHECK OF ST PASSED. 
.*
$EXIT.
.*
$IF(EF.EQ.TAE).OR.(EF.EQ.TIE),EXIT1.
$NOTE.++  **USER INTERRUPTED TASK. ++ 
$REVERT,NOLIST. 
$ENDIF,EXIT1. 
.*
$SET,EF=0.
.*
$NOTE.+*
$NOTE.+* LCN TEST - CHECK OF ST FAILED. 
$NOTE.+*
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$TRMDEF(#PG=PG) 
$RETURN,ZXZXTTY,ZXCHECK,ZXFTNIN,ZXFTNC8,ZXZXDIR,MFLDIRS,ZXZXREM.
$RETURN,C6FILE,C8FILE,UUFILE. 
$REVERT....ABORT...CMSI256 - CHECK OF ST FAILED...
*WEOR 
.PROC,CMSI257*I"",
 ST= (*A3 ) , 
 C6= (*F ) ,
 C8= (*F ) ,
 UU= (*F ) ,
 MFLDIRS= ( *F )  , 
 DATAL= ( *S5(0123456789) ) . 
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - CMSI257
.*
.*    PURPOSE - PERFORM TRANSFER VIA MFLINK COMMAND 
.*
.*    PARAMETERS - ST , MFLDIRS , DATAL 
.*
.*    CALLED BY - CMSI256 
.*
.*    PROCEDURE CALLED - CMSI258
.*
.* -------------------------------------------------------------
.*
.*
.*  CMSI257 IS THE MAIN DATA TRANSFER LOOP.  IT CALLS THE 
.*  PROCEDURE MFL TO DO THE MFLINK COMMANDS AND THE 
.*  VERIFICATION OF THE DATA TRANSFERED.
.*
$IF,$MFLDIRS$.NE.$ZXZXDIR$,DIRS.
.*
GETATT,MFLDIRS. 
.*
$IF,FILE(MFLDIRS,.NOT.AS),COPY. 
.*
$NOTE.+*    #DIRECTIVES #FILE MFLDIRS NOT FOUND.
$NOTE.+*    PROCEDURE WILL USE DEFAULT FILE. ++ 
.*
.*
$RETURN,MFLDIRS.
.*
$REWIND,ZXZXDIR.
$COPY,ZXZXDIR,MFLDIRS.
$ENDIF,COPY.
$ENDIF,DIRS.
$SET,R1=1. SIGNAL FIRST TIME. 
CMSI258,#DD=#C6,#LOCAL=C6,#ST=ST,#MFLDIRS=MFLDIRS,#DATAL=DATAL. 
$SET,R1=0.
CMSI258,#DD=#C8,#LOCAL=C8,#ST=ST,#MFLDIRS=MFLDIRS,#DATAL=DATAL. 
CMSI258,#DD=#UU,#LOCAL=UU,#ST=ST,#MFLDIRS=MFLDIRS,#DATAL=DATAL. 
$REVERT,NOLIST. 
.*
.*
.*    ABORTED EXIT FROM THIS PROC XFERS CONTROL TO CMSI256. 
.*
.*
*WEOR 
.PROC,CMSI258*I"",
 DD=( C6 , C8 , UU ) ,
 LOCAL=( C6=C6FILE,C8=C8FILE,UU=UUFILE , *F ),
 ST=( *A3 ),
 MFLDIRS=( *F )  ,
 DATAL=(*S5(0123456789) ) . 
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - CMSI258
.*
.*    PURPOSE - CALL MFLINK USING THE COMMANDS IN ZXZXDIR 
.*
.*    PARAMETERS - DD , LOCAL , ST , MFLDIRS , DATAL
.*
.*    CALLED BY - CMSI257 
.*
.*    PROCEDURE CALLED - LCNGEN 
.*
.* -------------------------------------------------------------
.*
.*
.*  THIS PROCEDURE CALLS MFLINK TO TRANSFER THE FILE
.*  TO A REMOTE HOST, TRANSFER THE FILE BACK FROM THE 
.*  REMOTE HOST AND VERIFY THE DATA.
.*
$SET,R2=0.
$IF,.NOT.FILE(LOCAL,AS),ATT.
.*
GETATT,LOCAL. 
.*
$IF,R1G.EQ.1.$NOTE.+  RUN CONTINUES.+ 
.*
$IF,.NOT.FILE(LOCAL,AS),GEN.
.*
.IF,($LOCAL$.NE.$C6FILE$).AND.($LOCAL$.NE.$C8FILE$) 
 .AND.($LOCAL$.NE.$UUFILE$),MSG1. 
.*
$NOTE.+*
$NOTE.+*     #DATA #FILE LOCAL NOT FOUND. 
$NOTE.+*     PROCEDURE TERMINATED.  RERUN WITH
$NOTE.+*     FILE LOCAL IN P.F. CATALOG OR SELECT 
$NOTE.+*     DEFAULT FILE NAME.++ 
.*
.*
$NOTE.+   ENTER (CR) TO CONTINUE.+
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.*
$RETURN,LOCAL,ZXZXREM.
.*
.*        TO CMSI257     TO CMSI256     TO CMSI250
$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,NOLIST...TO CMSI250. 
.ENDIF,MSG1.. 
.*
.*
$SET,R2=1.
LCNGEN,#DD=DD,#ZFILE=LOCAL,#DATAL=DATAL.
$ENDIF,GEN. 
$ENDIF,ATT. 
$NOTE.+*
$NOTE.+* LCN TEST - CHECKING #DD=DD 
$NOTE.+*
$IF,FILE(ZXZXREM,(.NOT.AS).OR.(.NOT.WR)),REM. 
$RETURN,ZXZXREM.
$SET,R3=1.
$ELSE,REM.
$SET,R3=0.
$ENDIF,REM. 
$REWIND,MFLDIRS,ZXZXREM.
$IF,R1.NE.0,MFL1. 
$MFLINK,,#DD=DD,#ST=ST,I=MFLDIRS,EP,RT. 
$SKIP,MFL2. 
.*
.*
$EXIT.
.*
$SET,EF=0.
.*
$NOTE.+*
$NOTE.+* LCN TEST - DO NOT ABORT ON FIRST PURGE.
$NOTE.+*
$ENDIF,MFL2.
$REWIND,MFLDIRS.
$ENDIF,MFL1.
$SKIPR,MFLDIRS. 
$MFLINK,LOCAL,#DD=DD,#ST=ST,I=MFLDIRS,EP,RT.
$MFLINK,ZXZXREM,#DD=DD,#ST=ST,I=MFLDIRS,EP,RT.
$REWIND,LOCAL,ZXZXREM.
$VERIFY,LOCAL,ZXZXREM,R,A.
$REWIND,MFLDIRS.
$MFLINK,,#DD=DD,#ST=ST,I=MFLDIRS,EP,RT. 
$IF,R2.NE.0.$RETURN,LOCAL.
$IF,R3.NE.0.$RETURN,ZXZXREM.
$NOTE.+*
$NOTE.+* LCN TEST - DATA TYPE DD PASSED.
$NOTE.+*
$REVERT,NOLIST. 
.*
.*
.*   ABORT FROM THIS PROC XFERS CONTROL TO CMSI256..
.*
.*
*WEOR 
.PROC,CMSI260*M"CMSI - CDCNET MENU - CMSI260",
OPT260= 
 (1"EXECUTE NETOU IN EXPERT MODE",
  2"SELECT A DI TO USE",
  3"MANAGE NETWORK, DEVICE, AND LINE STATES", 
  4"EXECUTE CDCNET ONLINE DIAGNOSTICS", 
  5"VIEW CDCNET STATUS DISPLAYS", 
  6"MANAGE MESSAGE LOGGING AND ALARMS", 
  9"--------------- RETURN TO PREVIOUS CMSI MENU"). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI260
.*
.*      CDCNET DIAGNOSTICS MAIN MENU
.*
.*    PURPOSE - PROVIDE USER INTERFACE TO THE CDCNET DIAGNOSTICS
.*              AND STATUS DISPLAYS.
.*
.*    PARAMETERS - OPT260 
.*
.*    CALLED BY - CMS260E 
.*
.*    PROCEDURES CALLED - CMSI261, CMSI262, CMSI263, CMSI264, 
.*                        CMSI265, CMSI266, CMS2609 
.*
.* ---------------------------------------------------- 
.*
.*
.PROMPT,CMSI260> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.CC(%)
.*
.HELP,,NOLIST.
  
     A DI MUST BE SELECTED WITH MENU ITEM 2 BEFORE MENU SELECTIONS MAY BE 
     MADE ON ANY OTHER CMSI/CDCNET MENU.
  
     A COMMAND MDI MUST ALSO BE SELECTED WITH MENU ITEM 2 IF THIS SYSTEM
     HAS MORE THAN 1 MDI CONNECTED AND ACTIVE.
  
     THE EXECUTION OF THE VARIOUS CDCNET FUNCTIONS BY THIS PRODUCT WILL 
     USE THE NOS NETOU APPLICATION.  IF ERRORS OCCUR WHILE NETOU IS ACTIVE
     (INDICATED BY A 'SENCS/' PROMPT) IT WILL BE NECESSARY FOR THE USER TO
     ENTER A '**' COMMAND AND A 'QUIT' COMMAND TO EXIT NETOU AND RETURN TO
     CMSI.
  
     THE USER MUST BE A MEMBER OF THE NOS DEFAULT FAMILY TO USE THE CMSI
     CDCNET MENUS.  IF THE USER IS NOT A MEMBER OF THE NOS DEFAULT FAMILY,
     THE MENUS WILL BRING UP NETOU BUT WILL NOT PERFORM ANY CDCNET
     COMMANDS SINCE THE NETOU PROLOG FILE IS NOT EXECUTED IN THIS CASE. 
     ALSO THE FOLLOWING ERROR MESSAGE MAY BE ENCOUNTERED. 
      --ERROR--  COMMAND FILE ZZZPRP NOT FOUND UNDER USERNAME (YOUR USERNAME).
  
     THE CDCNET/CMSI CHOICES PRESENTED HERE AND IN THE ASSOCIATED MENUS 
     ASSUME THAT THE USER HAS A WORKING KNOWLEDGE OF THE CDCNET PRODUCT.
     THESE MENUS ARE INTENDED TO PROVIDE A SET OF COMMON PROCEDURES FOR 
     ASSISTING IN THE MAINTENANCE OF A CDCNET NETWORK.
  
     IF SCREEN MODE IS SELECTED, AT VARIOUS POINTS IN THE MENUS THE FULL
     SCREEN EDITOR (FSE) WILL BE USED TO DISPLAY DATA TO THE USER.  THE 
     FUNCTION KEY 6 (F6) SHOULD BE USED TO EXIT FSE.
  
       ************************************************************** 
       *                    ----CAUTION----                         * 
       *      IF YOU ARE EXECUTING IN LINE MODE, PLEASE NOTE:       * 
       *                                                            * 
       * CDCNET MAKES LIBERAL USE OF THE DOLLAR SIGN ( $ ) AND THE  * 
       * UNDERSCORE ( _ ) CHARACTERS, WHEN THESE CHARACTERS ARE TO  * 
       * BE USED IN PARAMETER ENTRIES, THE ENTIRE ENTRY MUST BE     * 
       * DELIMITED BY DOLLAR SIGN ( $ ) CHARACTERS, AND ALL         * 
       * INTERNAL DOLLAR SIGN( $ ) CHARACTERS MUST BE DOUBLED.      * 
       *                                                            * 
       *                        EXAMPLE:                            * 
       *      $LIM3_PORT4, MUST BE ENTERED AS: $$$LIM3_PORT4$       * 
       ************************************************************** 
  
.HELP,1,NOLIST. 
  
     THIS SELECTION CAUSES THE EXECUTION OF NETOU (THE CDCNET NETWORK 
     OPERATOR UTILITY).  THE USER WILL BE EXPECTED TO HAVE A WORKING
     KNOWLEDGE OF CDCNET COMMANDS TO USE THIS UTILITY.
  
.HELP,2,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF DEVICE INTERFACE SELECTIONS.  THESE
     OPTIONS ALLOW THE USER TO SELECT WHICH DI IN THE CATENET IS TO BE THE
     TARGET OF THE ACTIONS INDICATED BY THE REST OF THE CMSI/CDCNET 
     MENUS AND TO SELECT AN MDI ON THE HOST MAINFRAME WHERE CMSI IS EXECUTING 
     TO INTERFACE WITH THE NETWORK.  A DISPLAY OF ALL DEVICE INTERFACES IN
     A CATENET IS ALSO PROVIDED.
  
.HELP,3,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF CDCNET CONFIGURATION MANAGEMENT
     OPTIONS RELATED TO PERFORMANCE OF MAINTENANCE ON THE NETWORK.  CONTROL 
     OF LINE, DEVICE, AND NETWORK STATES IS THE PRIMARY FUNCTION. 
  
.HELP,4,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF DIAGNOSTICS WHICH MAY BE EXECUTED ON 
     SELECTED DEVICES (HARDWARE BOARDS) IN A DI.
  
.HELP,5,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF STATUS DISPLAYS WHICH MAY BE PRODUCED
     FROM A DEVICE INTERFACE. 
  
.HELP,6,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF ALARM AND LOG MESSAGE MANAGEMENT OPTIONS.
  
.HELP,9,NOLIST
  
     USE THIS OPTION TO RETURN TO THE PREVIOUS CMSI MENU. 
  
.ENDHELP. 
.*
.*   PROCESS THE USERS MENU SELECTION.
.*
IF,OPT260.EQ.1.CMSI261. 
IF,OPT260.EQ.2.CMSI262. 
IF,OPT260.EQ.3.CMSI263. 
IF,OPT260.EQ.4.CMSI264. 
IF,OPT260.EQ.5.CMSI265. 
IF,OPT260.EQ.6.CMSI266. 
.*
IF,OPT260.EQ.9.$REVERT,EX.CMS2609.
.*
$REVERT,EX.CMSI260. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.EOF
*WEOR 
.PROC,CMS2600,ZZZDISP=ZZZRESP.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2600
.*
.*      NETOUT INTERFACE
.*
.*    PURPOSE - BUILD THE NETOU PROLOG FILE FROM VARIOUS PARTS
.*              CONSTRUCTED BY OTHER PROCS AND CALL NETOU.
.*              WHEN CONTROL RETURNS, DETERMINE IF THE ZZZDISP PARAM
.*              IS ZZZRESP, IF YES THEN DETERMINE IF A NETOU
.*              RESPONSE FILE EXISTS AND DISPLAY IT EITHER
.*              BY COPING IT TO THE TERMINAL OR USING FSE 
.*              IF APPLICABLE.
.*
.*    PARAMETERS - ZZZDISP
.*
.*    CALLED BY - LARGE NUMBER OF CMS26XX PROCS 
.*
.*    PROCEDURES CALLED - CMS2601, CMS2602, CMS2605, CMS2606
.*
.* ---------------------------------------------------- 
.*
IF,FILE(ZZZDI,LO),STEP1.
.*   BUILD NETOU COMMAND STREAM TERMINATOR. 
CMS2601,P1=**.
.*   BUILD NETOU COMMAND STREAM.
REWIND,NETOPRP,ZZZPRP,ZZZSTRT,ZZZDI,ZZZCMDS,ZZZEND. 
COPYBR,ZZZSTRT,ZZZPRP.
COPYBR,ZZZDI,ZZZPRP.
COPYBR,ZZZCMDS,ZZZPRP.
COPYBR,ZZZEND,ZZZPRP. 
PACK,ZZZPRP.
REPLACE,ZZZPRP. 
REWIND,ZZZPRP.
COPYEI,ZZZPRP,NETOPRP.
REPLACE,NETOPRP.
CMS2606,ZZZDISP.
.*   EXECUTE NETOU. 
CMS2602.
.*   IF THE RESPONSE FILENAME IS ZZZRESP, DISPLAY IT TO THE USER. 
IF,$ZZZDISP$.EQ.$ZZZRESP$,STEP2.
.*   LOOK FOR A RESPONSE FILE FROM NETOU. 
FSE,ZZZDISP,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZDISP,PM),STEP3.
.*   DISPLAY FILE CONTENTS TO USER. 
CMS2605,ZZZDISP.
ELSE,STEP3. 
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP3.
ENDIF,STEP2.
ELSE,STEP1. 
$NOTE.1+ NO TARGET DI SELECTED. + 
$NOTE.++ USE MENU ITEM 1 TO SELECT.+
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
$REVERT,NOLIST. 
.DATA,ZZZSTRT.
ROUCR,ZZZDISP.
.EOF
*WEOR 
.PROC,CMS2601,P1=**.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2601
.*
.*      BUILD NETOU COMPLETION SEQUENCE 
.*
.*    PURPOSE - BUILD THE NETOU SEND COMMAND SEQUENCE COMPLETION
.*              DELIMITER 
.*
.*    PARAMETERS - P1 
.*
.*    CALLED BY - CMSI2600
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
$REVERT,NOLIST. 
$EXIT.
$REVERT,NOLIST. 
.DATA,ZZZEND. 
P1
HELLO,IAF.
.EOF
*WEOR 
.PROC,CMS2602.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME -  CMS2602 
.*
.*       CALL NETOU 
.*
.*    PURPOSE - DO AN APPLICATION SWITCH TO NETOU.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2600 
.*
.*    PROCEDURES CALLED - NETOU 
.*
.* ---------------------------------------------------- 
.*
$NOTE.++ REQUESTED CDCNET ACTIVITY IN PROGRESS, PLEASE WAIT.... + 
.*   DO AN APPLICATION SWITCH TO NETOU. 
IF,FILE(ZZZSW,LO),STEP1.
.*   SWITCH TO NETOU
BEGIN,ZZZSW,ZZZSW.
ELSE,STEP1. 
.*   SWITCH TO NETOU
APPSW,AP=NETOU,Z.PROLOG=ZZZPRP
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
$REVERT,NOLIST. 
.EOF
*WEOR 
.PROC,CMS2603,FILE. 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2603
.*
.*       CONVERT TO UPPER CASE
.*
.*    PURPOSE - CONVERT A FILES CONTENTS TO UPPER CASE
.*
.*    PARAMETERS - FILE 
.*
.*    CALLED BY - NUMEROUS CMS26XX PROCS
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
FSE,FN=FILE,OP=A,L=TRASH,I=ZZZFTMP. 
RETURN,TRASH. 
RETURN,ZZZFTMP. 
$REVERT,NOLIST. 
$EXIT.
$REVERT,NOLIST. 
.DATA,ZZZFTMP.
IP/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
RAUQ/A/A/;PFQ;RAUQ/B/B/;PFQ;RAUQ/C/C/;PFQ;RAUQ/D/D/;PFQ;RAUQ/E/E/;PFQ 
RAUQ/F/F/;PFQ;RAUQ/G/G/;PFQ;RAUQ/H/H/;PFQ;RAUQ/I/I/;PFQ;RAUQ/J/J/;PFQ 
RAUQ/K/K/;PFQ;RAUQ/L/L/;PFQ;RAUQ/M/M/;PFQ;RAUQ/N/N/;PFQ;RAUQ/O/O/;PFQ 
RAUQ/P/P/;PFQ;RAUQ/Q/Q/;PFQ;RAUQ/R/R/;PFQ;RAUQ/S/S/;PFQ;RAUQ/T/T/;PFQ 
RAUQ/U/U/;PFQ;RAUQ/V/V/;PFQ;RAUQ/W/W/;PFQ;RAUQ/X/X/;PFQ;RAUQ/Y/Y/;PFQ 
RAUQ/Z/Z/;PFQ;DQC;QQ
.EOF
*WEOR 
.PROC,CMS2604*M"CMSI - ACTION CONTINUATION MENU - CMS2604", 
OPT2604=
 (1"CONTINUE ACTION", 
  2"ABORT ACTION"). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2604
.*
.*       ACTION CONTINUATION MENU 
.*
.*    PURPOSE - PROVIDE A MENU TO ALLOW THE USER TO CONTINUE
.*              OR ABORT A PREVIOUSLY SELECTED ACTION.
.*
.*    PARAMETERS - OPT2604
.*
.*    CALLED BY - CMS2632, CMS263Q
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
.PROMPT,CMS2604> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.*
.HELP,,NOLIST.
  
      THE ACTION YOU REQUESTED MAY EFFECT ACTIVE COMMUNICATIONS,
      IF YOU CONTINUE ONE OR MORE USERS MAY BE INTERRUPTED. 
  
.HELP,1,NOLIST. 
  
     THIS SELECTION WILL CAUSE THE REQUESTED ACTION TO BE EXECUTED. 
  
.HELP,2,NOLIST. 
  
     THIS SELECTION WILL CAUSE THE REQUESTED ACTION TO BE ABORTED.
  
.ENDHELP. 
.*
IF,OPT2604.EQ.1,STEP1.
FSE,FN=ZZZSGL1,L=TRASH.I/SELECTION WAS TO CONTINUE./;QQ 
RETURN,TRASH. 
$REVERT,NOLIST. 
ENDIF,STEP1.
IF,OPT2604.EQ.2.$REVERT,NOLIST. 
$REVERT,EX.CMS2604. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMS2605,FILE. 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME -  CMS2605 
.*
.*       DISPLAY A FILE 
.*
.*    PURPOSE - DISPLAY A FILE BY EITHER COPING IT TO THE 
.*              TERMINAL OR USING FSE IF APPLICABLE.
.*
.*    PARAMETERS - FILE 
.*
.*    CALLED BY - NUMEROUS CMS26XX PROCS
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
.*   DETERMINE IF USER IS IN LINE OR SCREEN MODE. 
IF,SL.EQ.LINE,STEP1.
REWIND,FILE.  . 
COPYBF,FILE,OUTPUT. 
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
RETURN,TRASH. 
ELSE,STEP1. 
FSE,FN=FILE,OP=GA.SK6/QQ/L/QUIT/;LWQ/FROM/;DFC-1Q 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMS2606,TARGET. 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2606
.*
.*       DELETE FILE
.*
.*    PURPOSE - DELETE A FILE (PURGE AND RETURN)
.*
.*    PARAMETERS - TARGET 
.*
.*    CALLED BY - NUMEROUS CMS26XX PROCS
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
.*   IF THE FILE IS PERMANENT, GET A FRESH COPY.
FSE,TARGET,OP=GA,L=TRASH.QR 
RETURN,TRASH. 
PURGE,TARGET. 
RETURN,TARGET.
$REVERT,NOLIST. 
$EXIT.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMS2607.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2607
.*
.*      WAIT FOR TEST COMPLETION
.*
.*    PURPOSE - USE NETOU TO DETERMINE WHEN A TEST IS DONE
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2642, CMS2643, CMS2644, CMS2645, CMS2646,
.*                CMS2647, CMS2648
.*
.*    PROCEDURES CALLED - CMS2600, CMS2603, CMS2605, CMS2606
.*
.* ---------------------------------------------------- 
.*
.*    INITIALIZE LOOP VARIABLES 
SET,R1=0. 
SET,R2=10.
.*    TEST FOR DI RESPONSE FILE 
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP1.
.*    SAVE DISTS COMMAND
REWIND,ZZZTMP2,ZZZCMDS. 
COPYEI,ZZZTMP2,ZZZCMDS. 
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
.*    DELETE FILE 
CMS2606,ZZZSGL1.
.*    CHECK IF TEST STARTED RUNNING 
FSE,FN=ZZZTMP1,OP=A,L=TRASH,IP=ZZZTMP3,I=ZZZTMP4. 
RETURN,TRASH. 
IF,FILE(ZZZSGL1,LO),STEP2.
WHILE,R1.LT.R2,FINISH.
.*    DELETE FILE 
CMS2606,ZZZTMP1.
.*    GET TEST STATUS 
CMS2600,ZZZTMP1.
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP3.
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
REWIND,ZZZTMP3,ZZZTMP5. 
.*    DELETE FILE 
CMS2606,ZZZSGL2.
.*    CHECK IF TEST STILL RUNNING 
FSE,FN=ZZZTMP1,OP=A,L=TRASH,IP=ZZZTMP3,I=ZZZTMP5. 
RETURN,TRASH. 
IF,FILE(ZZZSGL2,LO),STEP4.
$NOTE.++ WAITING FOR TEST TO COMPLETE.+ 
.*    INCREMENT LOOP COUNT IF STILL RUNNING 
SET,R1=R1+1.
.* TEST FOR COUNT LIMIT REACHED.
IF,R1.EQ.R2,STEP5.
SET,R1=R1+1.
ENDIF,STEP5.
ELSE,STEP4. 
.*    FORCE EXIT, TEST COMPLETED. 
SET,R1=R2.
ENDIF,STEP4.
ELSE,STEP3. 
.*    FORCE EXIT, NO RESPONSE.
SET,R1=R2+2.
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP3.
ENDW,FINISH.
IF,R1.EQ.R2+1,STEP6.
$NOTE.++ TEST HAS NOT COMPLETED.+ 
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP6.
ENDIF,STEP2.
.*   DISPLAY FILE CONTENTS TO USER. 
CMS2605,ZZZTMP1.
ELSE,STEP1. 
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZTMP3.
PROC1 
L/TEST STARTED/Q;FSE ZZZSGL1;I/TEST STARTED/
QP
PROC1A
L/STARTED FOR DEVICE/Q;FSE ZZZSGL1;I/TEST STARTED/
QP
PROC2 
L/RUNNING/Q;FSE ZZZSGL2;I/TEST RUNNING/ 
QP
.EOF
.DATA,ZZZTMP4.
PFQ 
-PROC1
PFQ 
-PROC1A 
QQ
.EOF
.DATA,ZZZTMP5.
PFQ 
-PROC2
QQ
.EOF
*WEOR 
.PROC,CMS2608.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2608
.*
.*       ESTABLISH CMSI CDCNET ENVIRONMENT
.*
.*    PURPOSE - ESTABLISH FILE ZZZSAVE TO SAVE THE USERS
.*              NETOPRP FILE IF IT EXISTS.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI260 
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
.*   DELETE ANY PRE-EXISTING SAVE FILE. 
IF,FILE(ZZZSAVE,LO).REWIND,ZZZSAVE. 
.*   DETERMINE IF THE USER HAS A NETOPRP FILE.
FSE,FN=NETOPRP,OP=GA,L=TRASH.QQ 
RETURN,TRASH. 
.*   SAVE THE USERS NETOPRP FILE. 
IF,FILE(NETOPRP,.NOT.ZL).COPYEI,NETOPRP,ZZZSAVE.
$REVERT,NOLIST. 
$EXIT.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMS2609.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2609
.*
.*      CDCNET EXIT 
.*
.*    PURPOSE - PROVIDE EXIT PROCESSING FOR CDCNET PROCEDURES 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - ALL CMSI26X ROUTINES
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
.*   DISPLAY NESTING LEVEL
DISPLAY(PNL)
$NOTE.1+ CLEANING UP CMSI ENVIRONMENT, PLEASE WAIT....+ 
.*   INTERCEPT ANY USER BREAKS. 
IF,EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1.
$NOTE.//  ** USER INTERRUPTED TASK. //
ELSE,EXIT1. 
.*   RESTORE USERS NETOPRP FILE.
FSE,NETOPRP,OP=GA,L=TRASH.QR
PURGE,NETOPRP.
RETURN,NETOPRP. 
IF,FILE(ZZZSAVE,LO),SAVE1.
REWIND,ZZZSAVE. 
COPYEI,ZZZSAVE,NETOPRP. 
RETURN,ZZZSAVE. 
REPLACE,NETOPRP.
ENDIF,SAVE1.
.*   RETURN ALL LOCAL FILES AND PURGE ALL CMSI RELATED PERM FILES.
FSE,ZZZRESP,OP=GA,L=TRASH.QR
PURGE,ZZZRESP.
RETURN,ZZZRESP. 
FSE,ZZZPRP,OP=GA,L=TRASH.QR 
PURGE,ZZZPRP. 
RETURN,ZZZPRP.
RETURN,ZZZSTRT. 
RETURN,ZZZDI. 
RETURN,ZZZCMDI. 
RETURN,ZZZCMDS. 
RETURN,ZZZSW. 
RETURN,ZZZTMP1. 
RETURN,ZZZTMP2. 
RETURN,ZZZTMP3. 
RETURN,ZZZTMP4. 
RETURN,ZZZTMP5. 
RETURN,ZZZTMP6. 
RETURN,ZZZTMP7. 
RETURN,ZZZTMP8. 
RETURN,ZZZSGL1. 
RETURN,ZZZSGL2. 
RETURN,ZZZEND.
RETURN,TRASH. 
.*   DETERMINE IF A QUIT FUNCTION KEY WAS ENTERED.
IF,EF.EQ.CPE,EXIT2. 
.*   EXIT ALL LEVELS OF CMSI CDCNET MENUS.
IF(PNL.EQ.3)$REVERT,NOLIST. 
IF(PNL.EQ.4)$REVERT,EX.$REVERT,NOLIST.
IF(PNL.EQ.5)$REVERT,EX.$REVERT,EX.$REVERT,NOLIST. 
IF(PNL.EQ.6)$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,NOLIST.
IF(PNL.EQ.7)$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,NOLIST. 
IF,PNL.EQ.8,EXIT3.
$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,NOLIST.
ENDIF,EXIT3.
IF,PNL.GE.9,EXIT4.
$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT.
ENDIF,EXIT4.
ELSE,EXIT2. 
.*   DETERMINE IF AN ERROR OCCURRED.
IF,EF.NE.0,EXIT5. 
.*   CALL THE CMSI ERROR PROCESSOR ROUTINE. 
CMSIEFC.
ENDIF,EXIT5.
ENDIF,EXIT2.
ENDIF,EXIT1.
$REVERT,NOLIST. 
$EXIT.
$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT,EX.$REVERT.
*WEOR 
.PROC,CMS260F.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS260F
.*
.*      WARNING MESSAGE 
.*
.*    PURPOSE - WARNING MESSAGE FOR LINE MODE 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS260E 
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
.*
.*
.CC(%)
$NOTE.+************************************************************** 
$NOTE.+*                    ----CAUTION----                         * 
$NOTE.+*       YOU ARE EXECUTING IN LINE MODE, PLEASE NOTE:         * 
$NOTE.+*                                                            * 
$NOTE.+* CDCNET MAKES LIBERAL USE OF THE DOLLAR SIGN ( $ ) AND THE  * 
$NOTE.+* UNDERSCORE ( _ ) CHARACTERS, WHEN THESE CHARACTERS ARE TO  * 
$NOTE.+* BE USED IN PARAMETER ENTRIES, THE ENTIRE ENTRY MUST BE     * 
$NOTE.+* DELIMITED BY DOLLAR SIGN ( $ ) CHARACTERS, AND ALL         * 
$NOTE.+* INTERNAL DOLLAR SIGN( $ ) CHARACTERS MUST BE DOUBLED.      * 
$NOTE.+*                                                            * 
$NOTE.+*                        EXAMPLE:                            * 
$NOTE.+*      $LIM3_PORT4, MUST BE ENTERED AS: $$$LIM3_PORT4$       * 
$NOTE.+************************************************************** 
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
RETURN,TRASH. 
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMS260E.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS260E
.*
.*    THIS PROCEDURE IS REPLACED BY THE CMSI500 
.*    PROCEDURE DURING INITIALIZATION.   SEE CMSI500 DATA 
.*    RECORD FOR THE PROCEDURE TEXT.
.*
.*      CDCNET INTERFACE
.*
.*    PURPOSE - MAIN ENTRY TO CMSI/CDCNET MENUS 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI200 
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMSI261.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI261
.*
.*      NETOU EXPERT MODE 
.*
.*    PURPOSE - START EXECUTION OF NETOU
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS260M 
.*
.*    PROCEDURES CALLED - NETOU 
.*
.* ---------------------------------------------------- 
.*
.*   DELETE FILE. 
CMS2606,NETOPRP.
.*   DO AN APPLICATION SWITCH TO NETOU. 
APPSW,NETOU.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMSI262*M"CMSI - CDCNET ELEMENT SELECTIONS - CMSI262",
OPT262= 
 (1"DISPLAY AVAILABLE DI NAMES",
  2"SELECT A COMMAND MDI AND TARGET DI FOR CDCNET ACTIVITY",
  3"DISPLAY CURRENTLY SELECTED COMMAND AND TARGET DI NAMES",
  9"--------------- RETURN TO PREVIOUS CMSI MENU" ).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI262
.*
.*      CDCNET ELEMENT SELECTIONS 
.*
.*    PURPOSE - SELECT THE CDCNET ELEMENTS FOR NETOU TO USE 
.*
.*    PARAMETERS - OPT262 
.*
.*    CALLED BY - CMSI260, CMSI263, CMS2630, CMS2639, 
.*                CMSI264, CMS2640, CMSI265, CMSI266
.*
.*    PROCEDURES CALLED - CMS2621, CMS2622, CMS2623 
.*
.* ---------------------------------------------------- 
.*
.*
.PROMPT,CMSI262> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION PROVIDES A MENU OF DEVICE INTERFACE SELECTIONS.  THESE
     OPTIONS ALLOW THE USER TO SELECT WHICH DI IN THE CATENET IS TO BE THE
     TARGET OF THE ACTIONS INDICATED BY THE REST OF THE CMSI/CDCNET 
     MENUS AND TO SELECT AN MDI ON THE HOST MAINFRAME WHERE CMSI IS EXECUTING 
     TO INTERFACE WITH THE NETWORK.  A DISPLAY OF ALL DEVICE INTERFACES IN
     A CATENET IS ALSO PROVIDED.
  
.HELP,1,NOLIST. 
  
     THIS SELECTION WILL DISPLAY THE NAMES OF ALL DEVICE INTERFACES 
     CURRENTLY AVAILABLE IN THE CATENET ACCESSIBLE TO THE COMMAND DI
     CURRENTLY SELECTED.  IF MORE THAN ONE MDI IS AVAILABLE ON THIS 
     HOST THE USER WILL BE REQUIRED TO ENTER A SETCM COMMAND TO SELECT
     A COMMAND MDI. 
  
.HELP,2,NOLIST. 
  
     THIS ITEM IS TO BE USED TO SELECT AN MDI WHICH IS CONNECTED TO THIS
     MAINFRAME TO USE AS A COMMAND MDI FOR NETOU (SETCM COMMAND).  IT IS
     ALSO USED TO SELECT A TARGET DI FOR EXECUTION OF ALL CMSI/CDCNET 
     PROCEDURES.  THIS WILL BE THE DI WHICH WILL BE ACTED ON BY ALL THE 
     OTHER MENU SELECTIONS YOU MAKE.
  
.HELP,3,NOLIST. 
  
     THIS ITEM IS TO BE USED TO DISPLAY THE CURRENTLY SELECTED COMMAND DI 
     AND TARGET DI. 
  
.HELP,9,NOLIST
  
     USE THIS OPTION TO RETURN TO THE PREVIOUS CMSI MENU. 
  
.ENDHELP. 
.*
.*   PROCESS THE USERS MENU SELECTION.
.*
IF,OPT262.EQ.1.CMS2621. 
IF,OPT262.EQ.2.CMS2622. 
IF,OPT262.EQ.3.CMS2623. 
.*
IF,OPT262.EQ.9.$REVERT,NOLIST.
.*
$REVERT,EX.CMSI262. 
$EXIT.
.*   DETERMINE IF A QUIT FUNCTION KEY WAS ENTERED.
IF,EF.EQ.CPE,EXIT1. 
$REVERT,EX.CMSI262. 
ENDIF,EXIT1.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.EOF
*WEOR 
.PROC,CMS2621.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2621
.*
.*      DISPLAY DI NAMES
.*
.*    PURPOSE - DISPLAY THE NAMES OF ALL AVAILABLE DI-S 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI262 
.*
.*    PROCEDURES CALLED - CMS2605, CMS2606
.*
.* ---------------------------------------------------- 
.*
REPLACE,NETOPRP.
REPLACE,ZZZPRP. 
CMS2606,ZZZRESP.
.*   SWITCH TO NETOU
APPSW,AP=NETOU,Z.PROLOG=ZZZPRP
FSE,ZZZRESP,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZRESP,PM),STEP1.
.*   DISPLAY FILE CONTENTS TO USER. 
CMS2605,ZZZRESP.
$ELSE,STEP1.
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.EOF
.DATA,NETOPRP.
ROUCR,ZZZRESP.
DISCT 
DISCM 
QUIT
.EOF
.DATA,ZZZPRP. 
ROUCR,ZZZRESP.
DISCT 
DISCM 
QUIT
.EOF
*WEOR 
.PROC,CMS2622*I"CMSI - NETOU COMMAND MDI SELECTION",
CMDDI"NAME FOR COMMAND MDI ON CURRENT HOST"=(*A1..29),
TARDI"NAME FOR TARGET DI FOR CDCNET ACTIVITY"=(*A1..29).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2622
.*
.*      CDCNET COMMAND MDI AND TARGET DI SELECTOR 
.*
.*    PURPOSE - SELECT A COMMAND MDI FOR NETOU EXECUTION
.*              AND A TARGET DI FOR COMMANDS
.*
.*    PARAMETERS - CMDDI, TARDI 
.*
.*    CALLED BY - CMSI262 
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS MENU IS USED TO SELECT AN MDI WHICH IS CONNECTED TO THIS
     MAINFRAME TO USE AS A COMMAND MDI FOR NETOU (SETCM COMMAND), THIS MDI
     IS USED TO SEND COMMANDS TO THE TARGET DI.   THE SECOND PARAMETER
     SELECTS THE TARGET DI FOR ALL CMSI CDCNET PROCEDURES, THIS IS THE DI 
     TO WHICH ALL COMMANDS WILL BE SENT.
  
.HELP,CMDDI,NOLIST. 
  
     THIS PARAMETER IS THE NAME OF THE MDI TO USE AS A COMMAND MDI. 
     THIS MUST BE AN MDI CONNECTED TO THIS HOST MAINFRAME.
  
.HELP,TARDI,NOLIST. 
  
     THIS PARAMETER IS THE NAME OF THE DI TO USE AS THE TARGET DI FOR NETOU 
     COMMANDS ISSUED BY THE CMSI PROCEDURES.
  
.ENDHELP. 
.*
.CC(%)
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZSW.
.PROC,ZZZSW.
#.CC(&) 
APPSW,AP=NETOU,Z.PROLOG=ZZZPRP,MDI=CMDDI
.EOF
.DATA,ZZZCMDI.
SETCM,CMDDI 
.EOF
.DATA,ZZZDI.
SENCS,TARDI 
.EOF
*WEOR 
.PROC,CMS2623*I"CMSI - CDCNET CURRENT DI SELECTIONS". 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2623
.*
.*      CDCNET CURRENT DI SELECTIONS
.*
.*    PURPOSE - DISPLAY THE CURRENT COMMAND AND 
.*              TARGET DI SELECTIONS
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI262 
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
IF,FILE(ZZZSW,LO),STEP1.
REWIND,ZZZDI,ZZZCMDI,ZZZTMP2. 
COPYBR,ZZZTMP2,TRASH. 
RETURN,TRASH. 
COPYBR,ZZZDI,ZZZTMP2. 
COPYBR,ZZZCMDI,ZZZTMP2. 
FSE,ZZZTMP2,OP=A,L=TRASH,IP=ZZZTMP1.-ZZZTMP1. 
RETURN,TRASH. 
RETURN,ZZZTMP1. 
$NOTE.++ CURRENT DI SELECTIONS ARE: + 
COPYCF,ZZZTMP2. 
$NOTE.++ ENTER (CR) TO CONTINUE.    + 
COPYCR,INPUT,TRASH. 
RETURN,ZZZTMP2. 
ELSE,STEP1. 
$NOTE.++ NO DI SELECTIONS HAVE BEEN MADE +
$NOTE.++ ENTER (CR) TO CONTINUE.    + 
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZTMP1.
ZZZTMP1 
RAQ/SENCS,/    TARGET DI   = /
PFQ;RAQ/SETCM,/    COMMAND MDI = /
PFQ;D1 2Q 
QQ
.EOF
.DATA,ZZZTMP2.
SENCS,
SETCM,
.EOF
*WEOR 
.PROC,CMSI263*M"CMSI - CDCNET DEVICE/LINE STATES - CMSI263",
OPT263= 
 (1"SELECT A DI TO USE",
  2"STOP A LINE", 
  3"START A LINE",
  4"CANCEL A LINE", 
  5"DEFINE A LINE", 
  6"CHANGE ELEMENT STATE TO ON",
  7"CHANGE ELEMENT STATE TO DOWN",
  8"CHANGE ELEMENT STATE TO OFF", 
  9"MANAGE MULTIPLE LINES", 
  10"MANAGE NETWORKS",
  11"DISPLAY HARDWARE STATUS",
  12"DISPLAY LINE STATUS (SUMMARY)",
  13"--------------- RETURN TO PREVIOUS CMSI MENU" ). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI263
.*
.*      CDCNET DEVICE/LINE STATES 
.*
.*    PURPOSE - MANAGE THE STATES OF CDCNET DEVICES AND LINES.
.*
.*    PARAMETERS - OPT263 
.*
.*    CALLED BY - CMSI260 
.*
.*    PROCEDURES CALLED - CMS2631 , CMS2632 , CMS2633 , CMS2634 
.*                        CMS2635 , CMS2636 , CMS2637 , CMS2638 
.*                        CMS2639 , CMS2630 , CMSI262 
.*
.* ---------------------------------------------------- 
.*
.*
.PROMPT,CMSI263> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.*
.HELP,,NOLIST.
  
     THIS SET OF MENUS PROVIDES OPTIONS TO CONTROL THE STATES OF CDCNET 
     DEVICES, LINES, AND NETWORKS.  DEVICES MAY BE SET TO ON, DOWN OR OFF.
     LINES MAY BE DEFINED, CANCELED, STARTED, OR STOPPED. 
  
.HELP,1,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF DEVICE INTERFACE SELECTIONS.  THESE
     OPTIONS ALLOW THE USER TO SELECT WHICH DI IN THE CATENET IS TO BE THE
     TARGET OF THE ACTIONS INDICATED BY THE REST OF THE CMSI/CDCNET 
     MENUS AND TO SELECT AN MDI ON THE HOST MAINFRAME WHERE CMSI IS EXECUTING 
     TO INTERFACE WITH THE NETWORK.  A DISPLAY OF ALL DEVICE INTERFACES IN
     A CATENET IS ALSO PROVIDED.
  
.HELP,2,NOLIST. 
  
     THIS SELECTION WILL PROMPT THE USER FOR A LINE NAME TO STOP.  STOPPING 
     A LINE WILL INTERRUPT ANY ACTIVE COMMUNICATIONS ON THAT LINE AND PUTS THE
     LINE IN A STATE WHERE NO USER COMMUNICATIONS MAY BE CONDUCTED. 
     THE LINE NAMES MAY BE VIEWED BY USING THE DISPLAY LINE STATUS SELECTION. 
  
.HELP,3,NOLIST. 
  
     THIS SELECTION WILL PROMPT THE USER FOR A LINE NAME TO START.  STARTING
     A LINE WILL PERMIT USER COMMUNICATIONS TO BE CONDUCTED ON THAT LINE. 
     THE LINE NAMES MAY BE VIEWED BY USING THE DISPLAY LINE STATUS SELECTION. 
  
.HELP,4,NOLIST. 
  
     THIS SELECTION WILL PROMPT THE USER FOR THE NAME OF A LINE TO DELETE.
     DELETION OF A LINE WILL REMOVE THE LOGICAL INFORMATION ABOUT A LINE
     FROM THE DEVICE INTERFACE.  THE LINE NAMES MAY BE VIEWED BY USING THE
     DISPLAY LINE STATUS SELECTION. 
  
.HELP,5,NOLIST. 
  
     THIS SELECTION WILL PROMPT A USER FOR A LIMITED SET OF PARAMETERS TO 
     DEFINE A LINE FOR USE BY CDCNET.  FOR A COMPLETE SET OF PARAMETERS 
     NETOU MUST BE USED DIRECTLY. 
  
.HELP,6,NOLIST. 
  
     THIS SELECTION WILL CHANGE THE STATE OF A DEVICE TO ON.  THIS WILL 
     ENABLE ITS USE BY SOFTWARE AND DISABLE ITS USE BY DIAGNOSTICS. 
  
.HELP,7,NOLIST. 
  
     THIS SELECTION WILL CHANGE THE STATE OF A DEVICE TO DOWN.  THIS WILL 
     DISABLE ITS USE BY SOFTWARE AND ENABLE ITS USE BY DIAGNOSTICS. 
  
.HELP,8,NOLIST. 
  
     THIS SELECTION WILL CHANGE THE STATE OF A DEVICE TO OFF.  THIS WILL
     DISABLE ITS USE BY SOFTWARE AND DIAGNOSTICS. 
  
.HELP,9,NOLIST. 
  
     THIS SELECTION WILL PROVIDE A MENU OF OPTIONS TO MANAGE A SET OF LINES 
     WITH A COMMON CRITERIA WITH ONE SELECTION.  FOR EXAMPLE SETTING ALL
     LIMS TO DOWN STATE.
  
.HELP,10,NOLIST.
  
     THIS SELECTION WILL PRESENT A MENU OF NETWORK MANAGEMENT OPTIONS.
  
.HELP,11,NOLIST.
  
     THIS SELECTION WILL DISPLAY THE STATUS OF ALL DEVICES IN THE SELECTED
     DEVICE INTERFACE.
  
.HELP,12,NOLIST.
  
     THIS SELECTION WILL DISPLAY THE STATUS OF ALL LINES IN THE SELECTED
     DEVICE INTERFACE.
  
.HELP,13,NOLIST 
  
     USE THIS OPTION TO RETURN TO THE PREVIOUS CMSI MENU. 
  
.ENDHELP. 
.*
.*   PROCESS THE USERS MENU SELECTION.
.*
IF,OPT263.EQ.1.CMSI262. 
IF,OPT263.EQ.2.CMS2632. 
IF,OPT263.EQ.3.CMS2633. 
IF,OPT263.EQ.4.CMS2634. 
IF,OPT263.EQ.5.CMS2635. 
IF,OPT263.EQ.6.CMS2636. 
IF,OPT263.EQ.7.CMS2637. 
IF,OPT263.EQ.8.CMS2638. 
IF,OPT263.EQ.9.CMS2639. 
IF,OPT263.EQ.10.CMS2630.
IF,OPT263.EQ.11.CMS2654.
IF,OPT263.EQ.12.CMS2655.
.*
IF,OPT263.EQ.13.$REVERT,NOLIST. 
.*
$REVERT,EX.CMSI263. 
$EXIT.
.*   DETERMINE IF THE NEXT LEVEL MENU WAS IN EXECUTION. 
IF,OPT263.NE.9,EXIT1. 
IF,OPT263.NE.10,EXIT1A. 
.*   DETERMINE IF A QUIT FUNCTION KEY WAS ENTERED.
IF,EF.EQ.CPE,EXIT2. 
$REVERT,EX.CMSI263. 
ENDIF,EXIT2.
ENDIF,EXIT1A. 
ENDIF,EXIT1.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.EOF
*WEOR 
.PROC,CMS2630*M"CMSI - CDCNET MANAGE NETWORKS - CMS2630", 
OPT2630=
 (1"SELECT A DI TO USE",
  2"STOP A NETWORK",
  3"START A NETWORK", 
  4"STOP NP INTERFACE", 
  5"START NP INTERFACE",
  6"DISPLAY NETWORK STATUS",
  9"--------------- RETURN TO PREVIOUS CMSI MENU" ).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2630
.*
.*      MANAGE CDCNET MULTIPLE LINES
.*
.*    PURPOSE - MANAGE THE STATES OF CDCNET DEVICES AND LINES.
.*
.*    PARAMETERS - OPT2630
.*
.*    CALLED BY - CMSI263 
.*
.*    PROCEDURES CALLED - CMS263A, CMS263B, CMS263C, CMS263D
.*                        CMS2659, CMSI262
.*
.* ---------------------------------------------------- 
.*
.*
.PROMPT,CMS2630> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.*
.HELP,,NOLIST.
  
     THIS MENU PROVIDES OPTIONS TO MANAGE NETWORKS IN THE SELECTED DEVICE 
     INTERFACE. 
  
.HELP,1,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF DEVICE INTERFACE SELECTIONS.  THESE
     OPTIONS ALLOW THE USER TO SELECT WHICH DI IN THE CATENET IS TO BE THE
     TARGET OF THE ACTIONS INDICATED BY THE REST OF THE CMSI/CDCNET 
     MENUS AND TO SELECT AN MDI ON THE HOST MAINFRAME WHERE CMSI IS EXECUTING 
     TO INTERFACE WITH THE NETWORK.  A DISPLAY OF ALL DEVICE INTERFACES IN
     A CATENET IS ALSO PROVIDED.
  
.HELP,2,NOLIST. 
  
     THIS SELECTION WILL STOP A DESIGNATED NETWORK IN THE SELECTED DEVICE 
     INTERFACE. 
  
.HELP,3,NOLIST. 
  
     THIS SELECTION WILL START A DESIGNATED NETWORK IN THE SELECTED DEVICE
     INTERFACE. 
  
.HELP,4,NOLIST. 
  
     THIS SELECTION WILL STOP A DESIGNATED NETWORK PRODUCTS INTERFACE IN THE
     SELECTED DEVICE INTERFACE.  THIS INCLUDES STOPPING FILE SERVICE. 
  
.HELP,5,NOLIST. 
  
     THIS SELECTION WILL START A DESIGNATED NETWORK PRODUCTS INTERFACE IN THE 
     SELECTED DEVICE INTERFACE.  THIS INCLUDES STARTING FILE SERVICE. 
  
.HELP,6,NOLIST. 
  
     THIS SELECTION WILL DISPLAY THE STATUS OF ALL NETWORKS IN THE SELECTED 
     DEVICE INTERFACE.
  
.HELP,9,NOLIST
  
     USE THIS OPTION TO RETURN TO THE PREVIOUS CMSI MENU. 
  
.ENDHELP. 
.*
.*   PROCESS THE USERS MENU SELECTION.
.*
IF,OPT2630.EQ.1.CMSI262.
IF,OPT2630.EQ.2.CMS263A.
IF,OPT2630.EQ.3.CMS263B.
IF,OPT2630.EQ.4.CMS263C.
IF,OPT2630.EQ.5.CMS263D.
IF,OPT2630.EQ.6.CMS2659.
.*
IF,OPT2630.EQ.9.$REVERT,NOLIST. 
.*
$REVERT,EX.CMS2630. 
$EXIT.
.*   DETERMINE IF A QUIT FUNCTION KEY WAS ENTERED.
IF,EF.EQ.CPE,EXIT1. 
$REVERT,EX.CMS2630. 
ENDIF,EXIT1.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.EOF
*WEOR 
.PROC,CMS2632*I"CMSI - STOP A LINE - CMS2632",
LINE"NAME TO STOP"=(*A1..40). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2632
.*
.*       STOP A LINE
.*
.*    PURPOSE - CONSTRUCT CDCNET COMMAND TO STOP A SELECTED LINE
.*
.*    PARAMETERS - LINE 
.*
.*    CALLED BY - CMSI263 
.*
.*    PROCEDURES CALLED - CMS2600, CMS2603, CMS2604, CMS2605, CMS2606 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL PROMPT THE USER FOR A LINE NAME TO STOP.  STOPPING 
     A LINE WILL INTERRUPT ANY ACTIVE COMMUNICATIONS ON THAT LINE AND PUTS THE
     LINE IN A STATE WHERE NO USER COMMUNICATIONS MAY BE CONDUCTED. 
  
.HELP,LINE,NOLIST.
  
     THIS ITEM IS THE LINE NAME TO BE STOPPED.
  
.ENDHELP. 
.*
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP1.
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
FSE,FN=ZZZTMP1,OP=GN,L=TRASH,I=ZZZTMP2. 
RETURN,TRASH. 
REWIND,ZZZTMP3,ZZZCMDS. 
COPYBR,ZZZTMP3,ZZZCMDS. 
IF,FILE(ZZZSGL1,LO),STEP2.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   REQUEST USER APPROVAL TO CONTINUE. 
IF,SL.EQ.#LINE,STEP4. 
CMS2604.
ELSE,STEP4. 
CMS2604?. 
ENDIF,STEP4.
IF,FILE(ZZZSGL1,LO),STEP3.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
ENDIF,STEP3.
ELSE,STEP2. 
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
ENDIF,STEP2.
ELSE,STEP1. 
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISLS LN=LINE DO=S
.EOF
.DATA,ZZZTMP2.
PFQ;L/ACTIVE/;FSE ZZZSGL1;I/ACTIVE/ 
QQ
.EOF
.DATA,ZZZTMP3.
STOL LN=LINE
.EOF
*WEOR 
.PROC,CMS2633*I"CMSI - START A LINE - CMS2633", 
LINE"NAME TO START"=(*A1..40).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2633
.*
.*       START A LINE 
.*
.*    PURPOSE - CONSTRUCT CDCNET COMMAND TO START A SELECTED LINE 
.*
.*    PARAMETERS - LINE 
.*
.*    CALLED BY - CMSI263 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL PROMPT THE USER FOR A LINE NAME TO START.  STARTING
     A PERMIT USER COMMUNICATIONS TO BE CONDUCTED ON THAT LINE. 
  
.HELP,LINE,NOLIST.
  
     THIS ITEM IS THE LINE NAME TO BE STARTED.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
STAL LN=LINE
.EOF
*WEOR 
.PROC,CMS2634*I"CMSI - CANCEL A LINE - CMS2634",
LINE"NAME TO CANCEL"=(*A1..40). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2634
.*
.*       CANCEL A LINE
.*
.*    PURPOSE - CONSTRUCT CDCNET COMMAND TO CANCEL A SELECTED LINE
.*
.*    PARAMETERS - LINE 
.*
.*    CALLED BY - CMSI263 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL PROMPT THE USER FOR THE NAME OF A LINE TO DELETE.
     DELETION OF A LINE WILL REMOVE THE LOGICAL INFORMATION ABOUT A LINE
     FROM THE DEVICE INTERFACE.  THE PHYSICAL LIM AND PORT ASSOCIATED WITH
     UNCONFIGURED.
  
.HELP,LINE,NOLIST.
  
     THIS ITEM IS THE LINE NAME TO BE DELETED.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
CANL LN=LINE
.EOF
*WEOR 
.PROC,CMS2635*I"CMSI - DEFINE A LINE - CMS2635",
LIM"NUMBER"=(*S1/B),
PORT"NUMBER"=(*S1/B), 
TIP"NAME"=(*A1..40),
LINE"NAME"=(*A1..40). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2635
.*
.*       DEFINE A LINE
.*
.*    PURPOSE - CONSTRUCT CDCNET COMMANDS TO DEFINE A SELECTED LINE 
.*
.*    PARAMETERS - LIM, PORT, TIP, LINE 
.*
.*    CALLED BY - CMSI263 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL PROMPT A USER FOR A LIMITED SET OF PARAMETERS TO 
     DEFINE A LINE FOR USE BY CDCNET.  FOR A COMPLETE SET OF PARAMETERS 
     NETOU MUST BE USED DIRECTLY. 
  
.HELP,LIM,NOLIST. 
  
     THIS ITEM IS THE NUMBER OF THE LIM FOR WHICH THE LINE IS TO BE DEFINED.
  
.HELP,PORT,NOLIST.
  
     THIS ITEM IS THE NUMBER OF THE PORT FOR WHICH THE LINE IS TO BE DEFINED. 
  
.HELP,TIP,NOLIST. 
  
     THIS ITEM IS THE TIP TO BE USED FOR THE LINE TO BE DEFINED.
     IN MOST CASES THIS WILL BE THE ASYNCTIP FOR TESTING. IF OTHER
     TIPS ARE NEEDED, PLEASE REFER TO THE CDCNET NETWORK OPERATOR MANUAL. 
  
.HELP,LINE,NOLIST.
  
     THIS ITEM IS THE LOGICAL NAME FOR THE LINE TO BE DEFINED.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DEFL L=LIM P=PORT TN=TIP LN=LINE
.EOF
*WEOR 
.PROC,CMS2636*I"CMSI - CHANGE ELEMENT STATE TO ON - CMS2636", 
ELEMENT"NAME"=(*A1..11).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2636
.*
.*       CHAES TO ON
.*
.*    PURPOSE - CHANGE THE STATE OF A CDCNET DEVICE TO ON 
.*
.*    PARAMETERS - ELEMENT
.*
.*    CALLED BY - CMSI263 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL CHANGE THE STATE OF A DEVICE TO ON.  THIS WILL 
     ENABLE ITS USE BY SOFTWARE AND DISABLE ITS USE BY DIAGNOSTICS. 
  
.HELP,ELEMENT,NOLIST. 
  
     THIS ITEM IS THE NAME OF THE ELEMENT TO CHANGE TO ON.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
CHAES DN=ELEMENT S=ON 
.EOF
*WEOR 
.PROC,CMS2637*I"CMSI - CHANGE ELEMENT STATE TO DOWN - CMS2637", 
ELEMENT"NAME"=(*A1..11).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2637
.*
.*       CHAES TO DOWN
.*
.*    PURPOSE - CHANGE THE STATE OF A CDCNET DEVICE TO DOWN 
.*
.*    PARAMETERS - ELEMENT
.*
.*    CALLED BY - CMSI263 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL CHANGE THE STATE OF A DEVICE TO DOWN.  THIS WILL 
     DISABLE ITS USE BY SOFTWARE AND ENABLE ITS USE BY DIAGNOSTICS. 
  
.HELP,ELEMENT,NOLIST. 
  
     THIS ITEM IS THE NAME OF THE ELEMENT TO CHANGE TO DOWN.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
CHAES DN=ELEMENT S=DOWN 
.EOF
*WEOR 
.PROC,CMS2638*I"CMSI - CHANGE ELEMENT STATE TO OFF - CMS2638",
ELEMENT"NAME"=(*A1..11).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2638
.*
.*       CHAES TO OFF 
.*
.*    PURPOSE - CHANGE THE STATE OF A CDCNET DEVICE TO OFF
.*
.*    PARAMETERS - ELEMENT
.*
.*    CALLED BY - CMSI263 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL CHANGE THE STATE OF A DEVICE TO OFF.  THIS WILL
     DISABLE ITS USE BY SOFTWARE AND DIAGNOSTICS. 
  
.HELP,ELEMENT,NOLIST. 
  
     THIS ITEM IS THE NAME OF THE ELEMENT TO CHANGE TO OFF. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
CHAES DN=ELEMENT S=OFF
.EOF
*WEOR 
.PROC,CMS2639*M"CMSI - CDCNET MANAGE MULTIPLE LINES - CMS2639", 
OPT2639=
 (1"SELECT A DI TO USE",
  2"STOP ALL LINES EXCEPT ACTIVE LINES",
  3"DOWN ALL STOPPED, CONFIGURED, AND UNCONFIGURED LINES",
  4"STOP AND DOWN ALL LINES EXCEPT ACTIVE LINES", 
  5"STOP AND DOWN ALL LINES. (WARNING: THIS INCLUDES LINES CURRENTLY IN USE)",
  6"SET ALL PORTS TO ON STATE AND START ALL CONFIGURED LINES",
  7"SET ALL LIMS TO DOWN STATE",
  8"SET ALL LIMS TO ON STATE",
  9"DISPLAY HARDWARE STATUS", 
  10"DISPLAY LINE STATUS (SUMMARY)",
  11"--------------- RETURN TO PREVIOUS CMSI MENU" ). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2639
.*
.*      MANAGE CDCNET MULTIPLE LINES
.*
.*    PURPOSE - MANAGE THE STATES OF CDCNET DEVICES AND LINES.
.*
.*    PARAMETERS - OPT2639
.*
.*    CALLED BY - CMSI263 
.*
.*    PROCEDURES CALLED - CMSI262, CMS263N, CMS263O, CMS263P
.*                        CMS263Q, CMS263R, CMS263S, CMS263T
.*                        CMS2654, CMS2655
.*
.* ---------------------------------------------------- 
.*
.*
.PROMPT,CMS2639> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.*
.HELP,,NOLIST.
  
     THIS MENU PROVIDES OPTIONS TO MANAGE A SET OF LINES WITH A COMMON
     CRITERIA WITH ONE SELECTION. 
  
.HELP,1,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF DEVICE INTERFACE SELECTIONS.  THESE
     OPTIONS ALLOW THE USER TO SELECT WHICH DI IN THE CATENET IS TO BE THE
     TARGET OF THE ACTIONS INDICATED BY THE REST OF THE CMSI/CDCNET 
     MENUS AND TO SELECT AN MDI ON THE HOST MAINFRAME WHERE CMSI IS EXECUTING 
     TO INTERFACE WITH THE NETWORK.  A DISPLAY OF ALL DEVICE INTERFACES IN
     A CATENET IS ALSO PROVIDED.
  
.HELP,2,NOLIST. 
  
     THIS SELECTION WILL STOP ALL LINES IN THE SELECTED DEVICE INTERFACE
     WHICH ARE NOT CURRENTLY ACTIVE.
  
.HELP,3,NOLIST. 
  
     THIS SELECTION WILL SET THE STATE OF ALL LIM PORTS IN THE SELECTED 
     DEVICE INTERFACE WHICH ARE STOPPED TO DOWN.
  
.HELP,4,NOLIST. 
  
     THIS SELECTION WILL STOP ALL LINES IN THE SELECTED DEVICE INTERFACE
     WHICH ARE CURRENTLY NOT ACTIVE AND SET THE STATES OF THE ASSOCIATED
     LIM PORTS TO DOWN. 
  
.HELP,5,NOLIST. 
  
     THIS SELECTION WILL STOP ALL LINES IN THE SELECTED DEVICE INTERFACE AND
     WILL SET THE STATE OF ALL LIM PORTS TO DOWN. 
  
     ----------------------------- WARNING ---------------------------------
     *                                                                     *
     *         THIS WILL INTERRUPT ACTIVE USER COMMUNICATIONS              *
     *                                                                     *
     ----------------------------- WARNING ---------------------------------
  
  
.HELP,6,NOLIST. 
  
     THIS SELECTION WILL SET THE STATE OF ALL LIM PORTS IN THE SELECTED DEVICE
     INTERFACE TO ON AND WILL START ALL LINES WHICH ARE CONFIGURED. 
  
.HELP,7,NOLIST. 
  
     THIS SELECTION WILL SET THE STATE OF LIMS IN THE SELECTED DEVICE INTERFACE 
     TO DOWN. 
  
.HELP,8,NOLIST. 
  
     THIS SELECTION WILL SET THE STATE OF LIMS IN THE SELECTED DEVICE INTERFACE 
     TO ON.  ALL LIM PORTS WILL ALSO BE SET TO ON.
  
.HELP,9,NOLIST. 
  
     THIS SELECTION WILL DISPLAY THE HARDWARE STATUS OF ALL DEVICES IN THE
     SELECTED DEVICE INTERFACE. 
  
.HELP,10,NOLIST.
  
     THIS SELECTION WILL DISPLAY A SUMMARY STATUS OF ALL LINES IN THE SELECTED
     DEVICE INTERFACE.
  
.HELP,11,NOLIST 
  
     USE THIS OPTION TO RETURN TO THE PREVIOUS CMSI MENU. 
  
.ENDHELP. 
.*
.*   PROCESS THE USERS MENU SELECTION.
.*
IF,OPT2639.EQ.1.CMSI262.
IF,OPT2639.EQ.2.CMS263N.
IF,OPT2639.EQ.3.CMS263O.
IF,OPT2639.EQ.4.CMS263P.
IF,OPT2639.EQ.5.CMS263Q.
IF,OPT2639.EQ.6.CMS263R.
IF,OPT2639.EQ.7.CMS263S.
IF,OPT2639.EQ.8.CMS263T.
IF,OPT2639.EQ.9.CMS2654.
IF,OPT2639.EQ.10.CMS2655. 
.*
IF,OPT2639.EQ.11.$REVERT,NOLIST.
.*
$REVERT,EX.CMS2639. 
$EXIT.
.*   DETERMINE IF A QUIT FUNCTION KEY WAS ENTERED.
IF,EF.EQ.CPE,EXIT1. 
$REVERT,EX.CMS2639. 
ENDIF,EXIT1.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMS263A*I"CMSI - STOP A NETWORK - CMS263A", 
NETWORK"NAME TO STOP"=(*A1..40).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS263A
.*
.*       STOP NETWORK 
.*
.*    PURPOSE - STOP A CDCNET NETWORK 
.*
.*    PARAMETERS - NETWORK
.*
.*    CALLED BY - CMS2630 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL STOP A DESIGNATED NETWORK IN THE SELECTED DEVICE 
     INTERFACE. 
  
.HELP,NETWORK,NOLIST. 
  
     THIS ITEM IS THE NAME OF THE NETWORK TO STOP.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
STON NN=NETWORK 
.EOF
*WEOR 
.PROC,CMS263B*I"CMSI - START A NETWORK - CMS263B",
NETWORK"NAME TO START"=(*A1..40). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS263B
.*
.*       START NETWORK
.*
.*    PURPOSE - START A CDCNET NETWORK
.*
.*    PARAMETERS - NETWORK
.*
.*    CALLED BY - CMS2630 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL START A DESIGNATED NETWORK IN THE SELECTED DEVICE
     INTERFACE. 
  
.HELP,NETWORK,NOLIST. 
  
     THIS ITEM IS THE NAME OF THE NETWORK TO START. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
STAN NN=NETWORK 
.EOF
*WEOR 
.PROC,CMS263C*I"CMSI - STOP NP INTERFACE - CMS263C",
DEVICE"NAME TO STOP NP INTERFACE ON"=(*A1..5).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS263C
.*
.*       STOP NP INTERFACE
.*
.*    PURPOSE - STOP A NETWORK PRODUCTS INTERFACE 
.*
.*    PARAMETERS - DEVICE 
.*
.*    CALLED BY - CMS2630 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL STOP A DESIGNATED NETWORK PRODUCTS INTERFACE IN THE
     SELECTED DEVICE INTERFACE.  THIS INCLUDES STOPPING FILE SERVICE. 
  
.HELP,DEVICE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE NETWORK DEVICE TO STOP. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
CANFS TN=DEVICE 
STONI IN=DEVICE 
.EOF
*WEOR 
.PROC,CMS263D*I"CMSI - START NP INTERFACE - CMS263D", 
DEVICE"NAME TO START NP INTERFACE ON"=(*A1..5). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS263D
.*
.*       START NP INTERFACE 
.*
.*    PURPOSE - START A NETWORK PRODUCTS INTERFACE
.*
.*    PARAMETERS - DEVICE 
.*
.*    CALLED BY - CMS2630 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL START A DESIGNATED NETWORK PRODUCTS INTERFACE IN THE 
     SELECTED DEVICE INTERFACE.  THIS INCLUDES STARTING FILE SERVICE. 
  
.HELP,DEVICE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE NETWORK DEVICE TO START.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
STANI IN=DEVICE 
DEFFS TN=DEVICE 
.EOF
*WEOR 
.PROC,CMS263N,DISPLAY=TRUE. 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS263N
.*
.*       STOP INACTIVE LINES
.*
.*    PURPOSE - STOP ALL LINES IN A DI WHICH ARE NOT
.*              CURRENTLY ACTIVE. 
.*
.*    PARAMETERS - DISPLAY
.*
.*    CALLED BY - CMS2639, CMS263P
.*
.*    PROCEDURES CALLED - CMS2600, CMS2603, CMS2605, CMS2606
.*
.* ---------------------------------------------------- 
.*
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           DISLS DO=S 
CMS2600,ZZZTMP1.
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP1.
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
.*   CHECK FOR NO LINES DEFINED 
FSE,ZZZTMP1,OP=A,L=TRASH,I=ZZZTMP4. 
RETURN,TRASH. 
IF,FILE(ZZZSGL1,LO),STEP2.
IF,$DISPLAY$.EQ.$TRUE$,STEP3. 
.*   DISPLAY FILE CONTENTS TO USER. 
CMS2605,ZZZTMP1.
ENDIF,STEP3.
ELSE,STEP2. 
.*   DELETE ALL ACTIVE LINE NAMES AND 
.*   MAKE STOP_LINE COMMANDS FOR EACH LINE IN FILE
FSE,FN=ZZZTMP1,OP=A,L=TRASH,IP=ZZZTMP2,I=ZZZTMP3. 
RETURN,TRASH. 
IF,FILE(ZZZSGL2,LO),STEP4.
REWIND,ZZZCMDS,ZZZTMP1. 
COPYBR,ZZZTMP1,ZZZCMDS. 
REWIND,ZZZCMDS. 
IF,$DISPLAY$.EQ.$TRUE$,STEP5. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           STOL 
CMS2600.
ELSE,STEP5. 
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
ENDIF,STEP5.
ELSE,STEP4. 
IF,$DISPLAY$.EQ.$TRUE$,STEP6. 
$NOTE.1+ NO LINES TO STOP. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP6.
ENDIF,STEP4.
ENDIF,STEP2.
ELSE,STEP1. 
IF,$DISPLAY$.EQ.$TRUE$,STEP5. 
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP5.
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISLS DO=S
.EOF
.DATA,ZZZTMP2.
PROC1 
L/DEVICE NAME/Q;DFCQ
QP
PROC1A
DBQ;PNQ;-PROC1A 
QP
PROC2 
L/ACTIVE/Q;DCQ;PNQ;-PROC2 
QP
PROC3 
L/DELETING/Q;DCQ;PNQ;-PROC3 
QP
PROC4 
L/DISABLING/Q;DCQ;PNQ;-PROC4
QP
PROC5 
L/DISABLED/Q;DCQ;PNQ;-PROC5 
QP
PROC6 
L/SWITCHING/Q;DCQ;PNQ;-PROC6
QP
PROC7 
L/DOWNING/Q;DCQ;PNQ;-PROC7
QP
PROC8 
L/REENABLING/Q;DCQ;PNQ;-PROC8 
QP
PROC9 
L/AUTOREC_A/Q;DCQ;PNQ;-PROC9
QP
PROC10
L/LOADING_T/Q;DCQ;PNQ;-PROC10 
QP
PROC11
.P32;.S;DCQ;PNQ;-PROC11 
QP
PROC12
.I/STOL LN=/;PNQ;-PROC12
QP
PROC13
L/STOL LN=/Q;FSE ZZZSGL2;I/NO LINES TO STOP/
QP
.EOF
.DATA,ZZZTMP3 
PFQ 
-PROC1
PFQ 
-PROC1A 
PFQ 
-PROC2
PFQ 
-PROC3
PFQ 
-PROC4
PFQ 
-PROC5
PFQ 
-PROC6
PFQ 
-PROC7
PFQ 
-PROC8
PFQ 
-PROC9
PFQ 
-PROC10 
PFQ 
-PROC11 
PFQ 
-PROC12 
PFQ 
-PROC13 
QQ
.EOF
.DATA,ZZZTMP4 
PFQ;L/NO LINES DEFINED/Q;FSE ZZZSGL1;I/NO LINES DEFINED/
QQ
.EOF
*WEOR 
.PROC,CMS263O.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS263O
.*
.*       DOWN PORTS WITH STOPPED LINES
.*
.*    PURPOSE - SET ALL LINES WHICH ARE STOPPED TO DOWN 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2639, CMS263P, CMS263Q 
.*
.*    PROCEDURES CALLED - CMS2600, CMS2603, CMS2606 
.*
.* ---------------------------------------------------- 
.*
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           DISHS DO=E DN=($LIM0,$LIM1,$LIM2,$LIM3,$LIM4,$LIM5,$LIM6,$LIM7)
CMS2600,ZZZTMP1.
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP1.
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
.*   REMOVE ALL BUT ON LIMS AND MAKE CHAES COMMAND FOR EACH LIM LEFT
FSE,FN=ZZZTMP1,OP=A,L=TRASH,IP=ZZZTMP2,I=ZZZTMP3. 
RETURN,TRASH. 
IF,FILE(ZZZSGL1,LO),STEP2.
REWIND,ZZZCMDS,ZZZTMP1. 
COPYBR,ZZZTMP1,ZZZCMDS. 
REWIND,ZZZCMDS. 
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           CHAES S=DOWN DN=XXX
CMS2600.
ELSE,STEP2. 
$NOTE.1+ NO PORTS TO DOWN. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP2.
ELSE,STEP1. 
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISHS DO=E DN=($LIM0,$LIM1,$LIM2,$LIM3,$LIM4,$LIM5,$LIM6,$LIM7) 
.EOF
.DATA,ZZZTMP2.
PROC1 
L/DEVICE NAME/Q;DFCQ
QP
PROC1A
DBQ;PNQ;-PROC1A 
QP
PROC2 
PFQ;L/$LIM0 /Q;DCQ
PFQ;L/$LIM1 /Q;DCQ
PFQ;L/$LIM2 /Q;DCQ
PFQ;L/$LIM3 /Q;DCQ
PFQ;L/$LIM4 /Q;DCQ
PFQ;L/$LIM5 /Q;DCQ
PFQ;L/$LIM6 /Q;DCQ
PFQ;L/$LIM7 /Q;DCQ
PFQ;L/$URI0 /Q;DCQ
PFQ;L/$URI1 /Q;DCQ
PFQ;L/$URI2 /Q;DCQ
PFQ;L/$URI3 /Q;DCQ
PFQ;L/$URI4 /Q;DCQ
PFQ;L/$URI5 /Q;DCQ
PFQ;L/$URI6 /Q;DCQ
PFQ;L/$URI7 /Q;DCQ
QP
PROC3 
L/OFF/Q;DCQ;PNQ;-PROC3
QP
PROC4 
L/DOWN/Q;DCQ;PNQ;-PROC4 
QP
PROC4A
L/ACTIVE/Q;DCQ;PNQ;-PROC4A
QP
PROC5 
L/$URI/Q;DCQ;PNQ;-PROC5 
QP
PROC6 
.P12;.S;DCQ;PNQ;-PROC6
QP
PROC7 
.I/CHAES S=DOWN DN=/;PNQ;-PROC7 
QP
PROC8 
L/LIM/Q;FSE ZZZSGL1;I/LINES DEFINED/
QP
.EOF
.DATA,ZZZTMP3.
PFQ 
-PROC1
PFQ 
-PROC1A 
PFQ 
-PROC2
PFQ 
-PROC3
PFQ 
-PROC4
PFQ 
-PROC4A 
PFQ 
-PROC5
PFQ 
-PROC6
PFQ 
-PROC7
PFQ 
-PROC8
QQ
.EOF
*WEOR 
.PROC,CMS263P.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS263P
.*
.*       STOP AND DOWN ALL NON-ACTIVE LINES 
.*
.*    PURPOSE - STOP ALL CDCNET LINES WHICH ARE NOT ACTIVE, 
.*              DOWN ALL CDCNET LINES WHICH ARE STOPPED.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2639 
.*
.*    PROCEDURES CALLED - CMS263N, CMS260O, CMS2600, CMS2606
.*
.* ---------------------------------------------------- 
.*
IF,FILE(ZZZDI,LO),STEP1.
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           DISLS DO=S 
CMS2600,ZZZTMP1.
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP1A. 
.*   STOP ALL NON-ACTIVE LINES. 
CMS263N,FALSE.
.*   DOWN ALL STOPPED LINES.
CMS263O.
ELSE,STEP1A.
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1A. 
ELSE,STEP1. 
$NOTE.1+ NO TARGET DI SELECTED. + 
$NOTE.++ USE MENU ITEM 1 TO SELECT.+
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISLS DO=S
.EOF
*WEOR 
.PROC,CMS263Q.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS263Q
.*
.*       STOP AND DOWN ALL LINES
.*
.*    PURPOSE - STOP ALL LINES IN A DI, SET ALL LINES 
.*              TO DOWN.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2639 
.*
.*    PROCEDURES CALLED - CMS2600, CMS2603, CMS2604, CMS2606, 
.*                        CMS263O 
.*
.* ---------------------------------------------------- 
.*
IF,FILE(ZZZDI,LO),STEP1.
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           DISLS DO=S 
CMS2600,ZZZTMP1.
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP1A. 
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
.*   CHECK FOR NO LINES DEFINED 
FSE,ZZZTMP1,OP=A,L=TRASH,I=ZZZTMP4. 
RETURN,TRASH. 
IF,FILE(ZZZSGL1,LO),STEP2.
.*   DOWN ALL PORTS WITH STOPPED LINES
CMS263O.
ELSE,STEP2. 
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   REQUEST USER APPROVAL TO CONTINUE. 
IF,SL.EQ.LINE,STEP4.
CMS2604.
ELSE,STEP4. 
CMS2604?. 
ENDIF,STEP4.
.*   CHECK IF APPROVAL WAS GIVEN. 
IF,FILE(ZZZSGL1,LO),STEP3.
FSE,FN=ZZZTMP1,OP=A,L=TRASH,IP=ZZZTMP2,I=ZZZTMP3. 
RETURN,TRASH. 
REWIND,ZZZCMDS,ZZZTMP1. 
COPYBR,ZZZTMP1,ZZZCMDS. 
REWIND,ZZZCMDS. 
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           STOL LN=XXX
CMS2600,ZZZTMP1.
.*   DOWN ALL PORTS WITH STOPPED LINES
CMS263O.
ENDIF,STEP3.
ENDIF,STEP2.
ELSE,STEP1A.
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1A. 
ELSE,STEP1. 
$NOTE.1+ NO TARGET DI SELECTED. + 
$NOTE.++ USE MENU ITEM 1 TO SELECT.+
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISLS DO=S
.EOF
.DATA,ZZZTMP2.
PROC1 
L/DEVICE NAME/Q;DFCQ
QP
PROC1A
DBQ;PNQ;-PROC1A 
QP
PROC2 
.P32;.S;DCQ;PNQ;-PROC2
QP
PROC3 
.I/STOL LN=/;PNQ;-PROC3 
QP
.EOF
.DATA,ZZZTMP3 
PFQ 
-PROC1
PFQ 
-PROC1A 
PFQ 
-PROC2
PFQ 
-PROC3
QQ
.EOF
.DATA,ZZZTMP4 
PFQ;L/NO LINES DEFINED/Q;FSE ZZZSGL1;I/NO LINES DEFINED/
QQ
.EOF
*WEOR 
.PROC,CMS263R.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS263R
.*
.*       SET ALL LIMS TO UP AND START ALL LINES 
.*
.*    PURPOSE - SET ALL LINES IN A DI TO ON AND START ALL 
.*              DEFINED LINES.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2639 
.*
.*    PROCEDURES CALLED - CMS2600, CMS2603, CMS2606,
.*                        CMS263T 
.*
.* ---------------------------------------------------- 
.*
IF,FILE(ZZZDI,LO),STEP1.
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           DISLS DO=S LS=D
CMS2600,ZZZTMP1.
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP1A. 
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
.*   CHECK FOR NO LINES DEFINED OR DISABLED.
FSE,ZZZTMP1,OP=A,L=TRASH,I=ZZZTMP4. 
RETURN,TRASH. 
IF,FILE(ZZZSGL1,LO),STEP2.
$NOTE.1+ NO LINES TO START. + 
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ELSE,STEP2. 
.*   MAKE START LINE COMMANDS FOR ALL STOPPED LINES 
FSE,FN=ZZZTMP1,OP=A,L=TRASH,IP=ZZZTMP2,I=ZZZTMP3. 
RETURN,TRASH. 
REWIND,ZZZTMP1,ZZZ263R. 
COPYBR,ZZZTMP1,ZZZ263R. 
.*  SET ALL LIMS TO ON. 
CMS263T,FALSE.
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
REWIND,ZZZTMP5,ZZZCMDS. 
COPYBR,ZZZTMP5,ZZZCMDS. 
CMS2600,ZZZTMP1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU 
.*           DISHS DO=E 
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP1B. 
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
.*   CHECK FOR NO PORTS TO CHANGE TO ON.
FSE,ZZZTMP1,OP=A,L=TRASH,I=ZZZTMP6. 
RETURN,TRASH. 
IF,FILE(ZZZSGL1,LO),STEP1C. 
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   MAKE CHAES COMMAND FOR ALL DOWN PORTS. 
FSE,ZZZTMP1,OP=A,L=TRASH,IP=ZZZTMP7,I=ZZZTMP8.
RETURN,TRASH. 
IF,FILE(ZZZSGL1,LO),STEP1D. 
REWIND,ZZZTMP1,ZZZCMDS. 
COPYBR,ZZZTMP1,ZZZCMDS. 
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
CMS2600,ZZZTMP1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           CHAES $LIMX_PORTY S=ON.
ENDIF,STEP1D. 
ENDIF,STEP1C. 
ENDIF,STEB1B. 
REWIND,ZZZCMDS,ZZZ263R. 
COPYBR,ZZZ263R,ZZZCMDS. 
REWIND,ZZZCMDS. 
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           STAL LN=XXX
CMS2600.
ENDIF,STEP2.
ELSE,STEP1A.
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1A. 
ELSE,STEP1. 
$NOTE.1+ NO TARGET DI SELECTED. + 
$NOTE.++ USE MENU ITEM 1 TO SELECT.+
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISLS DO=S LS=D 
.EOF
.DATA,ZZZTMP2.
PROC1 
L/DEVICE NAME/Q;DFCQ
QP
PROC2 
DBQ;PNQ;-PROC2
QP
PROC3 
.P32;.S;DCQ;PNQ;-PROC3
QP
PROC4 
.I/STAL LN=/;PNQ;-PROC4 
QP
.EOF
.DATA,ZZZTMP3 
PFQ 
-PROC1
PFQ 
-PROC2
PFQ 
-PROC3
PFQ 
-PROC4
QQ
.EOF
.DATA,ZZZTMP4 
PFQ;L/NO LINES DEFINED/Q;FSE ZZZSGL1;I/NO LINES DEFINED/
PFQ;L/NO DISABLED LINES/Q;FSE ZZZSGL1;I/NO DISABLED LINES/
QQ
.EOF
.DATA,ZZZTMP5.
DISHS DO=E DN=($LIM0,$LIM1,$LIM2,$LIM3,$LIM4,$LIM5,$LIM6,$LIM7) 
.EOF
.DATA,ZZZTMP6.
PFQ;L/DOWN/Q;FSE ZZZSGL1;I/DOWN LIM EXISTS/ 
QQ
.EOF
.DATA,ZZZTMP7.
PROC1 
L/DEVICE NAME/Q;DFCQ
QP
PROC1A
DBQ;PNQ;-PROC1A 
QP
PROC1B
L/DEVICE NAME/Q;DCQ;PNQ;-PROC1B 
QP
PROC2 
PFQ;L/$LIM0 /Q;DCQ
PFQ;L/$LIM1 /Q;DCQ
PFQ;L/$LIM2 /Q;DCQ
PFQ;L/$LIM3 /Q;DCQ
PFQ;L/$LIM4 /Q;DCQ
PFQ;L/$LIM5 /Q;DCQ
PFQ;L/$LIM6 /Q;DCQ
PFQ;L/$LIM7 /Q;DCQ
PFQ;L/$URI0 /Q;DCQ
PFQ;L/$URI1 /Q;DCQ
PFQ;L/$URI2 /Q;DCQ
PFQ;L/$URI3 /Q;DCQ
PFQ;L/$URI4 /Q;DCQ
PFQ;L/$URI5 /Q;DCQ
PFQ;L/$URI6 /Q;DCQ
PFQ;L/$URI7 /Q;DCQ
QP
PROC3 
L/ OFF /Q;DCQ;PNQ;-PROC3
QP
PROC4 
L/ ON /Q;DCQ;PNQ;-PROC4 
QP
PROC5 
L/$URI/Q;DCQ;PNQ;-PROC5 
QP
PROC6 
.P12;.S;DCQ;PNQ;-PROC6
QP
PROC7 
.I/CHAES S=ON DN=/;PNQ;-PROC7 
QP
PROC8 
L/LIM/Q;FSE ZZZSGL1;I/PORTS EXIST/
QP
.EOF
.DATA,ZZZTMP8.
PFQ 
-PROC1
PFQ 
-PROC1A 
PFQ 
-PROC1B 
PFQ 
-PROC2
PFQ 
-PROC3
PFQ 
-PROC4
PFQ 
-PROC5
PFQ 
-PROC6
PFQ 
-PROC7
PFQ 
-PROC8
QQ
.EOF
*WEOR 
.PROC,CMS263S.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS263S
.*
.*       DOWN ALL LIMS
.*
.*    PURPOSE - SET ALL LIMS IN A CDCNET DI TO DOWN.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2639 
.*
.*    PROCEDURES CALLED - CMS2600, CMS2603, CMS2606 
.*
.* ---------------------------------------------------- 
.*
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           DISHS DO=S DN=($LIM0,$LIM1,$LIM2,$LIM3,$LIM4,$LIM5,$LIM6,$LIM7)
CMS2600,ZZZTMP1.
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP1.
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
.*   MAKE CHAES COMMANDS FOR ALL DOWN LIMS
FSE,FN=ZZZTMP1,OP=A,L=TRASH,IP=ZZZTMP2,I=ZZZTMP3. 
RETURN,TRASH. 
IF,FILE(ZZZSGL1,LO),STEP2.
REWIND,ZZZCMDS,ZZZTMP1. 
COPYBR,ZZZTMP1,ZZZCMDS. 
REWIND,ZZZCMDS. 
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           CHAES S=DOWN DN=XXX
CMS2600.
ELSE,STEP2. 
$NOTE.1+ NO LIMS TO DOWN. + 
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP2.
ELSE,STEP1. 
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISHS DO=S DN=($LIM0,$LIM1,$LIM2,$LIM3,$LIM4,$LIM5,$LIM6,$LIM7) 
.EOF
.DATA,ZZZTMP2.
PROC1 
L/DEVICE NAME/Q;DFCQ
QP
PROC1A
DBQ;PNQ;-PROC1A 
QP
PROC2 
L/NOT INSTALLED/Q;DCQ;PNQ;-PROC2
QP
PROC3 
L/OFF/Q;DCQ;PNQ;-PROC3
QP
PROC4 
.P12;.S;DCQ;PNQ;-PROC4
QP
PROC5 
.I/CHAES S=DOWN DN=/;PNQ;-PROC5 
QP
PROC6 
L/LIM/Q;FSE ZZZSGL1;I/LINES DEFINED/
QP
.EOF
.DATA,ZZZTMP3.
PFQ 
-PROC1
PFQ 
-PROC1A 
PFQ 
-PROC2
PFQ 
-PROC3
PFQ 
-PROC4
PFQ 
-PROC5
PFQ 
-PROC6
QQ
.EOF
*WEOR 
.PROC,CMS263T,DISPLAY=TRUE. 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS263T
.*
.*       ON ALL LIMS
.*
.*    PURPOSE - SET ALL LIMS IN A CDCNET DI TO ON.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2639, CMS263R
.*
.*    PROCEDURES CALLED - CMS2600, CMS2603, CMS2606 
.*
.* ---------------------------------------------------- 
.*
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           DISHS DO=S DN=($LIM0,$LIM1,$LIM2,$LIM3,$LIM4,$LIM5,$LIM6,$LIM7)
CMS2600,ZZZTMP1.
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP1.
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
.* MAKE CHAES COMMANDS FOR ALL DOWN LIMS
FSE,FN=ZZZTMP1,OP=A,L=TRASH,IP=ZZZTMP2,I=ZZZTMP3. 
RETURN,TRASH. 
IF,FILE(ZZZSGL1,LO),STEP2.
REWIND,ZZZCMDS,ZZZTMP1. 
COPYBR,ZZZTMP1,ZZZCMDS. 
REWIND,ZZZCMDS. 
IF,$DISPLAY$.EQ.$TRUE$,STEP3. 
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
ELSE,STEP3. 
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
.*           CHAES S=ON DN=XXX
CMS2600,ZZZTMP1.
ENDIF,STEP3.
ELSE,STEP2. 
$NOTE.1+ NO LIMS TO SET TO ON. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP2.
ELSE,STEP1. 
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISHS DO=S DN=($LIM0,$LIM1,$LIM2,$LIM3,$LIM4,$LIM5,$LIM6,$LIM7) 
.EOF
.DATA,ZZZTMP2.
PROC1 
L/DEVICE NAME/Q;DFCQ;PLQ;DBQ
QP
PROC1A
DBQ;PNQ;-PROC1A 
QP
PROC2 
L/NOT INSTALLED/Q;DCQ;PNQ;-PROC2
QP
PROC3 
L/OFF/Q;DCQ;PNQ;-PROC3
QP
PROC4 
.P12;.S;DCQ;PNQ;-PROC4
QP
PROC5 
.I/CHAES S=ON DN=/;PNQ;-PROC5 
QP
PROC6 
L/LIM/Q;FSE ZZZSGL1;I/LINES DEFINED/
QP
.EOF
.DATA,ZZZTMP3.
PFQ 
-PROC1
PFQ 
-PROC1A 
PFQ 
-PROC2
PFQ 
-PROC3
PFQ 
-PROC4
PFQ 
-PROC5
PFQ 
-PROC6
QQ
.EOF
*WEOR 
.PROC,CMSI264*M"CMSI - CDCNET DIAGNOSTICS - CMSI264", 
OPT264= 
 (1"SELECT A DI TO USE",
  2"RUN CIM TEST",
  3"RUN ESCI TEST", 
  4"RUN LIM TEST",
  5"RUN MCI INLINE TEST", 
  6"RUN MCI ONLINE TEST", 
  7"RUN PORT TEST (INTERNAL LOOPBACK)", 
  8"RUN PORT TEST (EXTERNAL/MODEM LOOPBACK)", 
  9"RUN URI TEST",
  10"MORE CDCNET DIAGNOSTICS",
  11"DISPLAY TEST STATUS",
  12"DISPLAY HARDWARE STATUS",
  13"--------------- RETURN TO PREVIOUS CMSI MENU" ). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI264
.*
.*      CDCNET DIAGNOSTICS
.*
.*    PURPOSE - PROVIDE USER INTERFACE TO THE CDCNET DIAGNOSTICS
.*
.*    PARAMETERS - OPT264 
.*
.*    CALLED BY - CMSI260 
.*
.*    PROCEDURES CALLED - CMS2641, CMS2642, CMS2643, CMS2644
.*                        CMS2645, CMS2646, CMS2647, CMS2648
.*                        CMS2649, CMS2640, CMSI262 
.*
.* ---------------------------------------------------- 
.*
.*
.PROMPT,CMSI264> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.*
.HELP,,NOLIST.
  
     THIS MENU PROVIDES SELECTIONS TO EXECUTE ON-LINE DIAGNOSTICS ON THE
     ELEMENTS OF A CDCNET NETWORK.
  
.HELP,1,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF DEVICE INTERFACE SELECTIONS.  THESE
     OPTIONS ALLOW THE USER TO SELECT WHICH DI IN THE CATENET IS TO BE THE
     TARGET OF THE ACTIONS INDICATED BY THE REST OF THE CMSI/CDCNET 
     MENUS AND TO SELECT AN MDI ON THE HOST MAINFRAME WHERE CMSI IS EXECUTING 
     TO INTERFACE WITH THE NETWORK.  A DISPLAY OF ALL DEVICE INTERFACES IN
     A CATENET IS ALSO PROVIDED.
  
.HELP,2,NOLIST. 
  
     THIS SELECTION WILL EXECUTE THE ON-LINE CIM DIAGNOSTIC ON A DESIGNATED 
     CIM BOARD AND ANY CONNECTED LIM BOARDS IN THE SELECTED DEVICE INTERFACE. 
     THE BOARD TO BE TESTED MUST BE IN A DOWN STATE.
  
.HELP,3,NOLIST. 
  
     THIS SELECTION WILL EXECUTE THE ON-LINE ESCI DIAGNOSTIC ON A DESIGNATED
     ESCI BOARD AND CONNECTED CABLE AND TRANSCEIVER.  THE BOARD TO BE TESTED
     MUST BE IN A DOWN STATE. 
  
.HELP,4,NOLIST. 
  
     THIS SELECTION WILL EXECUTE THE ON-LINE LIM DIAGNOSTIC ON A DESIGNATED 
     LIM BOARD.  THE BOARD TO BE TESTED MUST BE IN A DOWN STATE.
  
.HELP,5,NOLIST. 
  
     THIS SELECTION WILL EXECUTE THE IN-LINE MCI DIAGNOSTIC ON A DESIGNATED 
     MCI BOARD.  THE BOARD MUST BE ON AND ACTIVE. 
  
.HELP,6,NOLIST. 
  
     THIS SELECTION WILL EXECUTE THE ON-LINE MCI DIAGNOSTIC ON A DESIGNATED 
     MCI BOARD.  THE BOARD TO BE TESTED MUST BE IN A DOWN STATE.
  
.HELP,7,NOLIST. 
  
     THIS SELECTION WILL EXECUTE THE ON-LINE PORT DIAGNOSTIC WITH INTERNAL
     LOOPBACK ON A DESIGNATED LIM PORT.  THE PORT TO BE TESTED MUST BE IN 
     A DOWN STATE.
  
.HELP,8,NOLIST. 
  
     THIS SELECTION WILL EXECUTE THE ON-LINE PORT DIAGNOSTIC WITH EXTERNAL OR 
     MODEM LOOPBACK ON A DESIGNATED LIM PORT.  THE PORT TO BE TESTED MUST BE
     IN A DOWN STATE. 
  
.HELP,9,NOLIST. 
  
     THIS SELECTION WILL EXECUTE THE ON-LINE URI DIAGNOSTIC ON A DESIGNATED 
     URI BOARD.  THE BOARD TO BE TESTED MUST BE IN A DOWN STATE.
  
.HELP,10,NOLIST.
  
     THIS SELECTION WILL PROVIDE A MENU OF OPTIONS FOR EXECUTION OF DIAGNOSTICS 
     ON MULTIPLE ELEMENTS IN THE SELECTED DEVICE INTERFACE. 
  
.HELP,11,NOLIST.
  
     THIS SELECTION WILL DISPLAY THE RESULTS OF THE LAST TEST RUN ON A
     DEVICE IN THE SELECTED DEVICE INTERFACE. 
  
.HELP,12,NOLIST.
  
     THIS SELECTION WILL DISPLAY THE HARDWARE STATUS OF ALL DEVICES IN THE DI.
  
.HELP,13,NOLIST 
  
     USE THIS OPTION TO RETURN TO THE PREVIOUS CMSI MENU. 
  
.ENDHELP. 
.*
.*   PROCESS THE USERS MENU SELECTION.
.*
IF,OPT264.EQ.1.CMSI262. 
IF,OPT264.EQ.2.CMS2642. 
IF,OPT264.EQ.3.CMS2643. 
IF,OPT264.EQ.4.CMS2644. 
IF,OPT264.EQ.5.CMS2645. 
IF,OPT264.EQ.6.CMS2646. 
IF,OPT264.EQ.7.CMS2647. 
IF,OPT264.EQ.8.CMS2648. 
IF,OPT264.EQ.9.CMS2649. 
IF,OPT264.EQ.10.CMS2640.
IF,OPT264.EQ.11.CMS2650.
IF,OPT264.EQ.12.CMS2654.
.*
IF,OPT264.EQ.13.$REVERT,NOLIST. 
.*
$REVERT,EX.CMSI264. 
$EXIT.
.*   DETERMINE IF THE NEXT LEVEL MENU WAS IN EXECUTION. 
IF,OPT264.NE.10,EXIT1.
.*   DETERMINE IF A QUIT FUNCTION KEY WAS ENTERED.
IF,EF.EQ.CPE,EXIT2. 
$REVERT,EX.CMSI264. 
ENDIF,EXIT2.
ENDIF,EXIT1.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.EOF
*WEOR 
.PROC,CMS2640*M"CMSI - CDCNET DIAGNOSTICS - CMS2640", 
OPT2640=
 (1"SELECT A DI TO USE",
  2"PERFORM DI CONFLICT TESTING", 
  3"PERFORM LIM/PORT CONFLICT TESTING", 
  4"EXECUTE A TERMINAL/LINE ECHO TEST", 
  5"SEND TEST FILE TO A PRINTER", 
  6"SEND MESSAGE TO A TERMINAL/LIM PORT", 
  9"--------------- RETURN TO PREVIOUS CMSI MENU" ).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2640
.*
.*      CDCNET DIAGNOSTICS
.*
.*    PURPOSE - PROVIDE USER INTERFACE TO THE CDCNET DIAGNOSTICS
.*
.*    PARAMETERS - OPT2640
.*
.*    CALLED BY - CMSI264 
.*
.*    PROCEDURES CALLED - CMS264A, CMS264B, CMS264C, CMS264D
.*                        CMS264E, CMSI262
.*
.* ---------------------------------------------------- 
.*
.*
.PROMPT,CMS2640> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.*
.HELP,,NOLIST.
  
     THIS MENU PROVIDES OPTIONS TO EXECUTE DIAGNOSTICS ON MULTIPLE ELEMENTS 
     IN THE SELECTED DEVICE INTERFACE.  ONLY ELEMENTS IN THE DOWN STATE WILL
     BE INCLUDED IN THE SET SELECTED FOR TESTING.  IT ALSO PROVIDES DI
     GENERIC ACTIONS SUCH AS SENDING MESSAGES TO TERMINALS. 
  
.HELP,1,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF DEVICE INTERFACE SELECTIONS.  THESE
     OPTIONS ALLOW THE USER TO SELECT WHICH DI IN THE CATENET IS TO BE THE
     TARGET OF THE ACTIONS INDICATED BY THE REST OF THE CMSI/CDCNET 
     MENUS AND TO SELECT AN MDI ON THE HOST MAINFRAME WHERE CMSI IS EXECUTING 
     TO INTERFACE WITH THE NETWORK.  A DISPLAY OF ALL DEVICE INTERFACES IN
     A CATENET IS ALSO PROVIDED.
  
.HELP,2,NOLIST. 
  
     THIS SELECTION WILL EXECUTE THE APPROPRIATE DIAGNOSTIC FOR EACH LARGE
     BOARD IN THE SELECTED DEVICE INTERFACE WHICH IS IN THE DOWN STATE. 
     100 PASSES OF THE DIAGNOSTIC WILL BE PERFORMED.  THE INTENT OF THIS IS 
     TO CAUSE THE SIMULTANEOUS EXECUTION OF AS MANY DIAGNOSTICS AS POSSIBLE.
     NOTE: THIS ONLY INCLUDES CIM, ESCI, AND MCI BOARDS.
  
.HELP,3,NOLIST. 
  
     THIS SELECTION WILL EXECUTE THE PORT DIAGNOSTIC (INTERNAL LOOPBACK) FOR
     EACH LIM PORT IN THE SELECTED DEVICE INTERFACE WHICH IS IN THE DOWN STATE. 
     100 PASSES OF THE DIAGNOSTIC WILL BE PERFORMED.  THE INTENT OF THIS IS 
     TO CAUSE THE SIMULTANEOUS EXECUTION OF AS MANY DIAGNOSTICS AS POSSIBLE.
  
.HELP,4,NOLIST. 
  
     THIS SELECTION WILL SEND A TEST MESSAGE TO A TERMINAL ON A DESIGNATED
     LIN IN THE SELECTED DEVICE INTERFACE.  THE MESSAGE WILL PROMPT THE 
     USER ON THAT TERMINAL TO ENTER A TEST MESSAGE TO THE NETWORK OPERATOR. 
     THIS TEST MESSAGE WILL BE VALIDATED AND ANY ERRORS DISPLAYED.
  
.HELP,5,NOLIST. 
  
     THIS SELECTION WILL SEND A TEST PRINT FILE TO A DESIGNATED PRINTER.
  
.HELP,6,NOLIST. 
  
     THIS SELECTION WILL PERMIT THE USER TO SEND A MESSAGE TO THE TERMINAL
     ON A SPECIFIC CDCNET LINE IN THE SELECTED DEVICE INTERFACE.  THE LINE
     SPECIFIED MUST BE STARTED AND ACTIVE.
  
.HELP,9,NOLIST
  
     USE THIS OPTION TO RETURN TO THE PREVIOUS CMSI MENU. 
  
.ENDHELP. 
.*
.*   PROCESS THE USERS MENU SELECTION.
.*
IF,OPT2640.EQ.1.CMSI262.
IF,OPT2640.EQ.2.CMS264A.
IF,OPT2640.EQ.3.CMS264B.
IF,OPT2640.EQ.4.CMS264C.
IF,OPT2640.EQ.5.CMS264D.
IF,OPT2640.EQ.6.CMS264E.
.*
IF,OPT2640.EQ.9.$REVERT,NOLIST. 
.*
$REVERT,EX.CMS2640. 
$EXIT.
.*   DETERMINE IF A QUIT FUNCTION KEY WAS ENTERED.
IF,EF.EQ.CPE,EXIT1. 
$REVERT,EX.CMS2640. 
ELSE,EXIT1. 
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
ENDIF,EXIT1.
$REVERT,NOLIST. 
.EOF
*WEOR 
.PROC,CMS2642*I"CMSI - EXECUTE CIM TEST - CMS2642", 
DEVICE"NAME FOR CIM TEST"=(*A1..5). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2642
.*
.*       CIM TEST 
.*
.*    PURPOSE - EXECUTE THE CDCNET DI CIM TEST
.*
.*    PARAMETERS - DEVICE 
.*
.*    CALLED BY - CMS264
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL EXECUTE THE ON-LINE CIM DIAGNOSTIC ON A DESIGNATED 
     CIM BOARD AND ANY CONNECTED LIM BOARDS IN THE SELECTED DEVICE INTERFACE. 
     THE BOARD TO BE TESTED MUST BE IN A DOWN STATE.
  
.HELP,DEVICE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE CIM BOARD TO EXECUTE THE TEST ON. 
     IT SHOULD BE IN THE FORM, $CIMX, WHERE X IS THE LOCATION OF THE
     BOARD IN THE DI. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
CMS2607.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
STACT DN=DEVICE SS=DOWN 
.EOF
.DATA,ZZZTMP2.
DISTS DN=DEVICE DO=E
.EOF
*WEOR 
.PROC,CMS2643*I"CMSI - EXECUTE ESCI TEST - CMS2643",
DEVICE"NAME FOR ESCI TEST"=(*A1..6).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2643
.*
.*       ESCI TEST
.*
.*    PURPOSE - EXECUTE THE CDCNET DI ESCI TEST 
.*
.*    PARAMETERS - DEVICE 
.*
.*    CALLED BY - CMS264
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL EXECUTE THE ON-LINE ESCI DIAGNOSTIC ON A DESIGNATED
     ESCI BOARD AND CONNECTED CABLE AND TRANSCEIVER.  THE BOARD TO BE TESTED
     MUST BE IN A DOWN STATE. 
  
.HELP,DEVICE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE ESCI BOARD TO EXECUTE THE TEST ON.
     IT SHOULD BE IN THE FORM, $ESCIX, WHERE X IS THE LOCATION OF THE 
     BOARD IN THE DI. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
CMS2607.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
STAET DN=DEVICE SS=DOWN 
.EOF
.DATA,ZZZTMP2.
DISTS DN=DEVICE DO=E
.EOF
*WEOR 
.PROC,CMS2644*I"CMSI - EXECUTE LIM TEST - CMS2644", 
DEVICE"NAME FOR LIM TEST"=(*A1..5). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2644
.*
.*       LIM TEST 
.*
.*    PURPOSE - EXECUTE THE CDCNET DI LIM TEST
.*
.*    PARAMETERS - DEVICE 
.*
.*    CALLED BY - CMS264
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL EXECUTE THE ON-LINE LIM DIAGNOSTIC ON A DESIGNATED 
     LIM BOARD.  THE BOARD TO BE TESTED MUST BE IN A DOWN STATE.
  
.HELP,DEVICE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE LIM BOARD TO EXECUTE THE TEST ON. 
     IT SHOULD BE IN THE FORM, $LIMX, WHERE X IS THE LOCATION OF THE
     BOARD IN THE DI. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
CMS2607.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
STALT DN=DEVICE SS=DOWN 
.EOF
.DATA,ZZZTMP2.
DISTS DN=DEVICE DO=E
.EOF
*WEOR 
.PROC,CMS2645*I"CMSI - EXECUTE MCI INLINE TEST - CMS2645",
DEVICE"NAME FOR MCI INLINE TEST"=(*A1..5).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2645
.*
.*       MCI (INLINE) TEST
.*
.*    PURPOSE - EXECUTE THE CDCNET DI MCI(INLINE) TEST
.*
.*    PARAMETERS - DEVICE 
.*
.*    CALLED BY - CMS264
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL EXECUTE THE IN-LINE MCI DIAGNOSTIC ON A DESIGNATED 
     MCI BOARD. 
  
.HELP,DEVICE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE MCI BOARD TO EXECUTE THE TEST ON. 
     IT SHOULD BE IN THE FORM, $MCIX, WHERE X IS THE LOCATION OF THE
     BOARD IN THE DI. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
CMS2607.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
STAMIT DN=DEVICE
.EOF
.DATA,ZZZTMP2.
DISTS DN=DEVICE DO=E
.EOF
*WEOR 
.PROC,CMS2646*I"CMSI - EXECUTE MCI ONLINE TEST - CMS2646",
DEVICE"NAME FOR MCI ONLINE TEST"=(*A1..5).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2646
.*
.*       MCI TEST (ONLINE)
.*
.*    PURPOSE - EXECUTE THE CDCNET DI MCI (ONLINE) TEST 
.*
.*    PARAMETERS - DEVICE 
.*
.*    CALLED BY - CMS264
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL EXECUTE THE ON-LINE MCI DIAGNOSTIC ON A DESIGNATED 
     MCI BOARD.  THE BOARD TO BE TESTED MUST BE IN A DOWN STATE.
  
.HELP,DEVICE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE MCI BOARD TO EXECUTE THE TEST ON. 
     IT SHOULD BE IN THE FORM, $MCIX, WHERE X IS THE LOCATION OF THE
     BOARD IN THE DI. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
CMS2607.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
STAMT DN=DEVICE SS=DOWN 
.EOF
.DATA,ZZZTMP2.
DISTS DN=DEVICE DO=E
.EOF
*WEOR 
.PROC,CMS2647*I"CMSI - EXECUTE PORT TEST (INTERNAL LOOPBACK) - CMS2647",
DEVICE"NAME FOR PORT TEST(INTERNAL LOOPBACK)"=(*A1..11).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2647
.*
.*       PORT TEST (INTERNAL LOOPBACK)
.*
.*    PURPOSE - EXECUTE THE CDCNET DI PORT (INTERNAL LOOPBACK) TEST 
.*
.*    PARAMETERS - DEVICE 
.*
.*    CALLED BY - CMS264
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL EXECUTE THE ON-LINE PORT DIAGNOSTIC WITH INTERNAL
     LOOPBACK ON A DESIGNATED LIM PORT.  THE PORT TO BE TESTED MUST BE IN 
     A DOWN STATE.
  
.HELP,DEVICE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE PORT TO EXECUTE THE TEST ON.
     IT SHOULD BE IN THE FORM, $LIMX_PORTY, WHERE X IS THE LOCATION OF THE
     BOARD IN THE DI AND Y IS THE PORT ON THE LIM.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
CMS2607.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
STAPT DN=DEVICE RP=10 SS=DOWN LM=I
.EOF
.DATA,ZZZTMP2.
DISTS DN=DEVICE DO=E
.EOF
*WEOR 
.PROC,CMS2648*I"CMSI - EXECUTE PORT TEST (EXTERNAL/MODEM LOOPBACK) - CMS2648",
DEVICE"NAME FOR PORT TEST"=(*A1..11), 
LOOP"MODE (EXTERNAL OR MODEM)"=(*S5..8(ADELMNORTX)),
MODEM"CLASS (1..6)"=(*S0..1(123456)). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2648
.*
.*       PORT TEST (EXTERNAL/MODEM LOOPBACK)
.*
.*    PURPOSE - EXECUTE THE CDCNET DI PORT (EXTERNAL/MODEM LOOPBACK) TEST 
.*
.*    PARAMETERS - DEVICE, LOOP, MODEM
.*
.*    CALLED BY - CMS264
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL EXECUTE THE ON-LINE PORT DIAGNOSTIC WITH EXTERNAL OR 
     MODEM LOOPBACK ON A DESIGNATED LIM PORT.  THE PORT TO BE TESTED MUST BE
     IN A DOWN STATE AND A LOOPBACK PLUG OR EXTERNAL MODEM WITH LOOPBACK
     ENABLED MUST BE IN PLACE.
  
.HELP,DEVICE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE PORT TO EXECUTE THE TEST ON.
     IT SHOULD BE IN THE FORM, $LIMX_PORTY, WHERE X IS THE LOCATION OF THE
     BOARD IN THE DI AND Y IS THE PORT ON THE LIM.
  
.HELP,LOOP,NOLIST.
  
     THIS ITEM IS LOOP MODE FOR THE DIAGNOSTIC, PERMITTED VALUES ARE
     EXTERNAL AND MODEM.
  
.HELP,MODEM,NOLIST. 
  
     THIS ITEM IS THE MODEM CLASS, PERMITTED VALUES ARE 
  
                    MAX   OP
            CLASS SPEED  MODE 
  
              1 -  2400   SYNC
              2 -   300  ASYNC
              3 -  1200   SYNC
              4 -  1200  ASYNC
              5 - 56000   SYNC
              6 - 19200  ASYNC
  
.ENDHELP. 
.*
REWIND,ZZZCMDS. 
.*   USE MC PARAMETER IF MODEM LOOPBACK SELECTED
IF,$LOOP$.EQ.$#MODEM$,STEP1.
IF,$MODEM$.NE.$$,STEP1A.
COPYBF,ZZZTMP4,ZZZCMDS. 
REWIND,ZZZCMDS. 
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
CMS2607.
ELSE,STEP1A.
$NOTE.++ A #MODEM CLASS MUST BE SELECTED FOR #LOOP MODE OF #MODEM. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1A. 
ELSE,STEP1. 
IF,$LOOP$.EQ.$EXTERNAL$,STEP2.
COPYBF,ZZZTMP3,ZZZCMDS. 
REWIND,ZZZCMDS. 
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
CMS2607.
ELSE,STEP2. 
$NOTE.++ VALUE OF #LOOP MODE MUST BE #EXTERNAL OR #MODEM. + 
$NOTE.++ NOT: LOOP. + 
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP2.
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZTMP2.
DISTS DN=DEVICE DO=E
.EOF
.DATA,ZZZTMP3.
STAPT DN=DEVICE RP=10 SS=DOWN LM=LOOP 
.EOF
.DATA,ZZZTMP4.
STAPT DN=DEVICE RP=10 SS=DOWN LM=LOOP MC=MODEM
.EOF
*WEOR 
.PROC,CMS2649*I"CMSI - EXECUTE URI TEST - CMS2649", 
DEVICE"NAME FOR URI TEST"=(*A1..5). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2649
.*
.*       URI TEST (INTERNAL LOOPBACK) 
.*
.*    PURPOSE - EXECUTE THE CDCNET DI URI TEST
.*
.*    PARAMETERS - DEVICE 
.*
.*    CALLED BY - CMS264
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL EXECUTE THE ON-LINE URI DIAGNOSTIC ON A DESIGNATED 
     URI BOARD.  THE BOARD TO BE TESTED MUST BE IN A DOWN STATE.
  
.HELP,DEVICE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE URI BOARD TO EXECUTE THE TEST ON. 
     IT SHOULD BE IN THE FORM, $URIX, WHERE X IS THE LOCATION OF THE
     BOARD IN THE DI. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
CMS2607.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
STAUT DN=DEVICE SS=DOWN 
.EOF
.DATA,ZZZTMP2.
DISTS DN=DEVICE DO=E
.EOF
*WEOR 
.PROC,CMS264A.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS264A
.*
.*       DI CONFLICT TEST 
.*
.*    PURPOSE - START ONLINE DIAGNOSTIC FOR ALL LARGE DI
.*              BOARDS WHICH ARE NOT ACTIVE.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2640 
.*
.*    PROCEDURES CALLED - CMS2600, CMS2603, CMS2606 
.*
.* ---------------------------------------------------- 
.*
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
.*   CHECK FOR NETOU RESPONSE FILE. 
IF,FILE(ZZZTMP1,PM),STEP1.
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
FSE,FN=ZZZTMP1,OP=A,L=TRASH,IP=ZZZTMP2,I=ZZZTMP3. 
RETURN,TRASH. 
.*   CHECK FOR BOARDS TO TEST.
IF,FILE(ZZZSGL1,LO),STEP2.
.*   BUILD NETOU COMMAND FILE.
REWIND,ZZZCMDS,ZZZTMP1. 
COPYBR,ZZZTMP1,ZZZCMDS. 
REWIND,ZZZCMDS. 
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
ELSE,STEP2. 
$NOTE.1+ NO BOARDS TO TEST WERE FOUND. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP2.
ELSE,STEP1. 
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISHS DO=S
.EOF
.DATA,ZZZTMP2.
PROC1 
L/DEVICE NAME/Q;DFCQ
QP
PROC1A
.P20;.S;DCQ;PNQ;-PROC1A 
QP
PROC2 
L/$MPB/Q;DCQ;PNQ;-PROC2 
QP
PROC3 
L/$PMM/Q;DCQ;PNQ;-PROC3 
QP
PROC4 
L/$SMM/Q;DCQ;PNQ;-PROC4 
QP
PROC5 
L/$LIM/Q;DCQ;PNQ;-PROC5 
QP
PROC5A
L/$URI/Q;DCQ;PNQ;-PROC5A
QP
PROC6 
L/ON/Q;DCQ;PNQ;-PROC6 
QP
PROC7 
L/OFF/Q;DCQ;PNQ;-PROC7
QP
PROC8 
.P12;.S;DCQ;PNQ;-PROC8
QP
PROC9 
.I/STAXX /;PNQ;-PROC9 
QP
PROC10
PFQ;RAQ/STAXX $CIM/STACT SS=DOWN RP=5 DN=$CIM/
PFQ;RAQ/STAXX $MCI/STAMT SS=DOWN RP=20 DN=$MCI/ 
PFQ;RAQ/STAXX $ESCI/STAET SS=DOWN RP=10 DN=$ESCI/ 
QP
PROC11
L/STAXX/Q;DCQ;PNQ;-PROC11 
QP
PROC12
L/STA/Q;FSE ZZZSGL1;I/DEVICES DEFINED/
QP
.EOF
.DATA,ZZZTMP3.
PFQ 
-PROC1
PFQ 
-PROC1A 
PFQ 
-PROC2
PFQ 
-PROC3
PFQ 
-PROC4
PFQ 
-PROC5
PFQ 
-PROC5A 
PFQ 
-PROC6
PFQ 
-PROC7
PFQ 
-PROC8
PFQ 
-PROC9
PFQ 
-PROC10 
PFQ 
-PROC11 
PFQ 
-PROC12 
QQ
.EOF
*WEOR 
.PROC,CMS264B.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS264B
.*
.*       LIM/PORT CONFLICT TEST 
.*
.*    PURPOSE - START TESTS ON ALL INACTIVE LINES 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2640 
.*
.*    PROCEDURES CALLED - CMS2600, CMS2603, CMS2606 
.*
.* ---------------------------------------------------- 
.*
.*   DELETE FILE. 
CMS2606,ZZZTMP1.
.*   DELETE FILE. 
CMS2606,ZZZSGL1.
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600,ZZZTMP1.
FSE,ZZZTMP1,OP=GA,L=TRASH.QQ
RETURN,TRASH. 
IF,FILE(ZZZTMP1,PM),STEP1.
.*   CONVERT FILE CONTENTS TO UPPER CASE. 
CMS2603,ZZZTMP1.
FSE,FN=ZZZTMP1,OP=A,L=TRASH,IP=ZZZTMP2,I=ZZZTMP3. 
RETURN,TRASH. 
IF,FILE(ZZZSGL1,LO),STEP2.
REWIND,ZZZCMDS,ZZZTMP1. 
COPYBR,ZZZTMP1,ZZZCMDS. 
REWIND,ZZZCMDS. 
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
ELSE,STEP2. 
$NOTE.1+ NO LINES TO TEST. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP2.
ELSE,STEP1. 
$NOTE.1+ NO RESPONSE RECEIVED FROM DI. +
$NOTE.++ ENTER (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
ENDIF,STEP1.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISHS DO=E DN=($LIM0,$LIM1,$LIM2,$LIM3,$LIM4,$LIM5,$LIM6,$LIM7) 
.EOF
.DATA,ZZZTMP2.
PROC1 
L/DEVICE NAME/Q;DFCQ
QP
PROC2 
.P20;.S;DCQ;PNQ;-PROC2
QP
PROC3 
L/NOT INSTALLED/Q;DCQ;PNQ;-PROC3
QP
PROC4 
L/ON/Q;DCQ;PNQ;-PROC4 
QP
PROC4A
L/OFF/Q;DCQ;PNQ;-PROC4A 
QP
PROC5 
PFQ 
L/$LIM0 /Q;DCQ
PFQ 
L/$LIM1 /Q;DCQ
PFQ 
L/$LIM2 /Q;DCQ
PFQ 
L/$LIM3 /Q;DCQ
PFQ 
L/$LIM4 /Q;DCQ
PFQ 
L/$LIM5 /Q;DCQ
PFQ 
L/$LIM6 /Q;DCQ
PFQ 
L/$LIM7 /Q;DCQ
PFQ 
L/$URI0 /Q;DCQ
PFQ 
L/$URI1 /Q;DCQ
PFQ 
L/$URI2 /Q;DCQ
PFQ 
L/$URI3 /Q;DCQ
PFQ 
L/$URI4 /Q;DCQ
PFQ 
L/$URI5 /Q;DCQ
PFQ 
L/$URI6 /Q;DCQ
PFQ 
L/$URI7 /Q;DCQ
QP
PROC6 
.P12;.S;DCQ;PNQ;-PROC6
QP
PROC7 
.I/STAXX /;PNQ;-PROC7 
QP
PROC8 
PFQ;RAQ/STAXX $LIM/STAPT SS=DOWN RP=100 DN=$LIM/
PFQ;RAQ/STAXX $URI/STAUT SS=DOWN RP=100 DN=$URI/
QP
PROC9 
L/STAXX/Q;DCQ;PNQ;-PROC9
QP
PROC10
L/LIM/Q;FSE ZZZSGL1;I/LINES DEFINED/
QP
.EOF
.DATA,ZZZTMP3.
PFQ 
-PROC1
PFQ 
-PROC2
PFQ 
-PROC3
PFQ 
-PROC4
PFQ 
-PROC4A 
PFQ 
-PROC5
PFQ 
-PROC6
PFQ 
-PROC7
PFQ 
-PROC8
PFQ 
-PROC9
PFQ 
-PROC10 
QQ
.EOF
*WEOR 
.PROC,CMS264C.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS264C
.*
.*       TERMINAL ECHO TEST 
.*
.*    PURPOSE - SEND A MESSAGE TO A LINE REQUESTING A USER
.*              ENTRY AND VERIFY THE RESPONSE.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2640 
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
.*
$NOTE.1+ OPTION NOT YET IMPLEMENTED. +
$NOTE.++ ENTER A (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMS264D.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS264D
.*
.*       PRINTER TEST 
.*
.*    PURPOSE - SEND A TEST FILE TO A PRINTER 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2640 
.*
.*    PROCEDURES CALLED - NONE
.*
.* ---------------------------------------------------- 
.*
.*
$NOTE.1+ OPTION NOT YET IMPLEMENTED. +
$NOTE.++ ENTER A (CR) TO CONTINUE. +
COPYCR,INPUT,TRASH. 
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMS264E*I"CMSI - SEND MESSAGE TO TERMINAL - CMS264E", 
LINE"NAME FOR MESSAGE"=(*A1..31), 
MESSAGE1" "=(*A1..40),
MESSAGE2" "=(*A), 
MESSAGE3" "=(*A). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS264E
.*
.*       SEND MESSAGE 
.*
.*    PURPOSE - SEND A MESSAGE TO A SPECIFIC LINE.
.*
.*    PARAMETERS - MESSAGE1, MESSAGE2, MESSAGE3 
.*
.*    CALLED BY - CMSI264 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL PERMIT THE USER TO SEND A MESSAGE TO THE TERMINAL
     ON A SPECIFIC CDCNET LINE IN THE SELECTED DEVICE INTERFACE.
  
.HELP,LINE,NOLIST.
  
     THIS ITEM IS THE LOGICAL NAME OF THE LINE ON WHICH TO SEND THE MESSAGE.
  
.HELP,MESSAGE1,NOLIST.
  
     THIS IS THE TEXT FOR THE FIRST LINE OF THE MESSAGE.
  
.HELP,MESSAGE2,NOLIST.
  
     THIS IS THE TEXT FOR THE SECOND LINE OF THE MESSAGE. 
  
.HELP,MESSAGE3,NOLIST.
  
     THIS IS THE TEXT FOR THE THIRD LINE OF THE MESSAGE.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
WRITM LN=LINE M=('MESSAGE1','MESSAGE2','MESSAGE3')
.EOF
*WEOR 
.PROC,CMSI265*M"CMSI - CDCNET STATUS DISPLAYS - CMSI265", 
OPT265= 
 (1"SELECT A DI TO USE",
  2"DISPLAY DIRECTORY STATUS",
  3"DISPLAY DI SYSTEM STATUS",
  4"DISPLAY HARDWARE STATUS", 
  5"DISPLAY LINE STATUS (SUMMARY)", 
  6"DISPLAY LINE STATUS (DETAILED)",
  7"DISPLAY LINE STATUS (SINGLE LINE)", 
  8"DISPLAY LOGICAL NAMES", 
  9"DISPLAY NETWORK STATUS",
  10"DISPLAY TEST STATUS (SINGLE DEVICE)",
  11"DISPLAY TEST STATUS (ALL DEVICES)",
  12"--------------- RETURN TO PREVIOUS CMSI MENU" ). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI265
.*
.*      CDCNET STATUS DISPLAYS
.*
.*    PURPOSE - PROVIDE USER INTERFACE TO THE CDCNET
.*              STATUS DISPLAYS.
.*
.*    PARAMETERS - OPT265 
.*
.*    CALLED BY - CMSI260 
.*
.*    PROCEDURES CALLED - CMS2651 , CMS2652 , CMS2653 , CMS2654 
.*                        CMS2655 , CMS2656 , CMS2657 , CMS2658 
.*                        CMS2659 , CMS2650 , CMSI262 
.*
.* ---------------------------------------------------- 
.*
.*
.PROMPT,CMSI265> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION PROVIDES A MENU OF STATUS DISPLAYS WHICH MAY BE PRODUCED
     FROM A DEVICE INTERFACE. 
  
.HELP,1,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF DEVICE INTERFACE SELECTIONS.  THESE
     OPTIONS ALLOW THE USER TO SELECT WHICH DI IN THE CATENET IS TO BE THE
     TARGET OF THE ACTIONS INDICATED BY THE REST OF THE CMSI/CDCNET 
     MENUS AND TO SELECT AN MDI ON THE HOST MAINFRAME WHERE CMSI IS EXECUTING 
     TO INTERFACE WITH THE NETWORK.  A DISPLAY OF ALL DEVICE INTERFACES IN
     A CATENET IS ALSO PROVIDED.
  
.HELP,2,NOLIST. 
  
     THIS SELECTION WILL DISPLAY THE SYSTEM STATUS OF THE SELECTED DEVICE 
     INTERFACE. 
  
.HELP,3,NOLIST. 
  
     THIS SELECTION WILL DISPLAY THE DIRECTORY STATUS OF THE SELECTED 
     DEVICE INTERFACE.
  
.HELP,4,NOLIST. 
  
     THIS SELECTION WILL DISPLAY THE HARDWARE STATUS OF ALL DEVICES IN THE
     SELECTED DEVICE INTERFACE. 
  
.HELP,5,NOLIST. 
  
     THIS SELECTION WILL DISPLAY A SUMMARY STATUS OF ALL LINES IN THE SELECTED
     DEVICE INTERFACE.
  
.HELP,6,NOLIST. 
  
     THIS SELECTION WILL DISPLAY THE EXTENDED STATUS OF ALL LINES IN THE
     SELECTED DEVICE INTERFACE. 
  
.HELP,7,NOLIST. 
  
     THIS SELECTION WILL DISPLAY THE STATUS OF A SPECIFIC LINE IN THE SELECTED
     DEVICE INTERFACE.
  
.HELP,8,NOLIST. 
  
     THIS SELECTION WILL DISPLAY THE LOGICAL NAMES OF LINES AND NETWORKS
     IN THE SELECTED DEVICE INTERFACE.
  
.HELP,9,NOLIST. 
  
     THIS SELECTION WILL DISPLAY THE STATUS OF ALL NETWORKS IN THE SELECTED 
     DEVICE INTERFACE.
  
.HELP,10,NOLIST.
  
     THIS SELECTION WILL DISPLAY THE RESULTS OF THE LAST TEST RUN ON A
     DEVICE IN THE SELECTED DEVICE INTERFACE. 
  
.HELP,11,NOLIST.
  
     THIS SELECTION WILL DISPLAY THE RESULTS OF THE LAST TEST RUN ON ALL
     DEVICES IN THE SELECTED DEVICE INTERFACE.
  
.HELP,12,NOLIST 
  
     USE THIS OPTION TO RETURN TO THE PREVIOUS CMSI MENU. 
  
.ENDHELP. 
.*
.*   PROCESS THE USERS MENU SELECTION.
.*
IF,OPT265.EQ.1.CMSI262. 
IF,OPT265.EQ.2.CMS2652. 
IF,OPT265.EQ.3.CMS2653. 
IF,OPT265.EQ.4.CMS2654. 
IF,OPT265.EQ.5.CMS2655. 
IF,OPT265.EQ.6.CMS2656. 
IF,OPT265.EQ.7.CMS2657. 
IF,OPT265.EQ.8.CMS2658. 
IF,OPT265.EQ.9.CMS2659. 
IF,OPT265.EQ.10.CMS2650.
IF,OPT265.EQ.11.CMS265A.
.*
IF,OPT265.EQ.12.$REVERT,NOLIST. 
.*
$REVERT,EX.CMSI265. 
$EXIT.
.*   DETERMINE IF A QUIT FUNCTION KEY WAS ENTERED.
IF,EF.EQ.CPE,EXIT1. 
$REVERT,EX.CMSI265. 
ENDIF,EXIT1.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
.EOF
*WEOR 
.PROC,CMS2650*I"CMSI - DISPLAY TEST STATUS - CMS2650",
DEVICE"NAME FOR TEST STATUS"=(*A1..11). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2650
.*
.*       DISPLAY TEST STATUS
.*
.*    PURPOSE - DISPLAY THE RESULTS OF TEST EXECUTION ON
.*              A DEVICE IN A CDCNET DI.
.*
.*    PARAMETERS - DEVICE 
.*
.*    CALLED BY - CMSI265 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL DISPLAY THE RESULTS OF THE LAST TEST RUN ON A
     DEVICE IN THE SELECTED DEVICE INTERFACE. 
  
.HELP,DEVICE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE BOARD TO DISPLAY STATUS FOR.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISTS DN=DEVICE DO=E
.EOF
*WEOR 
.PROC,CMS2652.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2652
.*
.*       DISPLAY DI DIRECTORY STATUS
.*
.*    PURPOSE - DISPLAY THE STATUS OF THE DI DIRECTORY. 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI265 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISDS DO=ALL
.EOF
*WEOR 
.PROC,CMS2653.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2653
.*
.*       DISPLAY DI SYSTEM STATUS 
.*
.*    PURPOSE - DISPLAY THE STATUS OF DI SYSTEM SOFTWARE. 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI265 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISDSS DO=E 
.EOF
*WEOR 
.PROC,CMS2654.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2654
.*
.*       DISPLAY HARDWARE STATUS
.*
.*    PURPOSE - DISPLAY THE STATUS OF ALL HARDWARE ELEMENTS 
.*              IN A CDCNET DI. 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI265 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISHS DO=E
.EOF
*WEOR 
.PROC,CMS2655.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2655
.*
.*       DISPLAY LINE STATUS (SUMMARY)
.*
.*    PURPOSE - DISPLAY A SUMMARY OF THE STATUS OF ALL
.*              LINES IN A DI.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI265 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISLS DO=S
.EOF
*WEOR 
.PROC,CMS2656.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2656
.*
.*       DISPLAY LINE STATUS (EXTENDED) 
.*
.*    PURPOSE - DISPLAY THE EXTENDED STATUS OF ALL
.*              LINES IN A DI.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI265 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISLS DO=D
.EOF
*WEOR 
.PROC,CMS2657*I"CMSI - DISPLAY LINE STATUS (SINGLE LINE) - CMS2657",
LINE"LOGICAL NAME"=(*A1..40). 
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2657
.*
.*       DISPLAY LINE STATUS (SUMMARY)
.*
.*    PURPOSE - DISPLAY A SUMMARY OF THE STATUS OF A
.*              SPECIFIC LINE IN A DI.
.*
.*    PARAMETERS - LINE 
.*
.*    CALLED BY - CMSI265 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL DISPLAY THE STATUS OF A SPECIFIC LINE IN THE SELECTED
     DEVICE INTERFACE.
  
.HELP,LINE,NOLIST.
  
     THIS ITEM IS THE NAME OF THE LINE TO DISPLAY STATUS FOR. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISLS LN=LINE DO=D
.EOF
*WEOR 
.PROC,CMS2658.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2658
.*
.*       DISPLAY LOGICAL NAMES
.*
.*    PURPOSE - DISPLAY THE LOGICAL NAMES KNOWN TO A DI 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI265 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISLN DO=ALL
.EOF
*WEOR 
.PROC,CMS2659.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2659
.*
.*       DISPLAY NETWORK STATUS 
.*
.*    PURPOSE - DISPLAY THE STATUS OF ALL NETWORKS
.*              KNOWN TO A DI.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI265 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISNS 
.EOF
*WEOR 
.PROC,CMS265A.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS265A
.*
.*       DISPLAY TEST STATUS - ALL DEVICES
.*
.*    PURPOSE - DISPLAY THE RESULTS OF TEST EXECUTION ON
.*              ALL DEVICES IN A CDCNET DI. 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI265 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISTS DN=ALL DO=S 
.EOF
*WEOR 
.PROC,CMSI266*M"CMSI - CDCNET MESSAGES AND ALARMS - CMSI266", 
OPT266= 
 (1"SELECT A DI TO USE",
  2"DISPLAY SOURCE ALARM MESSAGES", 
  3"DEFINE SOURCE ALARM MESSAGES",
  4"CANCEL SOURCE ALARM MESSAGES",
  5"DISPLAY SOURCE LOG MESSAGES", 
  6"DEFINE SOURCE LOG MESSAGES",
  7"CANCEL SOURCE LOG MESSAGES",
  9"--------------- RETURN TO PREVIOUS CMSI MENU" ).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI266
.*
.*      CDCNET MESSAGES AND ALARMS
.*
.*    PURPOSE - MANAGE CDCNET MESSAGE AND ALARMS
.*
.*    PARAMETERS - OPT266 
.*
.*    CALLED BY - CMSI260 
.*
.*    PROCEDURES CALLED - CMS2661, CMS2662, CMS2663, CMS2664
.*                        CMS2665, CMS2666, CMS2667,
.*                        CMSI262 
.*
.* ---------------------------------------------------- 
.*
.*
.PROMPT,CMSI266> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.*
.HELP,,NOLIST.
  
     THIS SET OF MENUS ALLOWS CONTROL OF WHICH MESSAGES GENERATED BY
     A DEVICE INTERFACE WILL BE LOGGED AND GENERATE ALARMS. 
  
.HELP,1,NOLIST. 
  
     THIS SELECTION PROVIDES A MENU OF DEVICE INTERFACE SELECTIONS.  THESE
     OPTIONS ALLOW THE USER TO SELECT WHICH DI IN THE CATENET IS TO BE THE
     TARGET OF THE ACTIONS INDICATED BY THE REST OF THE CMSI/CDCNET 
     MENUS AND TO SELECT AN MDI ON THE HOST MAINFRAME WHERE CMSI IS EXECUTING 
     TO INTERFACE WITH THE NETWORK.  A DISPLAY OF ALL DEVICE INTERFACES IN
     A CATENET IS ALSO PROVIDED.
  
.HELP,2,NOLIST. 
  
     THIS SELECTION WILL GENERATE A DISPLAY OF THE CURRENT SET OF MESSAGES
     GENERATED BY A DEVICE INTERFACE WILL GENERATE AN ALARM.
  
.HELP,3,NOLIST. 
  
     THIS SELECTION WILL PROMPT THE USER FOR A MESSAGE NUMBER TO ADD TO THE 
     SET OF MESSAGES FROM A DEVICE INTERFACE WHICH WILL GENERATE AN ALARM.
     ONLY A SINGLE NUMBER ENTRY IS PERMITTED, A RANGE OF NUMBERS IS NOT 
     ALLOWED. 
  
.HELP,4,NOLIST. 
  
     THIS SELECTION WILL PROMPT THE USER FOR A MESSAGE NUMBER TO DELETE FROM
     THE SET OF MESSAGES FROM A DEVICE INTERFACE WHICH WILL GENERATE AN ALARM.
     ONLY A SINGLE NUMBER ENTRY IS PERMITTED, A RANGE OF NUMBERS IS NOT 
     ALLOWED. 
  
.HELP,5,NOLIST. 
  
     THIS SELECTION WILL GENERATE A DISPLAY OF THE CURRENT SET OF MESSAGES
     GENERATED BY A DEVICE INTERFACE WHICH WILL BE LOGGED.
  
.HELP,6,NOLIST. 
  
     THIS SELECTION WILL PROMPT THE USER FOR A MESSAGE NUMBER TO ADD TO THE 
     SET OF MESSAGES FROM A LOG GROUP WHICH WILL BE LOGGED. 
     ONLY A SINGLE NUMBER ENTRY IS PERMITTED, A RANGE OF NUMBERS IS NOT 
     ALLOWED. 
  
.HELP,7,NOLIST. 
  
     THIS SELECTION WILL PROMPT THE USER FOR A MESSAGE NUMBER TO DELETE FROM
     THE SET OF MESSAGES FROM A LOG GROUP WHICH WILL BE LOGGED. 
     ONLY A SINGLE NUMBER ENTRY IS PERMITTED, A RANGE OF NUMBERS IS NOT 
     ALLOWED. 
  
.HELP,9,NOLIST
  
     USE THIS OPTION TO RETURN TO THE PREVIOUS CMSI MENU. 
  
.ENDHELP. 
.*
.*   PROCESS THE USERS MENU SELECTION.
.*
IF,OPT266.EQ.1.CMSI262. 
IF,OPT266.EQ.2.CMS2662. 
IF,OPT266.EQ.3.CMS2663. 
IF,OPT266.EQ.4.CMS2664. 
IF,OPT266.EQ.5.CMS2665. 
IF,OPT266.EQ.6.CMS2666. 
IF,OPT266.EQ.7.CMS2667. 
.*
IF,OPT266.EQ.9.$REVERT,NOLIST.
.*
$REVERT,EX.CMSI266. 
$EXIT.
.*   DETERMINE IF A QUIT FUNCTION KEY WAS ENTERED.
IF,EF.EQ.CPE,EXIT1. 
$REVERT,EX.CMSI266. 
ENDIF,EXIT1.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.EOF
*WEOR 
.PROC,CMS2662.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2662
.*
.*       DISPLAY SOURCE ALARM MESSAGES
.*
.*    PURPOSE - DISPLAY THE NUMBER OF ALL MESSAGE FOR WHICH 
.*              A DI WILL GENERATE AN ALARM.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI266 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISSA 
.EOF
*WEOR 
.PROC,CMS2663*I"CMSI - DEFINE SOURCE ALARM MESSAGE - CMS2663",
MSGNUM"MESSAGE NUMBER"=(*S1..5/D).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2663
.*
.*       DEFINE SOURCE ALARM MESSAGES 
.*
.*    PURPOSE - DEFINE A MESSAGE NUMBER FOR WHICH 
.*              A DI WILL GENERATE AN ALARM.
.*
.*    PARAMETERS - MSGNUM 
.*
.*    CALLED BY - CMSI266 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL PROMPT THE USER FOR A MESSAGE NUMBER TO ADD TO THE 
     SET OF MESSAGES WHICH WILL GENERATE AN ALARM FROM A DEVICE INTERFACE.
  
.HELP,MSGNUM,NOLIST.
  
     THIS ITEM IS THE NUMBER OF THE MESSAGE TO ADD. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DEFSAM MN=MSGNUM
.EOF
*WEOR 
.PROC,CMS2664*I"CMSI - CANCEL SOURCE ALARM MESSAGE - CMS2664",
MSGNUM"MESSAGE NUMBER"=(*S1..5/D).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2664
.*
.*       CANCEL SOURCE ALARM MESSAGE
.*
.*    PURPOSE - CANCEL A MESSAGE FOR WHICH
.*              A DI WILL GENERATE AN ALARM.
.*
.*    PARAMETERS - MSGNUM 
.*
.*    CALLED BY - CMSI266 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL PROMPT THE USER FOR A MESSAGE NUMBER TO DELETE FROM
     THE SET OF MESSAGES WHICH WILL GENERATE AN ALARM FROM A DEVICE INTERFACE.
  
.HELP,MSGNUM,NOLIST.
  
     THIS ITEM IS THE NUMBER OF THE MESSAGE TO DELETE.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
CANSAM MN=MSGNUM
.EOF
*WEOR 
.PROC,CMS2665.
.*
.* ---------------------------------------------------- 
.*
.*
.*    PROCEDURE NAME - CMS2665
.*
.*       DISPLAY SOURCE LOG MESSAGES
.*
.*    PURPOSE - DISPLAY THE NUMBER OF ALL MESSAGE FOR WHICH 
.*              A DI WILL GENERATE A LOG MESSAGE. 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI266 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
DISSLG
.EOF
*WEOR 
.PROC,CMS2666*I"CMSI - DEFINE SOURCE LOG MESSAGE - CMS2666",
MSGNUM"MESSAGE NUMBER"=(*S1..5/D).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2666
.*
.*       DEFINE SOURCE LOG MESSAGES 
.*
.*    PURPOSE - DEFINE A MESSAGE NUMBER FOR WHICH 
.*              A DI WILL GENERATE A LOG MESSAGE. 
.*
.*    PARAMETERS - MSGNUM 
.*
.*    CALLED BY - CMSI266 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL PROMPT THE USER FOR A MESSAGE NUMBER TO ADD TO THE 
     SET OF MESSAGES FROM A LOG GROUP.
  
.HELP,MSGNUM,NOLIST.
  
     THIS ITEM IS THE NUMBER OF THE MESSAGE TO ADD. 
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
CHASLG AMN=MSGNUM 
.EOF
*WEOR 
.PROC,CMS2667*I"CMSI - CANCEL SOURCE LOG MESSAGE - CMS2667",
MSGNUM"MESSAGE NUMBER"=(*S1..5/D).
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS2667
.*
.*       CANCEL SOURCE LOG MESSAGE
.*
.*    PURPOSE - CANCEL A MESSAGE FOR WHICH
.*              A DI WILL GENERATE A LOG MESSAGE. 
.*
.*    PARAMETERS - MSGNUM 
.*
.*    CALLED BY - CMSI266 
.*
.*    PROCEDURES CALLED - CMS2600 
.*
.* ---------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS SELECTION WILL PROMPT THE USER FOR A MESSAGE NUMBER TO DELETE FROM
     THE SET OF MESSAGES FROM A LOG GROUP.
  
.HELP,MSGNUM,NOLIST.
  
     THIS ITEM IS THE NUMBER OF THE MESSAGE TO DELETE.
  
.ENDHELP. 
.*
.*   EXECUTE CDCNET COMMANDS WITH NETOU.
CMS2600.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,ZZZCMDS.
CHASLG DMN=MSGNUM 
.EOF
*WEOR 
.PROC,CMSI300*M"CMSI - DUMP   INTERFACE   -   CMSI300", 
OPT300= 
 (1"EXPRESS BATCH DUMP",
  2"BATCH DUMP, USER SELECTED DIRECTIVES",
  3"INTERACTIVE DSDI USAGE",
   4"MCDUMP/MCCOMP",
  5"RUN ANALDMP" ,
  9"--------------- RETURN TO MAIN CMSI MENU" ).
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI300
.*
.*       DSDI DUMP INTERFACE
.*
.*    PURPOSE - PROVIDE USER INTERFACE TO DSDI FOR SYSTEM DUMP
.*              PROCESSING OF EDD TAPE. 
.*
.*    PARAMETERS - OPT300 
.*
.*    CALLED BY - CMSI000 
.*
.*    PROCEDURES CALLED - CMSI301 , CMSIEFC , CMSI000 , CMSI300 
.*
.* -------------------------------------------------------- 
.*
.*
.PROMPT,CMSI300> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.*
.HELP,,NOLIST.
  
     THIS DUMP INTERFACE PROVIDES THE FOLLOWING OPTIONS:  
     1. SUBMIT A BATCH DSDI JOB FOR PROCESSING WITH 
        PROCEDURE SUPPLIED DSDI DIRECTIVES
     2. SUBMIT A BATCH DSDI JOB FOR PROCESSING WITH 
        USER SUPPLIED DIRECTIVES. 
     3. USE DSDI INTERACTIVELY WITH EITHER USER OR
        PROCEDURE SUPPLIED DIRECTIVES.
     4. PERFORM MICRO CODE VERIFICATION AND UPDATE OPTIONS. 
     5. RUN ANALDMP TO PROCESS MR VIA HPA.
  
     FOR MORE INFORMATION ON ANY ENTRY , ENTER
     A ? WHEN THAT PARAMETER IS REQUESTED.
  
.HELP,1,NOLIST. 
  
     SUBMIT A BATCH JOB UNDER THIS USER NUMBER TO PROCESS 
     DSDI ON THE SELECTED EDD TAPE. 
     - DSDI DIRECTIVES ARE: 
                 800                       700
                 ---                        --- 
         XP.      PROXP.         XP.     SECDED.
         PRORF.   PROMR.                 MAINLOG. 
         EICB.    MEMMR.                 ERRLOG.
         PP.      IOUMR.         PP.     DAYFILE. 
         SECDED.  FMFREG.        SC.
         MAINLOG. ERRLOG. 
         DAYFILE. PROCW 
  
.HELP,2,NOLIST. 
  
     SUBMIT A BATCH JOB UNDER THIS USER NUMBER , ON THE SELECTED
     EDD TAPE, USING A USER SUPPLIED INPUT FILE.
     (FILE MUST BE BUILT TO CONFORM TO THE DSDI 
     REQUIREMENTS AS OUTLINED IN THE DSDI SECTION 
     OF THE NOS V2 ANALYSIS HANDBOOK. ) 
  
.HELP,3,NOLIST. 
  
     USE DSDI INTERACTIVELY.  DSDI OUTPUT IS RETURNED 
     TO THIS TERMINAL AND OPTIONALLY ROUTED TO A CENTRAL
     SITE PRINTER.  DIRECTIVES CAN BE SUPPLIED FROM ONE 
     OF 3 SOURCES:  
       1) ENTERED INTERACTIVELY AT THE TERMINAL,
       2) READ FROM A SPECIFIED INDIRECT PERMANENT FILE,
       3) SUPPLIED BY THE PROCEDURE,  THOSE DIRECTIVES ARE: 
          800                       700 
          ---                       --- 
      XP.      PROXP.         XP.     SECDED. 
      PROMR.   PRORF.         PP. 
      MEMMR.   PRORF.         SC. 
      IOUMR.
  
.HELP,4,NOLIST. 
  
     RUN A MICRO-CODE DUMP/COMPARE FROM THE SELECTED EDD
     TAPE.   INSTALL / UPDATE THE PERMANENT FILE COPY OF "GOODMC".
  
.HELP,5,NOLIST. 
  
     THIS OPTION ALLOWS ACCESS TO THE CML 
     PROC  ANALDMP TO ANALYZE THE MAINTENANCE 
     REGISTERS DUMPED ON THE EDD TAPE.   THIS 
     ROUTINE USES DSDI AND HPA TO DISPLAY THE 
     ERRORS (IF ANY) ON THE TAPE. 
  
.HELP,9,NOLIST. 
  
     USE THIS OPTION TO RETURN TO THE MAIN CMSI MENU ( CMSI000 )
  
.ENDHELP. 
.*
.*
DISPLAY(PNL)
.*
.IF,OPT300.EQ.9.$REVERT,NOLIST....RETURN TO CMSI000 
.*
$RETURN,DUMP. 
CMSI301,#OPT300=OPT300. 
.*
$REVERT,EX.CMSI300.     RESTART CMSI300 
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM CMSI300..         RETURN TO CMSI000 
*WEOR 
.PROC,CMSI301*I,
OPT300=(*S1(12345) ) ,
EDDTYPE'CYBER MACHINE TYPE EDD IS FROM (700 OR 800) OR END '= 
 (7XX=700,7=700,700,8XX=800,8=800,800,END,E=END)  . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI301
.*
.*       DSDI DUMP INTERFACE
.*
.*    PURPOSE - CONTINUE GATHERING PARAMETERS FOR DSDI RUN. 
.*
.*    PARAMETERS - OPT300 , EDDTYPE 
.*
.*    CALLED BY - CMSI000 
.*
.*    PROCEDURES CALLED - CMSI302 , CMSI300 , CMSI000 
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     THIS DUMP INTERFACE WILL ALLOW THE USER TO EXECUTE 
     THE NOS DEADSTART DUMP INTERPRETER (DSDI) TO PRODUCE 
     LISTING TO ASSIST IN ANALYSIS OF A NOS SYSTEM DUMP.  THIS
     DUMP MUST BE PRODUCED BY THE EDD OPTION OF CTI.
     PARAMETERS NEEDED TO PROCEED ARE: - EDDTYPE , - VSNDMP,
     AND - CIPLVL.  SEE RESPECTIVE "HELP" DISPLAYS FOR MORE 
     INFORMATION. 
  
.HELP,OPT300,NOLIST.
  
     PARAMETER OPTION SELECTION FROM CMSI300
  
.HELP,EDDTYPE,NOLIST. 
  
     ENTER THE TYPE OF MAINFRAME ON WHICH THIS EDD TAPE WAS 
     MADE.  ( 700 OR 800 )
  
     ENTER 'END' TO RETURN TO MAIN MENU.
.ENDHELP. 
.*
.*
DISPLAY(PNL)
.*
.*
.*     STEP 1.
.*       CHECK IF 'END' REQUESTED.
.*                     TO 300    TO 000 
.IF,$EDDTYPE$.EQ.$END$.$REVERT,EX.$REVERT,NOLIST.    TO CMSI000 
.*
.*     STEP 2.
.*       CALL CMSI302 TO CONTINUE.
.*
CMSI302,#OPT300=OPT300,#EDDTYPE=EDDTYPE.
.*
$REVERT,NOLIST. 
.*
$EXIT.
.*
$REVERT.....ABORT FROM CMSI301. 
*WEOR 
.PROC,CMSI302*I,
OPT300=( *S1(12345) ) , 
EDDTYPE=
  ( 700 , 800 ) , 
VSNDMP'EDD TAPE VSN FOR THIS DUMP'=(*A1..6) , 
TDEN'ENTER EDD TAPE DENSITY. (CR)=PE'=
   ( LO,HI,HY, HD,800=HD, =PE,PE,1600=PE, GE,6250=GE),
CIPLVL'ENTER THE CIP VERSION NUMBER(EI:005) OF EDD CREATING THIS TAPE'= 
     ( *S3(0123456789) ) .
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI302
.*
.*       DSDI DUMP INTERFACE
.*
.*    PURPOSE - CONTINUE GATHERING PARAMETERS FOR DSDI RUN. 
.*
.*    PARAMETERS - OPT300 , EDDTYPE , VSNDMP , CIPLVL 
.*
.*    CALLED BY - CMSI301 
.*
.*    PROCEDURES CALLED - CMSI320 , CMSI340 , CMSI330 , CMSIEFC 
.*                        CMSI000 , ANALDMP 
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     THIS DUMP INTERFACE WILL ALLOW THE USER TO EXECUTE 
     THE NOS DEADSTART DUMP INTERPRETER (DSDI) TO PRODUCE 
     LISTING TO ASSIST IN ANALYSIS OF A NOS SYSTEM DUMP.  THIS
     DUMP MUST BE PRODUCED BY THE EDD OPTION OF CTI.
     PARAMETERS NEEDED TO PROCEED ARE: - EDDTYPE , - VSNDMP,
     AND - CIPLVL.  SEE RESPECTIVE "HELP" DISPLAYS FOR MORE 
     INFORMATION. 
  
.HELP,OPT300,NOLIST.
  
     PARAMETER OPTION SELECTION FROM CMSI300
  
.HELP,EDDTYPE,NOLIST. 
  
     ENTER THE TYPE OF MAINFRAME ON WHICH THIS EDD TAPE WAS 
     MADE.  ( 700 OR 800 )
  
     ENTER 'END' TO RETURN TO MAIN MENU.
  
.HELP,VSNDMP,NOLIST.
  
     ENTER THE VSN THAT THE EDD DUMP TAPE IS KNOWN BY.
     THIS FORM IS USUALLY SITE DEPENDENT BUT MUST BE
     WITHIN THE NOS VSN RESTRAINTS. 
     BEGINNING WITH CIP L004, EDD WRITES INTERNALLY 
     LABELED TAPES.  THIS MUST BE THAT LABEL AT CIP 4 
     AND LATER. 
  
     FOR MICRO-CODE UPDATE OR INSTALL THIS VSNDMP WILL BE AN
     EDD TAPE WITH A GOOD COPY OF PRODUCT SET MICRO-CODE. 
  
     IF YOU WISH TO USE THE SAME TAPE AGAIN REENTER THE 
     SAME VSN AS BEFORE.
  
.HELP,TDEN,NOLIST.
  
     ENTER THE 9 TRACK TAPE DENSITY AT WHICH
     THE DUMP TAPE WAS WRITTEN. 
  
.HELP,CIPLVL,NOLIST.
  
     ENTER THE CIP VERSION NUMBER OF THE EDD USED TO WRITE
     THIS DUMP TAPE.   ENTER ONLY THE NUMBER
     (EG. 004 OR 006 ... ) , NOT THE REVISION 
     CHARACTER , IF ANY (A , B , ...).
  
.ENDHELP. 
.*
.*
DISPLAY(PNL)
.*
.*     STEP 1.
.*       CHECK IF 'END' REQUESTED.
.*
.*                     TO 301    TO 300    TO 000 
.IF,$VSNDMP$.EQ.$END$.$REVERT,EX.$REVERT,EX.$REVERT,NOLIST.    TO CMSI000 
.*
.*     STEP 2.
.*       CHECK OPT300 OPTIONS AND START NEW PROCEDURE.
.*
.*       IF OPT300 = 1 BATCH JOB SUBMITTED. 
.IF,OPT300.EQ.1.SUBMIT,DSDI_EDDTYPE_,B. 
.IF,OPT300.EQ.1.$SKIP,XENDOUT.
.*
.IF,OPT300.EQ.2,STEP2.
CMSI320,#EDDTYPE=EDDTYPE,#VSNDMP=VSNDMP,#CIPLVL=CIPLVL,#TDEN=TDEN.
$SKIP,XENDOUT.
.*
.ENDIF,STEP2. 
.*
.*     STEP 3.
.*       CHECK FOR MICRO-CODE OPTION BEFORE TAPE REQUEST. 
.*
.IF,OPT300.EQ.4,STEP3.
.*
   .IF,$EDDTYPE$.EQ.$700$,STEP3B. 
     $NOTE.++ ERROR IN SELECTION +
     $NOTE.+ MACHINE TYPE ENTERED AS 700
     $NOTE.+ AND MICROCODE DUMP SELECTED. + 
     $NOTE.+ CYBER 700 EDD TAPES WILL NOT 
     $NOTE.+ CONTAIN MICROCODE MEMORY INFORMATION.++
.*
     $NOTE.++ ENTER (CR) TO CONTINUE. + 
     $COPYCR,INPUT,ZTRASH.
     $RETURN,ZTRASH.
.*
     $SKIP,XENDOUT. 
    .ENDIF,STEP3B.
.*
  CMSI340,#VSNDMP=VSNDMP,#CIPLVL=CIPLVL,#TDEN=TDEN. 
  $SKIP,XENDOUT.
.*
.ENDIF,STEP3. 
.*
.*
.*
.*       PROCESS ANALDMP REQUEST.  ( OPT300 = 5 ) 
.*
.IF,OPT300.EQ.5,STEP3A. 
.*
   .IF,$EDDTYPE$.EQ.$700$,STEP3AA.
     $NOTE.++ ERROR IN SELECTION +
     $NOTE.+ MACHINE TYPE ENTERED AS 700
     $NOTE.+ AND ANALDMP ANALYSIS SELECTED. + 
     $NOTE.+ CYBER 700 EDD TAPES WILL NOT 
     $NOTE.+ CONTAIN MAINTENANCE REGISTER INFORMATION.++
.*
     $NOTE.++ ENTER (CR) TO CONTINUE. + 
     $COPYCR,INPUT,ZTRASH.
     $RETURN,ZTRASH.
.*
     $SKIP,XENDOUT. 
    .ENDIF,STEP3AA. 
.*
$NOTE.+  ISSUING CALL TO ANALDMP PROCEDURE: 
$NOTE.+   #VSN=VSNDMP  ,  #TRK=#NT  , #CIPLVL=CIPLVL
$NOTE.++
* 
$NOTE.+  WAITING ON EDD TAPE REQUEST.+
.*
.IF,CIPLVL.LT.4.ANALDMP,#VSN=VSNDMP,#TK=NT,#L=OUTPUT,#LBL=NO. 
.*
.IF,CIPLVL.GE.4.ANALDMP,#VSN=VSNDMP,#TK=NT,#L=OUTPUT,#LBL=YES.
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*
$SKIP,XENDOUT.
.*
.ENDIF,STEP3A.
.*
.*
.*
.*     STEP 4.
.*       REQUEST EDD TAPE FOR INTERACTIVE DSDI USAGE.  (OPT300 = 3 )
.*
$IF,FILE(DUMP,.NOT.AS),STEP5. 
.*
$NOTE.+  WAITING ON EDD TAPE REQUEST.+
.*
.IF,CIPLVL.LT.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KU...EDD DUMP.
.IF,CIPLVL.GE.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KL...EDD DUMP.
$REWIND,DUMP. 
.*
.*     STEP 5.
.*     GET RANDOM COPY OF EDD DUMP FILE 
.*
$DSDI,D,L=ZTRASH,Z./XP. 
$RETURN,ZTRASH. 
$REWIND,DUMP. 
$ENDIF,STEP5. 
.*
.*     STEP 6.
.*       PROCESS INTERACTIVE DSDI OPT300=3
.*
.IF,OPT300.EQ.3.CMSI330,#EDDTYPE=EDDTYPE. 
.*
$ENDIF,XENDOUT. 
.*
$RETURN,DUMP. 
$REVERT,NOLIST.          RESTART CMSI300
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT,EX.$REVERT...ABORT FROM CMSI301..     REVERT TO CMSI000 
.*
.*----------------- 
.DATA,DSDI700.
/JOB
DSDI700.
/USER 
$BLOCK./DSDI700/VSNDMP//DATE/TIME 
.IF,CIPLVL.LT.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KU...EDD DUMP.
.IF,CIPLVL.GE.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KL...EDD DUMP.
DSDI. 
DAYFILE.
/EOR
XP. 
PP. 
SC. 
SECDED. 
MAINLOG.
ERRLOG. 
DAYFILE.
/EOF
.*
.* -------------- 
.*
.DATA,DSDI800.
/JOB
DSDI800.
/USER 
$BLOCK./DSDI800/VSNDMP//DATE/TIME 
.IF,CIPLVL.LT.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KU...EDD DUMP.
.IF,CIPLVL.GE.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KL...EDD DUMP.
DSDI. 
DAYFILE.
/EOR
XP. 
PROXP.
PRORF.
EICB. 
IOUMR.
MEMMR.
PROMR.
FMFREG. 
PP. 
SECDED. 
MAINLOG.
ERRLOG. 
DAYFILE.
/EOF
*WEOR 
.PROC,CMSI320*I"CMSI - BATCH   DSDI    -    CMSI320", 
EDDTYPE=(700,800),
VSNDMP=(*F),
TDEN'ENTER EDD TAPE DENSITY. (CR)=PE'=
   ( LO,HI,HY, HD,800=HD, =PE,PE,1600=PE, GE,6250=GE),
CIPLVL=( *S3(0123456789) ) ,
OWNCODE'USER DSDI DIRECTIVES ON FILE. ENTER FILE NAME, OR NO , OR END'= 
  (NO=N,N,=N , E=END,END , *F )  .
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI320
.*
.*       BATCH DSDI JOB 
.*
.*    PURPOSE - PROCESS DSDI AS A BATCH JOB.
.*
.*    PARAMETERS - EDDTYPE , VSNDMP , CIPLVL , OWNCODE
.*
.*    CALLED BY - CMSI302 
.*
.*    PROCEDURES CALLED - DSDIBAT 
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE ALLOWS THE USER TO SUBMIT A BATCH 
     DSDI JOB WILL EITHER USER OR PROCEDURE SUPPLIED
     DIRECTIVES.
  
  
.HELP,EDDTYPE,NOLIST. 
  
     PARAMETER SUPPLIED BY CALLING PROCEDURE. 
  
.HELP,VSNDMP,NOLIST.
  
     PARAMETER SUPPLIED BY CALLING PROCEDURE. 
  
.HELP,TDEN,NOLIST.
  
     ENTER THE 9 TRACK TAPE DENSITY AT WHICH
     THE DUMP TAPE WAS WRITTEN. 
  
.HELP,CIPLVL,NOLIST.
  
     PARAMETER SUPPLIED BY CALLING PROCEDURE. 
  
.HELP,OWNCODE,NOLIST. 
  
     USER DSDI DIRECTIVES TO BE SUPPLIED ON FILE
     NAME ENTERED.   SEE THE NOS ANALYSIS HANDBOOK
     FOR FILE FORMAT. 
  
     DETAILED INFORMATION ON DSDI DIRECTIVES
     IS AVAILABLE IN :  
     - NOS V2 ANALYSIS HANDBOOK  NO. 60459300 
     - NOS V2 SYSTEM PROGRAMMER'S INSTANT 
                                 NO. 60459370 
  
  
     IF YOU WISH TO USE THE PROCEDURE SUPPLIED DIRECTIVES 
     ENTER NO.   THE FOLLOWING ARE THE DIRECTIVES TO BE 
     USED BY THE BATCH JOB: 
          800                       700 
          ---                        ---
   XP.      PROXP.         XP.     SECDED.
   EICB.    PROMR.         MAINLOG. 
   PRORF.   MEMMR.         ERRLOG.
   PP.      IOUMR.         PP.     DAYFILE. 
   SECDED.  FMFREG.        SC.
   MAINLOG. ERRLOG. 
   DAYFILE. 
  
.ENDHELP. 
.*
DISPLAY(PNL)
$NOTE.+ 
.*
.*     STEP 1.
.*       IF $OWNCODE$ IS END  RETURN TO 300 
.*
.IF,$OWNCODE$.EQ.$END$.$REVERT,NOLIST.
.*
.*
.*     STEP 2.
.*       CHECK FOR OWNCODE, ON 'NO' SUBMIT BATCH JOB. 
.*
.IF,$OWNCODE$.EQ.$N$.SUBMIT,DSDI_EDDTYPE_.
$RETURN,DSDI700,DSDI800.
.IF,$OWNCODE$.EQ.$N$.$REVERT,NOLIST.
.*
.*     STEP 3.
.*      USER HAS SELECTED OWNCODE 
.*      AND SUBMIT JOB. 
.*
.*
GETATT,OWNCODE. 
.*
$IF,R1G.NE.0,STEP3. 
.*
$NOTE.++ UNABLE TO FIND #OWNCODE FILE OWNCODE.
$NOTE.+ 
$CATLIST. 
$NOTE.+ 
.*
$REVERT,EX.CMSI320,#EDDTYPE=EDDTYPE,#VSNDMP=VSNDMP,#CIPLVL=CIPLVL,#TDEN=TDEN. 
.*
.*
$ENDIF,STEP3. 
.*
.*
$SUBMIT,DSDIJOB,B.
.*
.*
.*
$REVERT,NOLIST. 
.DATA,DSDIJOB.
/JOB
DSDIJOB.
/USER 
$BLOCK,,NR,1./DSDIJOB//DATE/TIME//VSNDMP
.IF,CIPLVL.LT.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KU...EDD DUMP.
.IF,CIPLVL.GE.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KL...EDD DUMP.
BEGIN,GETATT,CMLINST,OWNCODE. 
DSDI,I=OWNCODE. 
EXIT. 
DAYFILE.
/EOR
/EOF
.EOF
*WEOR 
.PROC,CMSI330*I"CMSI - INTERACTIVE DSDI   -   CMSI330", 
EDDTYPE=(700,800),
HRDCPY'DO YOU WANT A HARDCOPY PRINTED (YES,NO) (CR)=NO'=(=N,YES=Y,Y,NO=N,N) , 
OWNCODE'USER DIRECTIVES (YES,NO) OR END  (CR)=YES'= 
  ( YES=Y,Y,=Y , NO=N,N , E=END,END )  .
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI330
.*
.*       INTERACTIVE DSDI 
.*
.*    PURPOSE - PROCESS DSDI COMMAND INTERACTIVELY
.*
.*    PARAMETERS - EDDTYPE , HRDCPY , OWNCODE 
.*
.*    CALLED BY - CMSI302 
.*
.*    PROCEDURES CALLED - DSDIX1
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE ALLOWS THE USER TO SELECT THE 
     SOURCE OF THE DSDI DIRECTIVE TO BE USED FOR THE
     DSDI LISTINGS.   THREE SOURCES ARE AVAILABLE.
      1) INTERACTIVE ENTRY FROM THIS TERMINAL.
         ANSWER YES TO 'OWNCODE' PROMPT.
      2) USE OF THE PROCEDURE SUPPLIED DIRECTIVES.
         ANSWER NO TO 'OWNCODE'.
      3) USE OF DIRECTIVES PREVIOUSLY SAVED ON AN 
         INDIRECT PERMANENT FILE. (SEE NOS 2 ANALYSIS 
         HANDBOOK PN.60459300 SECTION DSDI FOR FORMAT.
  
.HELP,EDDTYPE,NOLIST. 
  
     PARAMETER SUPPLIED BY CALLING PROCEDURE. 
  
  
.HELP,OWNCODE,NOLIST. 
  
     IF YOU WISH TO SELECT THE DSDI DIRECTIVES TO BE
     USED, ENTER  YES.
  
     DETAILED INFORMATION ON DSDI DIRECTIVES
     IS AVAILABLE IN :  
     - NOS V2 ANALYSIS HANDBOOK  NO. 60459300 
     - NOS V2 SYSTEM PROGRAMMER'S INSTANT 
                                 NO. 60459370 
  
  
     IF YOU WISH TO USE A PERMANENT FILE AS INPUT ENTER "YES".
  
     IF YOU WISH TO USE THE PROCEDURE SUPPLIED DIRECTIVES 
     ENTER  NO.   THE FOLLOWING ARE THE DIRECTIVES TO BE
     WILL BE USED:  
          800                 700 
   XP.      PROXP.         XP.     SECDED.
   PROMR.   PRORF.         PP.
   MEMMR.   EICB.          SC.
   IOUMR. 
  
  
.HELP,HRDCPY,NOLIST.
  
     IF YOU ALSO WANT A COPY OF THE DSDI TERMINAL OUTPUT
     ROUTED TO A CENTRAL SITE PRINTER,  ENTER  YES  TO
     THIS HRDCPY PROMPT.
  
.ENDHELP. 
.*
.*
DISPLAY(PNL)
.*
CMSIDFX,XPARAM=B. 
.*
.*
.*     STEP 1.
.*       CHECK FOR END
.*
.IF,$OWNCODE$.EQ.$END$.REVERT,NOLIST.         RETURN TO CMSI300 
.*
.*     STEP 2.
.*       CLEAN UP FILES BEFORE START OF INTERACTIVE DSDI
.*
$REWIND,DUMP. 
$RETURN,ZZZZOUT.
.*
.*     STEP 3.
.*       CHECK IF OWNCODE IS REQUESTED
.*
.IF,$OWNCODE$.EQ.$Y$,STEP3. 
DSDIX1,#HRDCPY=HRDCPY.
.*
.*     STEP 4.
.*       EXECUTE DSDI WITH CANNED DIRECTIVES. 
.*
.ELSE,STEP3.
.IF,$EDDTYPE$.EQ.$700$.DSDI,Z,L=ZZZZOUT./XP./PP./SC./SECDED.
.IF,$EDDTYPE$.EQ.$800$.DSDI,Z,L=ZZZZOUT./XP/PROXP/IOUMR/MEMMR/PROMR/PRORF/EICB. 
.*
$REWIND,ZZZZOUT.
.*
.*     STEP 5.
.*       CHECK FOR HARDCOPY TO BE PRINTED 
.IF,$HRDCPY$.EQ.$Y$,STEP5.
.*
$BLOCK,Q,,1./DSDI//DATE/TIME
.*
CMSIDFX,XPARAM=E. 
.*
.ENDIF,STEP5. 
.*
.*
$REWIND,ZZZZOUT.
$COPYCF,ZZZZOUT,OUTPUT. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*
.ENDIF,STEP3. 
$RETURN,ZZZZOUT,Q.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMSI340*I"CMSI - MICROCODE  INTERFACE - CMSI340", 
VSNDMP=(*F),
TDEN'ENTER EDD TAPE DENSITY. (CR)=PE'=
   ( LO,HI,HY, HD,800=HD, =PE,PE,1600=PE, GE,6250=GE),
CIPLVL=( *S3(0123456789) ) ,
MCDMCC'MICROCODE VERIFICATION -V- OR UPDATE - U- OR END (CR)= V '=
  (VERIFICATION=V,VERIFY=V,V,=V , UPDATE=U,UP=U,U , E=END,END )  .
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI340
.*
.*       MICROCODE INTERFACE
.*
.*    PURPOSE - PROVIDE CMSI ACCESS TO MCDUMP/MCCOMP
.*
.*    PARAMETERS - VSNDMP , CIPLVL , MCDMCC 
.*
.*    CALLED BY - CMSI302 
.*
.*    PROCEDURES CALLED - GETATT , SAVEIT 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
     THIS OPTION PROVIDES CMSI PROCEDURES A PROCESS 
     TO CHECK THE PRODUCT SET MICROCODE DUMPED TO AN
     EDD TAPE.
     THIS PROCEDURE REQUIRES A COPY OF "GOODMC" TO HAVE 
     ALREADY BEEN CREATED AND SAVED ON THIS USERS 
     PERMANENT FILE BASE. 
  
     A PORTION OF THE JOB DAYFILE WILL BE PRINTER 
     TO ALLOW THE USER TO CHECK FOR MESSAGES
     FROM MCCOMP. 
     IF ERRORS ARE FOUND MCCOMP WILL PRINT THE
     RESULTS TO THE TERMINAL. 
  
     THE FIRST OPTION FOR THIS PROCEDURE IS TO
     VERIFY THE MICROCODE IMAGE ON THE DUMP TAPE
     USING MCDUMP AND MCCOMP.  THIS REQUIRES A
     GOOD IMAGE FOR COMPARE.   THIS IS FROM A 
     PREVIOUSLY SAVED IMAGE FROM MCCOMP.
  
     A SECOND OPTION FOR THIS PROCEDURE IS TO 
     CREATE THE FILE "GOODMC" .   THIS IS DONE
     BY SELECTING "U" FOR "UPDATE" OF THIS IMAGE. 
     UPDATE WILL READ AN EDD DUMP TAPE WHICH IS 
     ASSUMED TO CONTAIN A GOOD COPY OF THE SYSTEM 
     MICROCODE.   THIE PROCEDURE WILL SAVE THE FILE 
     PRODUCED ON FILE 'GOODMC'. 
  
.HELP,VSNDMP,NOLIST.
  
     ENTER THE VSN THAT THE EDD DUMP TAPE IS KNOWN BY.
     THIS FORM IS USUALLY SITE DEPENDENT BUT MUST BE
     WITHIN THE NOS VSN RESTRAINTS. 
     BEGINNING WITH CIP L004, EDD WRITES INTERNALLY 
     LABELED TAPES.  THIS MUST BE THAT LABEL AT CIP 4 
     AND LATER. 
  
     FOR MICRO-CODE UPDATE OR INSTALL THIS VSNDMP WILL BE AN
     EDD TAPE WITH A GOOD COPY OF PRODUCT SET MICRO-CODE. 
  
     IF YOU WISH TO USE THE SAME TAPE AGAIN REENTER THE 
     SAME VSN AS BEFORE.
  
.HELP,TDEN,NOLIST.
  
     ENTER THE 9 TRACK TAPE DENSITY AT WHICH
     THE DUMP TAPE WAS WRITTEN. 
  
.HELP,CIPLVL,NOLIST.
  
     ENTER THE CIP VERSION NUMBER OF THE EDD USED TO WRITE
     THIS DUMP TAPE.   ENTER ONLY THE NUMBER NOT THE REVISION 
     CHARACTER ( A , B , ... ). 
  
  
.HELP,MCDMCC,NOLIST.
  
     V - VERIFY - WILL READ AN EDD DUMP TAPE, AND 
     CHECK THE SYSTEM MICROCODE RECORD FOR ERRORS.
     THIS IS DONE BY COMPARING IT WITH A PREVIOUSLY 
     SAVED GOOD IMAGE (GOODMC). 
  
     U - UPDATE - WILL READ A DUMP TAPE AND SAVE THE
     MCDUMP OUTPUT FILE AS 'GOODMC'. TO BE USED AS
     THE GOOD IMAGE FOR FUTURE COMPARES.
  
  
     IF YOU WISH TO PERFORM A MICROCODE UPDATE
     ENTER 'U', 'UP', OR 'UPDATE'.  IF YOU WISH TO
     DO A COMPARE FROM EDD TAPE ENTER 'V' OR
     'VERIFICATION.   (CR) = V. 
  
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*     STEP 1.
.*       CHECK FOR END AND REVERT 
.*
.IF,$MCDMCC$.EQ.$END$.REVERT,NOLIST.     TO CMSI300 
.*
.*     STEP 2.
.*       CHECK IF COMPARE... IF NOT THEN WE ARE 
.*       DOING AN UPDATE... GOTO CMSI341. 
.*       ( THIS OPTION DISABLED AT RELEASE OF CMSI  ) 
.*
.* IF,$MCDMCC$.EQ.$U$.CMSI341,#VSNDMP=VSNDMP,#CIPLVL=CIPLVL.
.*
.*
$NOTE.+   WAITING FOR EDD TAPE ASSIGNMENT.+ 
.*
.IF,CIPLVL.LT.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KU...EDD DUMP.
.IF,CIPLVL.GE.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KL...EDD DUMP.
.*
.*     STEP 3.
.*       SKIP IF RETURN FROM UPDATE 
.*
.IF,$MCDMCC$.EQ.$V$,STEP9.
.*
.*     STEP 4.
.*       DO COMPARE.
.*
.*
.*     STEP 5.
.*       GET MCDUMP FILE
.*
GETATT,MCDUMP.
$IF,R1G.NE.0,STEP5. 
$NOTE.++  MCDUMP NOT AVAILABLE... USE CMLUTIL 
$NOTE.+  TO INSTALL  MCDUMP.
$SKIP,XENDOUT.          MICROCODE ABORT CMSI340.. 
$ENDIF,STEP5. 
.*
.*     STEP 6.
.*       RUN MCDUMP ON ASSIGNED EDD TAPE
.*
$NOTE.+ RUNNING MCDUMP TO GET BADMC IMAGE.+ 
MCDUMP,I=DUMP,L=BADMC.
.*
.*     STEP 7.
.*       GET MCCOMP FILE
.*
GETATT,MCCOMP.
$IF,R1G.NE.0,STEP7. 
$NOTE.++  MCCOMP NOT AVAILABLE... USE CMLUTIL 
$NOTE.+  TO INSTALL  MCCOMP.
$SKIP,XENDOUT.          MICROCODE ABORT CMSI340.. 
$ENDIF,STEP7. 
.*
.*     STEP 8.
.*       GET GOODMC COMPARE FILE
.*
GETATT,GOODMC.
$IF,R1G.NE.0,STEP8. 
$NOTE.++  GOODMC NOT AVAILABLE... USE THIS PROCEDURE
$NOTE.+  UPDATE MODE TO INSTALL GOODMC
$SKIP,XENDOUT.          MICROCODE ABORT CMSI340.. 
$ENDIF,STEP8. 
.*
.*     STEP 9.
.*       DO COMPARE 
.*
$DAYFILE,L=ZTRASH.
$RETURN,ZTRASH. 
$REWIND,BADMC.
.*
$NOTE.+ RUNNING MCCOMP TO COMPARE BADMC AND GOODMC. + 
.*
* 
* --------------------------- 
* 
MCCOMP,I1=BADMC,I2=GOODMC,L=ZMCOUT. 
* 
* --------------------------- 
* 
$REWIND,*.
.*
$NOTE.++ CHECK DAYFILE FOR RESULTS OF COMPARE. ++ 
$DAYFILE,OP=I.
.*
.*
.*
.*       PRINT BAD COMPARE IF ANY 
.*
$IF,FILE(ZMCOUT,AS),STEP9A. 
 $COPYBF,ZMCOUT,OUTPUT. 
 .* 
$ENDIF,STEP9A.
.*
.ELSE,STEP9.   ------------------------------------ 
.*
.*     STEP 10. 
.*       IF GOODMC  UPDATE CONTINUE 
.*
$REWIND,DUMP. 
.*
.*     STEP 11. 
.*       GET UCODE IMAGE FROM EDD TAPE
.*       GET MCDUMP FILE
.*
.*
GETATT,MCDUMP.
$IF,R1G.NE.0,STEP11.
$NOTE.++  MCDUMP NOT AVAILABLE... USE CMLUTIL 
$NOTE.+  TO INSTALL  MCDUMP.
$SKIP,XENDOUT.          MICROCODE ABORT CMSI340.. 
$ENDIF,STEP11.
.*
.*     STEP 12. 
.*       EXECUTE MCDUMP TO GENERATE 'GOODMC'
$NOTE.+ RUNNING MCCOMP TO GENERATE GOODMC. +
.*
MCDUMP,I=DUMP,L=GOODMC. 
.*
.*
.*     STEP 13. 
.*       REPLACE / SAVE GOODMC FILE 
.*
SAVEIT,GOODMC.
$NOTE.+  GOODMC SAVED...
.ENDIF,STEP9. 
.*
$ENDIF,XENDOUT. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$RETURN,DUMP. 
$REVERT,NOLIST. 
.*
.*
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT,NOLIST. 
*WEOR 
.PROC,CMSI341*I"CMSI - MICROCODE INTERFACE II - CMSI341", 
VSNDMP=(*F),
TDEN'ENTER EDD TAPE DENSITY. (CR)=PE'=
   ( LO,HI,HY, HD,800=HD, =PE,PE,1600=PE, GE,6250=GE),
CIPLVL=( *S3(0123456789) ) ,
MCUPDATE'UPDATE *GOODMC* FILE FROM EDD OR CIP, (EDD , CIP , OR END (CR)=EDD'= 
  (EDD, =EDD , CIP , E=END,END )  . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI341
.*
.*       CMSI 
.*
.*    PURPOSE - CMSIX 
.*
.*    PARAMETERS -
.*
.*    CALLED BY - 
.*
.*    PROCEDURES CALLED - 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE ALLOWS THE USER TO UPDATE THE 
     PERMANENT FILE COPY OF 'GOODMC' USED IN THE
     MICROCODE COMPARE PROCEDURES.
  
     INPUT SOURCE OF THIS MICROCODE CAN BE FROM 
     EITHER AN EDD TAPE WITH A KNOWN GOOD IMAGE OF
     MICROCODE  OR  THE RELEASED CIP FCO TAPE.
  
     IF THE CIP TAPE IS TO BE USED THE RECORD NAME
     OF THE MICROCODE MUST BE SUPPLIED TO THIS PROCEDURE. 
  
.HELP,VSNDMP,NOLIST.
.HELP,CIPLVL,NOLIST.
.HELP,TDEN,NOLIST.
  
     ENTER THE 9 TRACK TAPE DENSITY AT WHICH
     THE DUMP TAPE WAS WRITTEN. 
  
.HELP,MCUPDATE. 
  
     ENTER THE SOURCE FOR THIS UPDATE.... 
     ENTER EITHER  EDD FOR AN EDD TAPE INPUT  OR
                   CIP FOR A RELEASED CIP TAPE INPUT. 
     .. OR  .. ENTER 'END' TO RETURN TO CMSI300.
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*     STEP 1.
.*       CHECK FOR 'END'
.*
.IF,$MCUPDATE$.EQ.$END$.REVERT,NOLIST.
.*
.*     STEP 2.
.*       CHECK UC SOURCE
.*
.IF,$MCUPDATE$.EQ.$CIP$,STEP2.
.*
.*       GO GET CIP TAPE AND UCODE IMAGE
.*
CMSI342,#VSNDMP=VSNDMP,#CIPLVL=CIPLVL.
.*
.ELSE,STEP2.
.*
.*     STEP 3.
.*       GET UCODE IMAGE FROM EDD TAPE
.*       GET MCDUMP FILE
GETATT,MCDUMP.
$IF,R1G.NE.0,STEP3. 
$NOTE.++  MCDUMP NOT AVAILABLE... USE CMLUTIL 
$NOTE.+  TO INSTALL  MCDUMP.
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$REVERT,NOLIST.        MICROCODE ABORT
$ENDIF,STEP3. 
.*
.IF,CIPLVL.LT.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KU...EDD DUMP.
.IF,CIPLVL.GE.4.$LABEL,DUMP,VSN=VSNDMP,D=TDEN,PO=R,F=S,LB=KL...EDD DUMP.
.*
.*     STEP 4.
.*       EXECUTE MCDUMP TO GET GOODMC FROM EDD TAPE 
.*
MCDUMP,I=DUMP,L=GOODMC. 
.*
.ENDIF,STEP2. 
.*
.*     STEP 5.
.*       REPLACE / SAVE GOODMC FILE 
.*
SAVDEF,GOODMC.
.*
.*     STEP 6.
.*       END / REVERT 
$REVERT,NOLIST. 
*WEOR 
.PROC,CMSI342*I,
VSNDMP=(*F),
CIPLVL=( *S3(0123456789) ) ,
MCNAME", THE MICROCODE RECORD NAME OR END"=( E=END,END ,*F )  . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI342
.*
.*       CMSI 
.*
.*
.*    PURPOSE - CMSIX 
.*
.*    PARAMETERS -
.*
.*    CALLED BY - 
.*
.*    PROCEDURES CALLED - 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE ALLOWS THE USER TO UPDATE 
     THE 'GOODMC' PERMANENT FILE FROM THE RELEASE 
     CIP FCO TAPE.
  
     PARAMETER NEEDED IS THE MICROCODE RECORD NAME
     ON THE CIP TAPE.   THIS CAN BE DETERMINED FROM 
     THE CIP TAPE CATALOG INCLUDED IN THE CIP FCO 
     MICROFICHE PACKAGE.
  
.HELP,VSNDMP,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,CIPLVL,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,MCNAME,NOLIST.
  
     ENTER THE NAME OF THE RECORD OF THE DESIRED
     MICROCODE AS IT APPEARS IN THE CATALOG OF THE
     RELEASED CIP TAPE. 
  
     .  OR  . ENTER 'END' TO RETURN TO CMSI300
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*
.*     STEP 1.
.*       CHECK FOR END ENTERED
.*
.IF,$MCNAME$.EQ.$END$.REVERT,EX.REVERT,EX.REVERT,NOLIST.
.*
.*     STEP 2.
.*       GET CIP TAPE 
.*
$LABEL,CIP_CIPLVL,NT,PE,F=SI,PO=R,LB=KU,VSN=VSNDMP. 
$NOEXIT.
$GTR,CIP_CIPLVL,ZMCODE.OVL/MCNAME 
$ONEXIT.
$IF,FILE(ZMCODE,.NOT.LO),STEP2. 
$NOTE.++  MICROCODE RECORD MCNAME NOT FOUND ++
$REVERT,EX.CMSI342,#VSNDMP=VSNDMP,#CIPLVL=CIPLVL. 
$ENDIF,STEP2. 
.*
.*     STEP 3.
.*       GET AND EXECUTE MCDUMP ON ZMCODE.
.*
GETATT,MCDUMP.
$IF,R1G.NE.0,STEP3. 
$NOTE.++  MCDUMP NOT AVAILABLE... USE CMLUTIL 
$NOTE.+  TO INSTALL  MCDUMP.
$REVERT,EX.REVERT,NOLIST..        MICROCODE ABORT 
$ENDIF,STEP3. 
.*
MCDUMP,I=ZMCODE,L=GOODMC. 
.*
.*     STEP 4.
.*       RETURN TO CMSI341 WITH GOODMC FILE.
$REVERT.
*WEOR 
.PROC,CMSI400*M"CMSI - UTILITIES  INTERFACE - CMSI400", 
OPT400= 
(1" RUN CMLUTIL"
,2" LIST EST TABLE" 
,3" UPDATE CMLINST AND CMSI"
,9" --------------- RETURN TO MAIN CMSI MENU" ).
.PROMPT,CMSI400> SELECT BY NUMBER OR TYPE ? FOR HELP. 
.*
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI400
.*
.*       UTILITIES INTERFACE
.*
.*    PURPOSE - PROVIDE THE CMSI INTERFACE TO VARIOUS UTILITIES 
.*
.*    PARAMETERS - OPT400 
.*
.*    CALLED BY - CMSI000 
.*
.*    PROCEDURES CALLED - CMSI410 , CMSI420 , CMSI430 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     THIS MENU PROVIDES CMSI ACCESS TO CML AND
     ASSOCIATED ROUTINES AND PROGRAMS WHCIH 
     ARE OF A UTILITY OR SUPPORT NATURE OR DO 
     FIT IN TO ANYOTHER CATAGORY. 
  
.HELP,1.
  
     THIS SELECTION PROVIDES ACCESS TO THE
     STANDARD CMLUTIL PROCEDURES INCLUDED ON CML. 
  
.HELP,2,NOLIST. 
  
     LIST THE EST TABLE OF THIS MACHINE TO THE
     TERMINAL.
  
.HELP,3.
  
     THIS SELECTION ALLOW THE USER TO 
     APPLY UPDATE MODSETS AGAINST THE 
     CMLINST DECK ON THE CML PROGRAM
     LIBRARY IMAGE .   THIS IMAGE SHOULD
     BE LOADED USING THE CMLUTIL PROCEDURE
     CMLLOAD, WHICH CREATES THE RANDOM PL 
     CMLPL. 
  
     THIS SELECTION WILL CALL PROCEDURE CMSI500 FOLLOWING 
     THE MODIFICATIONS TO CMLINST/CMSI. 
  
  
     - NOTE - THIS OPTION REQUIRES THAT PERMANENT FILE
     "INSTMDS" BE IN THE USERS PERMANENT FILE CATALOG 
     AND THAT IT CONTAINS CORRECTLY FORMATED UPDATE 
     DIRECTIVES.
  
.HELP,9,NOLIST. 
  
     THIS SELECTION RETURN THE USER TO THE
     MAIN CMSI000 MENU FOR THE NEXT SELECTION.
  
.ENDHELP. 
.*
.*    STEP  1.
.*       BEGIN PROPER PROCEDURE BASED UPON
.*       THE OPT400 SELECTION.
.*
DISPLAY(PNL)
.*
.IF,OPT400.EQ.1.CMSI410.
.*
.*
.IF,OPT400.EQ.2.CMSI420.
.*
.*
.IF,OPT400.EQ.3.CMSI430.
.*
.*   CLEAR UP CMLUTIL FILES.
.IF,OPT400.EQ.9.$RETURN,JOB,USERCHG,PART2,UPIN. 
.IF,OPT400.EQ.9.$REVERT,NOLIST. 
.*
$REVERT,EX.CMSI400. 
$EXIT.
$REVERT....ABORT FROM CMSI400.. 
*WEOR 
.PROC,CMSI410.
.*
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI410
.*
.*       CALL CMLUTIL 
.*
.*    PURPOSE - PROVIDE CMSI ACCESS TO CMLUTIL
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI400 
.*
.*    PROCEDURES CALLED - CMLUTIL 
.*
.* -------------------------------------------------------- 
.*
.*
.* .HELP. 
.*
.*      THIS PROCEDURE IS THE INTERFACE TO THE
.*      CML UTILITY PROCEDURE CMLUTIL.
.*      CMLUTIL WILL RETURN TO THIS PROCEDURE 
.*      UPON COMPLETION.
.*
.*
.* .ENDHELP.
.*
.*     STEP 1.
.*       CALL CMLUTIL TO PROCESS OPTIONS. 
.*
CMLUTIL.
.*
$IF,FILE(DIAGLST,LO).CMSI411. 
.*
$REVERT,NOLIST. 
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT.....ABORT FROM CMSI410..
*WEOR 
.PROC,CMSI411*I"CMLUTIL PRODUCED LISTINGS ARE AVAILABLE.",
BATCPY'ENTER YES TO PRINT , NO TO RELEASE FILE.  (CR)=NO'=
  (YES,Y=YES,PRINT=YES,ROUTE=YES , NO,N=NO, =NO )  .
.*
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI411
.*
.*       PRINT CMLUTIL OUTPUT 
.*
.*    PURPOSE - PROVIDE A METHOD TO PRINT CMLUTIL OUTPUT
.*
.*    PARAMETERS - BATCPY 
.*
.*    CALLED BY - CMSI410 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
.HELP,BATCPY,NOLIST.
  
     CMLUTIL JOB LEAVES REQUESTED OUTPUT ON FILE DIAGLST
     FOR THE USER TO ROUTE TO A PRINTER IF DESIRED.  CMSI 
     IS REQUESTING DIRECTION TO ROUTE THIS FILE TO THE
     PRINTER (YES)   ,  OR  TO DESTORY THIS FILE (NOT TO
     PRINT IT )  - NO.
  
     ENTER YES TO PRINT THE FILE. 
  
     ENTER NO TO RETURN THE FILE. 
  
.ENDHELP. 
.*
$DISPLAY(PNL) 
.*
$REWIND,DIAGLST.
.IF,$BATCPY$.EQ.$YES$,STEP1.
.*
  $ROUTE,DIAGLST,DC=LP. 
.*
.ENDIF,STEP1. 
.*
$RETURN,DIAGLST.
.*
$REVERT,NOLIST. 
*WEOR 
.PROC,CMSI420*I"CMSI - LIST EST TASK  -  CMSI420",
HRDCPY'DO YOU WANT A BATCH COPY  (YES OR NO) , END ,(CR)= NO' = 
  (NO=N,N, =N , YES=Y,Y , E=END,END )  .
.*
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI420
.*
.*       LIST EST TASK
.*
.*    PURPOSE - ACCESS EST TABLE WITH PRINT OPTION. 
.*
.*    PARAMETERS - HRDCPY 
.*
.*    CALLED BY - CMSI400 
.*
.*    PROCEDURES CALLED - CMSI116 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP.
  
     THIS PROCEDURE CALLS CMSI116 TO PRINT
     THE EST TABLE TO THE TERMINAL AND OPTIONALLY 
     TO A CENTRAL SITE PRINTER. 
  
.HELP,HRDCPY,NOLIST.
  
     ENTER YES IF YOU WISH TO PRINT A 
     COPY OF THE EST TABLE ON A CENTRAL 
     SITE PRINTER.
  
.ENDHELP. 
.*
.*     STEP 1.
.*       CHECK FOR END SET. 
.*
.IF,$HRDCPY$.EQ.$END$,STEP1.
.*
$REVERT,NOLIST. 
.*
.* -----------------------
.*
.ENDIF,STEP1. 
.*
.*     STEP 2.
.*       CHECK FOR BATCH COPY.
.*
.IF,$HRDCPY$.EQ.$Y$.$ASSIGN,MS,OUTPUT.
.*
.*     STEP 3.
.*       DO EST TABLE PRINT TO
.*       EITHER TERMINAL OR FILE. 
.*
.*
$OFFSW,1. 
CMSI116.
.*
.*     STEP 4.
.*       CHECK BATCH COPY 
.*       IF HRDCPY THEN FOOL WITH OUTPUT
.*       FILE TO GET BOTH TERMINAL COPY 
.*       AND PRINTER COPY.
.*
.*       THEN REVERT BACK TO CMSI400. 
.*
.IF,$HRDCPY$.EQ.$Y$,STEP4.
.*
.*     MAKE PRINTER COPY
$REWIND,OUTPUT. 
$COPYBF,OUTPUT,Q. 
$ROUTE,Q,DC=PR. 
.*
.*     MAKE TERMINAL COPY.
$REWIND,OUTPUT. 
$COPYBF,OUTPUT,Q. 
$REWIND,Q,OUTPUT. 
.*     REASSIGN TERMINAL
$ASSIGN,TT,OUTPUT.
$COPY,Q,. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$RETURN,Q,OUTPUT. 
.*
.ENDIF,STEP4. 
.*
.*
.*
$REVERT.....ABORT FROM CMSI420..
*WEOR 
.PROC,CMSI430*I"UPDATE CMLINST AND CMSI DECK",
SYSVER[ENTER SYSTEM VERSION]=(NOS27,NOS26,NOS25,NOS24,NOS23,NOS6),
HRDCPY'DO YOU WANT A CENTRAL SITE COPY (YES, NO) .(CR)=NO.  END TO STOP'= 
   ( YES=Y, Y, NO=N, N, =N , END,E=END )   .
.*
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI430
.*
.*       UPDATE CMSLINST AND CMSI 
.*
.*    PURPOSE - TO ALLOW ON THE FLY MODS TO BE MADE TO THE CML PROCEDURES.
.*
.*    PARAMETERS - HRDCPY 
.*
.*    CALLED BY - CMSI400 
.*
.*    PROCEDURES CALLED - 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP.
  
     THIS PROCEDURE ALLOWS THE USER TO ADD
     CORRECTIVE CODE MODSETS TO THE CMLINST 
     AND CMSI PROCEDURE DECK.  MODS MUST BE 
     ON AN INDIRECT ACCESS PERMANENT FILE WITH
     THE NAME OF INSTMDS.   SEE THE INSTRUCTIONS
     FOR MODSETS IN THE CML INSTALLATION SECTION
     OF THE CML REFERENCE MANUAL. 
  
     FILE INSTMDS MUST BE IN THE USERS PERMANENT
     FILE CATALOG AND CONTAIN VALED UPDATE DIRECTIVES.
  
     IT IS ALSO REQUIRED THAT THE CML PROGRAM LIBRARY 
     BE AVAILABLE ON THIS USER NUMBERS PERMANENT FILES
     WITH THE NAME OF CMLPL.  THIS FILE MAY BE
     CREATED USING THE CMLUTIL PROCEDURE CMLLOAD. 
  
     THE PROCEDURE WILL REPLACE THE CMLINST PROCEDURE 
     LIBRARY FILE... IT IS THEREFORE NECESSARY THAT 
     REINITIALIZE THE CMSI PROCEDURES FOLLOWING 
     THIS RECREATION.   THIS PROCEDURE WILL CALL
     CMSI500 TO DO THIS REINITIALIZATION. 
  
.HELP,HRDCPY,NOLIST.
  
     THIS PARAMETER SELECTS IF A HARDCOPY IS CREATED
     AND ROUTED TO A CENTRAL SITE PRINTER.
  
     ENTRIES ARE YES , NO , OR END .
  
  
  
.HELP,SYSVER,NOLIST.
  
     ENTER THE PROPER NOS SYSTEM LEVEL FOR THIS 
     OPERATING SYSTEM.
    NOS27 ==> NOS 2.7 
    NOS26 ==> NOS 2.6 
    NOS25 ==> NOS 2.5 
    NOS24 ==> NOS 2.4 
    NOS23 ==> NOS 2.3 
    NOS6  ==> NOS 2.2 OR NOS 2.1
  
.ENDHELP. 
.*
$DISPLAY(PNL) 
.*
.*     STEP 1.
.*       CHECK FOR END
.*
.IF,$HRDCPY$.EQ.$END$.$REVERT,NOLIST. 
.*
.*
.*     STEP 2.
.*       TEST IF MOD FILE 'INSTMDS' IS
.*       AVAILABLE..IF NOT REVERT.
.*
$NOTE.+  GETTING INSTMDS
GETATT,INSTMDS. 
$IF,R1G.EQ.1,STEP2. 
$NOTE.++ CMLINST MODIFICATION FILE INSTMDS NOT
$NOTE.+ FOUND.  THIS PROCEDURE MUST HAVE FILE TO
$NOTE.+ CONTINUE.... PROCEDURE TERMINATING..
$NOTE.++
.*
$SKIP,XENDOUT.
.*
.*
$ENDIF,STEP2. 
.*
.*     STEP 3.
.*       TEST IF CMLPL IS AVAILABLE.  IF
.*       NOT REFER TO CMLUTIL CMLLOAD OPTION
.*       AND TERMINATE. 
.*
$NOTE.+ GETTING CMLPL 
GETATT,CMLPL. 
$IF,R1G.EQ.1,STEP3. 
.*
$NOTE.++ CML PROGRAM LIBRARY NOT FOUND AS 
$NOTE.+ CMLPL AS PERMANENT FILE.  USE CMLUTIL 
$NOTE.+ OPTION CMLLOAD TO INSTALL CMLPL.
.*
$RETURN,INSTMDS.
$SKIP,XENDOUT.
.*
$ENDIF,STEP3. 
.*
.*     STEP 4.
.*       UPDATE CMLINST FROM PL.
.*
$REWIND,CMLPL,INSTMDS,FIXPROC.
$NOTE.+ UPDATING CMLINST ... PLEASE WAIT. 
.*
$UPDATE,Q,P=CMLPL,D,8,C=CMLCCLZ,I=FIXPROC,R=C,L=1.
.*
$RETURN,INSTMDS,FIXPROC,CMLPL.
.*
.*     STEP 4A. 
.*       MAKE BATCH COPY IF REQUESTED.
.*
.*
.IF,$HRDCPY$.EQ.$Y$,STEP4A. 
$REWIND,CMLCCLZ.
$BLOCK,Q,,1./CMLINST//DATE/TIME 
$COPYSBF,CMLCCLZ,Q. 
$ROUTE,Q,DC=LP. 
.*
.ENDIF,STEP4A.
.*
$REWIND,CMLCCLZ.
.*
.*     STEP 4B. 
.*       RETURN LIBRARY PERMANENT FILE. 
.*
$LIBRARY,CMLINST/D. 
$RETURN,CMLINST.
.*
$NOTE.+ (RE)CREATING CMLINST LIBRARY.+
.*
$LIBGEN,F=CMLCCLZ,P=CMLINST.
.*
.*
.*     STEP 4C. 
.*       REPLACE FILE CMLINST.
.*
BEGIN,SAVEIT,CMLINST,CMLINST. 
$RETURN,CMLINST,CMLCCLZ.
.*
.*
.*     STEP 5.
.*       FIX LIBRARY TO USE NEW FILE. 
.*
BEGIN,GETATT,CMLINST,CMLINST. 
$LIBRARY,CMLINST/A. 
.*
.*
$NOTE.++ YOU MUST REINITIALIZE THE CMSI PROCEDURES
$NOTE.+ FOLLOWING THIS REPLACEMENT OF THE CMLINST LIBRARY. ++ 
$NOTE.+ CMSI500 WILL BE CALLED NEXT.++
.*
.*
$NOTE.++  ENTER (CR) TO CONTINUE.+
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*
.*      TO 400      TO 000
$REVERT,EX.$REVERT,EX.CMSI500.
.*
.*
$ENDIF,XENDOUT. 
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$REVERT,NOLIST. 
.*
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
BEGIN,CMSIEFC,CMLINST.
$ENDIF,EXIT1. 
.*
$REVERT.....ABORT FROM CMSI430..
.*
.*--------------------------------- 
.DATA,FIXPROC.
#*ID $NOSDEF
#*DEFINE,NOS
#*DEFINE,SYSVER 
#*READ,INSTMDS
#*COMPILE CMLINST 
.EOR
*WEOR 
.PROC,CMSI500.
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - CMSI500
.*
.*        CMSI INITIALIZATION PROCEDURE 
.*
.*    PURPOSE - INITIALIZE CMSI PROCEDURES WITH SITE DEPENDENT
.*              INFORMATION.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI
.*
.*    PROCEDURES CALLED - CMSI501 , CMSI502 
.*
.* -------------------------------------------------------------
.*
CMSI502.
.*
CMSI501,?.
.*
$CLEAR. 
$REVERT,EX.$BEGIN,CMSI,CMLINST..
*WEOR 
.PROC,CMSI501*I"CMSI -  INITILIZATION  - CMSI501" 
,SYSVER'ENTER SYS. VER. (CR)=NOS252 OR NEWER. '=
(=3,NOS271=3,NOS261=3,NOS253=3,NOS252=3,NOS251=2,NOS24=2,NOS23=1) 
,SITENAME 'ENTER SITENAME ..1-40 CHARS IN $...$    '= 
      (*S40(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$-/ ,$))
,NUMDISK  'ENTER NUMBER OF DISK DRIVES ON SYSTEM   '=(*S3(0123456789))
,MODE     'ENTER TERMINAL EXECUTION MODE (C / T)   '= 
 ( C,CAPTURE=C , T,TERMINAL=T ,AVAILABLE=T ,A=T ) 
,UPFN     'STARTUP PROC.(UPROC) FILENAME, (CR)=NONE'= 
  ( =$$, NO=$$, NONE=$$,N=$$ , *F ) 
,OLDHF    'HPA OLD HISTORY FILE PFN.(CR)=OLDHF     '= ( *F, =OLDHF )
,OLDHFUN  'USERNAME WHERE OLDHF RESIDES            '= (*F)
,RESIDE   'IS OLDHF ON PRIVATE PACK (Y/N) (CR)=N   '= 
  (YES , Y=YES , =NO , N=NO , NO  ) 
,REGMST   'VSN FOR REGEN MASTER TAPE. (CR)=REGMST' = (*F6 , =REGMST)   .
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - CMSI501
.*
.*        CMSI INITIALIZATION PROCEDURE 
.*
.*    PURPOSE - INITIALIZE CMSI PROCEDURES WITH SITE DEPENDENT
.*              INFORMATION.
.*               REPLACES PROCEDURE RECORDS : 
.*               CMSI502 , CMSI , CMSI139 , CMSIPRO 
.*
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI500 
.*
.*    PROCEDURES CALLED - CMSI
.*
.* -------------------------------------------------------------
.*
.HELP,,NOLIST.
  
    CMSI501 IS USED TO INITIALIZE THE CMSI PROCEDURES.  INITIALIZATION
    IS REQUIRED BEFORE THE PROCEDURES CAN BE USED.  ITEMS YOU MUST
    KNOW IN ORDER TO SUCCESSFULLY INITIALIZE THE CMSI PROCEDURES
    INCLUDE-
  
    - THE NOS SYSTEM VERSION THESE PROCEDURES ARE TO
      BE RUN UNDER.   (EG.NOS2.5.1) 
  
    - THE RESIDENCY OF THE HPA OLDHF FILE (OLDHF) 
        ( PACKID AND DEVICE TYPE IF APPLICABLE )
  
    - THE PERM FILE NAME OF THE HPA OLD HISTORY FILE (OLDHF)
  
    - THE USERNAME OF THE PERM FILE CATALOG WHERE OLDHF RESIDES 
  
    - THE SITE NAME 
  
    - THE NUMBER OF DISK DRIVES CONTAINED ON THE SYSTEM 
  
    - THE DESIRED MODE OF OPERATION - CAPTURE OR AVAILABLE
  
    - USER START UP PROCEDURE (UPROC) , IF ANY. 
  
    - THE VSN OF THE REGEN MASTER DATA TAPE. DEFAULT IS REGMST. 
  
.HELP,SYSVER. 
  
     THIS PARAMETER ALLOWS FOR THE CORRECT INCLUSION
     OF NOS CCL AND NOS COMMANDS WHICH HAVE CHANGED BY
     SYSTEM LEVELS RELEASED.
  
     PLEASE ENTER THE CORRECT NOS SYSTEM LEVEL: 
     ENTER THE PROPER NOS SYSTEM LEVEL FOR THIS 
     OPERATING SYSTEM AS FOLLOWS. 
     THE DEFAULT FOR THE SYSTEM VERSION IS THE CO-RELEASED
        NOS271  FOR NOS 2.7.1 
        NOS261  FOR NOS 2.6.1 
        NOS253  FOR NOS 2.5.3 
        NOS252  FOR NOS 2.5.2 
        NOS251  FOR NOS 2.5.1 
        NOS24   FOR NOS 2.4.X 
        NOS23   FOR NOS 2.3.X 
  
.HELP,SITENAME,NOLIST.
  
   THE SITENAME IS USED ON THE REPORTS PRODUCED BY MTPLOT AND 
   DSPLOT.  ITS SIZE CAN RANGE FROM 1 TO 40 ALPHANUMERIC
   CHARACTERS AS WELL AS THE SPECIAL CHARACTERS  -, /, (SPACE), 
   AND , (COMMA). 
  
     IF CMSI IS USED IN LINE MODE AND 
   IF THE SITENAME CONTAINS ANY OF THE SPECIAL CHARACTERS (INCLUDING
   SPACE), IT MUST BE ENCLOSED IN DOLLAR SIGNS ($.....$). 
  
      EXAMPLE - $SITE - A$
  
  
     IF CMSI IS USED IN SCREEN MODE $ ARE NOT USED
     AROUND THE SITE NAME.
.HELP,OLDHF,NOLIST. 
  
   THE HPA HISTORY FILE (OLDHF) IS USED BY THE HPA INTERFACE
     PROCEDURES.  YOU MUST ENTER THE PERMANENT FILE NAME OF THE 
   HISTORY FILE.  (IF THE HPA HISTORY FILE RESIDES IN AN
   ALTERNATE USER'S CATALOG, DON'T WORRY ABOUT THAT NOW.  THE 
   USERNAME WILL BE REQUESTED AT THE NEXT PROMPT. 
  
   THE PERNAMENT FILE NAME MAY CONSIST OF FROM 1 TO 7 ALPHANUMERIC
   CHARACTERS.
  
     DEFAULT FOR THE OLD HISTORY FILE NAME IS OLDHF.
  
.HELP,OLDHFUN,NOLIST. 
  
   THE CMSI PROCEDURES MUST KNOW IN WHICH USER'S PERMANENT FILE 
   CATALOG THE HPA HISTORY FILE RESIDES, EVEN IF IT IS THE
   USERNAME UNDER WHICH YOU ARE NOW RUNNING.  IF IT RESIDES IN
   ANOTHER USER'S CATALOG, MAKE SURE THAT IT IS EITHER PERMITTED
   TO THIS USERNAME (READ ACCESS), OR IS SEMI-PRIVATE OR PUBLIC.
  
   THE USERNAME MAY CONSIST OF FROM 1 TO 7 ALPHANUMERIC CHARACTERS. 
  
.HELP,NUMDISK,NOLIST. 
  
   THE PROGRAM DSPLOT MUST KNOW THE NUMBER OF DISK DRIVES ATTACHED
   TO THE SYSTEM.  ENTER THE NUMBER AT THIS TIME. 
  
.HELP,MODE,NOLIST.
  
   THE CMSI PROCEDURES CAN BE EXECUTED IN EITHER OF TWO INTERACTIVE 
   MODES- CAPTURE (C) OR AVAILABLE TERMINAL (T).
  
   - C -
   IN CAPTURE MODE, THE CMSI PROCEDURES ARE AUTOMATICALLY STARTED 
   WHEN THE USER LOGS IN.  THIS EXECUTION MODE IS DESIRABLE FOR 
   NOVICE USERS OR WHERE A USERNAME IS LIMITED TO MAINTENANCE 
   ACTIVITIES.  THE USER MAY STILL EXIT FROM THE PROCEDURES AND 
   EXECUTE NOS COMMANDS DIRECTLY THROUGH USE OF A MENU SELECTION. 
  
   - T -
   IN TERMINAL AVAILABLE MODE, THE USER IS MADE AWARE OF THE CMSI 
   PROCEDURES, BUT THEY ARE NOT AUTOMATICALLY STARTED.  THE USER
   MUST EXPLICITLY PERFORM THE NECESSARY COMMANDS TO INITIATE CMSI
   EXECUTION. 
  
   EITHER SELECTION (C OR T) WILL RESULT IN A USER PROLOG BEING 
   GENERATED. 
  
   ENTER C TO SELECT CAPTURE MODE; T TO SELECT TERMINAL AVAILABLE 
   MODE.
  
.HELP,RESIDE,NOLIST.
  
     THE OLD HISTORY CAN RESIDE ON A PRIVATE OR 
     REMOVABLE PACK.  IF THIS IS THE CASE THEN
     THE ANSWER TO THIS PROMPT IS YES.  THE NEXT
     PROCEDURE WILL REQUIRE THE ENTRY OF THE
     PACK NAME AND THE DEVICE TYPE. 
     SEE THE NOS REFERENCE MANUAL VOLUME 3 FOR
     THE VALID DEVICE TYPES.
  
.HELP,UPFN,NOLIST.
  
     IF YOU ARE CURRENTLY USING A USER PROLOG PROCEDURE 
     (UPROC) STARTED BY THE SYSTEM AT EACH LOGIN, ENTER 
     THAT FILE NAME.   IF YOU HAVE NO SUCH OR DO NOT WISH 
     TO USE IT AT JOB START TIME , ENTER (CR).
  
     - NOTE:  
        THE FIRST PROCEDURE ON THE SUPPLIED FILE NAME 
        (UPFN) WILL BE STARTED.   THE COMMAND ISSUED IS 
        "BEGIN,,UPFN."
  
  
     IT IS THE USERS RESPONSIBILITY TO INSURE THAT THE
     PROCEDURE DOES NOT PREVENT  CMSI  FROM RUNNING AND 
     THAT IT ORDERLY REVERTS WHEN COMPLETED.
  
     IT IS THE USERS RESPONSIBILITY TO PROVIDE THIS 
     PROCEDURE IF IT IS DESIRED.
  
.HELP,REGMST,NOLIST.
  
     THE CURRENT AND DEFAULT TAPE VSN FOR THE REGEN MASTER DATA 
     TAPE IS *REGMST*.   IF IT IS NECESSARY TO USE ANOTHER VSN, 
     ENTER THAT 6 CHARACTER VSN.  (CR) ACCEPT *REGMST*. 
  
     THE VSN WILL BE PERMANENTED CHANGED UNTIL THIS CMSI INITIALIZATION 
     IS AGAIN EXECUTED. 
  
     (CR) USE *REGMST*
  
     NNNNNN = CHANGE REGEN VSN TO NNNNNN. 
.ENDHELP. 
.*
.*    INFORM THE USER OF THE CURRENT INITILIZATION
.*
.*
.IF,$RESIDE$.EQ.$YES$,STEP1.
.*
.*     CALL FOR PRIVATE PACK INFO IN CMSI503. 
.*
CMSI503,#RESIDE=RESIDE,#OLDHF=OLDHF,#OLDHFUN=OLDHFUN. 
.*
.ELSE,STEP1.
.*
.*     CALL FOR NON-PACK OLDHF....
.*
CMSI503,#RESIDE=RESIDE,#OLDHF=OLDHF,#OLDHFUN=OLDHFUN,#PACKID=Z,#DEVICE=Z. 
.*
.ENDIF,STEP1. 
.*    GENERATE THE NEW PROCEDURES TO REPLACE THOSE EXISTING IN
.*    CMLINST.
.*
$REWIND,CMSI139,OLDHIST,CMSI,CMSIPRO,CMSI502,CMLINST,CMSI116. 
$REWIND,CMS260E.
$REWIND,GETRVSN.
$RETURN,OLD.
.*
.*    PREPARE THE REPLACEMENT FILE AND THE OLD LIBRARY. 
.*
$NOTE.+++ PREPARING LIBFILE + 
$COPYCR,CMSI502,LIBFILE.
$COPYCR,CMSI,LIBFILE. 
$COPYCR,CMSI116,LIBFILE.
$COPYCR,GETRVSN,LIBFILE.
$COPYCR,CMSI139,LIBFILE.
$COPYCR,CMS260E,LIBFILE.
$COPYCR,OLDHIST,LIBFILE.
$COPYCF,LIB501,LIBFILE. 
.*
$COPYEI,CMLINST,OLD,V.
.*
.*    PERFORM THE LIBEDIT AND CHECK FOR ERRORS. 
$NOTE.+ EDITING CMLINST LIBRARY + 
.*
$LIBEDIT,B=LIBFILE,LO=E,L=LIBLIST,U,I=0.
.*
.*    RETURN THE OLD CMLINST LIBRARY, CLEAR THE GLOBAL LIBRARY SET, 
.*    COPY THE NEW LIBRARY OVER THE OLD CMLINST, RE-ATTACH IT AND 
.*    REINSTATE IT AS A NEW GLOBAL LIBRARY. 
.*
$LIBRARY,CMLINST/D. 
$RETURN,CMLINST.
$NOTE.+ REPLACING LIBRARY. +
.*
$RENAME,CMLINST=NEW.
BEGIN,SAVEIT,CMLINST,CMLINST. 
.*
$RETURN,OLD,NEW,LIBFILE,CMLINST,CMSI,CMSI139,OLDHIST,LIBLIST. 
$RETURN,CMS260E.
$RETURN,LIB501,GETRVSN. 
.*
BEGIN,GETATT,CMLINST,CMLINST. 
.*
$LIBRARY,CMLINST/A. 
.*
.*    SAVE THE USER PROLOG FILE AND ISSUE A UPROC STATEMENT.
.*
$REPLACE,CMSIPRO. 
$UPROC,FN=CMSIPRO.
.*
.*    INFORM THE USER OF SUCCESSFUL INITILIZATION 
.*
$NOTE.++ INITIALIZATION SUCCESSFUL ++ 
$NOTE.+  INITIALIZATION COMPLETE  ++
.*
.*    RETURN TO THE INITIAL CMSI PROCEDURE. 
.*
$REVERT,NOLIST. 
$EXIT.
.*
.*    ERRORS ENCOUNTERED DURING LIBRARY GENERATION... TERMINATE THE 
.*    INITIALIZATION PROCESS. 
.*
$NOTE.++ INITIALIZATION ERRORS..LIBRARY GENERATION TERMINATED...++
$NOTE.++ SEE FILE LIBLIST FOR ERROR SPECIFICS... ++ 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*  TO 500    TO 000    TO BATCH SUBSYS.
$REVERT,EX.$REVERT,EX.REVERT,ABORT...FROM CMSI501...
.*
.*
.* -----------------
.*
.*
.DATA,LIB501. 
.PROC,BININST.
$NOTE.++  BININST DELETED FROM CMLINST BY CMSI. 
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....BININST....CMSI MODIFIED...
.EOR
.PROC,INTINST.
$NOTE.++  INTINST DELETED FROM CMLINST BY CMSI. 
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....INTINST....CMSI MODIFIED...
.EOR
.PROC,INTSYS. 
$NOTE.++  INTSYS DELETED FROM CMLINST BY CMSI.
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....INTSYS....CMSI MODIFIED... 
.EOR
.PROC,INTHDW. 
$NOTE.++  INTHDW DELETED FROM CMLINST BY CMSI.
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....INTHDW....CMSI MODIFIED... 
.EOR
.PROC,CMLINST.
$NOTE.++  CMLINST DELETED FROM CMLINST BY CMSI. 
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....CMLINST....CMSI MODIFIED...
.EOR
.PROC,CML.
$NOTE.++  CML DELETED FROM CMLINST BY CMSI. 
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....CML....CMSI MODIFIED...
.EOR
.PROC,CML1. 
$NOTE.++  CML1 DELETED FROM CMLINST BY CMSI.
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....CML1....CMSI MODIFIED... 
.EOR
.PROC,CML2. 
$NOTE.++  CML2 DELETED FROM CMLINST BY CMSI.
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....CML2....CMSI MODIFIED... 
.EOR
.PROC,CML3. 
$NOTE.++  CML3 DELETED FROM CMLINST BY CMSI.
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....CML3....CMSI MODIFIED... 
.EOR
.PROC,CML4. 
$NOTE.++  CML4 DELETED FROM CMLINST BY CMSI.
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....CML4....CMSI MODIFIED... 
.EOR
.PROC,CML5. 
$NOTE.++  CML5 DELETED FROM CMLINST BY CMSI.
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....CML5....CMSI MODIFIED... 
.EOR
.PROC,CML5A.
$NOTE.++  CML5A DELETED FROM CMLINST BY CMSI. 
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....CML5A....CMSI MODIFIED...
.EOR
.PROC,CML6. 
$NOTE.++  CML6 DELETED FROM CMLINST BY CMSI.
$NOTE.+  IF THIS PROC. IS NEEDED, ACQUIRE IT
$NOTE.+  FROM THE CML RELEASE TAPE OR CMLPL FILE.++ 
$REVERT....CML6....CMSI MODIFIED... 
.EOR
.*
.*----------------
.*
.DATA,CMSI502.
.PROC,CMSI502.
.*
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - CMSI502
.*
.*        CMSI INITIALIZATION PROCEDURE 
.*
.*    PURPOSE - INITIALIZE CMSI PROCEDURES WITH SITE DEPENDENT
.*              INFORMATION.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI500 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------------
.*
$REWIND,OLDPARM.
$COPYCF,OLDPARM,OUTPUT. 
.*
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$REVERT,NOLIST. 
.*
.*
.*----------------- 
.*
#.DATA,OLDPARM. 
#*--------------------------------------* 
#*                                      * 
#*  CURRENT SITE PARAMETERS             * 
#*                                      * 
#*   #SYSVER   =   SYSVER 
#*
#*   #SITE-NAME  =  SITENAME
#*                                      * 
#*   #OLDHF-NAME =  OLDHF 
#*                                      * 
#*   #OLDHF USER NAME =  OLDHFUN
#*                                      * 
#*  #NUMBER OF DISKS =  NUMDISK 
#*                                      * 
#*   #CMSI USAGE #MODE =  MODE
#*
#*   #REGEN MASTER VSN = REGMST 
#*                                      * 
#*--------------------------------------* 
* 
.*
.DATA,CMSI. 
.PROC,CMSI. 
#.* 
#.* ------------------------------------------------------------- 
#.* 
#.*    PROCEDURE NAME - CMSI
#.* 
#.*    PURPOSE - PASS CONTROL TO CMSI000
#.* 
#.*    PARAMETERS - NONE
#.* 
#.*    CALLED BY - CMSI500, DIRECTLY BY THE USER
#.* 
#.*    PROCEDURE CALLED - CMSI000 
#.* 
#.*    NOTE -   THIS PROCEDURE IS PLACED INTO THE CMLINST LIBRARY 
#.*             BY THE CMSI INITIALIZATION PROCEDURE CMSI.  IT
#.*             REPLACES THE CMSI THAT IS PRESENT IN THE CMLINST
#.*             LIBRARY FOLLOWING INSTALLATION OF CML.
#.* 
#.* ------------------------------------------------------------- 
#.* 
$IF,FILE(CMLINST,.NOT.LI).LIBRARY,CMLINST/A.
.*
$IF,OT.NE.IAO.$REVERT.  - END CMSI -
.*
$NOTE.++**  WELCOME TO THE COMMON MAINTENANCE SOFTWARE INTERFACE  ** ++ 
CMSI000.
$REVERT.  - END CMSI -- 
.*
.*--------------------- 
.*
.DATA,CMSI116.
.PROC,CMSI116.
#.* 
#.* --------------------------------------------------------
#.* 
#.*    PROCEDURE NAME - CMSI116 
#.* 
#.*       PRINT SYSTEM EST TABLE. 
#.* 
#.*    PURPOSE - PRINT THE EST TABLE IN 1 OF 2 FORMS. 
#.* 
#.*    PARAMETERS - SENSE SWITCH 1
#.* 
#.*    CALLED BY - MANY 
#.* 
#.*    PROCEDURES CALLED - NONE 
#.* 
#.* --------------------------------------------------------
#.* 
#.*     RUN FTN JOB TO LIST EST 
$REWIND,ESTPRT. 
$NOEXIT.
#.* 
$GETLOG.
$ONEXIT.
$RETURN,ERR.
$IF,FILE(OUTPUT,.NOT.TT).$BLOCK,,,1./EST LISTING///DATE/TIME
#.* 
$NOTE.++ EST TABLE LISTING++
#.* 
$MAP,OFF. 
$FTN5,I=ESTPRT,GO,B=LGOXXX,L=0. 
$RETURN,ERR,LGOXXX,BML,EST,ESTPRT.
#.* 
$IF,FILE(OUTPUT,TT),STEP1.
$NOTE,,NR.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
#.* 
$ENDIF,STEP1. 
$REVERT,NOLIST. 
#.* 
#.* 
$EXIT.
$REVERT...ABORT FROM CMSI116..
#.*-----------------------
#.DATA,ESTPRT.
      PROGRAM ESTPRT(INPUT=513,OUTPUT=513,EST=513,TAPE50=EST) 
* 
*          CODE REMOVED FROM NORM L647  GETEST PROGRAM
*           SUBROUTINE.   MODIFIED FOR CMSI  12/23/85     RVS 
*               MODIFIED FOR NOS 2.5.2 EST TABLE/CIO ..87/03/18.. 
* 
      IMPLICIT INTEGER (A-Z)
      DIMENSION ESTFIT(35), ESTBUF(11)
      DIMENSION IEST(512),IPAR(2),ICH (10)
       CHARACTER*10 ZDATE,ZTIME,DATE,TIME 
      DATA INPUT / L"INPUT"  /
      DATA IPAR(1) / L"OUTPUT" /
      DATA IPAR(2) / L"EST" / 
       DATA ICH / L" ",L"S",L"M",L"R",L"L",L"U",L"D",L"I",L"A",L"C" / 
      EST = 50
* 
*       GET PRINT OPTION FLAG 
*          SW1 ON = PRINT ONLY DISKS (YSW = 1)
      CALL SSWTCH(1,YSW)
      REWIND EST
* 
*     GET COPY OF EST TABLE FROM AN S-TYPE RECORD MANAGER FILE
* 
      CALL FILESQ (ESTFIT,L"LFN",IPAR(2),L"RT",L"S",L"BT",L"C",L"WSA",ES
     .TBUF,                     L"MRL",50070) 
      CALL OPENM (ESTFIT, L"INPUT", L"R") 
* 
*     GET EST HEADER INFO FROM THE EST FILE (11 WORDS X 10 CHARACTERS)
* 
      MAXEST = 0
      CALL GETP (ESTFIT,ESTBUF,90)
      IF (IFETCH(ESTFIT,L"FP") .EQ. O"100") GO TO 70
      MAXEST = SHIFT(ESTBUF(1),-12) .AND. O"7777" 
      MAXCHAR = (ESTBUF(1) .AND. O"7777") * 10
* 
*     GET EST ENTRIES (WORDS PER ENTRY X 10 CHARACTERS = MAXCHAR) 
* 
      DO 60 J = 1,MAXEST
      CALL GETP (ESTFIT,ESTBUF,MAXCHAR) 
   60 IEST(J) = ESTBUF(1) 
   70 CALL CLOSEM (ESTFIT)
* 
      IF ( MAXEST .EQ. 0 )  GOTO 160
      ZDATE = DATE()
      ZTIME = TIME()
* 
*     PRINT THE EST TABLE 
* 
      PRINT 99,ZDATE,ZTIME
99    FORMAT ( "1",  // 24X,">>>>>    E S T    <<<<<",// ,
     1  20X,"DATE ",A10,3X,"TIME ",A10, /1X,78("-"),//
.IF,$SYSVER$.EQ.$2$ .OR. $SYSVER$.EQ.$1$ ,NOSX1.
     1  29X,"RMS FLAGS FROM BYTE-0 OF EST WORD:",/
     2  30X," S=SYSTEM FILES  ,  M= SHARED MMF",/ 
     3  30X," R=REMOVABLE     ,  L='LDAM' DEVICE",/ 
     4  30X," U=UNAVAILABLE   ,  D=DOWN & OFF ",/ 
     5  30X," I=INDEPENDENTLY SHARED DEVICE ",/ 
     6  30X," A= ACTIVE       ,  C=CHECKPOINT",/
     7  30X," ST = STATUS."                        / )
      PRINT 100 
100   FORMAT (
     1 1X," EST  DEVICE       PRIM  SEC.  EQ  BYTE-4 OR"/ 
     2 1X," NO.   TYPE  STAT  CHAN CHAN   NO. " 
     3 , "RMS FLAG*  MST ADDR.  EST ORD",13(".") / )
.ELSE,NOSX1.
     1  3X,"*CHANNEL TYPE AND STATUS FLAGS ",5X,
     1                      "**RMS FLAGS FROM BYTE-0 OF EST WORD:",/
     2  6X,"FORMAT IS X-YZ-NN WHERE        ",4X,
     2                        " S=SYSTEM FILES  ,  M= SHARED MMF",/ 
     3  6X,"X - CHANNEL STATUS: U=UP,      ",4X,
     3                      " R=REMOVABLE     ,  L='LDAM' DEVICE",/ 
     4  6X,"    I=IDLE, D=DOWN, N=UNUSED   ",4X,
     4                        " U=UNAVAILABLE   ,  D=DOWN & OFF ",/ 
     5  6X,"Y - CHAN TYPE: N=NIO, C=CIO    ",4X,
     5                          " I=INDEPENDENTLY SHARED DEVICE ",/ 
     6  6X,"Z - CONCURRENT CHAN PORT: A OR B",3X, 
     6                         " A= ACTIVE       ,  C=CHECKPOINT",/ 
     7  6X,"     (PERIOD FOR NIO CHAN)     "                      / 
     8  6X,"NN - THE CHANNEL NUMBER: 0-37  "                      / 
     9  6X,"V - CHANNEL PRESENT/ENABLE FLAG"                      / 
     1  6X,"    * = DISABLED OR NOT PRESENT"                    / ) 
      PRINT 100 
100   FORMAT (
     1 1X,"EST DVCE  EQ   CHANNEL..+..STATUS  EQ  BYTE-4 OR   MST"/ 
     2 1X,"NO. TYPE STAT  PRIMARY.....SECOND  NO. " 
     3 , "RMS FLAG**  ADDR.  EST ORD",13(".") / 
     4 ,1X,15X,"X-YZ-NNV  X-YZ-NNV ") 
.ENDIF,NOSX1. 
* 
      DO 150 J = 1,MAXEST 
      IF (IEST(J) .EQ. 0) GO TO 150 
      ORD = J - 1 
      IDT = SHIFT (IEST(J),48) .AND. O"3777"
      IF (IDT .EQ. 0) GO TO 150 
* 
*     ----- CODE FOR NOS .LE. 2.5.1 ----- 
.IF,$SYSVER$.EQ.$2$ .OR. $SYSVER$.EQ.$1$,NOSX2. 
      IZ = IEST(J).AND.O"00000000000040000000"
      IF(IZ.EQ.0)ON = L"ON "
      IF(IZ.NE.0)ON = L"OFF"
* 
      PF1 = PF2 = L"    " 
      PL1 = SHIFT(IEST(J),24).AND.O"0077" 
      PL2 = SHIFT(IEST(J),18).AND.O"0077" 
      IF(PL1.GT.O"0040") PF1 = L"*   "
      IF(PL1.GT.O"0040") PL1 = PL1.AND.O"0037"
      IF(PL2.GT.O"0040") PF2 = L"*   "
      IF(PL2.GT.O"0040") PL2 = PL2.AND.O"0037"
.ELSE,NOSX2.
*     ----- CODE FOR NOS .GE. 2.5.2 ----- 
      IZ = SHIFT(IEST(J),12).AND.O"0003"
      IF(IZ.EQ.0) ON = L" ON "
      IF(IZ.EQ.1) ON = L"IDLE"
      IF(IZ.EQ.2) ON = L" OFF"
      IF(IZ.EQ.3) ON = L"DOWN"
* 
*     SET UP THE CHANNEL FLAG.
      PF1=PF2 = R"----" 
      PL1 = SHIFT(IEST(J),24).AND.O"7777" 
      PL2 = SHIFT(IEST(J),36).AND.O"7777" 
      CD1 = CD2 = R" "
      IF((PL1.AND.O"4000").EQ.O"0000") CD1 = R"*" 
      IF((PL2.AND.O"4000").EQ.O"0000") CD2 = R"*" 
*     ----- CHECK CHANNEL STATUS -----
      IF(CD1.EQ.R"*") GOTO 110
      IF((PL1.AND.O"3000").EQ.O"0000" )PF1 = R"U-"
      IF((PL1.AND.O"3000").EQ.O"1000" )PF1 = R"I-"
      IF((PL1.AND.O"3000").EQ.O"2000" )PF1 = R"N-"
      IF((PL1.AND.O"3000").EQ.O"3000" )PF1 = R"D-"
*     ----- CHECK CHANNEL TYPE (N/C)
      IF((PL1.AND.O"0040").EQ.0 ) THEN
       PF1 = SHIFT(PF1,12).OR.R"N." 
        GOTO 110
        ELSE
       PF1 = SHIFT(PF1,12)
*     ----- CHECK CIO PORT -----
      IF((PL1.AND.O"0200").EQ.O"0000")
     1  PF1=PF1.OR.R"CA"
      IF((PL1.AND.O"0200").EQ.O"0200")
     1  PF1=PF1.OR.R"CB"
       END IF 
*     ----- CHECK SECOND CHANNEL -----
110    IF(CD2.EQ.R"*") GOTO 120 
      IF((PL2.AND.O"3000").EQ.O"0000" )PF2 = R"U-"
      IF((PL2.AND.O"3000").EQ.O"1000" )PF2 = R"I-"
      IF((PL2.AND.O"3000").EQ.O"2000" )PF2 = R"N-"
      IF((PL2.AND.O"3000").EQ.O"3000" )PF2 = R"D-"
*     ----- CHECK CHANNEL TYPE (N/C)
      IF((PL2.AND.O"0040").EQ.0 ) THEN
       PF2 = SHIFT(PF2 , 12).OR. R"N."
       GOTO 120 
       ELSE 
*     ----- CHECK CIO PORT -----
      PF2 = SHIFT(PF2,12) 
      IF((PL2.AND.O"0200").EQ.O"0000")
     1  PF2=PF2 .OR. R"CA"
      IF((PL2.AND.O"0200").EQ.O"0200")
     1  PF2=PF2 .OR.R"CB" 
       END IF 
*     ----- SET CHANNEL NUMBER -----
120   PL1 = PL1 .AND. O"0037" 
      PL2 = PL2 .AND. O"0037" 
.ENDIF,NOSX2. 
* 
* 
      EQ = SHIFT(IEST(J),-9).AND.O"0007"
* 
      BY4 = IEST(J).AND.O"7777" 
* 
      IZ = SHIFT(IEST(J),1).AND.O"0001" 
* 
      IF ( IZ.EQ. 0 ) THEN
*           SKIP IF SW 1 IS ON : PRINT ONLY DISKS 
.IF,$SYSVER$.EQ.$2$ .OR. $SYSVER$.EQ.$1$ ,NOSX3.
         IF(YSW.EQ.2)PRINT 144,ORD,IDT,ON,PL1,PF1,PL2,PF2,EQ,BY4,IEST(J)
144      FORMAT(2X,O3,4X,R2,4X,A3,2(2X,O2,A1),4X,O1,5X,O4,16X,O20)
.ELSE,NOSX3.
         IF(YSW.EQ.2)PRINT 144,ORD,IDT,ON,PF1,PL1,CD1,PF2,PL2,CD2,
     1   EQ,BY4,IEST(J) 
144      FORMAT(1X,O3,2X,R2,2X,A4,2(2X,R4,"-",O2,R1),2X,O1, 
     1 3X,O4,15X,O20 )
.ENDIF,NOSX3. 
      ELSE
         EQ = 0 
         PLMA = SHIFT(IEST(J),3).AND.O"77770" 
         BYT0=L".........." 
         BY0 = SHIFT(IEST(J),12).AND.O"7777"
         DO 139 I = 1 , 10
         IF( (BY0.AND.O"4000") .NE. O"4000" ) GOTO 138
         BYT0 = (BYT0.AND.O"00777777777777777777").OR. ICH(I) 
138      BYT0 = SHIFT(BYT0 , 6) 
         BY0 = SHIFT(BY0 , 1 )
139      CONTINUE 
.IF,$SYSVER$.EQ.$2$ .OR.$SYSVER$.EQ.$1$ ,NOSX4. 
         PRINT 143,ORD,IDT,ON,PL1,PF1,PL2,PF2,BYT0,PLMA,IEST(J) 
143      FORMAT(2X,O3,4X,R2,4X,A3,2(2X,O2,A1),4X,1X,3X,R9 
     1  , 4X,O5,4X,O20) 
.ELSE,NOSX4.
         PRINT 143,ORD,IDT,ON,PF1,PL1,CD1,PF2,PL2,CD2,
     1   BYT0,PLMA,IEST(J)
143      FORMAT(1X,O3,2X,R2,2X,A4,2(2X,R4,"-",O2,R1),2X,1X,1X,
     1   R9,4X,O5,3X,O20) 
.ENDIF,NOSX4. 
* 
      END IF
  150 CONTINUE
  160 CONTINUE
      PRINT 98
98    FORMAT (  1X,78("-") ,/ 10X,"END OF EST LIST" / ) 
      END 
#.EOF 
.DATA,CMSI139.
.PROC,CMSI139*I,
OPT130, 
NUMDAYS[NUMBER OF DAYS TO PROCESS]=(*N=2) . 
#.* 
#.* ------------------------------------------------------------- 
#.* 
#.*    PROCEDURE NAME - CMSI139 
#.* 
#.*        CREATE MTPLOT/DSPLOT INPUT DATA FILE 
#.* 
#.*    PURPOSE - THIS PROCEDURE IS USED BY THE HPA INTERFACE PROCEDURES 
#.*              TO CREATE A LOCAL FILE FOR INPUT TO MTPLOT OR DSPLOT.
#.*              THIS FILE WILL CONTAIN THE SITENAME (FOR MTPLOT) OR
#.*              THE SITENAME, NUMBER OF DISK UNITS, AND NUMBER OF DAYS 
#.*              TO PROCESS FROM THE HPA HISTORY FILE (FOR DSPLOT). 
#.*              (NOTE THAT NUMBER OF DAYS IS PRESENTLY FORCED TO 2.
#.*              THIS MAY BE CHANGED TO A PROMPTED PARAMETER IN A FUTURE
#.*              RELEASE.)  THE GENERATION OF EITHER A MTPLOT INPUT FILE
#.*              OR A DSPLOT INPUT FILE IS BASED ON PARAMETER OPT130.  A
#.*              VALUE OF 4 OR 6 PRODUCES A DSPLOT FILE WHILE A VALUE OF
#.*              3 OR 5 PRODUCES A MTPLOT FILE. 
#.* 
#.*    PARAMETERS - OPT130, NUMDAYS 
#.* 
#.*    CALLED BY - CMSI133,CMSI135
#.* 
#.*    PROCEDURES CALLED - NONE 
#.* 
#.* ------------------------------------------------------------- 
#.* 
$REWIND,PLOTIN. 
$REVERT.   - END CMSI139 -
#.DATA,PLOTIN.
SITENAME
#.IF,(OPT130.EQ.4),DSPLOT4. 
NUMDISK 
NUMDAYS 
#.ENDIF,DSPLOT4.
#.IF,(OPT130.EQ.6),DSPLOT6. 
NUMDISK 
8 
#.ENDIF,DSPLOT6.
.*
.*------------------
.*
.DATA,CMS260E.
.PROC,CMS260E.
.*
.* ---------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMS260E
.*
.*      CDCNET INTERFACE
.*
.*    PURPOSE - MAIN ENTRY TO CMSI/CDCNET MENUS 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI200 
.*
.*    PROCEDURES CALLED - CMSI260, CMS2608, CMS260F 
.*
.* ---------------------------------------------------- 
.*
IF,$SYSVER$.EQ.$2$ .OR. $SYSVER$.EQ.$1$,NONET.
$NOTE.++  CDCNET DIAGNOSTICS NOT AVAILABLE +
$NOTE.++  AT CURRENT INSTALLED NOS LEVEL.  +
$NOTE.++  ENTER (CR) TO CONTINUE.          +
COPYCR,INPUT,TRASH. 
RETURN,TRASH. 
ELSE,NONET. 
.*
SET,EF=0. 
ASCII.
.*
.*   RESET INTERNAL FILES 
.*
RETURN,ZZZRESP. 
RETURN,ZZZPRP.
RETURN,ZZZSTRT. 
RETURN,ZZZDI. 
RETURN,ZZZCMDI. 
RETURN,ZZZCMDS. 
RETURN,ZZZSW. 
RETURN,ZZZEND.
.*
.*   INITIALIZE FILES FOR CMSI/CDCNET MENUS.
CMS2608.
IF,SL.EQ.SCREEN,STEP1.
TRMDEF,PG=N.
.*   START CMSI/CDCNET MENUS. 
CMSI260?. 
ELSE,STEP1. 
TRMDEF,PG=Y.
.*   GIVE WARNING MESSAGE.
CMS260F.
.*   START CMSI/CDCNET MENUS. 
CMSI260.
ENDIF,STEP1.
ENDIF,NONET.
$REVERT,NOLIST. 
$EXIT.
.*   EXIT CMSI/CDCNET MENUS.
CMS2609.
$REVERT,NOLIST. 
.DATA,CMSIPRO.
.PROC,CMSIPRO.
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - CMSIPRO
.*
.*        COMMON MAINTENANCE SOFTWARE INTERFACE (CMSI) PROLOG 
.*
.*    PURPOSE - THIS PROCEDURE WILL TAKE ONE OF TWO FORMS FOLLOWING 
.*              INITIALIZATION.  IT WILL ALWAYS BE CALLED UPON
.*              COMPLETION OF USER VALIDATION.  IF CALLED FROM A
.*              NON-TIMESHARING JOB, EXIT WILL OCCUR IMMEDIATELY. 
.*              FOR TIMESHARING JOBS, IF CAPTURE MODE (C) WAS SELECTED
.*              DURING CMSI INITILIZATION, THIS PROCEDURE WILL
.*              AUTOMATICALLY CALL THE OPENING MENU OF CMSI.
.*              IF TERMINAL AVAILABLE MODE (T) WAS SELECTED, THE
.*              USER WILL BE PRESENTED AN INFORMATIVE MESSAGE 
.*              INDICATING HOW TO INITIATE THE CMSI PROCEDURES, 
.*              AND THEN EXIT TO NOS. 
.*
.*               IF A USER PROLOG IS IN USE IT IS FIRST 
.*               STARTED BY CMSI.  THE USER MUST INSURE 
.*               THAT THE PROCEDURE DOES NOT PREVENT CMSI 
.*               FROM RUNNING.
.*
.*
.*   - NOTE:  
.*      THE FIRST PROCEDURE ON THE SUPPLIED FILE NAME 
.*      (UPFN) WILL BE STARTED.   THE COMMAND ISSUED IS 
.*      "BEGIN,,UPFN."
.*
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - VALIDATION COMPLETION 
.*
.*    PROCEDURES CALLED - CMSI000 
.*
.* -------------------------------------------------------------
.*
$IF,OT.NE.IAO.$REVERT. - END CMSIPRO -
$IF,(OT.EQ.BCO).OR.(OT.EQ.RBO).OR.OT.EQ.SYO).$REVERT. - END CMSIPRO - 
* 
.*
.IF,$UPFN$.NE.$$,STEP1. 
.*
BEGIN,GETATT,CMLINST,UPFN.
 $IF,FILE(UPFN,AS),STEP1A.
  BEGIN,,UPFN.        START USER START-UP PROC. 
  $RETURN,UPFN. 
  $NOTE.+ END #USER SUPPLIED PROC. UPFN 
  $NOTE.++ ENTER (CR) TO CONTINUE.+ 
  $COPYCR,INPUT,TRASH.
  $RETURN,TRASH.
 $ENDIF,STEP1A. 
.ENDIF,STEP1. 
$RETURN,CMSIPRO.
* 
.IF,$MODE$.EQ.$C$,AVAILABLE.
$BEGIN,CMSI,CMLINST.
.ELSE,AVAILABLE.
$NOTE.+  ****  CMSI  AVAILABLE (CML859)  **** 
$NOTE.+ TO EXECUTE CMSI ENTER:  "BEGIN,CMSI,CMLINST" ++ 
.ENDIF,AVAILABLE. 
$REVERT. -- END CMSI PROLOG --
.*
.* ---------------------------------------------------------- 
.*
.DATA,GETRVSN.
.PROC,GETRVSN.
#.*   PROCEDURE REPLACED AT INITIALIZATION TIME BY CMSI501....
#.*   PROCEDURE ADDED BY PSR CML0822 TO ALLOW VARIABLE REGEN TAPE VSN 
#.* 
#.* 
#.* --------------------------------------------------------
#.* 
#.*    PROCEDURE NAME - GETRVSN 
#.* 
#.*       GET THE REGEN MASTER TAPE VSN 
#.* 
#.*    PURPOSE - ALLOWS THE INITIALIZATION JOB TO CHANGE THE VSN
#.* 
#.*    PARAMETERS - NONE
#.* 
#.*    CALLED BY - CMSI240 , CMSI246
#.* 
#.*    PROCEDURES CALLED - NONE 
#.* 
#.* --------------------------------------------------------
#.* 
$RETURN,TAPE1.
.* PARAMETER REGMST IS SUBSTITUTED FOR IN CMSI501.... 
$VSN,TAPE1=REGMST.
$REVERT,NOLIST. 
*WEOR 
.PROC,CMSI502.
.*
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - CMSI502
.*
.*        CMSI INITIALIZATION PROCEDURE 
.*
.*    PURPOSE - INITIALIZE CMSI PROCEDURES WITH SITE DEPENDENT
.*              INFORMATION.
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI500 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------------
.*
$REWIND,OLDPARM.
$COPYCF,OLDPARM,OUTPUT. 
.*
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*
$REVERT,NOLIST. 
.*
.*----------------- 
.*
.DATA,OLDPARM.
#*
#*--------------------------------------* 
#*                                      * 
#*  CURRENT SITE PARAMETERS             * 
#*                                      * 
#*     #SYSVER  =  UNINITIALIZED
#*
#*   #SITE-NAME  =  UNINITIALIZED       * 
#*                                      * 
#*   #OLDHF-NAME =  UNINITIALIZED       * 
#*                                      * 
#*   #OLDHF USER NAME =  UNINITIALIZED  * 
#*                                      * 
#*   #NUMBER OF DISKS =  UNINITIALIZED  * 
#*                                      * 
#*   #CMSI USAGE MODE =  UNINITIALIZED  * 
#*                                      * 
#*
#*   #REGN MASTER VSN = UNINITIALIZED 
#*--------------------------------------* 
#*
.*
.EOR
*WEOR 
.PROC,CMSI503*I"",
RESIDE=(YES,NO),
OLDHF=(*F), 
OLDHFUN=(*F) ,
PACKID'ENTER THE PACK NAME OF AUXILIARY DEVICE OF OLDHF'=(*F),
DEVICE'ENTER THE DEVICE TYPE ON WHICH OLDHF RESIDES'= 
(DB,DB1,DB2,DB3 , DC,DC1,DC2 , DD,DD1,DD2,DD3,DD4,DD5,DD6,DD7,DD8 , DE ,
 DG,DG1,DG2,DG3,DG4,DG5,DG6,DG7,DG8,
 DI,DI1,DI2,DI3,DI4,DI5,DI6,DI7,DI8 , DJ,DJ1,DJ2,DJ3,DJ4,DJ5,DJ6,DJ7,DJ8, 
 DK,DK1,DK2,DK3,DK4,DK5,DK6,DK7,DK8 , DL,DL1,DL2,DL3,DL4,DL5,DL6,DL7,DL8, 
 DM,DM1,DM2,DM3 , DQ,DQ1,DQ2,DQ3 , DV , DW  ,  Z  ).
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - CMSI503
.*
.*        BUILD THE PARAMETERS FOR OLDHIST PROC.
.*
.*     PARAMETERS - RESIDE , OLDHF , OLDHFUN , PACKID , DEVICE
.*
.*    CALLED BY - CMSI501 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------------
.*
.HELP,,NOLIST.
  
     BUILD THE ATTACH PARAMETERS FOR THE OLD HISTORY (OLDHF)
     FILE.   PROCEDURE NAME IN DATA RECORD IS OLDHIST.
  
.HELP,RESIDE,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,OLDHF,NOLIST. 
  
     PARAMETER SUPPLIED BY CALLING PROCEDURE. 
  
.HELP,OLDHFUN,NOLIST. 
  
     PARAMETER SUPPLIED BY CALLING PROCEDURE. 
  
.HELP,PACKID,NOLIST.
  
     ENTER THE PRIVATE PACK IDENTIFIER FOR THE
     RESIDENCY OF THE HPA OLD HISTORY FILE (OLDHF). 
     FORMAT IS ANY VALID NOS 1-7 CHARACTER PACK NAME. 
  
.HELP,DEVICE,NOLIST.
  
     ENTER THE DEVICE TYPE FOR THE NOS AUXILIARY (PRIVATE 
     PACK) DEVICE HOLDING THE HPA OLDHF.
     SEE THE NOS REFERENCE SET VOLUME 3.  SECTION 10
     'COMMON PARAMETERS " R= " ' FOR SPECIFICS. 
  
.ENDHELP. 
$REWIND,OLDHIST.
$REVERT,NOLIST. 
.*
.* ---------------
.*
.DATA,OLDHIST.
.PROC,OLDHIST.
#.* 
#.* ------------------------------------------------------------- 
#.* 
#.*    PROCEDURE NAME - OLDHIST 
#.* 
#.*        ATTACH HPA OLD HISTORY FILE
#.* 
#.*    PURPOSE - THIS PROCEDURE IS CALLED ANY TIME ACCESS IS
#.*              REQUIRED TO THE HPA OLD HISTORY FILE (#OLDHF). 
#.* 
#.*    PARAMETERS - NONE.  THIS PROCEDURE IS GENERATED BY THE 
#.*                 CMSI INITILIZATION PROCESS.  THE PERMANENT
#.*                 FILE NAME OF THE HISTORY FILE AND THE 
#.*                 USERNAME UNDER WHICH IT RESIDES ARE ESTABLISHED 
#.*                 DURING THIS PROCESS.  SHOULD THESE ITEMS EVER 
#.*                 CHANGE, THE INITILIZATION PROCESS MUST BE 
#.*                 REPEATED. 
#.* 
#.*     PARAMETERS REPLACED WHEN DATA RECORD IS EDITED INTO 
#.*     THE LIBRARY:  
#.*      - OLDHF , OLDHFUN , PACKID , DEVICE
#.* 
#.*    CALLED BY - CMSI133 , CMSI135 , CMSIHP2
#.* 
#.*    PROCEDURES CALLED - NONE 
#.* 
#.* ------------------------------------------------------------- 
#.* 
.*
.IF,$RESIDE$.EQ.$YES$,STEP0.
.*
$ATTACH,#OLDHF=OLDHF/UN=OLDHFUN,#PN=PACKID,#R=DEVICE,NA.
.*
.ELSE,STEP0.
.*
$ATTACH,#OLDHF=OLDHF/UN=OLDHFUN,NA. 
.*
.ENDIF,STEP0. 
.*
$IF,FILE(#OLDHF,.NOT.AS),STEP1. 
.*
.IF,$RESIDE$.EQ.$NO$,STEP2. 
$NOTE.++ OLD HISTORY FILE (OLDHF/UN=OLDHFUN) NOT FOUND. ++
.ELSE,STEP2.
$NOTE.++ OLD HISTORY FILE (OLDHF/UN=OLDHFUN,PN=PACKID,R=DEVICE) NOT FOUND. ++ 
.ENDIF,STEP2. 
.*
$SET,R1G=1..     *FLAG FILE NOT FOUND.. 
$REVERT........OLDHF NOT FOUND. 
.*
.*
$ENDIF,STEP1. 
.*
.*
$SET,R1G=0..     *FLAG FILE FOUND.. 
$REVERT,NOLIST. 
.*
.*------------------- 
.*
*WEOR 
.PROC,CMSI700*I"CMSI - LOGOUT PROCEDURE   -   CMSI700", 
OPT700'DO YOU WISH TO TERMINATE THIS SESSION (YES OR NO) (CR) = YES'= 
(YES,Y=YES,END=YES,E=YES,NO,N=NO, = YES) .
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSI700
.*
.*       LOGOUT PROCEDURE 
.*
.*
.*    PURPOSE - TERMINATE THIS CMSI SESSION AND LOGOFF THE TERMINAL.
.*
.*    PARAMETERS - OPT700 
.*
.*    CALLED BY - CMSI000 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE WILL TERMINATE CMSI AND LOGOFF
     THE USERS TERMINAL.
  
.HELP,OPT700,NOLIST.
  
      ENTER YES TO TERMINATE CMSI AND 
     LOGOFF THE NOS SYSTEM. 
     ENTER NO TO RETURN TO THE CMSI000 MAIN MENU. 
  
.ENDHELP. 
.*
.*    STEP  1.
.*       TAKE PROPER ACTION BASED UPON THE OPT700 
.*       SELECTION. 
.*
.IF,$OPT700$.EQ.$NO$.$REVERT....RETURN TO CMSI000.
.*
$NOTE.++
$NOTE.*  END SESSION FROM LOG OUT CMSI700 
$NOTE.+++*  ///   BYE   /// 
$CLEAR. 
$BYE. 
$EXIT.
$NOTE.*  EXIT FROM LOGOUT CMSI700 
$REVERT,EX.CMSI000. 
*WEOR 
.PROC,CMSIDFX*I,
XPARAM'PROCEDURE FLAG..B=BEGINNING , E=END '= ( B , E , *N= ) . 
.*
.*
.*     B - POST MARK DAYFILE. 
.*
.*     E - ADD DAYFILE TO OUTPUT FILE Q AND ROUTE Q TO LP.
.*
.IF,$XPARAM$.EQ.$$,STEP0. 
  $NOTE.+++ CALL ERROR IN CMSIDFX SEND +
  $NOTE.+ PSR AND DAYFILE TO PSR COORDINATOR.++ 
.*
  $DAYFILE,ZQZ. 
  $ROUTE,ZQZ,DC=LP. 
  $RETURN,ZQZ.
.ELSE,STEP0.
.*
.IF,$XPARAM$.EQ.$B$,STEP1.
   $DAYFILE,ZTRASH. 
   $RETURN,ZTRASH.
.ELSE,STEP1.
.*   END OF JOB PRINT 
   $COPYBF,ZZZZOUT,Q. 
   $BLOCK,Q,,1.//END LIST/CMSI/DATE/TIME
   $DAYFILE,Q,OP=I. 
   $ROUTE,Q,DC=LP.
   $RETURN,Q. 
.ENDIF,STEP1. 
.*
.ENDIF,STEP0. 
$REVERT,NOLIST. 
*WEOR 
.PROC,CMSIEFC.
.* -------------------------------------------------------- 
.*
.*
.*    PROCEDURE NAME - CMSIEFC
.*
.*       PROCESS SYSTEM ERROR ( EF ) FROM CMSI ROUTINES.
.*
.*
.*    PURPOSE - START CMSI PROCEDURES AT LOGIN TIME 
.*
.*    PARAMETERS - EF 
.*
.*    CALLED BY - MOST CMSI PROCEDURES
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
.IF,EF.NE.0,STEP1.
.*  JMP IF USER BREAK 1 
.IF,EF.NE.TAE,STEP1.
.*  JMP IF USER BREAK 2 
.IF,EF.NE.TIE,STEP1.
.*
$DAYFILE,L=TRASH. 
$RETURN,TRASH.
$NOTE.+ ----------------------------------------
$NOTE.+  **  CMSI  -  CHECKING NOS ERROR FLAGS
.IF,EF.EQ.ARE.$NOTE.+  **  CMSI  -  EF = ARITHMETIC ERROR 
.IF,EF.EQ.ITE.$NOTE.+  **  CMSI  -  EF = SCP INVALID TRANSFER ADDRESS 
.IF,EF.EQ.PSE.$NOTE.+  **  CMSI  -  EF = PROGRAM STOP ERROR 
.IF,EF.EQ.PPE.$NOTE.+  **  CMSI  -  EF = PPU ABORT
.IF,EF.EQ.CPE.$NOTE.+  **  CMSI  -  EF = CPU ABORT
*IF -DEF,NOS23,1
.IF,EF.EQ.PCE.$NOTE.+  **  CMSI  -  EF = PPU CALL ERROR 
.IF,EF.EQ.MLE.$NOTE.+  **  CMSI  -  EF = MESSAGE LIMIT
.IF,EF.EQ.TLE.$NOTE.+  **  CMSI  -  EF = TIME LIMIT ERROR 
.IF,EF.EQ.FLE.$NOTE.+  **  CMSI  -  EF = FILE LIMIT ERROR 
.IF,EF.EQ.TKE.$NOTE.+  **  CMSI  -  EF = TRACK LIMIT ERROR
.IF,EF.EQ.SLE.$NOTE.+  **  CMSI  -  EF = SERVICE LIMIT ERROR
.IF,EF.EQ.SRE.$NOTE.+  **  CMSI  -  EF = SRU LIMIT ERROR
.IF,EF.EQ.FSE.$NOTE.+  **  CMSI  -  EF = FORCED ERROR 
.IF,EF.EQ.RCE.$NOTE.+  **  CMSI  -  EF = JOB HUNG IN AUTO RECALL
.IF,EF.EQ.ODE.$NOTE.+  **  CMSI  -  EF = OPERATOR DROP
.IF,EF.EQ.IDE.$NOTE.+  **  CMSI  -  EF = NOS ILDEDOWN 
.IF,EF.EQ.SPE.$NOTE.+  **  CMSI  -  EF = RESERVED FOR SITE ERROR CODE 
.IF,EF.EQ.RRE.$NOTE.+  **  CMSI  -  EF = OPERATOR RERUN 
.IF,EF.EQ.DRE.$NOTE.+  **  CMSI  -  EF = DEADSTART RERUN
.IF,EF.EQ.STE.$NOTE.+  **  CMSI  -  EF = SUSPENSION TIMEOUT 
.IF,EF.EQ.OKE.$NOTE.+  **  CMSI  -  EF = OPERATOR KILL
.IF,EF.EQ.SVE.$NOTE.+  **  CMSI  -  EF = SECURITY CONFLICT
.IF,EF.EQ.SSE.$NOTE.+  **  CMSI  -  EF = SUBSYSTEM ABORTED
.IF,EF.EQ.ECE.$NOTE.+  **  CMSI  -  EF = EXTENDED MEMORY PARITY ERROR 
.IF,EF.EQ.PEE.$NOTE.+  **  CMSI  -  EF = CPU PARITY ERROR 
.IF,EF.EQ.SYE.$NOTE.+  **  CMSI  -  EF = SYSTEM ABORT 
.IF,EF.EQ.RAE.$NOTE.+  **  CMSI  -  EF = RECOVERY ABORT 
*IF -DEF,NOS23,1
.IF,EF.EQ.SWE.$NOTE.+  **  CMSI  -  EF = SOFTWARE ERROR 
.IF,EF.EQ.ORE.$NOTE.+  **  CMSI  -  EF = OVERRIDE ERROR CONDITION 
.IF,EF.EQ.MXE.$NOTE.+  **  CMSI  -  EF = MAXIMUM NUMBER OF ERROR FLAGS
$DISPLAY,EF.
$NOTE.+ ----------------------------------------- 
.*
.*     DAYFILE FOR DISPLAY....
$DAYFILE,OP=I.
.*
$NOTE.++ LAST 200 DAYFILE MESSAGES WILL BE ROUTED TO
$NOTE.+ THE CENTRAL SITE PRINTER . ++ 
.*
$DAYFILE,TRASH,OP=F.
$XEDIT,TRASH.$XB$XN-200$XCOPY WTRASH 200$E
$REWIND,WTRASH. 
$SKIPEI,WTRASH. 
$BLOCK,WTRASH,,1./CMSI ERROR/ERROR - EF/ /DATE/TIME 
.*
$RETURN,TRASH,ZTRASH. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
CMSIEF1.
.*
$RETURN,WTRASH. 
.*
$RETURN,TRASH,ERRZZZ9.
.ENDIF,STEP1. 
$REVERT,NOLIST. 
.*
$EXIT.
.*
$REVERT,EX.CMSI000.         ERROR..RESTART CMSI000..#EF=EF
*WEOR 
.PROC,CMSIEF1*I"EXECUTION ERROR   IF YOU BELIEVE IT IS A SOFTWARE", 
BATCPY'ERROR TYPE (YES) AND SEND DAYFILE WITH A PSR. ELSE (CR)..'=
(Y=YES,YES, NO,N=NO, =NO).
.HELP,,NOLIST.
  
     AN ERROR HAS OCCURRED THAT HAS SEND CMSI CONTROL TO THIS ERROR 
     FLAG TRAP.   IF THIS IS A CONTINUING PROBLEM AND/OR YOU BELIEVE
     THIS PROBLEM SHOULD HAVE A PSR WRITTEN,  PLEASE GET A HARDCOPY 
     OF THIS ERROR DAYFILE BY ANSWERING  ..YES.. AND SUBMIT A PSR.
  
     PROVIDE A USER SELECTABLE METHOD OF PRINTING THE DAYFILE 
     WHEN AN ERROR OCCURES.   THIS IS PROVIDED BY ANSWERING YES.. 
     IF NO CENTRAL SITE HARDCOPY IS WANTED OR NEEDED, ANSWER NO OR (CR).
.HELP,BATCPY,NOLIST.
  
     YES TO SEND THE LAST 200 DAYFILE LINES TO THE CENTRAL SITE PRINTER.
  
     NO OR (CR) TO CONTINUE WITH CMSI.
  
     DEFAULT IS ..NO.. PRINTOUT.
  
.ENDHELP. 
.*
.*
.IF,$BATCPY$.EQ.$YES$.ROUTE,WTRASH,DC=LP. 
.*
.*
$REVERT.
*WEOR 
.PROC,CMSIHP1*I"CMSI - HPA INTERFACE II   -   CMSIHP1", 
DT'DEVICE TYPE (DT) OR DEVICE AND EST (DT,EST) , ALL , ? , OR END'= 
( AH=$=AH$, 
 CH=$=CH$,CP=$=CP$,CR=$=CR$,CS=$=CS$,CT=$=CT$,CU=$=CU$, 
 DA=$=DA$,DB=$=DB$,DC=$=DC$,DD=$=DD$,DE=$=DE$,DG=$=DG$, 
 DF=$=DF$ , DH=$=DH$ ,
 DI=$=DI$,DJ=$=DJ$,DK=$=DK$,DL=$=DL$,DM=$=DM$,
 DP=$=DP$,DQ=$=DQ$, 
 DV=$=DV$,DW=$=DW$,DX=$=DX$,DY=$=DY$,DZ=$=DZ$,
 EC=$=EC$,
 LP=$=LP$,LQ=$=LQ$,LR=$=LR$,LS=$=LS$,LT=$=LT$,LX=$=LX$, 
 MP=$=MP$ , 
 MD=$=MD$,MR=$=MR$,MT=$=MT$,NC=$=NC$,NP=$=NP$,NT=$=NT$, 
 RP=$=RP$,
 SR=$=SR$,SS=$=SS$,ST=$=ST$,SY=$=SY$,TT=$=TT$,
 ALL=$$ , E=END,END )  ,
EST'(EST ORDINAL TO TEST)'=(*N=,*S3(01234567)), 
RT=(S,A,DX,ALL),
OUTFILE'(ENTER OUTFILE ONLY IF A BATCH RUN HAS BEEN SELECTED)'=(=$$, $$, *F). 
.*
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSIHP1
.*
.*       HPA INTERFACE
.*
.*    PURPOSE - FIRST STEP IN BUILDING HPA RUN
.*
.*    PARAMETERS - DT , EST , RT , OUTFILE
.*
.*    CALLED BY - CMSI111 
.*
.*    PROCEDURES CALLED - CMSIHP2 
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE CONTINUES TO BUILD THE HPA
     JOB  BY REQUESTING THE DEVICE TYPE (AND) 
     THE EST TO REPORT ON.
  
  
     THE ENTER CAN THE FORM:  
      - DT  FOR ALL EQUIPMENTS OF THAT TYPE 
      - DT,EST  FOR ONLY ONE EQUIPMENT ORDINAL. 
      - ALL FOR ALL EQUIPMENTS AVAILABLE. 
  
.HELP,DT,NOLIST.
  
  
     NT OR MT  -  MAGNETIC TAPE SUBSYSTEMS
     DA - 33502 (FEDERAL STANDARD CHANNEL)
     DB - DEMA                 DC - 895 
     DD/DG - 834/836 (ISD)
     DF - 887 DISK             DH - 887 DISK
     DI - 844-21(HALF TRACK)   DJ - 844-41/44 (HALF TRACK)
     DK - 844-21(FULL TRACK)   DL - 844-41/44 (FULL TRACK)
     DM - 885(HALF TRACK)      DQ - 885(FULL TRACK) 
     MD - 841                  DV&DW - 819(SINGLE & DOUBLE DENSITY) 
     DX - 3330-I(FSC SINGLE DENSITY)
     DY - 3330-II(FSC DOUBLE DENSITY) 
     DZ - 3350(FSC NATIVE MODE)  DE/EC - ECS OR ESM 
     DP - (DDP)     NP - 255X     ST - (667X1)     TT - (667X)
     MP - MAP IV PROCESSOR
     ST - (2551-100)     CR - 405     CP - 415     LQ - 512 
     LR/LS/LT - 580-12/16/20     LX - 5870 LASER PTR
     MR - 8XX MAINTENANCE REGISTERS 
     RP - CYBERPLUS 
     SR - 17X STATUS AND CONTROL REGISTERS     SY - CYBERLOG
     CH - I/O CHANNELS     CS - CARTRIDGE STORAGE UNIT     CT - MST 
     CU - MSA        SS - 7990 CYBER CH. CPLR    NC - NAD.
  
     ALL -  ALL ASSOCIATED SYSTEM HARDWARE ENTRIES
    ENTER  DT   EST     TO OBTAIN INFORMATION FOR SPECIFIC EST ORDINAL
  
.HELP,EST,NOLIST. 
  
     THE EQUIPMENT CONFIGURATION CAN BE DISPLAYED 
     BY LEAVING THIS PROCEDURE WITH AN 'END' AND
     SELECTING THE 'EST' OPTION FROM THE CMSI101
     MENU.
  
.HELP,RT,NOLIST.
  
    PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
     RT IS THE REPORT TYPE
     RT = S , A , DX , ALL. 
  
.HELP,OUTFILE,NOLIST. 
  
    PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
     NAME OF FILE TO SAVE OUTPUT ON.
     OUTFILE =  FILE NAME.
               $$ ( NULL ) INTERACTIVE JOB
                DEFAULT IS HPAOUT.
  
.ENDHELP. 
DISPLAY(PNL)
.*
.*             TO 111     TO 110    TO 100
.IF,$DT$.EQ.$END$.$REVERT,EX.$REVERT,EX.$REVERT,NOLIST. 
CMSIHP2,#DT=$DT$,#EST=$EST$,#RT=$RT$,#OUTFILE=$OUTFILE$.
$REVERT,NOLIST. 
$EXIT.
$REVERT.....ABORT FROM CMSIHP1..
*WEOR 
.PROC,CMSIHP2*I"CMSI - HPA INTERFACE  III  -  CMSIHP2", 
DA'ENTER # OF DAYS TO PROCESS, (CR) = 1'= 
 (*S2(0123456789), =1), 
OUT'CHANGE THE REPORT OUTPUT WIDTH. (N=80,W=130 COL. OR (CR)=DEFAULT)'= 
 ($,R$,80=$,R$,N=$,R$,NARROW=$,R$ , $.$,130=$.$,W=$.$,WIDE=$.$, =ZZZ, ZZZ), 
HRDCPY'DO YOU WANT A CENTRAL SITE HARDCOPY? (YES/NO/END). (CR)=NO.'=
 (Y, YE=Y, YES=Y, N, NO=N, E, END=E ,  =N)  , 
DT=(*S3(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$=$),$$), 
EST=(*S3(01234567),$$), 
RT=(S,A,DX,ALL),
OUTFILE'(ENTER OUTFILE ONLY IF A BATCH RUN HAS BEEN SELECTED)'=(=$$, $$, *F)  . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSIHP2
.*
.*       HPA INTERFACE
.*
.*    PURPOSE - CONTINUE BUILDING HPA JOB PARAMETERS
.*
.*    PARAMETERS - DA , OUT , DT , EST , RT , OUTFILE 
.*                 HRDCPY 
.*
.*    CALLED BY - CMSIHP1 
.*
.*    PROCEDURES CALLED - CMSIHP3 , OLDHIST , CLUPHPA 
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     THIS IS THE LAST STEP IN THE HPA 
     INTERFACE.   THIS PROCEDURE WILL RUN 
     HPA AS EITHER A BATCH JOB OR INTERACTIVELY 
     (KEYED ON 'OUTFILE' NOT $$) AND WITH THE 
     SELECTED REPORT TYPE (S,A,DX,ALL) AND
     SELECTED EQUIPMENT.
  
.HELP,DA. 
  
    OLDHF DEFAULT IS SET TO 30 DAYS SO ENTER ANY
    NUMBER 1 THRU 30. 
  
     THIS IS THE NUMBER OF DAYS TO READ 
     IN THE HISTORY READ FOR THE HPA EQUIPMENT
     REPORT.
  
.HELP,OUT,NOLIST. 
  
    THE OUTPUT REPORT DATA WIDTH IS DETERMINED BY THE RUN TYPE
    SELECTED.  BATCH HPA REPORTS WILL DEFAULT TO 132 COLUMNS. 
    INTERACTIVE HPA REPORTS WILL DEFAULT TO 80 COLUMNS. 
    THIS IS CONTROLLED BY THE 'R' PARAMETER ON THE HPA STATEMENT. 
    AS NOTED IN THE HPA REFERENCE MANUAL (PUB. NO. 60459460) SECTION
    I-3.   THERE SEVERAL DIFFERENCES IN THE OUTPUT FORMAT IF R
    IS USED.   THIS PARAMETER ALONG WITH THE 'HRDCPY' PARAMETER ALLOW 
    FOR CONTROL OF REPORT WIDTH AND OUTPUT LOCATION.
  
    IT IS SUGGESTED YOU USE THE DEFAULT WIDTH OPTIONS.
    ENTER  N  FOR 80 COLUMN TERMINAL OUTPUT.
      "    W  FOR 132 COLUMN PRINTER OUTPUT.
  
    *** CAUTION:   THE TERMINAL USER HAS THE ABILITY WITH THIS PARAMETER
    TO MESS-UP THE REPORT FORMAT.   BY SELECTING WIDE (132 COLUMN)
    OUTPUT LISTING AND AN EXTENDED DETAILED REPORT ON AN 80 COLIMN
    TERMINAL SCREEN,  THE HEADER AND DATA LINES WILL BE FOLDED AND
    RENDER THE REPORT EXTREMELY HARD TO READ. 
    USING THE DEFAULT REPORT WIDTH WILL NOT ALLOW THIS PROBLEM
    TO OCCUR. 
  
.HELP,HRDCPY,NOLIST.
  
    DO YOU WANT A COPY OF EITHER THE BATCH JOB PERMANENT FILE 
    OR THE TERMINAL OUTPUT PRINTED AT THE CENTRAL SITE?   THIS
    LISTING WILL BE THE SAME FORMAT AS THE BATCH OR TERMINAL
    OUTPUT COPY.  (FORMATED FOR 80 OR 132 AS SELECTED IN THE
    PROCEDURE BY DEFAULT OR USE OF THE WIDTH PARAMETER. 
  
    ENTER Y OR YES TO PRINT AT THE CENTRAL SITE.
      "   N OR  NO TO NOT PRINT ADDITIONAL COPIES.
  
  
.HELP,DT,NOLIST.
  
    PARAMETER SUPPLIED BY CALLING PROCEDURE.
    'DT' = ANY VALID HPA DEVICE TYPE OR 'ALL'.
  
.HELP,EST,NOLIST. 
  
    PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
    'EST' = ANY VALID SYSTEM'EST' ORDINAL.
    OR $$ (NULL) IF NOT SELECTED. 
  
.HELP,RT,NOLIST.
  
    PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
     RT IS THE REPORT TYPE
     RT = S , A , DX , ALL. 
  
.HELP,OUTFILE,NOLIST. 
  
    PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
     NAME OF FILE TO SAVE OUTPUT ON.
     OUTFILE =  FILE NAME.
               $$ ( NULL ) INTERACTIVE JOB
                DEFAULT IS HPAOUT.
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*
.*     STEP 0.
.*       CHECK OUT FOR END. 
.IF,$HRDCPY$.EQ.$END$.$REVERT,EX.$REVERT,NOLIST.
.*
.*     STEP 1.
.*       TEST FOR BATCH RUN ( OUTFILE 
.*       NOT BLANK ( $$ )  ). 
.*       SUBMIT JOB HPABAT. 
.*
.IF,$OUTFILE$.NE.$$,STEP1.
.*
$NOTE.++ SUBMITTING HPA JOB FOR BATCH PROCESSING. 
$NOTE.++ NOTE THE FOLLOWING SYSTEM MESSAGE FOR THE
$NOTE.+ JOB SEQUENCE NUMBER. +
.*
$SUBMIT,HPABAT,N. 
$RETURN,HPABAT. 
.*
.*     STEP 1A. 
.*       NOTE PRINT FILE STATUS TO USER.
.*
.IF,$HRDCPY$.EQ.$Y$,STEP1A. 
$NOTE.+ A CENTRAL PRINT OUT WILL BE GENERATED.+ 
.ELSE,STEP1A. 
$NOTE.+ NO CENTRAL PRINT OUTPUT WILL BE MADE.  SEE THE
$NOTE.+ PERMANENT FILE NAMED 'OUTFILE'. + 
.ENDIF,STEP1A.
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$REVERT,NOLIST. 
.*
.*--------------------------
.ENDIF,STEP1. 
.*
.*     STEP 2.
.*       PROCESS GETLOG AND NORM
.*       FOR CURRENT DATA.
.*
.*
$NOTE.++ PROCESSING GETLOG AND NORM FOR 
$NOTE.+ CURRENT DAYS DATA... WAIT...
.*
$NOEXIT.
$GETLOG.
$NORM,F,L=Z.
$SET,EF=0.
$ONEXIT.
$RETURN,Z.
.*
$NOTE.++  PROCESS HPA REPORT FOR _RT_DT_EST  DAYS=_DA . 
.*
.*     STEP 3.
.*       CHECK 'DA'YS TO PROCESS. 
.*       IF DA = 1 THEN OLD HISTORY 
.*       FILE IS NOT NEEDED.
.*
$SETTL,*. 
$SETASL,*.
$SETJSL,*.
.*
.*
.IF,$DA$.EQ.$1$,STEP3.
.*
.*     STEP 3A
.*       PROCESS DA = 1 ( OLDHF NOT NEEDED) 
.*
.*     STEP 3A1.
.*       TEST DEFAULT WIDTH.... 
.*
.IF,$OUT$.EQ.$ZZZ$,STEP3A1.....DEFAULT WIDTH..
.*
.IF,$RT$.EQ.$ALL$.HPA,A_DT_EST,DX_DT_EST,T,S,L=DUMP,R.
.IF,$RT$.EQ.$S$.HPA,S=1,L=DUMP,R. 
.IF,$RT$.EQ.$A$ .OR. $RT$.EQ.$DX$.HPA,_RT_DT_EST,L=DUMP,R.
.*
.ELSE,STEP3A1.........USER WIDTH SPECIFIED..... 
.*
.IF,$RT$.EQ.$ALL$.HPA,A_DT_EST,DX_DT_EST,T,S,L=DUMP_OUT_. 
.IF,$RT$.EQ.$S$.HPA,S=1,L=DUMP_OUT_.
.IF,$RT$.EQ.$A$ .OR. $RT$.EQ.$DX$.HPA,_RT_DT_EST,L=DUMP_OUT_. 
.*
.ENDIF,STEP3A1. 
.*
.ELSE,STEP3.
.*
.*     STEP 3B. 
.*       PROCESS DA > 1 
.*
.*     STEP 3B1.
.*       UPDATE AND LIMIT OLD HISTORY FILE. 
.*
$NOTE.+ ATTACHING THE OLDHF.+ 
OLDHIST.
$IF,R1G.NE.0,STEP3B1. 
$NOTE.+ OLDHF NOT AVAILABLE  (CMSIHP2)
CMSIHP3,#DA=$DA$,#OUT=$OUT$,#DT=$DT$,#EST=$EST$,#RT=$RT$,#OUTFILE=$OUTFILE$.
.*
$REVERT,NOLIST.....EXIT FROM CMSIHP2 IF CALL TO CMSIHP3.. 
.*------------------------------------------
.*
.*
$ENDIF,STEP3B1. 
$NOTE.+ PROCESSING HPA TO LIMIT OLDHF DAYS. + 
.*
HPA,H,NH,LH=_DA,L=Z,DSA.
$REWIND,*.
$RETURN,OLDHF,Z.
$RENAME,OLDHF=NEWHF.
.*
.*
.*     STEP 3B2.
.*       PROCESS DA > 1 FOR SELECTED RT.
$NOTE.+ GENERATING HPA REPORT.+ 
.*     STEP 3B3.
.*       TEST FOR WIDTH DEFAULT 
.*
.IF,$OUT$.EQ.$ZZZ$,STEP3B3.........DEFAULT WIDTH... 
.*
.IF,$RT$.EQ.$ALL$.HPA,H,HR_DT_EST,A_DT_EST,DX_DT_EST,T,S,L=DUMP,R.
.IF,$RT$.EQ.$S$.HPA,H,HR_DT_EST,L=DUMP,S=1,R. 
.IF,$RT$.EQ.$A$ .OR. $RT$.EQ.$DX$.HPA,H,HR_DT_EST,_RT_DT_EST,L=DUMP,R.
.*
.ELSE,STEP3B3........USER WIDTH SPECIFIED...... 
.*
.IF,$RT$.EQ.$ALL$.HPA,H,HR_DT_EST,A_DT_EST,DX_DT_EST,T,S,L=DUMP_OUT_. 
.IF,$RT$.EQ.$S$.HPA,H,HR_DT_EST,L=DUMP,S=1_OUT_.
.IF,$RT$.EQ.$A$ .OR. $RT$.EQ.$DX$.HPA,H,HR_DT_EST,_RT_DT_EST,L=DUMP_OUT_. 
.*
.ENDIF,STEP3B3. 
.*
.ENDIF,STEP3. 
.*
.*
.*     STEP 4.
.*       CLEAN UP RTHE LEFT-OVER FILES
.*       FROM HPA.
CLUPHPA.
.*
.*     STEP 5.
.*       PRINT AND ROUTE (IF SELECTED ) 
.*       THE OUTPUT.
.*
.*
$REWIND,DUMP. 
$COPYEI,DUMP,Z. 
$REWIND,Z,DUMP. 
.IF,$HRDCPY$.EQ.$Y$.$ROUTE,Z,DC=LP. 
$COPYEI,DUMP,.
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$RETURN,DUMP,Z. 
$REVERT,NOLIST. 
.*
.*
$EXIT.
$REVERT....ABORT FROM CMSIHP2...
.*
.*------------- 
.DATA,HPABAT. 
/JOB
HPA_RT. 
/USER 
.*
.*     STEP 1.
.*
$SETTL,*. 
$SETASL,*.
$SETJSL,*.
.*
.*
.*     STEP 2.
.*       PROCESS GETLOG AND NORM
.*       FOR CURRENT DATA.
.*
$GETLOG.
$NORM,F,L=Z.
.*
.*     STEP 3.
.*       PROCESS HPA FOR OPTIONS WHERE
.*       OLD HISTORY FILE IS NOT NEEDED.
.*
.IF,$DA$.EQ.$1$,STEP3.
.*
.*     STEP 3A. 
.*       PROCESS DA = 1 . OLD HISTORY NOT NEEDED. 
.*
.*
.*     STEP 3A1.
.*       TEST DEFAULT IN BATCH JOB
.*
.IF,$OUT$.EQ.$ZZZ$,STEP3A1.......USE DEFAULT WIDTH... 
.*
.IF,$RT$.EQ.$ALL$.HPA,A_DT_EST,DX_DT_EST,T,S,L=OUTFILE. 
.IF,$RT$.EQ.$S$.HPA,S=1,L=OUTFILE.
.IF,$RT$.EQ.$A$ .OR. $RT$.EQ.$DX$.HPA,_RT_DT_EST,L=OUTFILE. 
.*
.ELSE,STEP3A1.
.*
.IF,$RT$.EQ.$ALL$.HPA,A_DT_EST,DX_DT_EST,T,S,L=OUTFILE_OUT_.
.IF,$RT$.EQ.$S$.HPA,S=1,L=OUTFILE_OUT_. 
.IF,$RT$.EQ.$A$ .OR. $RT$.EQ.$DX$.HPA,_RT_DT_EST,L=OUTFILE_OUT_.
.*
.ENDIF,STEP3A1. 
.*
.ELSE,STEP3.
.*
.*     STEP 3B. 
.*       PROCESS DA> 1. 
.*
.*     STEP 3B1.
.*       UPDATE AND LIMIT HISTORY 
.*       FILE TO DA NUMBER OF DAYS. 
.*
BEGIN,OLDHIST,CMLINST.
.*
$IF,R1G.NE.0,STEP3B2. 
$NOTE.+++ OLDHF FILE NOT AVAILABLE ++.
.*
$EXIT......OLDHF FILE NOT FOUND. HPABAT.
$ENDIF,STEP3B2. 
.*
HPA,H,NH,LH=_DA,L=Z,DSA.
$REWIND,*.
$RETURN,OLDHF,Z.
$RENAME,OLDHF=NEWHF.
.*
.*     STEP 3B2.
.*       PROCESS HPA FOR SELECTED RT. 
.*
.*
.*     STEP 3B3.
.*       TEST DEFAULT DATA WIDTH. 
.*
.IF,$OUT$.EQ.$ZZZ$,STEP3B3......USE DEFAULT.....
.*
.IF,$RT$.EQ.$ALL$.HPA,H,HR_DT_EST,A_DT_EST,DX_DT_EST,T,S,L=OUTFILE. 
.IF,$RT$.EQ.$S$.HPA,H,HR_DT_EST,S=1,L=OUTFILE.
.IF,$RT$.EQ.$A$ .OR. $RT$.EQ.$DX$.HPA,H,HR_DT_EST,_RT_DT_EST,L=OUTFILE. 
.*
.ELSE,STEP3B3.
.*
.IF,$RT$.EQ.$ALL$.HPA,H,HR_DT_EST,A_DT_EST,DX_DT_EST,T,S,L=OUTFILE_OUT_.
.IF,$RT$.EQ.$S$.HPA,H,HR_DT_EST,S=1,L=OUTFILE_OUT_. 
.IF,$RT$.EQ.$A$ .OR. $RT$.EQ.$DX$.HPA,H,HR_DT_EST,_RT_DT_EST,L=OUTFILE_OUT_.
.*
.ENDIF,STEP3B3. 
.*
.ENDIF,STEP3. 
.*
.*
.*     STEP 4.
.*       PROCESS OUTPUT FILE
.*       OPTIONALLY SAVE FOR LATER. 
.*
$BEGIN,SAVEIT,CMLINST,OUTFILE.
$RETURN,CMLINST.
.IF,$HRDCPY$.EQ.$Y$.$ROUTE,OUTFILE,DC=LP. 
.*
$EXIT.
$DAYFILE. 
$#OUT.
/EOF
*WEOR 
.PROC,CMSIHP3*I,
ZZ'OLDHF NOT FOUND.  DO YOU WISH TO CONTINUE?  ENTER YES OR NO'=
  ( YES=Y, Y, NO=N, N )   , 
DA'ENTER # OF DAYS TO PROCESS , ? FOR HELP ,OR END TO STOP. DEFAULT IS 1'=
 (*S2(0123456789),=1,E=END,END) , 
OUT=($.$ , $,R.$ )  , 
DT=(*S3(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$=$),$$), 
EST=(*S3(01234567),$$), 
RT=(S,A,DX,ALL),
OUTFILE'(ENTER OUTFILE ONLY IF A BATCH RUN HAS BEEN SELECTED)'=(=$$, $$, *F)  . 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CMSIHP3
.*
.*       RETRY HPA RUN
.*
.*    PURPOSE - ATTEMPT TO RETRY HPA RUN WITHOUT HISTORY FILE 
.*
.*    PARAMETERS - ZZ , DA , OUT , DT , EST , RT , OUTFILE
.*
.*    CALLED BY - CMSIHP2 
.*
.*    PROCEDURES CALLED - CMSIHP2 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     PROCEDURE CMSIHP2 WAS NOT ABLE TO
     LOCATE THE OLD HISTORY FILE. 
     IF YOU WISH TO CONTINUE ENTER YES. 
     A NO RESPONSE WILL RETURN TO THE 
     FIRST HPA MENU.
  
.HELP,ZZ,NOLIST.
  
     ENTER YES TO CONTINUE THE HPA RUN
     WITH OUT THE OLDHF FILE.  ENTER NO 
     TO RETURN THE THE FIRST HPA MENU.
  
.HELP,DA,NOLIST.
  
    PARAMETER SUPPLIED BY CALLING PROCEDURE.
  
.HELP,OUT,NOLIST. 
  
    PARAMETER SUPPLIED BY CALLING PROCEDURE.
  
.HELP,DT,NOLIST.
  
    PARAMETER SUPPLIED BY CALLING PROCEDURE.
  
.HELP,EST,NOLIST. 
  
    PARAMETER SUPPLIED BY CALLING PROCEDURE.
  
.HELP,RT,NOLIST.
  
    PARAMETER SUPPLIED BY CALLING PROCEDURE.
  
.HELP,OUTFILE,NOLIST. 
  
    PARAMETER SUPPLIED BY CALLING PROCEDURE.
  
.ENDHELP. 
.*
.*   STEP 1.
.*       CHECK ANSWER.
.*
.*            TO CMSIHP2  TO CMSIHP1  TO CMSI111
.IF,$ZZ$.EQ.$N$.$REVERT,EX.$REVERT,EX.$REVERT,EX.CMSI110.   RETURN TO CMSI110.
.*
.*     STEP 2.
.*       ANSWER MUST BE YES  THEREFORE RECALL CMSIHP2 
.*       WITH DA = 1.  SO OLDHF IS NOT NEEDED.
.*
.*
$REVERT,EX.BEGIN,CMSIHP2,CMLINST,#DA=1,#OUT=$OUT$,#DT=$DT$, 
#EST=$EST$,#RT=$RT$,#OUTFILE=$OUTFILE$. 
.*
.*
$REVERT,EX.CMSI110. 
$EXIT.
$REVERT,EX,CMSI110....ABORT FORM CMSIHP3..
*WEOR 
.PROC,CLUPHPA.
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CLUPHPA
.*
.*       CLEAN UP HPA FILES 
.*
.*    PURPOSE - RETURN FILES LEFT BY HPA
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSIHP2 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
.*
.*     RETURN FILES LEFT BY HPA EXECUTION 
.*
$RETURN,NEWHF,OLDHF,SEF,FSORT.
$RETURN,EST,ERR,BML,TAPE8.
$RETURN,TAPE10,TAPE11,TAPE12. 
.*
$REVERT,NOLIST. 
*WEOR 
.PROC,CLUPMLT.
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - CLUPMLT
.*
.*       CLEAN UP MALET FILES 
.*
.*    PURPOSE - RETURN FILES LEFT BY MALET
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMS2123 , CMS2124 , CMS2127 , CMS2131 , CMS2132 , CMS2133 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
.*
.*     RETURN FILES LEFT BY MALET EXECUTION.
.*
$RETURN,RFILE,SCRATCH,BINARY. 
.*
$REVERT,NOLIST. 
*WEOR 
.PROC,DSDIX1*I, 
HRDCPY=(Y,N), 
OWNFILE'FILE NAME OF OWNCODE OR NO IF TERMINAL INPUT OR END. (CR)=NO'=
   ( N,NO=N,=N , *F , END,E=END). 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - DSDIX1 
.*
.*       PROCESS OWNCODE FOR DSDI 
.*
.*    PURPOSE - PROCESS OWNCODE FOR DSDI
.*
.*    PARAMETERS - HRDCPY , OWNFILE 
.*
.*    CALLED BY - CMSI330 
.*
.*    PROCEDURES CALLED - DSDIX2 , CMSI330
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     PROCEDURE DETERMINES THE SOURCE OF THE USER DSDI INPUT 
     DIRECTIVES.  EITHER TERMINAL INPUT OR PERMANENT FILE.
     OWNFILE IS EITHER FILE NAME OR NO. 
  
.HELP,HRDCPY,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
       HRDCPY = YES OR NO 
  
.HELP,OWNFILE,NOLIST. 
  
     IF YOU WISH TO HAVE THE DSDI DIRECTIVES READ FROM AN 
     INDIRECT PERMANENT FILE YOU HAVE PREVIOUSLY MADE ENTER 
     THAT FILE NAME TO THIS PROMPT.   IF YOU WISH TO ENTER
     THE DIRECTIVES INTERACTIVELY ENTER :  NO.
  
     DETAILED INFORMATION ON DSDI DIRECTIVES
     IS AVAILABLE IN :  
     - NOS V2 ANALYSIS HANDBOOK  NO. 60459300 
     - NOS V2 SYSTEM PROGRAMMER'S INSTANT 
                                 NO. 60459370 
  
  
.ENDHELP. 
.*
.*
DISPLAY(PNL)
.*
.IF,$OWNFILE$.EQ.$END$.$REVERT,EX.$REVERT,NOLIST. 
.*
.*
.*     STEP 1.
.*       CHECK OWNFILE ENTRY: 
.*       NO FILE GO TO DSDIX2 
.*       FILE ENTERED USE IT. 
.*
.IF,$OWNFILE$.EQ.$N$,STEP1. 
.*
.*       NO FILE NAME 
DSDIX2. 
.*
.*     STEP 1A. 
.*       CHECK IF HARDCOPY IS TO BE PRINTED.
.*       ( DSDI OUTPUT IS LEFT ON ZZZZOUT ) 
.*
.IF,$HRDCPY$.EQ.$Y$.ROUTE,ZZZZOUT,DC=PR.
.*
.ELSE,STEP1.
.*
.*     STEP 2 
.*       FILE NAME ENTERED, TRY TO GET IT.
.*
$GET,OWNFILE/NA.
$IF,FILE(OWNFILE,.NOT.AS),STEP2.
$NOTE.++ FILE: OWNFILE NOT FOUND.++ 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$REVERT,EX.DSDIX1,#HRDCPY=HRDCPY. 
.*
.ELSE,STEP2.
.*
.*     STEP 3.
.*       FILE FOUND , USE IT. 
.*
$DSDI,I=OWNFILE,D,L=ZZZZOUT.
.*
.*
$REWIND,ZZZZOUT.
$COPYEI,ZZZZOUT,Q.
.*
.*     STEP 4.
.*       CHECK IF HARDCOPY WANTED 
.*
.IF,$HRDCPY$.EQ.$Y$.ROUTE,Q,DC=PR.
.*
$REWIND,ZZZZOUT.
$COPYBF,ZZZZOUT,. 
.*
$NOTE.++ ENTER (CR) TO CONTINUE. +
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
.*
.ENDIF,STEP2. 
.ENDIF,STEP1. 
$RETURN,ZZZZOUT,OWNFILE,Q.
.*
.*
$REVERT,NOLIST. 
*WEOR 
.PROC,DSDIX2*I'ENTER DSDI DIRECTIVE , END TO QUIT', 
P1=(*A1..10), 
P2=(*A,*N=Z), 
P3=(*A,*N=Z), 
P4=(*A,*N=Z). 
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - DSDIX2 
.*
.*       INTERACTIVE DSDI INPUT 
.*
.*    PURPOSE - ENTER DSDI INTERACTIVE DIRECTIVES 
.*
.*    PARAMETERS - P1 ... P4
.*
.*    CALLED BY - DSDIX1
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     USE P1 TO ENTER A VALID DSDI DIRECTIVE.
     USE P2, P3, AND P4 TO GIVE THE PARAMETERS
     FOR THE DIRECTIVE IN P1.  IF SPECAL
     CHARACTERS ARE TO BE ENTERED, SUCH AS
     A SLASH CHARACTER, THE WHOLE PARAMETER 
     ENTRY MUST BE DELIMETED WITH DOLLAR
     SIGNS. 
  
         EXAMPLE - $$$BCDUMP/OPS$$$ 
  
     AFTER THE DIRECTIVE HAS BEEN EXECUTED
     THE P1, P2, P3, AND P4 PARAMETERS WILL 
     BE DISPLAYED AGAIN TO ALLOW ENTRY OF 
     ANOTHER DSDI COMMAND.  ENTER - END - 
     IN P1 TO TERMINATE COMMAND ENTRY.
  
.HELP,P1,NOLIST.
  
     ENTER ANY VALID DSDI INPUT DIRECTIVE 
     OR ENTER - END - TO QUIT ENTERING
     DSDI DIRECTIVES. 
  
     DETAILED INFORMATION ON DSDI DIRECTIVES
     IS AVAILABLE IN :  
     - NOS V2 ANALYSIS HANDBOOK  NO. 60459300 
     - NOS V2 SYSTEM PROGRAMMER'S INSTANT 
                                 NO. 60459370 
  
  
     EXAMPLE :  
       DSDI COMMAND        CMSI PARAMETER ENTRIY
       ------------        -----------------------------
       C,FWA,LWA.          P1=C, P2=FWA, P3=LWA 
       I,FBA,LBA,ASID.     P1=I, P2=FBA, P3=LBA, P4=ASID
       AP,N1,N2,N3.        P1=AP, P2=N1, P3=N2, P4=N3     -ONLY 3 PARAMETER3
                                                           ALLOWED BY CMSI- 
       DAYFILE.            P1=DAYFILE 
       ERRLOG.             P1=ERRLOG
       PROMR.              P1=PROMR 
                           P1=END 
  
.HELP,P2,NOLIST.
  
     FIRST PARAMETER FOR COMMAND IN P1
  
.HELP,P3,NOLIST.
  
     SECOND PARAMETER FOR COMMAND IN P1 
  
.HELP,P4,NOLIST.
  
     THIRD PARAMETER FOR COMMAND IN P1
  
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.IF,$P1$.EQ.$END$.$REVERT,NOLIST. 
.*
.IF,$P2$.EQ.$Z$,STEPP2. 
 $DSDI,D,Z,L=ZQ./P1.
 .ELSE,STEPP2.
   .IF,$P3$.EQ.$Z$,STEPP3.
   $DSDI,D,Z,L=ZQ./P1,P2. 
   .ELSE,STEPP3.
    .IF,$P4$.EQ.$Z$,STEPP4. 
    $DSDI,D,Z,L=ZQ./P1,P2,P3. 
    .ELSE,STEPP4. 
    $DSDI,D,Z,L=ZQ./P1,P2,P3,P4.
    .ENDIF,STEPP4.
   .ENDIF,STEPP3. 
.ENDIF,STEPP2.
.*
.*
$REWIND,ZQ. 
$COPYBF,ZQ,ZZZZOUT. 
$REWIND,ZQ. 
$COPYBF,ZQ,OUTPUT.
.*
$RETURN,ZQ. 
$REVERT,EX.DSDIX2.      RESTART FOR NEXT DIRECTIVE
*WEOR 
.PROC,GETATT*I, 
FN=(*F) . 
.*
.* GET OR ATTACH FILE FN. 
.*   R1G=1 IF NOT FOUND.
.*
$GET,FN/NA. 
$IF,FILE(FN,.NOT.LO),STEP1. 
$ATTACH,FN/NA.
$IF,FILE(FN,.NOT.AS),STEP1. 
$NOTE.++  FILE FN NOT FOUND...
$SET,R1G=1. 
$REVERT,NOLIST. 
.*
.*
$ENDIF,STEP1. 
$REWIND,FN. 
$SET,R1G=0. 
$REVERT,NOLIST. 
*WEOR 
.PROC,GETRVSN.
.*   PROCEDURE REPLACED AT INITIALIZATION TIME BY CMSI501.... 
.*   PROCEDURE ADDED BY PSR CML0822 TO ALLOW VARIABLE REGEN TAPE VSN
.*
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - GETRVSN
.*
.*       GET THE REGEN MASTER TAPE VSN
.*
.*    PURPOSE - ALLOWS THE INITIALIZATION JOB TO CHANGE THE VSN 
.*
.*    PARAMETERS - NONE 
.*
.*    CALLED BY - CMSI240 , CMSI246 
.*
.*    PROCEDURES CALLED - NONE
.*
.* -------------------------------------------------------- 
.*
$RETURN,TAPE1.
$VSN,TAPE1=REGMST.
$REVERT,NOLIST. 
*WEOR 
.PROC,GETSCR,TEST.
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - GETSCR 
.*
.*       GET SCRATCH FILES. 
.*
.*    PURPOSE - GET CORRECT FILE FOR SCRATCH FILE FOR MALET.
.*
.*    PARAMETERS - TEST 
.*
.*    CALLED BY - CMS2125 , CMS2127 
.*
.*    PROCEDURES CALLED - GETSCR1 
.*
.* -------------------------------------------------------- 
.*
.*
.*     GET ANY SCRATCH FILES NEEDED FOR MALET TEST. 
.*
.*    BCX  -  BCXBC      MY8  -  MY8BC     CR1 - CR1SCR 
.*    FLM  -  NDP , NDM  NLM  -  NDM , NDP , NDT
.*    CLM  -  NDP , NDM 
.*    TFL  -  LDCHK3, MPINS, MPMOS, MOSMA, MIMEM, MIINS 
.*            PAGE1, CEL042, MST041, CPL040, CPLX40,
.*            TTYA08, UTOPIA, CCP48K
.*
.* PRESET R1G TO ZERO 
$SET,R1G=0. 
.*
.IF,$TEST$.EQ.$BCX$.GETSCR1,BCXBC,1.
.IF,$TEST$.EQ.$MY8$.GETSCR1,MY8BC,1.
.IF,$TEST$.EQ.$CR1$.GETSCR1,CR1SCR,1. 
.IF,$TEST$.EQ.$CLM$.GETSCR1,NDP,2.
.IF,$TEST$.EQ.$CLM$.GETSCR1,NDM,2.
.IF,$TEST$.EQ.$FLM$.GETSCR1,NDM,2.
.IF,$TEST$.EQ.$FLM$.GETSCR1,NDP,2.
.IF,$TEST$.EQ.$NLM$.GETSCR1,NDM,3.
.IF,$TEST$.EQ.$NLM$.GETSCR1,NDP,3.
.IF,$TEST$.EQ.$NLM$.GETSCR1,NDT,3.
.IF,$TEST$.EQ.$TFL$.GETSCR1,LDCHK3,15.
.IF,$TEST$.EQ.$TFL$.GETSCR1,MPINS,15. 
.IF,$TEST$.EQ.$TFL$.GETSCR1,MPMOS,15. 
.IF,$TEST$.EQ.$TFL$.GETSCR1,MOSMA,15. 
.IF,$TEST$.EQ.$TFL$.GETSCR1,MPRTS,15. 
.IF,$TEST$.EQ.$TFL$.GETSCR1,MIMEM,15. 
.IF,$TEST$.EQ.$TFL$.GETSCR1,MIINS,15. 
.IF,$TEST$.EQ.$TFL$.GETSCR1,PAGE1,15. 
.IF,$TEST$.EQ.$TFL$.GETSCR1,CEL042,15.
.IF,$TEST$.EQ.$TFL$.GETSCR1,MST041,15.
.IF,$TEST$.EQ.$TFL$.GETSCR1,CPL040,15.
.IF,$TEST$.EQ.$TFL$.GETSCR1,CPLX40,15.
.IF,$TEST$.EQ.$TFL$.GETSCR1,TTYA08,15.
.IF,$TEST$.EQ.$TFL$.GETSCR1,UTOPIA,15.
.IF,$TEST$.EQ.$TFL$.GETSCR1,CCP48K,15.
.*
.*
.*     TEST IF ALL FILES ATTACHED.
.*
$IF,R1G.EQ.0.$REVERT,NOLIST...NORMAL RETURN 
.*
.*
$REVERT,EX.$REVERT....CMS212X TERMINATED FILE NOT FOUND.
*WEOR 
.PROC,GETSCR1,FN,NUMBER.
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - GETSCR1
.*
.*       ATTACH-GET ANY SCRATCH FILES NEEDED
.*
.*    PURPOSE - GET FILES.
.*
.*    PARAMETERS - FN , NUMBER
.*
.*    CALLED BY - GETSCR
.*
.*    PROCEDURES CALLED - GETATT
.*
.* -------------------------------------------------------- 
.*
.*
.*
GETATT,FN.
.*
$IF,R1G.NE.0,STEP1. 
.*
$NOTE.++ UNABLE TO FIND SCRATCH FILE FN.
.IF,NUMBER.EQ.1.$NOTE.+ MALET TESTING TERMINATED. 
$NOTE.++ USE CMLUTIL TO INSTALL 
$NOTE.+ SCRATCH FILE = FN.
$NOTE.++
.*
$NOTE.+ ENTER (CR) TO CONTINUE. ++
$COPYCR,INPUT,ZTRASH. 
$RETURN,ZTRASH. 
.*
$ENDIF,STEP1. 
.IF,NUMBER.GT.1.$SKIP,XENDOUT.
.*
$IF,FILE(FN,LO).$RENAME,#SCRATCH=FN.
$NOTE.+ #SCRATCH FILE = FN ATTACHED.
.*
$ENDIF,XENDOUT. 
.*
$REVERT,NOLIST. 
*WEOR 
.PROC,LCNDIR,FID=FID,FM=FM,U=U,PW=PW,HT=HT. 
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - LCNDIR 
.*
.*    PURPOSE - SUBSTITUTE PARAMETERS INTO THE DIR'ECTIVE FILES 
.*
.*    PARAMETERS - FID , FM , U , PW , HT 
.*
.*    CALLED BY - CMSI256 
.*
.*    PROCEDURE CALLED - NONE 
.*
.* -------------------------------------------------------------
.*
$REWIND,ZXZXDIR.
.*
$REVERT,NOLIST. 
.*
.*----------------
.*
.DATA,ZXZXDIR 
.*
.*  REMOTE HOST DIRECTIVES HERE.
.*  THIS RECORD WILL DELETE THE FILE FROM THE REMOTE HOST.
.*
.IF,($HT$.EQ.$NOS$),DEL1. 
USER,U,PW,FM. 
PURGE,ZXZ_FID/NA. 
.ELSE,DEL1. 
.IF,($HT$.EQ.$NBE$),DEL2. 
PURGE,ZXZ_FID,ID=U,CY=1.
.ELSE,DEL2. 
.IF,$HT$.EQ.$VSOS$,DEL3.
USER,U=U,PA=PW. 
PURGE,ZXZ_FID.
.ELSE,DEL3. 
.IF,$HT$.EQ.$IBM$,DEL4. 
DELETE,DSN=_U_.MFCHECK.ZXZ_FID,VOL=SER=RHFTST,DISP=PURGE
.ELSE,DEL4. 
.IF,$HT$.EQ.$VAX$,DEL5. 
USER U PW 
DELETE ZXZ_FID.DAT;1
.ELSE,DEL5. 
.IF,$HT$.EQ.$NVE$,DEL6. 
LOGIN U PW FM 
DELF $USER.ZXZ_FID
.ENDIF,DEL6.
.ENDIF,DEL5.
.ENDIF,DEL4.
.ENDIF,DEL3.
.ENDIF,DEL2.
.ENDIF,DEL1.
.EOR
.*
.*  REMOTE HOST DIRECTIVES HERE.
.*  THIS RECORD WILL SEND THE FILE TO THE REMOTE HOST.
.*
.IF,($HT$.EQ.$NOS$),PUT1. 
USER,U,PW,FM. 
DEFINE,ZXZ_FID. 
.ELSE,PUT1. 
.IF,($HT$.EQ.$NBE$),PUT2. 
CATALOG,ZXZ_FID,ID=U,CY=1.
.ELSE,PUT2. 
.IF,$HT$.EQ.$VSOS$,PUT3.
USER,U=U,PA=PW. 
MFTAKE,ZXZ_FID. 
DEFINE,ZXZ_FID. 
.ELSE,PUT3. 
.IF,$HT$.EQ.$IBM$,PUT4. 
CREATE,DSN=_U_.MFCHECK.ZXZ_FID,DISP=KEEP,VOL=SER=RHFTST,
SPACE=(10000,(1,1),RLSE)
.ELSE,PUT4. 
.IF,$HT$.EQ.$VAX$,PUT5. 
USER U PW 
PUT ZXZ_FID.DAT;1 
.ELSE,PUT5. 
.IF,$HT$.EQ.$NVE$,PUT6. 
LOGIN U PW FM 
RECF $USER.ZXZ_FID
.ENDIF,PUT6.
.ENDIF,PUT5.
.ENDIF,PUT4.
.ENDIF,PUT3.
.ENDIF,PUT2.
.ENDIF,PUT1.
.EOR
.*
.*  REMOTE HOST DIRECTIVES HERE.
.*  THIS RECORD WILL GET THE FILE FROM THE REMOTE HOST. 
.*
.IF,($HT$.EQ.$NOS$),GET1. 
USER,U,PW,FM. 
ATTACH,ZXZ_FID. 
.ELSE,GET1. 
.IF,($HT$.EQ.$NBE$),GET2. 
ATTACH,ZXZ_FID,ID=U,CY=1. 
.ELSE,GET2. 
.IF,$HT$.EQ.$VSOS$,GET3.
USER,U=U,PA=PW. 
ATTACH,ZXZ_FID. 
MFGIVE,ZXZ_FID. 
.ELSE,GET3. 
.IF,$HT$.EQ.$IBM$,GET4. 
GET,DSN=_U_.MFCHECK.ZXZ_FID,VOL=SER=RHFTST
.ELSE,GET4. 
.IF,$HT$.EQ.$VAX$,GET5. 
USER U PW 
GET ZXZ_FID.DAT;1 
.ELSE,GET5. 
.IF,$HT$.EQ.$NVE$,GET6. 
LOGIN U PW FM 
SENF $USER.ZXZ_FID
.ENDIF,GET6.
.ENDIF,GET5.
.ENDIF,GET4.
.ENDIF,GET3.
.ENDIF,GET2.
.ENDIF,GET1.
.EOR. 
*WEOR 
.PROC,LCNGEN*I"", 
 DD=(C6 , C8 , UU ) , 
 ZFILE= ( C6FILE,C8FILE,UUFILE) , 
 DATAL=(*S5(0123456789) ) . 
.*
.* -------------------------------------------------------------
.*
.*    PROCEDURE NAME - LCNGEN 
.*
.*    PURPOSE - BUILD C6 ,C8 ,UU FILES WITH FTN5 PROGRAM
.*
.*    PARAMETERS - DD , ZFILE , DATAL 
.*
.*    CALLED BY - CMSI258 
.*
.*    PROCEDURE CALLED - NONE 
.*
.* -------------------------------------------------------------
.*
$NOTE.+*
$NOTE.+* LCN TEST - CREATING #DATA FILE _ZFILE_.
$NOTE.+*
$RETURN,ZXFTLGO.
$REWIND,ZXFTNIN,ZXFTNC8,ZFILE.
$MAP,OFF. 
.IF,($DD$.EQ.$C8$),GEN1.
$FTN5,I=ZXFTNC8,L=0,B=ZXFTLGO,GO. 
.ELSE,GEN1. 
$FTN5,I=ZXFTNIN,L=0,B=ZXFTLGO,GO. 
.ENDIF,GEN1.
$REWIND,TAPE1,ZFILE.
$COPYEI,TAPE1,ZFILE,V.
$RETURN,TAPE1.
$RETURN,ZXFTLGO.
$REVERT,NOLIST. 
$EXIT.
CMSIEFC.
$REVERT,NOLIST. 
.*
.*--------------- 
.*
.DATA,ZXFTNIN.
      PROGRAM DMDGEN(TAPE1) 
C 
C     THIS PROGRAM GENERATES CHARACTER DATA, WHICH MAY BE USED FOR
C     C6 AND UU TRANSFERS.
C 
C     THE PARAMETER *DATAL* IS PASSED BY THE  PROCEDURE.  IT
C     SPECIFIES THE LENGTH OF THE FILE IN KILO CHARACTERS.
C 
      CHARACTER*90 BYTESTR
      DATA BYTESTR/' ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLM
     +NOPQRSTUVWXYZ0123456789 ABCDEFGHIJKLMNO'/ 
C 
C     CHECK THE FILE LENGTH 
C 
      IF(DATAL .EQ. 0) STOP 0 
C 
      LOOP2 = 1000/90 
      DO 101 I=1,DATAL
      DO 100 J=1,LOOP2
100   WRITE(1,10)BYTESTR
101   CONTINUE
10    FORMAT (A90)
C 
      STOP
      END 
.EOF
.DATA,ZXFTNC8.
      PROGRAM DMDGEN(TAPE1) 
C 
C     THIS PROGRAM GENERATES CHARACTER DATA, WHICH MAY BE USED FOR
C     C8 TRANSFERS. 
C 
C     THE PARAMETER *#DATAL* IS PASSED BY THE  PROCEDURE.  IT 
C     SPECIFIES THE LENGTH OF THE FILE IN KILO CHARACTERS.
C 
      CHARACTER*40 STR1,STR2,STR3 
      DATA STR1/'AAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASAT'/ 
      DATA STR2/'AUAVAWAXAYAZ:##:[:]:%:":#_:!:&:&:?:5A6A7A8'/ 
      DATA STR3/'A9A+A-A*A/A(A)A$A=A A,A.A##A[A]A%A#_A"A!A&'/ 
C     CHECK THE FILE LENGTH 
C 
      IF(DATAL .EQ. 0) STOP 0 
C 
      LOOP2 = 1000/120
      DO 101 I=1,DATAL
      DO 100 J=1,LOOP2
100   WRITE(1,10)STR1,STR2,STR3 
101   CONTINUE
10    FORMAT (A40,A40,A40)
C 
      STOP
      END 
*WEOR 
.PROC,MLTDEMA*I,
TEST=(FEP , DH8 , FHD ) , 
EST=(*S3(01234567) ), 
CH=(*S2(01234567) , *N= ) , 
CCH=(*S2(01234567) , *N= ) ,
UNIT=(*S2(01234567), X , =X ) , 
DC=(*S4(01234567), X , =X ) , 
ESM"PARAMETER FOR FEP TESTING (YES/NO-[ESM=NO])  (CR)=YES"= 
  (Y=YES,YES, =YES , NO,N=NO ) .
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - MLTDEMA
.*
.*       FORMAT CALL TO CMS2123 FOR FEP TESTED
.*
.*    PURPOSE - FORMAT CALL TO CMS2123
.*
.*    PARAMETERS - TEST , EST , CH , UNIT , ESM , DC
.*
.*    CALLED BY - CMS2122 
.*
.*    PROCEDURES CALLED - CMS2123 
.*
.* -------------------------------------------------------- 
.*
.*
.*
.HELP,,NOLIST.
  
     ALLOW FOR THE USE OF THE ESM PARAMETER ON
     THE ASSIGN DIRECTIVE FOR THE TEST  FEP.
     ALSO ALLOW FOR FEP THE BE IN THE CONFIDENCE LIST.
  
.HELP,TEST,NOLIST.
  
     TEST PARAMETER SUPPLIED BY CALLING PROCEDURE.
  
.HELP,EST,NOLIST. 
  
     EST PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,CH,NOLIST.
  
     CH PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
  
.HELP,CCH,NOLIST. 
  
     CCH PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,UNIT,NOLIST.
  
     UNIT PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
  
.HELP,DC,NOLIST.
  
     DC PARAMETER IS SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,ESM,NOLIST. 
  
     ENTER YES OR NO TO ENABLE OR DISABLE 
     ASSIGNMENT OF ESM SPACE FOR THE SCRATCH FILE 
     ON THE DEMA DEVICE.  ( DEVICE CODES OF 14 ). 
  
     SEE THE CML REFERENCE MANUAL OR THE
     MALET REFERENCE MANUAL FOR DETAILS ON THE
     USE OF THE 'ESM' PARAMETER ON THE MALET
     ASSIGN DIRECTIVE.
  
.ENDHELP. 
$DISPLAY(PNL) 
.*
.IF,$TEST$.EQ.$FHD$,STEP1.
.*
$BEGIN,CMS2123,CMLINST, 
 #TEST=TEST,#EST=EST,#UNIT=UNIT,
  .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH, 
   .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH, 
   .IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC,
 #AL=03,#ESM=ESM,#P4=4000,#P5=0010.......END OF CALL. MLTDEMA-1.
.*
.ELSE,STEP1.
.*
$BEGIN,CMS2123,CMLINST, 
 #TEST=TEST,#EST=EST,#UNIT=UNIT,
  .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH, 
   .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH, 
   .IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC,
 #AL=03,#ESM=ESM.....................END OF CALL. MLTDEMA-2.
.*
.ENDIF,STEP1. 
.*
$REVERT,NOLIST. 
*WEOR 
.PROC,MLTFTP*I, 
EST=(*S3(01234567)),
CH=( *S2(01234567) , *N=  )  ,
CCH=(*S2(01234567) , *N=  )  ,
UNIT=(*S2(01234567),X), 
DC=(*S4(01234567) , X , =X ) ,
TRAIN"TYPE: 596-X WHERE X=1,2,3,4,5,OR 6 .  (CR) =1" =
  (=$0001$,1=$0001$,2=$0002$,3=$0003$,4=$0004$,5=$0005$,6=$0006$).
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - MLTFTP 
.*
.*       MALET PRINTER INTERFACE TEST 
.*
.*    PURPOSE - PREPARE CALL TO CMS2123 FOR 580 PRINTER 
.*
.*    PARAMETERS - TEST , EST , CH , UNIT , DC ,
.*                TRAIN 
.*
.*    CALLED BY - CMSI2122
.*
.*    PROCEDURES CALLED - CMS2123 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST 
  
     MLTFTP WILL SET-UP THE CALL TO MALET 
     BY REQUESTING THE LAST PARAMETER NECESSARY 
     TO RUN ( THE TRAIN TYPE ). 
  
.HELP,EST,NOLIST. 
  
     THIS PARAMETER SUPPLIED BY THE CALLING PROCEDURE 
  
.HELP,CH,NOLIST.
  
     THIS PARAMETER SUPPLIED BY THE CALLING PROCEDURE 
  
.HELP,CCH,NOLIST. 
  
     THIS PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
  
.HELP,UNIT,NOLIST.
  
     THIS PARAMETER SUPPLIED BY THE CALLING PROCEDURE 
  
.HELP,DC,NOLIST.
  
     THIS PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
  
.HELP,TRAIN,NOLIST. 
  
     ENTER THE TRAIN TYPE SET FOR THE 
     PRINTER TO BE TESTED.   THIS IS THE
     DASH NUMBER OF THE TRAIN EQUIPMENT.
       IE. 596-1 IS TRAIN TYPE 1. 
            . 
            . 
           596-6 IS TRAIN TYPE OF 6.
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
$NOTE.+  **  MALET  -  WARNING:  TEST REQUIRES ACCESS LEVEL 10
$NOTE.+                PRINTER MUST BE OFF AND DOWN IN THE (#EST) 
.*
.*
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.*
$BEGIN,CMS2123,CMLINST,#TEST=FTP,#EST=EST,#UNIT=UNIT, 
  #AL=10,#P0=TRAIN, 
  .IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC, 
  .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH, 
  .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH,
  #AFLG=LP. 
.*
$REVERT,NOLIST. 
.*
$EXIT.
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT.....ABORT FROM MLTFTP.. 
*WEOR 
.PROC,MLTTAP1*I,
TEST = ( T5X,T6X,T7X ) ,
EST=(*S3(01234567)),
CH=( *S2(01234567) , *N= )  , 
CCH=(*S2(01234567) , *N= )  , 
UNIT=(*S2(01234567), =X , X ) , 
DC=( *S4(01234567) , =X , X ) , 
TRACKS" OF TAPE UNIT , (7 OR 9)   (CR)=9"=(7,9,=9), 
SPEED" OF TAPE UNIT. 100,150,200 - (CR) = 150: " =
 (100=$0100$,150=$0150$,200=$0200$ , =$0150$ ) .
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - MLTTAP1
.*
.*       TAPE MALET 
.*
.*    PURPOSE - FIRST STEP IN CONFIDENCE LEVEL MALET TAPE TEST
.*
.*    PARAMETERS - TEST , EST , CH , TRACKS , SPEED 
.*                  UNIT , DC , CCH 
.*
.*    CALLED BY - CMS2122 
.*
.*    PROCEDURES CALLED - CMS2123 , MLTTAP2 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     CONTINUE TO BUILD THE PARAMETERS NEEDED TO RUN 
     THE MALET TAPE TEST .
  
.HELP,TEST,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,EST,NOLIST. 
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,CH,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,CCH,NOLIST. 
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,TRACKS,NOLIST.
  
     ENTER THE NUMBER OF TRACKS OF THE TEST UNIT. 
     VALID ENTRIES ARE   7  AND 9  .
     DEFAULT ( CR ONLY ) IS 9 . 
  
.HELP,SPEED,NOLIST. 
  
     ENTER THE TAPE SPEED FOR THIS UNIT.
     VAILD ENTRIES ARE 100 , 150 , 200. 
     DEFAULT  ( CR ONLY ) IS 150. 
  
.HELP,UNIT,NOLIST.
  
     ENTER THE UNIT NUMBER TO TEST. 
  
.HELP,DC,NOLIST.
  
     DC PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
  
.ENDHELP. 
.*
.IF,($CH$.NE.$$).OR.($CCH$.NE.$$),STEP0.
$NOTE.++ A CHANNEL WAS SPECIFIED FOR TAPE CONFIDENCE TESTING, 
$NOTE.+  TAPE PREASSIGNMENT WILL NOT BE PROVIDED. 
$NOTE.+  TAPE #UNIT MUST BE OFF OR DOWN IN THE #EST TABLE 
$NOTE.+  TO ALLOW FOR OPERATOR GO OF THIS MALET TESTING.
$NOTE.++  ENTER (CR) TO CONTINUE. + 
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.ELSE,STEP0.
$NOTE.++ TAPE #UNIT CONFIDENCE TESTS USE TAPE 
$NOTE.+ PRE-ASSIGNMENT.  THE #UNIT MUST BE ON AND 
$NOTE.+ UP IN THE #EST TABLE.  AND WILL BE ASSIGNED 
$NOTE.+ BY THE OPERATOR WITH A VSN,#EQ,#EST_EST 
$NOTE.+ CONSOLE COMMAND.
.*
$NOTE.++ ENTER (CR) TO CONTINUE 
$COPYCR,INPUT,TRASH.
$RETURN,TRASH.
.ENDIF,STEP0. 
.*
.*
.IF,$TRACKS$.EQ.$7$,STEP1A. 
.*
.*  **  RUN 7 TRACK TAPE UNIT 
.*
$BEGIN,CMS2123,CMLINST, 
 #TEST=TEST,#EST=EST,#UNIT=UNIT,
  .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH, 
   .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH, 
   .IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC,
   #TRK=MT,#AINP=MLTIRZ,
 #AL=00,#P0=$SPEED$,#P1=0001,#P2=0500,#P3=0072,#P4=6000.....MLTTAP1-1.
.ELSE,STEP1A..
.*
.*     STEP 2.
.*       9 TRACK UNIT.
.*
MLTTAP2,#TEST=TEST,#EST=EST,
  .IF,(NUM(CH)).#CH=CH, 
  .IF,(NUM(CCH)).#CCH=CCH,
  #SPEED=SPEED,#UNIT=UNIT,#DC=DC....MLTTAP1-2...
.*
.ENDIF,STEP1A.
.*
.*
$REVERT,NOLIST. 
$EXIT.
*WEOR 
.PROC,MLTTAP2*I,
TEST = ( T5X,T6X,T7X ) ,
EST=(*S3(01234567)),
CH=( *S2(01234567) , *N= )  , 
CCH=(*S2(01234567) , *N= )  , 
SPEED=(*S4(01234567)),
UNIT=(*S2(01234567),=X , X),
DC=(*S4(01234567) , X , =X ) ,
MODE"- G=GCR, P=PE, B=GCR/PE, N=NRZI/PE  -OR-  (CR)=PE/GCR "= 
 ( G,GCR=G, P,PE=P, B,GCRPE=B, =X,PEGCR=X, N,NRZI=N )  .
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - MLTTAP2
.*
.*       2ND LEVEL OF TAPE TESTING PROCEDURE
.*
.*    PURPOSE - FOR 9-TRACK TAPE MODE PARAMETERS
.*
.*    PARAMETERS - TEST , EST , CH , SPEED , UNIT 
.*                 MODE , DC , CCH
.*
.*    CALLED BY - MLTTAP1 
.*
.*    PROCEDURES CALLED - CMS2123 
.*
.* -------------------------------------------------------- 
.*
.*
.HELP,,NOLIST.
  
     CONTINUE TO BUILD THE PARAMETERS NEEDED TO RUN 
     THE MALET TAPE TEST .
  
.HELP,TEST,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,EST,NOLIST. 
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,CH,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,CCH,NOLIST. 
  
     PARAMETER SUPPLIED BY CALLING PROCEDURE. 
  
.HELP,SPEED,NOLIST. 
  
     ENTER THE TAPE SPEED FOR THIS UNIT.
     VAILD ENTRIES ARE 100 , 150 , 200. 
     DEFAULT  ( CR ONLY ) IS 150. 
  
.HELP,UNIT,NOLIST.
  
     ENTER THE UNIT NUMBER TO TEST. 
  
.HELP,DC,NOLIST.
  
     DC PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
  
.HELP,MODE,NOLIST.
  
     ENTER THE CODE FOR THE DESIRED DENSITY OR COMBINATION
     OF DENSITIES TO TEST THE UNIT AT.
  
     ENTER: 
      G - TEST AT GCR ONLY. 
      P - TEST AT PHASE ENCODED ONLY. 
      N - TEST AT NRZI ONLY.
  
      COMBINED TESTING. 
      IN ALL THESE SELECTIONS 2 PASSES OF MALET TESTS 
      WILL BE RUN.
  
      B - TEST FIRST AT GCR THEN AT PE (PHASE ENCODED)
      X - TEST FIRST AT PE THEN AT GCR. 
  
      ENTERING A (CR) WILL RUN BOTH GCR THEN PE: (AS IN X ABOVE). 
  
  
.ENDHELP. 
.*
DISPLAY(PNL)
.*
.*
.*     STEP 1.
.*       CHECK TEST MODE. 
.*
.IF,$MODE$.EQ.$N$,STEP2A. 
$NOTE.++ ** MALET WARNING: #MODE=NRZI/PE  THIS #MODE IS FOR 
$NOTE.+                  800BPI / 1600BPI 9TRK UNITS ONLY.+ 
.ENDIF,STEP2A.
.*
.*
$BEGIN,CMS2123,CMLINST, 
 #TEST=TEST,#EST=EST,#UNIT=UNIT,#AL=00,#AFLG=NT,
.IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH, 
.IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH,
  #P0=$SPEED$,#P2=0500,#P4=6000,#P8=0003,#P9=2000,
.IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC, 
.IF,$MODE$.EQ.$G$.#P1=0014,#P3=0073,#AINP=MLTGCX1,
.IF,$MODE$.EQ.$P$.#P1=0012,#P3=0073,#AINP=MLTGCX1,
.IF,$MODE$.EQ.$N$.#P1=0001,#P3=0052,#AINP=MLTNRZ1,
.IF,$MODE$.EQ.$X$.#P1=0012,#P3=0073,#AINP=MLTPGX1,
.IF,$MODE$.EQ.$B$.#P1=0014,#P3=0073,#AINP=MLTGPX1,
.*
  #TRK=NT.       END OF CALL TO CMS2123.....
.*
$REVERT,NOLIST. 
EXIT. 
.*
.* TEST FOR USER BREAK 1 ( TIE )
.*  OF USER BREAK 2 ( TAE )  .
.*
$IF(EF.EQ.TAE.OR.EF.EQ.TIE,EXIT1. 
$NOTE.//  ** USER INTERRUPTED TASK. //
$ELSE,EXIT1.
CMSIEFC.
$ENDIF,EXIT1. 
$REVERT....ABORT FROM MLTTAP2.. 
*WEOR 
.PROC,MLTTFF*I, 
EST=(*S3(01234567)),
CH=( *S2(01234567) , *N= ) ,
CCH=(*S2(01234567) , *N= ) ,
UNIT=(*S2(01234567),X), 
DC=( *S4(01234567) , X , =X ) , 
MEMORY" SIZE - 16,32,48,65,80,96,112,131"=(16=0016,32=0032,48=0048, 
65=0065,80=0080,112=0112,131=0131,=0131), 
COUPLER" NUMBER - 1=FIRST - 2=SECOND COUPLER"=(1=0000 ,2=0001 ,=0000)  .
.*
.* -------------------------------------------------------- 
.*
.*    PROCEDURE NAME - MLTTFF 
.*
.*       MALET TEST TFF 
.*
.*    PURPOSE - FORMAT PARAMETERS FOR CALL TO CMSI2123 FOR TFF
.*
.*    PARAMETER - EST , CH , UNIT , DC , MEMORY , COUPLER 
.*
.*    CALLED BY - CMS2122 
.*
.*    PROCEDURES CALLED - CMS2123 
.*
.* -------------------------------------------------------- 
.*
.HELP,,NOLIST.
  
     THIS PROCEDURE FORMATS THE CALL TO CMS2123 FOR A 
     TFF MALET RUN. 
  
.HELP,EST,NOLIST. 
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,CH,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,CCH,NOLIST. 
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,UNIT,NOLIST.
  
     PARAMETER SUPPLIED BY THE CALLING PROCEDURE. 
  
.HELP,DC,NOLIST.
  
     DC PARAMETER SUPPLIED BY THE CALLING PROCEDURE.
  
.HELP,MEMORY,NOLIST.
  
     ENTER THE MEMORY SIZE FOR THE 2550 TO BE TESTED. 
     THE VALID ENTRIES ARE: 
       16 , 32 , 48 , 65 , 80 , 96 , 112 , 131
  
.HELP,COUPLER,NOLIST. 
  
     ENTER THE COUPLER TO BE TESTED.
     THE VALID ENTRIES ARE 1 FOR THE FIRST  AND 
     2 FOR THE SECOND COUPLER.
  
.ENDHELP. 
.*
$BEGIN,CMS2123,CMLINST,#TEST=TFF,#EST=EST,#UNIT=UNIT,#AL=20,
  .IF,(NUM(CH)).XCH=$,#CH=$,ZCH=CH, 
  .IF,(NUM(CCH)).XCH=$,#CCH=$,ZCH=CCH,
  .IF,$DC$.NE.$X$.XDC=$,#DC=$,#DC=DC, 
  #P0=MEMORY,#P1=COUPLER. 
.*
$REVERT,NOLIST. 
*WEOR 
.PROC,OLDHIST.
.*
.*
.*  THIS PROCEDURE IS REPLACED BY THE CMSI500 
.*  PROCEDURE DURING INITIALIZATION .   SEE CMSI500 DATA
.*  RECORD FOR THE PROCEDURE TEXT.
.*
*WEOR 
.PROC,CMLUTIL*M"CML INSTALLATION UTILITIES",SELECT=(
1"COMPILE MALET DIAGNOSTIC",
2"GENERATE MALET DIAGNOSTIC DOCUMENTATION", 
3"COMPILE HPA", 
4"ASSEMBLE MALET",
5"ASSEMBLE MLD, WLD AND SBP", 
6"COMPILE REGEN OR TIO",
7"ASSEMBLE SKEDULR",
8"COMPILE MCCOMP,MCDUMP,MLTDOC,MTPLOT,HPTEXT,DSPLOT,OR DKDATA", 
9"LOAD MALET SCRATCH FILE BINARIES",
10"LOAD CML PROGRAM LIBRARY", 
11"SYSEDIT THE OPERATING SYSTEM", 
12"GENERATE NEW DEADSTART TAPE",
13"TERMINATE CMLUTIL PROCEDURE" ) . 
.HELP.
  
GENERAL INFORMATION ABOUT EACH OF THE CAPABILITIES LISTED IN THE MENU 
CAN BE OBTAINED BY ENTERING THE APPROPRIATE NUMBER FOLLOWED BY A
QUESTION MARK (?).  FOR EXAMPLE, TO OBTAIN INFORMATION ON COMPILING 
A MALET DIAGNOSTIC, ENTER "1?" FOLLOWED BY A CARRIAGE RETURN. 
  
ALL PROCEDURES MAY BE CALLED DIRECTLY, INSTEAD OF USING THIS MENU 
DRIVEN PROCEDURE (CMLUTIL).  THE NAME OF THE PROCEDURE WHICH
CORRESPONDS TO A SPECIFIC NUMBER SELECTION CAN BE DETERMINED BY 
APPENDING A QUESTION MARK (?) TO THE NUMBER.
  
ALL REFERENCES TO "(CR)" WITHIN THIS HELP DOCUMENTATION IMPLIES A CARRIAGE
RETURN CHARACTER. 
  
HELP INFORMATION IS AVAILABLE FOR ALL PROMPTS.  TO OBTAIN HELP, RESPOND 
TO THE PROMPT WITH A QUESTION MARK FOLLOWED BY A CARRIAGE RETURN ("?(CR)).
  
A PROCEDURE CAN BE TERMINATED AT ANY TIME BY ENTERING THE "USER BREAK 2"
CHARACTER SEQUENCE.  THIS CAN VARY FROM SITE-TO-SITE, BUT IS USUALLY
"CTRL/T(CR)". (HOLD "CTRL" AND "T" KEYS SIMULTANEOUSLY.)
  
IF "BATCH" EXECUTION MODE IS SELECTED AND THE USER SELECTS TO HAVE THE
OUTPUT LISTING DISCARDED UPON BATCH JOB TERMINATION, ANY JOB THAT TERMINATES
ABNORMALLY WILL HAVE THE JOB DAYFILE APPENDED TO THE LISTING, AND THE LISTING 
WILL BE ROUTED TO THE "WAIT" QUEUE.  THIS WILL ALLOW THE USER TO
DETERMINE WHY THE JOB ABORTED AND TAKE CORRECTIVE ACTION. 
  
ANY JOB ROUTED TO THE "WAIT" QUEUE CAN BE INSPECTED INTERACTIVELY AT THE
TERMINAL, OR CAN BE REROUTED TO THE DESIRED PRINTER.  THIS CAN BE 
ACCOMPLISHED BY USING THE "QGET" AND/OR ROUTE CONTROL STATEMENTS.  REFER
TO THE NOS REFERENCE MANUAL, VOL 3 FOR MORE INFORMATION ON THESE STATEMENTS.
  
THE PROGRESS OF BATCH JOBS CAN BE DETERMINED THROUGH USE OF THE 
"ENQUIRE,UJN" STATEMENT.  THIS CONTROL STATEMENT CAN BE ENTERED ONLY
FROM AN INTERACTIVE TERMINAL.  ANY JOB IN THE "WAIT" QUEUE HAS TERMINATED 
ABNORMALLY. 
  
THE PROGRESS OF INTERACTIVE JOBS CAN BE DETERMINED BY ENTERING
ESCAPE/E ("ESC/E(CR)"). (RELEASE "ESC" KEY BEFORE DEPRESSING "E".)
.HELP,1.
  
SELECTING OPTION 1 INITIATES PROCEDURE "MALDIAG". 
  
PROCEDURE "MALDIAG" WILL COMPILE ONE MALET DIAGNOSTIC.  IT CAN
BE RUN IN INTERACTIVE MODE OR BATCH MODE.  INTERACTIVE MODE CAN 
BE USED FOR SHORT COMPILES, WHILE BATCH MODE IS BEST IF MULTIPLE
OR LARGE DIAGNOSTICS ARE TO BE COMPILED.  BATCH MODE WILL ROUTE A 
BATCH JOB TO THE INPUT QUEUE FOR SEBSEQUENT EXECUTION, THUS FREEING 
THE TERMINAL FOR OTHER ACTIVITIES.
  
VALID DIAGNOSTICS INCLUDE-
  
*CALL,CDCMLI1 
  
        "END" TO TERMINATE
  
THE COMPILED RANDOM FILE WILL BE RETAINED AS A DIRECT OR INDIRECT 
ACCESS PERMANENT FILE OF THE SAME NAME AS THE DIAGNOSTIC. 
  
ANY MOFIFICATIONS TO THE DIAGNOSTIC SHOULD BE PLACED IN UPDATE
CORRECTION SET FORMAT ON AN INDIRECT ACCESS PERMANET FILE.
REFER TO THE CML REFERENCE MANUAL (60455980), SECTION 1,
CML INSTALLATION, FOR THE FILE NAMEING CONVENTION.
  
THIS PROCEDURE WILL CONTINUE TO LOOP, REQUESTING DIAGNOSTICS TO COMPILE 
UNTIL A "USER BREAK 2" SEQUENCE IS ENCOUNTERED, OR A NULL ENTRY (CR) IS 
ENTERED IN RESPONSE TO A PROMPT FOR A DIAGNOSTIC NAME.
.HELP,2.
  
SELECTING OPTION 2 INITIATES PROCEDURE "MALDOC".
  
PROCEDURE "MALDOC" PRODUCES DOCUMENTATION FOR ONE MALET DIAGNOSTIC. 
IT CAN BE RUN IN INTERACTIVE MODE OR BATCH MODE.  INTERACTIVE MODE CAN
BE USED FOR SMALL DIAGNOSTICS, WHILE BATCH MODE IS BEST IF DOCUMENTATION
IS REQUIRED FOR SEVERAL DIAGNOSTICS.  BATCH MODE WILL ROUTE A BATCH JOB 
TO THE INPUT QUEUE FOR SUBESQUENT EXECUTION, THUS FREEING THE TERMINAL
FOR OTHER ACTIVITIES. 
  
MALDOC WILL PRODUCE TWO TYPES OF DOCUMENTATION; EXTERNAL AND INTERNAL.
  
EXTERNAL DOCUMENTATION PROVIDES AN OVERVIEW OF THE DIAGNOSTIC, A BRIEF
DESCRIPTION OF EACH MODULE WITHIN THE DIAGNOSTIC, AND ANY OTHER 
INFORMATION REQUIRED TO USE THE DIAGNOSTIC. 
  
INTERNAL DOCUMENTATION PROVIDES THE USER WITH A COMPLETE LISTING OF ALL 
EXTERNAL AND INTERNAL DOCUMENTATION, INCLUDING THE SOURCE CODE.  INTERNAL 
DOCUMENTATION IS QUITE LENGTHY AND IS NOT GENERALLY REQUIRED FOR NORMAL 
MAINTENANCE ACTIVITIES.  INTERNAL DOCUMENTATION IS PROVIDED IN
MICROFICHE FORM IN THE CML KIT. 
  
MALDOC REQUIRES THAT THE BINARY OF THE DOCUMENTATION EXTRACTION PROGRAM 
"MLTDOC" RESIDE WITHIN THE USER 'S PERMANENT FILE CATALOG.  THIS PROGRAM
IS INSTALLED AS PART OF THE STANDARD CML INSTALLATION PROCESS (CML6), 
BUT CAN ALSO BE INSTALLED THROUGH USE OF THE CML INSTALLATION UTILITY 
"UTLCOMP" (SELECTION 8 OF PROCEDURE "CMLUTIL"). 
  
.HELP,3.
  
SELECTING OPTION 3 INITATES PROCEDURE "HPACOMP".
  
PROCEDURE "HPACOMP" WILL COMPILE HPA.  THE PROCEDURE CAN BE RUN IN EITHER 
BATCH OR INTERACTIVE MODE.  BATCH MODE ROUTES A JOB TO THE INPUT QUEUE, THUS
FREEING THE TERMINAL FOR OTHER ACTIVITIES.  INTERACTIVE MODE IS NOT 
RECOMMENDED DUE TO THE LENGTH OF TIME REQUIRED TO COMPILE HPA.
  
HPA CAN BE COMPILED FOR EXECUTION FORM A LOCAL FILE OR THE SYSTEM LIBRARY.
IF COMPILED FOR USE FROM A LOCAL FILE, IT WILL BE RETAINED ON DIRECT ACCESS 
PERMANENT FILE "HP".  IF COMPILED FOR EXECUTION FROM THE SYSTEM LIBRARY, IT 
WILL BE INCLUDED IN DIRECT ACCESS PERMANENT FILE "CMLBIN", WHICH CAN THEN 
BE USED WHEN BUILDING A NEW DEADSTART TAPE AND/OR PERFORMING A SYSTEM SYSEDIT.
  
.HELP,4.
  
SELECTING OPTION 4 INITIATES PROCEDURE "MALASSY". 
  
PROCEDURE "MALASSY" WILL ASSEMBLE THE MALET COMPILER/EXECUTIVE.  THE PROCEDURE
CAN BE RUN IN EITHER BATCH OR INTERACTIVE MODE.  BATCH MODE WILL ROUTE A JOB
TO THE INPUT QUEUE, THUS FREEING THE TERMINAL FOR OTHER ACTIVITIES. 
  
THE ABSLOUTE BINARY OF MALET WILL BE INCORPORATED INTO FILE "CMLBIN" WHICH CAN
THEN BE USED TO PERFORM A SYSTEM SYSEDIT AND/OR GENERATE A NEW DEADSTART TAPE.
  
.HELP,5.
  
SELECTING OPTION 5 INITIATES PROCEDURE "MLDSBP".
  
PROCEDURE "MLDSBP" WILL ASSEMBLE THE MALET PPU SUPPORT ROUTINES MLD,
WLD AND SBP.  THE PROCEDURE CAN BE RUN IN EITHER BATCH OR INTERACTIVE 
MODE.  BATCH MODE ROUTES A JOB TO THE INPUT QUEUE, THUS FREEING THE 
TERMINAL FOR OTHER ACTIVITIES.
  
THE ASSEMBLED BINARIES OF MLD, WLD AND SBP WILL BE RETAINED ON DIRECT 
ACCESS PERMANENT FILE "MLDBIN", WHICH CAN THEN BE USED TO PERFORM A 
SYSTEM SYSEDIT AND/OR GENERATE A NEW DEADSTART TAPE.
  
.HELP,6.
  
SELECTING OPTION 6 WILL INITIATE PROCEDURE "REGTIO".
  
PROCEDURE "REGTIO" WILL COMPILE REGEN OR TIO.  THE USER MUST SUPPLY THE NAME
OF THE DESIRED PROGRAM.  THE PROCEDURE CAN BE RUN IN EITHER BATCH OR INTERACTIVE
MODE.  BATCH MODE ROUTES A JOB TO THE INPUT QUEUE, THUS FREEING THE TERMINAL
FOR OTHER ACTIVITIES. 
  
THE ABSOLUTE BINARY OF THE PROGRAM WILL BE INCORPORATED INTO DIRECT ACCESS
PERMANENT FILE "CMLBIN", WHICH CAN THEN BE USED TO PERFORM A SYSTEM SYSEDIT 
AND/OR CREATE A NEW DEADSTART TAPE. 
  
THE BINARY WILL ALSO BE RETAINED ON A DIRECT ACCESS PERMANENT FILE OF THE 
SAME NAME AS THE PROGRAM.  THE PROGRAM CAN THEN BE EXECUTED DIRECTLY FROM 
THIS FILE.
  
.HELP,7.
  
SELECTING OPTION 7 INITIATES PROCEDURE "SKDASSY". 
  
PROCEDURE "SKDASSY" WILL ASSEMBLE THE AUTOMATIC JOB SCHEDULER "SKEDULR".
THIS PROCEDURE CAN BE RUN IN EITHER BATCH OR INTERACTIVE MODE.  BATCH MODE
WILL ROUTE A JOB TO THE INPUT QUEUE, THUS FREEING THE TERMINAL FOR OTHER
ACTIVITIES. 
  
ASSEMBLY OF SKEDULR REQUIRES "SYSVER "TO BE PRESENT. THIS IS SO THE CORRECT 
BINARY WILL BE ASSEMBLED FOR THE SYSTEM IT IS TO BE RUN ON. THE USER IS 
PROMPTED FOR THE "SYSVER".
  
ASSEMBLY OF SKEDULR REQUIRES ACCESS TO THE SYSTEM OPL (REL1A).  IF OPL IS 
AVAILABLE ON DISK, IT WILL BE USED.  OTHERWISE, IT WILL BE LOADED FROM TAPE 
AND RETAINED AS PERMANENT FILE "SYSOPL" UNDER THE USER'S CATALOG.  IF 
SYSOPL IS NOT FOUND, THE USER WILL BE PROMPTED FOR THE LOCATION OF OPL ON 
DISK; IF IT IS NOT ON DISK, THE USER IS PROMPTED FOR THE TAPE VSN AND DENSITY.
  
USE OF SKEDULR IS DOCUMENTED IN SECTION 6 OF THE CML REFERENCE MANUAL,
PUBLICATION NUMBER 60455980.
  
.HELP,8.
  
SELECTING OPTION 8 INITIATES PROCEDURE "UTLCOMP". 
  
PROCEDURE,"UTLCOMP" WILL COMPILE ANY OF THE FOLLOWING MAINTENANCE UTILITIES.
  
     MCCOMP     MLTDOC     HPTEXT     DSPLOT
     MCDUMP     MTPLOT     DKDATA 
  
THE COMPILED BINARY WILL BE RETAINED AS AN INDIRECT OR DIRECT ACCESS
PERMANENT FILE OF THE SAME NAME AS THE UTILITY.  FURTHER INFORMATION ON THE 
USE OF THESE UTILITIES CAN BE FOUND IN THE CML REFERENCE MANUAL (60455980). 
  
ANY MODIFICATIONS TO THE UTILITIES MUST BE PLACED IN UPDATE CORRECTION SET
FORMAT ON AN INDIRECT ACCESS FILE.  REFER TO THE CML REFERENCE MANUAL FOR 
SPECIFIC FILE NAMES.
THE MODIFICATIONS WILL BE INCORPORATED INTO THE COMPILED BINARY.
  
.HELP,9.
  
SELECTING OPTION 9 INITIATES PROCEDURE "BINLOAD". 
  
PROCEDURE "BINLOAD" WILL LOAD MALET SCRATCH FILE BINARIES FROM THE CML TAPE.
  
THE PROCEDURE WILL LOAD ONLY THOSE FILES THAT CANNOT BE ASSEMBLED/COMPILED
FROM SOURCE CONTAINED ON THE CML RELEASE TAPE.  THESE FILES INCLUDE-
  
     MY8BC               (FILE 3) 
     BCXBC               (FILE 4) 
     ODS (255X) BINARIES (FILE 5) 
     CR1SCR              (FILE 6) 
     LCN BINARIES        (FILE 7) 
  
.HELP,10. 
  
SELECTING OPTION 10 INITIATES PROCEDURE "CMLLOAD".
  
PROCEDURE "CMLLOAD" WILL LOAD THE SEQUENTIAL CML PROGRAM LIBRARY FROM 
TAPE TO DISK.  THE DISK COPY WILL BE IN RANDOM FORMAT AND RETAINED AS A 
DIRECT ACCESS PERMANENT FILE NAMED "CMLPL". 
  
.HELP,11. 
  
SELECTING OPTION 11 INITIATES PROCEDURE "SYSEDIT".
  
PROCEDURE "SYSEDIT" WILL INCORPORATE THE SPECIFIED BINARIES INTO THE RUNNING
SYSTEM.  THIS PROCEDURE CAN BE EXECUTED IN BATCH MODE ONLY.  INITIATING IT
FROM AN INTERACTIVE TERMINAL WILL RESULT IN A BATCH JOB BEING ROUTED TO THE 
INPUT QUEUE. IAF MAY HAVE TO BE DROPPED FOR SYSEDIT TO BE PERFORMED CORRECTLY.
  
.HELP,12. 
  
SELECTING OPTION 12 INTITATES PROCEDURE "SYSTAPE".
  
PROCEDURE "SYSTAPE" WILL GENERATE A NEW DEADSTART TAPE.  THE PROCEDURE MAY
BE RUN IN EITHER BATCH OR INTERACTIVE MODE. 
  
.HELP,13. 
  
SELECTING OPTION 13 TERMINATES CMLUTIL AND REVERTS
BACK TO EITHER NOS IF CALLED DIRECTLY FROM CMLINST
OR , TO CMSI IF CALLED FROM THE CMSI UTILITIES MENU.
  
.ENDHELP
NOTE,OUTPUT,NR./ YOU HAVE SELECTED OPTION SELECT /
.IF,SELECT.EQ.13.$REVERT,NOLIST.
BEGIN,GETATT,CMLINST,CMLINST. 
IFE,FILE(CMLINST,.NOT.AS),NOCMLI. 
SET,R1=77B. 
NOTE././...GETTING INSTALLATION PROCEDURES
.*
BEGIN,CMLINST,CMLPROC.
.*
ELSE,NOCMLI.
IFE,SELECT.NE.11,NONOTE.
BEGIN,CHKCML,CMLINST. 
IFE,FILE(PFNOTE,LO),NONOTE. 
COPYCR,PFNOTE.
RETURN,PFNOTE.
ENDIF,NONOTE. 
.IF,SELECT.EQ.1.BEGIN,MALDIAG,CMLINST,$?$.
.IFE,SELECT.EQ.2,NOT2.
GET,MLTDOC/NA.
IFE,FILE(MLTDOC,.NOT.LO),STEP2A.
ATTACH,MLTDOC/NA. 
IFE,FILE(MLTDOC,.NOT.LO),STEP2A.
NOTE,OUTPUT,NR./ MLTDOC NOT FOUND.  YOU MUST RUN PROCEDURE "UTLCOMP"
NOTE,OUTPUT,NR./ (SELECTION 8) TO COMPILE AND SAVE PROGRAM "MLTDOC".
REVERT,ABORT. 
ENDIF,STEP2A. 
BEGIN,MALDOC,CMLINST,$?$. 
.ENDIF,NOT2.
.IF,SELECT.EQ.3.BEGIN,HPACOMP,CMLINST,$?$.
.IF,SELECT.EQ.4.BEGIN,MALASSY,CMLINST,$?$.
.IF,SELECT.EQ.5.BEGIN,MLDSBP,CMLINST,$?$. 
.IF,SELECT.EQ.6.BEGIN,REGTIO,CMLINST,$?$. 
.IF,SELECT.EQ.7.BEGIN,SKDASSY,CMLINST,$?$.
.IF,SELECT.EQ.8.BEGIN,UTLCOMP,CMLINST,$?$.
.IF,SELECT.EQ.9.BEGIN,BINLOAD,CMLINST,$?$.
.IF,SELECT.EQ.10.BEGIN,CMLLOAD,CMLINST,$?$. 
.IF,SELECT.EQ.11.BEGIN,SYSEDIT,CMLINST,$?$. 
.IF,SELECT.EQ.12.BEGIN,SYSTAPE,CMLINST,$?$. 
REVERT. 
*WEOR 
.PROC,ANALDMP*I 
,VSN[VSN OF EXPRESS DUMP TAPE]=(*A) 
,TK[TRACK TYPE OF EXPRESS DUMP TAPE]=(MT,NT,*N=NT)
,L[NAME OF OUTPUT FILE]=(*F,*N=OUTPUT)
,LBL[IS THE EDD TAPE LABELED]=(YES,NO,*N=YES) 
. 
.HELP 
USE THE HARDWARE PERFORMANCE ANALYZER (HPA) TO ANALYZE THE
MAINTENANCE REGISTERS THAT HAVE BEEN DUMPED TO AN EXPRESS 
DEADSTART DUMP TAPE.
.HELP,VSN,NOLIST
THE VOLUME SERIAL NUMBER OF THE EXPRESS DEADSTART DUMP TAPE.
.HELP,TK,NOLIST 
THE TRACK TYPE OF THE EXPRESS DEADSTART DUMP TAPE.
  SEVEN TRACK (MT)  OR
  NINE TRACK (NT).
THE DEFAULT VALUE IS NT, FOR A NINE TRACK TAPE. 
.HELP,L,NOLIST
THE NAME OF THE NORM/HPA OUTPUT FILE. 
THE DEFAULT FILE NAME IS OUTPUT.
.HELP,LBL,NOLIST
IS THE EXPRESS DEADSTART DUMP TAPE LABELED? 
YES OR NO. DEFAULT IS YES.
.ENDHELP
RETURN,BML,DUMP.
.IF,$TK$.EQ.$NT$,NINETRACK. 
.IF,$LBL$.EQ.$NO$,NLBL9.
LABEL,DUMP,#VSN=VSN,D=1600,NT,F=S,LB=KU.
.ENDIF,NLBL9. 
.IF,$LBL$.EQ.$YES$,NLBL91.
LABEL,DUMP,#VSN=VSN,D=1600,NT,F=S,LB=KL.
.ENDIF,NLBL91.
.ELSE,NINETRACK.
.IF,$LBL$.EQ.$NO$,NLBL7.
LABEL,DUMP,#VSN=VSN,D=800,MT,F=S,LB=KU. 
.ENDIF,NLBL7. 
.IF,$LBL$.EQ.$YES$,NLBL71.
LABEL,DUMP,#VSN=VSN,D=800,MT,F=S,LB=KL. 
.ENDIF,NLBL71.
.ENDIF,NINETRACK. 
DSDI,B=BML,I=0. 
RETURN,DUMP.
REWIND,BML. 
NORM,F,#L=L.
HPA,S,A,D,#L=L. 
RETURN,BML. 
REVERT. ANALDMP COMPLETE. 
*WEOR 
.PROC,BATCH*I,
USER[ENTER USER/PASSWORD/FAMILY]= 
(*S40(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$,*$)), 
CHG[IS CHARGE NUMBER REQUIRED]=(YES,Y=YES,NO,N=NO,*N=NO).COMMENT
.*
.* PROCEDURE NAME - BATCH 
.*
.* PURPOSE - BATCH GENERATES THE USER STATEMENT REQUIRED
.*           WHEN BATCH EXECUTION MODE IS SELECTED. 
.*
.*           ONCE ENTERED, THE USERNAME AND CHARGE NUMBER (IF ONE IS ENTERED) 
.*           WILL BE RETAINED FOR USE DURING SUBSEQUENT EXECUTION OF THE CML
.*           INSTALLATION UTILITIES.
.*
.HELP,,NOLIST.
.HELP,USER,NOLIST.
  
ENTER THE USERNAME, PASSWORD, AND OPTIONAL FAMILY NAME IN 
ONE OF THE FOLLOWING FORMATS IF IN LINE MODE- 
  
         $USERNAME$ 
             OR 
       $USERNAME,PASSWORD$
             OR 
   $USERNAME,PASSWORD,FAMILYNAME$ 
  
(THE ENTRY MUST BE ENCLOSED WITHIN DOLLAR SIGNS AS INDICATED
IN THE EXAMPLES.) 
  
ENTER THE USERNAME, PASSWORD, AND OPTIONAL FAMILY NAME IN 
ONE OF THE FOLLOWING FORMATS IF IN SCREEN MODE- 
  
          USERNAME
             OR 
        USERNAME,PASSWORD 
             OR 
    USERNAME,PASSWORD,FAMILYNAME
  
(THE ENTRY CANNOT BE ENCLOSED WITHIN DOLLAR SIGNS)
       ** NOTE ** 
  
ONCE A USERNAME HAS BEEN ENTERED, IT WILL BE RETAINED FOR USE DURING
SUBSEQUENT EXECUTIONS OF THE CML INSTALLATION UTILITIES.
TO NEGATE USE OF THE PREVIOUS USERNAME, RETURN FILE "USERCHG" PRIOR 
TO STARTING A NEW "BEGIN" PROCEDURE (I.E., "RETURN,USERCHG(CR)"). 
.HELP,CHG,NOLIST. 
  
IF YOUR INSTALLATION REQUIRES A CHARGE NUMBER TO BE INCLUDED IN 
BATCH JOBS, ENTER "Y".  IF CHARGE NUMBERS ARE NOT REQUIRED, 
ENTER "N" OR (CR).
.ENDHELP
.IFE,$CHG$.EQ.$YES$.BEGIN,CHARGE,CMLINST. 
COPYCR,#USER,USERCHG. 
IFE,FILE(CHARGE,LO).COPYCR,CHARGE,USERCHG.
PACK,USERCHG. 
RETURN,#USER,CHARGE.
REVERT. 
.DATA,#USER.
#USER,_USER_. 
*WEOR 
.PROC,BINLOAD,MY8BCX=,ODS=,CR1=,LCN=. 
.IFE,OT.EQ.TXO,BAT. 
BEGIN,BINLOAX,CMLINST?. 
.ELSE,BAT.
BEGIN,BINLOAX,CMLINST,MY8BCX,ODS,CR1,LCN,BATCH. 
.ENDIF,BAT. 
IFE,PNL.GT.0.REVERT. - END BINLOAD -
*WEOR 
.PROC,BINLOAX*I,
MY8BCX[DO YOU WANT MY8BC AND BCXBC LOADED]= 
(Y=MY8BCX,YES=MY8BCX,MY8BCX,N=,NO=,*N=),
ODS[DO YOU WANT 255X/ODS LOADED]=(Y=ODS,YES=ODS,ODS,N=,NO=,*N=),
CR1[DO YOU WANT CR1SCR LOADED]=(Y=CR1,YES=CR1,CR1,N=,NO=,*N=),
LCN[DO YOU WANT LCN BINARIES LOADED]=(Y=LCN,YES=LCN,LCN,N=,NO=,*N=),
BATCH[BATCH OR INTERACTIVE MODE]=(B=BATCH,BATCH,I=INTERACT,INTERACT,*N=BATCH).
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "CTRL/T(CR)" THEN "BEGIN,CMLUTIL,CMLINST,9?".
  
.HELP,MY8BCX,NOLIST.
  
IF YOU WANT THE MALET SCRATCH FILES FOR THE DIAGNOSTICS MY8 AND BCX LOADED
(MY8BC AND BCXBC), ENTER "YES"; IF NOT, ENTER "NO" OR (CR). 
  
.HELP,ODS,NOLIST. 
  
IF YOU WANT THE ODS/255X MALET SCRATCH FILE BINARIES LOADED, ENTER "YES"; 
IF NOT, ENTER "NO" OR (CR). 
  
.HELP,CR1,NOLIST. 
  
IF YOU WANT THE MALET SCRATCH FILE BINARY FOR THE DIAGNOSTIC CR1 LOADED,
ENTER "YES"; IF NOT, ENTER "NO" OR (CR).
  
.HELP,LCN,NOLIST. 
  
IF YOU WANT THE LCN DIAGNOSTICS NDM, NDP, AND NDT LOADED, ENTER "YES"; IF 
NOT, ENTER "NO" OR (CR).
  
.ENDHELP. 
.*
.* STEP 0 - CHECK TO ENSURE THAT AT LEAST ONE SELECTION HAS BEEN MADE.
.*
.IFE,($MY8BCX$.EQ.$$).AND.($ODS$.EQ.$$).AND.($CR1$.EQ.$$).AND.($LCN$.EQ.$$),
STEP0.
.IFE,$BATCH$.NE.$#BATCH$.REVERT,ABORT.  - NO LOAD SELECTIONS MADE - 
********* ERROR ****************
*                              *
*   NO LOAD SELECTIONS MADE    *
*                              *
*      END BINLOAD             *
*                              *
********* ERROR ****************
SKIP,STEP8A.
.ENDIF,STEP0. 
.*
.* STEP 1 - IF BATCH MODE IS SELECTED, GET THE USER/CHARGE, THE ROUTE THE 
.* JOB TO INPUT; ELSE RUN IT INTERACTIVELY. 
.*
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP1. 
BEGIN,LISTOUT,CMLINST,?.
IFE,FILE(USERCHG,.NOT.LO),STEP1A. 
BEGIN,#BATCH,CMLINST,?. 
.ELSE,STEP1A. 
NOTE.' 'USING PREVIOUSLY ENTERED USER/CHARGE
.ENDIF,STEP1A.
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
IFE,FILE(R1GFILE,LO).COPYCR,R1GFILE,JOB.
COPYCR,PART2,JOB. 
PACK,JOB. 
ROUTE,JOB,DC=NO.
NOTE./ /BINLOAD ROUTED TO INPUT QUEUE.
REWIND,USERCHG. 
RETURN,R1GFILE,PART2. 
REVERT. - BINLOAD ROUTED TO INPUT QUEUE - 
.DATA,PART2.
.ENDIF,STEP1. 
.*
.* STEP 2 - REQUEST CML TAPE AND POSITION IT TO FILE 3. 
.*
.IFE,$BATCH$.NE.$#BATCH$.NOTE.' 'REQUESTING CML TAPE... 
LABEL,CMLTAPE,VSN=CMLVSN,F=SI.
.IFE,$BATCH$.NE.$#BATCH$.NOTE.' 'SKIPPING PROGRAM LIBRARY...
SKIPF,CMLTAPE,2.
.*
.* STEP 3 - LOAD MY8BC AND BCXBC IF REQUESTED.
.*
.IFE,$MY8BCX$.EQ.$#MY8BCX$,STEP3. 
.IFE,$BATCH$.NE.$#BATCH$.NOTE.' 'LOADING MY8BC AND BCXBC... 
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=MY8BC,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=BCXBC,INFILE=CMLTAPE. 
.ELSE,STEP3.
SKIPF,CMLTAPE,2.
.ENDIF,STEP3. 
.*
.* STEP 4 - LOAD ODS DIAGNOSTICS IF REQUESTED.
.*
.IFE,$ODS$.EQ.$#ODS$,STEP4. 
.IFE,$BATCH$.NE.$#BATCH$.NOTE.' 'LOADING ODS DIAGNOSTICS... 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=LDCHK3,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MPINS,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MPMOS,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MOSMA,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MPRTC,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MIMEM,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MIINS,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=PAGE1,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=CEL042,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=MST041,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=CPL040,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=CPLX40,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=TTYA08,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=UTOPIA,INFILE=CMLTAPE.
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=CCP48K,INFILE=CMLTAPE.
.ELSE,STEP4.
SKIPF,CMLTAPE,1.
.ENDIF,STEP4. 
.*
.* STEP 5 - LOAD CR1SCR IF REQUESTED. 
.*
.IFE,$CR1$.EQ.$#CR1$,STEP5. 
.IFE,$BATCH$.NE.$#BATCH$.NOTE.' 'LOADING CR1SCR...
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=CR1SCR,INFILE=CMLTAPE.
.ELSE,STEP5.
SKIPF,CMLTAPE,1.
.ENDIF,STEP5. 
.*
.* STEP 6 - LOAD LCN DIAGNOSTICS IF REQUESTED.
.*
.IFE,$LCN$.EQ.$#LCN$,STEP6. 
.IFE,$BATCH$.NE.$#BATCH$.NOTE.' 'LOADING LCN DIAGNOSTICS
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=NDM,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=R,OUTFILE=NDP,INFILE=CMLTAPE. 
BEGIN,XLOADY,CMLINST,TYPE=F,OUTFILE=NDT,INFILE=CMLTAPE. 
.ELSE,STEP6.
SKIPF,CMLTAPE,1.
.ENDIF,STEP6. 
.*
.* STEP 7 - ROUTE DAYFILE AS SPECIFIED. 
.*
IFE,OT.NE.TXO,STEP7.
IFE,PNL.EQ.0,STEP7. 
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ENDIF,STEP7.
IFE,OT.EQ.TXO.NOTE.' 'BINLOAD COMPLETE. 
IFE,PNL.GT.0.REVERT. - END BINLOAD -
EXIT. 
.*
.* EXIT PROCESSING
.*
ENDIF,STEP8A. 
IFE,OT.EQ.TXO.REVERT,ABORT. - ABORT IN BINLOAD -
IFE,PNL.GT.0.REVERT. - ABORT IN BINLOAD - 
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
.DATA,JOB.
BINLOAD.  - LOAD MALET SCRATCH FILE BINARIES -
*WEOR 
.PROC,CHARGE*I, 
CHARGE[ENTER CHARGE & PROJECT NUMBERS]= 
(*S40(1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ$,*/$)).
.HELP,CHARGE,NOLIST.
  
ENTER THE CHARGE AND/OR PROJECT NUMBERS IN THE FOLLOWING FORMAT-
  
   $CHARGENUMBER$ 
         OR 
$CHARGENUMBER,USERNUMBER$ 
  
(THE ENTRY MUST BE ENCLOSED WITHIN DOLLAR SIGNS AS INDICATED.)
  
   ** NOTE ** 
  
ONCE CHARGE AND/OR PROJECT NUMBERS HAVE BEEN ENTERED, THEY WILL BE RETAINED 
FOR USE DURING SUBSEQUENT EXECUTIONS OF THE CML INSTALLATION UTILITIES. 
TO NEGATE USE OF PREVIOUS CHARGE/PROJECT NUMBERS, RETURN FILE "USERCHG" 
PRIOR TO STARTING A NEW "BEGIN" PROCEDURE (I.E., "RETURN,USERCHG(CR)"). 
.ENDHELP. 
REWIND,#CHARGE. 
REVERT. 
.DATA,#CHARGE.
#CHARGE,_CHARGE_. 
*WEOR 
.PROC,CHKCML. 
.*
.* PROCEDURE NAME - CHKCML
.*
.* PURPOSE - THIS PROCEDURE CHECKS THE USER'S PERMANENT FILE BASE TO
.*           SEE IF FILE "CMLPL" IS AVAILABLE AS A DIRECT ACCESS
.*           PERMANENT FILE.  IF IT IS NOT FOUND, AN INFORMATIVE
.*           MESSAGE IS WRITTEN TO FILE "PFNOTE" SUGGESTING THAT THE
.*           USER RUN PROCEDURE "CMLLOAD" TO LOAD THE CML PROGRAM 
.*           LIBRARY IF IT IS GOING TO BE REQUIRED MORE THAN ONCE.
.*
ATTACH,CMLPL/NA.
IFE,FILE(CMLPL,.NOT.AS),CMLPF.
NOTE,PFNOTE,NR./1/ CML PROGRAM LIBRARY NOT ON DISK.  SUGGEST LOADING
NOTE,PFNOTE,NR./ CML PROGRAM LIBRARY TO DISK (PROCEDURE CMLLOAD, SELECTION 10)
NOTE,PFNOTE,NR./ IF PL IS GOING TO BE REQUIRED MORE THAN ONCE.
PACK,PFNOTE.
.IFE,OT.EQ.TXO.COPYCR,PFNOTE,,1,2,80. 
.IFE,OT.NE.TXO.COPYCR,PFNOTE,DIAGLST. 
RETURN,PFNOTE.
ENDIF,CMLPF.
RETURN,CMLPL. 
REVERT.  - END CHKCML - 
*WEOR 
.PROC,CMLLIB,DIAG.
.*
.* PROCEDURE NAME - CMLLIB
.*
.* PURPOSE - CMLLIB PACKS INDIVIDUALLY COMPILED CML BINARIES ONTO FILE
.*           CMLBIN FOR SUBSEQUENT INCLUSION IN THE SYSTEM LIBRARY. 
.*
.* STEP 1 - IF CMLBIN DOES NOT EXIST, DEFINE IT AND PLACE THE FIRST 
.* BINARIES ON IT; ELSE ATTACH THE EXISTING CMLBIN IN WRITE MODE. 
.*
ATTACH,CMLBIN/M=W,NA. 
IFE,FILE(CMLBIN,AS).SKIP,STEP1. 
DEFINE,CMLBIN.
REWIND,DIAG.
COPYBF,DIAG,CMLBIN. 
RETURN,CMLBIN,DIAG. 
REVERT. - CMLBIN CREATED -
ENDIF,STEP1.
.*
.* STEP 2 - DETERMINE THE CONTENT OF CMLBIN THEN CUT THE DIRECTIVES NECESSARY 
.* TO DELETE OLD BINARIES.  THE CONTENT OF CMLBIN WILL BE IN THE SAME ORDER AS
.* THE CMLBIN CREATED BY THE INSTALLATION JOB CML2; MALET, FOLLOWED BY HPA, 
.* REGEN, AND TIO IN THAT ORDER.  THIS PROCEDURE CAN ALSO BE USED TO EDIT 
.* A CMLBIN FILE THAT HAS BEEN CREATED BY CML2. 
.*
GTR,CMLBIN,MALFILE,,,S,NA.ABS/MALET 
GTR,CMLBIN,HPAFILE,,,S,NA.ABS/HPA 
GTR,CMLBIN,REGFILE,,,S,NA.ABS/REGEN 
GTR,CMLBIN,TIOFILE,,,S,NA.ABS/TIO 
RETURN,LIBDIR.
NOTE,LIBDIR,NR.'*NOREP,DIAG'*FILE,DIAG
IFE,($DIAG$.EQ.$MALET$).AND.(FILE(MALFILE,LO)),NOMAL. 
NOTE,LIBDIR,NR.'*REPLACE,ABS/MALET-OVL/MALET40
ENDIF,NOMAL.
IFE,($DIAG$.EQ.$HPA$).AND.(FILE(HPAFILE,LO)),NOHPA. 
NOTE,LIBDIR,NR.'*REPLACE,ABS/HPA-ULIB/HPALIB
ENDIF,NOHPA.
IFE,($DIAG$.EQ.$REGEN$).AND.(FILE(REGFILE,LO)),NOREG. 
NOTE,LIBDIR,NR.'*REPLACE,ABS/REGEN
ENDIF,NOREG.
IFE,($DIAG$.EQ.$TIO$).AND.(FILE(TIOFILE,LO)),NOTIO. 
NOTE,LIBDIR,NR.'*REPLACE,ABS/TIO
ENDIF,NOTIO.
.*
.* STEP 3 - CUT THE DIRECTIVES TO ADD NEW BINARIES. 
.*
IFE,($DIAG$.EQ.$MALET$).AND.(FILE(MALFILE,.NOT.LO)),STEP3A. 
IFE,FILE(HPAFILE,LO),STEP3A1. 
NOTE,LIBDIR,NR.'*BEFORE,ABS/HPA,ABS/MALET-OVL/MALET40 
SKIP,STEP3. 
ENDIF,STEP3A1.
IFE,FILE(REGFILE,LO),STEP3A2. 
NOTE,LIBDIR,NR.'*BEFORE,ABS/REGEN,ABS/MALET-OVL/MALET40 
SKIP,STEP3. 
ENDIF,STEP3A2.
IFE,FILE(TIOFILE,LO),STEP3A3. 
NOTE,LIBDIR,NR.'*BEFORE,ABS/TIO,ABS/MALET-OVL/MALET40 
SKIP,STEP3. 
ENDIF,STEP3A3.
NOTE,LIBDIR,NR.'*BEFORE,*,ABS/MALET-OVL/MALET40 
ENDIF,STEP3A. 
IFE,($DIAG$.EQ.$HPA$).AND.(FILE(HPAFILE,.NOT.LO)),STEP3B. 
IFE,FILE(REGFILE,LO),STEP3B1. 
NOTE,LIBDIR,NR."*BEFORE,ABS/REGEN,ABS/HPA-ULIB/HPALIB 
SKIP,STEP3. 
ENDIF,STEP3B1.
IFE,FILE(TIOFILE,LO),STEP3B2. 
NOTE,LIBDIR,NR.'*BEFORE,ABS/TIO,ABS/HPA-ULIB/HPALIB 
SKIP,STEP3. 
ENDIF,STEP3B2.
NOTE,LIBDIR,NR.'*BEFORE,*,ABS/HPA-ULIB/HPALIB 
ENDIF,STEP3B. 
IFE,($DIAG$.EQ.$REGEN$).AND.(FILE(REGFILE,.NOT.LO)),STEP3C. 
IFE,FILE(TIOFILE,LO),STEP3C1. 
NOTE,LIBDIR,NR.'*BEFORE,ABS/TIO,ABS/REGEN 
SKIP,STEP3. 
ENDIF,STEP3C1.
NOTE,LIBDIR,NR.'*BEFORE,*,ABS/REGEN 
ENDIF,STEP3C. 
IFE,($DIAG$.EQ.$TIO$).AND.(FILE(TIOFILE,.NOT.LO)),STEP3.
NOTE,LIBDIR,NR.'*BEFORE,*,ABS/TIO 
ENDIF,STEP3.
.*
.* STEP 4 - PACK THE LIBEDIT DIRECTIVES AND PERFORM THE LIBEDIT.
.*
PACK,LIBDIR.
LIBEDIT,P=CMLBIN,I=LIBDIR,B=0,L=DIAGLST,LO=F,C. 
RETURN,LIBDIR,CMLBIN,NEW,MALFILE,HPAFILE,REGFILE,TIOFILE,DIAG.
IFE,OT.EQ.TXO.NOTE.'LIBEDIT COMPLETE... DIAG ADDED TO CMLBIN. 
REVERT. - END CMLLIB -
*WEOR 
.PROC,CMLLOAD,LISTING=NO. 
.IFE,OT.EQ.TXO,BAT. 
BEGIN,CMLLOAX,CMLINST?. 
.ELSE,BAT.
BEGIN,CMLLOAX,CMLINST,#LISTING=LISTING,#BATCH=#BATCH. 
.ENDIF,BAT. 
IFE,PNL.GT.0.REVERT.  - END CMLLOAD - 
*WEOR 
.PROC,CMLLOAX*I,
LISTING[DO YOU WANT A DECK LIST]= 
(Y=,YES=,LISTING=,N=$,L=1$,NO=$,L=1$,*N=),
BATCH[BATCH OR INTERACTIVE MODE]=(B=BATCH,BATCH,I=INTERACT,INTERACT,*N=BATCH),
PRUS[]=(*N=50000).
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "CTRL/T(CR)" THEN "BEGIN,CMLUTIL,CMLINST,10?". 
  
.HELP,BATCH,NOLIST. 
  
SPECIFIES WHETHER THE LOAD WILL BE DONE IN BATCH OR INTERACTIVE MODE. 
ENTER "B" OR (CR) FOR BATCH; "I" FOR INTERACTIVE. 
(READ "GENERAL INFO" FOR MORE INFORMATION ON EXECUTION MODES.)
  
.HELP,LISTING,NOLIST. 
  
IF YOU WANT A LISTING OF THE DECKS AND CORRECTION SETS CONTAINED ON THE 
PROGRAM LIBRARY, ENTER "Y"; IF NOT, ENTER "N".
  
.ENDHELP
.*
.*    STEP 1 - IF BATCH MODE IS SELECTED, CHECK TO MAKE SURE THERE IS 
.*    ENOUGH PERMANENT FILE SPACE AVAILABLE, THEN GET THE USER/CHARGE 
.*    AND LISTING DISPOSITION AND ROUTE THE JOB TO INPUT; ELSE PERFORM
.*    THE LOAD INTERACTIVELY. 
.*
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP1. 
PURGE,CMLPL/NA. 
DEFINE,CMLPL/S=PRUS,NA. 
IFE,FILE(CMLPL,AS),STEP1A.
RETURN,CMLPL. 
PURGE,CMLPL.
SKIP,STEP1A.
ELSE,STEP1A.
NOTE./ INSUFFICIENT FILE SPACE FOR CMLPL. 
REVERT,ABORT. - INSUFFICIENT FILE SPACE FOR CMLPL - 
ENDIF,STEP1A. 
IFE,$LISTING$.EQ.$$.BEGIN,LISTOUT,CMLINST,?.
IFE,FILE(USERCHG,.NOT.LO),STEP1B. 
BEGIN,#BATCH,CMLINST,?. 
ELSE,STEP1B.
NOTE./' 'USING PREVIOUSLY ENTERED USER/CHARGE.
ENDIF,STEP1B. 
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
IFE,FILE(R1GFILE,LO).COPYCR,R1GFILE,JOB.
COPYCR,PART2,JOB. 
PACK,JOB. 
ROUTE,JOB,DC=NO.
NOTE./ / CMLPL LOAD ROUTED TO INPUT QUEUE.
REWIND,USERCHG. 
RETURN,R1GFILE,PART2. 
REVERT. - CMLPL LOAD ROUTED TO INPUT QUEUE -
.DATA,PART2.
.ENDIF,STEP1. 
IFE,OT.EQ.TXO.RETURN,JOB. 
SETTL,*.
SETASL,*. 
SETJSL,*. 
.*
.* STEP 2 - PURGE ANY OLD CMLPL, THEN DEFINE SPACE FOR THE NEW ONE. 
.*
PURGE,CMLPL/NA. 
DEFINE,NEWPL=CMLPL/S=PRUS,NA. 
IFE,FILE(NEWPL,.NOT.AS),STEP2.
NOTE,OUTPUT,NR./ INSUFFICIENT PERM FILE SPACE AVAILABLE FOR CMLPL.
IFE,OT.EQ.TX0. REVERT,ABORT.
SKIP,STEP4. 
ENDIF,STEP2.
.*
.* STEP 3 - REQUEST THE CML TAPE AND PERFORM THE UPDATE.
.*
IFE,OT.EQ.TXO.NOTE.' REQUESTING CML RELEASE TAPE... 
LABEL,OLDPL,VSN=CMLVSN,F=SI.
SKIPF,OLDPL.
IFE,OT.EQ.TXO.NOTE.' BEGINNING UPDATE...
$UPDATE,A,R,O=DIAGLST_LISTING.
RETURN,OLDPL,NEWPL. 
IFE,OT.EQ.TXO,STEP3.
NOTE./ CML PROGRAM LIBRARY LOAD COMPLETE. 
IFE,$LISTING$.EQ.$$,STEP3.
NOTE./ DECK LIST AND CORRECTION SET LIST
NOTE./ IS ON FILE DIAGLST.  ROUTE TO
NOTE./ PRINT QUEUE IF DESIRED.
ENDIF,STEP3.
IFE,OT.NE.TXO,STEP3C. 
IFE,(PNL.GT.0).AND.($LISTING$.EQ.$$),STEP3C1. 
BEGIN,DIAGOUT,CMLINST.
SKIP,STEP3C.
ENDIF,STEP3C1.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ENDIF,STEP3C. 
IFE,PNL.GT.0.REVERT. - END CMLLOAX -
.*
.* EXIT PROCESSING
.*
EXIT. 
ENDIF,STEP4.
IFE,OT.EQ.TXO.REVERT,ABORT. - ERRORS DURING CMLPL LOAD -
IFE,ONL.GT.0,STEP4A.
BEGIN,DIAGOUT,CMLINST.
ELSE,STEP4A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
ENDIF,STEP4A. 
IFE,PNL.GT.0.REVERT. - ERRORS DURING COMPL LOAD - 
.DATA,JOB.
CMLLOAD.    - LOAD CML PROGRAM LIBRARY -
*WEOR 
.PROC,DIAGOUT.
.*
.* PURPOSE - COPY FILE DIAGLST TO OUTPUT AND RETURN DIAGLST.
.*
REWIND,DIAGLST. 
COPY,DIAGLST,OUTPUT.
RETURN,DIAGLST. 
REVERT. - END DIAGOUT - 
*WEOR 
.PROC,FINDOPL,BATCH=,REL1APFN=,REL1AUN=,REL1APW=,REL1APAK=,REL1AVSN=,REL1ADEN=, 
REL1ADT=. 
.*
.* STEP 0 - IF TXO AND BATCH MODE SELECTED, CONTINUE TO STEP 1, ELSE
.*          SKIP TO STEP 2. 
.*
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP1. 
.*
.* STEP 1 - TXO AND BATCH MODE SELECTED - CHECK TO SEE IF OPLDIR IS 
.*          LOCAL.  IF SO, SKIP TO STEP 6; IF NOT, SKIP TO STEP 5.
.*
.IFE,FILE(OPLDIR,LO).SKIP,STEP6.
SKIP,STEP4. 
.ENDIF,STEP1. 
.*
.* STEP 2 - NOT TXO OR INTERACTIVE MODE - IF OPL IS ASSIGNED, SKIP TO 
.*          STEP 6; ELSE CONTINUE TO STEP 3.
.*
.IFE,FILE(OPL,AS),STEP2.
.IFE,OT.EQ.TXO.NOTE,OUTPUT,NR./USING LOCAL OPL
SKIP,STEP6. 
.ENDIF,STEP2. 
.*
.* STEP 3 - IF OPLDIR IS LOCAL, EXECUTE IT TO THE THE OPL; ELSE GO TO 
.*          STEP 5. 
.*
IFE,FILE(OPLDIR,LO),STEP4.
REWIND,OPLDIR.
NOTE,OPLDIRX,NR./.PROC,OPLDIRX. 
COPYCR,OPLDIR,OPLDIRX.
NOTE,OPLDIRX,NR./REVERT. - END OPLDIRX -
PACK,OPLDIRX. 
BEGIN,,OPLDIRX. 
RETURN,OPLDIRX. 
.*
.* STEP 4 - IF OPL IS ASSIGNED, THEN SKIP TO STEP 9; ELSE RETURN OPLDIR 
.*          SINCE IT IS NO GOOD AND GO TO STEP 5. 
.*
IFE,FILE(OPL,.NOT.AS),STEP6.
RETURN,OPLDIR.
ENDIF,STEP4.
.*
.* STEP 5 - IF TXO, CALL OPLDIRI; ELSE CALL GETOPL DIRECTLY.
.*
.IFE,OT.EQ.TXO,STEP5. 
BEGIN,OPLDIRI,CMLINST,BATCH.
.ELSE,STEP5.
BEGIN,GETOPL,CMLINST,REL1APFN,REL1AUN,REL1APW,REL1APAK,REL1AVSN,
REL1ADEN,REL1ADT. 
.ENDIF,STEP5. 
.*
.* STEP 6 - REVERT. 
.*
ENDIF,STEP6.
REWIND,OPLDIR.
REVERT. - END FINDOPL - 
*WEOR 
.PROC,HPACOMP,LISTING=,XRUN=,HPSORT=,66X=,67X=,844=,885=. 
.IFE,OT.EQ.TXO,BAT. 
BEGIN,HPACOMX,CMLINST?. 
.ELSE,BAT.
BEGIN,HPACOMX,CMLINST,XRUN,HPSORT,66X,67X,844,885,LISTING,BATCH.
.ENDIF,BAT. 
IFE,PNL.GT.0.REVERT. - END HPA COMPILE -
*WEOR 
.PROC,HPACOMX*I,
XRUN[PERM FILE OR SYSTEM LIBRARY VERSION]=(XRUN,P=XRUN,PERM=XRUN,S=,SYS=),
HPSORT[(CR) = SORT/MERGE 5, I = INTERNAL SORT]= 
(HPSORT,I=HPSORT,INT=HPSORT,SM5=,*N=),
66X[DO YOU HAVE 66X TAPE DRIVES]=(66X,Y=66X,YES=66X,N=,NO=,*N=),
67X[DO YOU HAVE 67X TAPE DRIVES]=(67X,Y=67X,YES=67X,N=,NO=,*N=),
844[DO YOU HAVE 844 DISK DRIVES]=(844,Y=844,YES=844,N=,NO=,*N=),
885[DO YOU HAVE 885 DISK DRIVES]=(885,Y=885,YES=885,N=,NO=,*N=),
LISTING[DO YOU WANT A LISTING]=(Y=,YES=,N=$=0$,LISTING=$$,*N=$=0$), 
BATCH[BATCH OR INTERACTIVE MODE]=(B=BATCH,BATCH,I=INTERACT,INTERACT,*N=BATCH).
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "CTRL/T(CR)" THEN "BEGIN,CMLUTIL,CMLINST,3?".
  
.HELP,XRUN,NOLIST.
  
HPA CAN BE COMPILED SO THAT IT MAY BE EXECUTED FROM THE SYSTEM LIBRARY OR FROM
A LOCAL (PERMANENT) FILE.  SPECIFYING "XRUN" IN RESPONSE TO THE PROMPT WILL 
CAUSE HPA TO BE COMPILED FOR EXECUTION FROM A LOCAL FILE.  SPECIFYING "S" OR
"SYS" WILL CAUSE HPA TO BE COMPILED FOR EXECUTION FROM THE SYSTEM LIBRARY.
  
IF "XRUN" IS SPECIFIED, THE ABSOLUTE BINARY OF HPA WILL BE RETAINED ON A
DIRECT ACCESS PERMANENT FILE NAMED "HP".  IF "S" OR "SYS" IS SPECIFIED, 
THE BINARY WILL BE INCLUDED ON DIRECT ACCESS PERMANENT FILE 
"CMLBIN", WHICH CAN THEN BE USED TO CREATE A NEW DEADSTART TAPE AND/OR PERFORM
A SYSTEM SYSEDIT.  (SEE PROCEDURES "NEWTAPE" AND "SYSEDIT".)
  
.HELP,HPSORT,NOLIST.
  
HPA CAN BE ASSEMBLED TO USE SORT/MERGE 5 OR AN INTERNAL SORT ROUTINE.  IF 
SORT/MERGE 5 IS AVAILABLE, IT SHOULD BE USED IN LIEU OF THE INTERNAL SORT 
SINCE IT EXECUTES MUCH FASTER THAN THE INTERNAL SORT. 
  
IF THE INTERNAL SORT MUST BE USED, ENTER "I" IN RESPONSE TO THE PROMPT. 
IF SORT/MERGE 5 IS AVAILABLE, ENTER (CR). 
  
.HELP,LISTING,NOLIST. 
  
LISTINGS ARE NOT GENERALLY NEEDED UNLESS ONE IS MAKING MODIFICATIONS TO THE 
PROGRAM.  IF YOU WANT A LISTING, ENTER "Y". THE LIST OPTIONS SELECTED ARE S, A, 
AND R.  (SEE FORTRAN VERSION 5 REFERENCE MANUAL, PUBLICATION NUMBER 60481300
FOR A DESCRIPTION OF THESE OPTIONS.)
  
IF YOU DO NOT WANT A LISTING, ENTER "N" OR (CR).
  
            **** NOTE ****
  
   THE HPA LISTING IS EXTREMELY LARGE AND 
   MAY TAKE SEVERAL HOURS TO PRINT
   ON A BATCH TERMINAL PRINTER. 
  
.HELP,66X,NOLIST
  
IF YOU HAVE 66X TAPE DRIVES IN YOUR CONFUGURATION, YOU SHOULD INCLUDE THE 
66X DETAIL STATUS ANALYSIS TABLES IN HPA. 
  
ENTER "66X" OR "Y" IF YOU HAVE 66X DRIVES; "N" OR (CR) IF YOU DON'T.
  
.HELP,67X,NOLIST. 
  
IF YOU HAVE 67X TAPE DRIVES IN YOUR CONFIGURATION, YOU SHOULD INCLUDE THE 
67X DETAIL STATUS ANALYSIS TABLES IN HPA. 
  
ENTER "67X" OR "Y" IF YOU HAVE 67X DRIVES; "N" OR (CR) IF YOU DON'T.
  
.HELP,844,NOLIST. 
  
IF YOU HAVE 844 DISK DRIVES IN YOUR CONFIGURATION, YOU SHOULD INCLUDE THE 
844 DETAIL STATUS ANALYSIS TABLES IN HPA. 
  
ENTER "844" OR "Y" IF YOU HAVE 844 DRIVES; "N" OR (CR) IF YOU DON'T.
  
.HELP,885,NOLIST. 
  
IF YOU HAVE 885 DISK DRIVES OR DEMA IN YOUR CONFIGURATION, YOU SHOULD INCLUDE 
THE 885 DETAIL STATUS ANALYSIS TABLES IN HPA. 
  
ENTER "885" OR "Y" IF YOU HAVE 885 DRIVES; "N" OR (CR) IF YOU DON'T.
  
.HELP,BATCH,NOLIST. 
  
SPECIFIES WHETHER THE COMPILATION WILL BE DONE IN BATCH OR INTERACTIVE MODE.
ENTER "B" OR (CR) FOR BATCH; "I" FOR INTERACTIVE. 
  
     *** NOTE *** 
  
  HPA COMPILATION IS QUITE LONG AND IS
  BEST PERFORMED IN BATCH MODE. 
  
(READ "GENERAL INFO" FOR MORE INFORMATION ON EXECUTION MODES.)
  
.ENDHELP. 
.*
.* STEP 1 - CHECK TO SEE IF CMLPL IS AVAILABLE. 
.*
BEGIN,CHKCML,CMLINST. 
.*
.* STEP 2 - CHECK FOR LOCAL MODIFICATIONS.
.*
BEGIN,MOD,CMLINST,HPA.
IFE,FILE(DNOTE,LO),STEP2A.
.IFE,OT.EQ.TXO,STEP2B.
COPYCR,DNOTE,,1,2,80. 
.ELSE,STEP2B. 
COPYCR,DNOTE,DIAGLST. 
.ENDIF,STEP2B.
.IFE,$BATCH$.EQ.$#BATCH$.RETURN,DIAGMOD.
ENDIF,STEP2A. 
RETURN,DNOTE. 
.*
.* STEP 3 - IF BATCH MODE, GET THE USER/CHARGE AND LISTING DISPOSITION, 
.* THEN ROUTE THE JOB TO INPUT; ELSE RUN IT INTERACTIVELY.
.*
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP3. 
.IFE,$LISTING$.EQ.$$.BEGIN,LISTOUT,CMLINST,?. 
.IFE,FILE(USERCHG,.NOT.LO),STEP3A.
BEGIN,#BATCH,CMLINST,?. 
.ELSE,STEP3A. 
NOTE.' 'USING PREVIOUSLY ENTERED USER/CHARGE
.ENDIF,STEP3A.
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
IFE,FILE(R1GFILE,LO).COPYCR,R1GFILE,JOB.
COPYCR,PART2,JOB. 
PACK,JOB. 
SKIPR,JOB.
COPYCR,UPIN,JOB.
ROUTE,JOB,DC=NO.
NOTE./ /HPA COMPILATION ROUTED TO INPUT QUEUE.
REWIND,USERCHG. 
RETURN,R1GFILE,PART2,UPIN.
REVERT. - HPA COMPILE ROUTED TO INPUT QUEUE - 
.DATA,PART2.
.ENDIF,STEP3. 
.*
.* STEP 4 - PERFORM THE UPDATE. 
.*
SETTL,*.
SETASL,*. 
SETJSL,*. 
.IFE,$BATCH$.NE.$#BATCH$.NOTE./ / BEGINNING UPDATE OF HPA.....
BEGIN,UPDATEX,CMLINST,HPA.
.*
.* STEP 5 - COMPILE HPA AND RUN IT THROUGH LOADER.
.*
.IFE,$BATCH$.NE.$#BATCH$.NOTE./ /UPDATE COMPLETE... BEGINNING COMPILE OF HPA..
REWIND,COMPILE,LGO. 
FTN5,I,LO_LISTING,PL=999999,OPT=2,L=DIAGLST,EL,ANSI=0,ET. 
RETURN,COMPILE. 
.IFE,$BATCH$.NE.$#BATCH$.NOTE./ /HPA COMPILE COMPLETE... BEGINNING LOAD SEQUENCE
.IFE,$XRUN$.EQ.$#XRUN$,STEP5. 
PURGE,HP/NA.
DEFINE,HP.
.IFE,$LISTING$.EQ.$$,STEP5A.
LDSET(MAP=SB/DIAGLST) 
.ELSE,STEP5A. 
MAP(OFF)
.ENDIF,STEP5A.
LOAD(LGO) 
NOGO(HP)
RETURN,HP,LGO.
.IFE,$BATCH$.NE.$#BATCH$,STEP5B.
NOTE./ /LOAD SEQUENCE COMPLETE...BINARY OF HPA IS ON PERM FILE "HP".
.ENDIF,STEP5B.
.ELSE,STEP5.
.IFE,$LISTING$.EQ.$$.LDSET(MAP=SB/DIAGLST)
LOAD(LGO) 
NOGO(HPALGO)
REWIND,HPALGO.
COPYBR,HPALGO,HPALGO1.
LIBGEN,F=HPALGO,P=HPALIB. 
REWIND,HPALGO1,HPALIB.
COPYBR,HPALGO1,HPA. 
COPYBF,HPALIB,HPA.
.*
.* STEP 6 - INCORPORATE THE ABSOLUTE BINARY OF HPA INTO FILE CMLBIN.
.*
BEGIN,CMLLIB,CMLINST,HPA. 
.ENDIF,STEP5. 
.*
.* STEP 7 - IF BATCH MODE, ROUTE THE LISTING IF ONE WAS REQUESTED.
.*
.IFE,$LISTING$.EQ.$$,STEP7. 
IFE,OT.NE.TXO,STEP7B. 
IFE,(PNL.GT.0).AND.($LISTING$.EQ.$$),STEP7B1. 
BEGIN,DIAGOUT,CMLINST.
SKIP,STEP7C.
ENDIF,STEP7B1.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ELSE,STEP7B.
NOTE./ /HPA #LISTING IS ON FILE "DIAGLST".
NOTE./ROUTE TO PRINT IF DESIRED.
.ENDIF,STEP7. 
ENDIF,STEP7C. 
RETURN,UPIN,R1GFILE.
IFE,PNL.GT.0.REVERT. - END COMPILE OF HPA - 
.*
.* EXIT PROCESSING
.*
EXIT. 
IFE,OT.EQ.TXO.REVERT,ABORT. - ERRORS IN HPA - 
IFE,PNL.GT.0,STEP8A.
BEGIN,DIAGOUT,CMLINST.
ELSE,STEP8A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
ENDIF,STEP8A. 
IFE,PNL.GT.0.REVERT. - ERRORS IN HPA -
.DATA,UPIN. 
*TEXT 
*IDENT,ZZHPAZZ
*READ,DIAGMOD 
.IFE,$XRUN$.EQ.$#XRUN$.*DEFINE,XRUN 
.IFE,$HPSORT$.EQ.$#HPSORT$.*DEFINE,HPSORT 
.IFE,$66X$.EQ.$#66X$.*DEFINE,66X
.IFE,$67X$.EQ.$#67X$.*DEFINE,67X
.IFE,$844$.EQ.$#844$.*DEFINE,844
.IFE,$885$.EQ.$#885$.*DEFINE,885
*COMPILE,HPA.HPA9 
*ENDTEXT
.DATA,JOB.
HPACOMP.    - COMPILE HPA - 
*WEOR 
.PROC,LISTDSP,LIST. 
.*
.* PROCEDURE NAME - LISTDSP (LISTING DISPOSITION) 
.*
.* PURPOSE - ROUTE LISTING TO DESIRED PRINTER 
.*
.* METHOD USED - LISTDSP USES THE VALUE PASSED IN REGISTER R1G TO 
.*               DETERMINE LISTING DISPOSITION. 
.*
.*               R1G = 0 --> LISTING DISCARDED UPON JOB TERMINATION.
.*
.*                     1 --> LISTING ROUTED TO CENTRAL PRINTER. 
.*
.*                     2 --> LISTING ROUTED TO REMOTE BATCH PRINTER.
.*
.*                     3 --> LISTING QUEUED WITH WAIT DISPOSITION 
.*                           (BATCH JOB ABORTED AND NO PREVIOUS DISPOSITION 
.*                           SPECIFIED) 
.*
REWIND,LIST.
.IFE,R1G.EQ.1.ROUTE,LIST,DC=PR,TID=C. 
.IFE,R1G.EQ.2.ROUTE,LIST,DC=PR,UN.
.IFE,R1G.EQ.3.ROUTE,LIST,DC=WT. 
REVERT. 
*WEOR 
.PROC,LISTOUT*I,LIST[LISTING DISPOSITION - C, R, OR N]= 
(N=0,C=1,R=2,*N=0). 
.*
.* PROCEDURE NAME - LSITOUT 
.*
.* PURPOSE - OBTAIN OUTPUT LISTING DISPOSITION FROM THE USER WHEN 
.*           BATCH EXECUTION MODE IS SELECTED AND RETAIN IT IN
.*           REGISTER R1G.  PROCEDURE LISTDSP USES THE VALUE IN R1G 
.*           TO ROUTE THE OUTPUT TO THE PROPER QUEUE UPON JOB 
.*           TERMINATION. 
.*
.HELP,,NOLIST.
.HELP,LIST,NOLIST.
SPECIFIES WHERE LISTING IS TO BE ROUTED WHEN RUNNING IN BATCH MODE. 
  
   C = CENTRAL PRINTER
   R = REMOTE BATCH PRINTER 
   N OR (CR) = LISTING DISCARDED
.ENDHELP. 
NOTE,R1GFILE./SET,R1G=LIST. 
REVERT. 
*WEOR 
.PROC,MALASSY,LISTING=,8LPI=,PAPER85=,OPLPFN=,OPLUNID=,OPLPW=,OPLPAK=,
OPLDTSET=,OPLVSN=,OPLDEN=,SYSVER=.
.IFE,OT.EQ.TXO,BAT. 
BEGIN,MALASSX,CMLINST,#OPLPFN=OPLPFN,#OPLUNID=OPLUNID,#OPLPW=OPLPW, 
#OPLPAK=OPLPAK,#OPLDTSET=OPLDTSET,#OPLVSN=OPLVSN,#OPLDEN=OPLDEN,?.
.ELSE,BAT.
BEGIN,MALASSX,CMLINST,SYSVER,8LPI,PAPER85,LISTING,BATCH,
#OPLPFN=OPLPFN,#OPLUNID=OPLUNID,#OPLPW=OPLPW,#OPLPAK=OPLPAK,
#OPLDTSET=OPLDTSET,#OPLVSN=OPLVSN,#OPLDEN=OPLDEN. 
.ENDIF,BAT. 
IFE,PNL.GT.0.REVERT. - END MALET ASSEMBLY - 
*WEOR 
.PROC,MALASSX*I,
SYSVER[ENTER SYSTEM VERSION]=(NOS27,NOS26,NOS25,NOS24,NOS23,NOS6),
8LPI[6 OR 8 LINES PER INCH]=(6,8,*N=6), 
PAPER85[8.5 OR 11 INCH PRINTER PAPER]=(85,11,*N=11),
LISTING[DO YOU WANT A LISTING]=(Y=DIAGLST,YES=DIAGLST,N=0,NO=0,LISTING=DIAGLST, 
*N=0),
BATCH[BATCH OR INTERACTIVE MODE]=(B=BATCH,BATCH,I=INTERACT,INTERACT,*N=BATCH),
OPLPFN[]=(*A,*N=),OPLUNID[]=(*A,*N=),OPLPW[]=(*A,*N=),OPLPAK[]=(*A,*N=),
OPLDTSET[]=(*A,*N=),OPLVSN[]=(*A,*N=),OPLDEN[]=(*A,*N=).
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "CTRL/T(CR)" THEN "BEGIN,CMLUTIL,CMLINST,4?".
  
.HELP,SYSVER,NOLIST.
  
ENTER THE SYSTEM VERSION AS FOLLOWS-
  
    NOS27 ==> NOS 2.7 
    NOS26 ==> NOS 2.6 
    NOS25 ==> NOS 2.5 
    NOS24 ==> NOS 2.4 
    NOS23 ==> NOS 2.3 
    NOS6  ==> NOS 2.2, NOS 2.1, OR NOS 2.0
  
.HELP,8LPI,NOLIST.
  
MALET PRINTER OUTPUT CAN BE AT EITHER 8 OR 6 LINES PER INCH.
ENTER "8" FOR 8 LINES PER INCH; "6" OR (CR) FOR 6 LINES PER INCH. 
  
.HELP,PAPER85,NOLIST. 
  
MALET PRINTER OUTPUT CAN BE SIZED FOR EITHER 8.5 INCH (SHORT) PAPER OR
11 INCH (STANDARD) PAPER.  ENTER "85" FOR 8.5 INCH PAPER; "11" OR (CR) FOR
11 INCH PAPER.
  
.HELP,LISTING,NOLIST. 
  
A LISTING OF MALET IS NOT GENERALLY NEEDED UNLESS ONE IS MAKING MOFIFICATIONS 
TO THE PROGRAM.  THE MALET LISTING IS QUITE LARGE AND MAY TAKE SEVERAL HOURS
TO PRINT ON A REMOTE BATCH PRINTER. 
  
ENTER "Y" IF YOU WANT A LISTING; "N" OR (CR) IF YOU DON'T.
  
.HELP,BATCH,NOLIST. 
  
SPECIFIES WHETHER THE ASSEMBLY WILL BE DONE IN BATCH OR INTERACTIVE MODE. 
ENTER "B" OR (CR) FOR BATCH; "I" FOR INTERACTIVE.  READ "GENERAL INFO"
FOR MORE INFORMATION ON EXECTUION MODES.
  
.ENDHELP. 
.*
.* STEP 1 - CHECK TO SEE IF CMLPL IS AVAILABLE. 
.*
SETTL,*.
SETASL,*. 
SETJSL,*. 
BEGIN,CHKCML,CMLINST. 
.*
.* STEP 2 - CHECK FOR LOCAL MODIFICATIONS.
.*
BEGIN,MOD,CMLINST,MALET.
IFE,FILE(DNOTE,LO),STEP2A.
.IFE,OT.EQ.TXO,STEP2B.
COPYCR,DNOTE,,1,2,80. 
.ELSE,STEP2B. 
COPYCR,DNOTE,DIAGLST. 
.ENDIF,STEP2B.
.IFE,$BATCH$.EQ.$#BATCH$.RETURN,DIAGMOD.
ENDIF,STEP2A. 
RETURN,DNOTE. 
.*
.* STEP 3 - FIND SYSOPL 
.*
BEGIN,FINDOPL,CMLINST,BATCH,OPLPFN,OPLUNID,OPLPW,OPLPAK,OPLVSN,OPLDEN,OPLDTSET. 
.*
.* STEP 4 - IF BATCH MODE, GET THE USER/CHARGE AND LISTING DISPOSITION, 
.*          THEN ROUTE THE JOB TO INPUT; ELSE RUN IT INTERACTIVELY. 
.*
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP4. 
.IFE,$LISTING$.NE.$0$.BEGIN,LISTOUT,CMLINST,?.
.IFE,FILE(USERCHG,.NOT.LO),STEP4A.
BEGIN,#BATCH,CMLINST,?. 
.ELSE,STEP4A. 
NOTE.' 'USING PREVIOUSLY ENTERED USER/CHARGE
.ENDIF,STEP4A.
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
IFE,FILE(R1GFILE,LO).COPYCR,R1GFILE,JOB.
COPYCR,LIMITS,JOB.
RETURN,LIMITS.
COPYCR,OPLDIR,JOB.
COPYCR,PART2,JOB. 
PACK,JOB. 
SKIPR,JOB.
COPYCR,UPIN,JOB.
ROUTE,JOB,DC=NO.
NOTE.' ' MALET ASSEMBLY ROUTED TO INPUT QUEUE 
REWIND,USERCHG,OPLDIR.
RETURN,R1GFILE,UPIN,PART2.
REVERT. - MALET ASSEMBLY ROUTED TO INPUT QUEUE -
.DATA,PART2.
.ENDIF,STEP4. 
IFE,OT.EQ.TXO.RETURN,JOB. 
.*
.* STEP 5 - PERFORM THE UPDATE. 
.*
.IFE,$BATCH$.NE.$#BATCH$.NOTE.' 'BEGINNING UPDATE OF MALET... 
BEGIN,UPDATEX,CMLINST,MALET.
.*
.* STEP 6 - ASSEMBLE MALET AND RUN IT THROUGH LOADER. 
.*
.IFE,$BATCH$.NE.$#BATCH$.NOTE.' 'UPDATE COMPLETE.. STARTING MALET ASSEMBLY..
REWIND,COMPILE,LGO. 
COMPASS,I,L=LISTING,X,S=NOSTEXT,S=CETEXT,S=CPUTEXT,S=PSSTEXT,A. 
RETURN,COMPILE. 
.IFE,$BATCH$.NE.$#BATCH$,STEP6A.
NOTE.' 'MALET ASSEMBLY COMPLETE... NO ERRORS. 
NOTE.' 'BEGINNING LOAD SEQUENCE...
.ENDIF,STEP6A.
.IFE,$LISTING$.NE.$0$,STEP6B. 
LDSET(MAP=SB/DIAGLST) 
.ELSE,STEP6B. 
MAP(OFF)
.ENDIF,STEP6B.
LOAD(LGO) 
NOGO(MALET) 
REWIND,MALET. 
.*
.* STEP 7 - INCORPORATE THE ABSOLUTE BINARY INTO FILE "CMLBIN". 
.*
BEGIN,CMLLIB,CMLINST,MALET. 
.*
.* STEP 8 - IF BATCH MODE, ROUTE LISTING IF ONE WAS REQUESTED.
.*
.IFE,$LISTING$.NE.$0$,STEP8.
IFE,OT.NE.TXO,STEP8A. 
IFE,PNL.GT.0,STEP8B.
BEGIN,DIAGOUT,CMLINST.
SKIP,STEP8A.
ENDIF,STEP8B. 
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ELSE,STEP8A.
NOTE.' 'MALET LISTING IS ON FILE "DIAGLST". 
NOTE.' 'ROUTE TO PRINT IF DESIRED.
ENDIF,STEP8A. 
.ENDIF,STEP8. 
RETURN,MALET,CMLBIN,LGO,R1GFILE,UPIN. 
IFE,PNL.GT.0.REVERT. - END ASSEMBLY OF MALET -
.*
.* STEP 9 - EXIT PROCESSING 
.*
EXIT. 
IFE,OT.EQ.TXO.REVERT,ABORT - ERRORS IN MALET ASSEMBLY - 
IFE,PNL.GT.0,STEP9A.
BEGIN,DIAGOUT,CMLINST.
ELSE,STEP9A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
ENDIF,STEP9A. 
IFE,PNL.GT.0.REVERT. - ERRORS IN MALET ASSEMBLY - 
.DATA,UPIN. 
*TEXT 
*READ,DIAGMOD 
*IDENT,ZZMALZZ
*DEFINE,NOS,SYSVER
.IFE,$8LPI$.EQ.$8$.*DEFINE,#8LPI
.IFE,$PAPER85$.EQ.$85$.*DEFINE,#PAPER85 
*COMPILE,MALET.MALET40
*ENDTEXT
.DATA,JOB.
MALASSY.   - MALET ASSEMBLY - 
.DATA,LIMITS. 
SETTL,*.
SETASL,*. 
SETJSL,*. 
*WEOR 
.PROC,MALDIAG,DIAG=,LISTOPT=,XMAP=. 
.*
.* PROCEDURE NAME - MALDIAG 
.*
.* PURPOSE - MALDIAG IS THE INTERFACE TO PROCEDURE "MALDIAX". 
.*           IT DETERMINES IF MALDIAX IS TO BE CALLED IN INTERACTIVE
.*           PROMPTING MODE OR IN BATCH MODE.  IF EXECUTION IS FROM 
.*           AN INTERACTIVE TERMINAL, IT CREATES LOCAL FILE "LOOP"
.*           TO USE AS A FLAG SO THAT THE PROCEDURE WILL CONTINUE TO BE 
.*           CALLED UNTIL "END" IS ENTERED IN RESPONSE TO A PROMPT FOR
.*           ANOTHER DIAGNOSTIC (PROMPT IS MADE BY PROCEDURE MALDIAI).
.*           IF RUNNING FROM INTERACTIVE ORIGIN, MALDIAX IS CALLED VIA
.*           PROCEDURE "MALDIAI" TO FORCE INTERACTIVE PROMPTING.  IF
.*           RUNNING FROM BATCH ORIGIN, MALDIAX IS CALLED DIRECTLY. 
.*
.IFE,OT.EQ.TXO,BAT1.
NOTE,LOOP./LOOP 
WHILE,FILE(LOOP,LO),BAT.
BEGIN,MALDIAI,CMLINST?. 
ENDW,BAT. 
REVERT. - END MALDIAG - 
.ENDIF,BAT1.
BEGIN,MALDIAX,CMLINST,DIAG,LISTOPT,XMAP,#BATCH. 
REVERT. 
*WEOR 
.PROC,MALDIAI*I,
DIAG[ENTER DESIRED MALET DIAGNOSTIC OR "END"] = 
*CALL,CDCMLI2 
    END )  ,
LISTOPT[]=(*N=).
.*
.* PROCEDURE NAME - MALDIAI 
.*
.* PURPOSE - MALDIAI IS CALLED BY MALDIAG ONLY WHEN RUNNING FROM
.*           TIMESHARING ORIGIN TO FORCE INTERACTIVE PROMPTING
.*           IN THAT MODE.  THIS PROCEDURE ALSO RETURNS FILE "LOOP" 
.*           WHEN "END" IS ENTERED IN RESPONSE TO A PROMPT FOR THE
.*           NEXT DIAGNOSTIC.  THIS TERMINATES THE LOOPING OF THE 
.*           PROCEDURE. 
.*
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "END" THEN "BEGIN,CMLUTIL,CMLINST,1?". 
  
ENTER "END" TO TERMINATE
  
.HELP,DIAG,NOLIST.
  
VALID DIAGNOSTICS INCLUDE-
  
*CALL,CDCMLI1 
  
        "END" TO TERMINATE
  
.ENDHELP. 
IFE,$DIAG$.EQ.$END$,AGAIN.
RETURN,LOOP.
REVERT. 
ENDIF,AGAIN.
BEGIN,MALDIAX,CMLINST,#DIAG=DIAG,?. 
REVERT. 
*WEOR 
.PROC,MALDIAX*I,
DIAG[]=(*A),
LISTOPT[ENTER DESIRED MALET LIST OPTIONS]=(*S2(SLI),*S4(SLIF)=F,*N=), 
XMAP[GLOBAL CROSS-REFERENCE MAP]=(Y=$,MAP$,YES=$,MAP$,N=,NO=,*N=),
BATCH[BATCH OR INTERACTIVE MODE]=(B=BATCH,BATCH,I=INTERACT,INTERACT,*N=BATCH).
.HELP,,NOLIST.
.HELP,DIAG,NOLIST.
  
VALID DIAGNOSTICS INCLUDE-
  
*CALL,CDCMLI1 
  
        "END" TO TERMINATE
  
.HELP,LISTOPT,NOLIST. 
  
THE FOLLOWING MALET LIST OPTIONS ARE AVAILABLE -
  
S - CAUSES SOURCE CODE TO BE CARRIED WITH THE MODULE BINARIES AND 
    SAVED ON THE RANDOM FILE.  THIS IS USEFUL WHEN DEBUGGING OR 
    MODIFYING A DIAGNOSTIC.  USE OF THIS OPTION SIGNIFICANTLY 
    INCREASES THE SIZE OF THE RANDOM FILE AND INCREASES MODULE LOAD 
    TIME SOMEWHAT.  USE OF THIS PARAMETER IS NOT RECOMMENDED FOR
    NORMAL MAINTENANCE ACTIVITIES.
  
L - CAUSES SOURCE AND BINARY LISTINGS OF THE COMPILED MODULES TO
    BE WRITTEN TO THE OUTPUT FILE.  THIS OPTION MUST BE SELECTED
    IF A GLOBAL CROSS-REFERENCE MAP IS DESIRED. 
  
I - CAUSES ALL INPUT SOURCE LINES TO BE LISTED.  IF THE "L" OPTION
    IS SPECIFIED, "I" IS USEFUL ONLY IF VISIBILITY OF IMBEDDED
    DOCUMENTATION AND/OR UPDATE SEQUENCE NUMBERS IS REQUIRED. 
  
F - TURNS ON ALL OPTIONS (S, L, AND I)
  
ENTER THE DESIRED OPTION(S) AS A CONTIGUOUS STRING (E.G., SL, SI, IL, ETC.) 
  
ENTERING (CR) ONLY SELECTS NONE OF THE OPTIONS. 
.HELP,XMAP,NOLIST.
  
ENABLING THE MAP PARAMETER CAUSES MALET TO PRODUCE A GLOBAL CROSS-
REFERENCE MAP OF ALL MODULES COMPILED AND INCLUDE IT IN THE LISTING.
IT CAN BE USEFUL WHEN DEBUGGING A DIAGNOSTIC. 
  
ENTER "Y" IF YOU WANT A MAP; "N" IF YOU DON'T.
  
  ** NOTE **
  
GLOBAL CROSS-REFERENCE MAPS CANNOT BE PRODUCED WHEN "INTERACTIVE" 
MODE IS SELECTED.  USE "BATCH" EXECUTION MODE IF A GLOBAL MAP 
IS DESIRED. 
  
LIST OPTION L MUST ALSO BE SELECTED IN ORDER FOR A GLOBAL CROSS-REFERENCE 
MAP TO BE GENEREATED. 
.HELP,BATCH,NOLIST. 
  
SPECIFIES WHETHER THE COMPILATION WILL BE DONE IN BATCH OR INTERACTIVE
MODE.  ENTER "B" OR (CR) FOR BATCH; "I" FOR INTERACTIVE.
(READ "GENERAL INFO" FOR MORE INFORMATION ON EXECUTION MODES. 
SEE BEGINNING OF PROCEDURE.)
.ENDHELP
.*
.* STEP 0 - CHECK FOR INVALID OPTION COMBINATIONS.
.*
IFE,$DIAG$.EQ.$$.REVERT,ABORT. - END MALDIAG -
.IFE,($BATCH$.NE.$#BATCH$).AND.($XMAP$.NE.$$),STEP0A. 
NOTE,OUTPUT,NR./ /********** "MAP" PARAMETER IGNORED ********** 
NOTE,OUTPUT,NR./GENERATION OF GLOBAL CROSS-REFERENCE MAP NOT POSSIBLE IN
NOTE,OUTPUT,NR./INTERACTIVE MODE.  SELECT "#BATCH" MODE IF YOU NEED A MAP.
.ENDIF,STEP0A.
.*
.* STEP 1 - CHECK TO SEE IF CMLPL IS AVAILABLE.  IF NOT, ISSUE AN 
.*          INFORMATIVE MESSAGE TO THE USER.
.*
BEGIN,CHKCML,CMLINST. 
.*
.* STEP 2 - CHECK FOR LOCAL MODIFICATIONS.  INFORM USER IF A MOD FILE 
.*          IS FOUND.  ALSO, IF BATCH MODE IS SELECTED, INFORM THE USER 
.*          WHAT VERSION OF MALET WILL BE USED TO COMPILE THE DIAGNOSTICS.
.*
ENDIF,STEP2.
.IFE,OT.EQ.TXO,STEP3. 
BEGIN,MOD,CMLINST,#DIAG=DIAG. 
IFE,FILE(DNOTE,LO),STEP2B.
IFE,OT.EQ.TXO,STEP2A. 
COPYCR,DNOTE,,1,2,80. 
ELSE,STEP2A.
COPYCR,DNOTE. 
ENDIF,STEP2A. 
RETURN,DIAGMOD,DNOTE. 
ENDIF,STEP2B. 
.IFE,($BATCH$.EQ.$#BATCH$).AND.(OT.EQ.TXO),STEP3. 
NOTE,OUTPUT,NR./ /THE FOLLOWING VERSION OF MALET WILL BE USED -/
NOTE,MALIN,NR./DROP/
PACK,MALIN. 
MALET,I=MALIN,L=TRASH.
RETURN,MALIN,TRASH,RFILE,BINARY,SCRATCH.
.*
.* STEP 3 - IF BATCH MODE IS SELECTED, ROUTE THE JOB TO INPUT;
.*          ELSE RUN THE JOB INTERACTIVELY. 
.*
ENDIF,STEP3.
.ENDIF,STEP3. 
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP4. 
BEGIN,LISTOUT,CMLINST,?.
IFE,FILE(USERCHG,.NOT.LO),STEP3A. 
BEGIN,#BATCH,CMLINST,?. - MALET DIAG COMPILE -
ELSE,STEP3A.
NOTE,OUTPUT,NR.' 'USING PREVIOUSLY ENTERED USER/CHARGE
ENDIF,STEP3A. 
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
COPYCR,R1GFILE,JOB. 
COPYCR,PART2,JOB. 
PACK,JOB. 
SKIPR,JOB.
COPYCR,UPIN,JOB.
ROUTE,JOB,DC=NO.
NOTE,OUTPUT,NR./ /DIAG_JOB ROUTED TO INPUT QUEUE
REWIND,USERCHG. 
RETURN,UPIN,PART2,R1GFILE.
REVERT.   - DIAG COMPILE ROUTED TO INPUT QUEUE -
.*
.* STEP 4 - PERFORM THE UPDATE, INCORPORATING MODS IF ANY.
.*
.DATA,PART2.
.ENDIF,STEP4. 
IFE,OT.EQ.TXO.RETURN,JOB. 
SETTL,*.
SETASL,*. 
SETJSL,*. 
IFE,OT.EQ.TXO.NOTE.'BEGINNING UPDATE OF DIAG... 
BEGIN,UPDATEX,CMLINST,#DIAG=DIAG. 
.*
.* STEP 5 - PERFORM THE MALET COMPILE.
.*
IFE,OT.EQ.TXO.NOTE.'UPDATE COMPLETE.. STARTING MALET COMPILE... 
RETURN,RFILE,BINARY,PUNCH,SCRATCH,DIAG,OLDPL,DNOTE,DIAGMOD. 
IFE,OT.EQ.TXO,STEP5.
NOTE,COMPILE,NR./DROP 
PACK,COMPILE. 
ELSE,STEP5. 
REWIND,COMPILE. 
ENDIF,STEP5.
.IFE,$LISTOPT$.EQ.$$,STEP5A.
MALET,I=COMPILE,L=DIAGLST,R=DIAG_XMAP.
.ELSE,STEP5A. 
MALET,I=COMPILE,L=DIAGLST,LO=LISTOPT,R=DIAG_XMAP. 
.ENDIF,STEP5A.
IFE,OT.EQ.TXO.NOTE.'MALET COMPILE COMPLETE... 
RETURN,COMPILE,UPIN,SCRATCH,BINARY. 
.*
.* STEP 6 - SAVE THE COMPILED DIAGNOSTIC ON A PERMANENT FILE OF THE 
.*          SAME NAME AS THE DIAGNOSTIC.
.*
BEGIN,SAVEIT,CMLINST,DIAG.
RETURN,DIAG.
ATTACH,DIAG/NA. 
IFE,FILE(DIAG,AS),STEP6A. 
NOTE,OUTPUT,NR./ DIAG RETAINED AS DIRECT ACCESS PERMANENT FILE. 
ELSE,STEP6A.
GET,DIAG/NA.
IFE,FILE(DIAG,LO),STEP6B. 
NOTE,OUTPUT,NR./ DIAG SAVED AS INDIRECT ACCESS PERMANENT FILE.
ELSE,STEP6B.
NOTE,OUTPUT,NR./ ** ERROR ** - DIAG NOT RETAINED AS A PERMANENT FILE. 
ENDIF,STEP6B. 
ENDIF,STEP6A. 
RETURN,DIAG.
.*
.* STEP 7 - IF BATCH MODE, ROUTE THE OUTPUT LISTING TO THE DESIGNATED 
.*          PRINTER; ELSE INDICATE THAT FILE DISPOSITION IS THE 
.*          USER'S RESPONSIBILITY.
.*
IFE,OT.NE.TXO,STEP7A. 
IFE,PNL.GT.0,STEP7B.
BEGIN,DIAGOUT,CMLINST.
SKIP,STEP7A.
ENDIF,STEP7B. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ELSE,STEP7A.
NOTE,OUTPUT,NR./ OUTPUT LISTING IS ON FILE "DIAGLST". 
NOTE,OUTPUT,NR./ ROUTE TO PRINTER IF DESIRED. 
ENDIF,STEP7A. 
IFE,PNL.GT.0.REVERT. - END COMPILE OF DIAG -
.*
.* STEP 8 - EXIT PROCESSING 
.*
EXIT. 
IFE,OT.EQ.TXO.REVERT,ABORT. - EXECUTION ERROR IN MALDIAG -
IFE,PNL.GT.0,STEP8A.
BEGIN,DIAGOUT,CMLINST.
SKIP,STEP8A.
ELSE,STEP8A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
ENDIF,STEP8A. 
IFE,PNL.GT.0.REVERT.  - ERRORS IN DIAG -
.DATA,UPIN. 
*TEXT 
*IDENT,ZZ_DIAG_ZZ 
.IFE,($DIAG$.NE.$DH8$).AND.($DIAG$.NE.$DL8$)
.AND.($DIAG$.NE.$FHD$).AND.($DIAG$.NE.$FLD$),OTHER. 
*COMPILE,DIAG 
.ENDIF,OTHER. 
.IFE,($DIAG$.EQ.$DH8$).OR.($DIAG$.EQ.$FHD$),PFMD. 
*DEFINE,PFMD
.ENDIF,PFMD 
.IFE,($DIAG$.EQ.$D88$).OR.($DIAG$.EQ.$FMD$),SFMD. 
*DEFINE,SFMD
.ENDIF,SFMD.
.IFE,($DIAG$.EQ.$DL8$).OR.($DIAG$.EQ.$FLD$),LSFMD.
*DEFINE,LSFMD 
.ENDIF,LSFMD. 
.IFE,($DIAG$.EQ.$DL8$).OR.($DIAG$.EQ.$DH8$),D88.
*COMPILE,D88
.ENDIF,D88. 
.IFE,($DIAG$.EQ.$FHD$).OR.($DIAG$.EQ.$FLD$),FMD.
*COMPILE,FMD
.ENDIF,FMD. 
*READ,DIAGMOD 
*ENDTEXT
.DATA,JOB.
DIAG_JOB. 
*WEOR 
.PROC,MALDOC,DIAG=,DOCTYPE=.
.IFE,OT.EQ.TXO,BAT1.
NOTE,LOOP./LOOP 
WHILE,FILE(LOOP,LO),BAT.
BEGIN,MALDOCI,CMLINST?. 
ENDW,BAT. 
REVERT.  - END MALDOC - 
.ENDIF,BAT1.
BEGIN,MALDOCX,CMLINST,DIAG,DOCTYPE,#BATCH.
REVERT. 
*WEOR 
.PROC,MALDOCI*I,
DIAG[ENTER DESIRED MALET DIAGNOSTIC OR "END"] = 
*CALL,CDCMLI2 
    END )  ,
DOCTYPE[]=(*N=).
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "END" THEN "BEGIN,CMLUTIL,CMLINST,2?". 
  
ENTER "END" TO TERMINATE. 
  
.HELP,DIAG,NOLIST.
  
VALID DIAGNOSTICS INCLUDE-
  
*CALL,CDCMLI1 
  
        "END" TO TERMINATE
  
.ENDHELP. 
IFE,$DIAG$.EQ.$END$,AGAIN.
RETURN,LOOP.
REVERT. 
ENDIF,AGAIN.
BEGIN,MALDOCX,CMLINST,#DIAG=DIAG,?. 
REVERT. 
*WEOR 
.PROC,MALDOCX*I,DIAG[]=(*A),
DOCTYPE[ENTER TYPE OF DOCUMENTATION DESIRED]=(INT,EXT,BOTH,I=INT,E=EXT,B=BOTH,
     *N=EXT), 
BATCH[BATCH OR INTERACTIVE MODE]=(B=BATCH,BATCH,I=INTERACT,INTERACT,*N=BATCH).
.HELP,,NOLIST.
.HELP,DOCTYPE,NOLIST. 
  
MALDOC WILL PRODUCE TWO TYPES OF DOCUMENTATION; EXTERNAL AND INTERNAL.
  
EXTERNAL DOCUMENTATION PROVIDES AN OVERVIEW OF THE DIAGNOSTIC, A BRIEF
DESCRIPTION OF EACH MODULE WITHIN THE DIAGNOSTIC, AND ANY OTHER 
INFORMATION REQUIRED TO USE THE DIAGNOSTIC. 
  
INTERNAL DOCUMENTATION PROVIDES THE USER WITH A COMPLETE LISTING OF ALL 
EXTERNAL AND INTERNAL DOCUMENTATION, INCLUDING THE SOURCE CODE.  INTERNAL 
DOCUMENTATION IS QUITE LENGTHY AND IS NOT GENERALLY REQUIRED FOR NORMAL 
MAINTENANCE ACTIVITIES.  INTERNAL DOCUMENTATION IS PROVIDED IN
MICROFICHE FORM IN THE CML KIT. 
  
  
VALID SELECTIONS INCLUDE- 
  
     E--> PRODUCES EXTERNAL DOCUMENTATION.
  
     I--> PRODUCES INTERMAL DOCUMENTATION.
  
     B--> PROCUCES BOTH EXTERNAL AND INTERNAL DOCUMENTATION.
.HELP,BATCH,NOLIST. 
  
SPECIFIES WHETHER THE COMPILATION WILL BE DONE IN BATCH OR INTERACTIVE
MODE.  ENTER "B" OR (CR) FOR BATCH; "I" FOR INTERACTIVE.
(READ "GENERAL INFO" FOR MORE INFORMATION ON EXECUTION MODES. 
SEE BEGINNING OF PROCEDURE.)
.ENDHELP
.*
.* STEP 1 - CHECK TO SEE IF MLTDOC IS AVAILABLE.  IF NOT, ISSUE 
.*          A MESSAGE TO THE USER AND ABORT; ELSE GO TO STEP 2. 
.*
GET,MLTDOC/NA.
IFE,FILE(MLTDOC,.NOT.LO),STEP1A.
ATTACH,MLTDOC/NA. 
IFE,FILE(MLTDOC,.NOT.AS),STEP1A.
.IFE,OT.EQ.TXO,STEP1B.
NOTE,OUTPUT,NR./ /CANNOT FIND MLTDOC - * RUN "UTLCOMP" * /
RETURN,LOOP.
REVERT,ABORT. - END MALDOC -
.ELSE,STEP1B. 
NOTE,DIAGLST,NR./1 CANNOT FIND MLTDOC. *** RUN PROCEDURE "UTLCOMP" ***
SKIP,STEP9. 
.ENDIF,STEP1B.
ENDIF,STEP1A. 
.IFE,$BATCH$,EQ.$#BATCH$.RETURN,MLTDOC. 
.*
.* STEP 2 - CHECK TO SEE IF CMLPL IS AVAILABLE.  IF NOT, ISSUE AN 
.*          INFORMATIVE MESSATE TO THE USER.
.*
BEGIN,CHKCML,CMLINST. 
.*
.* STEP 3 - CHECK FOR LOCAL MODIFICATIONS.  INFORM THE USER IF
.*          MODIFICATIONS ARE FOUND.
.*
BEGIN,MOD,CMLINST,#DIAG=DIAG. 
IFE,FILE(DNOTE,LO),STEP3A.
.IFE,OT.EQ.TXO.COPYCR,DNOTE,,1,2,80.
RETURN,DNOTE. 
.IFE,$BATCH$.EQ.$#BATCH$.RETURN,DIAGMOD.
ENDIF,STEP3A. 
.*
.* STEP 4 - IF BATCH MODE IS SELECTED, ROUTE THE JOB TO INPUT;
.*          ELSE RUN THE JOB INTERACTIVELY. 
.*
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP5. 
BEGIN,LISTOUT,CMLINST,?.
IFE,FILE(USERCHG,.NOT.LO),STEP4A. 
BEGIN,#BATCH,CMLINST,?. - MALET DIAG DOCUMENTATION -
ELSE,STEP4A.
NOTE,OUTPUT,NR." "USING PREVIOUSLY ENTERED USER/CHARGE
ENDIF,STEP4A. 
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
COPYCR,R1GFILE,JOB. 
COPYCR,PART2,JOB. 
PACK,JOB. 
SKIPR,JOB.
COPYCR,UPIN,JOB.
ROUTE,JOB,DC=NO.
NOTE,OUTPUT,NR./ /DIAG_DOC ROUTED TO INPUT QUEUE
REWIND,USERCHG. 
RETURN,MLTDOC,PART2,R1GFILE,UPIN. 
REVERT. - DIAG DOCUMENTATION JOB ROUTED TO INPUT QUEUE -
.DATA,PART2.
.*
.* STEP 5 - PERFORM THE UPDATE, INCORPORATING ANY MODS FOUND. 
.*
.ENDIF,STEP5. 
SETTL,*.
SETASL,*. 
SETJSL,*. 
BEGIN,UPDATEX,CMLINST,#DIAG=DIAG. 
.*
.* STEP 6 - EXECUTE MLTDOC. 
.*
IFE,OT.NE.TXO,STEP6A. 
GET,MLTDOC/NA.
IFE,FILE(MLTDOC,.NOT.LO),STEP6A.
ATTACH,MLTDOC/NA. 
IFE,FILE(MLTDOC,.NOT.AS),STEP6A.
SKIP,STEP9. 
ENDIF,STEP6A. 
MLTDOC,COMPILE,EXT,INT. 
RETURN,MLTDOC,COMPILE.
REWIND,EXT,INT. 
.*
.* STEP 7 - PACK THE REQUESTED LISTINGS ONTO DIAGLST. 
.*
IFE,$DOCTYPE$.NE.$BOTH$,STEP7A. 
IFE,$DOCTYPE$.EQ.$EXT$,STEP7B.
ENDIF,STEP7A. 
COPY,EXT,DIAGLST. 
ENDIF,STEP7B. 
IFE,$DOCTYPE$.NE.$EXT$,STEP7C.
COPY,INT,DIAGLST. 
ENDIF,STEP7C. 
RETURN,INT,EXT. 
.*
.* STEP 8 - ROUTE THE OTPUT TO THE DESIRED PRINTER. 
.*
IFE,OT.NE.TXO,STEP8A. 
IFE,PNL.GT.0,STEP8B.
BEGIN,DIAGOUT,CMLINST.
SKIP,STEP8A.
ENDIF,STEP8B. 
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ELSE,STEP8A.
NOTE,OUTPUT,NR./ OUTPUT LISTING IS ON FILE "DIAGLST"
NOTE,OUTPUT,NR./ ROUTE TO DESIRED PRINTER.
ENDIF,STEP8A. 
RETURN,PFILE,OFILE,DIAGMOD,JOB,UPIN.
IFE,PNL.GT.0.REVERT. - END DOCUMENTATION OF DIAG -
.*
.* STEP 9 - EXIT PROCESSING 
.*
EXIT. 
ENDIF,STEP9.
IFE,OT.EQ.TXO.REVERT,ABORT. - EXECUTION ERROR IN MALDOC - 
IFE,PNL.GT.0,STEP9A.
BEGIN,DIAGOUT,CMLINST.
ELSE,STEP9A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
ENDIF,STEP9A. 
IFE,PNL.GT.0.REVERT.  - ERRORS IN MLTDOC OF DIAG -
.DATA,UPIN. 
*TEXT 
*IDENT,ZZ_DIAG_ZZ 
.IFE,($DIAG$.NE.$DH8$).AND.($DIAG$.NE.$DL8$)
.AND.($DIAG$.NE.$FHD$).AND.($DIAG$.NE.$FLD$),OTHER. 
*COMPILE,DIAG 
.ENDIF,OTHER. 
.IFE,($DIAG$.EQ.$DH8$).OR.($DIAG$.EQ.$FHD$),PFMD. 
*DEFINE,PFMD
.ENDIF,PFMD 
.IFE,($DIAG$.EQ.$D88$).OR.($DIAG$.EQ.$FMD$),SFMD. 
*DEFINE,SFMD
.ENDIF,SFMD.
.IFE,($DIAG$.EQ.$DL8$).OR.($DIAG$.EQ.$FLD$),LSFMD.
*DEFINE,LSFMD 
.ENDIF,LSFMD. 
.IFE,($DIAG$.EQ.$DL8$).OR.($DIAG$.EQ.$DH8$),D88.
*COMPILE,D88
.ENDIF,D88. 
.IFE,($DIAG$.EQ.$FHD$).OR.($DIAG$.EQ.$FLD$),FMD.
*COMPILE,FMD
.ENDIF,FMD. 
*READ,DIAGMOD 
*ENDTEXT
.DATA,JOB.
DIAG_DOC. 
*WEOR 
.PROC,MLDSBP,LISTING=,SYSVER=,OPLPFN=,OPLUNID=,OPLPW=,OPLPAK=,OPLDTSET=,
OPLVSN=,OPLDEN=.
.IFE,OT.EQ.TXO,BAT. 
BEGIN,MLDSBPX,CMLINST,
#OPLPFN=OPLPFN,#OPLUNID=OPLUNID,#OPLPW=OPLPW,#OPLPAK=OPLPAK,
#OPLDTSET=OPLDTSET,#OPLVSN=OPLVSN,#OPLDEN=OPLDEN,?. 
.ELSE,BAT.
BEGIN,MLDSBPX,CMLINST,SYSVER,LISTING,BATCH, 
#OPLPFN=OPLPFN,#OPLUNID=OPLUNID,#OPLPW=OPLPW,#OPLPAK=OPLPAK,
#OPLDTSET=OPLDTSET,#OPLVSN=OPLVSN,#OPLDEN=OPLDEN. 
.ENDIF,BAT. 
IFE,PNL.GT.0.REVERT. - END MLD/WLD/SBP ASSEMBLY - 
*WEOR 
.PROC,MLDSBPX*I,
SYSVER[ENTER SYSTEM VERSION]=(NOS27,NOS26,NOS25,NOS24,NOS23,NOS6),
LISTING[DO YOU WANT A LISTING]= 
(Y=DIAGLST,YES=DIAGLST,LISTING=DIAGLST,N=0,NO=0,*N=0),
BATCH[BATCH OR INTERACTIVE MODE]=(B=BATCH,BATCH,I=INTERACT,INTERACT,*N=BATCH),
OPLPFN[]=(*A,*N=),OPLUNID[]=(*A,*N=),OPLPW[]=(*A,*N=),OPLPAK[]=(*A,*N=),
OPLDTSET[]=(*A,*N=),OPLVSN[]=(*A,*N=),OPLDEN[]=(*A,*N=).
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "CTRL/T(CR)" THEN "BEGIN,CMLUTIL,CMLINST,5?".
  
.HELP,SYSVER,NOLIST.
  
ENTER THE SYSTEM VERSION AS FOLLOWS-
  
    NOS27 ==> NOS 2.7 
    NOS26 ==> NOS 2.6 
    NOS25 ==> NOS 2.5 
    NOS24 ==> NOS 2.4 
    NOS23 ==> NOS 2.3 
    NOS6  ==> NOS 2.2 OR NOS 2.1
  
.HELP,LISTING,NOLIST. 
  
A LISTING OF MLD/WLD/SBP IS NOT GENERALLY NEEDED UNLESS ONE IS MAKING 
CHANGES TO THE ROUTINES.  THE LISTING IS ALSO QUITE LONG AND MAY TAKE 
SEVERAL HOURS TO PRINT ON A REMOTE BATCH PRINTER. 
  
ENTER "Y" IF YOU WANT A LISTING; "N" OR (CR) IF YOU DON'T.
  
.HELP,BATCH,NOLIST. 
  
SPECIFIES IF THE ASSEMBLY IS TO BE DONE IN BATCH OR INTERACTIVE MODE. 
  
ENTER "B" OR (CR) FOR BATCH; "I" FOR INTERACTIVE MODE.
  
.ENDHELP. 
.*
.* STEP 1 - CHECK TO SEE IF CMLPL IS AVAILABLE AND FOR LOCAL MODS.
.*
SETTL,*.
SETASL,*. 
SETJSL,*. 
BEGIN,CHKCML,CMLINST. 
BEGIN,MOD,CMLINST,MLD.
IFE,FILE(DNOTE,LO),STEP1A.
.IFE,OT.EQ.TXO,STEP1B.
COPYCR,DNOTE,,1,2,80. 
.ELSE,STEP1B. 
COPYCR,DNOTE,DIAGLST. 
.ENDIF,STEP1B.
.IFE,$BATCH$.EQ.$#BATCH$.RETURN,DIAGMOD.
ENDIF,STEP1A. 
RETURN,DNOTE. 
.*
.* STEP 2 - FIND SYSOPL 
.*
BEGIN,FINDOPL,CMLINST,BATCH,OPLPFN,OPLUNID,OPLPW,OPLPAK,OPLVSN,OPLDEN,OPLDTSET. 
.*
.* STEP 3 - IF BATCH MODE, GET THE USER/CHARGE AND LISTING DISPOSITION, 
.*          THEN ROUTE THE JOB TO INPUT; ELSE RUN IT INTERACTIVELY. 
.*
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP3. 
.IFE,$LISTING$.NE.$0$.BEGIN,LISTOUT,CMLINST,?.
.IFE,FILE(USERCHG,.NOT.LO),STEP3A.
BEGIN,#BATCH,CMLINST,?. 
.ELSE,STEP3A. 
NOTE.' 'USING PREVIOUSLY ENTERED USER/CHARGE
.ENDIF,STEP3A.
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
IFE,FILE(R1GFILE,LO).COPYCR,R1GFILE,JOB.
COPYCR,LIMITS,JOB.
RETURN,LIMITS.
COPYCR,OPLDIR,JOB.
COPYCR,PART2,JOB. 
PACK,JOB. 
SKIPR,JOB.
COPYCR,UPIN,JOB.
ROUTE,JOB,DC=NO.
NOTE.' 'MLD/WLD/SBP ASSEMBLY ROUTED TO INPUT QUEUE
REWIND,USERCHG,OPLDIR.
RETURN,R1GFILE,UPIN.
REVERT. - MLD/WLD/SBP ASSEMBLY ROUTED TO INPUT QUEUE
.DATA,PART2.
.ENDIF,STEP3. 
.*
.* STEP 4 - PERFORM THE UPDATE. 
.*
.IFE,$BATCH$.NE.$#BATCH$.NOTE.' 'BEGINNING UPDATE OF MLD/WLD/SBP... 
BEGIN,UPDATEX,CMLINST,MLD.
.*
.* STEP 5 - ASSEMBLE MLD/WLD/SBP AND RETAIN IT ON PERMANENT 
.*          FILE "MLDBIN".
.*
.IFE,$BATCH$.NE.$#BATCH$.NOTE.' 'UPDATE COMPLETE...  STARTING MLD/SBP ASSEMBLY..
REWIND,COMPILE,LGO. 
PURGE,MLDBIN/NA.
DEFINE,MLDBIN.
RFL,120000. 
COMPASS,A,I,L=LISTING,S=NOSTEXT,S=CETEXT,X,B=MLDBIN.
REDUCE. 
RETURN,COMPILE. 
REWIND,MLDBIN.
.IFE,$BATCH$.NE.$#BATCH$.NOTE.' 'MLD/SBP ASSEMBLY COMPLETE... NO ERRORS.
.*
.* STEP 6 - IF BATCH MODE, ROUTE LISTING IF ONE WAS REQUESTED.
.*
.IFE,$LISTING$.NE.$0$,STEP6.
IFE,OT.NE.TXO,STEP6A. 
IFE,PNL.GT.0,STEP6B.
BEGIN,DIAGOUT,CMLINST.
SKIP,STEP6C.
ENDIF,STEP6B. 
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ELSE,STEP6A.
NOTE.' 'MLD/WLD/SBP LISTING IS ON FILE "DIAGLST". 
NOTE.' 'ROUTE TO PRINT IF DESIRED.
ENDIF,STEP6A. 
ENDIF,STEP6C. 
.ENDIF,STEP6. 
RETURN,MLDBIN,R1GFILE,UPIN,LIMITS,JOB.
IFE,PNL.GT.0.REVERT. - END ASSEMBLY OF MLD/WLD/SBP -
.*
.* STEP 7 - EXIT PROCESSING 
.*
EXIT. 
IFE,OT.EQ.TXO.REVERT,ABORT. - ERRORS IN MALET ASSEMBLY -
IFE,PNL.GT.0,STEP7A.
BEGIN,DIAGOUT,CMLINST.
ELSE,STEP7A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
ENDIF,STEP7A. 
IFE,PNL.GT.0.REVERT. - ERRORS IN MLD/WLD/SBP ASSEMBLY - 
.DATA,UPIN. 
*TEXT 
*READ,DIAGMOD 
*IDENT,ZZMLDZZ
*DEFINE,NOS,SYSVER
*COMPILE,MLD,WLD,SBP
*ENDTEXT
.DATA,JOB.
MLDASSY.   - MLD/WLD/SBP ASSEMBLY - 
.DATA,LIMITS. 
SETTL,*.
SETASL,*. 
SETJSL,*. 
*WEOR 
.PROC,UTLCOMP,LISTING=,UTILITY=.
.IFE,OT.EQ.TXO,BAT. 
BEGIN,UTLCOMX,CMLINST,?.
.ELSE,BAT.
BEGIN,UTLCOMX,CMLINST,UTILITY,LISTING,BATCH.
.ENDIF,BAT. 
IFE,PNL.GT.0.REVERT. - END UTLCOMP -
*WEOR 
.PROC,UTLCOMX*I,
UTILITY[MCCOMP, MCDUMP, MLTDOC, MTPLOT, HPTEXT, DSPLOT, OR DKDATA]= 
(MCCOMP,MCDUMP,MLTDOC,MTPLOT,HPTEXT,DSPLOT,DKDATA), 
LISTING[DO YOU WANT A LISTING]= 
(Y=,YES=,N=$=0$,NO=$=0$,LISTING=$$,*N=$=0$),
BATCH[BATCH OR INTERACTIVE MODE]= 
(B=BATCH,BATCH,I=INTERACT,INTERACT,*N=BATCH). 
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "CTRL/T(CR)" THEN "BEGIN,CMLUTIL,CMLINST,8?".
  
.HELP,LISTING,NOLIST. 
  
LISTINGS ARE NOT GENERALLY NEEDED UNLESS ONE IS MAKING MODIFICATIONS
TO THE PROGRAM.  IF YOU WANT A LISTING, ENTER "Y".  THE OPTIONS SELECTED
ARE S, A, AND R.  (SEE FORTRAN VERSION 5 REFERENCE MANUAL, PUBLICATION NUMBER 
60481300 FOR A DESCRIPTION OF THESE OPTIONS.) 
  
IF YOU DO NOT WANT A LISTING ENTER "N" OR (CR). 
  
.HELP,BATCH,NOLIST. 
  
SPECIFIES WHETHER THE COMPILATION WILL BE DONE IN BATCH OR INTERACTIVE
MODE.  ENTER "B" OR (CR) FOR BATCH; "I" FOR INTERACTIVE.
(READ "GENERAL INFO" FOR MORE INFORMATION ON EXECUTION MODES. 
SEE BEGINNING OF PROCEDURE.)
  
.ENDHELP. 
.*
.* STEP 1 - CHECK TO SEE IF CMLPL IS AVAILABLE. 
.*
BEGIN,CHKCML,CMLINST. 
.*
.* STEP 2 - CHECK FOR LOCAL MODIFICATIONS.  INFORM THE USER IF MODS ARE 
.*          FOUND.
.*
BEGIN,MOD,CMLINST,UTILITY.
IFE,FILE(DNOTE,LO),STEP2A.
.IFE,OT.EQ.TXO,STEP2B.
COPYCR,DNOTE,,1,2,80. 
.ELSE,STEP2B. 
COPYCR,DNOTE,DIAGLST. 
.ENDIF,STEP2B.
.IFE,$BATCH$.EQ.$#BATCH$.RETURN,DIAGMOD.
ENDIF,STEP2A. 
RETURN,DNOTE. 
.*
.* STEP 3 - IF BATCH MODE IS SELECTED, GET THE USER/CHARGE AND LISTING
.*          DISPOSITION, THEN ROUTE THE JOB TO INPUT; ELSE RUN IT 
.*          INTERACTIVELY.
.*
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP3. 
.IFE,$LISTING$.EQ.$$.BEGIN,LISTOUT,CMLINST,?. 
IFE,FILE(USERCHG,.NOT.LO),STEP3A. 
BEGIN,#BATCH,CMLINST,?. 
ELSE,STEP3A.
NOTE,OUTPUT,NR.' ' USING PREVIOUSLY ENTERED USER/CHARGE 
ENDIF,STEP3A. 
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
IFE,FILE(R1GFILE,LO).COPYCR,R1GFILE,JOB.
COPYCR,PART2,JOB. 
PACK,JOB. 
SKIPR,JOB.
COPYCR,UPIN,JOB.
ROUTE,JOB,DC=NO.
NOTE,OUTPUT,NR./ /UTILITY COMPILE ROUTED TO INPUT QUEUE 
REWIND,USERCHG. 
REVERT. - UTILITY COMPILATION ROUTED TO INPUT QUEUE - 
.DATA,PART2.
.ENDIF,STEP3. 
.*
.* STEP 4 - PERFORM THE UPDATE, INCORPORATING ANY MODS IF FOUND.
.*
SETTL,*.
SETASL,*. 
SETJSL,*. 
IFE,OT.EQ.TXO.NOTE.'STARTING UPDATE OF UTILITY... 
BEGIN,UPDATEX,CMLINST,UTILITY.
.*
.* STEP 5 - COMPILE THE UTILITY, RUN THE BINARY THROUGH LOADER, AND RETAIN
.*          IT AS A PERMANENT FILE. 
.*
REWIND,COMPILE,LGO. 
IFE,OT.EQ.TXO.NOTE.'UPDATE COMPLETE... STARTING COMPILE...
IFE,$UTILITY$.EQ.$HPTEXT$,STEP5A1.
COMPASS,A,I,B=TXT,L=DIAGLST.
LIBGEN,F=TXT,P=HPTEXT,N=HPTEXT. 
SKIP,STEP5C.
ENDIF,STEP5A1.
IFE,$UTILITY$.NE.$DKDATA$,STEP5B. 
IFE,$UTILITY$.EQ.$DSPLOT$,NTEXT.
GET,HPTEXT/NA.
IFE,FILE(HPTEXT,LO),NONOTE. 
NOTE,OUTPUT,NR./ INDIRECT ACCESS FILE HPTEXT FOUND./
SKIP,NONOTE.
ELSE,NONOTE.
NOTE,OUTPUT,NR./HPTEXT REQUIRED TO COMPILE DSPLOT./ 
ATTACH,HPTEXT.
NOTE,OUTPUT,NR./ DIRECT ACCESS FILE HPTEXT FOUND. / 
ENDIF,NONOTE. 
FTN5,I,LO_LISTING,PL=999999,OPT=2,L=DIAGLST,EL,ANSI=0,ET,G=HPTEXT.
ELSE,NTEXT. 
FTN5,I,LO_LISTING,PL=999999,OPT=2,L=DIAGLST,EL,ANSI=0,ET. 
ENDIF,NTEXT.
.IFE,$LISTING$.EQ.$$,STEP5A.
LDSET(MAP=SB/DIAGLST) 
.ELSE,STEP5A. 
MAP(OFF)
.ENDIF,STEP5A.
LOAD(LGO) 
NOGO(UTILITY) 
ENDIF,STEP5B. 
IFE,$UTILITY$.EQ.$DKDATA$,STEP5C. 
COPY,COMPILE,UTILITY. 
REWIND,COMPILE. 
COPYSBF,COMPILE,DIAGLST.
ENDIF,STEP5C. 
BEGIN,SAVEIT,CMLINST,UTILITY. 
IFE,OT.EQ.TXO.NOTE.'UTILITY COMPILE COMPLETE... NO ERRORS.
.*
.* STEP 6 - IF BATCH MODE, ROUTE THE LISTING, IF ONE WAS REQUESTED, 
.*          TO THE DESIRED QUEUE; ELSE INDICATE THAT LIST FILE DISPOSITION
.*          IS THE USER'S RESPONSIBILITY. 
.*
.IFE,$LISTING$.EQ.$$,STEP6. 
IFE,OT.NE.TXO,STEP6A. 
IFE,PNL.GT.0,STEP6B.
BEGIN,DIAGOUT,CMLINST.
SKIP,STEP6A.
ENDIF,STEP6B. 
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ELSE,STEP6A.
NOTE,OUTPUT,NR./ OUTPUT LISTING IS ON FILE "DIAGLST". 
NOTE,OUTPUT,NR./ ROUTE TO PRINTER IF DESIRED. 
ENDIF,STEP6A. 
.ENDIF,STEP6. 
.IF,$LISTING$.EQ.$=0$.$RETURN,DIAGLST.
RETURN,COMPILE,LGO,UTILITY,JOB,UPIN.
IFE,PNL.GT.0.REVERT. - END COMPILE OF UTILITY - 
.*
.* STEP 7 - EXIT PROCESSING 
.*
EXIT. 
IFE,OT.EQ.TXO.REVERT,ABORT. - ERRORS IN UTILITY - 
IFE,PNL.GT.0,STEP7A.
BEGIN,DIAGOUT,CMLINST.
ELSE,STEP7A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
ENDIF,STEP7A. 
IFE,PNL.GT.0.REVERT. - ERRORS IN UTILITY -
.DATA,UPIN. 
*TEXT 
*IDENT,ZZUTLZZ
*READ,DIAGMOD 
*COMPILE,UTILITY
*ENDTEXT
.DATA,JOB.
UTLCOMP.      - COMPILE UTILITY - 
*WEOR 
.PROC,MOD,DIAG=.
.IFE,($DIAG$.NE.$DH8$).AND.($DIAG$.NE.$DL8$)
.AND.($DIAG$.NE.$FHD$).AND.($DIAG$.NE.$FLD$).AND.($DIAG$.NE.$MLTDOC$) 
.AND.($DIAG$.NE.$SKEDULR$).AND.($DIAG$.NE.$MCCOMP$).AND.($DIAG$.NE.$MCDUMP$)
.AND.($DIAG$.NE.$MTPLOT$).AND.($DIAG$.NE.$REGEN$).AND.($DIAG$.NE.$MALET$) 
.AND.($DIAG$.NE.$DSPLOT$).AND.($DIAG$.NE.$DKDATA$)
.AND.($DIAG$.NE.$HPTEXT$) 
,OTHER. 
GET,DIAGMOD=DIAG_MODS/NA. 
.ENDIF,OTHER. 
.IFE,($DIAG$.EQ.$DH8$).OR.($DIAG$.EQ.$DL8$),D88.
GET,DIAGMOD=D88MODS/NA. 
.ENDIF,D88. 
.IFE,($DIAG$.EQ.$FHD$).OR.($DIAG$.EQ.$FLD$),FMD.
GET,DIAGMOD=FMDMODS/NA. 
.ENDIF,FMD. 
.IFE,$DIAG$.EQ.$HPTEXT$.GET,DIAGMOD=HPTMODS/NA. 
.IFE,$DIAG$.EQ.$MCCOMP$.GET,DIAGMOD=MCCMODS/NA. 
.IFE,$DIAG$.EQ.$MCDUMP$.GET,DIAGMOD=MCDMODS/NA. 
.IFE,$DIAG$.EQ.$MTPLOT$.GET,DIAGMOD=MTPMODS/NA. 
.IFE,$DIAG$.EQ.$DSPLOT$.GET,DIAGMOD=DSPMODS/NA. 
.IFE,$DIAG$.EQ.$DKDATA$.GET,DIAGMOD=DKDMODS/NA. 
.IFE,$DIAG$.EQ.$MLTDOC$.GET,DIAGMOD=MLTMODS/NA. 
.IFE,$DIAG$.EQ.$SKEDULR$.GET,DIAGMOD=SKEDMDS/NA.
.IFE,$DIAG$.EQ.$REGEN$.GET,DIAGMOD=REGMODS/NA.
.IFE,$DIAG$.EQ.$MALET$.GET,DIAGMOD=MALMODS/NA.
IFE,FILE(DIAGMOD,LO),NONOTE.
NOTE,DNOTE,NR./1/ MODIFICATIONS FOR THE DECK WHICH CONTAINS 
NOTE,DNOTE,NR./ DIAG HAVE BEEN FOUND AND WILL BE INCLUDED.
PACK,DNOTE. 
ENDIF,NONOTE. 
REVERT,NOLIST.  - END MOD - 
*WEOR 
.PROC,OPLDIRI*I,BATCH[]=(*A), 
DISK[IS OPL AVAILABLE ON DISK]=(Y=DISK,YES=DISK,N=NO,NO). 
.HELP,,NOLIST.
.HELP,DISK,NOLIST.
  
MOST INSTALLATIONS MAINTAIN A COPY OF THE SYSTEM OPL (FREQUENTLY CALLED "OPL" 
OR "SYSOPL") ON MASS STORAGE.  THIS LIBRARY CONTAINS VARIOUS SYSTEM MACROS AND
COMMON DECKS WHICH ARE FREQUENTLY USED BY APPLICATION AND SYSTEM PROGRAMMERS. 
  
IN ORDER TO ASSEMBLE SKEDULR, ACCESS TO THIS FILE IS REQUIRED.  MOST FREQUENTLY,
IT IS AVAILABLE UNDER PERMANENT FILE NAME "OPL", UNDER THE USER NAME "LIBRARY". 
CHECK WITH YOUR SYSTEM ANALYST IF YOU DO NOT KNOW HOW TO ACCESS OPL.
  
IF IT IS NOT AVAILABLE ON MASS STORAGE, THIS PROCEDURE WILL LOAD IT FROM THE
RELEASE TAPE (REL1A) TO DISK AND RETAIN IT UNDER YOUR USERNAME AS PERMANENT 
FILE "SYSOPL" FOR SUBSEQUENT USE BY THESE INSTALLATION PROCEDURES.
  
IF OPL IS ON DISK, ANSWER YES OR "Y".  IF YOU ANSWER NO OR "N", SYSOPL WILL 
BE CREATED UNDER YOUR USERNAME IF IT IS NOT ALREADY THERE.
  
.ENDHELP. 
.IFE,$DISK$.EQ.$#DISK$,TAPE.
BEGIN,OPLDIRD,CMLINST,?.
.ELSE,TAPE. 
BEGIN,OPLDIRT,CMLINST,BATCH,?.
.ENDIF,TAPE.
REVERT. - END OPLDIRI - 
*WEOR 
.PROC,OPLDIRD*I,
PFN[ENTER PFN (DEFAULT = OPL)]=(*F,*N=OPL), 
UN[USERNAME OF FILE (DEFAULT = LIBRARY)]= 
(*S7(1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ$*$),*N=LIBRARY),
PW[ENTER FILE PASSWORD, (CR) IF NONE]=
(*S7(1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ$*$),*N=), 
PN[ENTER PAKNAME, (CR) IF NONE] = 
(*S7(1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ$*$),*N=), 
DT[ENTER DEVICE TYPE, (CR) IF NONE]=(DB,DC,DD,DG,DI,DJ,DK,DL,DM,DQ,DV,DW,*N=).
.HELP,,NOLIST.
.HELP,PFN,NOLIST. 
  
ENTER THE PERMANENT FILE NAME OF THE SYSTEM OPL.
  
(CR) ENTERS "OPL".
  
.HELP,UN,NOLIST.
  
ENTER THE USERNAME OF THE SYSTEM OPL. 
  
(CR) ENTERS "LIBRARY".
  
.HELP,PW,NOLIST.
  
ENTER THE PASSWORD OF THE SYSTEM OPL IF ONE IS REQUIRED.
  
(CR) IF NONE IS REQUIRED. 
  
.HELP,PN,NOLIST.
  
IF THE FILE RESIDES ON A REMOVABLE DEVICE, ENTER THE PACKNAME OF THE DEVICE.
  
(CR) IF NONE IS REQUIRED. 
  
.HELP,DT,NOLIST.
  
IF THE FILE RESIDES ON A REMOVABLE DEVICE OF A TYPE DIFFERENT THAN THE
INSTALLATION DEFINED DEFAULT, ENTER THE APPROPRIATE DEVICE TYPE.
  
LEGAL VALUES INCLUDE- 
  
DB - 885-42 DISKS                 DK - 844-21 DISKS (HALF TRACK)
DC - 895 DISKS                    DL - 844-4X DISKS (FULL TRACK)
DD - 834 DISKS                    DM - 885-11/12 DISKS (HALF TRACK) 
DG - 836 DISKS                    DQ - 885-11/12 DISKS (FULL TRACK) 
DI - 844-21 DISKS (HALF TRACK)    DV - 819-DISKS (SINGLE DENSITY) 
DJ - 844-4X DISKS (FULL TRACK)    DW - 819 DISKS (DOUBLE DENSITY) 
  
(CR) IF NONE IS REQUIRED OR IF THE INSTALLATION DEFINED DEFAULT IS TO BE USED.
  
.ENDHELP
.*
.* STEP 1 - SEE IF THE FILE IS WHERE THE USER SAID IT IS.  IF IT CAN'T
.*          BE FOUND, INFORM THE USER, THEN ABORT.
.*
.IFE,($PN$.NE.$$).AND.($DT$.NE.$$).PACKNAM,#PN=PN,R=DT. 
.IFE,($PN$.NE.$$).AND.($DT$.EQ.$$).PACKNAM,#PN=PN.
.IFE,$PW$.EQ.$$.ATTACH,OPL=PFN/#UN=UN,NA. 
.IFE,$PW$.NE.$$.ATTACH,OPL=PFN/#UN=UN,#PW=PW,NA.
IFE,FILE(OPL,.NOT.AS),STEP1.
REWIND,OPLDIR.
NOTE,OUTPUT,NR./ CANNOT FIND PFN WHERE YOU HAVE SPECIFIED.
NOTE,OUTPUT,NR./ FOLLOWING IS A CATLIST OF #UN=UN, #PN=PN -/
CATLIST,#UN=UN,NA.
.IFE,$PN$.NE.$$.PACKNAM.
REVERT,ABORT. - CANNOT FIND PFN/#UN=UN /#PN=PN -
ELSE,STEP1. 
NOTE,OUTPUT,NR./ PFN FOUND
ENDIF,STEP1.
.IFE,$PN$.NE.$$.PACKNAM.
REVERT. - END OPLDIRD - 
.DATA,OPLDIR. 
BEGIN,GETOPL,CMLINST,PFN,UN,PW,PN,,,DT. 
*WEOR 
.PROC,OPLDIRT*I,BATCH[]=(*A), 
OPLVSN[ENTER VSN OF REL1A (DEFAULT = REL1A)]= 
(*S6(1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ$*$),*N=REL1A),
OPLDEN[ENTER DENSITY OF TAPE (DEFAULT = 1600)]= 
(6250,GE,1600,PE,800,HD,HY,*N=1600).
.HELP,,NOLIST 
.HELP,OPLVSN,NOLIST.
  
ENTER THE VOLUME SERIAL NUMBER OF THE REL1A TAPE.  IT MUST BE 1-6 ALPHANUMERIC
CHARACTERS. 
  
(CR) IMPLIES A VSN OF "REL1A".
  
.HELP,OPLDEN,NOLIST.
  
ENTER THE DENSITY OF THE TAPE.  LEGAL VALUES INCLUDE- 
  
   6250 OR GE - 9-TRACK, GROUP ENCODED
   1600 OR PE - 9-TRACK, PHASE
    800 OR HD - 9-TRACK, NRZI 
           HY - 7-TRACK, 800 BPI
  
  (CR) IMPLIES "1600".
  
.ENDHELP
.IFE,$BATCH$.NE.$#BATCH$,STEP1. 
NOTE,OUTPUT,NR./ LOADING REL1A FROM TAPE TO DISK (PFN = SYSOPL).
BEGIN,GETOPL,CMLINST,,,,,OPLVSN,OPLDEN. 
.ENDIF,STEP1. 
REWIND,OPLDIR.
REVERT. - END OPLDIRT - 
.DATA,OPLDIR. 
BEGIN,GETOPL,CMLINST,REL1AVSN=OPLVSN,REL1ADEN=OPLDEN. 
*WEOR 
.PROC,REGTIO,DIAG=,LISTING=.
.IFE,OT.EQ.TXO,BAT. 
BEGIN,REGTIOX,CMLINST,?.
.ELSE,BAT.
BEGIN,REGTIOX,CMLINST,DIAG,LISTING,BATCH. 
.ENDIF,BAT. 
IFE,PNL.GT.0.REVERT. - END REGTIO - 
*WEOR 
.PROC,REGTIOX*I,
DIAG[COMPILE REGEN OR TIO]=(REGEN,TIO), 
LISTING[DO YOU WANT A LISTING]= 
(Y=,YES=,N=$=0$,NO=$=0$,LISTING=$$,*N=$=0$),
BATCH[BATCH OR INTERACTIVE MODE]=(B=BATCH,BATCH,I=INTERACT,INTERACT,*N=BATCH).
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "CTRL/T(CR)" THEN "BEGIN,CMLUTIL,CMLINST,6?".
  
.HELP,DIAG. 
  
SELECT WHICH DIAGNOSTIC TO COMPILE. 
  
.HELP,LISTING,NOLIST. 
  
LISTINGS ARE NOT GENERALLY REQUIRED UNLESS ONE IS MAKING MODIFICATIONS TO THE 
PROGRAM.
  
IF YOU WANT A LISTING, ENTER "Y"; ENTER "N" OR (CR) IF YOU DON'T. 
  
.HELP,BATCH,NOLIST. 
  
SPECIFIES WHETHER THE COMPILATION WILL BE DONE IN BATCH OR INTERACTIVE MODE.
ENTER "B" OR (CR) FOR BATCH; "I" FOR INTERACTIVE MODE.
  
.ENDHELP. 
.*
.* STEP 1 - CHECK TO SEE IF CMLPL IS AVAILABLE AND FOR ANY LOCAL MODS.
.*
BEGIN,CHKCML,CMLINST. 
BEGIN,MOD,CMLINST,DIAG. 
IFE,FILE(DNOTE,LO),STEP1A.
.IFE,OT.EQ.TXO,STEP1B.
COPYCR,DNOTE,,1,2,80. 
.ELSE,STEP1B. 
COPYCR,DNOTE,DIAGLST. 
.ENDIF,STEP1B.
.IFE,$BATCH$.EQ.$#BATCH$.RETURN,DIAGMOD.
ENDIF,STEP1A. 
RETURN,DNOTE. 
.*
.* STEP 2 - IF BATCH MODE, GET THE USER/CHARGE AND LISTING DISPOSITION, THEN
.*          ROUTE THE JOB TO INPUT; ELSE RUN IT INTERACTIVELY.
.*
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP2. 
.IFE,$LISTING$.EQ.$$.BEGIN,LISTOUT,CMLINST,?. 
IFE,FILE(USERCHG,.NOT.LO),STEP2A. 
BEGIN,#BATCH,CMLINST,?. 
ELSE,STEP2A.
NOTE.' 'USING PREVIOUSLY ENTERED USER/CHARGE
ENDIF,STEP2A. 
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
IFE,FILE(R1GFILE,LO).COPYCR,R1GFILE,JOB.
COPYCR,PART2,JOB. 
PACK,JOB. 
SKIPR,JOB.
COPYCR,UPIN,JOB.
ROUTE,JOB,DC=NO.
NOTE.' 'DIAG COMPILE ROUTED TO INPUT QUEUE
REWIND,USERCHG. 
RETURN,PART2,R1GFILE,UPIN.
REVERT. - DIAG COMPILE ROUTED TO INPUT QUEUE -
.DATA,PART2.
.ENDIF,STEP2. 
.*
.* STEP 3 - PERFORM THE UPDATE. 
.*
IFE,OT.EQ.TXO.RETURN,JOB. 
SETTL,*.
SETASL,*. 
SETJSL,*. 
IFE,OT.EQ.TXO.NOTE.'BEGINNING UPDATE OF DIAG... 
BEGIN,UPDATEX,CMLINST,DIAG. 
RETURN,UPIN.
.*
.* STEP 4 - COMPILE THE DIAGNOSTIC. 
.*
REWIND,COMPILE,LGO. 
IFE,OT.EQ.TXO.NOTE.'UPDATE COMPLETE.. STARTING COMPILE OF DIAG
FTN5,I,LO_LISTING,PL=999999,L=DIAGLST,EL,ANSI=0,ET,S=CPCTEXT,S=IOTEXT,STATIC. 
RETURN,COMPILE. 
IFE,OT.EQ.TXO.NOTE.'COMPILE OF DIAG COMPLETE.. NO ERRORS..
PURGE,DIAG/NA.
DEFINE,DIAG.
.IFE,$LISTING$.EQ.$$,STEP4A.
LDSET(MAP=SB/DIAGLST) 
.ELSE,STEP4A. 
MAP(OFF)
.ENDIF,STEP4A.
LOAD(LGO) 
NOGO(DIAG)
REWIND,DIAG.
RETURN,LGO. 
.*
.* STEP 5 - INCORPORATE THE BINARY INTO CMLBIN. 
.*
BEGIN,CMLLIB,CMLINST,DIAG.
.*
.* STEP 6 - IF BATCH MODE, ROUTE THE LISTING IF ONE WAS REQUESTED; IF 
.*          INTERACTIVE MODE, INFORM THE USER THAT LISTING DISPOSITION
.*          IS THE USER'S RESPONSIBILITY. 
.*
.IFE,$LISTING$.EQ.$$,STEP6. 
IFE,OT.NE.TXO,STEP6A. 
IFE,PNL.GT.0,STEP6B.
BEGIN,DIAGOUT,CMLINST.
SKIP,STEP6A.
ENDIF,STEP6B. 
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ELSE,STEP6A.
NOTE.' 'OUTPUT LISTING IS ON FILE "DIAGLST".
NOTE.' 'ROUTE TO PRINTER IF DESIRED.
ENDIF,STEP6A. 
.ELSE,STEP6.
RETURN,DIAGLST. 
.ENDIF,STEP6. 
IFE,PNL.GT.0.REVERT. - END DIAG COMPILE - 
.*
.* STEP 7 - EXIT PROCESSING.
.*
EXIT. 
IFE,OT.EQ.TXO.REVERT,ABORT. - ERROR IN DIAG - 
IFE,PNL.GT.0,STEP7A.
BEGIN,DIAGOUT,CMLINST.
ELSE,STEP7A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
ENDIF,STEP7A. 
IFE,PNL.GT.0.REVERT. - ERRORS IN DIAG - 
.DATA,UPIN. 
*TEXT 
.IFE,$DIAG$.EQ.$REGEN$,TIO. 
*IDENT,ZZREGZZ
.ELSE,TIO.
*IDENT,ZZTIOZZ
.ENDIF,TIO. 
*READ,DIAGMOD 
*COMPILE,DIAG 
*ENDTEXT
.DATA,JOB.
.IFE,$DIAG$.EQ.$REGEN$.REGCOMP.   - REGEN COMPILE - 
.IFE,$DIAG$.EQ.$TIO$.TIOCOMP.  - TIO COMPILE -
*WEOR 
.PROC,SKDASSY,LISTING=,OPLPFN=,OPLUNID=,OPLPW=,OPLPAK=,OPLDTSET=,OPLVSN=, 
OPLDEN=,MMF=,SYSVER=. 
.IFE,OT.EQ.TXO,BAT. 
BEGIN,SKDASX,CMLINST,#OPLPFN=OPLPFN,#OPLUNID=OPLUNID,#OPLPW=OPLPW,
#OPLPAK=OPLPAK,#OPLDTSET=OPLDTSET,#OPLVSN=OPLVSN,#OPLDEN=OPLDEN,?.
.ELSE,BAT.
BEGIN,SKDASX,CMLINST,MMF,LISTING,OPLPFN,OPLUNID,OPLPW,OPLPAK,OPLDTSET,OPLVSN, 
OPLDEN,BATCH,SYSVER.
.ENDIF,BAT. 
IFE,PNL.GT.0.REVERT. - END SKDASSY -
*WEOR 
.PROC,SKDASX*I, 
SYSVER[ENTER SYSTEM VERSION]=(NOS27,NOS26,NOS25,NOS24,NOS23,NOS6),
MMF[DO YOU WANT MULTIMAINFRAME DEFINED]=(*N=,Y=MMF,YES=MMF,MMF,N=,NO=), 
LISTING[DO YOU WANT A LISTING OF SKEDULR]=
(Y=DIAGLST,YES=DIAGLST,N=0,NO=0,LISTING=DIAGLST,*N=0),
OPLPFN[]=(*A,*N=),OPLUNID[]=(*A,*N=),OPLPW[]=(*A,*N=),OPLPAK[]=(*A,*N=),
OPLDTSET[]=(*A,*N=),OPLVSN[]=(*A,*N=),OPLDEN[]=(*A,*N=),
BATCH[BATCH OR INTERACTIVE MODE]= 
(B=BATCH,BATCH,I=INTERACT,INTERACT,*N=BATCH). 
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "CTRL/T(CR)" THEN "BEGIN,CMLUTIL,CMLINST,7?".
  
.HELP,SYSVER,NOLIST.
  
ENTER THE SYSTEM VERSION AS FOLLOWS-
  
    NOS27 ==> NOS 2.7 
    NOS26 ==> NOS 2.6 
    NOS25 ==> NOS 2.5 
    NOS24 ==> NOS 2.4 
    NOS23 ==> NOS 2.3 
    NOS6  ==> NOS 2.2, NOS 2.1, OR NOS 2.0
  
.HELP,MMF,NOLIST. 
  
IF SKEDULR IS TO BE USED IN A MULTIMAINFRAME ENVIRONMENT, DEFINING "MMF"
MAKES IT POSSIBLE FOR ALL SYSTEMS TO SHARE A COMMON COPY OF SKEDULR WHILE 
EACH SYSTEM HAS ITS OWN SCHEDULR OF JOBS TO EXECUTE.
  
(REFER TO SECTION 6 OF THE CML REFERENCE MANUAL (60455980) FOR MORE 
INFORMATION REGARDING MULTIMAINFRAME OPERATION.)
  
ENTER "Y" IF YOU WANT MMF DEFINED; "N" IF YOU DON'T.
  
.HELP,LISTING,NOLIST. 
  
A LISTING OF SKEDULR IS NOT GENERALLY NEEDED UNLESS ONE IS MAKING 
MODIFICATIONS TO THE PROGRAM.  IF YOU WANT A LISTING, ENTER "Y".
  
IF YOU DO NOT WANT A LISTING, ENTER "N" OR (CR).
  
.HELP,BATCH,NOLIST. 
  
SPECIFIES WHETHER THE ASSEMBLY WILL BE DONE IN BATCH OR INTERACTIVE MODE. 
ENTER "B" OR (CR) FOR BATCH; "I" FOR INTERACTIVE.  READ "GENERAL INFO" FOR
MORE INFORMATION ON EXECUTION MODES.
.ENDHELP. 
SETTL,*.
SETASL,*. 
SETJSL,*. 
.*
.* STEP 1 - CHECK TO SEE IF CMLPL IS AVAILABLE. 
.*
BEGIN,CHKCML,CMLINST. 
.*
.* STEP 2 - CHECK FOR LOCAL MODIFICATIONS; INFORM THE USER IF MODS ARE FOUND. 
.*
BEGIN,MOD,CMLINST,SKEDULR.
IFE,FILE(DNOTE,LO),STEP2A.
.IFE,OT.EQ.TXO,STEP2B.
COPYCR,DNOTE,,1,2,80. 
.ELSE,STEP2B. 
COPYCR,DNOTE,DIAGLST. 
.ENDIF,STEP2B.
.IFE,$BATCH$.EQ.$#BATCH$.RETURN,DIAGMOD.
ENDIF,STEP2A. 
RETURN,DNOTE. 
.*
.* STEP 3 - FIND SYSOPL 
.*
BEGIN,FINDOPL,CMLINST,BATCH,OPLPFN,OPLUNID,OPLPW,OPLPAK,OPLVSN,OPLDEN,OPLDTSET. 
.*
.* STEP 4 - IF BATCH MODE IS SELECTED, GET THE USER/CHARGE AND LISTING
.*          DISPOSITION, THEN ROUTE THE JOB TO INPUT; ELSE RUN IT 
.*          INTERACTIVELY.
.*
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP4. 
.IFE,$LISTING$.NE.$0$.BEGIN,LISTOUT,CMLINST,?.
.IFE,FILE(USERCHG,.NOT.LO),STEP4A.
BEGIN,#BATCH,CMLINST,?. 
.ELSE,STEP4A. 
NOTE,OUTPUT,NR.' ' USING PREVIOUSLY ENTERED USER/CHARGE 
.ENDIF,STEP4A.
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
IFE,FILE(R1GFILE,LO).COPYCR,R1GFILE,JOB.
COPYCR,LIMITS,JOB.
RETURN,LIMITS.
COPYCR,OPLDIR,JOB.
COPYCR,PART2,JOB. 
PACK,JOB. 
SKIPR,JOB.
COPYCR,UPIN,JOB.
ROUTE,JOB,DC=NO.
NOTE,OUTPUT,NR./ /SKEDASY ROUTED TO INPUT QUEUE.
REWIND,USERCHG,OPLDIR.
RETURN,R1GFILE,UPIN,PART2.
REVERT. - SKEDULR ASSEMBLY ROUTED TO INPUT QUEUE. 
.DATA,PART2.
.ENDIF,STEP4. 
.*
.* STEP 5 - PERFORM THE UPDATE, INCORPORATING ANY MODS IF FOUND.
.*
.IFE,$BATCH$.NE.$#BATCH$.NOTE,OUTPUT,NR./ /BEGINNING UPDATE OF SKEDULR....
BEGIN,UPDATEX,CMLINST,SKEDULR.
.*
.* STEP 6 - ASSEMBLE SKEDULR AND RETAIN IT AS A PERMANENT FILE. 
.*
.IFE,$BATCH$.NE.$#BATCH$.NOTE,OUTPUT,NR./ /UPDATE COMPLETE....STARTING ASSEMBLY 
REWIND,COMPILE. 
COMPASS,I,L=LISTING,X,S=NOSTEXT,B=SKEDULR,A.
.IFE,$BATCH$.NE.$#BATCH$.NOTE,OUTPUT,NR./ /ASSEMBLY COMPLETE... NO ERRORS / 
BEGIN,SAVEIT,CMLINST,PFILE=SKEDULR. 
.*
.* STEP 7 - IF BATCH MODE AND A LISTING WAS REQUESTED, ROUTE IT TO THE
.*          PRINT QUEUE; ELSE INDICATE THAT LIST FILE DISPOSITION IS
.*          THE USER'S RESPONSIBILITY.
.*
.IFE,$LISTING$.NE.$0$,STEP7.
IFE,OT.NE.TXO,STEP7A. 
IFE,PNL.GT.0,STEP7B.
BEGIN,DIAGOUT,CMLINST.
SKIP,STEP7A.
ENDIF,STEP7B. 
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ELSE,STEP7A.
NOTE,OUTPUT,NR./ OUTPUT LISTING IS ON FILE "DIAGLST". 
NOTE,OUTPUT,NR./ ROUTE TO PRINTER IF DESIRED. 
ENDIF,STEP7A. 
.ENDIF,STEP7. 
RETURN,COMPILE,SKEDULR,JOB,UPIN.
IFE,PNL.GT.0.REVERT. - END ASSEMBLY OF SKEDULR -
.*
.* STEP 8 - EXIT PROCESSING.
.*
EXIT. 
IFE,OT.EQ.TXO.REVERT,ABORT. - ERRORS IN SKEDULR ASSEMBLY -
IFE,PNL.GT.0,STEP8A.
BEGIN,DIAGOUT,CMLINST.
ELSE,STEP8A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
ENDIF,STEP8A. 
IFE,PNL.GT.0.REVERT. - ERRORS IN SKEDULR ASSEMBLY - 
.DATA,UPIN. 
*TEXT 
*READ,DIAGMOD 
*IDENT,ZZSKEDZZ 
*DEFINE,NOS,SYSVER
.IFE,$MMF$.EQ.$#MMF$.*DEFINE,MMF
*COMPILE,SKEDULR
*ENDTEXT
.DATA,JOB.
SKEDASY.         - SKEDULR ASSEMBLY - 
.DATA,LIMITS. 
SETTL,*.
SETASL,*. 
SETJSL,*. 
*WEOR 
.PROC,SYSEDIT,LISTING=. 
.IFE,OT.EQ.TXO,BAT. 
BEGIN,SYSEDIX,CMLINST,?.
.ELSE,BAT.
BEGIN,SYSEDIX,CMLINST,LISTING.
.ENDIF,BAT. 
REVERT. - END SYSEDIT - 
*WEOR 
.PROC,SYSEDIX*I,
LISTING[DO YOU WANT A LISTING]= 
(Y=DIAGLST,YES=DIAGLST,LISTING=DIAGLST,N=0,NO=0,*N=0).
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "CTRL/T(CR)" THEN "BEGIN,CMLUTIL,CMLINST,11?". 
  
.ENDHELP. 
.*
.* STEP 1 - ATTACH MLDBIN AND CMLBIN, THEN CUT THE SYSEDIT DIRECTIVES.
.*
ATTACH,CMLBIN,MLDBIN/NA.
IFE,(FILE(CMLBIN,.NOT.AS)).AND.(FILE(MLDBIN,.NOT.AS)),STEP1A. 
IFE,OT.EQ.TXO,STEP1B. 
NOTE.' '*** ERROR *** CANNOT FIND CMLBIN OR MLDBIN
ELSE,STEP1B.
NOTE,DIAGLST,NR.'1 *** ERROR ***' ' CANNOT FIND MLDBIN OR CMLBIN
ENDIF,STEP1B. 
SKIP,STEP4. 
ENDIF,STEP1A. 
IFE,FILE(MLDBIN,AS),STEP1C. 
NOTE,SYSDIR,NR."*FILE,MLDBIN
IFE,OT.EQ.TXO.NOTE.'MLDBIN FOUND
ENDIF,STEP1C. 
IFE,FILE(CMLBIN,AS),STEP1C1.
NOTE,SYSDIR,NR."*FILE,CMLBIN
IFE,OT.EQ.TXO.NOTE.'CMLBIN FOUND
ENDIF,STEP1C1.
PACK,SYSDIR.
RETURN,CMLBIN,MLDBIN. 
.IFE,OT.EQ.TXO,STEP1. 
NOTE.' 'SYSEDIT RUNS ONLY IN BATCH MODE ' 
IFE,FILE(USERCHG,.NOT.LO).BEGIN,BATCH,CMLINST,?.
REWIND,USERCHG. 
.IFE,$LISTING$.NE.$0$.BEGIN,LISTOUT,CMLINST,?.
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
IFE,FILE(R1GFILE,LO).COPYCR,R1GFILE,JOB.
COPYCR,PART2,JOB. 
PACK,JOB. 
SKIPR,JOB.
COPYCR,SYSDIR,JOB.
ROUTE,JOB,DC=NO.
REVERT. - SYSEDIT ROUTED TO INPUT QUEUE - 
.DATA,PART2.
.ENDIF,STEP1. 
.*
.* STEP 2 - PERFORM THE SYSEDIT.
.*
SETTL,*.
SETASL,*. 
SETJSL,*. 
ATTACH,MLDBIN,CMLBIN/NA.
REQUEST,S. SYSEDIT WARN - ASSIGN DISK - 
RETURN,X. 
IFE,FILE(SYSDIR,LO),STEP2A. 
SYSEDIT,B=0,I=SYSDIR,L=LISTING,NA.
ELSE,STEP2A.
SYSEDIT,B=0,L=LISTING,NA. 
ENDIF,STEP2A. 
.*
.* STEP 3 - ROUTE THE LISTING IF ONE WAS REQUESTED. 
.*
.IFE,$LISTING$.NE.$0$,STEP3.
IFE,PNL.GT.0,STEP3A.
BEGIN,DIAGOUT,CMLINST.
ELSE,STEP3A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ENDIF,STEP3A. 
.ENDIF,STEP3. 
IFE,PNL.GT.0.REVERT. - END SYSEDIT -
.*
.* STEP 4 - EXIT PROCESSING 
.*
EXIT. 
ENDIF,STEP4.
IFE,PNL.GT.0,STEP4A.
BEGIN,DIAGOUT,CMLINST.
ELSE,STEP4A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
ENDIF,STEP4A. 
IFE,PNL.GT.0.REVERT. - ERRORS DURING SYSEDIT -
.DATA,JOB.
SYSEDIT.  - SYSTEM SYSEDIT -
*WEOR 
.PROC,SYSTAPE,LISTOPT=. 
.IFE,OT.EQ.TXO,BAT. 
BEGIN,SYSTAPX,CMLINST,?.
.ELSE,BAT.
BEGIN,SYSTAPX,LISTOPT,BATCH.
.ENDIF,BAT. 
REVERT. - END SYSTAPE - 
*WEOR 
.PROC,SYSTAPX*I,
LISTOPT[ENTER LIST OPTIONS]=(*S4(CEMN),*S1(F),*N=E),
BATCH[BATCH OR INTERACTIVE MODE]=(B=BATCH,BATCH,I=INTERACT,INTERACT,*N=BATCH).
.HELP,,NOLIST.
  
FOR GENERAL INFO ENTER "CTRL/T(CR)" THEN "BEGIN,CMLUTIL,CMLINST,12?". 
  
.HELP,LISTOPT.
  
THE FOLLOWING LIBEDIT LIST OPTIONS ARE AVAILABLE- 
  
  C ==> LIST DIRECTIVES 
  E ==> LIST ERRORS 
  M ==> LIST MODIFICATIONS
  N ==> LIST RECORDS WRITTEN TO NEW FILE
  F ==> GIVE FULL LISTING (ENABLE ALL LIST OPTIONS) 
  
YOU MAY COMBINE LIST OPTIONS; FOR EXAMPLE, CM, CE, OR CEM.
ENTER (CR) IF YOU DON'T WANT A LISTING. 
  
.HELP,BATCH,NOLIST. 
  
SPECIFIES WHETHER THE NEW DEADSTART TAPE WILL BE GENERATED IN BATCH OR
INTERACTIVE MODE. 
  
ENTER "B" OR (CR) FOR BATCH MODE; "I" FOR INTERACTIVE MODE. 
  
.ENDHELP. 
.*
.* STEP 1 - CHECK FOR AVAILABILITY OF CMLBIN AND MLDBIN.
.*
ATTACH,CMLBIN,MLDBIN/NA.
IFE,(FILE(CMLBIN,.NOT.AS)).AND.(FILE(MLDBIN,.NOT.AS)),STEP1A. 
.IFE,OT.EQ.TXO,STEP1B.
NOTE.' 'CANNOT FIND CMLBIN OR MLDBIN -
REVERT,ABORT. - CANNOT FIND CMLBIN OR MLDBIN -
.ELSE,STEP1B. 
NOTE,DIAGLST,NR./1 *** ERROR *** CANNOT FIND CMLBIN OR MLDBIN *** 
SKIP,STEP7. 
.ENDIF,STEP1B.
ENDIF,STEP1A. 
.*
.* STEP 2 - IF BATCH, GET USER/CHARGE AND ROUTE JOB TO INPUT QUEUE; 
.*          ELSE RUN IT INTERACTIVELY.
.*
RETURN,CMLBIN,MLDBIN. 
.IFE,(OT.EQ.TXO).AND.($BATCH$.EQ.$#BATCH$),STEP2. 
.IFE,$LISTOPT$.NE.$$.BEGIN,LISTOUT,CMLINST,?. 
.IFE,FILE(USERCHG,.NOT.LO),STEP2A.
BEGIN,#BATCH,CMLINST,?. 
.ELSE,STEP2A. 
NOTE.' USING PREVIOUSLY ENTERED USER/CHARGE 
.ENDIF,STEP2A.
SKIPR,JOB.
COPYCR,USERCHG,JOB. 
IFE,FILE(R1GFILE,LO).COPYCR,R1GFILE,JOB.
COPYCR,PART2,JOB. 
PACK,JOB. 
ROUTE,JOB,DC=NO.
RETURN,R1GFILE,PART2. 
REWIND,USERCHG. 
NOTE.' 'SYSTAPE ROUTED TO INPUT QUEUE 
REVERT. - SYSTAPE ROUTED TO INPUT QUEUE - 
.DATA,PART2.
.ENDIF,STEP2. 
.*
.* STEP 3 - LOAD OLD SYSTEM TAPE. 
.*
IFE,OT.EQ.TXO.NOTE.' REQUESTING OLD DEADSTART TAPE... 
REQUEST,OLDDST,F=I,LB=KU,PO=R,VSN=OLDDST. MOUNT OLD DEADSTART TAPE
IFE,OT.EQ.TXO.NOTE./ COPYING OLD DEADSTART TAPE...
COPYEI,OLDDST,OLD,V.
RETURN,OLDDST.
.*
.* STEP 4 - DETERMINE WHAT DIRECTIVES NEED TO BE CUT. 
.*
RETURN,LIBDIR,MALET,HPA,REGEN,TIO,MLDTEST,OLDMAL,OLDHPA,OLDREG,OLDTIO.
IFE,FILE(CMLBIN,.NOT.AS).ATTACH,CMLBIN/NA.
IFE,FILE(MLDBIN,.NOT.AS).ATTACH,MLDBIN/NA.
IFE,FILE(MLDBIN,AS),STEP4A. 
GTR,OLD,MLDTEST,,,,NA.PP/MLD
IFE,FILE(MLDTEST,LO),STEP4B.
RETURN,MLDTEST. 
NOTE,LIBDIR,NR.'*DELETE PP/MLD-SBP
ENDIF,STEP4B. 
NOTE,LIBDIR,NR.'*FILE,MLDBIN'*INSERT PP/CUX,PP/MLD-SBP
ENDIF,STEP4A. 
IFE,FILE(CMLBIN,AS),STEP4C. 
NOTE,LIBDIR,NR."*FILE,CMLBIN
GTR,CMLBIN,MALET,,,,NA.ABS/MALET
IFE,FILE(MALET,LO),STEP4D.
GTR,OLD,OLDMAL,,,,NA.ABS/MALET
IFE,FILE(OLDMAL,LO).NOTE,LIBDIR,NR.'*DELETE ABS/MALET-OVL/MALET40 
NOTE,LIBDIR,NR.'*ADD LIB50 ABS/MALET-OVL/MALET40
ENDIF,STEP4D. 
GTR,CMLBIN,HPA,,,,NA.ABS/HPA
IFE,FILE(HPA,LO),STEP4E.
GTR,OLD,OLDHPA,,,,NA.OVL/HPA9 
IFE,FILE(OLDHPA,LO).NOTE,LIBDIR,NR."*DELETE ABS/HPA-OVL/HPA9
GTR,OLD,OLDHPAL,,,,NA.ULIB/HPALIB 
IFE,FILE(OLDHPAL,LO).NOTE,LIBDIR,NR."*DELETE ABS/HPA
IFE,FILE(OLDHPAL,LO).NOTE,LIBDIR,NR."*DELETE ULIB/HPALIB
NOTE,LIBDIR,NR.'*ADD LIB50 ABS/HPA-ULIB/HPALIB
ENDIF,STEP4E. 
GTR,CMLBIN,REGEN,,,,NA.ABS/REGEN
IFE,FILE(REGEN,LO),STEP4F.
GTR,OLD,OLDREG,,,,NA.ABS/REGEN
IFE,FILE(OLDREG,LO).NOTE,LIBDIR,NR.'*DELETE,ABS/REGEN 
NOTE,LIBDIR,NR."*ADD LIB50 ABS/REGEN
ENDIF,STEP4F. 
GTR,OLD,OLDTIO,,,,NA.ABS/TIO
IFE,FILE(OLDTIO,LO).NOTE,LIBDIR,NR."*DELETE,ABS/TIO 
NOTE,LIBDIR,NR.'*ADD LIB50,ABS/TIO
ENDIF,STEP4C. 
ENDIF,STEP4.
PACK,LIBDIR.
REWIND,OLD. 
RETURN,MALET,HPA,REGEN,TIO,OLDMAL,OLDHPA,OLDREG,OLDTIO. 
.*
.* STEP 5 - PERFORM THE LIBEDIT AND GENERATE THE NEW DEADSTART TAPE 
.*
IFE,OT.EQ.TXO.NOTE.'BEGINNING THE LIBEDIT.... 
BEGIN,SETRFL,CMLINST,MAXFL=MFL+B,RFLREQ=160000. 
LIBEDIT,B=0,P=OLD,N=NEWLIB,I=LIBDIR,LO=LISTOPT,L=DIAGLST. 
RETURN,OLD. 
IFE,OT.EQ.TXO.NOTE.'LIBEDIT COMPLETE... REQUESTING NEW DEADSTART TAPE...
REQUEST,NEWDST,F=I,LB=KU,PO=W,VSN=NEWDST.  MOUNT TAPE FOR NEW DEADSTART TAPE. 
IFE,OT.EQ.TXO.NOTE.' GENERATING NEW DEADSTART TAPE... 
COPYEI,NEWLIB,NEWDST,V. 
IFE,OT.EQ.TXO.NOTE.'NEW DEADSTART TAPE COMPLETE...
RETURN,NEWDST,NEWLIB,LIBDIR.
.*
.* STEP 6 - ROUTE THE OUTPUT LISTING. 
.*
IFE,$LISTOPT$.NE.$$,STEP6.
IFE,OT.NE.TXO,STEP6A. 
IFE,PNL.GT.0,STEP6B.
BEGIN,DIAGOUT,CMLINST.
SKIP,STEP6A.
ENDIF,STEP6B. 
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.NE.0.BEGIN,LISTDSP,CMLINST,DIAGLST. 
ELSE,STEP6A.
NOTE.' LISTING IS ON FILE "DIAGLST".
NOTE.' ROUTE TO PRINTER IF DESIRED. 
ENDIF,STEP6A. 
ENDIF,STEP6.
IFE,PNL.GT.0.REVERT. - END SYSTAPE -
EXIT. 
.*
.* STEP 7 - EXIT PROCESSING.
.*
ENDIF,STEP7.
IFE,OT.EQ.TXO.REVERT,ABORT. - ERRORS DURING DEADSTART TAPE GENERATION - 
IFE,PNL.GT.0,STEP7A.
BEGIN,DIAGOUT,CMLINST.
ELSE,STEP7A.
DAYFILE,DIAGLST,OP=I. 
IFE,R1G.EQ.0.SET,R1G=3. 
BEGIN,LISTDSP,CMLINST,DIAGLST.
ENDIF,STEP7A. 
IFE,PNL.GT.0.REVERT. - ERRORS DURING DEADSTART TAPE GENERATION -
.DATA,JOB.
NEWDST.  - GENERATE NEW DEADSTART TAPE -
*WEOR 
.PROC,UPDATEX,DIAG=.
IFE,$DIAG$.NE.$DKDATA$,STEP3. 
.IFE,FILE(OLDPL,.NOT.AS),STEP1A.
ATTACH,OLDPL=CMLPL/NA.
IFE,FILE(OLDPL,.NOT.AS).LABEL,OLDPL,VSN=CMLVSN,F=SI,PO=RU,D=PE. 
.ENDIF,STEP1A.
IFE,FILE(OLDPL,TP),STEP1B.
REWIND,OLDPL. 
SKIPF,OLDPL.
ENDIF,STEP1B. 
BEGIN,MOD,CMLINST,#DIAG=DIAG. 
IFE,FILE(DNOTE,LO).COPYCR,DNOTE,DIAGLST.
RETURN,DNOTE. 
REWIND,COMPILE. 
IFE,FILE(DIAGMOD,LO),STEP2A.
IFE,FILE(UPIN,LO),STEP2B. 
$UPDATE,Q,I=UPIN,R,O=DIAGLST,L=1234.
ELSE,STEP2B.
$UPDATE,Q,R,O=DIAGLST,L=1234. 
ENDIF,STEP2B. 
ELSE,STEP2A.
IFE,FILE(UPIN,LO),STEP2C. 
$UPDATE,Q,L=1,I=UPIN,R. 
ELSE,STEP2C.
$UPDATE,Q,L=1,R,O=DIAGLST.
ENDIF,STEP2C. 
ENDIF,STEP2A. 
RETURN,DIAGMOD. 
REWIND,OLDPL. 
REVERT. - END UPDATE OF DIAG -
ENDIF,STEP3.
IFE,$DIAG$.EQ.$DKDATA$,STEP5. 
.IFE,FILE(OLDPL,.NOT.AS),STEP3A.
ATTACH,OLDPL=CMLPL/NA.
IFE,FILE(OLDPL,.NOT.AS).LABEL,OLDPL,VSN=CMLVSN,F=SI,PO=RU,D=PE. 
.ENDIF,STEP3A.
IFE,FILE(OLDPL,TP),STEP3B.
REWIND,OLDPL. 
SKIPF,OLDPL.
ENDIF,STEP3B. 
BEGIN,MOD,CMLINST,#DIAG=DIAG. 
IFE,FILE(DNOTE,LO).COPYCR,DNOTE,DIAGLST.
REWIND,COMPILE. 
IFE,FILE(DIAGMOD,LO),STEP4A.
IFE,FILE(UPIN,LO),STEP4B. 
$UPDATE,Q,D,8,I=UPIN,R,O=DIAGLST,L=1234.
ELSE,STEP4B.
$UPDATE,Q,D,8,R,O=DIAGLST,L=1234. 
ENDIF,STEP4B. 
ELSE,STEP4A.
IFE,FILE(UPIN,LO),STEP4C. 
$UPDATE,Q,D,8,R,L=1,I=UPIN. 
ELSE,STEP4C.
$UPDATE,Q,D,8,R,L=1,O=DIAGLST.
ENDIF,STEP4C. 
ENDIF,STEP4A. 
RETURN,DIAGMOD. 
REWIND,OLDPL. 
REVERT. - END UPDATE OF DIAG -
ENDIF,STEP5.
*WEOR 
.PROC,SAVEIT,PFILE. 
.* PROCEDURE NAME - SAVEIT
.*
.* PURPOSE - SAVE FILES AS EITHER INDIRECT OR DIRECT ACCESS PERMANENT FILES.
.*
.* LOCAL PARAMETERS USED (NOT SUPPLIED BY USER) - 
.*
.*                   PFILE - THE NAME OF THE LOCAL FILE WHICH IS TO BE
.*                           MADE PERMANENT.  THE PERMANENT FILE NAME 
.*                           WILL BE THE SAME AS THE LOCAL FILE NAME PASSED.
.*
.* PROCEDURE CALLED BY - XLOADY 
.*                       CML1 (INDIRECTLY)
.*                       CML5A
.*                       CML6 
.*
.* PROCEDURES CALLED - NONE 
.*
.* METHOD USED - SAVEIT FIRST ATTEMPTS TO SAVE ALL FILES AS INDIRECT
.*               ACCESS FILES.  IF THE SAVE WAS NOT SUCCESSFUL (DUE TO
.*               THE SIZE OF THE FILE EXCEEDING THE MAXIMUM ALLOWABLE 
.*               FOR AN INDIRECT ACCESS FILE), THE FILE IS MADE A DIRECT
.*               ACCESS PERMANENT FILE. 
.*
.*
.*    STEP 1 - ATTEMPT TO SAVE THE FILE, THEN CHECK TO SEE IF THE SAVE WAS
.*    SUCCESSFUL.  IF NOT SUCCESSFUL, GO TO STEP 2; ELSE GO TO STEP 3.
.*
PURGE,PFILE/NA. 
SAVE,PFILE/NA.
GET,X=PFILE/NA. 
IFE,FILE(X,.NOT.LO),STEP3.
.*
.*    STEP 2 - DEFINE A DIRECT ACCESS PERMANENT FILE, COPY THE LOCAL FILE 
.*    TO IT, THEN GO TO STEP3.
.*
REWIND,PFILE. 
DEFINE,X=PFILE. 
COPYEI,PFILE,X. 
.*
.*    STEP 3 - ISSUE THE APPROPRIATE DAYFILE MESSAGE, THEN TERMINATE. 
.*
* --------------------------- 
* 
* PFILE IS DIRECT ACCESS
* 
* --------------------------- 
ELSE,STEP3. 
* --------------------------- 
* 
* PFILE IS INDIRECT ACCESS
* 
* --------------------------- 
ENDIF,STEP3.
RETURN,X. 
REVERT.  - END SAVEIT - 
*WEOR 
.PROC,SETRFL,MAXFL,RFLREQ.
.*
.* PROCEDURE NAME - SETRFL
.*
.* PURPOSE - SET THE RUNNING FIELD LENGTH TO THAT REQUIRED TO PERFORM 
.*           A SYSTEM LIBEDIT.
.*
.* CALLED BY - JOB CML4 
.*
.* PROCEDURES CALLED - NONE 
.*
.* METHOD USED - THE SYSTEM SYMBOLIC NAME "MFL" IS TESTED TO SEE IF 
.*               THE VALUE PASSED IN PARAMETER "RFLREQ" IS AVAILABLE. 
.*               IF THE VALUE IS AVAILABLE, THE RUNNING FIELD LENGTH
.*               IS SET TO THAT VALUE.  IF LESS CENTRAL MEMORY THAN 
.*               THAT REQUESTED IS AVAILABLE, THE RUNNING FIELD LENGTH
.*               IS SET TO THE VALUE CONTAINED IN THE SYSTEM SYMBOLIC 
.*               NAME "MFL".
.*
IFE,MFL.GE.RFLREQ_B,SETMAX. 
RFL,RFLREQ. 
SKIP,SETMAX.
ELSE,SETMAX.
RFL,MAXFL.
ENDIF,SETMAX. 
REVERT. 
*WEOR 
.PROC,GETOPL,REL1APFN=,REL1AUN=LIBRARY,REL1APW=,REL1APAK=,
REL1AVSN=REL1A,REL1ADEN=1600,REL1ADT=.
.*
.* PROCEDURE NAME - GETOPL
.*
.* PURPOSE - ACCESS OR CREATE A PERMANENT FILE COPY OF REL1A (SYSOPL) 
.*           FOR THE COMMON DECKS REQUIRED DURING ASSEMBLY OF MALET 
.*           AND MLD/WLD/SBP. 
.*
.* USED BY - CML2, CML3 
.*
.* PARAMETERS USED - REL1APFN    REL1APW
.*                   REL1AUN     REL1AVSN 
.*                   REL1APAK    REL1ADEN 
.*                   REL1ADT
.*
.* CAUTIONS - THE PROCEDURE ASSUMES THE MAGNETIC TAPE, IF USED, IS
.*            LABELED, INTERNAL FORMAT. 
.*
.* METHOD USED -
.*
.*      STEP 1 - IF A PERMANENT FILE NAME IS PASSED IN REL1APFN, GO TO
.*               STEP 3; ELSE EITHER CREATE OR ATTACH "SYSOPL" UNDER
.*               THIS USER NUMBER.
.*
IFE,$REL1APFN$.EQ.$$,STEP2. 
ATTACH,OPL=SYSOPL/NA. 
IFE,FILE(OPL,.NOT.AS),STEP3.
GET,OPL=SYSOPL/NA.
IFE,FILE(OPL,.NOT.LO),STEP3.
VSN,TAPE=REL1AVSN.
IFE,$REL1ADEN$.EQ.$HY$,STEP1A.
LABEL,TAPE,F=I,D=REL1ADEN,MT. 
ELSE,STEP1A.
LABEL,TAPE,F=I,D=REL1ADEN.
ENDIF,STEP1A. 
DEFINE,SYSOPL.
COPYBF,TAPE,SYSOPL. 
RETURN,TAPE,SYSOPL. 
ATTACH,OPL=SYSOPL/NA. 
SKIP,STEP3. 
.*
.*      STEP 2 - A PERMANENT FILE NAME HAS BEEN PASSED.  ATTACH THE 
.*               FILE AS *OPL*, USING REL1AUN, REL1APW, REL1APAK, AND 
.*               REL1ADT AS NECESSARY.
.*
ENDIF,STEP2.
IFE,$REL1APAK$.NE.$$,NOPAK. 
IFE,$REL1APW$.EQ.$$,PW1.
IFE,$REL1ADT$.EQ.$$,DT1.
ATTACH,OPL=REL1APFN/UN=REL1AUN,PN=REL1APAK,NA.
ELSE,DT1. 
ATTACH,OPL=REL1APFN/UN=REL1AUN,PN=REL1APAK,R=REL1ADT,NA.
ENDIF,DT1.
ELSE,PW1. 
IFE,$REL1ADT$.EQ.$$,DT2.
ATTACH,OPL=REL1APFN/UN=REL1AUN,PW=REL1APW,PN=REL1APAK,NA. 
ELSE,DT2. 
ATTACH,OPL=REL1APFN/UN=REL1AUN,PW=REL1APW,PN=REL1APAK,R=REL1ADT,NA. 
ENDIF,DT2.
ENDIF,PW1.
SKIP,STEP3. 
ENDIF,NOPAK.
IFE,$REL1APW$.EQ.$$,PW2.
ATTACH,OPL=REL1APFN/UN=REL1AUN,NA.
ELSE,PW2. 
ATTACH,OPL=REL1APFN/UN=REL1AUN,PW=REL1APW,NA. 
ENDIF,PW2.
ENDIF,STEP3.
.*
.*      STEP 3 - IF OPL IS LOCAL TO THE CONTROL POINT, EXIT; ELSE ABORT.
.*
IFE,FILE(OPL,AS),STEP3A.
REVERT. - OPL ATTACHED -
ENDIF,STEP3A. 
REVERT,ABORT. - CANNOT FIND REL1A - 
*WEOR 
.PROC,XLOADY,INFILE=,OUTFILE=,TYPE=.
.*
.* PROCEDURE NAME - XLOADY
.*
.* PURPOSE - LOAD A FILE OR RECORD FROM AN INPUT FILE AND SAVE IT AS
.*           EITHER A DIRECT OR INDIRECT ACCESS PERMANENT FILE. 
.*
.* LOCAL PARAMETERS USED (NOT SUPPLIED DIRECTLY BY THE USER) -
.*
.*             INFILE  - THE INPUT FILE CONTAINING THE FILE OR
.*                       RECORD TO BE LOADED AND SAVED. 
.*
.*             OUTFILE - THE NAME OF THE DIRECT OR INDIRECT ACCESS
.*                       FILE TO WHICH THE INFILE FILE/RECORD WILL
.*                       BE COPIED AND SAVED. 
.*
.*             TYPE    - THERE ARE 2 LEGAL VALUES - 
.*
.*                       F = A COPYBF WILL BE PERFORMED FROM INFILE 
.*                           TO OUTFILE.
.*
.*                       R = A COPYBR WILL BE PERFORMED FROM INFILE 
.*                           TO OUTFILE.
.*
.* PROCEDURE CALLED BY - CML1 
.*
.* PROCEDURES USED - SAVEIT 
.*
.* METHOD USED - EITHER THE COPYBR OR COPYBF UTILITY WILL BE USED TO COPY 
.*               DATA FROM AN INPUT FILE (INFILE) TO A LOCAL FILE (OUTFILE).
.*               THE COPY STATEMENT IS CREATED BY CONCATENATING THE 'TYPE'
.*               PARAMETER (F OR R) WITH "COPYB_".  PROCEDURE SAVEIT IS THEN
.*               CALLED TO SAVE THE LOCAL FILE (OUTFILE) AS EITHER A DIRECT 
.*               OR INDIRECT ACCESS PERMANENT FILE. 
.*
COPYB_TYPE,INFILE,OUTFILE.
BEGIN,SAVEIT,CMLINST,PFILE=OUTFILE. 
RETURN,OUTFILE. 
REVERT.  - END XLOADY - 
*WEOR 
.PROC,LDMAL,TEST,FMOD,LMOD,DIAGLIB. 
.*
.* PROCEDURE NAME - LDMAL 
.*
.* PURPOSE - LOAD A SINGLE MALET DIAGNOSTIC FROM THE MALET DIAGNOSTIC 
.*           LIBRARY. 
.*
.* LOCAL PARAMETERS USED (NOT SUPPLIED BY USER) - 
.*
.*     TEST - NAME OF THE MALET DIAGNOSTIC TEST TO BE LOADED. 
.*
.*     FMOD - THE NAME OF THE FIRST MODULE IN THE DIAGNOSTIC. 
.*
.*     LMOD - THE NAME OF THE LAST MODULE IN THE DIAGNOSTIC.
.*
.*     DIAGLIB - THE LOCAL FILE NAME OF THE MALET DIAGNOSTIC LIBRARY. 
.*               DEFAULT IS "DIAGLIB".
.*
.* PROCEDURE CALLED BY - BININST
.*
.* PROCEDURES CALLED - SAVEIT 
.*
.* METHOD USED - LDMAL USED THE "GTR" CONTROL STATEMENT TO COPY 
.*               THE FIRST THROUGH LAST MODULES OF A DIAGNOSTIC 
.*               (FMOD THROUGH LMOD) TO A LOCAL FILE SPECIFIED
.*               BY PARAMETER "TEST".  THE "NOREWIND" (NR)
.*               PARAMETER IS USED ON THE "GTR" STATEMENT TO
.*               PREVENT THE DIAGNOSTIC LIBRARY FROM BEING
.*               REWOUND.  A "COPYBR" IS THEN EXECUTED TO COPY
.*               THE RANDOM INDEX TO THE TEST FILE.  A FILE MARK
.*               IS THEN WRITTEN TO FILE "TEST" AND PROCEDURE 
.*               "SAVEIT" IS CALLED TO RETAIN THE DIAGNOSTIC AS 
.*               A PERMANENT FILE.
.*
.* PREREQUSITES - THE DIAGNOSTIC LIBRARY MUST BE AVAILABLE TO THE 
.*                PROCEDURE AS A LOCAL FILE.  DEFAULT IS "DIAGLIB". 
.*
.*    STEP 1 - GET THE FIRST THROUGH LAST MODULES.
.*
NOTE././. LOADING TEST ...
RFL,50000.
GTR,DIAGLIB,TEST,,NR,,NA.TEXT/FMOD-LMOD 
IFE,FILE(TEST,.NOT.LO),STEP2. 
NOTE./** ERROR **...TEST NOT LOADED.
NOTE./              CANNOT FIND TEST ON DIAGNOSTIC LIBRARY
REVERT. - TEST NOT LOADED..CANNOT FIND ON DIAGLIB 
ENDIF,STEP2.
.*
.*    STEP 2 - COPY THE RANDOM INDEX AND ADD A FILE MARK. 
.*
COPYBR,DIAGLIB,TEST.
WRITEF,TEST.
.*
.*    STEP 3 - CALL "SAVEIT" TO RETAIN TEST AS A PERMANENT FILE.
.*
BEGIN,SAVEIT,CMLINST,PFILE=TEST.
.*
.*    STEP 4 - TERMINATE
.*
REVERT. 
*WEOR 
*ENDIF
*IF,DEF,NOSBE 
.PROC,CML,
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
NOTSECURE=$$/NOTSECURE,CEID=CDCCE,
MALDOC=NONE,SYSEDIT=$$/EDITLIB, 
844=$$/844,885=$$/885,885LS=$$/885LS,7155=$$/7155,7X54=$$/7X54,800=$$/800,
LCN=$$/LCN,2550=$$/2550,667X=$$/667X,895=$$/895,CARTAPE=$$/CARTAPE, 
5X70=$$/5X70,UNIBUS=$$/UNIBUS,698=$$/698,83X=$$/83X,639=$$/639, 
2550100=$$/2550100,65X=$$/65X,66X=$$/66X,67X=$$/67X,7155C=$$/7155C, 
405=$$/405,415=$$/415,512580=$$/512580,ESM=$$/ESM,
FSCTAPE=$$/FSCTAPE,FSCDISK=$$/FSCDISK,SYSVER=,
PAPER85=$$/PAPER85,8LPI=$$/8LPI,HPSORT=$$/HPSORT, 
USER=$COMMENT. - NO USER NUMBER SUPPLIED -$,
CHARGE=$COMMENT. - NO CHARGE NUMBER SUPPLIED -$,
PL1BPFN=,PL1BPAK=,PL1BPW=,PL1BID=,PL1BSET=,PL1BVSN=,PL1BDEN=. 
.*
.* -------------- START OF GENERAL DOCUMENTATION -----------------------------
.*
.* THE CML INSTALLATION PROCEDURES CONTAINED IN DECK CMLINST ARE DESIGNED TO
.* PERFORM AN INITIAL INSTALLATION OF THE CML COMPONENTS INTO THE OPERATING 
.* SYSTEM, OR UPGRADE THE LEVEL OF EXISTING CML COMPONENTS CONTAINED ON THE 
.* SYSTEM.  THE MAJOR FUNCTIONS PERFORMED BY THESE PROCEDURES INCLUDE-
.*
.*          - ASSEMBLY OF MALET, HPA, REGEN, AND TIO
.*
.*          - ASSEMBLY OF PPU ROUTINES MLD AND SBP
.*
.*          - OPTIONAL INCORPORATION OF THESE BINARIES INTO 
.*            THE RUNNING SYSTEM. 
.*
.*           NOTE - THESE INSTALLATION PROCEDURES WILL NOT PRODUCE
.*                  A NEW SYSTEM DEADSTART TAPE.  NOS/BE INSTALLATION 
.*                  JOB "DST3" SHOULD BE RUN AFTER THE SYSTEM EDITLIB 
.*                  IS COMPLETE IF A NEW DEADSTART TAPE IS DESIRED. 
.*
.*          - ASSEMBLY/COMPILATION OF SKEDULR, MLTDOC, MTPLOT, DSPLOT AND 
.*            DKDATA RETENTION OF THE BINARIES ON PERMANENT FILES.
.*
.*          - OPTIONAL COMPILATION OF MICROCODE UTILITIES MCCOMP AND
.*            MCCOMP, AND RETENTION AS PERMANENT FILES. 
.*
.*          - COMPILATON OF THE MALET DIAGNOSTICS NECESSARY TO SUPPORT THE
.*            SPECIFIED EQUIPMENT CONFIGURATION.
.*
.*          - OPTIONAL GENERATION OF HARDCOPY DOCUMENTATION FOR ALL COMPILED
.*            MALET DIAGNOSTICS.
.*
.*          - INCORPORATION OF LOCAL MODIFICATIONS OR CORRECTIVE CODE 
.*            INTO ANY OF THE ASSEMBLED/COPMPILED BINARIES. 
.*
.* WHEN CALLED INTO EXECUTION, THE PROCEDURES CREATE INSTALLATION JOBS WHICH
.* ARE TAILORED TO THE SPECIFIC HARDWARE, SOFTWARE, AND OPERATIONAL ENVIRONMENT 
.* WHICH THE USER DEFINES.  THESE JOBS ARE SAVED AS PERMANENT FILES FOR 
.* SUBSEQUENT EXECUTION.
.*
.* EXECUTION OF THE INSTALLATION JOBS IS BEGUN BY ROUTING THE FIRST JOB TO THE
.* INPUT QUEUE.  THE REMAINDER OF THE INSTALLATION JOBS ARE EVOKED
.* AT THE PROPER TIME IN THE SEQUENCE.  THE JOBS ARE DESIGNED TO MAKE 
.* OPTIMUM USE OF SYSTEM RESOURCES, THUS MINIMIZING THE INSTALLATION TIME.
.*
.* THE PROCEDURES EXIST IN EXECUTABLE FORM AS THE FIRST FILE ON THE CML 
.* RELEASE TAPE.  WHEN CALLED INTO EXECUTION, THE INTERFACE PROCEDURE 
.* "CMLINST" WILL GENERATE THE APPROPRIATE NOS OR NOSBE INSTALLATION
.* PROCEDURE FILE, SAVE IT AS A PERMANENT FILE ON MASS STORAGE, AND 
.* CREATE THE INSTALLATION JOB DECKS.  EXECUTION IS BEGUN BY USING A
.* "BEGIN" STATEMENT TO PASS THE HARDWARE, SOFTWARE, AND OPERATIONAL
.* ENVIRONMENTS TO THE PROCEDURES.  THESE PROCEDURES THEN EXECUTE AND CREATE
.* THE CML INSTALLATION JOBS WHICH ARE TAILORED TO MEET THE INSTALLATION'S
.* SPECIFIC REQUIREMENTS.  FOLLOWING THIS, A CALL TO THE PROCEDURE "NEXTJOB"
.* STARTS EXECUTION OF THE FIRST INSTALLATION JOB.
.*
.* THE FOLLOWING SAMPLE JOB ILLUSTRATES HOW THIS CAN BE ACCOMPLISHED. 
.* WHILE THIS EXAMPLE SHOWS HOW IT CAN BE DONE VIA A CARD DECK, EXECUTION CAN 
.* ALSO BE ACCOMPLISHED BY CREATING A SIMILAR JOB OR PROCEDURE INTERACTIVELY, 
.* OR THROUGH USE OF O26 AT THE SYSTEM CONSOLE. 
.*
.*          JOB,T7000,PE1.
.*             - ACCOUNTING INFORMATION - 
.*          LABEL,CMLTAPE,VSN=CMLVSN,X=IU,R,NORING,D=PE.
.*          COPYBF,CMLTAPE,CMLPROC. 
.*          REWIND,CMLPROC. 
.*          BEGIN,CMLINST,CMLPROC,844,885,2550,67X,580,405, 
.*          PAPER85,SYSEDIT,SYSVER=NOSBE6,
.*          USER=$ACCOUNT,1234567,PASSWRD.$,
.*          OPLPFN=PL1B,OPLUNID=INSTALL,CEID=CDCCE. 
.*          BEGIN,NEXTJOB,CMLINST,JOB=CML1,CEID=CDCCE.
.*          6/7/8/9 
.*
.*             NOTE - EXECUTION OF THE INSTALLATION PROCEDURES AND JOBS 
.*                    REQUIRES THAT THE PROCEDURES RESIDE ON PERMANENT
.*                    FILE "CMLINST".  THE PERMANENT FILE IDENT UNDER 
.*                    WHICH THEY ARE CATALOGED MUST BE THE SAME IDENT 
.*                    THAT IS PASSED TO THE PROCEDURES BIA PARAMETER
.*                    "CEID".  IF CEID IS NOT SPECIFIED, ALL PERMANENT
.*                    FILES CREATED BY THE INSTALLATION PROCESSES ARE 
.*                    CATALOGED USING AN IDENT OF "CDCCE".
.*
.*
.* IN THIS EXAMPLE, THE HARDWARE CONFIGURATION HAS BEEN DEFINED TO INCLUDE
.* 844 AND 885 DISK DRIVES, A 2550 COMMUNICATIONS CONTROLLER, 67X MAGNETIC
.* TAPES, 580 LINE PRINTERS, AND A 405 CARD READER.  THE SOFTWARE 
.* ENVIRONMENT IS DEFINED AS NOSBE 1.5 (NOSBE6 PARAMETER).  THE OPERATIONAL 
.* ENVIRONMENT IS DEFINED AS USING 8.5 INCH PRINTER PAPER, A SYSTEM EDITLIB 
.* WILL BE PERFORMED DURING THE INSTALLATION (KEYWORD "SYSEDIT"), AND ACCOUNTING
.* INFORMATION HAS BEEN PASSED VIA THE KEYWORD "USER".  THE SYSTEM OPL
.* (PL1B) IS AVAILABLE TO THE JOB AS PERMANENT FILE "PL1B", UNDER THE 
.* PERMANENT FILE IDENT OF "INSTALL". 
.*
.* AFTER EXECUTION OF THIS JOB, ALL THAT IS REQUIRED IS THE MOUNTING
.* AND ASSIGNING OF MAGNETIC TAPES, AND TO ENTER A GO IF A SYSTEM EDITLIB IS
.* TO BE PERFORMED.  EXECUTION TIME OF THE SAMPLE JOB IS AS FOLLOWS-
.*
.*     NOTE- THE TIME REFLECTS NO OTHER ACTIVITIES ON THE SYSTEM.  TIMES
.*           WILL VARY DEPENDING UPON SPECIFIC SYSTEM CONFIGURATION.
.*
.*           CPU              WALL CLOCK TIME 
.*      -------------       ------------------- 
.*
.*       CYBER 170-825             49 MINUTES 
.*
.* SHOULD ERRORS OCCUR DURING EXECUTION OF ANY OF THE INSTALLATION JOBS,
.* THE SEQUENCE CAN BE RESTARTED BY MANUALLY ROUTING TO THE INPUT QUEUE 
.* THE JOB WHICH FAILED.
.*
.*       EXAMPLE - ATTACH,CMLINST,ID=CDCCE. 
.*                 BEGIN,NEXTJOB,CMLINST,JOB=CML3,CEID=CDCCE. 
.*
.* CARE MUST BE TAKEN WHEN RESTARTING ANY JOB DUE TO JOB INTERDEPENDENCIES. 
.* IF IN DOUBT, IT IS RECOMMENDED THAT THE ENTIRE SEQUENCE BE RESTARTED.
.* NOTE THAT THE PROGRAM LIBRARIES PL1B AND PL5A ARE SAVED AS PERMANENT 
.* FILES BY THE JOBS.  ONCE THEY HAVE BEEN SUCCESSFULLY LOADED FROM TAPE, 
.* A RESTART OF THE JOBS WILL USE THE PERMANENT FILES IN LIEU OF RELOADING
.* THEM FROM TAPE.
.*
.*
.* INSTALLATION RESOURCE REQUIREMENTS 
.* ---------------------------------- 
.*
.* EXECUTION OF THE INSTALLATION JOBS REQUIRES A MAXIMUM OF 120,000 WORDS 
.* OF CENTRAL MEMORY AND UP TO 7000 (OCTAL) CPU SECONDS DEPENDING ON THE
.* SPECIFIC CENTRAL PROCESSOR MODEL IN USE.  SUFFICIENT MASS STORAGE SPACE
.* SHOULD BE AVAILABLE AS FOLLOWS.
.*
.*      TEMPORARY FILE SPACE (RELEASED AT JOB TERMINATION) - 200,000 PRU'S
.*
.*      PERMANENT FILE SPACE (RELEASED FOLLOWING INSTALLATION) - 200,000 PRU'S
.*
.*      RETAINED PERMANENT FILE SPACE (MALET DIAGS. ETC.) - 5000 PRU'S
.*
.* THESE FIGURES ARE ESTAMATES AND MAY VARY SIGNIFICANTLY DEPENDING ON
.* SYSTEM CONFIGURATION AND SPECIFIC PARAMETERS USED DURING THE INSTALLATION
.* PROCESS.  THE FIGURES STATED SHOULD BE ADEQUATE FOR THE MOST INSTALLATIONS.
.*
.* THE INSTALLATION PROCESS ALSO REQUIRES THE USE OF ONE MAGNETIC TAPE
.* TRANSPORT. 
.*
.*
.* MAGNETIC TAPE/PERMANENT FILE REQUIREMENTS
.* -----------------------------------------
.*
.* THE INSTALLATION JOBS REQUIRE THE FOLLOWING MAGNETIC TAPES, OR THEIR 
.* PERMANENT FILE EQUIVALENTS, TO BE AVAILABLE.  ALL MAGNETIC TAPE REQUESTS 
.* ISSUED BY THE INSTALLATION JOBS CONTAIN A VSN PARAMETER WHICH CAUSES THE 
.* REQUESTING JOB TO BE ROLLED OUT UNTIL THE REQUEST IS SATISFIED.  THE TAPE
.* REQUESTS CAN THEN BE VIEWED VIA THE "P" CONSOLE DISPLAY.  ALL MAGNETIC TAPES 
.* CAN BE MOUNTED AND A VSN ASSIGNED PRIOR TO INITIATION OF THE INSTALLATION
.* PROCESS. 
.*
.*  MAGNETIC   PERMANENT   USED 
.*  TAPE VSN      FILE      IN    C O M M E N T S 
.*  --------   ---------   ----   --------------- 
.*
.*    CMLVSN      N/A      CML1   CML PROGRAM LIBRARY.  TAPE MUST BE 1600 BPI,
.*                                LABELED, WITH NO WRITE ENABLE RING. 
.*                                PERMANENT FILE "CMLPL" IS CREATED FROM THE
.*                                UPDATE PROGRAM LIBRARY (FILE 1) FOR USE BY
.*                                SUBSEQUENT INSTALLATION JOBS.  DEPENDING
.*                                UPON SYSTEM CONFIGURATION, VARIOUS OTHER
.*                                FILES ARE COPIED FROM THE TAPE AND RETAINED 
.*                                AS PERMANENT FILES. 
.*
.*   PL1B        USER     CML3A   PL1B PROGRAM LIBRARY.  REQUIRED ONLY IF 
.*             DEFINED            MLD/SBP ARE TO BE REASSEMBLED.  TAPE MUST BE
.*                OR              OF A VSN AND DENSITY SPECIFIED BY 
.*              OPL1B             KEYWORDS "PL1BVSN" AND "PL1BDEN" RESPEC-
.*                                TIVELY, WITH NO WRITE ENABLE RING.  A PERMA-
.*                                NENT FILE COPY (RANDOM PROGRAM LIBRARY) IS
.*                                MADE OF THE TAPE AND RETAINED AS PERMANENT
.*                                FILE "OPL1B" UNDER THE IDENT SPECIFIED BY 
.*                                PARAMETER "CEID".  THIS FILE MAY BE PURGED
.*                                WHEN THE INSTALLATION PROCESS IS COMPLETE.
.*
.*                                ONCE PERMANENT FILE "OPL1B" IS CRAEATED, ANY
.*                                RE-RUN OF CML3A WILL DETERMINE THAT THE FILE
.*                                ALREADY EXISTS AND WILL NOT REQUEST THE TAPE
.*                                AGAIN.
.*
.*                                IF PL1B IS AVAILABLE ON DISK, IT MAY BE USED
.*                                IN LIEU OF THE MAGNETIC TAPE.  IT MUST BE A 
.*                                RANDOM ACCESS PROGRAM LIBRARY FILE IN UPDATE
.*                                FORMAT.  THE DISK COPY CAN BE USED BY PASSING 
.*                                THE PERMANENT FILE NAME IN PARAMETER
.*                                "PL1BPFN".  THE DEFAULT PERMANENT FILE IDENT
.*                                FOR THIS FILE IS "INSTALL", WHICH MAY BE
.*                                CHANGED THROUGH USE OF THE PARAMETER "PL1BID".
.*                                IF A PASSWORD IS REQUIRED, IT CAN BE PASSED 
.*                                IN PARAMETER "PL1BPW".  IF THE FILE RESIDES 
.*                                ON A PRIVATE PACK, THE VSN AND SETNAME CAN
.*                                BE PASSED IN PARAMETERS "PL1BPAK" AND 
.*                                "PL1BSET" RESPECTIVELY. 
.*
.* PERMANENT FILE CLEANUP 
.* ---------------------- 
.*
.* THE FOLLOWING PERMANENT FILES MAY BE PURGED AFTER CML INSTALLATION IS
.* COMPLETE.
.*
.*  CMLPL    CMLINST   OPL1B
.*  CML1     CML2      CML3 
.*  CML4     CML5      CML6 
.*
.* LOCAL MODIFICATIONS AND INCORPORATION OF CORRECTIVE CODE 
.* ---------------------------------------------------------
.*
.* LOCAL MODIFICATIONS OR CORRECTIVE CODE CAN BE INCLUDED IN ANY OF 
.* THE ASSEMBLED/COMPILED BINARIES.  THE MODIFICATIONS MUST BE
.* CORRECTION SETS IN UPDATE FORMAT AND EXIST ON
.* PERMANENT FILES ACCORDING TO THE FOLLOWING TABLE.  THE FILES MUST
.* RESIDE UNDER THE PERMANENT FILE IDENT SPECIFIED BY PARAMETER "CEID". 
.*
.*     MODIFICATIONS TO         MUST RESIDE ON
.*     ----------------         --------------
.*
.*      CMLINST                   INSTMDS 
.*      MLD/SBP                   MLDMODS 
.*      MALET                     MALMODS 
.*      HPA                       HPAMODS 
.*      REGEN                     REGMODS 
.*      TIO                       TIOMODS 
.*      SKEDULR                   SKEDMDS 
.*      MLTDOC                    MLTMODS 
.*      MCCOMP                    MCCMODS 
.*      MCDUMP                    MCDMODS 
.*      MTPLOT                    MTPMODS 
.*      DSPLOT                    DSPMODS 
.*      DKDATA                    DKDMODS 
.*      HPTEXT                    HPTMODS 
.*
.*     (MALET DIAGNOSTICS)
.*
.*               ATC              ATCMODS 
.*               BCX              BCXMODS 
.*               CCM              CCMMODS 
.*               CLM              CLMMODS 
.*               CPE              CPEMODS 
.*               CP1              CP1MODS 
.*               CRE              CREMODS 
.*               CR1              CR1MODS 
.*               DFU              DFUMODS 
.*               DM8              DM8MODS 
.*               DTC              DTCMODS 
.*               DTI              DTIMODS 
.*               D44              D44MODS 
.*               D88/DL8          D88MODS 
.*               ELR              ELRMODS 
.*               FEP              FEPMODS 
.*               FFU              FFUMODS 
.*               FLM              FLMMODS 
.*               FHC              FHCMODS 
.*               FMC              FMCMODS 
.*               FMD/FLD          FMDMODS 
.*               FMU              FMUMODS 
.*               FSD              FSDMODS 
.*               FSM              FSMMODS 
.*               FTP              FTPMODS 
.*               F44              F44MODS 
.*               F7X              F7XMODS 
.*               F88              F88MODS 
.*               IST              ISTMODS 
.*               ITU              ITUMODS 
.*               LCI              LCIMODS 
.*               LCM              LCMMODS 
.*               LCN              LCNMODS 
.*               LPE              LPEMODS 
.*               LP1              LP1MODS 
.*               MY8              MY8MODS 
.*               NIP              NIPMODS 
.*               NLM              NLMMODS 
.*               PDP              PDPMODS 
.*               RT3              RT3MODS 
.*               RT5              RT5MODS 
.*               TFE              TFEMODS 
.*               TFF              TFFMODS 
.*               TFL              TFLMODS 
.*               TT3              TT3MODS 
.*               T5X              T5XMODS 
.*               T6X              T6XMODS 
.*               T7X              T7XMODS 
.*
.* PARAMETERS 
.* ---------- 
.*
.* THE PARAMETERS PASSED TO THE PROCEDURES MUST COMFORM TO THE SPECIFIC 
.* FORMATS AS INDICATED BELOW.
.*
.*       FORMAT              APPLIES TO 
.*    -------------      -------------------------------------- 
.*
.*      KEYWORD           ALL HARDWARE CONFIGURATION PARAMETERS 
.*                        SYSEDIT 
*IF,DEF,DEBUG,1 
.*                        EXECUTE 
.*                        HPSORT
.*                        NOTSECURE 
.*                        PAPER85 
.*                        8LPI
.*
.*   KEYWORD=VALUE        CEID
.*                        MALDOC
.*                        PL1BDEN    (OPLDEN)   NOTE- IF PROCEDURE CMLINST IS 
.*                        PL1BID     (OPLUNID)        CALLED, USE THE KEYWORD 
.*                        PL1BPAK    (OPLPAK)         INDICATED IN PARENTHESES
.*                        PL1BPFN    (OPLPFN)         (OPL....).  IF PROCEDURE
.*                        PL1BPW     (OPLPW)          "CML" IS CALLED DIRECTLY
.*                        PL1BSET    (OPLDTSET)       BY THE INSTALLER, USE THE 
.*                        PL1BVSN    (OPLVSN)         APPROPRIATE "PL1B..." 
.*                        SYSVER                      KEYWORD TO PASS THE 
.*                                                    PARAMETERS. 
.*   KEYWORD=$VALUE$      CHARGE
.*                        USER
.*
.*
.* FOLLOWING IS A DESCRIPTION OF THE PARAMETERS USED IN THESE 
.* PROCEDURES.
.*
.* HARDWARE CONFIGURATION PARAMETERS
.* ---------------------------------
.*
.*
.*    PARAMETER         USED IN 
.*      NAME           PROCEDURE            FUNCTION
.*   -----------      -----------     ------------------------------
.*
.*     ESM               CML5         SPECIFIES THAT ESM HARDWARE IS
.*                                    INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTIC 
.*                                    ELR TO BE COMPILED. 
.*
.*     FSCDISK           CML1,CML5    SPECIFIES THAT A FEDERAL STANDARD 
.*                                    CHANNEL DRIVING DISKS IS INCLUDED 
.*                                    IN THE CONFIGURATION.  CAUSES 
.*                                    MALET DIAGNOSTICS F44, F88, FLM,
.*                                    AND FFU TO BE COMPILED. 
.*                                    ALSO, NAD DIAGNOSTICS NDM AND NDP 
.*                                    ARE LOADED FROM THE CML TAPE
.*                                    AND SAVED BY CML1.
.*
.*     FSCTAPE          CML1,CML5     SPECIFIES THAT A FEDERAL STANDARD 
.*                                    CHANNEL DRIVING TAPE DRIVES IS
.*                                    INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTICS F7X, 
.*                                    FLM, AND FSM TO BE COMPILED.
.*                                    ALSO, NAD DIAGNOSTICS NDM AND NDP 
.*                                    ARE LOADED FROM THE CML TAPE
.*                                    AND SAVED BY CML1.
.*
.*     LCN               CML1,CML5    SPECIFIES THAT LCN IS INCLUDED
.*                                    IN THE HARDWARE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTICS LCI, LCN,
.*                                    LCM, AND NLM TO BE COMPILED.
.*                                    ALSO CAUSES CML1 TO LOAD
.*                                    NDM, NDP, AND NDT FROM THE
.*                                    CML TAPE AND SAVE THEM. 
.*
.*     CARTAPE           CML1,CML5    SPECIFIES THAT A CYBER CHANNEL
.*                                    COUPLER AND MASSTOR ARE INCLUDED
.*                                    IN THE CONFIGURATION.  CAUSES 
.*                                    MALET DIAGNOSTICS CCM AND CLM 
.*                                    TO BE COMPILED. ALSO THE NAD
.*                                    DIAGNOSTICS NDM AND NDP ARE 
.*                                    LOADED FROM THE CML TAPE AND
.*                                    SAVED BY CML1.
.*                                    ************ NOTE ************* 
.*                                    THIS DEFINE OF CARTAPE IS USED
.*                                    INSTEAD OF MASSTOR TO STAY
.*                                    CONSISTANT WITH NOS.
.*
.*     UNIBUS            CML5         SPECIFIES THAT A CYBER/UNIBUS 
.*                                    INTERFACE AND DEC PDP11 ARE 
.*                                    INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTIC PDP 
.*                                    TO BE COMPILED. 
.*
.*     405               CML1,CML5    SPECIFIES THAT A 405 CARD READER
.*                                    IS INCLUDED IN THE CONFIGURATION. 
.*                                    CAUSES MALET DIAGNOSTICS CRE AND
.*                                    CR1 TO BE COMPILED.  ALSO CAUSES
.*                                    CML1 TO LOAD AND SAVE CR1SCR FROM 
.*                                    THE CML TAPE. 
.*
.*     415               CML5         SPECIFIES THAT A 415 CARD PUNCH 
.*                                    IS INCLUDED IN THE CONFIGURATION. 
.*                                    CAUSES MALET DIAGNOSTICS CPE AND
.*                                    CP1 TO BE COMPILED. 
.*
.*     512580            CML5         SPECIFIES THAT A 512 OR 580 LINE
.*                                    PRINTER IS INCLUDED IN THE
.*                                    CONFIGURATION. CAUSES MALET 
.*                                    DIAGNOSTICS FTP, LPE AND  LP1 TO
.*                                    BE COMPILED.
.*
.*     65X               CML5         SPECIFIES THAT A 60X OR 65X MAGNETIC
.*                                    TAPE SUBSYSTEM IS INCLUDED IN THE 
.*                                    CONFIGURATION.  CAUSES MALET
.*                                    DIAGNOSTIC T5X TO BE COMPILED.
.*
.*     66X               CML2,CML5    SPECIFIES THAT A 66X MAGNETIC TAPE
.*                       CML1         SUBSYSTEM IS INCLUDED IN THE
.*                                    CONFIGURATION.  CAUSES THE DETAIL 
.*                                    STATUS ANALYSIS TABLES FOR 66X TO BE
.*                                    INCLUDED IN HPA, AND MALET
.*                                    DIAGNOSTICS T6X, BCX, AND MY8 TO
.*                                    BE COMPILED.  ALSO CAUSES BCXBC 
.*                                    AND MY8BC TO BE LOADED FROM THE 
.*                                    CML TAPE AND SAVED BY CML1. 
.*
.*     67X               CML5         SPECIFIES THAT A 67X MAGNETIC TAPE
.*                                    SUBSYSTEM IS INCLUDED IN THE
.*                                    CONFIGURATON.  CAUSES THE DETAIL
.*                                    STATUS ANALYSIS TABLES FOR 67X
.*                                    TO BE INCLUDED IN HPA, AND CAUSES 
.*                                    MALET DIAGNOSTICS T7X AND ATC TO
.*                                    BE COMPILED.
.*
.*     639               CML5         SPECIFIES THAT A 639 MAGNETIC TAPE
.*                                    SUBSYSTEM IS INCLUDED IN THE SYSTEM 
.*                                    CONFIGURATION.  CAUSES MALET UTILITY
.*                                    ITU AND MALET DIAGNOSTIC IST TO BE
.*                                    COMPILED. 
.*
.*     698               CML1,CML5    SPECIFIES THAT AN 698 TAPE AND
.*                                    CYBER CHANNEL COUPLER ARE INCLUDED
.*                                    IN THE CONFIGURATION.  CAUSES 
.*                                    MALET DIAGNOSTICS T7X, CCM, AND 
.*                                    CLM TO BE COMPILED. ALSO THE NAD
.*                                    DIAGNOSTICS NDM AND NDP ARE 
.*                                    LOADED FROM THE CML TAPE AND
.*                                    SAVED BY CML1.
.*
.*     800               CML6         SPECIFIES THAT A CYBER 170-800 SERIES 
.*                                    SYSTEM (EXCEPT 865/875) IS INCLUDED IN
.*                                    THE CONFIGURATION.  CAUSES MICROCODE
.*                                    UTILITIES MCDUMP AND MCCOMP TO BE COMPILED
.*                                    AND RETAINED AS PERMANENT FILES.
.*
.*     83X               CML5         SPECIFIES THAT 834(ISDI) OR 836(ISDII)
.*                                    DISK DRIVES ARE INCLUDED IN THE 
.*                                    CONFIGURATION. CAUSES MALET DIAGNOSTICS 
.*                                    FSD, DTI AND DFU TO BE COMPILED.
.*
.*     844               CML2,CML5    SPECIFIES THAT 844 DISK DRIVES
.*                                    ARE INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES THE DETAIL STATUS ANALYSIS 
.*                                    TABLES FOR 844'S TO BE INCLUDED IN
.*                                    HPA, AND MALET DIAGNOSTIC D44 
.*                                    TO BE COMPILED. 
.*                                    IF 7155 IS ALSO DEFINED, MALET
.*                                    DIAGNOSTIC DTC IS ALSO COMPILED.
.*
.*     885               CML2,CML5    SPECIFIES THAT 885 DISK DRIVES
.*                                    ARE INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES THE DETAIL STATUS ANALYSIS 
.*                                    TABLES FOR 885'S TO BE INCLUDED 
.*                                    IN HPA, AND MALET DIAGNOSTICS 
.*                                    D88, FMC, FMD, AND FMU TO BE
.*                                    COMPILED. 
.*
.*     885LS             CML5         SPECIFIES THAT LARGE SECTOR 885 
.*                                    DISK DRIVES ARE INCLUDED IN THE 
.*                                    CONFIGURATION.  CAUSES MALET
.*                                    DIAGNOSTICS FLD AND DL8 TO BE 
.*                                    COMPILED.  ALSO CAUSES FMC AND
.*                                    FMU TO BE COMPILED IF NOT DONE SO 
.*                                    THROUGH USE OF OTHER HARDWARE 
.*                                    PARAMETERS. 
.*
.*     895               CML1,CML5    SPECIFIES THAT AN 895 DISK AND
.*                                    CYBER CHANNEL COUPLER ARE INCLUDED
.*                                    IN THE CONFIGURATION.  CAUSES 
.*                                    MALET DIAGNOSTICS DFU, DM8, DTI,
.*                                    CCM, AND CLM TO BE COMPILED. ALSO 
.*                                    THE NAD DIAGNOSTICS NDM AND NDP 
.*                                    ARE LOADED FROM THE CML TAPE AND
.*                                    SAVED BY CML1.
.*                                    SAVED BY CML1.
.*
.*     2550              CML1,CML5    SPECIFIES THAT A 2550 COMMUNICATIONS
.*                                    CONTROLLER IS INCLUDED IN THE 
.*                                    CONFIGURATION.  CAUSES MALET
.*                                    DIAGNOSTICS TFF AND TFL TO BE 
.*                                    COMPILED.  ALSO, THE ODS DIAG-
.*                                    NOSTICS WILL BE LOADED FROM THE 
.*                                    CML TAPE AND SAVED BY CML1. 
.*
.*     2550100           CML5         SPECIFIES THAT A 2550-100 
.*                                    COMMUNICATIONS CONTROLLER IS
.*                                    INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTIC TFE TO
.*                                    BE COMPILED.
.*
.*     5X70              CML1,CML5    SPECIFIES THAT A CYBER CHANNEL
.*                                    COUPLER AND 5870 OR 5970 NON- 
.*                                    IMPACT PRINTER ARE INCLUDED IN
.*                                    THE CONFIGURATION. CAUSES MALET 
.*                                    DIAGNOSTICS NIP, CCM AND CLM
.*                                    TO BE COMPILED. ALSO THE NAD
.*                                    DIAGNOSTICS NDM AND NDP ARE 
.*                                    LOADED FROM THE CML TAPE AND
.*                                    SAVED BY CML1.
.*
.*     667X              CML5         SPECIFIES THAT EITHER A 6671, 
.*                                    6673/6674, OR 6676 MULTIPLEXOR
.*                                    IS INCLUDED IN THE CONFIGURATION. 
.*                                    CAUSES MALET DIAGNOSTICS TT3, 
.*                                    RT3, AND RT5 TO BE COMPILED.
.*
.*     7X54              CML1,CML5    SPECIFIES THAT EITHER A 7054, 
.*                                    7154, OR 7152 CONTROLLER IS 
.*                                    INCLUDED IN THE CONFIGURATION.
.*                                    CAUSES MALET DIAGNOSTICS BCX AND
.*                                    MY8 TO BE COMPILED.  ALSO, BCXBC
.*                                    AND MY8BC WILL BE LOADED FROM 
.*                                    THE CML TAPE AND SAVED BY CML1. 
.*
.*     7155              CML5         SPECIFIES THAT A 7155 DISK
.*                                    CONTROLLER IS INCLUDED IN THE 
.*                                    CONFIGURATION.  THIS PARAMETER
.*                                    IS ONLY REQUIRED WHEN 844 DISK
.*                                    DRIVES ARE CONNECTED TO THE 
.*                                    7155 CONTROLLER.  IF BOTH 844 
.*                                    7155 ARE DEFINED, MALET DIAGNOSTIC
.*                                    DTC WILL BE COMPILED, IN ADDITION 
.*                                    TO FMD, FMC, AND FMU. 
.*
.*     7155C             CML5         SPECIFIES THAT A 7155C DISK 
.*                                    CONTROLLER IS INCLUDED IN THE 
.*                                    CONFIGURATION.  THIS PARAMETER
.*                                    IS REQUIRED WHEN A 7155C TYPE 
.*                                    CONTROLLER IS USED. MALET 
.*                                    DIAGNOSTIC FHC WILL BE COMPILED.
.*
.* SOFTWARE/OPERATIONAL ENVIRONMENT PARAMETERS
.* -------------------------------------------
.*
.* KEYWORDS IN PARENTHESES (OPL....) MUST BE USED IF PROCEDURE "CML" IS 
.* CALLED THROUGH USE OF THE PROCEDURE "CMLINST".  IF PROCEDURE "CML" IS
.* CALLED DIRECTLY BY THE INSTALLER, THE "PL1B..." FORM OF THE KEYWORD MUST 
.* BE USED. 
.*
.*    PARAMETER         USED IN 
.*      NAME           PROCEDURE            FUNCTION
.*   -----------      -----------     ------------------------------
.*
.*     CEID            ALL            THE PERMANENT FILE IDENT UNDER WHICH
.*                                    ALL CREATED PERMANENT FILES ARE TO BE 
.*                                    CATALOGED.
.*
.*                                    DEFAULT = CDCCE 
.*
.*     CHARGE         CML1,CML2       SECOND LINE OF ACCOUNTING INFORMATION.
.*                    CML3,CML4       MUST BE PASSED AS A LITERAL 
.*                    CML5,CML5A      (ENCLOSED IN $...$).  PARAMETER 
.*                    CML6            REQUIRED ONLY IF SYSTEM REQUIRES
.*                                    CHARGE NUMBERS.  DEFAULT= 
.*                                    COMMENT.-NO CHARGE NUMBER SUPPLIED- 
.*
.*     EDITLIB        CML2,CML4       KEYWORD SPECIFIED IF A SYSTEM EDITLIB 
.*    (SYSEDIT)       CML5,CML5A      IS TO BE PERFORMED BY CML4. 
.*
.*                                    IF NOT SPECIFIED, CML2 WILL CREATE
.*                                    A PERMANENT FILE COPY OF THE
.*                                    COMPILER FOR USE BY THE JOBS
.*                                    CREATED BY CML5A.  IF THE 
.*                                    KEYWORD IS SPECIFIED, CML5A 
.*                                    WILL USE MALET FROM THE SYSTEM
.*                                    LIBRARY AFTER THE SYSTEM EDITLIB IS 
.*                                    PERFORMED.
.*
*IF,DEF,DEBUG,25
.*     EXECUTE        CML1,CML2,      IF KEYWORD "EXECUTE" IS PASSED, THE 
.*                    CML3,CML4,      INSTALLATION JOBS WILL BE SAVED 
.*                    CML5,CML6       AS PERMANENT FILES, WHICH ARE THEN
.*                                    READY FOR EXECUTION.  IF THE
.*                                    KEYWORD IS NOT PASSED, THE JOBS 
.*                                    ARE NOT MADE PERMANENT. 
.*
.*                      CML5A         IF NOT SPECIFIED, JOB CML5 WILL 
.*                                    EXECUTE AND CREATE MALET
.*                                    DIAGNOSTIC COMPILATION JOBS.
.*                                    THESE CREATED JOBS WILL NOT BE
.*                                    EXECUTED, BUT WILL BE AVAILABLE 
.*                                    FOR PRINTING AND INSPECTION.
.*                                    IF KEYWORD IS SPECIFIED,
.*                                    PROCEDURE CML5A WILL ROUTE THE
.*                                    CREATED JOB TO INPUT. 
.*
.*                                    THIS PARAMETER IS USED ONLY 
.*                                    IN DEVELOPING AND MAINTAINING 
.*                                    THE INSTALLATION PROCEDURES.
.*                                    A DIRECTIVE OF "*DEFINE,DEBUG" IS 
.*                                    REQUIRED DURING THE UPDATE OF 
.*                                    DECK "CMLINST" IN ORDER FOR 
.*                                    THIS PARAMETER TO BE EFFECTIVE. 
.*
.*     HPSORT          CML2           KEYWORD PASSED TO EVOKE THE INTERNAL
.*                                    HPA SORT ROUTINE IN LIEU OF 
.*                                    SORT/MERGE 5. 
.*                                    OMITTED = USE SORT/MERGE 5
.*                                              (RECOMMENDED) 
.*                                    SPECIFIED = USE INTERNAL HPA SORT 
.*                                               (RECOMMENDED ONLY IF 
.*                                               SORT/MERGE 5 IS NOT
.*                                               AVAILABLE.)
.*
.*     MALDOC            CML5,CML5A   TYPE OF HARDCOPY DOCUMENTATION
.*                                    DESIRED FOR COMPILED MALET
.*                                    DIAGNOSTICS.
.*                                    DEFAULT=NONE
.*
.*                                    LEGAL VALUES- 
.*
.*                                    NONE = NO DOCUMENTATION PRODUCED
.*                                           (DEFAULT)
.*                                    EXT  = EXTERNAL DOCUMENTATION 
.*                                           PRODUCED 
.*                                    INT  = INTERNAL DOCUMENTATION 
.*                                           PRODUCED 
.*                                    BOTH = BOTH INTERNAL AND EXTERNAL 
.*                                           DOCUMENTATION PRODUCED 
.*
.*     NOTSECURE        CML3          KEYWORD PASSED TO EVOKE A 
.*                                    "*YANK,SECURE" DIRECTIVE
.*                                    DURING THE UPDATE OF MLD. 
.*                                    THIS ALTERS THE MALET MASS
.*                                    STORAGE ACCESS LEVEL CAPABILITIES.
.*                                    OMITTED = *DEFINE,SECURE
.*                                    (RECOMMENDED) 
.*                                    SPECIFIED=*YANK,SECURE
.*                                    (NOT RECOMMENDED) 
.*
.*     PAPER85           CML2         KEYWORD PASSED TO CAUSE MALET TO
.*                                    BE ASSEMBLED FOR USE WITH 8.5 
.*                                    INCH PRINTER PAPER.  OMITTED= 
.*                                    MALET ASSEMBLED FOR USE WITH
.*                                    STANDARD 11 INCH PRINTER PAPER. 
.*
.*     PL1BDEN          CML3          DENSITY OF THE PL1B MAGNETIC
.*     (OPLDEN)                       TAPE. 
.*
.*                                    LEGAL VALUES- 
.*
.*                                    GE = 9 TRK GCR
.*                                    PE = 9 TRK PHASE
.*                                    HD = 9 TRK NRZI 
.*                                    HY = 7 TRK NRZI (800 BPI) 
.*
.*                                    DEFAULT = PE
.*
.*     PL1BID           CML3          IDENT UNDER WHICH THE PERMANENT FILE
.*    (OPLUNID)                       NAME PASSED IN PL1BPFN RESIDES. 
.*
.*                                    DEFAULT = NONE, REQUIRED PARAMETER IF 
.*                                    "PL1BPFN" IS SPECIFIED. 
.*
.*     PL1BPAK          CML,CML3      REMOVABLE PACK ON WHICH PL1BPFN 
.*     (OPLPAK)                       RESIDES.  THIS KEYWORD IS NOT 
.*                                    REQUIRED IF FILE IS ON A NON- 
.*                                    REMOVABLE DEVICE. 
.*
.*                                    OMITTED = PL1BPFN ON NON-REMOVABLE
.*                                              DEVICE. 
.*
.*     PL1BPFN          CML,CML2      PERMANENT FILE NAME OF PL1B 
.*     (OPLPFN)         CML3          PROGRAM LIBRARY, IF 
.*                                    ONE EXISTS.  IF PASSED, THE 
.*                                    SPECIFIED COPY WILL BE USED,
.*                                    AND PARAMETERS PL1BID, PL1BPAK, 
.*                                    PL1BPW, AND PL1BSET WILL BE USED IF 
.*                                    SPECIFIED.  OTHERWISE, PL1B 
.*                                    WILL BE LOADED FROM TAPE AND
.*                                    SAVED ON PERMANENT FILE 
.*                                    "OPL1B" UNDER THE IDENT SPECIFIED 
.*                                    BY CEID.
.*
.*                                    OMITTED = LOAD PL1B FROM TAPE.
.*
.*      PL1BPW           CML3         PASSWORD USED FOR READ ACCESS TO
.*      (OPLPW)                       PL1BPFN.  THIS KEYWORD IS 
.*                                    REQUIRED ONLY IF A PASSWORD IS USED.
.*
.*                                    OMITTED = PASSWORD NOT REQUIRED TO
.*                                    ACCESS PL1BDEN. 
.*
.*     PL1BSET          CML,CML3      SETNAME ON WHICH PL1BPFN RESIDES. 
.*    (OPLDTSET)                      THIS PARAMETER IS REQUIRED ONLY IF
.*                                    A DEVICE SET MUST BE MOUNTED IN 
.*                                    ORDER TO ACCESS PL1BPFN.
.*
.*                                    OMITTED - PL1BPFN ON DEFAULT SET. 
.*
.*     PL1BVSN          CML3          THE VSN OF THE PL1B MAGNETIC TAPE 
.*     (OPLVSN)                       PROGRAM LIBRARY.  THIS PARAMETER IS 
.*                                    REQUIRED ONLY IF A PERMANENT FILE 
.*                                    NAME IS NOT PASSED IN PL1BPFN.
.*
.*                                    DEFAULT = PL1B
.*
.*     SYSVER            CML2,CML3    SYSTEM VERSION NUMBER.  USED BY 
.*                       CML5,CML6    CML2 AND CML3 IN ASSEMBLY OF MLD, 
.*                                    SBP, AND MALET. USED BY CML6 IN 
.*                                    ASSEMBLY OF SKEDULR.
.*
.*                                    DEFAULT = NONE, REQUIRED PARAMETER
.*
.*                                    LEGAL VALUES- 
.*
.*                                    NOSBE6 = NOSBE 1.5
.*                                    NOSBE5 = NOSBE 1.4
.*                                    NOSBE4 = NOSBE 1.3
.*
.*     USER              CML1,CML2    FIRST LINE OF ACCOUNTING INFORMATION. 
.*                       CML3,CML4    PARAMETER MUST BE PASSED AS A LITERAL 
.*                       CML5,CML5A   (ENCLOSED IN $...$).  PARAMETER 
.*                       CML6         IS REQUIRED ONLY IF ACCOUNTING
.*                                    INFORMATION IS REQUIRED BY THE
.*                                    INSTALLATION. 
.*                                    OMITTED = 
.*                                    COMMENT. - NO USER NUMBER SUPPLIED -
.*
.*     8LPI              CML2         KEYWORD PASSED TO CAUSE MALET TO
.*                                    BE ASSEMBLED TO USE A PRINT DENSITY 
.*                                    OF 8 LINES PER INCH.  OMITTED=
.*                                    MALET ASSEMBLED FOR PRINT DENSITY 
.*                                    OF 6 LINES PER INCH.
.*
.* ---------------- END OF GENERAL DOCUMENTATION ---------------------------- 
.*
.*
.*    STEP 1 - CHECK THE SYSTEM VERSION (SYSVER), MALDOC, AND PL1BDEN 
.*    FOR LEGAL VALUES.  IF ILLEGAL VALUE, ABORT; ELSE GO TO STEP 2.
.*
REWIND,CMLJOBS. 
*IF,DEF,DEBUG,1 
REWIND,MALJOBS. 
IFE,$SYSVER$.EQ.$$,STEP1A.
REVERT,ABORT. - #SYSVER NOT SPECIFIED - 
ENDIF,STEP1A. 
.*
.* INSERT NEW SYSVER CHECKS AFTER THIS COMMENT. 
.*
IFE,$SYSVER$.NE.$NOSBE6$,STEP1B.
IFE,$SYSVER$.NE.$NOSBE5$,STEP1B.
IFE,$SYSVER$.NE.$NOSBE4$,STEP1B.
REVERT,ABORT. - #SYSVER OF SYSVER ILLEGAL - 
ENDIF,STEP1B. 
.*
.*    CHECK PL1BDEN FOR LEGAL VALUES
.*
IFE,$PL1BDEN$.NE.$GE$,STEP1C. 
IFE,$PL1BDEN$.NE.$PE$,STEP1C. 
IFE,$PL1BDEN$.NE.$HD$,STEP1C. 
IFE,$PL1BDEN$.NE.$HY$,STEP1C. 
REVERT,ABORT. - #PL1BDEN (OPLDEN) OF "PL1BDEN" IS ILLEGAL - 
ENDIF,STEP1C. 
.*
.*    IF "PL1BPFN" IS SPECIFIED, ENSURE THAT "PL1BID" IS SPECIFIED.  ALSO,
.*    IF EITHER PL1BPAK OR PL1BSET IS SPECIFIED, ENSURE THAT BOTH 
.*    ARE SPECIFIED.
.*
IFE,$PL1BPFN$.NE.$$,STEP1D. 
IFE,$PL1BID$.EQ.$$,STEP1C0. 
REVERT,ABORT. - #PL1BID (OPLUNID) MUST BE SPECIFIED - 
ENDIF,STEP1C0.
IFE,$PL1BPAK$.EQ.$$,STEP1C1.
IFE,$PL1BSET$.NE.$$,STEP1D. 
SKIP,STEP1C1. 
ELSE,STEP1C1. 
IFE,$PL1BSET$.EQ.$$,STEP1D. 
ENDIF,STEP1C1.
REVERT,ABORT. - BOTH #PL1BPAK (OPLPAK) AND #PL1BSET (OPLDTSET) ARE REQUIRED - 
ENDIF,STEP1D. 
.*
.*    CHECK MALDOC FOR LEGAL VALUES.
.*
IFE,$MALDOC$.NE.$$,STEP2. 
IFE,$MALDOC$.NE.$NONE$,STEP2. 
IFE,$MALDOC$.NE.$EXT$,STEP2.
IFE,$MALDOC$.NE.$INT$,STEP2.
IFE,$MALDOC$.NE.$BOTH$,STEP2. 
REVERT,ABORT. - #MALDOC OF MALDOC IS ILLEGAL -
ENDIF,STEP2.
.*
*IF,DEF,DEBUG,10
.*    STEP 2 - CALL EACH OF THE CML INSTALLATION PROCEDURES (CML1,2,3,4,5,
.*    AND 6) TO GENERATE THE INSTALLATION JOBS.  IF EXECUTE IS DEFINED, SAVE
.*    EACH JOB AS A PERMANENT FILE.  IF EXECUTE IS NOT DEFINED, THE JOBS
.*    WILL REMAIN LOCAL FILES, AND CML5 WILL BE EXECUTED.  THIS WILL
.*    ALLOW THE USER TO CHECK THE FLOW THROUGH CML5 WITH VARIOUS
.*    CONFIGURATION PARAMETER SETS.  UPON COMPLETION, ALL CREATED CML 
.*    INSTALLATION JOBS (CML1,2,3,4,5 AND 6) WILL RESIDE ON LIST FILE 
.*    "CMLJOBS".  ALL GENERATED MALET DIAGNOSTIC COMPILATION JOBS WILL
.*    RESIDE ON FILE "MALJOBS".  THESE FILES CAN BE ROUTED TO THE OUTPUT
.*    QUEUE IF DESIRED. 
*IF,-DEF,DEBUG,5
.*    STEP 2 - CALL PROCEDURES CML1,2,3,4,5 AND 6 TO GENERATE THE 
.*    INSTALLATION JOBS AND SAVE THEM AS PERMANENT
.*    FILES.  UPON COMPLETION, A LIST COPY OF EACH OF THE CREATED 
.*    JOBS WILL RESIDE ON FILE "CMLJOBS", WHICH MAY BE ROUTED TO THE
.*    OUTPUT QUEUE IF DESIRED.
.*
BEGIN,CML1,CMLINST, 
7X54,LCN,2550,66X,
405,FSCTAPE,FSCDISK,
895,CARTAPE,5X70,698, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#CEID=CEID, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$. 
REWIND,CML1.
COPYSBF,CML1,CMLJOBS. 
.*
BEGIN,CML2,CMLINST, 
PAPER85,8LPI,HPSORT,SYSEDIT,
844,885,66X,67X,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#CEID=CEID, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#SYSVER=SYSVER. 
REWIND,CML2.
COPYSBF,CML2,CMLJOBS. 
.*
BEGIN,CML3,CMLINST, 
NOTSECURE,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#CEID=CEID, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#SYSVER=SYSVER, 
#PL1BPFN=PL1BPFN,#PL1BID=PL1BID,#PL1BPW=PL1BPW,#PL1BPAK=PL1BPAK,
#PL1BSET=PL1BSET,#PL1BDEN=PL1BDEN,#PL1BVSN=PL1BVSN. 
REWIND,CML3.
COPYSBF,CML3,CMLJOBS. 
ENDIF,STEP3.
.*
BEGIN,CML4,CMLINST, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#CEID=CEID,SYSEDIT, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$. 
REWIND,CML4.
COPYSBF,CML4,CMLJOBS. 
.*
BEGIN,CML5,CMLINST, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#CEID=CEID,SYSEDIT, 
844,885,885LS,7155,7X54,LCN,2550,667X,2550100,65X,66X,67X,
405,415,512580,FSCTAPE,FSCDISK,ESM,7155C,895,CARTAPE,5X70,UNIBUS, 
639,698,83X,
#SYSVER=SYSVER,#MALDOC=MALDOC,
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$. 
REWIND,CML5.
COPYSBF,CML5,CMLJOBS. 
.*
BEGIN,CML6,CMLINST, 
800,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#CEID=CEID, 
#USER=$_USER_$, 
#SYSVER=$_SYSVER_$, 
#CHARGE=$_CHARGE_$. 
REWIND,CML6.
COPYSBF,CML6,CMLJOBS. 
RETURN,CML1,CML2,CML3,CML4,CML5,CML6. 
REVERT. - CML INSTALL JOBS CREATED -
*WEOR 
.PROC,CML1, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
66X=$$/66X,7X54=$$/7X54,405=$$/405,LCN=$$/LCN,2550=$$/2550, 
FSCTAPE=$$/FSCTAPE,FSCDISK=$$/FSCDISK,895=$$/895,CARTAPE=$$/CARTAPE,
5X70=$$/5X70,698=$$/698,
CEID=,USER=,CHARGE=.
.*
.* PROCEDURE NAME - CML1
.*
.* PURPOSE - CREATE AND INSTALLATION JOB WHICH WILL CREATE A RANDOM CML 
.*           PROGRAM LIBRARY PERMANENT FILE AND, BASED ON THE EQUIPMENT 
.*           CONFIGURATION PASSED, LOAD AND RETAIN AS PERMANENT FILES THE 
.*           NECESSARY SUPPLEMENTAL CML SUPPORT FILES (E.G., ODS DIAGNOSTICS, 
.*           MALET DIAGNOSTIC SCRATCH FILES, ETC.)
.*
.* PARAMETERS USED - CHARGE        66X        895 
.*                   7X54          405        CARTAPE 
.*                   2550          LCN        5X70
.*                   FSCDISK       FSCTAPE    698 
.*                   CEID          USER 
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* PROCEDURE CALLED BY - PROCEDURE CML
.*
.* INSTALLATION JOB INITIATED BY - USER THROUGH THE USE OF THE PROCEDURE
.*                                 "NEXTJOB". 
.*
.* INITIATES - CML2, CML6 
.*
.* PROCEDURES USED - LOAD     BLDJOB
.*                   PURGIT   NEXTJOB 
.*
.* PREREQUISITES - CML INSTALLATION PROCEDURES ON PERMANENT FILE "CMLINST", 
.*                 UNDER THE IDENT SPECIFIED BY PARAMETER "CEID". 
.*
.* METHOD USED - CML1 USES UPDATE TO COPY THE SEQUENTIAL CML PROGRAM LIBRARY
.*               TO A RANDOM DISK PL.  THE SUPPLIED HARDWARE CONFIGURATION
.*               IS THEN USED TO LOAD THE REQUIRED SUPPORT FILES FROM THE 
.*               CML TAPE.
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
BEGIN,BLDJOB,CMLINST,JOB=CML1,#CEID=CEID. 
*IF,DEF,DEBUG,1 
ENDIF,GONOXEQ.
REVERT. - CML1 CREATED -
.*
.* START OF CML1 INSTALLATION JOB 
.*
.DATA,CML1. 
CML1,T7000,IO0,PE1.  - LOAD CML TAPE -
USER
CHARGE
ATTACH,CMLINST,ID=CEID,MR=1.
.*
.*    STEP 1 - PURGE ANY OLD COPIES OF THE CML PROGRAM LIBRARY (CMLPL), 
.*    REQUEST THE NEW CML PROGRAM LIBRARY TAPE, AND CREATE A RANDOM PL ON 
.*    DISK.  AS SOON AS THE RANDOM PL IS COMPLETE, ROUTE INSTALLATION JOBS
.*    CML2 AND CML6 TO INPUT. 
.*
BEGIN,PURGIT,CMLINST,FILE=CMLPL,#CEID=CEID. 
LABEL,TAPE,VSN=CMLVSN,R,D=PE,NORING.
REQUEST,NEWPL,*PF.
SKIPF,TAPE,1,17.  (SKIP TO FILE 2)
UPDATE,A,R=N,P=TAPE.
CATALOG,NEWPL,CMLPL,ID=CEID,RP=30.
RETURN,NEWPL. 
SKIPF,TAPE,1,17.
BEGIN,NEXTJOB,CMLINST,JOB=CML2,#CEID=CEID.
BEGIN,NEXTJOB,CMLINST,JOB=CML6,#CEID=CEID.
.*
.*    IF 7X54 OR 66X IS DEFINED, LOAD MY8BC AND BCXBC; ELSE GO TO STEP 3
.*
IFE,$7X54$.NE.$#7X54$,STEP2A. 
IFE,$66X$.EQ.$#66X$,STEP3.
ENDIF,STEP2A. 
BEGIN,LOAD,CMLINST,TYPE=F,OUTFILE=MY8BC,INFILE=TAPE,#CEID=CEID. 
BEGIN,LOAD,CMLINST,TYPE=F,OUTFILE=BCXBC,INFILE=TAPE,#CEID=CEID. 
ELSE,STEP3. 
SKIPF,TAPE,2,17.
.*
.*    STEP 3 - IF 2550 IS DEFINED, LOAD THE ODS DIAGNOSTICS; ELSE GO TO STEP 4. 
.*
ENDIF,STEP3.
IFE,$2550$.EQ.$#2550$,STEP4.
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=LDCHK3,INFILE=TAPE,#CEID=CEID.
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=MPINS,INFILE=TAPE,#CEID=CEID. 
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=MPMOS,INFILE=TAPE,#CEID=CEID. 
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=MOSMA,INFILE=TAPE,#CEID=CEID. 
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=MPRTC,INFILE=TAPE,#CEID=CEID. 
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=MIMEM,INFILE=TAPE,#CEID=CEID. 
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=MIINS,INFILE=TAPE,#CEID=CEID. 
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=PAGE1,INFILE=TAPE,#CEID=CEID. 
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=CEL042,INFILE=TAPE,#CEID=CEID.
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=MST041,INFILE=TAPE,#CEID=CEID.
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=CPL040,INFILE=TAPE,#CEID=CEID.
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=CPLX40,INFILE=TAPE,#CEID=CEID.
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=TTYA08,INFILE=TAPE,#CEID=CEID.
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=UTOPIA,INFILE=TAPE,#CEID=CEID.
BEGIN,LOAD,CMLINST,TYPE=F,OUTFILE=CCP48K,INFILE=TAPE,#CEID=CEID.
ELSE,STEP4. 
SKIPF,TAPE,1,17.
.*
.*    STEP 4 - IF 405 IS DEFINED, LOAD CR1SCR; ELSE GO TO STEP 5. 
.*
ENDIF,STEP4.
IFE,$405$.EQ.$#405$,STEP5.
BEGIN,LOAD,CMLINST,TYPE=F,OUTFILE=CR1SCR,INFILE=TAPE,#CEID=CEID.
ELSE,STEP5. 
SKIPF,TAPE,1,17.
.*
.*    STEP 5 - IF FSCTAPE, FSCDISK, 895, CARTAPE, 5X70, 698 OR LCN IS 
.*    DEFINED LOAD NDM AND NDP. (ALSO LOAD NDT IF LCN IS DEFINED.); 
.*    ELSE GO TO STEP 6.
.*
ENDIF,STEP5.
IFE,$698$.NE.$#698$,STEP5A. 
IFE,$FSCTAPE$.NE.$#FSCTAPE$,STEP5A. 
IFE,$FSCDISK$.NE.$#FSCDISK$,STEP5A. 
IFE,$895$.NE.$#895$,STEP5A. 
IFE,$CARTAPE$.NE.$#CARTAPE$,STEP5A. 
IFE,$5X70$.NE.$#5X70$,STEP5A. 
IFE,$LCN$.EQ.$#LCN$,STEP6.
ENDIF,STEP5A. 
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=NDM,INFILE=TAPE,#CEID=CEID. 
BEGIN,LOAD,CMLINST,TYPE=R,OUTFILE=NDP,INFILE=TAPE,#CEID=CEID. 
IFE,$LCN$.EQ.$#LCN$,STEP6.
BEGIN,LOAD,CMLINST,TYPE=F,OUTFILE=NDT,INFILE=TAPE,#CEID=CEID. 
ELSE,STEP6. 
SKIPF,TAPE,1,17.
.*
.*    STEP 6 - SKIP FILES 8 AND 9 SINCE THEY ARE APPLICABLE TO
.*    NOS ONLY. 
.*
ENDIF,STEP6.
SKIPF,TAPE,2,17.
.*
.*    STEP 7 HAS BEEN DELETED.
.*
.*
.*    STEP 8 - TERMINATE. 
.*
COMMENT. ***************************
COMMENT. *                         *
COMMENT. * CML TAPE LOAD COMPLETE  *
COMMENT. *                         *
COMMENT. ***************************
*WEOR 
.PROC,CML2, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
844=$*/  844 NOT DEFINED$/$*DEFINE,844$,
885=$*/  885 NOT DEFINED$/$*DEFINE,885$,
66X=$*/  66X NOT DEFINED$/$*DEFINE,66X$,
67X=$*/  67X NOT DEFINED$/$*DEFINE,67X$,
PAPER85=$*/  PAPER85 NOT DEFINED$/$*DEFINE,PAPER85$,
8LPI=$*/  8LPI NOT DEFINED$/$*DEFINE,8LPI$, 
HPSORT=$*/  HPSORT NOT DEFINED$/$*DEFINE,HPSORT$, 
EDITLIB=$$/EDITLIB,USER=,CHARGE=,SYSVER=,CEID=. 
.*
.* PROCEDURE NAME - CML2
.*
.* PURPOSE - CREATE AN INSTALLATION JOB WHICH WILL GENERATE THE BINARIES
.*           OF MALET, HPA, REGEN, AND TIO FOR SUBSEQUENT INCLUSION ON THE
.*           SYSTEM LIBRARY.
.*
.* PARAMETERS USED - USER       SYSVER
.*                   CHARGE     CEID       HPSORT 
.*                              EDIDLIB    844
.*                   PAPER85    8LPI       885
.*                   8LPI       67X        66X
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* PROCEDURE CALLED BY - PROCEDURE CML
.*
.* INSTALLATION JOB INITIATED BY - JOB CML1 OR THE USER THROUGH USE OF THE
.*                                 PROCEDURE "NEXTJOB". 
.*
.* INITIATES - CML3 
.*             CML4 
.*
.* PROCEDURES USED - PURGIT   NEXTJOB 
.*                   BLDJOB 
.*
.* PREREQUISITES - CML INSTALLATION PROCEDURES ON PERMANENT FILE "CMLINST", 
.*                 UNDER THE IDENT SPECIFIED BY PARAMETER "CEID". 
.*
.*                 CML PROGRAM LIBRARY IN RANDOM FORMAT ON PERMANENT FILE 
.*                 "CMLMODS". 
.*
.*                 MODIFICATIONS TO MALET, HPA, REGEN, OR TIO (IF ANY)
.*                 ON PERMANENT FILE "CMLMODS". 
.*
.* METHOD USED - SEE IMBEDDED TEXT. 
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
BEGIN,BLDJOB,CMLINST,JOB=CML2,#CEID=CEID. 
*IF,DEF,DEBUG,1 
ENDIF,GONOXEQ.
REVERT.  - END CML2 - 
.*
.* START OF CML2 INSTALLATION JOB 
.*
.DATA,CML2. 
CML2,T7000,CM120000,IO0.  - ASSEMBLE MALET/HPA/REGEN/TIO -
USER
CHARGE
ATTACH,CMLINST,ID=CEID,MR=1.
.*
.*    STEP 1 - PURGE ANY OLD COPY OF CMLBIN, OBTAIN THE CML PROGRAM 
.*    LIBRARY AND ANY MODIFICATIONS, AND PERFORM THE UPDATE.  IF
.*    MODIFICATIONS ARE TO BE INCORPORATED DURING THE UPDATE, INCLUDE 
.*    THEM IN THE LIST FILE; ELSE LIST ONLY ERRORS. 
.*
BEGIN,PURGIT,CMLINST,FILE=CMLBIN,#CEID=CEID.
ATTACH,OLDPL,CMLPL,ID=CEID,MR=1.
ATTACH,MALMODS,ID=CEID. 
EXIT,U. 
ATTACH,HPAMODS,ID=CEID. 
EXIT,U. 
ATTACH,REGMODS,ID=CEID. 
EXIT,U. 
ATTACH,TIOMODS,ID=CEID. 
EXIT,U. 
IFE,(FILE(MALMODS,PF)).OR.(FILE(HPAMODS,PF)).OR.(FILE(REGMODS,PF)).OR.
(FILE(TIOMODS,PF)),NOMODS.
UPDATE,Q,K. 
RETURN,CMLMODS. 
ELSE,NOMODS.
UPDATE,Q,K,L=1. 
ENDIF,NOMODS. 
RETURN,OLDPL. 
.*
.*    STEP 2 - AN INTERLOCK FILE MUST BE USED TO KEEP 
.*    CML4 FROM ATTEMPTING TO PERFORM A SYSTEM EDITLIB
.*    BEFORE BOTH CML2 AND CML3 ARE FINISHED. 
.*
BEGIN,PURGIT,CMLINST,FILE=ILOCK4,#CEID=CEID.
REQUEST,ILOCK4,*PF. 
COPYBR,INPUT,ILOCK4.
CATALOG,ILOCK4,ID=CEID. 
RETURN,ILOCK4.
ATTACH,ILOCK4,ID=CEID,MR=1. 
.*
.*    STEP 2A - START UP CML3.
.*
BEGIN,NEXTJOB,CMLINST,JOB=CML3,#CEID=CEID.
.*
.*    STEP 3 - PERFORM THE ASSEMBLIES, RUN THE BINARIES THROUGH LOADER, 
.*    THEN PROCEED TO STEP 4. 
.*
COMPASS,A,I,B=REL,S=SCPTEXT,L=0.
IFE,$EDITLIB$.NE.$#EDITLIB$,STEP4.
BEGIN,PURGIT,CMLINST,FILE=MALET,#CEID=CEID. 
REQUEST,MALET,*PF.
LOAD,REL. 
NOGO,MALET. 
CATALOG,MALET,ID=CEID,RP=30.
ENDIF,STEP4.
FTN5,I,B=REL1,PL=999999,L=0,OPT=2,ANSI=0,ET.
FTN5,ANSI=0,I,B=REL2,PL=999999,L=0,S=CPCTEXT,ET,S=IOTEXT,STATIC.
FTN5,ANSI=0,I,B=REL3,PL=999999,L=0,S=CPCTEXT,ET,S=IOTEXT,STATIC.
RETURN,COMPILE. 
REQUEST,LGO,*PF.
LOAD(REL) 
NOGO(LGO) 
LOAD(REL1)
NOGO(LGO) 
LOAD(REL2)
NOGO(LGO) 
LOAD(REL3)
NOGO(LGO) 
CATALOG,LGO,CMLBIN,ID=CEID,RP=30. 
RETURN,LGO,REL,REL1,REL2,REL3.
ATTACH,CMLBIN,ID=CEID.
ITEMIZE,CMLBIN,N. 
RETURN,CMLBIN.
.*
.*    STEP 4 - START UP CML4, THEN TERMINATE. 
.*
BEGIN,NEXTJOB,CMLINST,JOB=CML4,#CEID=CEID.
.EOR
*TEXT 
*IDENT,CMLDEF 
*DEFINE,NOSBE,SYSVER
8LPI
PAPER85 
*TEXT 
*READ,MALMODS 
*ENDTEXT
*COMPILE,MALET.MALET40
*COMPILE,CWEOR4 
HPSORT
66X 
67X 
844 
885 
*TEXT 
*READ,HPAMODS 
*ENDTEXT
*COMPILE,HPA.HPA9 
*COMPILE,CWEOR5 
*TEXT 
*READ,REGMODS 
*ENDTEXT
*TEXT 
*COMPILE,REGEN
*ENDTEXT
*COMPILE,CWEOR6 
*ENDTEXT
*TEXT 
*READ,TIOMODS 
*COMPILE,TIO
*ENDTEXT
.EOR
---  DUMMY RECORD FOR CREATION OF ILOCK4  --- 
.EOR
.EOF
*WEOR 
.PROC,CML3, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
NOTSECURE=$*DEFINE,SECURE$/$*YANK,SECURE$,
USER=,CHARGE=,SYSVER=,CEID=,
PL1BDEN=,PL1BVSN=,
PL1BPFN=,PL1BID=,PL1BPW=,PL1BPAK=,PL1BSET=. 
.*
.* PROCEDURE NAME - CML3
.*
.* PURPOSE - ASSEMBLE THE PP ROUTINES MLD AND SBP.
.*
.* PARAMETERS USED - NOTSECURE     PL1BPFN
.*                   USER          PL1BID 
.*                   CHARGE        PL1BPW 
.*                   SYSVER        PL1BPAK
.*                   PL1BDEN       PL1BVSN
.*                   PL1BSET       CEID 
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* PROCEDURE CALLED BY - PROCEDURE CML
.*
.* INSTALLATION JOB INITIATED BY - CML2 OR BY USER THROUGH
.*                                 USE OF PROCEDURE "NEXTJOB".
.*
.* INITIATES - NO JOBS
.*
.* PROCEDURES USED - PURGIT, BLDJOB 
.*
.* PREREQUISITES - CML INSTALLATION PROCEDURES ON PERMANENT FILE "CMLINST", 
.*                 UNDER THE IDENT SPECIFIED BY PARAMETER "CEID". 
.*
.*                 INTERLOCK FILE ILOCK4 CREATED AND CATALOGED BY CML2. 
.*
.*                 PL1B AVAILABLE AS A PERMANENT FILE.
.*
.*                 CML PROGRAM LIBRARY AVAILABLE ON PERMANENT 
.*                 FILE "CMLPL" UNDER THE IDENT SPECIFIED BY
.*                 "CEID".
.*
.*                 MODIFICATIONS TO MLD/SBP, IF ANY, ON PERMANENT FILE
.*                 "MLDMODS". 
.*
.* METHOD USED - CML3 PRODUCES INSTALLATION JOB CML3 AND SAVES IT AS A
.*               PERMANENT FILE.  THIS JOB FIRST ACCESSES A 
.*               PERMANENT FILE CONTAINING THE PL1B PROGRAM 
.*               LIBRARY.  THIS FILE ALONG WITH THE CML PROGRAM LIBRARY IS
.*               THEN USED BY UPDATE AND COMPASS TO ASSEMBLE THE PP ROUTINES
.*               MLD AND SBP.  ALL MLD PRODUCT OVERLAYS ARE ASSEMBLED,
.*               REGARDLESS OF CONFIGURATION.  LOCAL MODIFICATIONS TO THESE 
.*               ROUTINES MUST RESIDE ON PERMANENT FILE "MLDMODS".  THE 
.*               BINARIES ARE SAVED ON PERMANENT FILE "MLDBIN". 
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
BEGIN,BLDJOB,CMLINST,JOB=CML3,#CEID=CEID. 
*IF,DEF,DEBUG,1 
ENDIF,GONOXEQ.
REVERT. - CML3 CREATED -
.*
.* START OF CML3 INSTALLATION JOB 
.*
.DATA,CML3. 
CML3,CM125000,PL1BDEN_1,T7000,IO0.  - COMPILE MLD/SBP - 
USER
CHARGE
.*
.*    STEP 1 - ATTACH THE CML4 INTERLOCK FILE (ILOCK4) AND THE CMLPL, 
.*    THEN ACCESS (OR CREATE) A PERMANENT FILE COPY OF OPL1B. 
.*
ATTACH,CMLINST,ID=CEID,MR=1.
ATTACH,ILOCK4,ID=CEID,MR=1. 
EXIT,U. 
ATTACH,OLDPL,CMLPL,ID=CEID,MR=1.
.*
.*    STEP 2 HAS BEEN ELIMINATED. 
.*
.*
.*    STEP 3 - GAIN ACCESS TO PL1B PERMANENT FILE 
.*
IFE,$PL1BPFN$.EQ.$$,STEP3A. 
ATTACH,OPL1B,ID=CEID,MR=1.
EXIT,U. 
IFE,FILE(OPL1B,.NOT.PF),STEP4.
REQUEST,NEWPL,*PF.
VSN,OPL1B=PL1B=PL1BVSN. 
LABEL,OPL1B,D=PL1BDEN,R,NORING. 
UPDATE,A,L=1,P=OPL1B. 
CATALOG,NEWPL,OPL1B,ID=CEID,RP=30.
RETURN,OPL1B,NEWPL. 
ATTACH,OPL1B,ID=CEID,MR=1.
SKIP,STEP3C.
ENDIF,STEP3A. 
IFE,$PL1BPAK$.NE.$$,STEP3C. 
MOUNT,VSN=PL1BPAK,SN=PL1BSET. 
IFE,$PL1BPW$.EQ.$$,STEP3B.
ATTACH,OPL1B,PL1BPFN,ID=PL1BID,SN=PL1BSET,MR=1. 
ELSE,STEP3B.
ATTACH,OPL1B,PL1BPFN,ID=PL1BID,SN=PL1BSET,PW=PL1BPW,MR=1. 
ENDIF,STEP3B. 
SKIP,STEP3C.
ELSE,STEP3C.
IFE,$PL1BPW$.EQ.$$,STEP3D.
ATTACH,OPL1B,PL1BPFN,ID=PL1BID,MR=1.
ELSE,STEP3D.
ATTACH,OPL1B,PL1BPFN,ID=PL1BID,PW=PL1BPW,MR=1.
ENDIF,STEP3D. 
ENDIF,STEP3C. 
SKIP,STEP4. 
EXIT,U. 
IFE,FILE(OPL1B,.NOT.PF),STEP4.
COMMENT. - CANNOT FIND PL1B (OPL1B) - 
SKIP,STEP5. 
ENDIF,STEP4.
.*
.*    STEP 4 - GENERATE THE COMPILE FILE.  IF LOCAL MODIFICATIONS 
.*    ARE TO BE INCLUDED DURING THE UPDATE, INCLUDE A LISTING OF
.*    THEM ON OUTPUT; ELSE PRINT ONLY UPDATE ERRORS.
.*
ATTACH,MLDMODS,ID=CEID. 
EXIT,U. 
IFE,FILE(MLDMODS,PF),STEP4A.
UPDATE,Q,K,P=/OPL1B.
RETURN,MLDMODS. 
ELSE,STEP4A.
UPDATE,Q,K,L=1,P=/OPL1B.
ENDIF,STEP4A. 
RETURN,OLDPL. 
.*
.*    STEP 5 - ASSEMBLE MLD/SBP AND SAVE THE BINARIES ON DIRECT ACCESS
.*    PERMANENT FILE MLDBIN, THEN TERMINATE.
.*
BEGIN,PURGIT,CMLINST,FILE=MLDBIN,#CEID=CEID.
REQUEST,LGO,*PF.
RFL,125000. 
COMPASS,A,I,L=0,S=SCPTEXT.
CATALOG,LGO,MLDBIN,ID=CEID,RP=30. 
RETURN,LGO,OPL1B. 
ATTACH,MLDBIN,ID=CEID.
ITEMIZE,MLDBIN,N. 
ENDIF,STEP5.
EXIT. 
.EOR
*TEXT 
*IDENT,MLDDEF 
*TEXT 
*DEFINE,NOSBE,SYSVER
*ENDTEXT
NOTSECURE 
*READ,MLDMODS 
*COMPILE,MLD,SBP
*ENDTEXT
.EOF
*WEOR 
.PROC,CML4, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
EDITLIB=$$/EDITLIB, 
USER=,CHARGE=,CEID=.
.*
.* PROCEDURE NAME - CML4
.*
.* PURPOSE - CREATE AN INSTALLATION JOB WHICH WILL
.*           OPTIONALLY PERFORM A SYSTEM EDITLIB. 
.*
.* PARAMETERS USED - CHARGE       EDITLIB 
.*                   USER         CEID
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* CALLED BY - CML
.*
.* INSTALLATION JOB INITIATED BY - JOB CML2 OR BY USER THROUGH USE OF PROCEDURE 
.*                                 "NEXTJOB". 
.*
.* PREREQUISITES - CML INSTALLATION PROCEDURES ON PERMANENT FILE "CMLINST", 
.*                 UNDER THE IDENT SPECIFIED BY PARAMETER "CEID". 
.*
.*                 INTERLOCK FILE ILOCK4 CREATED AND CATALOGED BY CML2 (IF
.*                 JOB CML3A WAS EXECUTED)
.*
.*                 THE ASSEMBLED CML BINARIES ON PERMANENT FILE "CMLBIN". 
.*
.*                 THE ASSEMBLED MLD/SBP BINARIES ON PERMANENT FILE "MLDBIN". 
.*
.* PROCEDURES USED - PURGIT    NEXTJOB
.*                   BLDJOB 
.*
.* METHOD USED - CML4 PRODUCES INSTALLATION JOB CML4 AND SAVES IT AS
.*               A PERMANENT FILE.  THIS JOB WILL THEN PERFORM A SYSTEM EDITLIB 
.*               IF SPECIFIED.  IF THE EDITLIB IS EVOKED, THE JOB WILL
.*               ROUTE INSTALLATION JOB CML5 TO INPUT UPON COMPLETION 
.*               OF THE EDITLIB.  IF THE EDITLIB IS NOT PERFORMED,
.*               A PERMANENT FILE COPY OF THE MALET COMPILER (CREATED BY
.*               CML2) IS USED BY CML5A TO COMPILE THE MALET DIAGNOSTICS. 
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
BEGIN,BLDJOB,CMLINST,JOB=CML4,#CEID=CEID. 
*IF,DEF,DEBUG,1 
ENDIF,GONOXEQ.
REVERT. - CML4 CREATED -
.*
.* START OF CML4 INSTALLATION JOB 
.*
.DATA,CML4. 
CML4,IO0.  - SYSTEM #EDITLIB -
USER
CHARGE
ATTACH,CMLINST,ID=CEID,MR=1.
.*
.*    STEP 1 - ATTACH THE INTERLOCK FILE (ILOCK4) IN WRITE MODE TO
.*    ENSURE THAT BOTH CML2 AND CML3 ARE FINISHED, THEN PURGE IT. 
.*    (ILOCK4 WILL BE CREATED ONLY IF JOB CML3A WAS EXECUTED.)
.*    ATTACH THE CML/MLD BINARIES GENERATED BY CML2 AND CML3, 
.*    AND PERFORM A SYSTEM EDITLIB IF IT HAS BEEN REQUESTED,
.*    THEN ROUTE INSTALLATION JOB CML5 TO INPUT; ELSE GO TO STEP 1A.
.*
ATTACH,ILOCK4,ID=CEID.
PURGE,ILOCK4. 
RETURN,ILOCK4.
EXIT,U. 
ATTACH,CMLBIN,ID=CEID.
ATTACH,MLDBIN,ID=CEID.
IFE,$EDITLIB$.EQ.$#EDITLIB$,STEP1A. 
PAUSE. SYSTEM EDITLIB PENDING... DROP INTERCOM....
#EDITLIB(SYSTEM,ERROR=3)
ENDIF,STEP1A. 
.*
.*    ROUTE CML5 TO INPUT.
.*
BEGIN,NEXTJOB,CMLINST,JOB=CML5,#CEID=CEID.
.EOR
.*
.*    EDITLIB DIRECTIVES FOR THE SYSTEM EDITLIB OF MLDBIN AND CMLBIN. 
.*
READY(SYSTEM) 
REPLACE(*,MLDBIN) 
LIBRARY(NUCLEUS,OLD)
REPLACE(MALET,CMLBIN,AL=3,FL=25000,FLO=0) 
REPLACE(HPA,CMLBIN,AL=3,FL=65000,FLO=0) 
REPLACE(REGEN,CMLBIN,AL=3,FL=45000,FLO=1) 
REPLACE(TIO,CMLBIN,AL=3,FL=53300,FLO=0) 
FINISH. 
LIBRARY(HPALIB,OLD) 
REPLACE(SETFLDS+GRAPH9,CMLBIN,AL=0,FL=65000,FLO=0)
FINISH. 
LIBRARY(SYSOVL,OLD) 
REPLACE(MALET10+MALET40,CMLBIN,AL=0,FL=25000,FLO=0) 
FINISH. 
COMPLETE. 
ENDRUN. 
.EOR
*WEOR 
.PROC,CML5, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
844=$$/844,885=$$/885,885LS=$$/885LS,7155=$$/7155,7X54=$$/7X54, 
LCN=$$/LCN,MSS=$$/MSS,2550=$$/2550,667X=$$/667X,7155C=$$/7155C, 
2550100=$$/2550100,65X=$$/65X,66X=$$/66X,67X=$$/67X,
405=$$/405,415=$$/415,512580=$$/512580,895=$$/895,
FSCTAPE=$$/FSCTAPE,FSCDISK=$$/FSCDISK,ESM=$$/ESM,CARTAPE=$$/CARTAPE,
5X70=$$/5X70,UNIBUS=$$/UNIBUS,639=$$/639,698=$$/698,83X=$$/83X, 
MALDOC=,SYSVER=,EDITLIB=$$/EDITLIB, 
USER=,CHARGE=,CEID. 
.*
.* PROCEDURE NAME - CML5
.*
.* PURPOSE - ASSEMBLE THE NECESSARY MALET DIAGNOSTICS AND PRODUCE 
.*           DOCUMENTATION TO SUPPORT THE HARDWARE CONFIGURATION. 
.*
.* PARAMETERS USED - CEID       EDITLIB    USER    CHARGE    885LS
.*                   LCN        ESM        FSCDISK FSCTAPE   895
.*                   66X        580        CARTAPE 65X       7155C
.*                   2550       67X        844     885       5X70 
.*                   7155       2550100    667X    7X54      UNIBUS 
.*                   639        698        83X
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* PROCEDURE CALLED BY - PROCEDURE CML
.*
.* INSTALLATION JOB INITIATED BY - JOB CML4 OR BY THE USER THROUGH USE OF THE 
.*                               PROCEDURE "NEXTJOB". 
.*
.* PROCEDURES USED - CML5A, BLDJOB
.*
.* PREREQUISITES - CML INSTALLATION PROCEDURES ON PERMANENT FILE "CMLINST", 
.*                 UNDER THE IDENT SPECIFIED BY PARAMETER "CEID". 
.*
.* METHOD USED - CML5 PRODUCES INSTALLATION JOB CML5 AND SAVES IT AS A
.*               PERMANENT FILE.  THIS JOB USES THE HARDWARE AND SOFTWARE 
.*               CONFIGURATION PASSED TO DETERMINE WHICH MALET DIAGNOSTICS
.*               NEED TO BE COMPILED IN ORDER TO SUPPORT THE CONFIGURATION. 
.*               ONCE IT HAS BEEN DETERMINED THAT A DIAGNOSTIC REQUIRES 
.*               COMPILATION, PROCEDURE CML5A IS CALLED TO GENERATE A JOB 
.*               WHICH WILL PERFORM THE COMPILE AND PRODUCE THE REQUESTED 
.*               HARDCOPY DOCUMENTATION (NONE, INTERNAL, EXTERNAL, OR 
.*               BOTH). 
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
BEGIN,BLDJOB,CMLINST,JOB=CML5,#CEID=CEID. 
*IF,DEF,DEBUG,4 
ELSE,GONOXEQ. 
XEDIT,CML5,B,I=XDIR,L=0,NH. 
BEGIN,CML5X,CML5X.
ENDIF,GONOXEQ.
REVERT. - END CML5 -
*IF,DEF,DEBUG,13
.*
.* XEDIT DIRECTIVES TO ALLOW CML5 TO BE TESTED ON A NOS SYSTEM. 
.*
.DATA,XDIR. 
XD4 
IB
.PROC,CML5X.
E,CML5X 
.EOR
.*
.* END OF XEDIT DIRECTIVES
.*
.*
.* START OF CML5 INSTALLATION JOB 
.*
.DATA,CML5. 
CML5,T7000.     - ASSEMBLE MALET DIAGNOSTICS -
USER
CHARGE
ATTACH,CMLINST,ID=CEID,MR=1.
.*
.*    STEP 1 - IF 2550100 IS DEFINED, COMPILE TFE; ELSE GO TO STEP 2. 
.*
IFE,$2550100$.EQ.$#2550100$,STEP2.
BEGIN,CML5A,CMLINST,TEST=TFE, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=TFE,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 2 - IF 2550 IS DEFINED, COMPILE TFF AND TFL; ELSE GO TO STEP 3.
.*
ENDIF,STEP2.
IFE,$2550$.EQ.$#2550$,STEP3.
BEGIN,CML5A,CMLINST,TEST=TFF, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=TFF,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=TFL, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=TFL,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 3 - IF 667X IS DEFINED, COMPILE RT3, RT5, AND TT3; ELSE GO 
.*             TO STEP 4. 
.*
ENDIF,STEP3.
IFE,$667X$.EQ.$#667X$,STEP4.
BEGIN,CML5A,CMLINST,TEST=RT3, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=RT3,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=RT5, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=RT5,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=TT3, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=TT3,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 4 - IF 405 IS DEFINED, COMPILE CR1 AND CRE; ELSE GO TO STEP 5. 
.*
ENDIF,STEP4.
IFE,$405$.EQ.$#405$,STEP5.
BEGIN,CML5A,CMLINST,TEST=CR1, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CR1,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=CRE, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CRE,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 5 - IF 415 IS DEFINED, COMPILE CP1 AND CPE; ELSE GO TO STEP 6. 
.*
ENDIF,STEP5.
IFE,$415$.EQ.$#415$,STEP6.
BEGIN,CML5A,CMLINST,TEST=CP1, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CP1,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=CPE, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CPE,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 6 - IF 512580 IS DEFINED, COMPILE FTP, LP1 AND LPE; ELSE GO
.*             TO STEP 8. 
.*
ENDIF,STEP6.
IFE,$512580$.EQ.$#512580$,STEP8.
BEGIN,CML5A,CMLINST,TEST=FTP, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FTP,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=LP1, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=LP1,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=LPE, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=LPE,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 8 - IF 65X IS DEFINED, COMPILE T5X; ELSE GO TO STEP 9. 
.*
ENDIF,STEP8.
IFE,$65X$.EQ.$#65X$,STEP9.
BEGIN,CML5A,CMLINST,TEST=T5X, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=T5X,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 9 - IF 66X IS DEFINED, COMPILE T7X; ELSE GO TO STEP 10.
.*
ENDIF,STEP9.
IFE,$66X$.EQ.$#66X$,STEP10. 
BEGIN,CML5A,CMLINST,TEST=T6X, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=T6X,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 10 - IF 67X OR 698 IS DEFINED, COMPILE T7X IF 67X COMPILE ATC; 
.*    ELSE GO TO STEP 11. 
.*
ENDIF,STEP10. 
IFE,$67X$.NE.$#67X$,STEP10A.
IFE,$698$.EQ.$#698$,STEP11. 
ENDIF,STEP10A.
BEGIN,CML5A,CMLINST,TEST=T7X, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=T7X,#EDITLIB=EDITLIB,#CEID=CEID.
IFE,$67X$.EQ.$#67X$,STEP11. 
BEGIN,CML5A,CMLINST,TEST=ATC, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=ATC,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 11 - IF 844 IS DEFINED, COMPILE D44; ELSE GO TO STEP 12. 
.*
ENDIF,STEP11. 
IFE,$844$.EQ.$#844$,STEP12. 
BEGIN,CML5A,CMLINST,TEST=D44, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=D44,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 12 - IF 66X OR 7X54 IS DEFINED, COMPILE BCX AND MY8; ELSE GO TO
.*    STEP 13.
.*
ENDIF,STEP12. 
IFE,$7X54$.NE.$#7X54$,STEP12A.
IFE,$66X$.EQ.$#66X$,STEP13. 
ENDIF,STEP12A.
BEGIN,CML5A,CMLINST,TEST=BCX, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=BCX,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=MY8, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=MY8,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 13 - IF 885 IS DEFINED, COMPILE D88, FMC, FMD, AND FMU; ELSE GO
.*    TO STEP 14. 
.*
ENDIF,STEP13. 
IFE,$885$.EQ.$#885$,STEP14. 
BEGIN,CML5A,CMLINST,TEST=D88, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=D88,DEFINE=SFMD,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=FMC, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMC,DEFINE=SFMD,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=FMD, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMD,DEFINE=SFMD,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=FMU, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMU,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 14 - IF 885 IS NOT DEFINED AND 7155 IS DEFINED, COMPILE FMD, FMC,
.*    FMU, AND DTC; ELSE TO TO STEP 15. 
.*
ENDIF,STEP14. 
IFE,$885$.NE.$#885$,STEP15. 
IFE,$7155$.EQ.$#7155$,STEP15. 
BEGIN,CML5A,CMLINST,TEST=FMD, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMD,DEFINE=SFMD,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=FMC, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMC,DEFINE=SFMD,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=FMU, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMU,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 15 - IF 844 AND 7155 ARE DEFINED, COMPILE DTC; ELSE GO TO STEP 16. 
.*    (844 AND 7155 DEFINED IMPLIES THAT 844'S ARE CONNECTED TO THE 7155'S.)
.*
ENDIF,STEP15. 
IFE,$844$.EQ.$#844$,STEP15A.
IFE,$7155$.EQ.$#7155$,STEP15A.
BEGIN,CML5A,CMLINST,TEST=DTC, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=DTC,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 15A - IF 7155C IS DEFINED, COMPILE FHC; ELSE GO TO STEP 16.
.*
ENDIF,STEP15A.
IFE,$7155C$.EQ.$#7155C$,STEP16. 
BEGIN,CML5A,CMLINST,TEST=FHC, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FHC,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 16 - IF FSCTAPE IS DEFINED; COMPILE F7X, ELSE GO TO STEP 17. 
.*
ENDIF,STEP16. 
IFE,$FSCTAPE$.EQ.$#FSCTAPE$,STEP17. 
BEGIN,CML5A,CMLINST,TEST=F7X, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=F7X,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 17 - IF FSCDISK IS DEFINED, COMPILE F44, F88, AND FFU; ELSE GO 
.*    TO STEP 18. 
.*
ENDIF,STEP17. 
IFE,$FSCDISK$.EQ.$#FSCDISK$,STEP18. 
BEGIN,CML5A,CMLINST,TEST=F44, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=F44,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=F88, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=F88,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=FFU, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FFU,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 18 - IF FSCTAPE OR FSCDISK IS DEFINED, COMPILE FLM AND FSM;
.*    ELSE GO TO STEP 19. 
.*
ENDIF,STEP18. 
IFE,$FSCTAPE$.NE.$#FSCTAPE$,STEP18A.
IFE,$FSCDISK$.EQ.$#FSCDISK$,STEP19. 
ENDIF,STEP18A.
BEGIN,CML5A,CMLINST,TEST=FLM, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FLM,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=FSM, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FSM,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 19 - IF LCN IS DEFINED, COMPILE LCI, LCN, LCM, AND NLM; ELSE 
.*    GO TO STEP 20.
.*
ENDIF,STEP19. 
IFE,$LCN$.EQ.$#LCN$,STEP20. 
BEGIN,CML5A,CMLINST,TEST=LCI, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=LCI,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=LCN, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=LCN,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=LCM, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=LCM,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=NLM, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=NLM,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 20 - IF ESM IS DEFINED COMPILE ELR; ELSE GO TO STEP 21.
.*
ENDIF,STEP20. 
IFE,$ESM$.EQ.$#ESM$,STEP21. 
BEGIN,CML5A,CMLINST,TEST=ELR, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=ELR,#EDITLIB=EDITLIB,#CEID=CEID.
.*
.*    STEP 21 - IF 885LS IS DEFINED, COMPILE DL8 AND FLD. 
.*    ALSO COMPILE FMU AND FMC IF NOT DONE SO BY A PREVIOUS 
.*    STEP. 
.*
ENDIF,STEP21. 
IFE,$885LS$.EQ.$#885LS$,STEP22. 
BEGIN,CML5A,CMLINST,TEST=DL8,DEFINE=LSFMD,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=D88,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=FLD,DEFINE=LSFMD,
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMD,#EDITLIB=EDITLIB,#CEID=CEID.
IFE,$7155$.NE.$#7155$,STEP22. 
IFE,$885$.NE.$#885$,STEP22. 
BEGIN,CML5A,CMLINST,TEST=FMC,DEFINE=SFMD, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMC,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=FMU, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FMU,#EDITLIB=EDITLIB,#CEID=CEID.
ENDIF,STEP22. 
.*
.*
.*    STEP 22 - IF 895, 5X70 698 OR CARTAPE IS DEFINED, COMPILE CCM AND 
.*    CLM; ELSE GO TO STEP 23.
.*
IFE,$698$.NE.$#698$,STEP22A.
IFE,$895$.NE.$#895$,STEP22A.
IFE,$5X70$.NE.$#5X70$,STEP22A.
IFE,$CARTAPE$.EQ.$#CARTAPE$,STEP23. 
ENDIF,STEP22A.
BEGIN,CML5A,CMLINST,TEST=CCM, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CCM,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=CLM, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=CLM,#EDITLIB=EDITLIB,#CEID=CEID.
ENDIF,STEP23. 
.*
.*    STEP 23 - IF 895 OR 83X IS DEFINED, COMPILE DFU AND DTI.
.*
IFE,$83X$.NE.$#83X$,STEP23A.
IFE,$895$.EQ.$#895$,STEP24. 
ENDIF,STEP23A.
BEGIN,CML5A,CMLINST,TEST=DFU, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=DFU,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=DTI, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=DTI,#EDITLIB=EDITLIB,#CEID=CEID.
ENDIF,STEP24. 
.*
.*    STEP 24 - IF 5X70 IS DEFINED, COMPILE NIP.
.*
IFE,$5X70$.EQ.$#5X70$,STEP25. 
BEGIN,CML5A,CMLINST,TEST=NIP, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=NIP,#EDITLIB=EDITLIB,#CEID=CEID.
ENDIF,STEP25. 
.*
.*    STEP 25 - IF UNIBUS IS DEFINED, COMPILE PDP.
.*
IFE,$UNIBUS$.EQ.$#UNIBUS$,STEP26. 
BEGIN,CML5A,CMLINST,TEST=PDP, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=PDP,#EDITLIB=EDITLIB,#CEID=CEID.
ENDIF,STEP26. 
.*
.*    STEP 26 - IF 639 IS DEFINED, COMPILE IST AND ITU. 
.*
IFE,$639$.EQ.$#639$,STEP27. 
BEGIN,CML5A,CMLINST,TEST=IST, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=IST,#EDITLIB=EDITLIB,#CEID=CEID.
BEGIN,CML5A,CMLINST,TEST=ITU, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=ITU,#EDITLIB=EDITLIB,#CEID=CEID.
ENDIF,STEP27. 
.*
.*    STEP 27 - IF 83X IS DEFINED, COMPILE FSD. 
.*
IFE,$83X$.EQ.$#83X$,STEP28. 
BEGIN,CML5A,CMLINST,TEST=FSD, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=FSD,#EDITLIB=EDITLIB,#CEID=CEID.
ENDIF,STEP28. 
.*
.*    STEP 28 - IF 895 IS DEFINED, COMPILE DM8. 
.*
IFE,$895$.EQ.$#895$,STEP29. 
BEGIN,CML5A,CMLINST,TEST=DM8, 
*IF,DEF,DEBUG,1 
#EXECUTE=EXECUTE, 
#USER=$_USER_$, 
#CHARGE=$_CHARGE_$, 
#MALDOC=MALDOC,DECK=DM8,#EDITLIB=EDITLIB,#CEID=CEID.
ENDIF,STEP29. 
.*    TERMINATE (ADD NEW TESTS BEFORE THIS COMMENT) 
.*
*WEOR 
.PROC,CML5A,
MALDOC=NONE,DEFINE=NULL,EDITLIB=,TEST=,DECK=, 
*IF,DEF,DEBUG,1 
EXECUTE=, 
USER=,CHARGE=,CEID=.
.*
.* PROCEDURE NAME - CML5A 
.*
.* PURPOSE - CREATE A JOB WHICH WILL COMPILE ONE MALET DIAGNOSTIC AND 
.*           GENERATE THE APPROPRIATE HARDCOPY DOCUMENTATION. 
.*
.* PARAMETERS USED - USER     CHARGE
.*                   EDITLIB
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* LOCAL PARAMETERS USED (NOT SUPPLIED BY USER) 
.*
.*            DEFINE - THE UPDATE DEFINE REQUIRED TO COPY THE 
.*                     CORRECT SOURCE CODE FOR THE SPECIFIED
.*                     TEST TO THE COMPILE FILE.
.*
.*            TEST   - THE NAME OF THE TEST TO BE COMPILED. 
.*
.*            DECK   - THE UPDATE DECKNAME FROM WHICH THE 
.*                     SOURCE CODE IS PULLED FOR THE TEST.
.*
.* PROCEDURE CALLED BY - PROCEDURE CML5 
.*
.* INSTALLATION JOB INITIATED BY - PROCEDURE CML5A
.*
.* PROCEDURES USED - PURGIT, NEXTJOB
.*
.* PREREQUISITES - CML INSTALLATION PROCEDURES ON PERMANENT FILE "CMLINST", 
.*                 UNDER THE IDENT SPECIFIED BY PARAMETER "CEID". 
.*
.*                 LOCAL MODS, IF ANY, MUST BE ON 
.*                 PERMANENT FILE DECK_MODS; WHERE _DECK_ IS A 3-CHARACTER
.*                 MALET DIAGNOSTIC DECKNAME (NOT THE TEST NAME). 
.*
.*                 CML PROGRAM LIBRARY ON PERMANENT FILE CMLPL. 
.*
.*                 MALET COMPILER (THE VERSION ASSEMBLED BY CML2) EITHER
.*                 ON THE SYSTEM LIBRARY (IF SYSTEM EDITLIB WAS PERFORMED) OR 
.*                 ON PERMANENT FILE "MALET" (IF SYSTEM EDITLIB WAS NOT 
.*                 PERFORMED. 
.*
.*                 MLTDOC ON PERMANENT FILE "MLTDOC"
.*                 IF HARDCOPY DOCUMENTATION IS REQUESTD. 
.*
.* METHOD USED - SEE IMBEDDED TEXT. 
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
.*
.*    SAVE THE GENERATED JOB IN CASE ERRORS RESULT AND THE JOB
.*    MUST BE RERUN.
.*
BEGIN,PURGIT,CMLINST,FILE=GEN_TEST,#CEID=CEID.
REQUEST,GEN_TEST,*PF. 
REWIND,TEST.
COPY,TEST,GEN_TEST. 
CATALOG,GEN_TEST,ID=CEID,RP=30. 
RETURN,GEN_TEST,DECK_MODS.
ENDIF,NOMODS. 
BEGIN,NEXTJOB,CMLINST,JOB=GEN_TEST,#CEID=CEID.
*IF,DEF,DEBUG,4 
ELSE,GONOXEQ. 
REWIND,TEST.
COPYSBF,TEST,MALJOBS. 
RETURN,TEST.
ENDIF,GONOXEQ.
REVERT. - TEST COMPILE SUBMITTED -
.*
.* START OF CML5A INSTALLATION JOB
.*
.DATA,TEST. 
CML_TEST,T7000,IO0.   - TEST COMPILE -
USER
CHARGE
.*
.*
.*    STEP 1 - OBTAIN ACCESS TO THE CML PROGRAM LIBRARY AND ANY DIAGNOSTIC
.*    MODIFICATONS, THEN PERFORM THE UPDATE.
.*
ATTACH,OLDPL,CMLPL,ID=CEID,MR=1.
ATTACH,DECK_MODS,ID=CEID. 
EXIT,U. 
IFE,FILE(DECK_MODS,PF),NOMODS.
UPDATE,Q. 
RETURN,DECK_MODS. 
ELSE,NOMODS.
UPDATE,Q,L=1. 
ENDIF,NOMODS. 
RETURN,OLDPL. 
PURGE,X,TEST,ID=CEID,PW=1.
RETURN,X. 
EXIT,U. 
.*
.*    STEP 2 -
.*    IF EDITLIB WAS NOT PERFORMED, ATTACH THE PERMANENT FILE COPY OF MALET 
.*    CREATED BY CML4; ELSE USE THE VERSION ON THE SYSTEM LIBRARY.  THEN
.*    COMPILE THE DIAGNOSTIC. 
.*
IFE,$EDITLIB$.NE.$#EDITLIB$,STEP2A. 
ATTACH,MALET,ID=CEID,MR=1.
ENDIF,STEP2A. 
REQUEST,TEST,*PF. 
MALET,I=COMPILE,L=TRASH,R=TEST. 
.*
.*    STEP 3 - CATALOG THE TEST, THEN CHECK TO SEE IF HARDCOPY
.*    DOCUMENTATION IS DESIRED. 
.*
CATALOG,TEST,ID=CEID,RP=999.
RETURN,TEST,TRASH.
.*
.*    IF HARDCOPY DOCUMENTATION IS REQUESTED, ATTACH MLTDOCAND EXECUTE
.*    IT; ELSE GO TO STEP 5.
.*
IFE,$MALDOC$.NE.$NONE$,STEP5. 
ATTACH,MLTDOC,ID=CEID,MR=1. 
ENDIF,STEP3A. 
REWIND,COMPILE. 
MLTDOC,COMPILE,EXT,INT. 
RETURN,MLTDOC.
.*
.*    STEP 4 - DETERMINE WHAT TYPE OF DOCUMENTATION IS REQUESTED AND COPY 
.*    IT TO OUTPUT. 
.*
IFE,$MALDOC$.NE.$BOTH$,STEP4A.
IFE,$MALDOC$.EQ.$EXT$,STEP4B. 
ENDIF,STEP4A. 
REWIND,EXT. 
COPY,EXT,OUTPUT.
ENDIF,STEP4B. 
IFE,$MALDOC$.NE.$EXT$,STEP5.
REWIND,INT. 
COPY,INT,OUTPUT.
.*
.*    STEP 5 - TERMINATE. 
.*
ENDIF,STEP5.
PURGE,GEN_TEST,ID=CEID. 
.EOR
*TEXT 
*READ,DECK_MODS 
*IDENT,TEST_DEF 
*#DEFINE,DEFINE 
*COMPILE,DECK 
*ENDTEXT
.EOF
*WEOR 
.PROC,CML6, 
800=$$/800, 
*IF,DEF,DEBUG,1 
EXECUTE=NOXEQ/XEQ,
SYSVER=,
USER=,CHARGE=,CEID=.
.*
.* PROCEDURE NAME - CML6
.*
.* PURPOSE - CREATE AN INSTALLATION JOB WHICH WILL ASSEMBLE SKEDULR AND 
.*          COMPILE MLTDOC, MCCOMP, MCDUMP, MTPLOT, HPTEXT, DSPLOT, AND DKDATA. 
.*
.* PARAMETERS USED - USER      CHARGE      SYSVER 
.*                   CEID      800
*IF,DEF,DEBUG,1 
.*                   EXECUTE
.*
.* PROCEDURE CALLED BY - PROCEDURE CML
.*
.* INSTALLATION JOB INITIATED BY - JOB CML1 
.*
.* PROCEDURES USED - PURGIT, BLDJOB 
.*
.* PREREQUISITES - CML INSTALLATION PROCEDURES ON PERMANENT FILE "CMLINST", 
.*                 UNDER THE IDENT SPECIFIED BY PARAMETER "CEID". 
.*
.*                 MODS TO MLTDOC, IF ANY, ON PERMANENT FILE "MLTDOC".
.*
.*                 SKEDULR MODS, IF ANY, ON PERMANENT FILE SKEDMDS. 
.*
.*                 MCCOMP MODS, IF ANY, ON PERMANENT FILE MCCMODS.
.*
.*                 MCDUMP MODS, IF ANY, ON PERMANENT FILE MCDMODS.
.*
.*                 MTPLOT MODS, IF ANY, ON PERMANENT FILE MTPMODS.
.*
.*                 DSPLOT MODS, IF ANY, ON PERMANENT FILE DSPMODS.
.*
.*                 DKDATA MODS, IF ANY, ON PERMANENT FILE DKDMODS.
.*
.*                 HPTEXT MODS, IF ANY, ON PERMANENT FILE HPTMODS.
.*
.*                 CML PROGRAM LIBRARY ON PERMANENT FILE CMLPL. 
.*
.* METHOD USED - SEE IMBEDDED TEXT. 
.*
*IF,DEF,DEBUG,1 
IFE,$EXECUTE$.EQ.$XEQ$,GONOXEQ. 
BEGIN,BLDJOB,CMLINST,JOB=CML6,#CEID=CEID. 
*IF,DEF,DEBUG,1 
ENDIF,GONOXEQ.
REVERT. - END CML6 -
.*
.* START OF CML6 INSTALLATION JOB 
.*
.DATA,CML6. 
CML6,T7000,IO0. - MLTDOC/SKEDULR/MCCOMP/MCDUMP/MTPLOT/HPTEXT/DSPLOT/DKDATA -
USER
CHARGE
.*
.*    STEP 1 - ACCESS THE CML PROGRAM LIBRARY, OBTAIN ANY MODIFICATIONS TO
.*    MLTDOC AND/OR SKEDULR, AND PERFORM THE UPDATE.  IF ANY LOCAL MODS ARE 
.*    INCORPORATED, INCLUDE THEM IN THE UPDATE LIST FILE; ELSE LIST ONLY
.*    ERRORS. 
.*
ATTACH,CMLINST,ID=CEID,MR=1.
ATTACH,OLDPL,CMLPL,ID=CEID,MR=1.
ATTACH,MLTMODS,ID=CEID. 
EXIT,U. 
ATTACH,SKEDMDS,ID=CEID. 
EXIT,U. 
ATTACH,MTPMODS,ID=CEID. 
EXIT,U. 
ATTACH,DSPMODS,ID=CEID. 
EXIT,U. 
ATTACH,DKDMODS,ID=CEID. 
EXIT,U. 
ATTACH,HPTMODS,ID=CEID. 
EXIT,U. 
IFE,$800$.EQ.$#800$,STEP1A1.
ATTACH,MCCMODS,ID=CEID. 
EXIT,U. 
ATTACH,MCDMODS,ID=CEID. 
EXIT,U. 
ENDIF,STEP1A1.
IFE,FILE(MLTMODS,.NOT.PF),STEP1A. 
IFE,$800$.EQ.$#800$,STEP1A2.
IFE,FILE(MCCMODS,.NOT.PF),STEP1A. 
IFE,FILE(MCDMODS,.NOT.AS),STEP1A. 
ENDIF,STEP1A2.
IFE,FILE(MTPMODS,.NOT.AS),STEP1A. 
IFE,FILE(DSPMODS,.NOT.AS),STEP1A. 
IFE,FILE(DKDMODS,.NOT.AS),STEP1A. 
IFE,FILE(HPTMODS,.NOT.AS),STEP1A. 
IFE,FILE(SKEDMDS,PF),STEP1B.
ENDIF,STEP1A. 
UPDATE,Q,K,D,8. 
RETURN,MLTMODS,SKEDMDS,MCCMODS,MCDMODS,MTPMODS,HPTMODS,DSPMODS,DKDMODS. 
ELSE,STEP1B.
UPDATE,Q,K,D,8,L=1. 
ENDIF,STEP1B. 
RETURN,OLDPL. 
.*
.*    STEP 2 - COMPILE MLTDOC AND RUN IT THROUGH LOADER.  THEN SAVE 
.*    THE ABSOLUTE BINARY AS A PERMANENT FILE.
.*
FTN5,ANSI=0,I,PL=999999,L=0,ET.   - COMPILE MLTDOC -
BEGIN,PURGIT,CMLINST,FILE=MLTDOC,#CEID=CEID.
REQUEST,MLTDOC,*PF. 
MAP(OFF)
LOAD(LGO) 
NOGO(MLTDOC)
CATALOG,MLTDOC,ID=CEID,RP=999.
RETURN,MLTDOC,LGO.
.*
.*    STEP 3 - ASSEMBLE SKEDULR, RUN IT THROUGH LOADER, AND SAVE THE
.*    BINARY AS A PERMANENT FILE. 
.*
RFL,100000. 
COMPASS,I,S=SCPTEXT,S=PFMTEXT,S=IPTEXT,L=0,A.  - ASSEMBLE SKEDULR - 
BEGIN,PURGIT,CMLINST,FILE=SKEDULR,#CEID=CEID. 
REQUEST,SKEDULR,*PF.
MAP(OFF)
LOAD(LGO) 
NOGO(SKEDULR) 
CATALOG,SKEDULR,ID=CEID,RP=999. 
RETURN,SKEDULR,LGO. 
.*
.*    STEP 4 - IF 800 IS DEFINED, COMPILE MCCOMP AND MCDUMP, RUN THEM 
.*    THROUGH LOADER, AND RETAIN THEM AS PERMANENT FILES. 
.*
IFE,$800$.EQ.$#800$,STEP4.
BEGIN,PURGIT,CMLINST,FILE=MCCOMP,#CEID=CEID.
REQUEST,MCCOMP,*PF. 
FTN5,ANSI=0,I,PL=999999,L=0,OPT=2,ET,B=MCCOMP.
CATALOG,MCCOMP,ID=CEID,RP=999.
RETURN,LGO,MCCOMP.
BEGIN,PURGIT,CMLINST,FILE=MCDUMP,#CEID=CEID.
REQUEST,MCDUMP,*PF. 
FTN5,ANSI=0,I,PL=999999,L=0,OPT=2,ET,B=MCDUMP.
CATALOG,MCDUMP,ID=CEID,RP=999.
RETURN,LGO,MCDUMP.
ELSE,STEP4. 
SKIPF,COMPILE,2.
ENDIF,STEP4.
.*
.*    STEP 5 - COMPILE MTPLOT.
.*
BEGIN,PURGIT,CMLINST,FILE=MTPLOT,#CEID=CEID.
REQUEST,MTPLOT,*PF. 
FTN5,ANSI=0,I,L=0,OPT=2,ET,B=MTPLOT.  - COMPILE MTPLOT -
CATALOG,MTPLOT,ID=CEID,RP=999.
RETURN,LGO,MTPLOT.
.*
.*    STEP 6 - COMPILE HPTEXT, DSPLOT AND DKDATA. 
.*
COMPASS,A,I,B=BIN,L=0.
BEGIN,PURGIT,CMLINST,FILE=DSPLOT,#CEID=CEID.
REQUEST,DSPLOT,*PF. 
FTN5,ANSI=0,I,L=0,OPT=2,ET,B=DSPLOT,G=BIN.  - COMPILE DSPLOT -
CATALOG,DSPLOT,ID=CEID,RP=999.
RETURN,LGO,DSPLOT.
BEGIN,PURGIT,CMLINST,FILE=DKDATA,#CEID=CEID.
REQUEST,DKDATA,*PF. 
COPY,COMPILE,DKDATA.
CATALOG,DKDATA,ID=CEID,RP=999.
RETURN,DKDATA.
.EOR
*TEXT 
*IDENT,CML6DEF
*TEXT 
*READ,MLTMODS 
*ENDTEXT
*COMPILE,MLTDOC 
*TEXT 
*COMPILE,CWEOR1 
*ENDTEXT
*TEXT 
*DEFINE,NOSBE,SYSVER
*ENDTEXT
*INSERT,SKEDULR.6 
 PFILEID  MICRO  1,,*CEID*
*TEXT 
*READ,SKEDMDS 
*ENDTEXT
*COMPILE,SKEDULR
*ENDTEXT
*TEXT 
*COMPILE,CWEOR2 
*READ,MCCMODS 
*COMPILE,MCCOMP 
*COMPILE,CWEOR3 
*READ,MCDMODS 
*COMPILE,MCDUMP 
*COMPILE,CWEOR4 
*READ,MTPMODS 
*COMPILE,MTPLOT 
*COMPILE,CWEOR5 
*READ,HPTMODS 
*COMPILE,HPTEXT 
*COMPILE,CWEOR6 
*READ,DSPMODS 
*COMPILE,DSPLOT 
*COMPILE,CWEOR7 
*READ,DKDMODS 
*COMPILE,DKDATA 
*ENDTEXT
.EOR
*WEOR 
.PROC,LOAD,INFILE=,OUTFILE=,TYPE=,CEID=.
.*
.* PROCEDURE NAME - LOAD
.*
.* PURPOSE - LOAD A FILE OR RECORD FROM AN INPUT FILE AND SAVE IT AS
.*           A PERMANENT FILE.
.*
.* PARAMETERS USED - CEID 
.*
.* LOCAL PARAMETERS USED (NOT SUPPLIED DIRECTLY BY THE USER) -
.*
.*             INFILE  - THE INPUT FILE CONTAINING THE FILE OR
.*                       RECORD TO BE LOADED AND SAVED. 
.*
.*             OUTFILE - FILE TO WHICH THE INFILE FILE/RECORD WILL
.*                       BE COPIED AND SAVED. 
.*
.*             TYPE    - THERE ARE 2 LEGAL VALUES - 
.*
.*                       F = A COPYBF WILL BE PERFORMED FROM INFILE 
.*                           TO OUTFILE.
.*
.*                       R = A COPYBR WILL BE PERFORMED FROM INFILE 
.*                           TO OUTFILE.
.*
.* PROCEDURE CALLED BY - CML1 
.*
.* PROCEDURES USED - PURGIT 
.*
.* METHOD USED - EITHER THE COPYBR OR COPYBF UTILITY WILL BE USED TO COPY 
.*               DATA FROM AN INPUT FILE (INFILE) TO A LOCAL FILE (OUTFILE).
.*               THE COPY STATEMENT IS CREATED BY CONCATENATING THE 'TYPE'
.*               PARAMETER (F OR R) WITH "COPYB_".  THE FILE (OUTFILE) IS 
.*               THEN CATALOGED AS A PERMANENT FILE.
.*
BEGIN,PURGIT,CMLINST,OUTFILE,CEID.
REQUEST,OUTFILE,*PF.
COPYB_TYPE,INFILE,OUTFILE.
CATALOG,OUTFILE,ID=CEID,RP=999. 
RETURN,OUTFILE. 
REVERT. - END LOAD -
*WEOR 
.PROC,PURGIT,FILE,CEID. 
.*
.* PROCEDURE NAME - PURGIT
.*
.* PURPOSE - PURGE ANY OLD COPIES OF PERMANENT FILES. 
.*
.* PARAMETERS USED - CEID 
.*
.* LOCAL PARAMETERS USED (NOT SUPPLIED DIRECTLY BY THE USER) -
.*
.*                  FILE - THE PERMANENT FILE NAME OF THE FILE TO BE
.*                         PURGED.
.*
.* PROCEDURE CALLED BY - JOBS CML1, CML2, CML3, CML4, CML6
.*                       PROCEDURES CML5A, LOAD, BLDJOB 
.*
.* PROCEDURES USED - NONE 
.*
.* PREREQUISITES - NONE 
.*
.* METHOD USED - PURGIT ATTEMPTS TO PURGE THE PERMANENT FILE PASSED IN THE
.*               "FILE" PARAMETER, THEN RETURNS THE FILE.  THE PROCEDURE
.*               AVIODS ABNORMAL TERMINATION THROUGH USE OF THE "EXIT,U"
.*               CONTROL STATEMENT. 
.*
PURGE,X,FILE,ID=CEID. 
RETURN,X. 
REVERT.  - FILE PURGED -
EXIT,U. 
REVERT. - FILE NOT FOUND -
*WEOR 
.PROC,NEXTJOB,JOB=,CEID=. 
.*
.* PROCEDURE NAME - NEXTJOB 
.*
.* PUROPSE - ROUTE THE NEXT INSTALLATION JOB IN THE INSTALL SEQUENCE TO THE 
.*           INPUT QUEUE. 
.*
.* PARAMETERS USED - CEID 
.*                   JOB (IF PERFORMING MANUAL ROUTING OF JOBS) 
.*
.* LOCAL PARAMETERS USED (NOT SUPPLIED BY USER) 
.*
.*                   JOB - NAME OF INSTALLATION JOB TO BE ROUTED TO THE 
.*                         INPUT QUEUE. (SEE NOTE UNDER "PARAMATERS USED".
.*
.* PROCEDURE CALLED BY - THE USER 
.*                       JOBS CML1,CML2,CML3A,CML4
.*                       PROCEDURES CML5A 
.*
.* PROCEDURES USED - NONE 
.*
.* PREREQUISITES - THE JOB TO BE ROUTED MUST RESIDE ON A PERMANENT FILE UNDER 
.*                 THE IDENT SPECIFIED BY PARAMETER "CEID". 
.*
.* METHOD USED - NEXTJOB ATTACHES THE INSTALLATION JOB, COPIES IT TO A
.*               QUEUE DEVICE, AND ROUTES THE JOB TO THE INPUT QUEUE. 
.*
ATTACH,JOB,ID=CEID. 
REQUEST,NEXTJOB,*Q. 
COPY,JOB,NEXTJOB. 
ROUTE,NEXTJOB,DC=IN.
RETURN,JOB. 
REVERT. - JOB ROUTED TO INPUT - 
*WEOR 
.PROC,BLDJOB,JOB,CEID.
.*
.* PROCEDURE NAME - BLDJOB
.*
.* PURPOSE - SAVE THE CREATED INSTALLATION JOB AS A PERMANENT FILE. 
.*
.* PARAMETERS USED - CEID 
.*
.* LOCAL PARAMETERS USED (NOT SUPPLIED DIRECTLY BY THE USER) -
.*
.*                   JOB - THE NAME OF THE CML INSTALLATION JOB TO
.*                         BE SAVED.
.*
.* PROCEDURE CALLED BY - PROCEDURE CML
.*
.* PROCEDURES USED - PURGIT.
.*
.* PREREQUISITES - NONE 
.*
.* METHOD USED - BLDJOB FIRST PURGES ANY OLD COPIES OF THE INSTALLATION JOB,
.*               THEN COPIES THE JOB CREATED BY CCL TO A PERMANENT FILE 
.*               DEVICE AND CATALOGES IT UNDER THE IDENT SPECIFIED BY 
.*               PARAMETER "CEID".
.*
BEGIN,PURGIT,CMLINST,FILE=JOB,#CEID=CEID. 
REQUEST,JOB_X,*PF.
REWIND,JOB. 
COPY,JOB,JOB_X. 
CATALOG,JOB_X,JOB,ID=CEID,RP=30.
RETURN,JOB_X. 
*WEOR 
*ENDIF
