TERMLIB 
.PROC,TERMLIB*I,
TERMCAP ' TERMCAPS DESIRED FOR SYSTEM          '=(*N=,*A),
*CALL COMPC 
*CALL COMUSER 
*CALL COMLIST 
*CALL COMTOB
*CALL COMIA 
*CALL COMTOL
*CALL COMXOPL 
*CALL COMPROC 
. 
  
*   TERMLIB 
* 
*** NOTE
* 
*   THE RESIDENT TERMINAL CAPSULES CAN BE CHANGED BY SPECIFYING 
*   THE DESIRED CAPSULES WITH THE TERMCAP PARAMETER, AN EXAMPLE 
*   FOLLOWS:  
* 
*   BEGIN,TERMLIB,INSTALL,TERMCAP=$Z721,Z722$ 
* 
  
BEGIN(SUBPROC,INSTALL,TERMLI,B,LIST,MAPTYPE,IA,TOBLD,TOLIST,USERF)
REVERT.          TERMLIB. 
EXIT. 
REVERT(ABORT)    TERMLIB. 
.DATA,ZZZPROC 
.PROC,TERMLIB.
*CALL     PSRLEV
BEGIN(MODIFYX,INSTALL)    MAKE PROPER MODIFY1 PROC LOCAL
BEGIN(PRDAUX,INSTALL,PRDNAME=OPL,#PNO=PN99,#PRO=PR99) 
RENAME(OPL=AUXPL) 
NOTE(MODIR,NR)+*EDIT TDUFILE
BEGIN(,MODIFY1) 
RFL(120000) 
NOTE(TIN)/L/D/END/
PACK(TIN) 
COPYBR(COMPILE,TEMPIN)
COPYBR(COMPILE,TDUIN) 
.*
.* EXECUTE TDUEX TO PRODUCE COMPASS INPUT.
.*
SET(EF=0) 
RETURN(TMPLIST,TDLIST)
WHILE,FILE(COMPILE,.NOT.EOI),LOOP.
NOTE(TMPLIST,NR)+++** BEGIN CAPSULE **
REWIND(TIN) 
EDIT(TDUIN,I=TIN,M=ASCII,L=TMPLIST) 
RETURN(ZZZZZTC) 
TDUEX,TDUIN,ZZZZZTC,L.
IF,FILE(ZZZZZTC,.NOT.AS),TERMLB0. 
  SET(EF=1) 
  NOTE(TMPLIST,NR)+******* COMPILATION ERRORS IN THIS CAPSULE ******* 
  NOTE(TMPLIST,NR)+** END CAPSULE **
  REWIND(TMPLIST) 
  COPYBF(TMPLIST,TDLIST)
ELSE,TERMLB0. 
  COPYEI(ZZZZZTC,NEWCOMP) 
ENDIF,TERMLB0.
RETURN(TDUIN,TMPLIST) 
COPYBR(COMPILE,TDUIN) 
ENDW,LOOP.
IF,EF.EQ.1,TERMLB1. 
  PACK(TDLIST)
  SKIPEI(OUTPUT)
  COPYSBF(TDLIST,OUTPUT)
  REVERT(ABORT) CHECK OUTPUT FOR COMPILATION ERRORS.
ELSE,TERMLB1. 
  RETURN(TDLIST)
ENDIF,TERMLB1.
PACK(NEWCOMP) 
.*
.* GENERATE RELOCATABLE BINARIES AND CAPSULE DIRECTIVES.
.*
COMPASS(I=NEWCOMP,L=ZZZZZTL,B=ZZZZZTB)
REWIND(ZZZZZTB) 
.*
.* PUT RELOCATABLES TO BE RESIDENT TERMCAPS INTO LIB FOR
.* ADDITION TO SFLIB AND QSFLIB 
.*
IF,(STR($TERMCAP$) .NE. STR($$)),TERMLB2. 
  GTR(ZZZZZTB,LIB)REL/TERMCAP 
ENDIF,TERMLB2.
.*
.* GENERATE CAPSULES
.*
GTR(ZZZZZTB,ZZZZNEW)TEXT/*
GTR(ZZZZZTB,ZZZZNEW)REL/* 
LOAD(ZZZZNEW) 
NOGO(TERMBIN) 
RETURN(TERMLIB,TDUFILE) 
LIBGEN(F=TERMBIN,P=TERMLIB) 
RETURN(TDUIN,TERMBIN) 
REWIND(TERMLIB,COMPILE) 
COPYBF(TERMLIB,PFGFILE) 
COPYBF(COMPILE,PFGFILE) 
REPLACE(TERMLIB)
PURGE(TDUFILE/NA) 
DEFINE(TDUFILE) 
REWIND(COMPILE) 
COPYEI(COMPILE,TDUFILE) 
BEGIN(PFGOUT,INSTALL,PRDNAME=TLIB,LFN=PFGFILE)
IF,(STR($TERMCAP$) .NE. STR($$)),TERMLB3. 
  BEGIN(SAVELIB,INSTALL,LIB=LIB,LIBNAME=SFLIB)
  BEGIN(SAVELIB,INSTALL,LIB=LIB,LIBNAME=QSFLIB) 
  BEGIN(SAVELGO,INSTALL,PRDNAME=OSLB) 
  BEGIN(END,INSTALL,MFT=R1G+) 
ENDIF,TERMLB3.
RETURN(TDUIN,COMPILE,LIB,REPORT,TDUFILE,ZZZZZTB,TIN)
REVERT.          TERMLIB  ******************************
EXIT. 
REVERT(ABORT)   TERMLIB  ****************************** 
*WEOR 
