&TAG     PROC  &P,2,&ERROR=,&UPDATE=                                    LU$00010
LU$OPEN  NAME  OPEN                                                     LU$00020
LU$CLOSE NAME  CLOSE                                                    LU$00030
.*                                                                      LU$00040
.********************************************************************** LU$00050
.*                                                                    * LU$00060
.*                                                                    * LU$00070
.*       PROC TO OPEN/CLOSE LIBRARY UTILITY FILES                     * LU$00080
.*                                                                    * LU$00090
.********************************************************************** LU$00100
.*                                                                      LU$00110
         LCL   &PRLABEL                                                 LU$00120
         LCL   &OPER                                                    LU$00130
         LCL   &CNT,&FILE,&P1,&P2                                       LU$00140
&FILE    SET   '&P(1)'                                                  LU$00150
.*                                                                      LU$00160
&PRLABEL SET   '&TAG.        '(1,8)                                     LU$00170
&PRLABEL           DS    0H                                             LU$00180
         DO    '&P(1)'(1,6)='LU$DTF'                                    LU$00190
                   EXTRN &P(1)                                          LU$00200
         ENDO                                                           LU$00210
.*                                                                      LU$00220
         DO    '&P(0)'='OPEN'                                           LU$00230
&FILE    SET   '(1)'                                                    LU$00240
&P1      SET   (('&P(1)'='(1)')++('&P(1)'='1'))=0                       LU$00250
&P2      SET   (('&P(2)'='(0)')++('&P(2)'='0'))=0                       LU$00260
&P2      SET   &P2**('&P(2)'=''=0)                                      LU$00270
&CNT     SET   &P1*4+4+&P2*8                                            LU$00280
         DO    &P1                                                      LU$00290
                   CNOP  0,4                                            LU$00300
         ENDO                                                           LU$00310
         DO    (&CNT>4)                                                 LU$00320
                   B     *+&CNT                                         LU$00330
         ENDO                                                           LU$00340
         DO    &P2                                                      LU$00350
                   DC    CL8'&P(2)'                                     LU$00360
         ENDO                                                           LU$00370
         DO    &P1                                                      LU$00380
                   DC    A(&P(1))                                       LU$00390
                   L     1,*-4                                          LU$00400
         ENDO                                                           LU$00410
                   EXTRN LU$DTFNM                                       LU$00420
         DO    &P2                                                      LU$00430
&CNT     SET   &P1*8+8                                                  LU$00440
                   MVC   LU$DTFNM(8,1),*-&CNT                           LU$00450
         ENDO                                                           LU$00460
         DO    (&P2++('&P(2)'=''))=0                                    LU$00470
                   XR    0,2            SWAP CONTENTS OF REGS 0 AND 2   LU$00480
                   XR    2,0                                            LU$00490
                   XR    0,2                                            LU$00500
                   MVC   LU$DTFNM(8,1),0(2)                             LU$00510
                   XR    0,2            RESTORE REGS 0 AND 2            LU$00520
                   XR    2,0                                            LU$00530
                   XR    0,2                                            LU$00540
         ENDO                                                           LU$00550
         DO    '&UPDATE'=''=0                                           LU$00560
         DO    '&UPDATE'='YES'                                          LU$00570
                   OI    37(1),8        SET LIBRARY UPDATE FLAG         LU$00580
         GOTO  .LAB1                                                    LU$00590
         ENDO                                                           LU$00600
         DO    '&UPDATE'='NO'                                           LU$00610
                   NI    37(1),247      RESET LIBRARY UPDATE FLAG       LU$00620
         GOTO  .LAB1                                                    LU$00630
         ENDO                                                           LU$00640
         PNOTE 'P','UPDATE PARAM MUST BE YES OR NO'                     LU$00650
.LAB1    LABEL                                                          LU$00660
         ENDO                                                           LU$00670
         ENDO                                                           LU$00680
.*                                                                      LU$00690
         DO    ('&P(0)'='OPEN')                                         LU$00700
                   OPEN  &FILE                                          LU$00710
         DO    '&ERROR'=''=0                                            LU$00720
                   TM    36(1),128      CHECK IF FILE IS OPEN           LU$00730
                   BZ    &ERROR         BRANCH IF NOT OPEN              LU$00740
         GOTO  .LAB2                                                    LU$00750
         ENDO                                                           LU$00760
         PNOTE *,'ERROR PARAMETER MISSING'                              LU$00770
.LAB2    LABEL                                                          LU$00780
         GOTO  .NOTCLS                                                  LU$00790
         ENDO                                                           LU$00800
                   CLOSE &FILE                                          LU$00810
.NOTCLS  LABEL                                                          LU$00820
.*                                                                      LU$00830
         END                                                            LU$00840
