OPL TITLE 'DMSOPL (CMS) VM/370 - RELEASE 6' 00001000 SPACE 2 00002000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00003000 *. * 00004000 * MODULE NAME: * 00005000 * DMSOPL * 00006000 * * 00007000 * FUNCTION: * 00008000 * DMSOPL READS THE APPROPRIATE SYSTEM DIRECTORY RECORDS * 00009000 * AND DIRECTORY HEADER (S) AND CHECKS IF THE SPECIFIED * 00010000 * LIBRARIES CONTAIN ANY ACTIVE MEMBERS. IT SUPPLIES * 00011000 * THE CALLER WITH THE DISK ADDRESS OF THE SPECIFIED * 00012000 * SYSTEM LIBRARY AND INDICATES WHETHER OR NOT THERE ARE * 00013000 * ACTIVE MEMBERS IN THE LIBRARIES TO BE ACCESSED. IF * 00014000 * A PRIVATE LIBRARY IS TO BE ACCESSED, IT MUST HAVE BEEN * 00015000 * OPENED (USING DMSBOP) PRIOR TO CALLING THIS PHASE AND * 00016000 * ITS DISK ADDRESS MUST BE AVAILABLE IN INTERFACE FIELD * 00017000 * 'BUCK1'. * 00018000 * * 00019000 * ATTRIBUTES: * 00020000 * DISCONTIGUOUS SHARED SEGMENT * 00021000 * REENTRANT * 00022000 * * 00023000 * ENTRY POINTS: * 00024000 * DMSOPL * 00025000 * * 00026000 * ENTRY CONDITIONS: * 00027000 * DMSOPL IS INVOKED IN RESPONSE TO AN SVC 2 (FETCH) * 00028000 * FROM A PROBLEM PROGRAM. AT ENTRY TO DMSOPL, R2 POINTS * 00029000 * TO A TEN BYTE FIELD. THESE TEN BYTES HAVE THE * 00030000 * FOLLOWING MEANING: * 00031000 * * 00032000 * BUCK1 DS XL4 DISK ADDR OF PRIVATE LIBRARY * 00033000 * (C2C1H2R) (INPUT FROM CALLER) * 00034000 * BUCK2 DS XL4 DISK ADDR OF SYSTEM LIBRARY * 00035000 * (C2C1H2R) (OUTPUT TO CALLER) * 00036000 * PRVSW DS X SWITCH BYTE: * 00037000 * BIT0 = 0: OPEN SOURCE LIBRARY * 00038000 * BIT0 = 1: OPEN PROCEDURE LIBRARY* 00039000 * (IF BIT0 = 1 IS SPECIFIED CMS/DOS* 00040000 * WILL ISSUE AN ERROR MESSAGE SINCE* 00041000 * THERE IS NO SUPPORT FOR READING/ * 00042000 * WRITING PROCEDURE LIBRARIES.) * 00043000 * BYTE = X'01' - PRIVATE LIBRARY * 00044000 * HAS BEEN OPENED. * 00045000 * PRSSSW DS X SWITCHES (OUTPUT TO CALLER) * 00046000 * BIT1 = 1 SYSTEM LIBRARY CONTAINS * 00047000 * ACTIVE MEMBERS. * 00048000 * * 00049000 * EXIT CONDITIONS: * 00050000 * * 00051000 * NORMAL RETURN = 0 * 00052000 * * 00053000 * NORMAL EXITS: * 00054000 * SVC 11 - RETURN TO PROBLEM PROGRAM AFTER OPEN IS * 00055000 * COMPLETE. * 00056000 * * 00057000 * ABNORMAL EXITS: * 00058000 * SVC 6 - CANCEL * 00059000 * * 00060000 * ERROR MESSAGES ISSUED BY THIS PROGRAM: * 00061000 * * 00062000 * DMSOPL158E NO CMS/DOS PROCEDURE LIBRARY SUPPORT * 00063000 * * 00064000 * EXPLANATION: CMS/DOS DOES NOT * 00065000 * SUPPORT READING/WRITING DOS/VS * 00066000 * PROCEDURE LIBRARIES. * 00067000 * * 00068000 * SYSTEM ACTION: RC = 100 * 00069000 * THE SESSION IS CANCELLED VIA SVC 6. * 00070000 * * 00071000 * USER ACTION: CORRECT TEN BYTE FIELD * 00072000 * PASSED TO DMSOPL TO INDICATE SOURCE * 00073000 * LIBRARY PROCESSING. RERUN THE JOB. * 00074000 * * 00075000 * DMSOPL089E OPEN ERROR CODE 'CODE' ON SYSXXX * 00076000 * * 00077000 * EXPLANATION: THIS MESSAGE WILL BE * 00078000 * ISSUED FOR MANY OF THE OPEN ERROR * 00079000 * MESSAGES. A UNIQUE ERROR CODE IN * 00080000 * THE MESSAGE WILL IDENTIFY THE ERROR * 00081000 * SITUATION. * 00082000 * * 00083000 * SYSTEM ACTION: RC = 36 * 00084000 * RC = 3 * 00085000 * ATTEMPTING TO OPEN A SEQUENTIAL DISK * 00086000 * FILE (PRIVATE SOURCE STATEMENT LIBRARY) * 00087000 * BUT NO DOSCB EXISTS WITH THE DOSCB * 00088000 * DDNAME EQUAL TO THE DTF FILENAME. * 00089000 * OR, THE DDNAME MATCHES BUT THE * 00090000 * LOGICAL UNIT IS NOT EQUAL 'SYSSLB'. * 00091000 * CMS/DOS REQUIRES A USER ISSUED DLBL * 00092000 * FOR ALL SEQUENTIAL DISK INPUT AND OUTPUT* 00093000 * FILES. * 00094000 * * 00095000 * USER ACTION: ISSUE A DLBL FOR THE * 00096000 * PRIVATE LIBRARY AND RESTART THE SESSION.* 00097000 * * 00098000 * * 00099000 * CALLS TO OTHER ROUTINES: * 00100000 * DMSXCP * 00101000 * * 00102000 * EXTERNAL REFERENCES: * 00103000 * NUCON, BGCOM, REGEQU, AND DOSCB. * 00104000 * * 00105000 * CALLED BY: * 00106000 * INVOKED IN RESPONSE TO SVC 2 (FETCH FOR DMSOPL). * 00107000 * * 00108000 * TABLES AND WORK AREAS: * 00109000 * CCB - COMMAND CONTROL BLOCK CONTAINING AN ADDRESS * 00110000 * OF A CHANNEL PROGRAM AND THE SYSTEM LOGICAL * 00111000 * UNIT TO BE THE OBJECT OF THE I/O REQUEST. * 00112000 * THE ADDRESS OF THE CCB IS PASSED TO DMSXCP FOR* 00113000 * I/O PROCESSING. * 00114000 * * 00115000 * BUFFER - EIGHTY BYTE BUFFER USED BY I/O REQUESTS. * 00116000 * * 00117000 * OVLAYA - TEN BYTE FIELD PASSED TO DMSOPL AT ITS ENTRY. * 00118000 * (THIS TEN BYTE FIELD IS DESCRIBED IN DETAIL * 00119000 * ABOVE). * 00120000 * * 00121000 * REGISTER USAGE: * 00122000 * * 00123000 * R0 - NUCON ADDRESSABILITY * 00124000 * R1 - POINTER TO CCB * 00125000 * R2 - POINTER TO 10 BYTE CONTROL FIELD PASSED TO DMSOPL * 00126000 * R3 - WORKING REGISTER * 00127000 * R4 - BGCOM ADDRESSABILIY * 00128000 * R5 - WORKING REGISTER * 00129000 * R6 - BAL RETURN REGISTER * 00130000 * R7 - NOT USED * 00131000 * R8 - NOT USED * 00132000 * R9 - NOT USED * 00133000 * R10 - NOT USED * 00134000 * R11 - NOT USED * 00135000 * R13 - NOT USED * 00136000 * R14 - NOT USED * 00137000 * R15 - RETURN CODES * 00138000 * * 00139000 * * 00140000 * OPERATION: * 00141000 * THE FOLLOWING ACTIVITIES ARE PERFORMED BY DMSOPL IN THE* 00142000 * SPECIFIED ORDER: * 00143000 * * 00144000 * 1. R2 IS RESTORED FROM THE LTA SAVEAREA* 00145000 * R2 CONTAINS A POINTER TO THE TEN * 00146000 * BYTE FIELD PASSED TO THE MODULE. * 00147000 * * 00148000 * 2. READ SYSTEM SOURCE STATEMENT * 00149000 * LIBRARY DIRECTORY RECORD. * 00150000 * * 00151000 * 3. IF LIBRARY EXISTS, READ FIRST * 00152000 * SYSTEM LIBRARY DIRECTORY BLOCK. * 00153000 * * 00154000 * 4. IF ACTIVE LIBRARY MEMBERS INDICATE * 00155000 * IN FIELD TO BE PASSED BACK TO CALLER* 00156000 * * 00157000 * 5. IF NO SYSTEM SOURCE STATEMENT LIBE * 00158000 * EXISTS OR AFTER THE SYSTEM SOURCE * 00159000 * STATEMENT LIBRARY DIRECTORY RECORDS * 00160000 * HAVE BEEN PROCESSED, PREPARE TO * 00161000 * OPEN THE PRIVATE SOURCE STATEMENT * 00162000 * LIBRARY. * 00163000 * * 00164000 * 6. IS THIS A PRIVATE LIBRARY OPEN ? * 00165000 * (INDICATOR PASSED TO DMSOPL FROM * 00166000 * CALLER) * 00167000 * * 00168000 * 7. LOCATE DOSCB FOR PRIVATE SOURCE * 00169000 * STATEMENT LIBRARY. * 00170000 * * 00171000 * 8. READ FIRST DIRECTORY BLOCK FOR * 00172000 * PRIVATE LIBRARY. * 00173000 * * 00174000 * 9. INDICATE ACTIVE MEMBERS IN THE * 00175000 * FIELD TO BE PASSED BACK TO THE * 00176000 * CALLER, IF THEY EXIST * 00177000 * * 00178000 * 10. RETURN TO CALLER VIA SVC 11 * 00179000 * * 00180000 * 11. WHEN ERRORS ARE ENCOUNTERED, * 00181000 * AN APPROPRIATE ERROR MESSAGE IS * 00182000 * ISSUED AND EXIT MADE VIA AN SVC 6. * 00183000 * (CANCEL - ABNORMAL TERMINATION) * 00184000 *. * 00185000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00186000 SPACE 2 00187000 DMSOPL CSECT @V305066 00188000 USING NUCON,0 @V305066 00189000 USING BGCOM,R4 @V305066 00190000 USING FREE,R9 FREE STORAGE POINTER @V305066 00191000 DC CL8'$$BOPNLB' CALLING ROUTS BR TO DMSOPL+8 @V305066 00192000 BALR R12,0 ESTABLISH OWN ADDRESSABILITY @V305066 00193000 USING *,R12 @V305066 00194000 L R4,ASYSREF ADDRESS OF BGCOM @V305066 00195000 LA R0,SEVTEEN 17 DOUBLEWORDS FREE STORAGE @V305066 00196000 DMSFREE DWORDS=(0),TYPE=NUCLEUS,TYPCALL=BALR @V305066 00197000 LR R9,R1 R9 - FREE STORAGE POINTER @V305066 00198000 XC BUFFER(136),BUFFER PROPAGATE BINARY ZEROS @V305066 00199000 LA R5,BUFFER BASE REGISTER FOR DSECTS @V305066 00200000 MVC CHANPGM(32),CCW MOVE 4 CCWS TO FREE STORAGE @V305066 00201000 LA R8,ADDRESS ADDRESS FOR CCW @V305066 00202000 STCM R8,7,CHANPGM+1 STORE ADD 'ADDRESS' @V305066 00203000 LA R8,ADDRESS1 ADDRESS FOR CCW @V305066 00204000 STCM R8,7,SDSRCH+1 STORE ADD 'ADDRESS1' @V305066 00205000 LA R8,SDSRCH ADDRESS FOR CCW @V305066 00206000 STCM R8,7,SDTIC+1 STORE ADD 'SDSRCH' @V305066 00207000 STCM R5,7,SDRD+1 STORE ADD 'BUFFER' @V305066 00208000 LA R8,CHANPGM ADDRESS FOR CCB+9 @V305066 00209000 STCM R8,7,CCB+9 STORE ADD 'CHANPGM' IN CCB @V305066 00210000 EJECT 00211000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00212000 * * 00213000 * OPEN SYSTEM SOURCE STATEMENT LIBRARY * 00214000 * * 00215000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00216000 SPACE 2 00217000 USING OVLAYA,R2 DSECT FOR PARMS PASSED BY CALLER @V305066 00218000 LA R7,INDEX SYSRES LOG UNIT DOUBLED (6X2) @V305066 00219000 AH R7,LUBPT ADD LUB ADDRESS @V305066 00220000 CLI 0(R7),IGN IGNORE OR UNASSIGNED ? @V305066 00221000 BNL C IND NO ENTRIES IN SSL @V305066 00222000 CONTINUE MVI CCB+CCBLNO,RES SET UP CCB FOR SYSRES READ @V305066 00223000 MVC ADDRESS1,REC3AD SYSTEM DIR REC ADDR (SYS LIB) @V305066 00224000 TM PRVSW,PROCLIB ACCESSING PROCEDURE LIBRARY ? @V305066 00225000 BO ERR158E YES, UNSUPPORTED FUNCTION @V305066 00226000 LA R1,CCB READ SYS SO STMT DIR REC @V305066 00227000 SVC EXCP PERFORM I/O @V305066 00228000 CLI BUFFER,NOLIB DOES SYSTEM LIBRARY EXIST ? @V305066 00229000 BE C NO, SIGNAL THIS TO CALLER @V305066 00230000 USING REC3,R5 EST. BUFFER ADDRESSABILITY @V305066 00231000 MVC ADDRESS1,SSLAD+2 SOURCE STMT DIRECTORY ADDR @V305066 00232000 MVC BUCK2,ADDRESS1+1 SYS LIB ADDR TO CALLER'S AREA @V305066 00233000 MVC BUCK2+1(1),ADDRESS1 @V305066 00234000 LA R1,CCB READ 1ST DIR BLOCK (CONTAINS DIR HDR) @V305066 00235000 SVC EXCP PERFORM I/O @V305066 00236000 USING HDR,R5 EST HEADER ADDRESSABILITY @V305066 00237000 OI PRSSSW,ACTIVE ASSUME ACTIVE MEMBERS IN LIBE @V305066 00238000 OC AENTNO,AENTNO ARE THERE ACTIVE MEMBERS ? @V305066 00239000 BNZ PRIVLIB YES @V305066 00240000 C NI PRSSSW,255-ACTIVE NO, INDICATE NO SYS LIB @V305066 00241000 EJECT 00242000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00243000 * * 00244000 * OPEN PRIVATE SOURCE STATEMENT LIBRARY 00245000 * * 00246000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00247000 SPACE 2 00248000 PRIVLIB TM PRVSW,PRIV PRIVATE LIBRARY OPENED ? @V305066 00249000 BZ E NO @V305066 00250000 BAL R6,GETDOSCB GET DOSCB @V305066 00251000 MVI CCB+CCBLNO,SLB CCB FOR PRIV SOURCE STMT LIB @V305066 00252000 D MVC ADDRESS1+1(L'BUCK1),BUCK1 SET UP TO READ @V305066 00253000 MVC ADDRESS1(1),BUCK1+1 1ST DIR BLOCK @V305066 00254000 MVI ADDRESS1+2,HEX00 (CONTAINING THE HEADER ) @V305066 00255000 LA R1,CCB READ 1ST DIRECTORY BLOCK @V305066 00256000 SVC EXCP PERFORM IO @V305066 00257000 OC AENTNO,AENTNO ARE THERE ACTIVE MEMBERS ? @V305066 00258000 BNZ EXIT YES @V305066 00259000 E NI PRVSW,255-PRIV NO - IND. NO PRIVATE LIB @V305066 00260000 EXIT BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE @V305066 00261000 SVC SVC11 RETURN TO PROBLEM PROGRAM @V305066 00262000 EJECT 00263000 FREESTOR LR R1,R9 FREE STORAGE PTR IN R1 @V305066 00264000 DMSFRET DWORDS=17,LOC=(1),TYPCALL=BALR @V305066 00265000 BR R6 RETURN TO MAINLINE @V305066 00266000 EJECT 00267000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00268000 * ROUTINE TO LOCATE APPROPRIATE DOSCB, IF ONE EXITS, AND TO * 00269000 * STORE THE DOSCB ADDRESS IN THE FIRST CCB IN THE DTF. IF * 00270000 * NO MATCHING DOSCB IS FOUND, AN ERROR MESSAGE IS ISSUED AND * 00271000 * THE OPEN ROUTINE TERMINATED. * 00272000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00273000 SPACE 2 00274000 USING DOSSECT,R3 @V305066 00275000 GETDOSCB L R3,DOSFIRST LOCATE APPROPRIATE DOSCB @V305066 00276000 TEST LTR R3,R3 ANY DOSCBS ON DOSCB CHAIN ? @V305066 00277000 BNZ COMPDD YES, GO LOOK FOR RIGHT DOSCB @V305066 00278000 NOMATCH MVC BUFFER+8(6),SYSSLB LOG UNIT TO ERROR MSG @V305066 00279000 LA R15,THREE ERROR CODE @V305066 00280000 B ERR89E NO DOSCB FOR PRIVATE LIBRARY @V305066 00281000 COMPDD CLC DOSDD(7),IJSYSSL DOSCB DDNAME= DTF FN ? @V305066 00282000 BE STOREAD GO TO STORE DOSCB ADD IN CCB @V305066 00283000 NEXT L R3,DOSNEXT CONTINUE TO SCAN DOSCB CHAIN @V305066 00284000 LA R3,0(,R3) ZERO HIGH ORDER BYTE @V305066 00285000 B TEST BRANCH @V305066 00286000 STOREAD CLC DOSSYS(2),SLBLU LOG UNIT = SYSSLB? @V305066 00287000 BNE NOMATCH MUST BE MATCHING @V305066 00288000 ST R3,CCB+12 STORE DOSCB ADDRESS @V305066 00289000 BR R6 RETURN @V305066 00290000 EJECT 00291000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00292000 * * 00293000 * ERROR MESSAGES * 00294000 * * 00295000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00296000 SPACE 2 00297000 ERR158E DMSERR NUM=158,LET=E,TEXT='NO CMS/DOS PROCEDURE LIBRARY SUPPOR*00298000 T' @V305066 00299000 BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE @V305066 00300000 LA R15,HUNDRED RETURN CODE = 100 @V305066 00301000 SVC SVC6 CANCEL @V305066 00302000 SPACE 5 00303000 ERR89E LA R4,BUFFER SCRATCH AREA @V305066 00304000 CVD R15,0(R4) CVT ERROR CODE TO DECIMAL @V305066 00305000 UNPK 0(2,R4),6(2,R4) UNPACK ERROR CODE @V305066 00306000 MVC 2(6,R4),ERRMSG1 SET UP ERROR MESSAGE @V305066 00307000 MVI BUFFER+14,QUOTE PLACE LAST QUOTE IN ERRMSG @V305066 00308000 OI 1(R4),EBCDIC CVT ERROR CODE TO EBCDIC @V305066 00309000 DMSERR NUM=89,LET=E,SUB=(CHARA,(R4)),MF=I,TEXT='OPEN ERROR COD*00310000 E ''...............' @V305066 00311000 BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE @V305066 00312000 LA R15,RC36 RETURN CODE = 36 @V305066 00313000 SVC SVC6 CANCEL @V305066 00314000 EJECT 00315000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00316000 * * 00317000 * CONSTANTS * 00318000 * * 00319000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00320000 SPACE 2 00321000 * 00322000 CCW CCW SEEK,*,CCSLI,6 SEEK @V305066 00323000 CCW SRIDE,*,CCSLI,5 SEARCH ID EQUAL @V305066 00324000 CCW TIC,*,0,1 TRANSFER IN CHANNEL @V305066 00325000 CCW RDDTA,*,SLI,DATALEN READ DATA @V305066 00326000 SPACE 2 00327000 * 00328000 REC3AD DC XL5'0000000103' SO STMT LIB SYS DIR @V305066 00329000 ERRMSG1 DC C''' ON ''' @V305066 00330000 SLBLU DC XL2'0007' LOGICAL UNIT FOR SYSSLB @V305066 00331000 SYSSLB DC CL6'SYSSLB' SYSSLB LOGICAL UNIT CONSTANT @V305066 00332000 IJSYSSL DC CL7'IJSYSSL' FILE NAME FOR SYSSLB @V305066 00333000 EJECT 00334000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00335000 * EQUATES * 00336000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00337000 SPACE 2 00338000 * SYSTEM DIRECTORY ENTRY IF NO LIBRARY IS PRESENT 00339000 NOLIB EQU C' ' @V305066 00340000 DATALEN EQU 80 LENGTH OF BUFFER @V305066 00341000 SPACE 2 00342000 * CHANNEL COMMAND CODES 00343000 SPACE 2 00344000 RDDTA EQU X'06' READ DATA @V305066 00345000 SEEK EQU X'07' SEEK @V305066 00346000 SRIDE EQU X'31' SEARCH ID EQUAL @V305066 00347000 TIC EQU X'08' TRANSFER IN CHANNEL @V305066 00348000 SPACE 2 00349000 * CCW FLAGS 00350000 SLI EQU X'20' SUPPRESS WRONG LENGTH INDICATOR @V305066 00351000 CCSLI EQU X'60' CHAIN COMMAND/SUPP WRONG LEN IND @V305066 00352000 SPACE 2 00353000 CCBLNO EQU 7 LUB NUMBER WITHIN CLASS @V305066 00354000 RES EQU X'06' SYSRES @V305066 00355000 SLB EQU X'07' PRIV SO STMT LIB - SYSSLB @V305066 00356000 SEVTEEN EQU 17 @V305066 00357000 INDEX EQU 12 @V305066 00358000 IGN EQU X'FE' DET. IF PUB IGN OR UNASSIGNED @V305066 00359000 EXCP EQU 0 SVC 0 @V305066 00360000 HEX00 EQU X'00' @V305066 00361000 SVC11 EQU 11 SVC 11 @V305066 00362000 THREE EQU 3 @V305066 00363000 HUNDRED EQU 100 @V305066 00364000 SVC6 EQU 6 SVC 6 @V305066 00365000 QUOTE EQU X'7D' QUOTE FOR MESSAGE @V305066 00366000 EBCDIC EQU X'F0' MAKE SURE PRINTABLE CHARACTER @V305066 00367000 RC36 EQU 36 RETURN CODE = 36 @V305066 00368000 EJECT 00369000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00370000 * DSECTS * 00371000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00372000 SPACE 2 00373000 OVLAYA DSECT @V305066 00374000 BUCK1 DS XL4 DISK ADD OF PRIV LIB C2C1H2R (IP FM CALLER) @V305066 00375000 BUCK2 DS XL4 DISK ADD OF SYS LIB C2C1H2R (OP TO CALLER) @V305066 00376000 PRVSW DS X SWITCH BYTE @V305066 00377000 PROCLIB EQU X'80' BIT 0 = 0: OPEN SOURCE LIBRARY @V305066 00378000 PRIV EQU X'01' 1: OPEN PROC LIB @V305066 00379000 * BIT 7: PRIV LIB OPENED (IP FROM CALLER) 00380000 * BIT 7 IS SET TO 0 IF A PRIVATE LIBRARY HAS NO ACTIVE MEMBERS, 00381000 * ELSE UNCHANGED (OP TO CALLER) 00382000 PRSSSW DS X SWITCHES (OP TO CALLER) @V305066 00383000 ACTIVE EQU X'40' BIT 1: SYS LIB CONT ACT MEMBERS @V305066 00384000 SPACE 5 00385000 * SYSTEM DIRECTORY RECORD 3 00386000 REC3 DSECT @V305066 00387000 SSLAD DS XL7 START AD OF SO STMT LIB @V305066 00388000 SPACE 2 00389000 * DIRECTORY HEADER 00390000 HDR DSECT @V305066 00391000 DS XL44 UNUSED @V305066 00392000 AENTNO DS XL4 NO OF ACTIVE ENTRIES IN DIRECTORY @V305066 00393000 DS XL32 UNUSED @V305066 00394000 SPACE 2 00395000 * FREE STORAGE DSECT 00396000 FREE DSECT @V305066 00397000 BUFFER DS 10D @V305066 00398000 CHANPGM DS D SEEK @V305066 00399000 SDSRCH DS D SEARCH ID EQUAL @V305066 00400000 SDTIC DS D TRANSFER IN CHANNEL @V305066 00401000 SDRD DS D READ DATA @V305066 00402000 CCB DS 2D @V305066 00403000 ADDRESS DS XL2 BB @V305066 00404000 ADDRESS1 DS XL5 CCHHR @V305066 00405000 DS XL1 @V305066 00406000 EJECT 00407000 NUCON @V305066 00408000 EJECT 00409000 BGCOM @V305066 00410000 REGEQU @V305066 00411000 DOSCB @V305066 00412000 DMSOPL CSECT @V305066 00413000 LTORG @V305066 00414000 END 00416000