* /* START OF SPECIFICATIONS**** @Y30LB35 00050003 *01* PROCESSOR = ASSEM 00100003 **** END OF SPECIFICATIONS ** @Y30LB35*/ 00150003 LCLC &LIB 01400003 &LIB SETC 'LIB2' 01450003 LCLC &SS1 @Y30LB35 01500003 &SS1 SETC 'SS1' @Y30LB35 01550003 TITLE 'IGC0408B --- SVC 82 FOR IDCAMS UTILITIES' @Y30LB35 01600003 PRINT ON,DATA,GEN @Y30LB35 01650003 IGC0408B CSECT @Y30LB35 01700003 *STATUS- CHANGE LEVEL 000 @Y30LB35 01750003 * @Y30LB35 01800003 *FUNCTION/OPERATION- THIS LOAD OF SVC 82 PERFORMS OPERATIONS @Y30LB35 01850003 * FOR THE IDCAMS UTILITES. THIS LOAD IS A COMBINATION OF @Y30LB35 01900003 * IGC0008B AND IGC0208B. THE FUNCTIONS ARE AS FOLLOWS: @Y30LB35 01950003 * @Y30LB35 02000003 * 1) PERFORM PSEUDO OPEN BY BUILDING DEB IN PROTECTED, @Y30LB35 02050003 * PLACING THE DEB IN SYSTEM DEB TABLE, AND CHAINING @Y30LB35 02100003 * IT TO TCB DEB CHAIN. @Y30LB35 02150003 * @Y30LB35 02200003 * 2) PERFORM PSEUDO CLOSE BY REVERSING STEPS ABOVE IN @Y30LB35 02250003 * PSEUDO OPEN @Y30LB35 02300003 * @Y30LB35 02350003 * 3) CLEAR UCB VOLUME SERIAL NUMBER AND VTOC TTR @Y30LB35 02500003 * @Y30LB35 02502003 * 4) POST UCB WITH VOLUME SERIAL NUMBER AND VTOC TTR @Y30LB35 02510003 * @Y30LB35 02550003 *ENTRY POINTS- THE ONLY ENTRY POINT IS -IGC0408B-. @Y30LB35 02600003 * @Y30LB35 02650003 *INPUT- THIS MODULE IS XCTL TO FROM IGC0008B. A PARAMETER @Y30LB35 02700003 * LIST POINTED TO BY REGISTER 1 CONTAINS THREE WORDS. @Y30LB35 02750003 * @Y30LB35 02800003 * WORD1 PTR TO COPY OF CALLER'S PARM LIST IN SUBPOOL 229 @Y30LB35 02850003 * WORD2 PTR TO SVRB OF THIS SVC @Y30LB35 02900003 * WORD3 PTR TO INSTRUCTION AFTER SVC 82 IN CALLER'S PGM @Y30LB35 02950003 * @Y30LB35 03000003 * CALLER'S PARM LIST FOR FUNCTIONS @Y30LB35 03050003 * @Y30LB35 03100003 * 1) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=20. @Y30LB35 03150003 * -2ND WORD- PTR TO DCB @Y30LB35 03200003 * @Y30LB35 03250003 * 2) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=21. @Y30LB35 03300003 * -2ND WORD- RESERVED. @Y30LB35 03350003 * -3RD WORD- RESERVED. @Y30LB35 03400003 * -4TH WORD- ADDRESS OF OPEN DEB @Y30LB35 03450003 * @Y30LB35 03500003 * 3) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=22. @Y30LB35 03550003 * -2ND WORD- RESERVED. @Y30LB35 03600003 * -3RD WORD- RESERVED. @Y30LB35 03650003 * -4TH WORD- PTR AREA TO RTN OLD LABEL AND VTOC TTR0 @Y30LB35 03700003 * @Y30LB35 03750003 * 4) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=23. @Y30LB35 03800003 * -2ND WORD- PTR TO 6-BYTE SERIAL NO, IF OVERWRITTEN. @Y30LB35 03850003 * -3RD WORD- PTR TO TTR0 FOR VTOC. @Y30LB35 03900003 * @Y30LB35 03950003 *EXITS-NORMAL- VIA A SVC 3 TO THE CALLING ROUTINE. @Y30LB35 04000003 * @Y30LB35 04050003 *EXITS-ERROR- RETURN TO CALLER VIA REG 14. RETURN CODE=4. @Y30LB35 04100003 * @Y30LB35 04150003 *SUPERVISOR MACROS- GETMAIN,FREEMAIN,DEBCHK,MODESET @Y30LB35 04200003 * @Y30LB35 04250003 *OUTPUT- IF PSEUDO OPEN WAS REQUESTED THEN A DEB WILL BE @Y30LB35 04300003 * BUILT IN PROTECTED CORE, CHAINED TO TCB, AND INSERTED@Y30LB35 04350003 * INTO SYSTEM DEB TABLE. @Y30LB35 04400003 * @Y30LB35 04450003 * IF PSEUDO CLOSE WAS REQUESTED THEN THE DEB WILL BE @Y30LB35 04500003 * REMOVED AND FREED. @Y30LB35 04550003 * @Y30LB35 04600003 * IF POST UCB WAS REQUESTED THEN THE UCB WILL BE @Y30LB35 04650003 * POSTED WITH THE VOLUME SERIAL NUMBER, VTOC TTR0 AND @Y30LB35 04700003 * SET NOTREADY BIT OFF. @Y30LB35 04750003 * @Y30LB35 04800003 * IF CLEAR UCB WAS REQUESTED THEN THE UCB WILL BE @Y30LB35 04850003 * CLEARED OF THE VOLUME SERIAL NUMBER, VTOC TTR0 AND @Y30LB35 04900003 * SET NOTREADY BIT ON. @Y30LB35 04950003 * @Y30LB35 05000003 *ATTRIBUTES- REENTRANT,RELOCATABLE,PRIVILEGED,ENABLED. @Y30LB35 05050003 * @Y30LB35 05100003 *********************************************************************** 05150003 AIF ('&SS1' EQ 'SS1').SS001 OMIT DASDR CODE @Y30LB35 05200003 *098765,098432 VS06562 05250003 * YM04695 05300003 * VS02889 05350003 * YM03870 05400003 * YM03804 05450003 *STATUS CHANGE LEVEL 004 VS2/2 (MVM) YL02912 05500003 * * 05550003 *FUNCTION/OPERATION- SVC 82 PERFORMS THE FOLLOWING FUNCTIONS FOR * 05600003 * THE -IEHDASDR- UTILITY PROGRAM//TYPE 4 SVC WITH EXTENDED SVRB. * 05650003 * * 05700003 * 1) IN PREPARATION FOR SURFACE ANALYSIS FOR OFF-LINE VOLUMES. * 05750003 * -ASK FOR OPERATORS PERMISSION TO INITIALIZE A SPECIFIC VOL. * 05800003 * -IF OPERATOR REPLIES WITH A 'T', RETURN TO CALLER.RC=8. * 05850003 * -IF OPERATOR REPLIES WITH A 'U', BUILDS A DEB, LOADS IN * 05900003 * THE ABNORMAL-END APPENDAGE(IGG019P9), AND RETURNS TO * 05950003 * CALLER.RC=0. * 06000003 * * 06050003 * 2) ALTERNATE TRACK ASSIGNMENT REQUEST FOR GETALT FUNCTION. * 06100003 * -GETS CORE FOR A WORKAREA, BUILDS A DEB WITHIN THIS CORE, * 06150003 * AND PASSES CONTROL VIA A XCTL TO -IGC0108B- FOR THE * 06200003 * ACTUAL ALTERNATE TRACK ASSIGNMENT. * 06250003 * * 06300003 * 3) ALTERNATE TRACK REQUEST BY FORMAT/ANALYZE FUNCTION. * 06350003 * -SAME AS OPERATION 2 ABOVE. * 06400003 * * 06450003 * 4) POST UCB REQUEST. * 06500003 * -PASSES CONTROL VIA A XCTL TO -IGC0208B-. * 06550003 * * 06600003 * * 06650003 * 5) SPECIAL POST UCB REQUEST. * 06700003 * -DELETES THE ABNORMAL-END APPENDAGE. * 06750003 * -FREES THE CORE FOR THE DEB. * 06800003 * -PASSES CONTROL TO -IGC0208B-. * 06850003 * * 06900003 AIF ('&LIB' EQ 'LIB1').X227900 YM3475 06950003 * 6) DELETE DEB REQUEST. * 07000003 * -DELETES THE ABNORMAL-END APPENDAGE. * 07050003 * -FREES THE CORE FOR THE DEB. * 07100003 * * 07150003 * 7) ISSUE SENSE FOR WINCHESTER DEVICES. XL03130 07200003 * -ISSUE SENSE AND RETURN WINCHESTER MODEL NUMBER IN XL03130 07250003 * USERS' PARAMETER LIST + 4 : XL03130 07300003 * MODEL 1 = F'01' XL03130 07350003 * MODEL 2 = F'02' XL03130 07400003 * * 07450003 * 8) ONLINE ENQ REQUEST. * 07500003 * -ENQ'S ON VOLID OF 'TODD' VOLUME. YL02912 07550003 * * 07600003 .X227900 ANOP YM3475 07650003 *ENTRY POINT- THE ONLY ENTRY POINT IS -IGC0008B-. * 07700003 * * 07750003 *INPUT- A PARAMETER LIST POINTED TO BY REGISTER 1 FOR THE ABOVE * 07800003 * DESCRIBED FUNCTIONS. * 07850003 * * 07900003 * 1) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=8F. * 07950003 * -2ND WORD- PTR TO DCB,HIGH ORDER BYTE=80. * 08000003 * * 08050003 * 2) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=1F. * 08100003 * -2ND WORD- CCHH OF DEFECTIVE TRACK. * 08150003 * * 08200003 * 3) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=00. * 08250003 * -2ND WORD- CCHH OF DEFECTIVE TRACK. * 08300003 * -3RD WORD- PTR TO 6-BYTES OF ALT. TRACK INFO. * 08350003 * * 08400003 * 4) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=08. * 08450003 * -2ND WORD- PTR TO 6-BYTE SERIAL NO, IF OVERWRITTEN. * 08500003 * -3RD WORD- PTR TO MBBCCHHR FOR NEW VTOC. * 08550003 * * 08600003 * 5) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=88. * 08650003 * -2ND WORD- PTR TO 6-BYTE SERIAL NO, IF OVERWRITTEN. * 08700003 * -3RD WORD- PTR TO MBBCCHHR FOR NEW VTOC. * 08750003 * -4TH WORD- PTR TO DEB. * 08800003 * * 08850003 AIF ('&LIB' EQ 'LIB1').X227901 YM3475 08900003 * 6) -1ST WORD- RESERVED, HIGH ORDER BYTE=F8. * 08950003 * -2ND WORD- RESERVED. * 09000003 * -3RD WORD- RESERVED. * 09050003 * -4TH WORD- PTR TO DEB. * 09100003 * * 09150003 * 7) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=F1. XL03130 09200003 * -2ND WORD- HIGH ORDER BYTE=80. XL03130 09250003 * * 09300003 * 8) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=04. YL02912 09350003 * * 09400003 * 9) -1ST WORD- PTR TO UCB,HIGH ORDER BYTE=44. YL02912 09450003 * * 09500003 .X227901 ANOP YM3475 09550003 *EXITS-NORMAL- RETURN TO CALLER VIA REG 14. RETURN CODE=0. * 09600003 * * 09650003 *EXITS-ERROR- RETURN TO CALLER VIA REG 14. RETURN CODE=8. * 09700003 * * 09750003 *EXTERNAL ROUTINES- SVC IS ISSUED FOR THE FOLLOWING FUNCTIONS FROM * 09800003 * * 09850003 * THE FOLLOWING MODULES. * 09900003 * * 09950003 * 1) IHEDANAL. * 10000003 * * 10050003 * 2) IEHDGETA. * 10100003 * * 10150003 * 3) IEHDANAL,IEHDCELL. * 10200003 * * 10250003 * 4) IEHDLABL,IEHDANAL,IEHDREST,IEHDDUMP * 10300003 * * 10350003 * 5) IEHDANAL * 10400003 * * 10450003 AIF ('&LIB' EQ 'LIB1').X227902 YM3475 10500003 * 6) IEHDANAL,IEHDLABL. * 10550003 * * 10600003 * 7) IEHDASDS XL03130 10650003 * * 10700003 * 8) IEHDASDS, FOR ENQING ON THE TODD UCBS' VOLID. YL02912 10750003 * * 10800003 .X227902 ANOP YM3475 10850003 *SUPERVISOR MACROS- GETMAIN,FREEMAIN,WTOR,WTO,LOAD,XCTL. * 10900003 * * 10950003 *TABLES/WORKAREAS- OBTAINS A WORKAREA FOR -IGC0108B- WHICH IS * 11000003 * DESCRIBED BY THE DSECT -IOBLOCKS-. * 11050003 * * 11100003 *OUTPUT- * 11150003 * 1) FOR FUNCTION NO. 1,BUILDS A PROPER DEB AND LOADS IN THE * 11200003 * ABNORMAL-END APPENDAGE. * 11250003 * * 11300003 * -FOR ALL OTHER FUNCTIONS, SEE -IGC0108B- OR -IBC0208B. * 11350003 * * 11400003 *ATTRIBUTES- REENTRANT,RELOCATABLE,PRIVILEGED,ENABLED. * 11450003 * * 11500003 *********************************************************************** 11550003 .SS001 ANOP 11600003 EJECT 11650003 * THE FOLLOWING ARE REGISTER ASSIGNMENTS. 11700003 PARMPTR EQU 1 POINTER TO INPUT PARAMETERS. 11750003 R0 EQU 0 11800003 R1 EQU 1 11850003 R2 EQU 2 11900003 R3 EQU 3 11950003 R4 EQU 4 12000003 R5 EQU 5 @Y30LB35 12050003 R6 EQU 6 12100003 R7 EQU 7 Y01021 12150003 R8 EQU 8 TCB ADDRESS. 12200003 R9 EQU 9 12250003 R11 EQU 11 POINTER TO INPUT PARAMETERS. 12300003 R14 EQU 14 LINK REGISTER. 12350003 R15 EQU 15 12400003 GR0 EQU 0 12450003 GR1 EQU 1 12500003 GR2 EQU 2 INDEX TO UCB TABLE ENTRIES. 12550003 GR3 EQU 3 POINTER TO TABLE UCB. 12600003 GR4 EQU 4 POINTER TO NEW SERIAL. 12650003 GR5 EQU 5 POINTER TO TABLE UCB SERIAL. 12700003 GR6 EQU 6 POINTER TO INPUT UCB. 12750003 GR7 EQU 7 12800003 GR8 EQU 8 12850003 GR9 EQU 9 12900003 GR10 EQU 10 12950003 GR11 EQU 11 13000003 GR12 EQU 12 13050003 GR14 EQU 14 LINK REGISTER. 13100003 BASEREG EQU 12 BASE REGISTER. 13150003 GR15 EQU 15 13200003 SPACE 13250003 DYNALT EQU X'1F' GETALT ASSIGNMENT. 13300003 SENS EQU X'F1' SENSE REQUEST FOR WINCH XL03130 13350003 * 13400003 NEWVOL EQU X'8F' NEW VOLUME INPUT. 13450003 COMMA EQU C',' EBCDIC COMMA. 13500003 SLASH EQU C'/' 2321 BIN SEPARATOR. 13550003 WSIZE EQU 52 CONSOLE MESSAGE SIZE. 13600003 WSIZE1 EQU WSIZE-12 MESSAGE LENGTH. @Y30LB35 13650003 DA2321 EQU X'05' UCB DEVICE TYPE CODE FOR 2321. 13700003 LASTBIN EQU X'09' LAST BIN NO. FOR SUB-UCBS. 13750003 SUBLNG EQU 16 LENGTH OF EACH SUB-UCB. 13800003 MAINUCB EQU X'FF' PRIMARY UCB IDENTIFIER. 13850003 NOTREADY EQU X'40' UCB NOT READY BIT. 13900003 PGFIXBIT EQU X'80' PAGE FIX APPENDAGE PRESENT 13950003 SPACE 14000003 INIT EQU X'00' ANALYZE/FORMAT REQUEST. 14050003 POSTSPEC EQU X'88' POST REQUEST FOR NEW VOLUMES. 14100003 POST EQU X'08' POST INDICATOR. 14150003 RETURN EQU 3 RETURN SVC CODE. 14200003 X06 EQU X'06' HEX CONSTANT S20201 14250003 X07 EQU X'07' HEX CONSTANT S20201 14300003 E0 EQU 0 CONSTANT OF 0 Y01021 14350003 E3 EQU 3 CONSTANT OF 3 Y01021 14400003 E4 EQU 4 CONSTANT OF 4 Y01021 14450003 E5 EQU 5 CONSTANT OF 5 Y01021 14500003 E8 EQU 8 CONSTANT OF 8 Y01021 14550003 E12 EQU 12 CONSTANT OF 12 Y01021 14600003 E44 EQU 44 CONSTANT OF 44 Y01021 14650003 E45 EQU 45 CONSTANT OF 45 Y01021 14700003 FOXES EQU X'FF' END OF P.L. FLAG FOR ENQ SJ0054 14750003 D0 EQU 0 ZERO DISPLACEMENT. YL02912 14800003 D1 EQU 1 DISPL. OF ONE. YL02912 14850003 D3 EQU 3 DISPL. OF THREE YM04695 14900003 HEX0 EQU X'00' WILL ZERO ENQ R.C. YM04695 14950003 L3 EQU 3 LENGTH OF THREE. YL02912 15000003 L6 EQU 6 LENGTH OF SIX 15050003 K36 EQU 36 CONSTANT OF 36. YL02912 15100003 K24 EQU 24 CONSTANT OF 24. @Y30LB35 15110003 PTRCVT EQU 16 CVT PTR ADDR Y01021 15150003 AIF ('&LIB' EQ 'LIB1').X227903 YM3475 15200003 DELDEB EQU X'F8' DEB DELETE REQUEST. YM3475 15250003 NALOCOFF EQU X'FB' MASK TO RESET UCBNALOC YL02912 15300003 EIGHT EQU 8 RETURN CODE FROM ENQ YL02912 15350003 ENQ EQU X'04' ONLINE ENQ FUNC BYTE YL02912 15400003 DEQ EQU X'44' ONLINE DEQ FUNC BYTE YL02912 15450003 ONE EQU GR1 CONSTANT YL02912 15500003 OFFLINE EQU X'88' OFFLINE LABEL IND. YL02912 15550003 RBEXSAV EQU 96 ADDRESSING OFFSET - RB @Y30LB35 15600003 SS1OPEN EQU X'20' ENTRY CODE FOR OPEN @Y30LB35 15650003 SS1CLOSE EQU X'21' ENTRY CODE FOR CLOSE @Y30LB35 15700003 SS1CLEAR EQU X'22' ENTRY CODE CLEAR UCB @Y30LB35 15750003 SS1POST EQU X'23' ENTRY CODE FOR POST UCB @Y30LB35 15800003 FOUR EQU 4 CODE INDICATE DUP VOL @Y30LB35 15850003 .X227903 ANOP YM3475 15900003 EJECT 15950003 * THE FOLLOWING ARE REGISTER ASSIGNMENTS. @Y30LB35 16000003 LR BASEREG,GR15 SET UP ADDRESSING. @Y30LB35 16050003 USING IGC0408B,BASEREG @Y30LB35 16100003 USING RBBASIC,GR5 @Y30LB35 16150003 L GR5,FOUR(GR1) PICK RB EXTENT AREA @Y30LB35 16200003 LA GR5,0(GR5) CLEAR HIGH ORDER BYTE @Y30LB35 16250003 SPACE 2 @Y30LB35 16300003 L GR11,0(GR1) PARM LIST POINTER. @Y30LB35 16350003 USING PARMLIST,GR11 YL02912 16400003 USING TCB,R8 YL02912 16450003 LR GR9,GR5 SVRB ADDRESS. @Y30LB35 16500003 USING CVT,GR2 @Y30LB35 16550003 L GR2,CVTPTR ADDRESS OF CVT. @Y30LB35 16600003 L GR8,CVTTCBP PICK UP TCB PTR @Y30LB35 16650003 L GR8,FOUR(GR8) PICK UP THIS TCB ADDR @Y30LB35 16700003 L GR2,CVTILK2 UCB ADDRESS TABLE. @Y30LB35 16750003 DROP GR2 @Y30LB35 16800003 AIF ('&SS1' EQ 'SS1').SS01 OMIT DASDR CODE @Y30LB35 16850003 BALR BASEREG,0 SET UP ADDRESSING. 16900003 USING *,BASEREG 16950003 SPACE 17000003 LR GR10,PARMPTR GET PARAMETER POINTER. YL02912 17050003 SPACE 17100003 *********************************************************************** 17150003 * * 17200003 * THE CALLERS PARAMETER LIST WILL BE PLACED INTO A FIVE WORD BLOCK * 17250003 * OF GOTTEN CORE OF THE SVC'S KEY. THE FIRST FOUR WORDS WILL BE A * 17300003 * COPY OF THE CALLER'S LIST AND THE LAST WORD WILL CONTAIN THE KEY * 17350003 * OF THE CALLER IN THE FIRST BYTE AND THE ADDRESS OF THE CALLER'S * 17400003 * LIST IN THE LAST THREE BYTES. * 17450003 * * 17500003 *********************************************************************** 17550003 LR GR8,GR4 LOAD TCB PTR XL03130 17600003 SPACE 17650003 USING PARMLIST,R11 YL02912 17700003 USING RBBASIC,GR5 YL02912 17750003 MODESET EXTKEY=SUPR YL02912 17800003 ST GR14,RBEXSAVE+K36 SAVE RETURN ADDRESS. YL02912 17850003 MODESET EXTKEY=DATAMGT YL02912 17900003 LA R2,ENDLIST-PARMLIST CORE FOR PARM LIST. YL02912 17950003 GETMAIN R,LV=(2),SP=229 FOR CALLER'S PARAMETER. YL02912 18000003 LR R11,R1 SAVE NEW PARM POINTER. YL02912 18050003 ST GR10,PRMPTR SAVE OLD PARM POINTER. YL02912 18100003 LR R8,R4 GET ADDR OF CURRENT TCB.YL02912 18150003 SPACE 18200003 MODESET EXTKEY=RBT234,WORKREG=3 GET CALLER'S KEY. YL02912 18250003 LM R1,R4,E0(GR10) GET CALLER'S PARM LIST. YL02912 18300003 MODESET EXTKEY=DATAMGT,SAVEKEY=KEY,WORKREG=15 YL02912 18350003 STM R1,R4,PARMLIST CALLER'S LIST TO MINE. YL02912 18400003 .SS01 ANOP @Y30LB35 18450003 *********************************************************************** 18500003 * * 18550003 * DETERMINE THE FUNCTION TO BE PERFORMED. * 18600003 * * 18650003 *********************************************************************** 18700003 AIF ('&SS1' EQ 'SS1').SS02 OMIT DASDR CODE @Y30LB35 18750003 SPACE 18800003 AIF ('&LIB' EQ 'LIB1').NOWIN BRCH IF OS ASSEM XL03130 18850003 .NOWIN ANOP XL03130 18900003 CLI FUNCTION,SENS IS THIS A SENSE REQUEST. XL03130 18950003 BE SENSIT YES, GO ISSUE SENSE CMD XL03130 19000003 .SS02 ANOP @Y30LB35 19050003 MODESET EXTKEY=DATAMGT @Y30LB35 19060003 SPACE 19100003 CLI FUNCTION,SS1OPEN NEW VOLUME REQUEST? @Y30LB35 19150003 BE NEWPACK YES, GO BUILD DEB. @Y30LB35 19200003 SPACE 19250003 CLI FUNCTION,SS1CLOSE DYNAMIC ALT TRK REQT @Y30LB35 19300003 BE CLOSENEW YES, ASSIGN ALTERNATE. @Y30LB35 19350003 SPACE 19400003 CLI FUNCTION,SS1CLEAR ANALYZE/FORMAT REQUEST @Y30LB35 19450003 BE CLEARUCB YES, PROCESS TRACK. @Y30LB35 19500003 SPACE 19550003 CLI FUNCTION,SS1POST POST UCB REQUEST? @Y30LB35 19600003 BE POSTUCB YES, UPDATE UCBS. YL02912 19650003 AIF ('&SS1' EQ 'SS1').SS03 OMIT DASDR CODE @Y30LB35 19700003 SPACE 19750003 CLI FUNCTION,POSTSPEC OFFLINE POST REQUEST? YL02912 19800003 BE SPECPOST YES, UPDATE UCB. YL02912 19850003 SPACE 19900003 CLI FUNCTION,DELDEB DEB DELETE REQUEST? YL02912 19950003 BE SPECPOST YES DELETE DEB. YL02912 20000003 SPACE 20050003 CLI FUNCTION,ENQ ENQUEUE REQUEST? YL02912 20100003 BE ENQUE YES, UPDATE UCB. YL02912 20150003 .SS03 ANOP @Y30LB35 20200003 SPACE 20250003 B EXIT UNSUPPORTED FUNCTION. YL02912 20300003 EJECT 20350003 AIF ('&SS1' EQ 'SS1').SS04 OMIT DASDR CODE @Y30LB35 20400003 AIF ('&LIB' EQ 'LIB1').NOWIN1 BRCH IF OS ASSEM XL03130 20450003 ********************************************************************** 20500003 * THE FOLLOWING ROUTINE WILL ISSUE A 'SENSE' CMD TO THE 20550003 * WINCHESTER DEVICE BEING PROCESSED BY IEHDASDS. THE SENSE WILL 20600003 * DETERMINE WHICH MODEL WINCHESTER IS BEING USED. 20650003 ********************************************************************** 20700003 SPACE 20750003 SENSIT EQU * XL03130 20800003 GETMAIN R,LV=88,SP=229 CORE FOR EXCP CTL BLKS YL02130 20850003 USING CTLBLKS,GR2 XL03130 20900003 LR GR2,GR1 SAVE AREA ADDR XL03130 20950003 L GR1,CVTPTR GET CVT ADDR XL03130 21000003 USING CVT,GR1 21050003 LA GR4,BUMP DCBORG XL03130 21100003 XC DCBORG(L88),DCBORG CLEAR CTL BLKS XL03130 21150003 SR GR2,GR4 RESET DSECT BASE XL03130 21200003 L GR3,UCBPTR GET UCB ADDR XL03130 21250003 USING UCB,GR3 XL03130 21300003 MODESET EXTKEY=SUPR YM5769 21350003 NI UCBFL1,MASK-UCBNOTRD TURN OFF NOT-READY BIT XL03130 21400003 MODESET EXTKEY=DATAMGT YM5769 21450003 ST GR3,DEBUCB STORE UCB IN DEB XL03130 21500003 MVI DEBUCB,INIT ZERO FILE MASK XL03130 21550003 LA GR3,ECB1 GET ECB ADDR XL03130 21600003 ST GR3,IOBECB STORE IT IN IOB XL03130 21650003 MVC CCW,SENSCCW MOVE SKELTON CCW XL03130 21700003 LA GR4,CCW GET CCW ADDR XL03130 21750003 ST GR4,IOBCCW STORE IN IOB XL03130 21800003 LA GR4,SENSE GET AREA ADDR XL03130 21850003 ST GR4,CCW SETUP SENSE CCW XL03130 21900003 MVI CCW,SENSEOP RESET OP CODE XL03130 21950003 ST GR2,DEBDCB PUT DCB ADDR IN DEB XL03130 22000003 MVC DEBAPP(L4),CVTXAPG APPDGE VECTOR TABL ADDR XL03130 22050003 ST GR2,IOBDCB DCB ADDR IN IOB XL03130 22100003 LA GR4,DEBORG LOAD DEB ADDR XL03130 22150003 ST GR4,DCBDEB STORE IT IN DCB XL03130 22200003 MVC DEBDCB(L1),TCBPKF MOVE TCB KEY TO DEB XL03130 22250003 OI DEBDCB,DEBID SET DEB ID XL03130 22300003 EXCP IOB1 ISSUE SENSE CMD XL03130 22350003 WAIT ECB=ECB1 WAIT FOR SENSE XL03130 22400003 CLI ECB1,GOODRT SUCCESSFUL SENSE ? XL03130 22450003 BNE FREEIT NO, DONT SET MODEL NO. XL03130 22500003 TM SENSE+L2,MOD1 36MEG WINCH. ? XL03130 22550003 BO STORE1 YES, GO STORE X'01' XL03130 22600003 TM SENSE+L2,MOD2 72 MEG WINCH XL03130 22650003 BNO FREEIT NO, EXIT XL03130 22700003 MVI WINMOD,MOD2 MOVE MODEL NO TO PL XL03130 22750003 B FREEIT EXIT XL03130 22800003 STORE1 EQU * XL03130 22850003 MVI WINMOD,MOD1 MOVE MODEL NO TO PL XL03130 22900003 FREEIT EQU * XL03130 22950003 LA GR2,BUMP(GR2) RESET CORE PTR XL03130 23000003 FREEMAIN R,LV=88,A=(GR2),SP=229 FREE CTL BLK CORE YL02130 23050003 L GR4,PRMPTR CALLER'S LIST ADDR. YL02912 23100003 IC GR9,WINMOD GET WINCH MODEL NO. VS02889 23150003 MODESET KEYADDR=KEY,WORKREG=15 GET CALLER'S KEY. YL02912 23200003 STC GR9,L7(GR4) STORE MODEL NO. IN P.L. VS02889 23250003 MODESET EXTKEY=DATAMGT YL02912 23300003 CLI WINMOD,INIT WAS SENSE GOOD ? XL03130 23350003 BNE EXIT YES, EXIT XL03130 23400003 BAL R9,FREEPARM GO FREE PARM LIST. 23450003 LA GR15,GR15 NO, SET NON-ZERO R.C. XL03130 23500003 B EXIT2 RETURN TO 'DASDS XL03130 23550003 DROP GR1 23600003 EJECT 23650003 .NOWIN1 ANOP XL03130 23700003 .SS04 ANOP @Y30LB35 23750003 CLOSENEW DS 0H @Y30LB35 23800003 AIF ('&SS1' EQ 'SS1').SS05 OMIT DASDR CODE @Y30LB35 23900003 DELETE EP=IGG019P9 FREE UP CORE USED BY APPENDAGE. 23950003 AIF ('&LIB' EQ 'LIB1').WM004 24000003 DELETE EP=IGG019P7 FREE UP CORE USED BY YM3011 24050003 * APPENDAGE. 24100003 .WM004 ANOP 24150003 .SS05 ANOP @Y30LB35 24200003 L GR6,DEBPTR ADDRESS OF DEB. YL02912 24250003 LA GR0,DEB-MYDEB OFFSET FORM WORKAREA START. 24300003 SR GR6,GR0 START OF WORK AREA. YL02912 24350003 USING MYDEB,GR6 YL02912 24400003 AIF ('&LIB' EQ 'LIB1').WM008 24450003 AIF ('&SS1' EQ 'SS1').SS051 OMIT DASDR CODE @Y30LB35 24500003 L GR4,DEBUCBAD-ONE GET UCB ADDR YL02912 24550003 USING UCB,GR4 YL02912 24600003 MODESET EXTKEY=SUPR YL02912 24650003 NI UCBFL5,NALOCOFF SET BIT OFF YL02912 24700003 .SS051 ANOP @Y30LB35 24750003 MODESET EXTKEY=DATAMGT YL02912 24800003 L GR4,DEBDEBID GET DCB ADDR Y01021 24850003 LA GR4,E0(GR4) CLEAR HIGH ORDER BYTE Y01021 24900003 DEBCHK (GR4),TYPE=DELETE,AM=EXCP YL02912 24950003 EJECT 25000003 *********************************************************************** 25050003 * * 25100003 * TAKE DEB OFF TCB DEB CHAIN. * 25150003 * * 25200003 *********************************************************************** 25250003 SPACE 25300003 LA GR9,DEBDEBAD GET ADDRESS OF NEXT DEB.YL02912 25350003 CLC TCBDEB+D1(L3),DEBPTR+D1 TCB POINT TO MY DEB? YL02912 25400003 BNE GETDEB NO,SEARCH DEB CHAIN. YL02912 25450003 MODESET EXTKEY=SUPR YL02912 25500003 MVC TCBDEB+D1(L3),D0(GR9) YES, UNCHAIN DEB. YL02912 25550003 MODESET EXTKEY=DATAMGT YL02912 25600003 B FREEDEB GO FREE DEB AREA. YL02912 25650003 SPACE 25700003 GETDEB EQU * YL02912 25750003 L GR4,TCBDEB GET DEB CHAIN POINTER. YL02912 25800003 USING DEB,GR4 YL02912 25850003 CHKDEB EQU * YL02912 25900003 CLC DEBDEBAD(L3),DEBPTR+D1 DEB POINT TO MY DEB? YL02912 25950003 BE OURDEB YES, GO UNCHAIN. YL02912 26000003 L GR4,DEBDEBAD-D1 NO, GET NEXT DEB. YL02912 26050003 B CHKDEB CHECK NEXT DEB. YL02912 26100003 SPACE 26150003 OURDEB EQU * YL02912 26200003 MVC DEBDEBAD(L3),D0(GR9) UNCHAIN MY DEB. YL02912 26250003 B FREEDEB GO FREE DEB AREA. YL02912 26300003 DROP GR4 YL02912 26350003 DROP GR6 @Y30LB35 26400003 EJECT 26450003 AIF ('&SS1' EQ 'SS1').SS06 OMIT DASDR CODE @Y30LB35 26500003 *********************************************************************** 26550003 * THE FOLLOWING ROUTINE WILL CAUSE THE DASDI DEVICE TO BE ENQ'ED 26600003 * UPON, VIA ITS' VOLID. THE INITIATORS' TCB WILL BE USED IN 26650003 * THE EVENT IEHDASDR SHOULD ABEND BEFORE DEQ'ING. 26700003 *********************************************************************** 26750003 SPACE 26800003 ENQUE EQU * YL02912 26850003 L GR6,UCBPTR GET UCB ADDR YL02912 26900003 USING UCB,GR6 YL02912 26950003 LA GR7,UCBVOLI GET ADDR OF VOLID YL02912 27000003 L GR9,TCBOTC LOAD MOTHER TCB ADDR YM03804 27050003 MVC ENQLIST(SYSQ-ENQLISTF),ENQLISTF MOVE LIST TO W/A YM03804 27100003 * 27150003 ENQ (,(GR7),E,6,SYSTEM),RET=USE,TCB=(GR9), YM03804*27200003 MF=(E,ENQLIST) YM03804 27250003 * 27300003 LTR GR15,GR15 HAVE WE GOT THE RESR ? YL02912 27350003 BZ EXIT YES, BRCH YL02912 27400003 LA GR15,D3(GR15) INCRE TO R.C. YL02912 27450003 CLI 0(GR15),EIGHT RC = 8 ? YL02912 27500003 BE ENQAGN YES, RE-ENQ YL02912 27550003 BAL R9,FREEPARM FREE PARAMETER LIST. YL02912 27600003 LA GR15,NOGO SOMEONE ELSE HAS RESRC YL02912 27650003 B EXIT2 RETURN TO 'DASDS YL02912 27700003 ENQAGN EQU * YL02912 27750003 * 27800003 MVI ENQLIST+D3,HEX0 ZERO R.C. YM04695 27850003 ENQ (,(GR7),E,6,SYSTEM),RET=CHNG,TCB=(GR9), YM03804*27900003 MF=(E,ENQLIST) YL02912 27950003 * 28000003 LTR GR15,GR15 HAVE WE GOT THE RESRC? YL02912 28050003 BZ EXIT YES, RETURN TO 'DASDS YL02912 28100003 LA GR15,D3(GR15) INCRE TO R.C. YL02912 28150003 CLI 0(GR15),EIGHT RC = 8 ? YL02912 28200003 BE ENQUE ENQ WITH RET=USE YL02912 28250003 BAL R9,FREEPARM FREE PARAMETER LIST. YL02912 28300003 LA GR15,NOGO SOMEONE ELSE HAS RESRC YL02912 28350003 B EXIT2 YL02912 28400003 .SS06 ANOP @Y30LB35 28450003 FREEDEB EQU * CONTINUE YM2646 28500003 LR GR1,GR6 GET DEB ADDRESS. YL02912 28550003 USING MYDEB,GR1 YL02912 28600003 L GR4,DEBDEBID GET DCB ADDRESS. YM3475 28650003 L GR6,BLANKS GET BLANK DDNAME. YM3475 28700003 MODESET KEYADDR=KEY,WORKREG=2 GET CALLER'S KEY. YL02912 28750003 ST GR6,E44(GR4) SET BLANKS IN DCB DDNAME.YM3475 28800003 MODESET EXTKEY=DATAMGT YL02912 28850003 .WM008 ANOP 28900003 LA R3,DEBEND-MYDEB SIZE OF DEB WORKAREA. YL02912 28950003 DROP GR1 @Y30LB35 29000003 FREEMAIN R,LV=(3),A=(1),SP=230 YM4604 29050003 LR GR1,GR11 RESTORE PARM POINTER. 29100003 AIF ('&LIB' EQ 'LIB1').X227102 YM3475 29150003 AIF ('&SS1' EQ 'SS1').SS07 OMIT DASDR CODE @Y30LB35 29200003 CLI FUNCTION,DELDEB DEB DELETE REQUEST? YL02912 29250003 BNE CKUCBS NO, GO POST UCBS. YM3475 29300003 .SS07 ANOP @Y30LB35 29350003 EXIT EQU * YL02912 29400003 BAL R9,FREEPARM GO FREE PARM LIST. YL02912 29450003 SR R15,R15 SET RETURN CODE ZERO. YL02912 29500003 L R14,RBEXSAVE+K24 GET RETURN ADDRESS. YL02912 29550003 MODESET EXTKEY=SUPR SJ0054 29600003 BR R14 RETURN. YL02912 29650003 .X227102 ANOP YM3475 29700003 AIF ('&SS1' EQ 'SS1').SS071 OMIT DASDR CODE @Y30LB35 29750003 SPACE 29800003 CKUCBS EQU * 29850003 MODESET EXTKEY=SUPR YL02912 29900003 ST GR11,RBEXSAVE+K16 SAVE PARM POINTER. YL02912 29950003 LR GR1,GR5 ADDRESS OF EXTENTED SAVE AREA. 30000003 LA GR4,XCTL1 ADDRESS OF XCTL LIST. 30050003 B NEXTLOAD GO BRING IN NEXT LOAD. 30100003 .SS071 ANOP @Y30LB35 30150003 SPACE 2 30200003 USING IOBLOCKS,R2 30250003 FREEPARM EQU * YL02912 30300003 LA R3,ENDLST-PARMLIST SIZE OF PARM LIST. @Y30LB35 30350003 LR R1,R11 ADDRESS OF PARM LIST. YL02912 30400003 FREEMAIN R,LV=(3),A=(1),SP=229 FREE THE WORK AREA. YL02912 30450003 BR R9 RETURN. 30500003 EJECT 30550003 ************************************************************* @Y30LB35 30600003 * @Y30LB35 30650003 * PREPARE TO INITIALIZE HERE. @Y30LB35 30700003 * @Y30LB35 30750003 ************************************************************* @Y30LB35 30800003 NEWPACK DS 0H BUILD A DEB @Y30LB35 30850003 AIF ('&SS1' EQ 'SS1').SS08 OMIT DASDR CODE @Y30LB35 30950003 LA R2,WTORP1-MSG SIZE OF GETMAIN AREA. 31000003 GETMAIN R,LV=(2),SP=229 CORE FOR MESSAGE AREA. YL02912 31050003 LR R2,R1 SAVE ADDRESS OF WORKAREA. 31100003 USING MSG,R2 31150003 TRYAGAIN EQU * 31200003 XC MSG(WTORP1-MSG),MSG CLEAR AREA TO ZERO. 31250003 MVC MSG(WTOREND-WTORP),WTORP PLACE MESSAGE IN WORKAREA. 31300003 .SS08 ANOP @Y30LB35 31350003 SPACE 31400003 USING UCB,R6 31450003 L R6,UCBPTR UCB ADDRESS. YL02912 31500003 AIF ('&LIB' EQ 'LIB2').X301001 XL03912 31550003 CLI UCBID,MAINUCB THIS A 2321. 31600003 BNE W2321 YES-GO PROCESS. 31650003 SPACE 31700003 FIXMSG EQU * 31750003 .X301001 ANOP XL03912 31800003 AIF ('&SS1' EQ 'SS1').SS09 OMIT DASDR CODE @Y30LB35 31850003 MODESET EXTKEY=SUPR YL02912 31900003 NI UCBFL2,X'FF'-X'40' *** TURN-OFF NOT READY BUT. ******* 31950003 .SS09 ANOP @Y30LB35 32000003 MODESET EXTKEY=DATAMGT YL02912 32050003 AIF ('&SS1' EQ 'SS1').SS10 OMIT DASDR CODE @Y30LB35 32100003 MVC MSG6(3),UCBNAME EBCDIC NAME TO MESSAGE. 32150003 LA GR4,INITIAL O122 32200003 CLI DCBPTR,OFFLINE OFFLINE LABEL REQUEST? YL02912 32250003 BNE FIXMSGA NO-ANALYZE-ALL SET. O122 32300003 LA GR4,LABEL YES-POINT TO LABEL WORD. O122 32350003 FIXMSGA MVC MSG5+34(10),0(GR4) FINISH SETTING UP MESSAGE. O122 32400003 SPACE 32450003 LA R4,REPLY REPLY ADDRESS. 32500003 LA R3,WECB ECB ADDRESS FOR WTOR. 32550003 LR R1,R2 INSURE ADDRESS IS SET FOR LIST. 32600003 WTOR ,(4),1,(3),MF=(E,(1)) ASK FOR PERMISSION TO INITIALIZE 32650003 * * 32700003 WAIT ECB=WECB AWAIT FOR REPLY. 32750003 CLI REPLY,C'U' DOES REPLY INDICATE 'USE'. 32800003 BE USE YES-GO BUILD A DEB. 32850003 CLI REPLY,C'T' DOES REPLY INDICATE TERMINATE. 32900003 BE NOUSE YES--EXIT NOW. 32950003 MVC MSG(WTOEND-WTO),WTO MESSAGE TO BUFFER. 33000003 LR R1,R2 ISURURE LIST ADDRESS IS SET. 33050003 WTO ,MF=(E,(1)) TELL OPERATOR ABUOT ERROR. 33100003 B TRYAGAIN REPEAT THE REQUEST. 33150003 * * 33200003 NOUSE EQU * DEB BUILDING TERMINATED. 33250003 LA R3,WTORP1-MSG LENGTH OF WORK AREA. 33300003 LR R1,R2 ADDRESS OF WORKAREA. 33350003 BAL GR9,FREECORE GO FREE THE WORKAREA. 33400003 BAL R9,FREEPARM GO FREE PARM LIST. YL02912 33450003 LA R15,8 SET RETURN CODE. 33500003 B EXIT2 RETURN TO CALLER. YL02912 33550003 EJECT 33600003 OFFLENQ EQU * YL02912 33650003 LA GR4,SYSQ ADDR OF QNAME HDR YL02912 33700003 LA GR6,Q4 ADDR OF RNAME ID YL02912 33750003 L GR7,TCBOTC GET MOTHER' TCB ADDR YM03804 33800003 MVC ENQLIST(SYSQ-ENQLISTF),ENQLISTF MOVE LIST TO W/A YM03804 33850003 * 33900003 ENQ ((GR4),(GR6),E,2,SYSTEM),RET=USE,TCB=(GR7), *33950003 MF=(E,ENQLIST) 34000003 * 34050003 L GR1,UCBPTR DEQ'ED UCB ADDR YL02912 34100003 USING UCB,GR1 34150003 TM UCBSTAT,UCBONLI THIS UCB STILL OFFLINE? YL02912 34200003 BO ERR NO, DEQ AND LEAVE. YL02912 34250003 MODESET EXTKEY=SUPR YL02912 34300003 OI UCBFL5,UCBNALOC SET FLAG FOR DEV ALLOC YL02912 34350003 * AND VARY PROCESSOR. YL02912 34400003 MODESET EXTKEY=DATAMGT YL02912 34450003 DEQU EQU * YL02912 34500003 DEQ ((GR4),(GR6),2,SYSTEM),RET=HAVE,TCB=(GR7), YL02912*34550003 MF=(E,ENQLIST) 34600003 * 34650003 BR GR9 EXIT YL02912 34700003 ERR EQU * YL02912 34750003 LA GR9,ERREXIT SVC RETURN CODE SET YL02912 34800003 B DEQU DEQUEUE FROM SYSQ HDR YL02912 34850003 .SS10 ANOP @Y30LB35 34900003 B USE GO BUILD A DEB. @Y30LB35 34950003 AIF ('&SS1' EQ 'SS1').SS101 OMIT DASDR CODE @Y30LB35 35000003 ERREXIT EQU * YL02912 35050003 BAL R9,FREEPARM GO FREE PARM LIST. YL02912 35100003 LA GR15,NOGO SETUP SVC RETURN CODE YL02912 35150003 B EXIT2 EXIT TO DASDS YL02912 35200003 EJECT YL02912 35250003 AIF ('&LIB' EQ 'LIB2').X301002 XL03912 35300003 * USING DATACELL,GR6 35350003 *W2321 MVC MSG6+4(1),DCELBBNR+1 BIN NO. TO MESSAGE. 35400003 OI MSG6+4,X'F0' SET ZONE BITS. 35450003 MVI MSG6+3,SLASH BIN SEPARATOR. 35500003 BAL GR14,CONV2321 FIND MAIN UCB ADDRESS. 35550003 B FIXMSG GO COMPLETE THE MESSAGE. 35600003 .X301002 ANOP XL03912 35650003 .SS101 ANOP @Y30LB35 35700003 EJECT @Y30LB35 35750003 *********************************************************************** 35800003 * * 35850003 * BUILD A DEB FOR A NEW VOLUME HERE. * 35900003 * * 35950003 *********************************************************************** 36000003 USE EQU * OKAY TO BUILD A DEB. 36050003 AIF ('&SS1' EQ 'SS1').SS11 OMIT DASDR CODE @Y30LB35 36100003 LA R3,WTORP1-MSG LENGTH OF WORK AREA. 36150003 LR R1,R2 ADDRESS OF WORKAREA. 36200003 BAL GR9,FREECORE GO FREE THE WORKAREA. 36250003 .SS11 ANOP @Y30LB35 36300003 L R3,DCBPTR DCB ADDRESS. YL02912 36350003 LA R2,DEBEND-MYDEB SIZE OF DEB. 36400003 * USING MYDEB,GR1 YM4604 36450003 GETMAIN R,LV=(2),SP=230 YM4604 36500003 LR R2,R1 SAVE AREA ADDRESS. YM4604 36550003 XC MYDEB(DEBEND-MYDEB),MYDEB CLEAR DEB TO ZER. YM4604 36600003 AIF ('&SS1' EQ 'SS1').SS111 OMIT DASDR CODE @Y30LB35 36650003 BAL GR9,OFFLENQ ENQ FOR OFFLINE UCB YL02912 36700003 .SS111 ANOP @Y30LB35 36750003 BAL R9,BUILDDEB GO BUILD A DEB. 36800003 AIF ('&LIB' EQ 'LIB2').WM007 36850003 ST R4,44(R3) DEB ADDRESS TO DCB 36900003 .WM007 ANOP 36950003 AIF ('&SS1' EQ 'SS1').SS12 OMIT DASDR CODE @Y30LB35 37000003 L R4,DEBAPPAD-1 ADDRESS OF APPENDAGE TABL5# 37050003 MVC DEBEOEA(20),0(R4) PLACE IN DEB. 37100003 LA R4,DEBEOEA ADDRESS OF NEW TABLE. 37150003 ST R4,DEBAPPAD-1 SAVE ADDRESS IN DEB. 37200003 .SS12 ANOP @Y30LB35 37250003 MVZ DEBDEBID(L1),TCBPKF PROTECT KEY TO DEB. YL02912 37300003 AIF ('&SS1' EQ 'SS1').SS121 OMIT DASDR CODE @Y30LB35 37350003 CLI FUNCTION,POSTSPEC OFFLINE LABEL REQUEST? YL02912 37400003 BE EXIT YES, NOT NEED APPENDAGE.YL02912 37450003 .SS121 ANOP @Y30LB35 37500003 AIF ('&SS1' EQ 'SS1').SS13 OMIT DASDR CODE @Y30LB35 37550003 EJECT 37600003 *********************************************************************** 37650003 * * 37700003 * LOAD IN THE ABNORMAL END APPENDAGE HERE. * 37750003 * * 37800003 *********************************************************************** 37850003 USING CVT,1 37900003 L GR1,CVTPTR CVT ADDRESS. 37950003 L GR4,CVTSVDCB DCB ADDRESS. 38000003 LOAD EP=IGG019P9,DCB=(4) 38050003 ST R0,DEBXCEA PLACE ADDRESS IN DEB. 38100003 AIF ('&LIB' EQ 'LIB1').WM001 38150003 SRL GR1,7(0) SAVE SIZE OF MODULE M4873 38200003 LA GR1,1(GR1) IN 2K BYTES IN M4873 38250003 STC GR1,DEBXCEA AVT TABLE M4873 38300003 LOAD EP=IGG019P7,DCB=(4) LOAD PAGE FIX APPENDAGE M5431 38350003 ST R0,DEBSIOA PLACE ADDRESS IN DEB M5431 38400003 SRL GR1,7(0) SAVE SIZE OF MODULE M5431 38450003 LA GR1,1(GR1) IN 2K BYTES IN M5431 38500003 STC GR1,DEBSIOA AVT TABLE M5431 38550003 OI DEBSIOA,PGFIXBIT SHOW APPENDAGE IS PAGE FIX M5431 38600003 .WM001 ANOP 38650003 .SS13 ANOP @Y30LB35 38700003 B EXIT RETURN TO CALLER. YL02912 38750003 AIF ('&SS1' EQ 'SS1').SS14 OMIT DASDR CODE @Y30LB35 38800003 *********************************************************************** 38850003 * * 38900003 * ASSIGN ALTERNATE TRACKS HERE. * 38950003 * 1) GETALT REQUEST(MUST READ IN FORMAT4 DSCB) * 39000003 * 2) ANALYZE/FORMAT REQUEST. * 39050003 * * 39100003 *********************************************************************** 39150003 SPACE 3 39200003 ASSGALT EQU * GETALT/DYNAMIC TRACK ASSIGN. 39250003 LA R2,IOEND-MYDEB SIZE OF GETMAIN AREA. 39300003 LR R4,R2 SIZE OF AREA. YM6524 39350003 BAL R9,GETMAIN OBTAIN A WORK AREA. YM6524 39400003 USING IOBLOCKS,R2 YM6524 39450003 XC IOEND1(IOEND-IOEND1),IOEND1 CLEAR EXTENSION. YM6524 39500003 B CLEAR GO TO CLEAR REST. YM6524 39550003 SPACE 3 39600003 USING MYDEB,GR1 YM6524 39650003 GETMAIN EQU * YM6524 39700003 GETMAIN R,LV=(2),SP=229 YM6524 39750003 LR R2,R1 SAVE AREA ADDRESS. YM6524 39800003 XC MYDEB(DEBEND-MYDEB),MYDEB CLEAR DEB TO ZER. YM6524 39850003 BR R9 RETURN. YM6524 39900003 SPACE 3 YM6524 39950003 ASGALT1 EQU * 40000003 LA R2,IOEND1-MYDEB SIZE OF GETMAIN AREA. 40050003 LR R4,R2 SIZE OF AREA. 40100003 BAL R9,GETMAIN OBTAIN A WORK AREA. YM6524 40150003 CLEAR STH R4,SIZE REMEMBER THE SIZE. YM6524 40200003 XC ECB(IOEND1-ECB),ECB CLEAR PART OF WORK AREA. YM6524 40250003 LA GR3,DCB-44 DCB ADDRESS. 40300003 BAL R9,BUILDDEB GO BUILD A DEB. 40350003 ST R4,DCB DEB ADDRESS TO DCB. 40400003 LR GR3,GR11 PARM LIST POINTER. 40450003 LR GR4,GR2 WORKAREA POINTER. 40500003 L GR7,UCBPTR ADDRESS OF UCB. YL02912 40550003 USING UCB,GR7 S20201 40600003 MODESET EXTKEY=SUPR YL02912 40650003 CLI UCBTBYT4,X06 IS THIS A 2305 MOD 1. S20201 40700003 BE ASGALT3 YES S20201 40750003 CLI UCBTBYT4,X07 IS THIS A 2305 MOD 2. S20201 40800003 BE ASGALT3 S20201 40850003 STM GR3,GR5,RBEXSAVE+K16 STORE 2ND LOAD LIST. YL02912 40900003 LA GR1,RBEXSAVE+K16 LIST ADDR FOR 2ND LOAD. YL02912 40950003 LA GR4,XCTL XCTL LIST FOR NEXT LOAD. 41000003 B NEXTLOAD S20201 41050003 ASGALT3 EQU * S20201 41100003 DROP GR7 S20201 41150003 STM GR3,GR5,RBEXSAVE+K16 STORE 4TH LOAD LIST. YL02912 41200003 LA GR1,RBEXSAVE+K16 LIST ADDR FOR 4TH LOAD. YL02912 41250003 LA GR4,XCTL2 S20201 41300003 SPACE 2 41350003 NEXTLOAD EQU * MUST BRING IN THE NEXT LOAD. 41400003 MVC RBEXSAVE(XCTLEND-XCTL),E0(GR4) GET XCTL LIST. YL02912 41450003 LA GR15,RBEXSAVE ADDR OF EXTENDED AREA. YL02912 41500003 LA GR6,8(GR15) ADDRESS OF ENTRY POINT. 41550003 ST GR6,0(GR15) STORE IN LIST LIST. 41600003 MODESET EXTKEY=DATAMGT YM1315 41650003 XCTL ,MF=(E,(1)),SF=(E,(15)) YM03870 41700003 .SS14 ANOP @Y30LB35 41750003 EJECT 41800003 *********************************************************************** 41850003 * * 41900003 * BUILD A DEB HERE. * 41950003 * R3 CONTAINS THE DCB ADDRESS UPON INPUT. 42000003 * R4 CONTAINS THE DEB ADDRESS UPON EXIT. 42050003 * R9 IS THE RETURN REGISTER. 42100003 * * 42150003 *********************************************************************** 42200003 BUILDDEB EQU * 42250003 MVI DEBNMEXT,1 SET NO. OF EXTENTS. 42300003 MVI DEBENDCC,X'7F' SET UPPER EXTENT LIMIT. 42350003 MVI DEBNMTRK,X'7F' SET NO. OF TRACKS. 42400003 ST R3,DEBDCBAD-1 DCB ADDRESS TO DEB. 42450003 MVI DEBDEBID,X'0F' PROTECT KEY//ID. 42500003 AIF ('&LIB' EQ 'LIB2').X301003 XL03912 42550003 L GR4,UCBPTR ADDRESS OF UCB. YL02912 42600003 USING UCB,GR4 42650003 CLI UCBTBYT4,X06 IS THIS A 2305-1. S20201 42700003 BE SW2305 SET 2305 SWITCH. S20201 42750003 CLI UCBTBYT4,X07 IS THIS A 2305-2. S20201 42800003 BNE CHK2321 NO-CHECK FOR 2321 S20201 42850003 SW2305 EQU * S20201 42900003 OI DEVTYP,MAINUCB YES-SET DEVICE BYTE. S20201 42950003 B BUILD CONTINUE PROCESS S20201 43000003 CHK2321 EQU * S20201 43050003 CLI UCBID,MAINUCB THIS A 2321. 43100003 DROP GR4 43150003 BNE DEB2321 YES-GO PROCESS 43200003 BUILD EQU * * S20201 43250003 .X301003 ANOP XL03912 43300003 MVC DEBUCBAD(L3),UCBPTR+D1 UCB ADDRESS TO DEB. YL02912 43350003 MVI DEBDVMOD,X'C0' SET THE FILE MASK. @Y30LB35 43400003 L R4,CVTPTR ADDRESS OF CVT. 43450003 USING CVT,R4 43500003 L R4,CVTXAPG APPENDAGE TABLE ADDRESS. 43550003 DROP R4 43600003 ST R4,DEBAPPAD-1 STORE IN DEB. 43650003 LA R4,DEB DEB ADDRESS. 43700003 AIF ('&LIB' EQ 'LIB1').WM006 43750003 AIF ('&SS1' EQ 'SS1').SS141 OMIT DASDR CODE @Y30LB35 43800003 CLI FUNCTION,NEWVOL NEW VOLUME REQUEST? YL02912 43850003 BNE NOCHK4 NO, DEB WILL NOT BE Y01021 43900003 * VALIDATED Y01021 43950003 .SS141 ANOP @Y30LB35 44000003 MODESET KEYADDR=KEY,WORKREG=15 GET CALLERS KEY. YL02912 44050003 ST R4,E44(R3) DEB ADDR TO DCB Y01021 44100003 MODESET EXTKEY=DATAMGT YL02912 44150003 DROP R2 @Y30LB35 44200003 EJECT 44250003 ********************************************************************** 44300003 * PLACE DEB ON TCB DEB CHAIN * 44350003 ********************************************************************** 44400003 SPACE 44450003 USING DEB,GR4 YL02912 44500003 ST R8,DEBTCBAD-D1 PUT TCB PTR IN DEB YL02912 44550003 L R7,TCBDEB GET DEB PTR FROM TCB YL02912 44600003 ST R7,DEBDEBAD-D1 DEB CHAIN PTR TO MY DEB.YL02912 44650003 MODESET EXTKEY=SUPR YL02912 44700003 ST R4,TCBDEB CHAIN MY DEB. YL02912 44750003 MODESET EXTKEY=DATAMGT YL02912 44800003 DEBCHK (R3),TYPE=ADD,AM=EXCP YM0960 44850003 LR GR1,GR11 RESTORE PARM POINTER YM2646 44900003 .WM006 ANOP 44950003 BR R9 RETURN. 45000003 AIF ('&LIB' EQ 'LIB2').X301004 XL03912 45050003 SPACE 45100003 USING DATACELL,GR6 @Y30LB35 45150003 DEB2321 LR GR6,GR4 SUB-UCB ADDRESS. 45200003 MVC DEBBINNO(2),DCELBBNR BIN NO. TO DEB. @Y30LB35 45250003 BAL GR14,CONV2321 CONVERT SUB TO MAIN UCB ADDRESS. 45300003 ST GR6,DEBUCBAD-1 MAIN UCB ADDRESS TO DEB. 45350003 B BUILD1 GO FINISH THE DEB. 45400003 DROP 6 45450003 SPACE 3 45500003 CONV2321 LH GR10,0(GR6) PICK UP BIN NO. 45550003 SLA GR10,4 TIMES SIXTEEN. 45600003 * LA GR10,DATACELL-UCBOB(GR10) ADD LENGTH OF MAIN. 45650003 LCR GR10,GR10 NEGATE. 45700003 AR GR6,GR10 ADDRESS OF MAIN. 45750003 BR GR14 RETURN. 45800003 .X301004 ANOP XL03912 45850003 AIF ('&SS1' EQ 'SS1').SS15 OMIT DASDR CODE @Y30LB35 45900003 AIF ('&LIB' EQ 'LIB1').WM005 45950003 .WM005 ANOP 46000003 DROP R2 46050003 XCTL XCTL EP=IGC0108B,SF=L LIST FORM . 46100003 XCTLEND DS 0C END OF XCTL LIST. 46150003 XCTL1 XCTL EP=IGC0208B,SF=L LIST FORM. 2ND LOAD. 46200003 XCTL2 XCTL EP=IGC0308B,SF=L LIST FORM. 3RD LOAD. S20201 46250003 .SS15 ANOP @Y30LB35 46300003 DROP GR5 @Y30LB35 46350003 DROP GR4 @Y30LB35 46400003 DROP GR6 @Y30LB35 46450003 EJECT @Y30LB35 46500003 DEVTYP DC X'00' DEVICE TYPE SWITCH. S20201 46550003 K16 EQU 16 DISPLACEMENT CONSTANT S20201 46600003 SPACE 1 46650003 AIF ('&SS1' EQ 'SS1').SS16 OMIT DASDR CODE @Y30LB35 46700003 WTORP WTOR 'IEH841D CONFIRM REQUEST TO ',0,1, O122X46750003 0,ROUTCDE=(4),DESC=(2),MF=L MC0I 46800003 WTOREND DS 0C END OF WTOR. 46850003 SPACE 46900003 WTO WTO 'IEH808I REPLY IN ERROR. REPLY WITH U OR T', MC0IX46950003 ROUTCDE=(4),DESC=(5),MF=L MC0I 47000003 WTOEND DS 0C 47050003 .SS16 ANOP @Y30LB35 47100003 DEBLEN DS 0F A34646 47150003 DC X'E5' SUB POOL NUMBER. YL02912 47200003 DC AL3(DEBEND-MYDEB) LENGTH OF DEB FOR Y01021 47250003 * VALIDATION Y01021 47300003 MAINT DS 10F MAINTENANCE AREA XL02912 47350003 AIF ('&LIB' EQ 'LIB1').X227904 YM3475 47400003 BLANKS DC X'40404040' OFFLINE DDNAME END. YM3475 47450003 .X227904 ANOP YM3475 47500003 AIF ('&SS1' EQ 'SS1').SS17 OMIT DASDR CODE @Y30LB35 47550003 LABEL DC C'LABEL ' USED FRO LABEL OFFLINE. O122 47600003 INITIAL DC C'INITIALIZE' USED FOR OFFLINE DASDI. O122 47650003 ENQLISTF ENQ (QHDR,,E,6,SYSTEM),TCB=,RET=USE,MF=L YM03804 47700003 SYSQ DC C'SYSIEFSD' ENQ/DEQ QNAME HEADER YL02912 47750003 QHDR DC C'SYSZVOLS' ONLINE ENQ HEADER YM03804 47800003 Q4 DC C'Q4' ENQ/DEQ RNAME HEADER YL02912 47850003 .SS17 ANOP @Y30LB35 47900003 NOGO EQU 8 ENQ FAILED RETURN CODE. YL02912 47950003 SPACE 48000003 SENSCCW CCW 4,SENSCCW,X'20',6 SENSE CMD XL03130 48050003 MAINTNC DS 50D MAINTENANCE AREA XL03130 48100003 GOODRT EQU X'7F' GOOD ECB RETURN CODE XL03130 48150003 MASK EQU X'FF' 'AND' MASK XL03130 48200003 TCBKOFST EQU 28 OFFSET TO TCB KEY XL03130 48250003 MOD1 EQU X'01' MODEL ONE SENSE VAL XL03130 48300003 MOD2 EQU X'02' MODEL TWO SENSE VAL XL03130 48350003 L1 EQU 1 XL03130 48400003 L4 EQU 4 XL03130 48450003 L2 EQU 2 XL03130 48500003 DEBID EQU X'0F' DEB ID XL03130 48550003 L7 EQU 7 OFFSET TO USERS' R.C. XL03130 48600003 SENSEOP EQU X'04' SENSE OP CODE XL03130 48650003 L88 EQU 88 LENGTH OF EXCP CTL BLKS XL03130 48700003 BUMP EQU X'28' ADDR ADJUSTMENT XL03130 48750003 CTLBLKS DSECT XL03130 48800003 DCBORG DS 7F DCB XL03130 48850003 DEBORG DS 3F DEB XL03130 48900003 ECB1 DS 1F ECB XL03130 48950003 DCBDEB DS A DCB+2C XL03130 49000003 DEBPURG DS F DEB+14 XL03130 49050003 DEBDCB DS A DEB+18 XL03130 49100003 DEBAPP DS F DEB+1C XL03130 49150003 DEBUCB DS A DEB+20 XL03130 49200003 DEBSKA DS 2F DEB XL03130 49250003 IOB1 DS F IOB XL03130 49300003 IOBECB DS A IOB+4 XL03130 49350003 DS 2F FILL XL03130 49400003 IOBCCW DS A IOB+10 XL03130 49450003 IOBDCB DS A IOB+14 XL03130 49500003 SENSE DS 2F INPUT BUFFER XL03130 49550003 IOBSKA DS 2F IOB+20 XL03130 49600003 CCW DS D SENSE CMD XL03130 49650003 AIF ('&SS1' EQ 'SS1').SS18 OMIT DASDR CODE @Y30LB35 49700003 MSG DSECT 49750003 DS 0D 49800003 MSG1 DS CL1 REPLY LENGTH. 49850003 MSG2 DS CL3 REPLY ADDRESS. 49900003 MSG3 DS CL4 ECD ADDRESS. 49950003 MSG4 DS CL2 MESSAGE LENGTH. 50000003 DS CL2 50050003 MSG5 DS CL44 MESSAGE BODY MC0I 50100003 MSG55 DS CL4 MCS FLAGS/CODES. MC0I 50150003 MSG6 EQU MSG5+8 CUU OR CUU/B MC0I 50200003 WECB DS CL4 ECB FOR WTOR. 50250003 REPLY DS CL1 REPLY AREA. 50300003 WTORP1 DS 0C 50350003 .SS18 ANOP @Y30LB35 50400003 EJECT 50450003 IOBLOCKS DSECT 50500003 MYDEB EQU * DEB DEFINITION. 50550003 DEBEOEA DS 1F END-OF-EXTENT. 50600003 DEBSIOA DS 1F START I/O. 50650003 DEBPCIA DS 1F PCI. 50700003 DEBCEA DS 1F CHANNEL END. 50750003 DEBXCEA DS 1F ABNORMAL END. 50800003 DS CL12 50850003 DEBLNGTH DS CL1 DEB LENGTH(DOUBLE WORDS) 50900003 DS CL3 50950003 DEB EQU * DEB PROPER 51000003 DEBNMSUB DS CL1 OPEN SUBROUTINES. 51050003 DEBTCBAD DS CL3 TCB ADDRESS. 51100003 DEBAMLNG DS CL1 LENGTH ACCESS METHOD. 51150003 DEBDEBAD DS CL3 NEXT DEB ADDRESS. 51200003 DEBOFLGS DS CL1 DATA SET FLAGS. 51250003 DEBIRBAD DS CL3 IRB ADDRESS. 51300003 DEBOPATB DS CL1 TYPE OF I/O. 51350003 DEBSYSPG DS CL3 IOB PURGE ADDRESS.(SYSTEM) 51400003 DEBNMEXT DS CL1 NO. OF EXTENTS. 51450003 DEBUSRPG DS CL3 IOB USER PURGE ADDRESS. 51500003 DEBPRIOR DS CL1 ZERO 51550003 DEBECBAD DS CL3 PURGE ECB. 51600003 DEBDEBID DS CL1 PROTECT KEY//ID. 51650003 DEBDCBAD DS CL3 DCB ADDRESS. 51700003 DEBEXSCL DS CL1 EXTENT SCALE. 51750003 DEBAPPAD DS CL3 APPENDAGE VECTOR TABLE. 51800003 DEBDVMOD DS CL1 FILE MASK. 51850003 DEBUCBAD DS CL3 UCB ADDRESS. 51900003 DEBBINNO DS CL2 BIN NO. FOR 2321. 51950003 DEBSTRCC DS CL2 CYLINDER START. 52000003 DEBSTRHH DS CL2 HEAD START. 52050003 DEBENDCC DS CL2 CYLINDER END. 52100003 DEBENDHH DS CL2 HEAD END. 52150003 DEBNMTRK DS CL2 NUMBER OF TRACKS. 52200003 DS CL20 52250003 DEBEND DS 0C END OF DEB. 52300003 EJECT 52350003 ECB DS 1F ECB HERE. 52400003 IOB EQU * IOB HERE. 52450003 IOBFLAG1 DS CL1 FLAG1 52500003 IOBFLAG2 DS CL1 FLAG2. 52550003 IOBSENS0 DS CL1 SENSE BYTE ZERO. 52600003 IOBSENS1 DS CL1 SENSE BYTE ONE. 52650003 IOBECBAD DS CL4 ADDRESS OF ECB. 52700003 IOBCSW DS CL8 STATUS WORDS. 52750003 IOBSTART DS CL4 CHANNEL PROGRAM ADDRESS. 52800003 IOBDCBPT DS CL4 ADDRESS OF DCB. 52850003 IOBRESTR DS CL4 RESTART ADDRESS. 52900003 IOBINCAM DS CL2 BLOCK COUNT. 52950003 IOBERRCT DS CL2 ERROR COUNT. 53000003 IOBSEEK DS CL8 SEEK ADDRESS. 53050003 CCHHR EQU IOBSEEK+3 SEARCH ADDRESS. 53100003 DCB DS 1F DEB ADDRESS. 53150003 ALTINFO DS 1D KEEP ALTERNATE TRACK INFO HERE. 53200003 AIF ('&LIB' EQ 'LIB1').X302300 XL03130 53250003 SCHHA DS 1D SEARCH HOME ADDR. XL03130 53300003 TICSRCH DS 1D TIC ON SEARCH. XL03130 53350003 .X302300 ANOP XL03130 53400003 WRTHA DS 1D WRITE HOME ADDRESS. 53450003 WRTR0 DS 1D WRITE RECORD ZERO. 53500003 RDHA DS 1D READ HOME ADDRESS. 53550003 READR0 DS 1D READ RECORD ZERO. 53600003 AIF ('&LIB' EQ 'LIB1').X227800 XL03130 53650003 DS CL6 RESERVED. XL03130 53700003 WINHA DS CL2 3340 HOME ADDRESS. XL03130 53750003 .X227800 ANOP XL03130 53800003 HA DS CL5 HOME ADDRESS. 53850003 SW DS CL1 SWITCH. 53900003 D2314 EQU X'80' 2314 DEVICE. 53950003 D2321 EQU X'40' 2321 DEVICE. 54000003 SIZE DS CL2 SIZE OF GETMAIN AREA. 54050003 R0COUNT DS 1D RECORD ZERO COUNT FIELD. 54100003 R0DATA DS 1D RECORD ZERO DATA FIELD. 54150003 AIF ('&LIB' EQ 'LIB1').X322203 XM4405 54200003 SNSBYTES DS CL24 3340 SENSE BYTE AREA. XM4405 54250003 .X322203 ANOP XM4405 54300003 IOEND1 DS 0C END OF BASIC I/O BLOCKS. 54350003 * EXTENSION FOR GETALT//DYNAMIC TRACK REQUEST. 54400003 SEARCH DS 1D SEARCH CCW. 54450003 TIC DS 1D REPEAT UNTIL FOUND. 54500003 WRTRD DS 1D WRITE OR READ DATA. 54550003 FORMAT4 DS CL96 FORMAT4 DSCB READ IN AREA. 54600003 ALTDATA EQU FORMAT4+8 ALTERNATE TRACK INFORMATION. 54650003 IOEND DS 0C 54700003 EJECT 54750003 AIF ('&SS1' EQ 'SS1').SS19 OMIT DASDR CODE @Y30LB35 54800003 *********************************************************************** 54850003 * * 54900003 * PARAMETER LIST DSECT * 54950003 * * 55000003 *********************************************************************** 55050003 SPACE 2 55100003 PARMLIST DSECT YL02912 55150003 WINMOD EQU DCBPTR+3 3340 MODEL NO. YL02912 55200003 EDQLIST DS 4F ENQ/DEQ PARAM LIST SJ0054 55250003 ENQLIST EQU EDQLIST+4 SJ0054 55300003 ENDLIST EQU * PARAMETER LIST END. YL02912 55350003 EJECT 55400003 CVT DSECT 55450003 CVT SYS=MIN 55500003 IKJTCB LIST=YES 55550003 EJECT 55600003 IHARB DSECT=YES 55650003 EJECT 55700003 UCB DSECT 55750003 IEFUCBOB 55800003 .SS19 ANOP @Y30LB35 55850003 IGC0408B CSECT @Y30LB35 55900003 AIF ('&SS1' EQ 'SS1').SS20 OMIT DASDR CODE @Y30LB35 55950003 *STATUS- CHANGE LEVEL 000 * 56000003 * * 56050003 *FUNCTION/OPERATION- THIS LOAD OF SVC 82 -POSTS- THE UCBS FOR * 56100003 * DIRECT ACCESS VOLUMES THAT ARE WRITTEN ON BY THE -IEHDASDR- * 56150003 * UTILITY PROGRAM. IT DOES SO AS FOLLOWS. * 56200003 * * 56250003 * -IF DUPLICATE SERIAL NUMBERS ARE ENCOUNTERED ; SA55451 56300003 * 1) SVC 91 IS ISSUED, SA55451 56350003 * 2) VOLUME SERIAL NO. IN THE UCB IS CLEARED, SA55451 56400003 * 3) NOT-READY BIT IN UCB IS SET, SA55451 56450003 * 4) A DEMOUNT MESSAGE IS SENT TO THE OPERATOR. SA55451 56500003 * * 56550003 * -IF A NEW/UNIQUE SERIAL NO. RESULTS,ISSUE A -NEW- MESSAGE * 56600003 * TO THE OPERATOR. PLACE THE SERIAL NO. IN THE UCB. * 56650003 * * 56700003 * -IF A NEW VTOC HAS BEEN PLACED ON THIS VOLUME, PUT ITS * 56750003 * TTR IN THE UCB. * 56800003 * * 56850003 *ENTRY POINTS- THE ONLY ENTRY POINT IS -IGC0208B-. * 56900003 * * 56950003 *INPUT- REGISTER 1 POINTS TO THE SVRB. * 57000003 * THE EXTENDED AREA OF THE SVRB CONTAINS THE INPUT PARM POINTER * 57050003 * THAT WAS PASSED TO -IGC0008B-. * 57100003 * * 57150003 *EXITS-NORMAL- VIA A SVC 3 TO THE CALLING ROUTINE. * 57200003 * * 57250003 *EXITS-ERROR- NONE POSSIBLE. * 57300003 * * 57350003 *SUPERVISOR MACROS- GETMAIN,FREEMAIN,WTO. * 57400003 * * 57450003 *OUTPUT- IF NEW VTOC, ITS TTR IS PLACED IN THE UCB. * 57500003 * IF DUPLICATE SERIAL NO., A RETAIN MESSAGE IS ISSUED. * 57550003 * IF NEW SERIAL NO., A NEW MESSAGE IS ISSUED. * 57600003 * * 57650003 *ATTRIBUTES- REENTRANT,RELOCATABLE,PRIVILEGED,ENABLED. * 57700003 * * 57750003 *********************************************************************** 57800003 EJECT 57850003 * THE FOLLOWING ARE REGISTER ASSIGNMENTS. 57900003 LR BASEREG,GR15 SET UP ADDRESSING. 57950003 USING IGC0408B,BASEREG @Y30LB35 58000003 SPACE 58050003 SPACE 2 58100003 .SS20 ANOP @Y30LB35 58150003 EJECT @Y30LB35 58200003 ************************************************************* @Y30LB35 58250003 * @Y30LB35 58300003 * POST UCB WITH VOLUME SERIAL NUMBER, VTOC TTR0 AND TEST FOR @Y30LB35 58350003 * DUPLICATE VOLUMES. @Y30LB35 58400003 * @Y30LB35 58450003 ************************************************************* @Y30LB35 58500003 POSTUCB DS 0H IF REQT TO POST UCB @Y30LB35 58550003 AIF ('&SS1' EQ 'SS1').SS201 OMIT DASDR CODE @Y30LB35 58650003 L GR11,RBEXSAV+16(GR1) PARM LIST POINTER. @Y30LB35 58700003 LR GR9,GR1 SVRB ADDRESS. 58750003 .SS201 ANOP @Y30LB35 58800003 USING PARMLIST,GR11 YL02912 58850003 USING RBBASIC,GR9 @Y30LB35 58900003 STARTEST EQU * O122 58950003 L GR4,SERPTR POINTER TO NEW SERIAL. YL02912 59000003 L GR6,UCBPTR POINTER TO UCB. YL02912 59050003 SLL GR6,16 MOVE HIGH ORDER BYTES @Y30LB35 59110003 SRL GR6,16 MOVE BACK WITH ZEROS @Y30LB35 59120003 LH GR3,0(GR2) PICK UP ENTRY. O122 59150003 SLL GR3,16 MOVE HIGH ORDER BYTES @Y30LB35 59160003 SRL GR3,16 MOVE BACK WITH ZEROS @Y30LB35 59170003 LTR GR3,GR3 VALID ENTRY. 59200003 BZ UPUCBPTR NO--GO SEE IF MORE ENTRIES. 59250003 USING UCB,GR3 59300003 TM UCBTBYT3,UCB3DACC THIS A DIRECT ACCESS DEVICE. 59350003 BZ UPUCBPTR NO--GO SEE IF MORE ENTRIES. 59400003 AIF ('&LIB' NE 'LIB1').X301201 XL03912 59450003 CLI UCBTBYT4,DA2321 THIS A 2321. 59500003 BE PROC2321 YES-SPECIAL CASE. 59550003 .X301201 ANOP XL03912 59600003 LA GR5,SRTEVOLI ADDRESS OF SERIAL NO. 59650003 C GR5,RBEXSAVE+16 THIS UCB TESTED SA53836 59700003 BE UPUCBPTR GO TEST NEXT UCB SA53836 59750003 BAL GR7,TESTUCB GO TEST FOR IDENTICAL/NEW. 59800003 B UPUCBPTR GO TEST NEXT UCB. 59850003 AIF ('&LIB' NE 'LIB1').X301202 XL03912 59900003 SPACE 59950003 PROC2321 LA GR3,DATACELL ADDRESS OF 1ST SUB-UCB. @Y30LB35 60000003 CK2321 LA GR5,DCELVOLI-DATACELL(GR3) SERIAL NO. ADDRESS. @Y30LB35 60050003 BAL GR7,TESTUCB GO TEST IDENTICAL//NEW. 60100003 CLI 1(GR3),LASTBIN THIS THE LAST SUB-UCB. 60150003 BE UPUCBPTR YES--GO TEST NEXT UCB. 60200003 LA GR3,SUBLNG(GR3) STEP TO NEXT SUB-UCB. 60250003 B CK2321 GO CHECK ALL SUB-UCBS. 60300003 .X301202 ANOP XL03912 60350003 DROP 3 60400003 SPACE 60450003 UPUCBPTR LA GR2,2(GR2) STEP TO NEXT TABLE ENTRY. 60500003 CLC 0(2,GR2),UCBLAST ANY MORE ENTRIES. 60550003 BNE STARTEST YES--KEEP LOOKING. 60600003 PRETURN EQU * YL02912 60650003 LA R2,ENDLST-PARMLIST PARM LIST SIZE. @Y30LB35 60700003 FREEMAIN R,LV=(2),A=(11),SP=229 FREE PARM LIST YL02912 60750003 SR R15,R15 SET RETURN CODE. YL02912 60800003 L R14,RBEXSAVE+K24 GET RETURN ADDRESS. @Y30LB35 60850003 MODESET EXTKEY=SUPR YM1315 60900003 BR R14 RETURN TO CALLER. YL02912 60950003 ERRORRTN EQU * YL02912 61000003 LA R2,ENDLST-PARMLIST PARM LIST SIZE. @Y30LB35 61050003 FREEMAIN R,LV=(2),A=(11),SP=229 FREE PARM LIST YL02912 61100003 LA R15,FOUR SET ERROR CODE @Y30LB35 61150003 L R14,RBEXSAVE+K24 GET RETURN ADDRESS. @Y30LB35 61200003 MODESET EXTKEY=SUPR YM1315 61250003 BR R14 RETURN TO CALLER. YL02912 61300003 EJECT 61350003 ************************************************************* @Y30LB35 61400003 * @Y30LB35 61450003 * TEST FOR DUPLICATE VOLUMES. @Y30LB35 61500003 * @Y30LB35 61550003 ************************************************************* @Y30LB35 61600003 TESTUCB EQU * 61650003 MODESET KEYADDR=KEY,WORKREG=15 GET CALLER'S KEY. YL02912 61700003 CLC D0(L6,GR4),D0(GR5) SERIAL NUMBERS EQUAL? YL02912 61750003 MODESET EXTKEY=DATAMGT UL02912 61800003 BE DUP YES-HANDLE ERROR @Y30LB35 61850003 TESTUCB1 CLR GR6,GR3 THIS THE SELECTED UCB/SUB UCB. 61900003 BE POSTIT YES-POST NEW SERIAL. @Y30LB35 61950003 BR GR7 NO--RETURN. 62000003 SPACE 2 62050003 POSTIT EQU * UPDATE UCB HERE @Y30LB35 62100003 LTR GR4,GR4 IS THERE A NEW SERIAL NO. 62150003 BZ TESTTR NO--GO SEE IF TTR NEEDS UPDATE. 62200003 MODESET KEYADDR=KEY,WORKREG=15 GET CALLER'S KEY. YL02912 62250003 CLC 0(6,GR4),0(GR5) ARE THE SERIAL NOS. THE SAME. 62300003 MODESET EXTKEY=DATAMGT YL02912 62350003 BE TESTTR YES-NO NEED TO TELL THE USER. 62400003 AIF ('&SS1' EQ 'SS1').SS21 OMIT DASDR CODE @Y30LB35 62450003 BAL GR8,SETUPMSG PLACE MESSAGE IN BUFFER. 62500003 MVI 12(GR10),C'N' 'NEW' INDICATOR TO MESSAGE. 62550003 BAL GR8,WRITE WRITE TO OPERATOR//FREECORE. 62600003 .SS21 ANOP @Y30LB35 62650003 MODESET EXTKEY=SUPR YL02912 62700003 ST GR5,RBEXSAVE+16 INDICATE UCB TESTED @Y30LB35 62750003 MODESET EXTKEY=DATAMGT YL02912 62800003 AIF ('&SS1' EQ 'SS1').SS211 OMIT DASDR CODE @Y30LB35 62850003 TM SRTESTAT-UCB(GR6),SRTEONLI DEVICE ONLINE. X726 62900003 BZ TESTTR NO-GO PROCESS VTOC. X726 62950003 .SS211 ANOP @Y30LB35 63000003 USING UCB,GR3 @Y30LB35 63050003 MODESET EXTKEY=SUPR YL02912 63100003 MVC 0(6,GR5),0(GR4) YES-NEW SERIAL NO TO UCB. X726 63150003 NI UCBFL2,X'FF'-NOTREADY TURN OFF NOT READY BIT @Y30LB35 63200003 NI UCBFLC,X'FF'-UCBUDE TURN OFF DEVICE END BIT @Y30LB35 63210003 MODESET EXTKEY=DATAMGT YL02912 63250003 DROP GR3 @Y30LB35 63300003 * UPDATE TTR OF VTOC HERE. 63350003 TESTTR EQU * YL02912 63400003 AIF ('&SS1' EQ 'SS1').SS22 OMIT DASDR CODE @Y30LB35 63450003 OC NEWCCHH+D1(L3),NEWCCHH+D1 NEED TTR UPDATE? YL02912 63500003 BCR 8,GR7 NO--GO CHECK MORE UCBS. O122 63550003 * BUILD A DUMMY DEB HERE. 63600003 LA R3,RBEXSAVE SAVE AREA ADDRESS. @Y30LB35 63650003 L GR8,K36(R3) SAVE RETURN ADDRESS. YL02912 63700003 MODESET EXTKEY=SUPR YL02912 63750003 STM 1,12,0(R3) SAVE THE REGISTERS. 63800003 MODESET EXTKEY=DATAMGT YL02912 63850003 GETMAIN R,LV=0+DEBEND-DEB,SP=229 YL02912 63900003 USING DEB,1 63950003 XC DEB(DEBEND-DEB),DEB CLEAR CORE TO ZERO. 64000003 MVI DEBNMEXT,1 SET FOR 1 EXTENT. 64050003 MVI DEBENDCC,X'7F' SET UPPER EXTENT LIMIT. 64100003 MVI DEBNMTRK,X'7F' SET NO. OF TRACKS. 64150003 MVI DEBDEBID,X'0F' PROTECT KEY//DEB ID. 64200003 AIF ('&LIB' NE 'LIB1').X301203 XL03912 64250003 L GR4,0(GR11) UCB ADDRESS. 64300003 USING UCB,4 64350003 CLI UCBID,MAINUCB THIS A 2321. 64400003 BNE DEB2321 YES--GO HANDLE. 64450003 .X301203 ANOP XL03912 64500003 MVC DEBUCBAD(L3),UCBPTR+D1 UCB ADDRESS TO DEB. YL02912 64550003 AIF ('&LIB' NE 'LIB1').X301204 XL03912 64600003 DROP 4 64650003 .X301204 ANOP XL03912 64700003 SPACE 64750003 BUILD2 EQU * 64800003 USING CVT,R15 64850003 L R15,CVTPTR ADDRESS OF CVT. 64900003 L R15,CVTPRLTV CONVERT ADDRESS//MBBCCHHR TO TTR 64950003 DROP 15 65000003 SPACE 65050003 L R2,NEWCCHH VTOC PTR FOR UCB. YL02912 65100003 MODESET KEYADDR=KEY,WORKREG=14 GET CALLERS KEY YM1384 65150003 LM R4,R5,D0(R2) GET VTOC CCHH. YM1180 65200003 MODESET EXTKEY=DATAMGT YM1384 65250003 STM R4,R5,VTOCCCHH PUT CCHH IN SVC AREA. YM1180 65300003 LA R2,VTOCCCHH TTR PTR FOR CONVERT. YM1129 65350003 SPACE 65400003 BALR R14,R15 CONVERT MBBCCHHR TO TTR. 65450003 SPACE 65500003 LR R15,R1 SAVE DEB ADDRESS. 65550003 LM 1,12,0(R3) RESTORE THE REGISTERS. 65600003 MODESET EXTKEY=SUPR YL02912 65650003 ST GR8,K36(R3) RESTORE RETURN ADDRESS. YL02912 65700003 MODESET EXTKEY=DATAMGT YL02912 65750003 SPACE 65800003 .SS22 ANOP @Y30LB35 65850003 USING UCB,R3 65900003 L R3,UCBPTR GET UCB ADDRESS. YL02912 65950003 SLL R3,16 MOVE HIGH ORDER BYTES @Y30LB35 65960003 SRL R3,16 MOVE BACK WITH ZEROS @Y30LB35 65970003 MODESET EXTKEY=SUPR YL02912 66000003 AIF ('&LIB' NE 'LIB1').X301205 XL03912 66050003 CLI UCBID,MAINUCB THIS A 2321. 66100003 BNE PR2321 YES--GO HANDLE. 66150003 .X301205 ANOP XL03912 66200003 L R4,NEWTTR PICK TTR ADDR @Y30LB35 66250003 MVC SRTEFSCT(4),0(R4) MOVE TTR TO UCB @Y30LB35 66300003 MODESET EXTKEY=DATAMGT YL02912 66350003 DROP GR3 @Y30LB35 66400003 AIF ('&SS1' EQ 'SS1').SS23 OMIT DASDR CODE @Y30LB35 66450003 LR R1,R15 RESTORE DEB ADDRESS. 66500003 FREEMAIN R,LV=0+DEBEND-DEB,A=(1),SP=229 YL02912 66550003 .SS23 ANOP @Y30LB35 66600003 BR GR7 GO CHECK MORE UCBS. O122 66650003 AIF ('&LIB' NE 'LIB1').X301206 XL03912 66700003 SPACE 66750003 * USING DATACELL,R3 66800003 *PR2321 ST R0,DCELVTOC TTR OF VTOC TO UCB---2321. 66850003 B TTREND GO EXIT. 66900003 DROP 3 66950003 SPACE 2 67000003 DEB2321 LR GR6,GR4 UCB ADDRESS. 67050003 BAL GR14,CONV2321 FIND ADDRESS OF MAIN UCB. 67100003 ST GR6,DEBUCBAD-1 2321 UCB ADDRESS TO DEB. 67150003 B BUILD2 EXIT. 67200003 .X301206 ANOP XL03912 67250003 SPACE 67300003 * IDENTICAL SERIAL NUMBERS @Y30LB35 67350003 DUP EQU * @Y30LB35 67400003 LTR GR4,GR4 WAS THERE A NEW SERIAL NO. 67450003 BZ TESTUCB1 NO--GO MAKE MORE TESTS. 67500003 AIF ('&SS1' EQ 'SS1').SS24 OMIT DASDR CODE @Y30LB35 67550003 USING UCB,3 67600003 AIF ('&LIB' NE 'LIB1').X301207 XL03912 67650003 CLI UCBID,MAINUCB THIS A SUB-UCB. 67700003 BNE TESTSUB3 YES--GO CHECK STATUS. 67750003 .X301207 ANOP XL03912 67800003 TM SRTESTAT,SRTEONLI IS THE TABLE UCB ON-LINE. 67850003 BCR 8,GR7 NO--RETURN. 67900003 SPACE 67950003 USING UCB,6 68000003 TM SRTESTAT,SRTEONLI THE SUBJECT UCB ON-LINE. 68050003 BC 8,TESTUCB1 NO--GO MAKE MORE TESTS. 68100003 DROP 3,6 68150003 .SS24 ANOP @Y30LB35 68200003 CLR GR6,GR3 THIS THE SUBJECT UCB. @Y30LB35 68250003 BE TESTUCB1 YES-GO MAKE MORE TESTS. @Y30LB35 68300003 AIF ('&SS1' EQ 'SS1').SS241 OMIT DASDR CODE @Y30LB35 68350003 BAL GR8,SETUPMSG COMPLETE THE MESSAGE. @Y30LB35 68400003 MVI 12(GR10),C'R' 'REMOVE' INDICATOR TO MESSAGE. 68450003 .SS241 ANOP @Y30LB35 68500003 USING UCB,GR6 68550003 AIF ('&LIB' NE 'LIB1').X301208 XL03912 68600003 CLI UCBTBYT4,DA2321 THIS A 2321. 68650003 BE YES2321 YES-GO CLEAR SERIAL NO. 68700003 .X301208 ANOP XL03912 68750003 AIF ('&SS1' EQ 'SS1').SS25 OMIT DASDR CODE @Y30LB35 68800003 TM SRTESTAT,SRTEPRES THIS A NON-DEMOUNTABLE DEVICE. 68850003 BO SETNR2 YES-BETTER MARK IT OFF-LINE. 68900003 LNR R0,R6 COMPLIMENTED UCB ADDR SA55451 68950003 SVC 91 ISSUE VOLSTAT SVC SA55451 69000003 .SS25 ANOP @Y30LB35 69050003 MODESET EXTKEY=SUPR YL02912 69100003 XC SRTEVOLI(6),SRTEVOLI CLEAR SERIAL NO. SA55451 69150003 XC SRTEFSCT(4),SRTEFSCT CLEAR TTR0 TO VTOC @Y30LB35 69200003 * TURN ON NOT-READY BIT HERE. 69250003 OI UCBFL2,NOTREADY MAKE UCB NOT-READY. 69300003 MODESET EXTKEY=DATAMGT YL02912 69350003 SETNR EQU * 69400003 AIF ('&LIB' NE 'LIB1').X301211 XL03912 69450003 DROP GR6 69500003 .X301211 ANOP XL03912 69550003 AIF ('&SS1' EQ 'SS1').SS251 OMIT DASDR CODE @Y30LB35 69600003 BAL GR8,WRITE TELL OPERATOR TO REMOVE VOLUME. 69650003 .SS251 ANOP @Y30LB35 69700003 B ERRORRTN POSTING COMPLETE. @Y30LB35 69750003 AIF ('&SS1' EQ 'SS1').SS26 OMIT DASDR CODE @Y30LB35 69800003 AIF ('&LIB' NE 'LIB1').X301209 XL03912 69850003 YES2321 L GR11,0(GR11) INPUT SUB-UCB ADDRESS. 69900003 * USING DATACELL,GR11 69950003 * NI DCELSTAT,X'FF'-SRTEONLI PUT THIS SUB-UCB OFF-LINE. 70000003 * XC DCELVOLI-DATACELL(6,GR11),DCELVOLI-DATACELL(GR11) 70050003 * CLEAR OUT NO. IN SUB-UCB. 70100003 .X301209 ANOP XL03912 70150003 SETNR1 MVC 42(12,GR1),OFFMSG TELL ABOUT OFFLINE. 70200003 MVI 1(GR1),WSIZE SET SIZE IN MESSAGE. 70250003 B SETNR GO MAKE UCB NOT READY. 70300003 AIF ('&LIB' NE 'LIB1').X301210 XL03912 70350003 DROP 11 70400003 SPACE 70450003 USING UCB,3 70500003 *TESTSUB3 TM DCELSTAT,SRTEONLI THIS SUB-UCB ONLINE. 70550003 BCR 8,GR7 NO--GO MAKE MORE TESTS. 70600003 USING UCB,6 70650003 *TESTSUB6 TM DCELSTAT,SRTEONLI THIS SUB-UCB ONLINE. 70700003 BCR 8,GR7 NO--GO MAKE MORE TESTS. 70750003 B TESTIDEN YES-CONTINUE RETAIN TEST. 70800003 .X301210 ANOP XL03912 70850003 SETNR2 EQU * YL02912 70900003 MODESET EXTKEY=SUPR YL02912 70950003 NI SRTESTAT,X'FF'-SRTEONLI NON-DEMOUNTABLE DEVICE OFF-LINE. 71000003 MODESET EXTKEY=DATAMGT 71050003 B SETNR1 GO TELL THE USER. 71100003 AIF ('&LIB' NE 'LIB1').X301212 XL03912 71150003 DROP 3,6 71200003 .X301212 ANOP XL03912 71250003 EJECT 71300003 * COMPLETE MESSAGE IEH809 HERE. 71350003 SETUPMSG EQU * 71400003 GETMAIN R,LV=0+WSIZE,SP=229 GET WORK AREA. XL02912 71450003 XC 0(WSIZE,GR1),0(GR1) CLEAR MESSAGE AREA. 71500003 MVI 1(GR1),WSIZE1 SET SIZE IN MESSAGE. 71550003 MVC 4(10,GR1),WTOLIST MESSAGE IDENTIFIER. 71600003 LR GR15,GR6 SAVE UCB REG. O122 71650003 USING UCB,GR6 71700003 AIF ('&LIB' NE 'LIB1').X301213 XL03912 71750003 CLI UCBID,MAINUCB THIS A MAIN UCB. 71800003 BNE FINDMAIN NO--MUST BE 2321. 71850003 .X301213 ANOP XL03912 71900003 LR GR10,GR1 MESSAGE AREA ADDRESS. 71950003 SETNAME MVC 14(3,GR10),UCBNAME DEVICE ADDRESS TO MESSAGE. 72000003 DROP GR6 72050003 LR GR6,GR15 RESTORE UCB REG. O122 72100003 MVI 17(GR1),COMMA INSERT COMMA IN MESSAGE. 72150003 MODESET EXTKEY=SUPR ALLOW FETCH OF VOLSER YM4604 72200003 MVC 18(6,GR1),0(GR4) SERIAL NO. TO MESSAGE. 72250003 MODESET EXTKEY=DATAMGT RESET MODE FOR DATAMGT YM4604 72300003 MVI 24(GR1),COMMA INSERT COMMA IN MESSAGE. 72350003 LR GR15,GR7 SAVE BR AND LINK REG. O122 72400003 L GR7,CVTPTR CVT ADDRESS. 72450003 USING CVT,GR7 72500003 L GR7,CVTTCBP CVT DOUBLE WORD ADDRESS. 72550003 DROP 7 72600003 L GR7,4(GR7) TCB ADDRESS. 72650003 L GR7,12(GR7) TIOT ADDRESS. 72700003 USING TIOT,GR7 72750003 MVC 25(8,GR1),TIOCNJOB JOB NAME TO MESSAGE. 72800003 MVI 33(GR1),COMMA INSERT COMMA IN MESSAGE. 72850003 MVC 34(16,GR1),TIOCSTEP STEP OR PROCEDURE NAME TO MSG. 72900003 LR GR7,GR15 RESTORE BR AND LINK REG. O122 72950003 BR GR8 RETURN 73000003 DROP 7 73050003 AIF ('&LIB' NE 'LIB1').X301214 XL03912 73100003 EJECT 73150003 SPACE 73200003 FINDMAIN MVI 17(GR1),SLASH BIN SEPARATOR. 73250003 MVC 18(1,GR1),1(GR3) BIN NO. TO MESSAGE. 73300003 OI 18(GR1),X'F0' SET ZONE BITS. 73350003 BAL GR14,CONV2321 CONVERT SUB TO MAIN UCB ADDRESS. 73400003 LR GR10,GR1 MESSAGE AREA ADDRESS. 73450003 LA GR1,2(GR1) RESET 'MOVE TO' POINTER. 73500003 B SETNAME COMPLETE THE MESSAGE. 73550003 SPACE 73600003 CONV2321 LH GR10,0(GR6) PICK UP BIN NO. 73650003 SLA GR10,4 TIMES SIXTEEN. 73700003 LA GR10,DATACELL-UCBOB(GR10) ADD LENGTH OF MAIN. 73750003 LCR GR10,GR10 NEGATE. 73800003 AR GR6,GR10 ADDRESS OF MAIN. 73850003 BR GR14 RETURN. 73900003 .X301214 ANOP XL03912 73950003 EJECT 74000003 WRITE EQU * 74050003 LR GR1,GR10 MESSAGE ADDRESS. 74100003 WTO ,MF=(E,(1)),ROUTCDE=(4),DESC=(4) MC0I 74150003 LR GR1,GR10 RESTORE ADDRESS OF GETMAIN AREA. 74200003 FREEMAIN R,LV=0+WSIZE,A=(1),SP=229 YL02912 74250003 BR GR8 RETURN. 74300003 .SS26 ANOP @Y30LB35 74350003 EJECT @Y30LB35 74400003 ************************************************************* @Y30LB35 74450003 * @Y30LB35 74500003 * REMOVE UCB VOLUME SER NO, VTOC TTR0 AND SET NOT-READY BIT @Y30LB35 74550003 * @Y30LB35 74600003 ************************************************************* @Y30LB35 74650003 CLEARUCB DS 0H @Y30LB35 74700003 L GR4,OLDVOL PICK UP PTR FOR OLD SER @Y30LB35 74800003 L GR6,UCBPTR PICK UP PTR TO UCB @Y30LB35 74850003 SLL GR6,16 MOVE HIGH ORDER BYTES @Y30LB35 74860003 SRL GR6,16 MOVE BACK WITH ZEROS @Y30LB35 74870003 MODESET EXTKEY=SUPR @Y30LB35 74920003 MVC 0(L6,GR4),SRTEVOLI SAVE OLD SER FOR CALLER @Y30LB35 74950003 MVC OLDTTR(L4,GR4),SRTEFSCT SAVE TTR PTR @Y30LB35 75000003 XC SRTEFSCT(L4),SRTEFSCT CLEAR TTR PTR @Y30LB35 75050003 XC SRTEVOLI(L6),SRTEVOLI CLEAR VOL SER @Y30LB35 75100003 OI UCBFL2,NOTREADY TURN ON NOT READY BIT @Y30LB35 75150003 MODESET EXTKEY=DATAMGT @Y30LB35 75160003 B PRETURN BRANCH TO THE EXIT @Y30LB35 75200003 SPACE 2 75250003 UCBLAST DC X'FFFF' LAST ENTRY IN UCB POINTER TABLE. 75300003 MAINT2 DC 10F'0' MAINTENANCE AREA @Y30LB35 75310003 AIF ('&SS1' EQ 'SS1').SS261 OMIT DASDR CODE @Y30LB35 75350003 OFFMSG DC C',NOW OFFLINE' 2321 MESSAGE COMPLETION. 75400003 SPACE 2 75450003 WTOLIST DC C'IEH809I ' MESSAGE IDENTIFIER. 75500003 EJECT 75550003 MAINT2 DS 10F MAINTENANCE AREA @Y30LB35 75600003 SPACE 75650003 TIOT DSECT 75700003 TIOCNJOB DS CL8 JOB NAME 75750003 TIOCSTEP DS CL16 STEP OR PROCEDURE NAME. 75800003 .SS261 ANOP @Y30LB35 75850003 EJECT 75900003 *********************************************************************** 75950003 * * 76000003 * PARAMETER LIST DSECT * 76050003 * * 76100003 *********************************************************************** 76150003 SPACE 2 76200003 PARMLIST DSECT YL02912 76250003 FUNCTION DS 0F CALLER'S FUNCTION. YL02912 76300003 UCBPTR DS F UCB POINTER. YL02912 76350003 DCBPTR DS F DCB POINTER OR YL02912 76400003 CCHHPARM EQU DCBPTR ADDR OF TRACK OR YL02912 76450003 SERPTR EQU DCBPTR ADDR OF VOL SER. YL02912 76500003 ALTPTR DS F ADDR OF ALTINFO OR YL02912 76550003 NEWTTR EQU ALTPTR ADDR OF NEW TTR0 @Y30LB35 76600003 NEWCCHH EQU ALTPTR NEW TRACK ADDRESS. YL02912 76650003 DEBPTR DS F DEB POINTER OR YL02912 76700003 DEVMODP EQU DEBPTR ADDR OF 3340 MODEL NO. YL02912 76750003 OLDVOL EQU DEBPTR ADDR AREA STORE OLD VOL@Y30LB35 76800003 OLDTTR EQU 6 PLACMENT OF OLD TTR VAL@Y30LB35 76850003 PRMPTR DS F ADDR OF CALLER'S LIST. YL02912 76900003 KEY EQU PRMPTR KEY OF CALLER. YL02912 76950003 VTOCCCHH DS 2F VTOC PTR. YM1129 77000003 IGCRESV DS 2F RESERVED. YM1129 77050003 ENDLST EQU * PARAMETER LIST END. @Y30LB35 77100003 SPACE 2 77150003 EJECT 77200003 UCB DSECT @Y30LB35 77250003 IEFUCBOB @Y30LB35 77300003 EJECT 77350003 CVT DSECT @Y30LB35 77400003 CVT SYS=MIN @Y30LB35 77450003 EJECT @Y30LB35 77500003 IKJTCB LIST=YES @Y30LB35 77550003 EJECT @Y30LB35 77600003 IHARB DSECT=YES @Y30LB35 77650003 END 77700003