* 00150000 TITLE 'IGC0005B (IHJARS00) SVC 52 -- RESTART HOUSEKEEPING ROUTINE 1' 00500002 IGC0005B CSECT 00700002 *********************************************************************** 00700402 * * 00750002 *ROUTINE NAME IGC0005B RESTART HOUSEKEEPING ROUTINE 1 * 00900002 * * 00950002 *STATUS - CHANGE LEVEL 000 * 01200002 * * 01220002 *FUNCTION/OPERATION - 1.) GET A WORK AREA OF THE SAME SIZE AS THE * 01500002 * CHKPT WORK AREA. * 01800002 * * 02100002 * 2.) INITIALIZE THE RESTART WORK AREA WITH * 02400002 * INFORMATION PASSED FROM DSDR PROCESSING. * 02700002 * * 02750002 * 3.) IF ANY OF THE FOLLOWING ERRORS ARE * 02760002 * ENCOUNTERED, THE INDICATED ERROR MESSAGE * 02770002 * CODE IS SET AND CONTROL IS TRANSFERRED * 02790002 * TO IGC0V05B. * 02792002 * CODE ERROR TYPE * 02842002 * 216 REGION START ADDR NOT=CURRENT * 02892002 * TOP OF REGION * 02942002 * 023 I/O ERROR READING STEP CONTROL * 02992037 * TABLE(SCT) FROM SCHEDULER WORK * 02994002 * AREA(SWA) * 02998002 * 203 ILLEGAL CALL TO RESTART * 02998402 * (SCTSYSCK BIT IN STEP CONTROL * 02998802 * TABLE NOT SET) * 02999202 * 002 INCORRECT V=R STATUS BETWEEN * 02999602 * CHECKPOINT AND RESTART * 02999702 * * 03000002 * 4.) CONSTRUCT A DCB FOR THE CHKPT DATA SET. * 04200002 * * 04500002 * 5.) OPEN THE CHKPT DATA SET. * 04800002 * * 05100002 *ENTRY POINT - IGC0005B * 05400002 * * 05450002 *INPUT - ADDRESS OF THE FOLLOWING PARAMETER LIST WILL BE PASSED IN * 05700002 * REGISTER 1. * 06000002 * NAME LNGTH DESCRIPTION * 06050002 * REPCIRAD 4 TTR OF 1ST CIR * 06100002 * REPCOUNT 2 NO. OF CHKPTS TAKEN * 06150002 * REPCKIDL 2 LENGTH OF CHECKID * 06200002 * REPCHKID 16 CHECKID * 06250002 * REPDDNM 8 DDNAME OF CHKPT D/S USED FOR RESTART * 06260002 * REPPPM 4 LO ORDER ADDR OF P/P AREA * 06270002 * REPPPE 4 SIZE OF P/P AREA * 06280002 * REPBLKSI 2 CHKPT D/S BLOCK SIZE * 06290002 * REPTIOTL 2 LENGTH OF TIOT * 06292002 * REPFLAGS 1 CHECKPOINT FLAGS 1 * 06294002 * X'80' - AUTO RESTART * 06296002 * X'40' - TRACK OVERFLOW SPECIFIED * 06298002 * X'20' - CHKPT D/S ON TAPE * 06298402 * X'10' - USER AUTH FOR MODESET * 06298802 * X'08' - V=R REQUEST * 06299202 * X'02' - CHECKPOINT ISSUED OPEN * 06299602 * X'01' - CHECKPOINT D/S OPEN FOR BPAM * 06299702 * REPWACL 3 CHECKPOINT WORK AREA LENGTH * 06299802 * REPFLAG2 1 CHECKPOINT FLAGS 2 * 06299902 * X'04' - USER SUPPLIED CHECKID * 06349902 * * 06399902 *OUTPUT - ADDRESS OF RESTART WORK AREA WILL BE IN REGISTER 1. * 10800002 * * 10850002 *EXTERNAL ROUTINES - QMNGRIO * 11100002 *SVCS USED - GETMAIN * 11400002 * FREEMAIN * 11700002 * XCTL * 12000002 * OPEN * 12300002 * TESTAUTH * 12350002 * * 12400002 *EXITS-NORMAL XCTL TO IGC0205B WITH ADDR OF RSTRT W.A. IN * 12600002 * REGISTER 1. * 12900002 * * 12910002 *EXITS-ERROR XCTL TO IGC0V05B WITH ADDR OF RSTRT W.A. IN REG 1, * 12950002 * AND ERROR CODE IN RSRETCOD * 13000002 * * 13050002 *TABLES/WORK AREAS- RSTWA IS THE FIRST PART OF THE RESTART WORK AREA.* 13200002 * THIS ROUTINE FILLS IN RSTWA WITH INFORMATION THAT * 13500002 * IS USED BY OTHER RESTART ROUTINES. * 13800002 * TABLES - DCB,TIOT,TCB,PSA,ASCB,LDA,PQE,CVT,SCT, * 13850002 * DSAB,QDB,JSCB,QMIOP,JESCT,RESTART * 13900002 * SVRB+EXTENDED SAVE AREA,RESTART PARM LIST * 14000002 * * 14060002 *ATTRIBUTES - REENTRANT, SUPERVISOR STATE, TYPE 4 SVC ROUTINE. * 14100002 * * 14150002 *RESTRICTIONS ON USE OF ROUTINE - VS/2-2 ONLY * 14400002 * * 14450002 * CHANGES FOR RELEASE 3.7 14530037 *A762100,C447000,C615000 @ZA18280 14610037 * APAR OZ31477 HAS BEEN FLAGGED AS @ZSUT222 @ZSUT222 14650037 *A176500,176700-177000,196507-196513,387665-387685,562000 @ZSUT222 14660037 *C029920,178690,387695,796500,797100 @ZSUT222 14670037 *D387705 @ZSUT222 14680037 *NOTES - NONE. * 14700002 *********************************************************************** 14750002 EJECT 14800002 BALR RB,ZERO SET UP MODULE ADDRESSABILITY 15000018 USING *,RB 15300018 B BEGIN BRANCH AROUND EYE CATCHER 15350000 CNOP 0,8 ALIGN TO A DOUBLE WORD BOUNDARY 15400000 DC CL8'IGC0005B' MODULE NAME @ZSUT222 15450037 DC CL8'&SYSDATE' LAST DATE SHIPPED @ZSUT222 15460037 DC CL8'@ZSUT222' LAST CODE SHIPPED @ZSUT222 15470037 BEGIN EQU * 15500000 USING RSTSECT,R5 ADDRESS RESTART WORK AREA. 16200017 * * 16205002 *********************************************************************** 16210002 * * 16215002 * THIS SECTION WILL GET CORE FOR THE RESTART WORK AREA. * 16220002 * * 16225002 *********************************************************************** 16230002 * * 16235002 LH R0,MINWALN PRELOAD MINIMUM WA SIZE YM7063 16240002 LTR R1,R1 PARM ANCHOR VALID YM7063 16245002 BZ RSGETWA IF NOT, USE MINIMUM SIZE YM7063 16250002 ICM R3,ICMMSK,0(R1) GET/TEST PARM ADDR YM7063 16255002 BZ RSGETWA IF ZERO, USE MINIMUM SIZE YM7063 16260002 USING PARMSECT,R3 ADDRESS PARM FIELD YM6541 17450002 CLM R0,ADDRBYTS,REPWACL WAS MORE THAN MINIMUM PASSED YM7063 17510002 BNL RSGETWA IF NOT, USE MINIMUM SIZE YM7063 17520002 ICM R0,ADDRBYTS,REPWACL USE LENGTH PASSED BY CALLER YM7063 17550002 RSGETWA ICM R0,HIBYTE,SP253 INSERT SUBPOOL NUMBER YM7063 17600002 LR RD,R0 SAVE THE LENGTH REQUESTED @ZSUT222 17650037 GETMAIN R,LV=(R0) OBTAIN WORK AREA YM6541 17660037 SR R8,R8 CLEAR REG 8 @ZSUT222 17670037 SR R9,R9 CLEAR REG 9 @ZSUT222 17680037 LR RC,R1 BEGIN ADDRESS TO CLEAR @ZSUT222 17690037 MVCL RC,R8 CLEAR THE GOTTEN STORAGE @ZSUT222 17700037 LR RC,R1 RELOAD ADDR OF THE WORKAREA YM6541 17710037 USING RSTWA,RC ADDRESS RESTART WORKAREA YM6541 17720037 ST R4,RSTCBAD SAVE TCB ADDRESS YM7063 17805002 USING TCB,R4 ADDRESS TCB YM7063 17810002 LA R2,RSTIOT-RSTWA SETUP TEMPORARY YM7063 17815002 ST R2,RSBFOFST SUB-WORKAREA FOR YM7063 17820002 AR R2,RC POSSIBLE ERROR PROCESSING YM7063 17825002 * YM7063 17830002 *****************************************************************YM7063 17835002 * YM7063 17840002 * CHECK THE SCT (STEP CONTROL BLK) TO ENSURE THAT YM7063 17845002 * IEFRSTRT WAS INVOKED BY IEFDSDRP. YM7063 17846002 * YM7063 17847002 *****************************************************************YM7063 17848002 * YM7063 17849002 LA RD,RSREGSAV INIT REG SAVEAREA ADDR YM7063 17849202 L R1,TCBJSCB GET JSCB PTR YM7063 17849402 USING IEZJSCB,R1 ADDRESS JSCB YM7063 17849602 L R9,JSCSCT GET SVA ADR OF SCT YM7063 17849802 DROP R1 JSCB YM7063 17849902 LA R1,RSTIOT GET @ OF QMNGR PARM LIST YM7063 17854902 USING QMIOP,R1 ADDRESS PARM LIST YM7063 17855902 ST R4,QMITCBAD STORE TCB @ IN PARM LIST YM7063 17856902 MVI QMIFLAGS,QMIOREAD SET READ FLAG IN PARM LIST YM7063 17857902 LA R0,K176 SET RECORD LENGTH IN PARM YM7063 17858902 STH R0,QMIRECL LIST TO 176 YM7063 17859102 SLL R9,8 SHIFT TTR LEFT 8 YM7063 17859302 ST R9,QMIDSKAD SET SVA FOR SCT IN PARM LIST YM7063 17859502 LA R0,QMNGRWA SET QMNGR WORK AREA ADDRESS YM7063 17859702 ST R0,QMIWRKAD IN PARM LIST YM7063 17859802 LA R9,QMNGRBUF SET RECORD BUFFER ADDRESS YM7063 17864802 ST R9,QMIRECAD IN PARM LIST YM7063 17865802 QMNGRIO READ SCT YM7063 17866802 LTR RF,RF TEST RETURN CODE YM7063 17867802 BZ RSSYSCK BR IF READ OK YM7063 17868802 MVI RSRETCOD+K1,ERR023 SET SWA READ ERR @ZSUT222 17869037 B RSPREXIT BR TO ERROR EXIT YM7063 17869202 DROP R1 PARM LIST ADDRESSING YM7063 17869402 USING INSMSCT,R9 ADDRESS SCT YM7063 17869602 RSSYSCK TM SCTSTEND,SCTSYSCK IS RESTART CALL LEGITIMATE YM7063 17869702 DROP R9 SCT ADDRESSING YM7063 17874702 BO RSOKCALL IF LEGITIMATE CALL, BR YM7063 17875702 MVI RSRETCOD+K1,ERR203 SET ERROR CODE YM7063 17876702 B RSPREXIT GO XCTL TO IGC0V05B YM7063 17877702 RSOKCALL EQU * CALL WAS LEGITIMATE YM7063 17878702 * YM7063 17878902 *****************************************************************YM7063 17879102 * YM7063 17879302 * RESTART CALL IS LEGITIMATE; BEGIN PROCESSING - YM7063 17879502 * YM7063 17879602 *****************************************************************YM7063 17884602 * YM7063 17885602 SR R7,R7 CLEAR WORK REG YM6541 17889602 ICM R7,ADDRBYTS,REPWACL GET LENGTH OF RST WA YM6541 17900002 LH R8,REPLNGTH GET LENGTH OF RST PARMS YM6541 17950002 AR R7,RC GET END OF RST WA +1 YM6541 18000002 SR R7,R8 BACK UP TO GET PARM SAVE ADDR YM6541 18050002 SH R7,C0008 LEAVE ROOM FOR REPFLAG2 YM6541 18052002 * AND RSCKPPML YM6541 18054002 SRL R7,3 ENSURE PARM SAVEAREA IS ON YM6541 18060002 SLL R7,3 A DOUBLE WORD BOUNDARY YM6541 18070002 LA R8,1(,R8) GET PARM MOVE LENGTH YM6541 18100002 EX R8,PARMSAV SAVE RESTART PARMS YM6541 18150002 *PARMSAV MVC 0(1,R7),0(R3) MOVE PARMS TO END OF RST WA YM6541 18200002 LR R3,R7 UPDATE RST PARMS BASE REG YM6541 18250002 ST R3,RSTPARM SAVE ADDR OF RST PARMS YM6541 18300002 * * 19550000 *********************************************************************** 19560000 * * 19570000 * ISSUE FREEPOOL FOR SUBPOOL 250, 251, AND 252 TO FREE CORE OF * 19580002 * IEFRSTRT (STEP THAT ISSUED SVC 52), AND THE JOB PACK AREA. * 19590000 * * 19592000 *********************************************************************** 19594000 * * 19596000 FREEMAIN R,SP=252 19598400 FREEMAIN R,SP=251 FREE JOB PACK AREA A36350 19598802 FREEMAIN R,SP=250 YM6541 19600802 * YM6541 19602802 *****************************************************************YM6541 19604802 * YM6541 19605202 * BEGIN WORKAREA INITIALIZATION YM6541 19605302 * YM6541 19605402 *****************************************************************YM6541 19605502 * YM6541 19606702 L RF,TCBPQE GET ADDR OF DUMMY PQE Y02076 19612002 USING PQESECT,RF Y02076 19613202 L RF,PQEFPQE GET PQE PTR Y02076 19614402 L R9,PQEREGN GET REGION START ADDR Y02076 19615602 DROP RF Y02076 19616802 L R7,CVTPTR GET ADR OF CVT Y02076 19618002 USING CVTMAP,R7 Y02076 19619202 L R8,CVTTCBP GET ADR OF NEXT TCB Y02076 19620402 L R8,CURASOFS(R8) GET CURRENT ASCB Y02076 19621602 USING ASCB,R8 Y02076 19622802 L R8,ASCBLDA-ASCB(R8) GET PTR TO LDA Y02076 19624002 USING LDA,R8 Y02076 19625202 *********************************************************************** 19626402 * * 19627602 * COMPUTE OFFSETS WITHIN W.A. BY INCREMENTING BY * 19628802 * LENGTH OF TIOT DURING CHKPT(CHKPT TIOT WILL BE MOVED TO W.A. * 19630002 * DURING REPMAIN WHEN IT READS IN THE SURS). * 19631202 * * 19632402 *********************************************************************** 19633602 * * 19634802 LA R2,RSTIOT GET ADDR NEXT AVAILABLE BYTE Y02076 19636002 AH R2,REPTIOTL IN THE W.A. (FOR MVT) Y02076 19637202 SR R2,RC COMPUTE OFSET TO REPDCB'S AND Y02076 19638402 ST R2,RSWAOFST REPMAIN'S W.A. Y02076 19639602 ST R2,RSMWOFST SAVE OFFSET IN W.A. Y02076 19640802 AR R2,RC GET ADDRESS OF W.A. Y02076 19642002 USING RSECT,R2 ADDR IGC0005B WORK AREA Y02076 19643202 L R8,CURRGNTP GET CURRENT TOP OF REG Y02076 19644402 CR R9,R8 COMPARE REGION ADDRS Y02076 19646802 BE BEGINB BRANCH IF ADDRS OK Y02076 19648002 MVI RSRETCOD+K1,ERR216 SET ERROR CODE Y02076 19649202 RSPREXIT EQU * SET UP FOR ERROR EXIT Y02076 19650402 MVC RSREGSAV(8),MODID SAVE NAME OF MODULE THAT @ZSUT222 19650737 * HAS DETECTED THE ERROR. @ZSUT222 19650937 STM 0,15,RSREGSAV+8 SAVE CURRENT REGISTERS @ZSUT222 19651337 MVC RHRXLST(LMODNAME),ERREXIT MVE NAME OF EXIT MOD Y02076 19651602 B RSLDR1 BR TO EXIT YM4671 19652802 BEGINB EQU * TEST CALLER'S AUTH Y02076 19654002 L R1,TCBJSCB GET @ OF JSCB YM5774 19868202 USING IEZJSCB,R1 ADDRESS JSCB YM5774 19870202 L R6,JSCDSABQ GET @ OF DSAB QDB YM5774 19874202 TM REPFLAGS,USERAUTH TEST USER'S AUTH-AT CKPT YM5774 19874602 BO RSAUTHA BR IF AUTH FOR MODESET YM5774 19875002 NI JSCBOPTS,X'FF'-JSCBAUTH RESET JSCB AUTH BIT YM7800 19875402 B RSAUTHB BRANCH TO CHECK DSABS YM5958 19875802 RSAUTHA OI JSCBOPTS,JSCBAUTH OR IN USER'S AUTH BIT YM7800 19875902 RSAUTHB EQU * SET UP TO LOOK FOR CHKPT D.S. YM5958 19881302 DROP R1 JSCB ADDRESSING YM5774 19883402 USING QDB,R6 ADDRESS QDB Y02083 19885502 L R6,QDBFELMP GET @ OF 1ST DSAB Y02083 19887602 DROP R6 QDB ADDRESSING Y02083 19889702 USING DSAB,R6 ADDRESS DSAB Y02083 19891802 RSDSABCK EQU * LOOK FOR CHKPT DATA SET Y02083 19893902 L R1,DSABTIOT GET @ OF TIOT DD ENTRY Y02083 19896002 USING TIOENTRY,R1 ADDRESS TIOT DD ENTRY Y02083 19898102 CLC TIOEDDNM,REPDDNM IS THIS CHKPT D/S DD NAME Y02083 19900202 BE RSDSABOK IF YES, GO SET CHKPT FLAGS Y02083 19902302 L R6,DSABFCHN GET @ OF NEXT DSAB Y02083 19904402 B RSDSABCK GO CHECK THIS DSAB Y02083 19906502 RSDSABOK EQU * CHKPT D/S DDNAME FOUND Y02083 19908602 OI DSABFLG4,DSABCKDS+DSABCKVL SET CHKPT STATUS FLAGS Y02083 19910702 * SO OPEN WILL BYPASS SECURITY Y02083 19912802 * TESTS WHICH HAVE ALREADY BEEN Y02083 19922802 * DONE BY DSDRP PROCESSING Y02083 19924802 DROP R1 TIOT DD ENTRY ADDRESSING Y02083 19926802 DROP R6 DSAB ADDRESSING Y02083 19928802 ICM R0,ADDRBYTS,REPPPE+K1 GET LNGTH OF P/P CORE Y02083 19978802 ICM R0,HIBYTE,SP250 SET SUBPOOL NO. Y02083 20028802 GETMAIN R,LV=(R0) GET P/P CORE Y02083 20078802 * * 23020018 RSTCONT EQU * 23100017 * * 23170018 *********************************************************************** 23240018 * * 23310018 * THIS SECTION WILL INITIALIZE THE RESTART WORK AREA WITH * 23400017 * INFORMATION THAT WILL BE USED BY SUBSEQUENT LOADS OF RESTART. * 23700017 * * 23770018 *********************************************************************** 23840018 * * 23910018 LA RD,RSREGSAV INITIALIZE SAVE AREA REGISTER. 25500017 * INITIALIZE W.A. WITH INFORMATION PASSED IN PARM FIELD 26000018 MVC RSPPM(RSPPML-RSPPM),REPPPM LO ADR P/P CORE Y02076 26200002 MVC RSBUFL2(LBLKSZE),REPBLKSI CHKPT D/S BLK SIZE Y02076 26600002 MVC RSTIOTO2(RSTIOTAD-RSTIOTO2),REPTIOTL TIOT LNGTH Y02076 26800002 MVC RSWACL1(RSBUFL-RSWACL1),REPWACL WORK AREA LNGTH Y02076 27000002 MVC RSFLAG1(LFLAGS),REPFLAGS MOVE FLAGS TO W.A. Y02076 27400002 MVC RSTIOTL2(LTIOT),REPTIOTL FOR MVT-MOVE IN LENGTH Y02076 27600002 * OF TIOT SA. 27800002 MVC RSCIRTTR(RSSVRBN-RSCIRTTR),REPCIRAD Y02076 38500002 * SAVE TTR OF CIR 38600018 * * 38650001 *********************************************************************** 38660001 * * 38670001 * TEST THE RESTARTING JOB FOR V=R (TCBFLGS6) YM2776 38680001 * IN CONJUNCTION WITH THE CHECKPOINT HEADER YM2776 38690001 * INFORMATION ON THE CHKPT JOB (RSFLAGS) TO YM2776 38692001 * DETERMINE IF THE V=R BIT IS EITHER ON OR YM2776 38694001 * OFF IN BOTH JOBS. IF MIXED, ERROR MESSAGE CODE 8 YM2776 38696001 * IS GIVEN. YM2776 38698001 * * 38698401 *********************************************************************** 38698801 * * 38699201 * 38706301 MVI RSCKPPML,ZERO MOVE ZERO BYTE FOR TEST YM3092 38708301 TM REPFLAGS,CKVEQR WAS THE CHECKPOINT JOB V=R? YM3092 38710302 CKVEQR EQU 8 V=R BIT IN PARAMETER LIST YM3092 38712301 BNO VEQRTEST NO, DO TEST NOW YM3092 38712701 OI RSCKPPML,VEQR INDICATE V=R IN CHKPT JOB YM3092 38712801 VEQRTEST EQU * YM3092 38713001 XC RSCKPPML(LFLAGS),TCBFLGS6 YM3092 38713101 * HALF ADD TWO BYTES TOGETHER YM2776 38719801 * 38726501 * WHEN THESE TWO BYTES ARE EXCLUSIVE OR'ED TOGETHER YM2776 38733201 * THE HIGH ORDER BIT WILL BE OFF (0) IF BOTH THE YM2776 38743201 * CHECKPOINT AND RESTART STEPS ARE EITHER V=R, OR YM2776 38753201 * V=V. IF THE STEPS WERE DIFFERENT, THE BIT YM2776 38763201 * WILL BE ON (1). YM2776 38765201 * 38765601 TM RSCKPPML,VEQR TEST V=R BIT (BOTH) YM3540 38766000 BNO RSVEROK STATUS IS GOOD, GO ON YM2776 38766401 MVC RSREGSAV(8),MODID SAVE NAME OF MODULE THAT @ZSUT222 38766537 * HAS DETECTED THE ERROR @ZSUT222 38767137 STM 0,15,RSREGSAV+8 SAVE CURRENT REGISTERS @ZSUT222 38768537 MVI RSRETCOD+K1,ERR002 INDICATE V=R TYPE ERROR @ZSUT222 38769537 MVC RHRXLST(LMODNAME),ERREXIT SET V05B XCTL YM4671 38776602 * 38787101 * FREE ONE PAGE IN THE REGION SO THAT THE WTO ROUTINE YM3092 38787501 * WILL HAVE SPACE TO OPERATE IN. YM3092 38787901 * 38788301 FREEPAGE EQU * FREE 1 PAGE FOR ERROR MSG Y02083 38789702 ICM R1,ICMMSK,REPPPM GET LOW BOUND-PP CORE Y02076 38791702 FREEMAIN R,LV=4096,SP=250,A=(1) YM3092 38793002 * 38794402 RSLDR1 EQU * INSTR MUST FOLLOW YM4671 38794802 LR R1,RC LOAD PARM REG WITH W A ADDR YM2776 38795802 B RSEREXIT GO XCTL TO V05B YM2776 38797202 * * 38798602 *********************************************************************** 38800018 * * 38900018 * CONSTRUCT A BSAM DCB. THIS DCB WILL BE USED BY REPMAIN TO * 39000017 * READ THE CHKPT DATA SET. * 39300017 * * 39320018 *********************************************************************** 39340018 RSVEROK EQU * YM2776 39390001 MVC RHRCHKID(RHRXLST-RHRCHKID),REPCHKID Y02076 39440002 * SAVE CHECKID FOR NEXT MODULE 39520018 LA R6,RSBDCB GET ADDR OF DCB MOVE-IN AREA. 39600017 USING IHADCB,R6 ADDRESS AREA WHERE DCB WILL BE BUILT 39900017 MVC IHADCB21(LDCB),RSTDCBD MOVE PRE-BUILT DCB TO W.A. 40200018 MVC DCBDDNAM(DDL),REPDDNM INSERT DDNAME IN DCB. Y02076 40500002 MVC DCBBLKSI(LBLKSZE),RSBUFL2 MOVE BLOCKSIZE INTO DCB. 40700018 TM RSFLAG1,RSTRKOV CHKPT D.S. SPECIFY TRACK OVERFLOW 40900017 BZ RSTRESM NO-SKIP CODE TO SET DCBRECFM FIELD 41000017 OI DCBRECFM,DCBRECTO SET TRACK OVERFLOW BIT IN CHKPT DCB 41100000 RSTRESM EQU * 41400017 ST R6,RSDCBAD1 INITIALIZE DECBS WITH ADDR OF DCB. 41700017 RSTSKP EQU * MFTCR 42600018 RSTADD4K EQU * 42716018 * * 42720018 ST R6,RSTOPEN SET UP OPEN'S PARAMETER LIST. 44400017 MVI RSTOPEN,INOUT MOVE OPTION BYTE TO W.A. @ZA18280 44700037 * SET UP RDJFCB PARAMETERS YA00142 44750002 LA R1,RSTRDJ ADDR OF EXIT LIST YA00142 44800002 ST R1,DCBEXLST PLACE IN DCB YA00142 44850002 LA R1,INFMJFCB ADDR OF JFCB AREA YA00142 44900002 ST R1,RSTRDJ PLACE IN EXIT LST ENTRY YA00142 44950002 MVI RSTRDJ,OPENJOPT SET RDJFCB AND LIST END YA00142 45000002 RDJFCB MF=(E,RSTOPEN) READ THE JFCB YA00142 45000402 TM RSFLAG1,RSTAPE IS THE CHKPT ON TAPE YA00142 45000802 BZ RSTOPN1 BR IF NOT TO OPEN YA00142 45001202 * YA00142 45001602 * DETERMINE THE SEQUENCE NO. OF THE VOLUME WITH THE YA00142 45001702 * REQUIRED CHKPT RECORDS. YA00142 45001802 * * 45002000 LH RF,JFCBVLSQ LOAD ORIG VOL SEQ NO. YA00142 45052002 LTR RF,RF WAS A VOL SEQ SPECIFIED YA00142 45102002 BNZ RSTVLSQ1 BR IF YES YA00142 45152002 * YA00142 45202002 * WHEN A DATA SET WAS OPENED WITH A DISP OF 'MOD' AND NO JFCB YA00142 45252002 * VOL SEQ NO., THEN THE REQUIRED VOL SEQ IS THAT OF THE LAST YA00142 45262002 * VOLUME OF THE CHKPT DATA SET YA00142 45272002 * YA00142 45282002 TM JFCBIND2,JFCOLD IS DISP = MOD YA00142 45292002 BO RSTVLSQ3 BR IF NOT YA00142 45294002 MVC JFCBVLSQ+1(1),JFCBNVOL SET VOL SEQ TO NO. OF YA00142 45296002 * VOLS IN DATA SET YA00142 45298002 B RSTOPN1 BR TO OPEN CHKPT D.S. YA00142 45298402 * YA00142 45298802 * WHEN A VOL SEQ NO. WAS ORIGINALLY SPECIFIED OR IF NONE WAS YA00142 45299202 * SPECIFIED BUT THE DISPOISITION IS 'OLD' OR 'NEW', THEN THE SEQ 45299602 * NO. IS THE SUM OF (JFCBVLSQ-1) AND DEBTVLSQ, WHERE YA00142 45299802 * (JFCBVLSQ-1) GR OR = 0. YA00142 45299902 * YA00142 45349902 RSTVLSQ1 EQU * YA00142 45359902 BCTR RF,0 DECR NON=ZERO VLSQ YA00142 45369902 RSTVLSQ3 EQU * YA00142 45379902 SR R1,R1 ZERO WORK REG YA00142 45389902 IC R1,RSSVRB LOAD DEBTVLSQ SAVED AT YA00142 45391902 * CHKPT TIME IN SVRB PTR YA00142 45393902 AR RF,R1 CALC REQ'D VOL SEQ NO. YA00142 45395902 STH RF,JFCBVLSQ STORE IT IN JFCB YA00142 45397902 * YA00142 45398302 * OPEN THE CHKPT D.S. USING THE JUST-MODIFIED JFCB. NOTE THAT 45398702 * THE MODIFIED JFCB IS NOT WRITTEN BACK TO THE JOBQ BY OPEN YA00142 45399502 * YA00142 45399602 RSTOPN1 EQU * YA00142 45399702 ********************************************************************** 45416402 * FREE 2K OF CORE SO OPEN WILL HAVE ENOUGH SPACE YM7325 45426402 *********************************************************************** 45428402 L R1,RSPPM ADR P/P CORE YM7325 45430402 LH R0,TWOKBLK 2K YM7325 45432402 ICM R0,HIBYTE,SP250 SP250 YM7325 45432802 FREEMAIN R,LV=(R0),A=(R1) YM7325 45432902 MVI RSSVRB,X'00' ZERO VOL SEQ NO. SA62489 45433102 OI JFCBTSDM,JFCNWRIT IND DON'T REWRITE JFCB YA00142 45449802 OPEN TYPE=J,MF=(E,RSTOPEN) OPEN CHKPT D.S. YA00142 45459802 LR R1,RC LOAD PARM REG WITH ADDR OF CHKPT WA. 45499802 MVC RHRXLST(LMODNAME),RHRXLIST MOVE NAME OF NEXT MODULE 45600018 RSEREXIT EQU * YM2776 45650001 LA RF,RHRXLST TO XCTL'S PARM LIST IN WA. 45900018 ST RF,RHRXPTR 46200017 LA RF,RHRXPTR 46500017 ********************************************************************** 46750002 XCTL SF=(E,(15)) TRANSFER CONTROL TO 2ND LOAD OF 46800017 PARMSAV MVC 0(1,R7),0(R3) SUBJECT OF AN EXEC INS YM6541 46850002 ICMMSK EQU X'F' INSERT CHAR MASK Y02076 47150002 CURASOFS EQU 12 OFSET TO CURRENST ASCB Y02076 55850002 K1 EQU 1 CONSTANT 1 Y02076 55860002 ERR216 EQU 216 WRONG REGION BEGIN ADR Y02076 55900002 USERAUTH EQU X'10' USER AUTH'D FOR MODESET Y02076 55950002 AUTHOFF EQU X'EF' MASK - TURN OFF AUTH BIT Y02076 56000002 RHRXLIST DC C'IGC0205B' NEXT LOAD OF HSEKEEPING MFTCR 56100018 ERREXIT DC C'IGC0V05B' ERROR EXIT LOAD OF RESTART YM2776 56150001 MODID DC CL8'IGC0005B' MODULE ID @ZSUT222 56200037 MODESUB DC X'E0FA' U MODE, SP=250 TO GETMAIN Y02076 56400002 SP253 DC X'FD' SUBPOOL 253 56450000 SP250 DC AL1(250) SUBPOOL 250 Y02076 56460002 TWOKBLK DC H'2048' TWO K BLOCKSIZE 56500000 RSTMASK DC X'FF' 57300017 C0008 DC H'8' SUBTRACT CONSTANT YM6541 57350002 MINWALN DC H'4096' MINIMUM RESTART WA SIZE YM7063 57355002 PAGEMASK DC X'00FFF000' 'AND' MASK FOR PAGE ADDRESS M2658 57450000 DS 0F PUTS DCB ON FULL WORD BOUNDARY 57460017 DS C ALIGNS ADDRESS TO FULL WORD BOUNDARY 57520017 RSTDCBD EQU * 57600017 DC AL3(0) BUFCB 57900017 DC AL2(0) BUFL 58200017 DC BL2'0100000000000000' DSORG (BSAM) 58500017 DC A(1) IOBAD 58800017 DC AL1(0) BFTEK,BFALN 59100017 DC AL3(1) EODAD 59400017 DC BL1'11000000' 59700017 DC AL3(0) EXLST 60000017 * FOUNDATION BLOCK 60300017 DC CL8' ' DDNAME 60600017 DC BL1'00000010' OFLGS 60900017 DC BL1'00000000' IFLG 61200017 DC BL2'0010010000100100' MACR @ZA18280 61500037 * BSAM-BPAM-QSAM INTERFACE 61800017 DC BL1'00000000' 62100017 DC AL3(1) CHECK, GERR, PERR 62400017 DC A(1) SYNAD 62700017 DC H'0' CIND1, CIND2 63000017 DC AL2(0) BLKSIZE 63300017 DC F'0' WCPO, WCPL, OFFSR, OFFSW 63600017 DC A(1) IOBA 63900017 DC AL1(1) NCP 64200017 DC AL3(1) EOBR, EOBAD 64500017 * BSAM-BPAM INTERFACE 64800017 DC A(1) EOBW 65100017 DC H'0' DIRCT 65400017 DC AL2(0) LRECL 65700017 DC A(1) CNTRL, NOTE, POINT 66000017 * * 66050000 * MAINTENANCE SPACE * 66100000 * * 66150000 PATCH EQU ((*-IGC0005B)/10) TEN PERCENT MAINTENANCE SPACE 66200002 DC XL(PATCH)'00' 66210000 * * 66250000 RSECT DSECT IGC0005B'S WORK AREA. 66300017 RHRCHKID DS 4F CHECKID 66400017 RHRXLST DS 2F NAME OF MODULE TO RECEIVE CONTROL. 66600017 RHRXPTR DS F POINTER XCTL PARM LIST. 66900017 RSTOPEN DS F OPEN PARAMETER LIST. 67200017 RSTRDJ DS A(INFMJFCB) OPENJ & RDJFCB EXLST YA00142 67250002 IEFJFCBN MAP JFCB YA00142 67300002 PARMSECT DSECT 67500017 REPLNGTH DS CL2 LNGTH OF PARM LIST Y02076 67510002 REPCIRAD DS CL4 TTR OF CIR RECORDS Y02076 67550002 REPCOUNT DS CL2 NUMBER OF CHKPTS TAKEN Y02076 67600002 REPCKIDL DS CL2 LENGTH OF CHECKID Y02076 67650002 REPCHKID DS CL16 CHECKID Y02076 67700002 REPDDNM DS CL8 DDNAME OF CHKPT D/S Y02076 67750002 REPPPM DS CL4 LO ORDER ADR OF P/P AREA Y02076 67800002 REPPPE DS CL4 SIZE OF P/P AREA Y02076 67850002 REPBLKSI DS CL2 CHKPT D/S BLOCK SIZE Y02076 67900002 REPTIOTL DS CL2 LENGTH OF TIOT Y02076 67950002 REPFLAGS DS CL1 CHECKPOINT FLAGS 1 Y02076 68000002 * X'80' AUTOMATIC RESTART Y02076 68050002 * X'40' TRACK OVERFLOW SPECIFIED Y02076 68100002 * X'20' CHKPT D/S ON TAPE Y02076 68150002 * X'10' USER AUTH'D FOR MODESET Y02076 68200002 * X'08' V=R REQUEST Y02076 68250002 * X'02' CHKPT ISSUED OPEN Y02076 68300002 * X'01' CHKPT D/S OPEN FOR BPAM Y02076 68350002 REPWACL DS CL3 CHKPT W/A LENGTH Y02076 68400002 REPFLAG2 DS CL1 CHKPT FLAGS 2 Y02076 68450002 * X'04' USER SUPPLIED CHECKID Y02076 68500002 RSCKPPML DS CL4 FOR V=R TESTS Y02076 68550002 * * 71030018 * MAPPING OF RESTART SVRB AND EXTENDED SAVE AREA USED BY MODULE* 71050018 * * 71070018 RSTSECT DSECT 71100017 RSTSVRB DS 24F 71400017 RSPSD DS 2F GETMAIN RETURNS ADDR AND LNGTH HERE, BUT 71700017 * FIELD IS NEVER REFERENCED 72000017 RSTPARM DS F ADDR OF PARM FIELD. 72300017 RSTFLAG1 DS F FLAGS FIELD. 72600017 RSTAD DS F WORK AREA USED TO STORE ADDRESSES 72900018 RCOUNT DS F 73200017 RSTSAVE DS F SAVE AREA FOR CIR TTR AND CHKPT DATA SET DDNAME. 73500017 * * 73600018 * GETMAIN PARAMETER LIST * 73700018 * * 73800018 RSTGMLIS DS 1F POINTER TO GETMAIN LIST 73900018 RSTGMLS4 DS 1F POINTER TO GETMAIN RETURN ADDRESS 74000018 RSTGMLS8 DS H MODE BYTE AND SUBPOOL NUMBER 74200018 RSTGMLLW DS 2F GETMAIN LIST 74400018 DCBD DSORG=(BS,PO),DEVD=(DA,TA) 75000017 IEFTIOT1 75300017 IKJTCB YM2776 75350001 IHAPSA Y02076 75360002 IHAASCB Y02076 75400002 IHALDA Y02076 75450002 IHAPQE Y02076 75460002 CVT DSECT=YES,PREFIX=YES,LIST=YES Y02076 75500002 IEFASCTB Y02083 75550002 SCTSTEND EQU INSMSCT+172 INTRIM SYMBOL DEFINITION Y02083 75560002 IHADSAB Y02083 75600002 IHAQDB Y02083 75610002 IEZJSCB Y02083 75620002 IEEVRSWA VER=3 USE AOS2 VERSION OF WA 75650000 IEFQMIOP Y02083 75700002 QMNGRWA DS 88C Y02083 75750002 QMNGRBUF DS 176C Y02083 75800002 IEFJESCT Y02083 75850002 PRBL EQU 32 LENGTH OF IEFRSTRT'S PRB 75900018 INPUTOPN EQU 128 OPTION BYTE FOR OPEN PARM LIST. 76200017 INOUT EQU 131 OPTION BYTO FOR IN OUT PROCESSING @ZA18280 76300037 RST256 EQU 256 76500017 DDL EQU 8 LENGTH OF DDNAME FIELD IN DCB. 76800017 LENL EQU 32 OFFSET DEBLNGTH FROM BEG OF APPEND. TABLE 77100017 DCBDECBL EQU 128 LENGTH OF RESTART'S DCB AND TWO DECB. 77400017 DIOBL EQU 80 LENGTH OF DA IOB. 77700017 DICBL EQU 112 LENGTH OF DA ICB. 78000017 TICBL EQU 48 LENGTH OF TAPE ICB 78300017 TIOBL EQU 48 LENGTH OF TAPE IOB 78600017 RSDIRACC EQU 2 INDICATES DIRECT ACCESS DEVICE 78900017 KCVTMVT EQU X'10' 79200017 TIOLEN EQU 28 79500017 VEQR EQU 128 V=R BIT IN TCBFLGS6 AND RSFLAG YM2776 79550001 ERR002 EQU 2 ERROR CODE FOR V=R @ZSUT222 79650037 ERR203 EQU 203 ILLEGITIMATE SVC RESTART CALL Y02083 79700002 ERR023 EQU 23 SWA READ IN ERROR @ZSUT222 79710037 K176 EQU 176 LENGTH OF SCT Y02083 79750002 RSL EQU 256 LENGTH OF RSTWA TO BE ZEROED OUT. 79800017 SVRBL EQU 144 LENGTH OF RESTART SVRB 80100017 DSORGBPM EQU B'01000010' MASK TO CHANGE BSAM DSORG FIELD TO BPAM. 80400017 DCBL EQU 88 LENGTH OF BSAM/BPAM DCB. 80700017 RSTWAL EQU RSTIOT-RSTWA LENGTH OF RESTART W.A. 81000017 RSTRKOV EQU 64 INDICATES CHKPT DCB SPECIFIED TRACK OVERFLOW 81100017 TRKOV EQU 32 TRACK OVERFLOW IN DCBRECFM 81200017 RSSPBKSZ EQU X'08' 81250017 R0 EQU 0 81300017 R1 EQU 1 81600017 R2 EQU 2 81900017 R3 EQU 3 82200017 R4 EQU 4 82500017 R5 EQU 5 82800017 R6 EQU 6 83100017 R7 EQU 7 83400017 R8 EQU 8 83700017 R9 EQU 9 84000017 RA EQU 10 84300017 RB EQU 11 84600017 RC EQU 12 84900017 RD EQU 13 85200017 RE EQU 14 85500017 RF EQU 15 85800017 * 85810018 * DEFINITION OF CONSTANTS, POSITIONS WITHIN OTHER AREAS, 85820018 * AND LENGTHATTRIBUTES 85830018 ZERO EQU 0 DECIMAL - 0 85840018 ONE EQU 1 DECIMAL - 1 85850018 EIGHT EQU 8 DECIMAL - 8 A35696 85855020 DEC256 EQU 256 DECIMAL - 256 85860018 HIBYTE EQU 8 ICM MASK FOR HIGH ORDER BYTE 85862000 ADDRBYTS EQU 7 ICM MASK FOR ADDRESS 85864000 * 85870018 RSBUFL2 EQU RSBUFL+2 BUFFER+2 85880018 RSTIOTO2 EQU RSTIOTO+2 TIOTO 85890018 RSWACL1 EQU RSWACL+1 WORKAREA+1 85900018 RSTIOTL2 EQU RSTIOTL+2 TIOTL 85910018 IHADCB21 EQU IHADCB+21 WORKAREA 85920018 * 85930018 LMODESUB EQU 2 MODE BYTE AND SUBPOOL 85940018 LBLKSZE EQU 2 BLOCK SIZE 85950018 LTIOT EQU 2 TIOT 85960018 LFLAGS EQU 1 FLAGS 85970018 LDCB EQU 67 DCB 85980018 LMODNAME EQU 8 MODULE NAME 85990018 OPENJOPT EQU X'87' END LIST & OPENJ OPT YA00142 86040002 END 86100017