MSSI
.PROC,MSSI*I,\
BLDMLIB ' BUILD MSAMLIB ONLY         (NO/YES)  '=(*N=NO,NO,YES,*K=YES), 
MSAMLIB ' PERMANENT FILE NAME OF MSAMLIB       '=(*N=MSAMLIB,*F), 
*CALL COMPC 
*CALL COMUSER 
*CALL COMLIST 
*CALL COMIA 
*CALL COMTOB
*CALL COMTOL
*CALL COMDISK 
*CALL COMD3 
*CALL COMXOPL 
*CALL COMPROC 
. 
  
*  MSSI - MSSI 3
*CALL PSRLEV
* 
  
.*****    MSSI    (REL14D)
.*        INSTALLATION INSTRUCTIONS:  
  
.***      INVOCATION
.*        BEGIN,MSSI,INSTALL,BLDMLIB,MSAMLIB. 
.*
.*        BLDMLIB = NO  - (DEFAULT) NORMAL MODE OF MSSI INSTALLATION. 
.*                = YES - ONLY THE MSAMLIB PERMANENT FILE IS BUILT. 
.*
.*        MSAMLIB       - (DEFAULT) NAME OF THE PERMANENT FILE BUILT
.*                        WHEN THE -BLDMLIB=YES- OPTION IS SELECTED.
.*
.* NOTE - 20K OF ECS/UEM IS REQUIRED TO EXECUTE 
.*        THIS PROCEDURE.  ENSURE THAT THE USER 
.*        NUMBER THAT THIS PROCEDURE IS RUN UNDER 
.*        IS VALIDATED TO USE USER ECS. 
.*
.*        START MSSI VIA SUBPROC. 
.*
BEGIN(SUBPROC,INSTALL,MSSI,,LIST,MAPTYPE,IA,TOBLD,TOLIST,USERF) 
REVERT.          MSSI.
EXIT. 
REVERT(ABORT)    MSSI.
  
  
.DATA,ZZZPROC 
.PROC,MSSI. 
COMMENT.
COMMENT.  #BLDMLIB SELECTED (BLDMLIB).
COMMENT.  #MSAMLIB FILE NAME = (MSAMLIB). 
COMMENT.
*CALL  PSRLEV 
BEGIN(PRDIN,INSTALL,PRDNAME=MSSI,#PN=PN,#PR=PR,DISK=0)
BEGIN(PRDAUX,INSTALL,PRDNAME=OPL,#PNO=PN99,#PRO=PR99) 
RENAME(OPL=AUXPL) 
BEGIN(GETULIB,INSTALL,SYSLIB,FTN5LIB) 
BEGIN(UP,INSTALL,RANDOM,PCPL=CPRD,#PC=PC,#CC=CC,PCDECK=MA3) 
RETURN(COMPILE) 
RENAME(OLDPL=NEWER) 
* 
.IF, ($BLDMLIB$ .EQ. $NO$) ,MSSI02. 
*  SETUP PERMANENT FILES -
* 
*  MSSIP - MISCELLANEOUS MSSI/MMCL PROCEDURE FILES. 
*  MAPCMI/MAPECS/MAPCH - MSSI SUBSYSTEM INITIALIZATION
*           PROCEDURES THAT RESIDE UNDER THE SYSTEM 
*           USER INDEX. 
*  MJOBSPL - MSSI TEST JOBS PL. 
* 
PURGE(MSSIP/NA) 
DEFINE(MSSIP) 
NOTE(IN)/*C BLDLIB4.XSIM
RETURN(COMPILE,MSSIZZ)
UPDATE(Q,D,8,I=IN,O=0)
COPY(COMPILE,MSSIZZ,TC=I,PO=M)
LIBEDIT(P=MSSIZZ,N=MSSIP,B=0,Z)/*BUILD MSSIP
* 
NOTE(IN)/*C MAPCMI
UPDATE(Q,I=IN,D,8,O=0,C=MAPCMI) 
REPLACE(MAPCMI) 
* 
NOTE(IN)/*C MAPECS
UPDATE(Q,D,8,I=IN,O=0,C=MAPECS) 
REPLACE(MAPECS) 
* 
NOTE(IN)/*C MAPCH 
UPDATE(Q,D,8,I=IN,O=0,C=MAPCH)
REPLACE(MAPCH)
* 
PURGE(MJOBSPL/NA) 
DEFINE(MJOBSPL) 
NOTE(IN)/*C ALLMEM.U30F 
UPDATE(Q,I=IN,C=0,O=0,S=MJOBSIN)
REWIND(MJOBSIN) 
UPDATE(P=0,C=0,I=MJOBSIN,N=MJOBSPL,O=0,W) 
* 
REWIND(MSSIP,MAPCMI,MAPECS,MAPCH,MJOBSPL,MSSIPFS) 
COPYBF(MAPCMI,MSSIPFS)
COPYBF(MAPECS,MSSIPFS)
COPYBF(MAPCH,MSSIPFS) 
COPYBF(MSSIP,MSSIPFS) 
COPYBF(MJOBSPL,MSSIPFS) 
BEGIN(PFGOUT,INSTALL,PRDNAME=MSSI,LFN=MSSIPFS)
RETURN(MJOBSPL,MSSIP,MSSIPFS) 
* 
*  BUILD MSSI BINARIES. 
* 
REWIND(REL) 
NOTE(IN);*C MAPJOB.MAPJCMP
UPDATE(Q,I=IN)
SYMPL(ET=T,I,B=REL,N,LRX=LIST)  MAPJOB
COMPASS(A,I,S=NOSTEXT,S=SSYTEXT,X,B=REL,L=LIST)   MAPJCMP 
LDSET(PRESET=ZERO,ERR=ALL)
LOAD(REL) 
NOGO(LGO) 
.ENDIF(MSSI02)
* 
NOTE(IN);*C MSAMSUB.MSAMCML 
UPDATE(Q,I=IN)
SYMPL(ET=T,I,B=LIB,N,LRX=LIST)    MSAMSUB 
SYMPL(ET=T,I,B=LIB,N,LRX=LIST)    MJCALL
SYMPL(ET=T,I,B=LIB,N,LRX=LIST)    METOPEN 
SYMPL(ET=T,I,B=LIB,N,LRX=LIST)    MCLOSE
SYMPL(ET=T,I,B=LIB,N,LRX=LIST)    MAPGO 
SYMPL(ET=T,I,B=LIB,N,LRX=LIST)    MRECALL 
SYMPL(ET=T,I,B=LIB,N,LRX=LIST)    MSBUILD 
SYMPL(ET=T,I,B=LIB,N,LRX=LIST)    MAPNOGO 
SYMPL(ET=T,I,B=LIB,N,LRX=LIST)    MODIFY
SYMPL(ET=T,I,B=LIB,N,LRX=LIST)    MDNAME
SYMPL(ET=T,I,B=LIB,N,LRX=LIST)    MDIAG 
COMPASS(A,I,S=NOSTEXT,S=SSYTEXT,X,B=LIB,L=LIST)    MSAMCMP
COMPASS(A,I,S=NOSTEXT,S=SSYTEXT,X,B=LIB,L=LIST)    MSAMCME
COMPASS(A,I,S=NOSTEXT,S=SSYTEXT,X,B=LIB,L=LIST)    MSAMCML
* 
REWIND(IN)
NOTE(IN,NR);*IDENT GMAP 
NOTE(IN,NR);*C GENMAP 
PACK(IN)
UPDATE(Q,I=IN)
FTN5(ET,I,B=LIB,L=LIST)   GENMAP
* 
REWIND(IN)
NOTE(IN,NR);*IDENT MDFTN
NOTE(IN,NR);*C MDUMP
PACK(IN)
UPDATE(Q,I=IN)
FTN5(ET,I,B=LIB,L=LIST)   MDUMP-FTN CALL
COMPASS(A,I,B=LIB,L=LIST) 
* 
.IF, ($BLDMLIB$ .EQ. $YES$) ,MSSI07.
PURGE(MSAMLIB/NA) 
DEFINE(MSAMLIB) 
.ENDIF(MSSI07)
REWIND(LIB) 
COPYBF(LIB,MLIB)
LIBGEN(F=MLIB,P=MSAMLIB,N=MSAMLIB)
ITEMIZE(MSAMLIB,N,U)
* 
.IF, ($BLDMLIB$ .EQ. $NO$) ,MSSI08. 
REWIND(IN,REL1) 
NOTE(IN,NR);*IDENT MDMAIN 
NOTE(IN,NR);*DEFINE MAIN
NOTE(IN,NR);*C MDUMP
PACK(IN)
UPDATE(Q,I=IN)
FTN5(ET,I,B=REL1,L=LIST)   MDUMP-CONTROL CARD CALL
RFL(CM=77000,EC=20) 
LDSET(PRESET=ZERO,ERR=ALL,LIB=MSAMLIB)
LOAD(REL1)
NOGO(LGO) 
* 
REWIND(REL2)
NOTE(IN);*C MAPINI
UPDATE(Q,I=IN)
SYMPL(ET=T,I,F,B=REL2,N,LRX=LIST)  MAPINI 
RFL(CM=77000,EC=5)
LDSET(PRESET=ZERO,ERR=ALL,LIB=MSAMLIB)
LOAD(REL2)
NOGO(LGO) 
* 
NOTE(IN);*C MP3 
UPDATE(Q,I=IN)
COMPASS(A,I,S=NOSTEXT,X,L=LIST) 
* 
RETURN(REL,REL1,REL2) 
BEGIN(SAVELIB,INSTALL,LIB=MLIB,LIBNAME=MSAMLIB) 
BEGIN(GENDIR,INSTALL,LIB=33)
BEGIN(SAVELGO,INSTALL,PRDNAME=MSSI) 
BEGIN(PRDOUT,INSTALL,PRDNAME=MSSI,#PNO=PNO,#PRO=PRO)
BEGIN(END,INSTALL,MFT=R1G+) 
.ENDIF(MSSI08)
* 
REVERT.          MSSI.
EXIT. 
REVERT(ABORT)    MSSI.
*WEOR 
