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