APL2
.PROC,APL2*I,\
TERMTYP ' NAME OF TERMINAL INTERFACE           '=(*N=APLAS, 
          TYPEP,APLAS,BITPR,ASCII,TTY33,BATCH,BH501,TTY38,CORRE,CD713), 
*CALL COMPC 
*CALL COMUSER 
*CALL COMLIST 
*CALL COMTOB
*CALL COMIA 
*CALL COMTOL
*CALL COMD1 
*CALL COMXOPL 
*CALL COMPROC 
. 
.HELP 
  
.*****  APL2
  
.***    THE INSTALL JOB FOR APL ALLOWS FOR THE FOLLOWING
.*      TYPES OF INSTALLATION - 
.*
.*
.*      BEGIN,APL2,INSTALL,TERMTYP=T. 
.*
.*      T =  TYPEP -  ASCII APL TYPEWRITER PAIRING
.*
.*      T =  APLAS -  SEE NOS 2 REFERENCE SET - VOL 3.
.*                    (RELEASED DEFAULT CASE) 
.*
.*      T =  BITPR -  ASCII APL BIT PAIRING 
.*
.*      T =  ASCII -  FULL ASCII (NOT APL)
.*
.*      T =  TTY33 -  TELETYPE MODEL 33 COMPATIBLE
.*
.*      T =  BATCH -  CDC 512 PRINTER WITH ASCII PRINT CHAIN
.*
.*      T =  BH501 -  CDC 501 PRINTER 
.*
.*      T =  TTY38 -  ASCII APL TELETYPE MODEL 38 
.*                    (MODEL NUMBERS 3841/4EA,3841/4EG,3851/6JA 
.*                    AND 3851/6JG) 
.*
.*
.*      T =  CORRE -  2741 COMPATIBLE TERMINAL
.*                    (USER MUST USE TERM,CORAPL OR EQUIVALENT BEFORE 
.*                    ENTERING APL) 
.*
.*      T =  CD713 -  FULL ASCII-LOWERCASE ALPHAS EQUATE TO UPPERCASE 
.*                    ALPHAS
.*
.*      NOTE - T = TERMINAL TYPE MUST BE SPECIFIED ON CALL TO APL2
.*                 (IF T = NOT DEFINED APL INSTALL JOB FAILS) 
  
  
.***    NOTE - APL CAN ALSO BE INSTALLED WITH A HEADER MESSAGE
.*
.*             CREATE FILE *MESSAGE* IF APL IS TO BE INSTALLED WITH 
.*             HEADER MESSAGES. FILE MESSAGE MUST NOT EXCEED EIGHTY (80)
.*             CHARACTERS IN LENGTH 
  
.***    NOTE2 - THE CHARACTER SET TO BE USED BY APL IS DETERMINED BY
.*              THE VALUE THAT IS SET IN *IPTEXT*.
.*              (E.G. 63 CHAR SET VERSUS 64 CHAR SET) 
.*
.ENDHELP
  
  
.*
.*  START APL2 VIA SUBPROC. 
.*
BEGIN(SUBPROC,INSTALL,APL2,,LIST,MAPTYPE,IA,TOBLD,TOLIST,USERF) 
REVERT.        APL2.
EXIT. 
REVERT(ABORT)  APL2.
  
  
.DATA,ZZZPROC 
.PROC,APL2. 
*CALL     PSRLEV
* 
BEGIN(PRDIN,INSTALL,PRDNAME=APL2,#PN=PN,#PR=PR) 
REWIND(DISK)
SKIPF(DISK) 
COPYBF(DISK,OLDREL) 
REWIND(DISK,OLDREL) 
* 
BEGIN(GETPC,INSTALL,#PCDECK=APL,#PCPL=CAPL,#PC=PC,#CC=CC) 
IFE(.NOT.FILE(USER,AS),X10APL)
  MODIFY(Z,P=OLDPL,N=NEWPL,F)/*READ MODS,*
ELSE(X10APL)
  REWIND(USER)
  IFE(FILE(MODS,AS),L00001) 
    MODIFY(Z,P=OLDPL,N=NEWPL,F,C=0)/*READ MODS,*
  ELSE(L00001)
    RENAME(NEWPL=OLDPL) 
  ENDIF(L00001) 
MODIFY(Z,P=NEWPL,F,N=NEWER)/*READ USER,*
ENDIF(X10APL) 
* 
SKIPEI(NEWPL) 
RETURN(OLDPL,MODS)
* 
BEGIN(PRDAUX,INSTALL,PRDNAME=OPL,#PNO=PN99,#PRO=PR99) 
RENAME(OPL=AUXPL) 
* 
BEGIN(GETULIB,INSTALL,SYSLIB) 
COMPASS(A,I,X,S=IPTEXT,S=SYSTEXT,S=LDRTEXT,S=NOSTEXT,B=REL,L=LIST)
LIBEDIT(P=OLDREL,B=REL,I=0) 
RENAME(REL=NEW) 
SKIPR(REL,5)
LOAD(REL/NR)
LDSET(ERR=ALL,PRESET=ZERO)
NOGO(APLABS)
GTR(REL,AOVFIX)ABS/AOVFIX 
GTR(REL,LGO)ABS/APL 
REWIND(APLABS)
* 
* 
IFE(FILE(MESSAGE,AS),L00003)
RENAME(M=MESSAGE) 
ENDIF(L00003) 
IFE(.NOT.FILE(M,AS),L00004) 
AOVFIX(P=APLABS,B=APL,FO=WSIO,TT=TERMTYP,L=LIST)
ENDIF(L00004) 
IFE(FILE(M,AS),X30APL)
RENAME(MESSAGE=M) 
AOVFIX(P=APLABS,B=APL,FO=WSIO,TT=TERMTYP,M=MESSAGE,L=LIST)
ENDIF(X30APL) 
* 
* 
REWIND(DISK,NEWPL,REL,APL,LGO)
COPYBF(NEWPL,NEWTAPE) 
COPYBF(REL,NEWTAPE) 
COPYBF(APL,NEWTAPE) 
SKIPF(DISK,3) 
COPYBF(DISK,NEWTAPE,10) 
RENAME(NEWPL=NEWTAPE) 
REWIND(NEWPL,PFGFILE) 
SKIPF(NEWPL)
WRITEF(PFGFILE) 
COPYEI(NEWPL,PFGFILE) 
BEGIN(PFGOUT,INSTALL,PRDNAME=APL2,LFN=PFGFILE)
BEGIN(PRDOUT,INSTALL,PRDNAME=APL2,#PNO=PNO,#PRO=PRO)
BEGIN(GENDIR,INSTALL,LIB=7) 
BEGIN(SAVELGO,INSTALL,PRDNAME=APL2) 
BEGIN(END,INSTALL,MFT=R1G+) 
REVERT.  APL2.
EXIT. 
REVERT(ABORT)  APL2.
*WEOR 
