Table of Contents

ULIB

Table Of Contents

Source Code

ULIB.txt
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