ULIB
ASCII 
*NOSEQ
*WIDTH 132
.PROC,ULIB*I, 
OP[O^P^E^R^A^T^I^O^N - C, A, D, F OR R]=(C,A,D,F,R),
REC[R^E^C^O^R^D/^F^I^L^E ^N^A^M^E]=(*F),
LIB[L^I^B^R^A^R^Y ^N^A^M^E]=(*F). 
.HELP 
ULIB ^C^R^E^A^T^E^S ^O^R ^C^H^A^N^G^E^S ^U^S^E^R ^L^I^B^R^A^R^I^E^S, ^O^R ^E^X^T^R^A^C^T^S ^S^I^N^G^L^E ^R^E^C^O^R^D^S. 
.HELP,OP,NOLIST 
  
E^N^T^E^R     T^O 
C         C^R^E^A^T^E ^A ^N^E^W ^U^S^E^R ^L^I^B^R^A^R^Y 
A         A^D^D ^A ^R^E^C^O^R^D ^T^O ^A ^U^S^E^R ^L^I^B^R^A^R^Y 
D         D^E^L^E^T^E ^A ^R^E^C^O^R^D ^F^R^O^M ^A ^U^S^E^R ^L^I^B^R^A^R^Y 
R         R^E^P^L^A^C^E ^A ^R^E^C^O^R^D ^I^N ^A ^U^S^E^R ^L^I^B^R^A^R^Y 
F         F^E^T^C^H ^A ^R^E^C^O^R^D ^F^R^O^M ^A ^U^S^E^R ^L^I^B^R^A^R^Y 
          ^A^N^D ^M^A^K^E ^I^T ^A ^L^O^C^A^L ^F^I^L^E 
  
  C^R^E^A^T^E, A^D^D, D^E^L^E^T^E ^A^N^D R^E^P^L^A^C^E ^R^E^T^U^R^N ^T^H^E ^O^R^I^G^I^N^A^L ^C^O^P^Y ^O^F ^T^H^E ^U^S^E^R 
^L^I^B^R^A^R^Y ^A^N^D ^C^R^E^A^T^E ^A ^N^E^W ^C^O^P^Y ^A^S ^A ^L^O^C^A^L ^F^I^L^E.
  
   D^E^F^A^U^L^T@D N^O^N^E - ^M^U^S^T ^B^E ^S^P^E^C^I^F^I^E^D.
.HELP,REC,NOLIST
  
   REC ^I^S ^T^H^E ^N^A^M^E ^O^F ^T^H^E ^R^E^C^O^R^D ^I^N ^T^H^E ^U^S^E^R ^L^I^B^R^A^R^Y ^A^N^D ^T^H^E ^N^A^M^E ^O^F ^T^H^E 
^L^O^C^A^L ^F^I^L^E ^W^H^I^C^H@D
     F^O^R C^R^E^A^T^E  - ^C^O^N^T^A^I^N^S ^T^H^E ^O^R^I^G^I^N^A^L ^C^O^N^T^E^N^T^S ^O^F ^T^H^E ^L^I^B^R^A^R^Y, ^O^R
     F^O^R R^E^P^L^A^C^E - ^C^O^N^T^A^I^N^S ^T^H^E ^R^E^C^O^R^D(^S) ^T^O ^B^E ^R^E^P^L^A^C^E^D, ^O^R
     F^O^R F^E^T^C^H   - ^I^S ^T^O ^C^O^N^T^A^I^N ^T^H^E ^E^X^T^R^A^C^T^E^D ^R^E^C^O^R^D. 
  
   D^E^F^A^U^L^T@D N^O^N^E - R^E^C^O^R^D ^N^A^M^E ^M^U^S^T ^B^E ^S^P^E^C^I^F^I^E^D. 
.HELP,LIB,NOLIST
  
   LIB ^I^S ^T^H^E ^L^O^C^A^L ^F^I^L^E ^N^A^M^E ^O^F ^T^H^E ^L^I^B^R^A^R^Y ^T^O ^B^E ^C^R^E^A^T^E^D ^O^R ^T^H^E 
^L^I^B^R^A^R^Y ^W^H^I^C^H ^C^O^N^T^A^I^N^S ^T^H^E ^R^E^C^O^R^D ^T^O ^B^E A^D^D^E^D, D^E^L^E^T^E^D, R^E^P^L^A^C^E^D, ^O^R
F^E^T^C^H^E^D.
  
   D^E^F^A^U^L^T@D N^O^N^E - LIB ^M^U^S^T ^B^E ^S^P^E^C^I^F^I^E^D.
.ENDHELP
.*
.* CREATE 
.*
.IFE($OP$.EQ.$C$,CREATE)
 REWIND,LIB.
.IFE(FILE(REC,AS),CMEM) 
 LIBRARY,LIB/D. 
 LIBGEN,F=REC,P=LIB,NX. 
 REVERT,NOLIST. 
.ELSE,CMEM. 
 NOTE,OUTPUT./RECORD FILE REC NOT FOUND/
 REVERT,EX.ULIB,OP,,LIB.
.ENDIF,CMEM.
.ELSE,CREATE. 
.*
.* SEE IF LIBRARY FILE EXISTS 
.*
.IFE(.NOT.FILE(LIB,AS),HAVELIB) 
 NOTE,OUTPUT./LIBRARY FILE NOT FOUND/ 
 REVERT,EX.ULIB,OP,REC. 
.ENDIF,HAVELIB. 
.*
.* FETCH
.*
.IFE($OP$.EQ.$F$,FETCH) 
 RETURN,REC.
 REWIND,LIB.
 COPYX,LIB,LIB,REC,1. 
 COPYBR,LIB,REC.
 RETURN,ZZZZZUV.
 WRITER,ZZZZZUV.
 ERRMSG,OFF.
 VERIFY,REC,ZZZZZUV,L=LISTVE,A,R. 
 ERRMSG,ON. 
 NOTE,OUTPUT./RECORD FILE REC NOT FOUND/
 RETURN,REC,LISTVE,ZZZZZUV. 
 REVERT,EX.ULIB,OP,,LIB.
 EXIT.
 ERRMSG,ON. 
 RETURN,LISTVE,ZZZZZUV. 
 REWIND,LIB,REC.
 REVERT,NOLIST. 
.ENDIF,FETCH. 
.*
.* REPLACE OR ADD 
.*
.IFE($OP$.EQ.$R$.OR.$OP$.EQ.$A$,REPLACE)
.IFE(.NOT.FILE(REC,AS),ADDREC)
 NOTE,OUTPUT./RECORD FILE REC NOT FOUND/
 REVERT,EX.ULIB,OP,,LIB.
.ENDIF,ADDREC.
 REWIND,LIB,REC,ZZZZZUU.
 COPY,LIB,ZZZZZUU.
 LIBRARY,LIB/D. 
 RETURN,LIB.
 LIBEDIT,P=ZZZZZUU,N=LIB,L=0,I=0,U=LIB,B=REC. 
 RETURN,ZZZZZUU,ZZZZZG2.
 REVERT,NOLIST. 
.ENDIF,REPLACE. 
.*
.*   DELETE 
.*
.IFE($OP$.EQ.$D$,DELETE)
 REWIND,LIB,REC,ZZZZZUU.
 COPYX,LIB,ZZZZZUU,REC,3. 
 COPYBR,LIB,REC.
 RETURN,ZZZZZUV.
 WRITER,ZZZZZUV.
 ERRMSG,OFF.
 VERIFY,REC,ZZZZZUV,L=LISTVE,A,R. 
 ERRMSG,ON. 
 NOTE,OUTPUT./RECORD FILE REC NOT FOUND/
 RETURN,REC,LISTVE,ZZZZZUV. 
 REVERT,EX.ULIB,OP,,LIB.
 EXIT.
 ERRMSG,ON. 
 COPY,LIB,ZZZZZUU.
 LIBRARY,LIB/D. 
 RETURN,LIB,LISTVE,ZZZZZUV,REC. 
 LIBGEN,F=ZZZZZUU,P=LIB.
 RETURN,ZZZZZUU.
 REVERT,NOLIST. 
.ENDIF,DELETE.
.ENDIF,CREATE.
 EXIT.
*WEOR 
