MODOPL
.PROC,MODOPL*I,\
*CALL COMPC 
*CALL COMUSER 
*CALL COMLIST 
*CALL COMTOB
*CALL COMIA 
*CALL COMTOL
*CALL COMDISK 
*CALL COMD3 
*CALL COMOUT
*CALL COMPROC 
. 
  
  
.*
.*  START MODOPL VIA SUBPROC. 
.*
BEGIN(SUBPROC,INSTALL,MODOPL,,LIST,MAPTYPE,IA,TOBLD,TOLIST,USERF) 
REVERT.        MODOPL.
EXIT. 
REVERT(ABORT)  MODOPL.
  
  
.DATA,ZZZPROC 
.PROC,MODOPL. 
*CALL     PSRLEV
* MODOPL - LOAD COMPOSITE OPL TO DISK AND APPLY MODS TO IT
* 
  
.*****  MODOPL
.*
.*      LOAD COMPOSITE OPL AND SAVE IN PRDNAME=OPL_PSROUT 
  
.***    NOTES 
.*
.*      CORRECTIVE CODE ON THE FILE *CODEPL* AND USER CODE ON THE 
.*      FILE *USER* WILL ALSO BE ADDED TO THE FILE *OPL_PSROUT* 
.*
.*
.*
.*      IF CC = YES, THEN CORRECTIVE CODE WILL BE APPLIED.
  
BEGIN(PRDIN,INSTALL,PRDNAME=OPL,#PN=PN,#PR=PR,DISK=0,OLDPL=0) 
.IF, ($CC$.EQ.$YES$) ,MODOPL1.
  BEGIN(GETPC,INSTALL,PCDECK=NS2,PCPL=CPRD,#PC=PC,#CC=CC) 
.ENDIF(MODOPL1) 
RETURN(MODIR,NEWPL) 
* 
SET(R1=0) 
IF,FILE(USER,AS),MODOPL2. 
  
* APPLY USER CODE 
  
  NOTE(MODIR)+*REWIND,USER+*INWIDTH 150+*READ,USER,*
  MODIFY(N,U,C=0,I=MODIR) 
  LIBEDIT(P=OPL,B=NPL,N=NEWPL,L=0,I=0)
  SET(R1=1) 
ELSE(MODOPL2) 
  
* FILE *USER* NOT LOCAL, NO USER CODE APPLIED 
  
  RENAME(NEWPL=OPL) 
  SET(R1=0) 
ENDIF(MODOPL2)
*IF,DEF,63CSET
MODIFY(P=NEWPL,N=NEW63,CV=63,F,LO=E,C=0,I=0)
RENAME(NEWPL=NEW63) 
SET(R1=1) 
*ENDIF
  
IF, (R1 .EQ. 1) ,MODOPL3. 
* CHANGES HAVE BEEN MADE TO THE COMPOSITE OPL.
* WRITE OPL TO TAPE IF #DISKINS=NO. 
.IF, ($DISKINS$ .EQ. $NO$), MODOPL4.
  BEGIN(PRDOUT,INSTALL,PRDNAME=OPL,#PNO=PNO,#PRO=PRO) 
.ENDIF(MODOPL4) 
ENDIF(MODOPL3)
  
* MAKE OPL PERMANENT
  
PURGE(OPL_PSROUT/#PN=PNO,R=PRO,NA)
RETURN(OPL_PSROUT)
DEFINE(OPL_PSROUT/#PN=PNO,R=PRO)
REWIND(NEWPL) 
COPYEI(NEWPL,OPL_PSROUT)
RETURN(OPL,NPL,NEWPL,OPL_PSROUT)
  
REVERT.  MODOPL.
EXIT.    MODOPL 
REVERT(ABORT)  MODOPL.
*WEOR 
