TITLE ' IEAVLK03 COMMENTARY' 00050002 * /* START OF SPECIFICATIONS **** 00100002 * 00150002 *01* MODULE-NAME = IEAVLK03 00200002 * 00250002 *01* DESCRIPTIVE-NAME = PROGRAM MANAGER RECOVERY ROUNTINES 00300002 * 00400002 *01* COPYRIGHT = NONE 00450002 * 00500002 *01* STATUS = VERSION 1 00550002 * 00600002 *01* CHANGE-ACTIVITY - ZA02733 - RELEASE2 00610003 * OZ07515 - RELEASE999 00612003 * OZ03896 - RELEASE 4 00615003 * OZ12452 - RELEASE3 00617003 * OZ19996 - REWRITE OF CDEVER ROUTINE @ZA19996 00618003 * OZ24616 - OBTAIN PROPER RB POINTER @ZA24616 00619003 * 00620003 *01* FUNCTION = PREVENTS UNWANTED ABENDS IN PROGRAM MANAGER BY 00650002 * INTERCEPTING THEM AND CORRECTING ERRORS IF POSSIBLE. 00660002 * THIS ROUTINE ALSO VERIFIES THE CDE QUEUE OR VERIFIES 00710003 * THE PIE/PICA CHAIN. 00740003 * 00800002 *01* NOTES = THE FOLLOWING IS A DESCRIPTION OF THE DEPENDENCIES, 01100002 * CONVENTIONS, AND FUNCTIONS OF IEAVLK03 01110002 * 01150002 *02* DEPENDENCIES = THE SDWA MUST BE PASSED AS INPUT 01200002 * 01450002 *03* CHARACTER-CODE-DEPENDENCIES = NONE 01500002 * 01550002 *02* RESTRICTIONS = NONE 01600002 * 01650002 *02* REGISTER-CONVENTIONS = THE REGISTER CONVENTIONS USED BY 01750002 * IEAVLK03 ARE DESCRIBED UNDER THE TOPIC REGISTER EQUATES. 01800002 * 01850002 *02* PATCH-LABEL = THIS MODULE IS RESIDENT NUCLEUS, AND HAS NO 01900002 * PATCH SPACE. 01950002 * 02000002 *01* MODULE-TYPE = MODULE 02050002 * 02100002 *02* PROCESSOR = ASSEMBLER 02150002 * 02200002 *02* MODULE-SIZE = 994 BYTES 02250002 * 02300002 *02* ATTRIBUTES = REENTERABLE 02350002 * 02400002 *01* ENTRY-POINT = FRRPGMMG 05800002 * 05850002 *02* PURPOSE = THIS ROUTINE IS ENTERED WHEN AN ERROR OCCURS IN 05900002 * PROGRAM MANAGER CAUSING SYSTEM RECOVERY. THIS ROUTINE 05950002 * VERIFIES PROGRAM MANAGER QUEUES (LPA OR JPQ) AND CONTINUES 06000002 * WITH TERMINATION. 06050002 * 06100002 *02* LINKAGE = BRANCH ENTERED FROM RTM1 06150002 * 06200002 *02* INPUT = PSW ENABLED, KEY 0, SUPERVISOR STATE, LOCAL LOCK HELD 06250002 * AND POSSIBLE THE CMS LOCK HELD 06300002 * REGISTERS ARE: 06350002 * REGISTER 1 - POINTER TO SDWA 06400002 * REGISTER 14 - RETURN ADDRESS 06450002 * 06500002 *02* OUTPUT = RETURN TO RTM 06550002 * NO OUTPUT IN WAY OF RETURN CODE, ETC. 06600002 * 06650002 *02* REGISTERS-SAVED = NONE 06700002 * 06750002 *02* REGISTER-USAGE = SEE PROLOGUE AT BEGINNING OF ROUTINE 06800002 * 06850002 *01* ENTRY-POINT = FRRPGMMX 06900002 * 06950002 *02* PURPOSE = THIS ROUTINE IS ENTERED WHEN AN ERROR OCCURS WHEN 07000002 * PROGRAM MANAGER RESOURCE MANAGER FOR EXIT HAS CONTROL. 07050002 * THE ROUTINE VERIFIES THE CDE QUEUE AND CAUSES RETRY TO GIVE 07100002 * RETURN CODE 4. 07150002 * 07200002 *02* LINKAGE = BRANCH ENTERED FROM RTM1 07250002 * 07300002 *02* INPUT = PSW ENABLED, KEY 0, SUPERVISOR STATE, LOCAL LOCK HELD 07310002 * AND POSSIBLE THE CMS LOCK HELD 07320002 * REGISTERS ARE: 07330002 * REGISTER 1 - POINTER TO SDWA 07340002 * REGISTER 14 - RETURN ADDRESS 07342002 * 07344002 *02* OUTPUT = RETURN TO RTM1 TO CAUSE RETRY IN RESOURCE MANAGER 07650002 * 07700002 *02* REGISTERS-SAVED = NONE 07750002 * 07800002 *02* REGISTER-USAGE = SEE PROLOGUE AT BEGINNING OF ROUTINE 07850002 * 07900002 *01* EXIT-ERROR = FRRPGMMG 09650002 * 09700002 *02* CONDITIONS = RETURN TO RTM1 VIA BR14. APPROPRIATE CDE QUEUE 09750002 * HAS BEEN VERIFIED AND PROGRAM MANAGER CAN CONTINUE. 09800002 * 09850002 *02* OUTPUT = REGISTER 14 CONTAINS RETURN ADDRESS 09900002 * ALL OTHER REGISTERS ARE UNPREDICTABLE 10000002 * 10050002 *02* RETURN-CODES = RETURN CODE IN SDWA = 0 (CONTINUE WITH 10100002 * TERMINATION),4 (RETRY) 10150002 * 10200002 *01* EXIT-ERROR = FRRPGMX 10250002 * 10300002 *02* CONDITIONS = RETURN TO RTM1 VIA BR14. APPROPRIATE CDE QUEUE 10350002 * HAS BEEN VERIFIED AND PROGRAM MANAGER CAN CONTINUE. 10400002 * 10450002 *02* OUTPUT = REGISTER 14 CONTAINS RETURN ADDRESS 10500002 * ALL OTHER REGISTERS ARE UNPREDICTABLE 10600002 * 10650002 *02* RETURN-CODES = IN SDWA - RETURN CODE 4 (RETRY) 10700002 * RETURN CODE 0 (CONT. TERMINATION) 10710002 * 10720002 *01* EXTERNAL-REFERENCES = 10800002 * QUEUE VERIFY ROUTINE - TO VERIFY CDE QUEUE 10850002 * ADDRESS VERIFY ROUTINE - TO VERIFY ENTRY ADDRESS 10900002 * 11000002 *02* ROUTINES = 11050002 * FREEMAIN - TO RELEASE QVPL WORK AREA 11100002 * GETMAIN - TO OBTAIN QVPL WORK AREA 11150002 * 11400002 *02* DATA-AREAS = NO DATA SETS ARE USED BY THIS MODULE 11450002 * 11600002 *02* CONTROL-BLOCKS = LLE,CDE,CVT,RB,TCB,SDWA,QVPL 11650002 * 11700002 *01* TABLES = NONE 11750002 * 11800002 *01* MACROS = SETLOCK, RECORD, GETMAIN, FREEMAIN, SETRP 11850002 * 11900002 *02* SERIALIZATION = LOCAL AND POSSIBLY THE CMS LOCK HELD THROUGHOUT 11950002 * PROCESS, NO LOCKS OBTAINED OR FREED 11960002 * 12050002 *01* CHANGE-ACTIVITY = MODULE WRITTEN FOR SUPPORT CODE Y02753 12100002 * 12150002 *01* MESSAGES = THIS MODULE ISSUES MESSAGE IEA959I. 12200002 * 12250002 *01* ABEND-CODES = NONE 12300002 * 12350002 **** END OF SPECIFICATIONS ***/ 12400002 EJECT 12450002 SPACE 2 12500002 */*IEAVLK03: CHART */ 12550002 */* HEADER 12600002 */* PROGRAM MANAGER 12650002 */* SECTION 3.1.11 12700002 */* RECOVERY ROUTINES 12750002 */* PAGE # */ 12800002 SPACE 2 12850002 IEAVLK03 CSECT CSECT NAME **** SINGLE CSECT 12900002 MODID BR=NO 12950002 * ENTRY STATEMENTS 13000002 ENTRY FRRPGMMG ENTRY FOR RECOVERY RTN. 13200002 ENTRY FRRPGMX ENTRY OF EXIT RECOVERY RTN. 13250002 SPACE 1 13260002 EXTRN EOTCHK RETRY ADDRESS IN VLK02 13270002 EXTRN FINIS RETRY ADDRESS IN VLK02 13280002 EXTRN SYNCR RETRY ADDRESS IN VLK00 M01978 13290002 TITLE ' IEAVLK03 REGISTER EQUATES' 13300002 * REGISTER EQUATES 13350002 R0 EQU 0 STANDARD EQUATE 13400002 R1 EQU 1 STANDARD EQUATE 13500002 R2 EQU 2 STANDARD EQUATE 13650002 WKREG2 EQU R2 GENERAL WORK REGISTER 13700002 * REGISTER 3 EQUATES 13750002 R3 EQU 3 STANDARD EQUATE 13800002 CVTREG EQU R3 REGISTER 3 POINTS TO CVT 13850002 WKREG3 EQU R3 GENERAL WORK REGISTER 13900002 * REGISTER 4 EQUATES 13950002 R4 EQU 4 CROSS REFERENCE EQUATE 14000002 TCBREG EQU R4 REGISTER 4 POINTS TO THE TCB 14050002 * REGISTER 5 EQUATES 14100002 R5 EQU 5 CROSS REFERENCE EQUATE 14150002 RBREG EQU R5 POINTER TO THE RB 14200002 * REGISTER 6 EQUATES 14250002 R6 EQU 6 CROSS REFERENCE EQUATES 14300002 BASEREG EQU R6 BASE REGISTER FOR IEAVLK03 14310002 * REGISTER 7 EQUATES 14350002 R7 EQU 7 CROSS REFERENCE EQUATES 14400002 ASCBREG EQU R7 POINTER TO THE ASCB 14450002 * REGISTER 8 EQUATES 14500002 R8 EQU 8 CROSS REFERENCE EQUATES 14550002 SDWAREG EQU R8 POINTER TO SDWA IN FRR 14650002 * REGISTER 9 EQUATES 14700002 R9 EQU 9 CROSS REFERENCE EQUATES 14750002 * REGISTER 10 EQUATES 14950002 R10 EQU 10 CROSS REFERENCE EQUATES 15000002 * REGISTER 11 EQUATES 15050003 R11 EQU 11 CROSS REFERENCE EQUATES @ZA07515 15100003 * REGISTER 13 EQUATES 15350002 R13 EQU 13 CROSS REFERENCE EQUATES 15400002 * REGISTER 14 EQUATES 15600002 R14 EQU 14 CROSS REFERENCE EQUATES 15650002 RETURN EQU R14 RETURN REGISTER FOR ENTRY POINTS 15700002 * REGISTER 15 EQUATES 15750002 R15 EQU 15 CROSS REFERENCE EQUATES 15800002 TITLE ' IEAVLK03 CHARACTER AND HEX MASK EQUATES' 15850002 N0 EQU 0 CONSTANT OF ZERO 16000002 N4 EQU 4 CONSTANT TO PICK UP NEXT IN LIST 16300002 N8 EQU 8 NUMERIC VALUE FOR RETURN CODE 16550002 N9 EQU 9 LENGTH OF STANDARD PART OF XTLST 16650002 MSGLEN EQU 10 LENGTH OF ERROR MESSAGES 16700002 N24 EQU 24 USED FOR 3 BYTE SHIFT 16850002 N36 EQU 36 USED TO LOCATE REG. @ZA24616 16870003 REGSAVE EQU 72 LENGTH OF REG. SAVE AREA 16900002 A0C4 EQU X'04' PROTECTION CHECK CODE 16950002 A0C5 EQU X'05' ADDRESSING ERROR 17000002 A0C10 EQU X'10' SEGMENT EXCEPTION 17050002 A0C11 EQU X'11' PAGEING EXCEPTION 17100002 EJECT 17150002 * MODULE USING STATEMENTS 17200002 USING PSA,0 ADDRESSES LOW CORE 17250002 USING TCB,TCBREG POINTER TO THE TCB 17350002 USING RBSECT,RBREG POINTER TO THE RB 17400002 TITLE ' IEAVLK03 RECOVERY ROUTINE FOR PGM. MGR.' 56850002 */* E FRRPGMMG */ 56900002 */* P SET UP ADDRESSABILITY */ 56950002 SPACE 2 57000002 FRRPGMMG DS 0H ENTRY FOR RECOVERY 57050002 BALR BASEREG,N0 SET UP ADDRESSABILITY 57100002 USING *,BASEREG TELL ASSEMBLER 57150002 SPACE 2 57200002 */* P PUT SDWA ADDRESS IN WKREG (R8) */ 57250002 SPACE 2 57300002 LR SDWAREG,R1 PUT SDWA ADDR. IN WKREG 57350002 USING SDWA,SDWAREG TELL ASSEMBLER 57400002 SPACE 2 57450002 */* P SAVE CALLERS RETURN ADDRESS IN SAFE REGISTER (R10) */ 57500002 SPACE 2 57550002 LR R10,RETURN SAVE CALLERS RETURN ADDR. 57600002 SPACE 2 57650002 */* P GET ABENDING ASID COMPARE FLAG FROM SDWA */ 57700002 */* D (YES,,NO,PERC) ABEND IN SAME MEMORY AS CURRENT? */ 57750002 SPACE 2 57800002 LH WKREG2,SDWAFMID GET ABENDING ASID 57850002 LTR WKREG2,WKREG2 Q. SAME MEMORY 57900002 BNZ PERC A. NO- CONTINUE WITH TERM. 57950002 SPACE 2 58000002 */* D (YES,PERC,NO,) WAS RECOVERY PERCOLATED TO? */ 58050002 SPACE 2 58100002 TM SDWAERRC,SDWAPERC Q. WAS RECOVERY PERC. TO 58150002 BO PERC A. YES- CONTINUE WITH TERM. 58200002 SPACE 2 58250002 */* P GET ENVIRONMENT REGISTERS 3=CVT, 4=TCB, 5=SVRB, 7=ASCB */ 58300002 SPACE 2 58350002 L CVTREG,CVTPTR GET CVT ADDRESS 58400002 L TCBREG,PSATOLD SET UP ENVIRONMENT REGS. 58450002 L RBREG,N0(SDWAREG) GET PARM AREA FROM SDWA 58500002 L RBREG,N0(RBREG) GET SVRB FROM PARM AREA 58550002 L ASCBREG,PSAAOLD GET ASCB 58600002 SPACE 2 58650002 */* D (NO,NXTTST,YES,) ERROR DURING PARM. CHK/PIE PROCING IN VLK00 */ 58700003 SPACE 2 58750002 TM RBCSFLG1,RBCSPARM Q. ERROR DURING PARM. CHECK 58800002 BZ NXTTST A. NO-CONTINUE 58850002 SPACE 2 58854002 */* D (YES,,NO,PGMCHK) WAS SYNCH IN PROCESS */ 58858002 */* S IEAVPSER: CLEAN UP SPIE ENVIRONMENT */ 58860003 */* P (,PGMXEND) CAUSE RETRY AND SKIP ABEND */ 58862002 SPACE 2 58866002 TM RBCDFLGS,RBCDSYNC SYNCH IN PROCESS M01978 58870002 BZ PGMCHK NO- CONTINUE M01978 58874002 LR R1,R8 SAVE SDWA PTR @OZ07515 58874403 L R9,SPIERADR BRANCH TO SPIE @OZ07515 58874803 BALR R11,R9 ERROR ROUTINE TO @OZ07515 58875603 * CLEAN UP INVALID @OZ07515 58876403 * SPIE ENVIRONMENT @OZ07515 58877203 LR R8,R1 RESTORE SDWA PTR @OZ07515 58877603 L WKREG2,SYNCRTY GET RETRY ADDRESS M01978 58878002 SETRP RETADDR=(WKREG2),RC=4,WKAREA=(SDWAREG),RECORD=YES, X58882002 RECPARM=PGMMERR M01978 58886002 B PERC EXIT FROM ERROR ROUTINE M01978 58890002 SPACE 2 58900002 */*PGMCHK: D (NO,NXTTST,YES,) IS ABEND A PROGRAM CHECK? */ 58910002 SPACE 2 59050002 PGMCHK TM SDWAERRA,SDWAPCHK ABEND A PROGRAM CHECK M01978 59100002 BZ NXTTST NO- CONTINUE 59150002 SPACE 2 59200002 */* D (YES,A206,NO,) ABEND A PROTECTION CHECK? */ 59210002 SPACE 2 59250002 CLI SDWAICD1,A0C4 PROTECTION CHECK ABEND 59260002 BE A206 YES- CHANGE ABEND CODE TO 206 59270002 SPACE 2 59280002 */* D (YES,A206,NO,) ABEND AN ADDRESSING ERROR? */ 59282002 SPACE 2 59290002 CLI SDWAICD1,A0C5 ADDRESSING CHECK ABEND 59292002 BE A206 YES- CHANGE ABEND CODE TO 206 59294002 SPACE 2 59296002 */* D (YES,A206,NO,) ABEND A SEGMENT EXCEPTION? */ 59296402 SPACE 2 59298002 CLI SDWAICD1,A0C10 SEGMENT EXCEPTION 59298402 BE A206 YES- CHANGE ABEND CODE TO 206 59298802 SPACE 2 59299202 */* D (NO,NXTTST,YES,) ABEND A PAGE EXCEPTION? */ 59299302 SPACE 2 59299602 CLI SDWAICD1,A0C11 PAGE EXCEPTION 59299702 BNE NXTTST NO- CONTINUE 59299802 SPACE 2 59300002 */*A206: L (,PERC) SETRP-- RESET ABEND CONDITION CODE TO 206 */ 59350002 SPACE 2 59400002 A206 SETRP COMPCOD=(X'206',SYSTEM),WKAREA=(SDWAREG) CAUSE 206 ABEND 59450002 B PERC GO RECORD ERROR 59500002 SPACE 2 59550002 */*NXTTST: P GET ADDRESS OF REG SAVE AREA (16 WORDS) */ 59600002 */* S CDEQVER:VERIFY APPROPRIATE CDE QUE */ 59650002 SPACE 2 59700002 NXTTST DS 0H 59750002 LA R13,SDWASRSV GET ADDRESS OF RETURN REGS. 59800002 BAL RETURN,CDEQVER GO VERIFY PROPER QUEUE 59850002 SPACE 2 59900002 */* L SETRP-- CAUSE ERROR TO BE RECORDED */ 59950002 */*PERC: P RESTORE CALLERS RETURN REGISTER */ 60000002 */* R RETURN VIA BR14 */ 60050002 SPACE 2 60100002 SETRP RECORD=YES,WKAREA=(SDWAREG),RECPARM=PGMMERR RECORD ERROR 60150002 PERC LR RETURN,R10 RESTORE CALLERS RETURN ADDR. 60200002 BR RETURN RETURN TO RTM 60250002 DROP BASEREG 60300002 EJECT 60350002 */* E FRRPGMX */ 60400002 */* P SET UP ADDRESSABILITY */ 60450002 */* P SAVE CALLERS RETURN ADDRESS IN WORK REG. (R10) */ 60500002 SPACE 2 60550002 FRRPGMX DS 0H EXIT FRR 60600002 BALR BASEREG,N0 SET UP ADDRESSABILITY 60650002 USING *,BASEREG TELL ASSEMBLER 60700002 LR R10,RETURN SAVE CALLERS RETURN ADDRESS 60750002 SPACE 2 60800002 */* P PUT SDWA ADDRESS IN WKREG (R8) */ 60850002 SPACE 2 60900002 LR SDWAREG,R1 PUT SDWA IN PROTECTED REG 60950002 USING SDWA,SDWAREG TELL ASSEMBLER WHERE IT IS 61000002 SPACE 2 61050002 */* L SETRP-- CAUSE RECORDING ON TERMINATION */ 61100002 SPACE 2 61150002 SETRP RECORD=YES,WKAREA=(SDWAREG),RECPARM=PGMXERR SET UP FOR 61200002 * RECORDING 61250002 SPACE 2 61850002 */* P GET ABENDING ASID COMPARE FLAG FROM SDWA */ 61900002 */* D (YES,,NO,PGMXPERC) ABEND IN SAME MEMORY AS CURRENT? */ 61950002 SPACE 2 62000002 LH WKREG2,SDWAFMID GET ASID OF CURRENT 62050002 LTR WKREG2,WKREG2 TEST IF SAME ADDRESS SPACE 62100002 BNZ PGMXPERC NO- RETURN TO CALLER 62150002 SPACE 2 62200002 */* P SET UP ENVIRONMENT REGISTERS 3=CVT, 4=TCB, 7=ASCB */ 62250002 SPACE 2 62300002 L CVTREG,CVTPTR GET CVT ADDRESS 62350002 L TCBREG,PSATOLD GET CURRENT TCB 62400002 L R7,PSAAOLD GET ASCB ADDRESS 62450002 SPACE 2 62500002 */* P GET 16 WORD REGISTER SAVE AREA */ 62550002 */* S CDEQVER:VERIFY APPROPRIATE CDE QUEUE */ 62600002 SPACE 2 62650002 LA R13,SDWASRSV GET A REG. SAVE AREA 62700002 BAL RETURN,CDEQVER VERIFY PROPER CDE QUEUE 62750002 SPACE 2 62760002 */* P PUT EXIT'S FRRPARM LIST ADDRESS IN SDWA RETRY REGISTER 13 */ 62770003 SPACE 2 62780002 L R13,N0(SDWAREG) GET ADDR. OF PARM. AREA 62790002 ST R13,SDWASR13 PUT IN RETRY REGISTER @ZA02733 62792003 * AREA @ZA02733 62794003 SPACE 2 62796002 */* P PUT ADDRESS OF IEAVLK02 BASE IN SDWA RETRY REGISTER 6 */ 62798002 SPACE 2 62798402 L WKREG2,N4(R13) GET MODULE BASE ADDRESS 62798802 ST WKREG2,SDWASR08 PUT IN RETRY REGS 62799202 SPACE 2 62800002 */* D (YES,EOTR,NO,) PROGRESS STOPPED PRIOR TO EOTCHK? */ @ZA02733 62820003 SPACE 2 62900002 ICM WKREG2,N8,FRRPLCK0-FRRPLIST(R13) WAS PROGRESS @ZA02733 62950003 * STOPPED PROIR TO EOTCHK @ZA02733 63000003 BZ EOTR YES- RETRY AT EOTCHK @ZA02733 63020003 SPACE 2 63400002 */* L (,PGMXPERC) SETRP-- CAUSE RETRY AT FINIS */ 63450002 SPACE 2 63500002 L WKREG2,FINRETRY GET RETRY ADDRESS T1111 63520002 SETRP RETADDR=(WKREG2),RETREGS=YES,RC=4,WKAREA=(SDWAREG) RETRY 63550002 B PGMXPERC RETURN TO CALLER 63600002 SPACE 2 63650002 */*EOTR: P GET EOTCHK RETRY ADDRESS */ @ZA02733 63670003 */* P PUT TCB/SVRB ADDRESSES IN SDWA RETRY REGISTERS */ 63700003 */* L SETRP-- CAUSE RETRY AT EOTCHK */ 63750002 SPACE 2 63800002 EOTR L WKREG2,EOTRETRY GET EOTCHK RETRY ADDR @ZA02733 63820003 L TCBREG,N0(,R13) POINT TO SAVE AREA @ZA24616 63850003 LM TCBREG,RBREG,N36(TCBREG) LOAD TCB AND RB REGS @ZA24616 63860003 STM TCBREG,RBREG,SDWASR04 SAVE IN RETRY REGISTERS 63900002 SETRP RETADDR=(WKREG2),RETREGS=YES,RC=4,WKAREA=(SDWAREG) 63950002 SPACE 2 64000002 */*PGMXPERC: P RESTORE CALLERS RETURN REGISTER (R10) */ 64050002 */* R RETURN TO CALLER VIA BR14 */ 64150002 SPACE 2 64200002 PGMXPERC LR RETURN,R10 RESTORE CALLERS RETURN REG 64250002 BR RETURN RETURN TO CALLER 64300002 DROP BASEREG NO LONGER NEED BASE 64350002 EJECT 64400002 * CDE QUEUE VERIFY ROUTINE 64450002 * PURPOSE: TO DETERMINE IF THE JPQ OR THE LPA WAS BEING MODIFIED AT 64500002 * THE TIME OF THE ERROR AND VERIFY THE ELEMENTS ON THAT QUEUE 64550002 * ARE VALID. ALSO CHECKS THE LLS FOR VALIDITY AND TRUNCATES 64570003 * THE QUEUE IF NECESSARY. @ZA12452 64600003 * 64650002 * INPUT: 64700002 * R8 = ADDRESS OF SDWA 64750002 * R3-4,7 = ENVIRONMENT REGISTERS 64800002 * R13 = ADDRESS OF 16 WORD SAVE AREA 64850002 * R14 = RETURN ADDRESS 64900002 * R15 = ENTRY POINT 64950002 * 65000002 * OUTPUT: 65050002 * R0-2,8-9,11-12,15 - MODIFIED 65100002 * R3-5,7,10,13-14 - UNCHANGED 65150002 * 65200002 SPACE 1 65250002 */* E CDEQVER */ 65300002 */* P SAVE CALLERS REGISTERS 0-15 IN R13 SAVE AREA */ 65310002 */* P SET UP ADDRESSABILITY */ 65350002 SPACE 2 65450002 CDEQVER DS 0H VERIFIES CDE QUEUE 65500002 USING CVT,CVTREG ADDRESS THE CVT 65510002 STM R0,R15,N0(R13) SAVE CALLERS REGS 65520002 BALR BASEREG,N0 SET UP ADDRESSABILITY 65550002 USING *,BASEREG TELL ASSEMBLER 65600002 SPACE 2 65606003 LA R1,TCBLLS LOAD LIST QUEUE HEAD @ZA12452 65612003 L R2,TCBLLS LINK TO 1ST ELEMENT @ZA12452 65618003 LLSCHK LTR R2,R2 END OF QUEUE? @ZA12452 65624003 BZ LLSEND YES. BR OUT OF LOOP @ZA12452 65630003 LRA R3,0(R2) ELEMENT ADDR VALID? @ZA12452 65636003 BNZ LLSTRUNC NO. TRUNCATE QUEUE @ZA12452 65642003 LA R1,0(R2) SAVE ADDR OF ELEMENT @ZA12452 65648003 L R2,0(R2) LINK TO NEXT ELEMENT @ZA12452 65654003 B LLSCHK LOOP. @ZA12452 65660003 LLSTRUNC DS 0H @ZA12452 65666003 SR R2,R2 ZERO REG 2 @ZA12452 65672003 ST R2,0(R1) ZERO PREV LINK FIELD @ZA12452 65678003 LLSEND DS 0H @ZA12452 65684003 SPACE 2 65700002 */* L GETMAIN-- GET QUEUE VERIFY WORK AREA REQUIRED SPACE */ 65750002 SPACE 2 65800002 GETMAIN RC,BRANCH=YES,LV=QVRSIZE,SP=253 GET QV WORKAREA 65850002 SPACE 2 65900002 */* D (NO,,YES,CDECHEK) GETMAIN SUCCESSFUL? */ 65950002 */* P (,NOFREE) SET RETURN CODE IN REGISTER 15=0 */ 66000002 SPACE 2 66050002 LTR R15,R15 GETMAIN SUCCESSFUL? 66100002 BZ CDECHEK YES- INITIALIZE 66150002 SR R15,R15 SET 0 RETURN 66200002 B NOFREE GO TO RETURN CODE 66250002 SPACE 2 66300002 */*CDECHEK: P CLEAR PARAMETER WORK AREA */ 66350002 SPACE 2 66400002 CDECHEK XC N0(QVPLSIZE,R1),N0(R1) CLEAR PARM AREA 66450002 USING QVPL,R1 SET ADDRESSING TO PARM AREA 66500002 SPACE 2 66550002 */* P RESTORE CVT ADDRESS DESTROYED BY GETMAIN */ 66560002 */* P PUT CDE ELEMENT VERIFICATION ROUTINE ADDRESS IN QVPL */ 66600002 SPACE 2 66650002 L CVTREG,CVTPTR RESET CVT ADDRESS 66660002 LA WKREG2,CDEVER GET CDE ELEMENT VER. ROUTINE 66700002 ST WKREG2,QVPLEVR PUT IN PARM LIST 66750002 SPACE 2 66800002 */* P PUT ADDRESS OF SDWA VARIABLE RECORDING AREA IN QVPL */ 66850002 SPACE 2 66900002 LA WKREG2,SDWARA GET RECORD AREA ADDR. 66950002 ST WKREG2,QVPLODA SAVE IN PARM LIST. 67000002 SPACE 2 67050002 */* P PUT ADDRESS OF A WORKAREA FOR QUEUE VERIFIER IN QVPL */ 67100002 SPACE 2 67150002 LA WKREG2,QVPLSIZE(R1) CALCULATE ADDR. OF WORKAREA 67200002 ST WKREG2,QVPLWKA STORE IN PARM LIST. 67250002 SPACE 2 67300002 */* P SAVE CALLERS REGISTER SAVE AREA ADDRESS */ 67350002 */* P GET A REGISTER SAVE AREA FOR QUEUE VERIFY ROUTINE */ 67400002 */* P PUT SDWA ADDRESS IN R0 */ 67450002 SPACE 2 67500002 LR R10,R13 SAVE CALLERS REG SAVE 67550002 LA R13,QVPLSIZE+QVPLWASZ(R1) GET QV REG SAVE AREA 67600002 LR R0,SDWAREG PUT SDWA ADDR. IN R0 FOR ROUT. 67650002 SPACE 2 67700002 */* L (HELD,LPAVER,NO,) SETLOCK-- TEST IF CMS LOCK IS HELD */ 67750002 SPACE 2 67800002 SETLOCK TEST,TYPE=CMS,BRANCH=(HELD,LPAVER) TEST LOCKS HELD 67850002 SPACE 2 67900002 */* P PUT JPQ ERROR LABEL IN RECORDING AREA */ 67950002 */* P INCREMENT AMOUNT USED COUNT BY MSG LENGTH (10BYTES) */ 68000002 SPACE 2 68050002 LA WKREG2,SDWAVRA GET RECORDING AREA ADDRESS 68100002 MVC N0(MSGLEN,WKREG2),JPQERR PUT HEADER IN RECORDING AREA 68150002 LA WKREG2,MSGLEN GET LENGTH OF HEADER 68200002 STC WKREG2,SDWAURAL AND STORE IN USED PORTION COUNT 68250002 SPACE 2 68300002 */* P PUT ADDRESS OF JPQ HEADER (TCBJPQ FROM JSTCB) IN QVPL */ 68350002 SPACE 2 68400002 L WKREG2,TCBJSTCB GET JSTCB 68450002 LA WKREG2,TCBJPQ-TCB(WKREG2) GET JPQ ADDR. 68500002 ST WKREG2,QVPLHDR SAVE IN HEADER FIELD 68550002 SPACE 2 68600002 */* L IEAQVER-- VERIFY SINGLE THREADED/ HEADER ONLY QUEUE */ 68650002 SPACE 2 68700002 L R15,QVRRTN GET ADDR. OF QUEUE VER RTN. 68750002 BALR RETURN,R15 GO TO QUEUE VER. RTN. 68800002 SPACE 2 68860002 */* P GET REASON CODE IN REGISTER WITHOUT INDICATORS */ 68870002 */* D (YES,CDEQEXIT,NO,) ANY ERRORS FOUND? */ 68880002 SPACE 2 68892002 SLL R15,N24 SHIFT REASON CODE TO HIGH BYTE 68894002 LTR R15,R15 ANY ERRORS 68896002 BNZ CDEQEXIT YES - TERMINATE 68898002 SPACE 2 68898402 */* P (,CDEQEXIT) CLEAR USED PORTION OF RECORDING AREA IN SDWA */ 68900002 SPACE 2 68950002 SR WKREG2,WKREG2 CLEAR REG TO PUT ZERO USED 69000002 STC WKREG2,SDWAURAL COUNT IN SDWA RECORDING AREA 69050002 B CDEQEXIT RETURN TO CALLLER 69100002 SPACE 2 69150002 */*LPAVER: P PUT LPQ ERROR LABEL IN RECORDING AREA OF SDWA */ 69200002 SPACE 2 69250002 LPAVER LA WKREG2,SDWAVRA GET RECORDING AREA ADDRESS 69300002 MVC N0(MSGLEN,WKREG2),LPQERR PUT HEADER IN RECORDING AREA 69350002 LA WKREG2,MSGLEN GET LENGTH OF HEADER 69400002 STC WKREG2,SDWAURAL AND STORE IN USED PORTION COUNT 69450002 SPACE 2 69500002 */* P PUT ADDRESS OF LPA QUEUE HEADER IN QVPL (IEAQLPAQ) */ 69550002 SPACE 2 69600002 L WKREG2,CVTQLPAQ GET LPA QUEUE HEADER 69650002 ST WKREG2,QVPLHDR SAVE IN PARM AREA 69700002 SPACE 2 69750002 */* L IEAVQVER-- VERIFY SINGLE THREADED/ HEADER ONLY QUEUE */ 69800002 SPACE 2 69850002 L R15,QVRRTN GET ADDR. OF QUEUE RTN. 69900002 BALR RETURN,R15 QUEUE VER. RTN. 69950002 SPACE 2 70000002 */* P GET REASON CODE IN REGISTER WITHOUT INDICATORS */ 70050002 */* D (YES,RECRDLPA,NO,) ANY ERRORS FOUND? */ 70100002 */* P (,CDEQEXIT) ZERO COUNT USED IN RECORDING AREA IN SDWA */ 70150002 SPACE 2 70200002 SLL R15,N24 SHIFT REASON CODE TO HIGH BYTE 70250002 LTR R15,R15 ANY ERRORS 70300002 BNZ RECRDLPA YES - CAUSE WTO BEFORE EXIT 70350002 SR WKREG2,WKREG2 CLEAR REG TO PUT ZERO USED 70400002 STC WKREG2,SDWAURAL COUNT IN SDWA RECORDING AREA 70450002 B CDEQEXIT END 70500002 SPACE 2 70550002 */*RECRDLPA: P SAVE QVPL ADDRESS OVER RECORD INTERFACE */ 70600002 */* P GET REGISTER SAVE AREA FOR RECORD */ 70650002 */* L RECORD-- CAUSE ASYNCROUS WTO WITH MESSAGE IEA959I */ 70700002 */* P RESTORE QVPL ADDRESS INTO R1 */ 70750002 SPACE 2 70800002 RECRDLPA LR WKREG2,R1 SAVE QVPL ADDR. OVER RECORD 70850002 LA R13,QVPLSIZE+QVPLWASZ(R1) GET REGISTER SAVE AREA @M05550 70900002 RECORD TYPE=WTO,RCVRY=SETFRR,DATAADR=IEA959,LENGTH=MSGLNTH, *70950002 BUFFER=YES 71000002 LR R1,WKREG2 RESTORE QVPL AREA ADDRESS 71050002 SPACE 2 71100002 */*CDEQEXIT: L FREEMAIN-- FREE QUEUE VERIFIER WORK SPACE AND PARM LIST 71150002 */**/ 71200002 */* P RESTORE CALLERS REGISTER SAVE AREA ADDR. FROM R10 */ 71250002 */*NOFREE: P RESTORE CALLERS REGISTERS */ 71300002 */* R RETURN TO CALLER VIA BR14 */ 71350002 SPACE 2 71400002 CDEQEXIT FREEMAIN RC,LV=QVRSIZE,A=(1),SP=253,BRANCH=YES FREE QVPL/REGSA 71450002 LR R13,R10 RESTORE CALLERS SAVE REGS 71500002 NOFREE LM R0,R14,N0(R13) RESOTRE CALLERS REGS M01976 71550002 BR RETURN RETURN TO CALLER 71600002 DROP BASEREG FREE BASE 71650002 DROP CVTREG FREE CVT POINTER 71660002 EJECT 71700002 *********************************************************************** 71710003 * 71720003 * CDE ELEMENT VERIFICATION ROUTINE 71750002 * PURPOSE: TO VERIFY THAT THE ELEMENT PASSED AS INPUT IS A CDE 71800002 * 71850002 * INPUT: 71900002 * R0 = ADDRESS OF ELEMENT TO BE VERIFIED 71950002 * R1 = ADDRESS OF SDWA 72000002 * R14 = RETURN ADDRESS 72050002 * R15 = ENTRY POINT ADDRESS 72100002 * 72150002 * OUTPUT: 72200002 * R15 = RETURN CODE 72250002 * 0 = VALID 72300002 * 4 = INVALID (REMOVE ELEMENT) 72350002 * 8 = INVALID (TRUNCATE QUEUE) 72400002 * R1,8-13 = UNCHANGED 72450003 * R2-7 = UNPREDICTABLE 72490003 * 72530003 *********************************************************************** 72570003 SPACE 1 72610003 CDEVER DS 0H CDE ELEMENT VERIFIER @ZA19996 72650003 BALR BASEREG,N0 SET UP ADDRESSIBILITY @ZA19996 72680003 USING *,BASEREG TELL ASSEMBLER @ZA19996 72710003 LR R7,RETURN SAVE CALLERS RETURN ADR @ZA19996 72740003 LR R4,R0 CDE TO BE VERIFIED @ZA19996 72770003 USING CDENTRY,R4 BASE FOR CDE DSECT @ZA19996 72800003 *********************************************************************** 72890003 * 72930003 * VERIFY THAT CDE CAN BE ADDRESSED BY CALLING THE ADDRESS VERIFY 72970003 * ROUTINE WITH THE ADDRESS OF THE CDE IN REG 2 AND THE LENGTH OF 73010003 * THE CDE IN REG 0 @ZA19996 73050003 * 73080003 *********************************************************************** 73110003 SPACE 1 73140003 LA R2,CDENTRY PUT CDE IN USABLE REG @ZA19996 73170003 LA R0,CDESIZE SIZE OF ELEMENT TO CHK @ZA19996 73200003 L R15,ADVER ADDRESS VERIFIER RTN. @ZA19996 73230003 BALR RETURN,R15 GO TO ADDR. VER. RTN. @ZA19996 73260003 LTR R15,R15 ADDRESS VALID? @ZA19996 73290003 BNZ CDRET08 NO. RETURN WITH CODE 8 @ZA19996 73320003 SPACE 1 73450003 *********************************************************************** 73490003 * 73530003 * VERIFY THAT THE NAME FIELD IN THE CDE CONTAINS ALFANUMERIC 73570003 * CHARACTERS. CALL INTERNAL SUBROUTINE NAMEVER. @ZA19996 73610003 * 73640003 *********************************************************************** 73670003 SPACE 1 73700003 LA R2,CDNAME ADR MODULE NAME FIELD @ZA19996 73730003 BAL R14,NAMEVER CALL NAMEVER ROUTINE @ZA19996 73760003 LTR R15,R15 NAME FIELD VALID? @ZA19996 73790003 BNZ CDRET08 NO. RETURN WITH CODE 8 @ZA19996 73820003 SPACE 1 73930003 *********************************************************************** 73970003 * 74010003 * IF THE CDE IS A MINOR, VERIFY THAT THE MAJOR CDE CAN BE ADDRESSED 74050003 * AND THAT THE MAJOR CDE CONTAINS ALFANUMERIC CHARACTERS IN ITS 74090003 * MODULE NAME FIELD @ZA19996 74130003 * 74160003 *********************************************************************** 74190003 SPACE 1 74220003 TM CDATTR,CDMIN IS THE CDE A MINOR? @ZA19996 74250003 BZ XTLVER NO. DO TESTS FOR MAJOR @ZA19996 74280003 L R2,CDXLMJP YES. GET MAJOR POINTER @ZA19996 74310003 LTR R2,R2 MAJOR POINTER = ZERO? @ZA19996 74340003 BZ CDRET04 YES. RETURN WITH CODE 4 @ZA19996 74370003 LA R0,CDESIZE LENGTH OF CDE @ZA19996 74400003 L R15,ADVER ADDRESS VERIFY ROUTINE @ZA19996 74430003 BALR R14,R15 VERIFY MAJOR CDE ADDR @ZA19996 74460003 LTR R15,R15 ADDRESS VALID? @ZA19996 74490003 BNZ CDRET04 NO. RETURN WITH CODE 4 @ZA19996 74520003 LA R2,CDNAME-CDENTRY(R2) ADDR MODULE NAME FIELD @ZA19996 74550003 BAL R14,NAMEVER VER MOD NAME IN MAJOR @ZA19996 74580003 LTR R15,R15 MODULE NAME VALID? @ZA19996 74610003 BNZ CDRET04 NO. RETURN WITH CODE 4 @ZA19996 74640003 B CDRET00 YES. MINOR CDE O.K. @ZA19996 74670003 SPACE 1 74890003 *********************************************************************** 74930003 * 74970003 * FOR MAJOR CDE, VERIFY THAT THE EXTENT LIST POINTER IS EITHER 75010003 * ZERO (VALID FOR CDE BUILT BY IDENTIFY FUNCTION), OR POINTS TO 75050003 * AN ADDRESSABLE LOCATION. @ZA19996 75090003 * 75120003 *********************************************************************** 75150003 SPACE 1 75180003 XTLVER DS 0H @ZA19996 75210003 L R2,CDXLMJP GET EXTENT LIST POINTER @ZA19996 75240003 LTR R2,R2 DOES IT EQUAL ZERO? @ZA19996 75270003 BZ CDRET00 YES. MAJOR CDE O.K. @ZA19996 75300003 LA R0,16 LENGTH OF XTLST @ZA19996 75330003 L R15,ADVER ADDRESS VERIFY ROUTINE @ZA19996 75360003 BALR R14,R15 VERIFY ADDRESS @ZA19996 75390003 LTR R15,R15 XTLST ADDRESSABLE? @ZA19996 75420003 BNZ CDRET04 NO. RETURN WITH CODE 4 @ZA19996 75450003 SPACE 2 75480003 CDRET00 SR R15,R15 RETURN CODE = 0 @ZA19996 75510003 B CDVEREND EXIT @ZA19996 75540003 CDRET04 LA R15,4 RETURN CODE = 4 @ZA19996 75570003 B CDVEREND EXIT @ZA19996 75600003 CDRET08 LA R15,8 RETURN CODE = 8 @ZA19996 75630003 CDVEREND LR R14,R7 RESTORE RETURN REGISTER @ZA19996 75660003 BR R14 BR BACK TO QUEUE VERIFY @ZA19996 75690003 EJECT 75930003 *********************************************************************** 75970003 * 76010003 * NAMEVER ROUTINE - CALLED FOR INPUT CDE AND MAJOR CDE IF INPUT 76050003 * CDE IS A MINOR. VERIFIES THAT THE MODULE NAME FIELD CONTAINS 76090003 * ALFANUMERIC CHARACTERS. INPUT: R2 CONTAINS ADDRESS OF CDE TO 76130003 * BE VERIFIED. OUTPUT: R15 CONTAINS RETURN CODE - 0 IF NAME FIELD 76170003 * VALID, 4 IF NAME FIELD NOT VALID. @ZA19996 76210003 * 76240003 *********************************************************************** 76270003 SPACE 1 76300003 NAMEVER DS 0H @ZA19996 76330003 LA R0,8 EIGHT BYTES TO BE CHECKED @ZA19996 76360003 LA R3,OKCHARS POINTER TO VALID CHAR TABLE @ZA19996 76380003 NAMECMPR CLC 0(1,R2),0(R3) BYTE IN NAME = CHAR IN TABLE?@ZA19996 76400003 BE NAMEINCR YES. CHECK NEXT BYTE IN NAME @ZA19996 76420003 LA R3,1(R3) NO. TRY NEXT CHAR IN TABLE. @ZA19996 76440003 CLI 0(R3),X'00' END OF TABLE? @ZA19996 76460003 BNE NAMECMPR NO. GO AHEAD AND COMPARE @ZA19996 76540003 LA R15,4 YES. NAME FIELD INVALID @ZA19996 76570003 BR R14 RETURN WITH CODE = 4 @ZA19996 76600003 NAMEINCR LA R2,1(R2) BUMP POINTER IN NAME FIELD @ZA19996 76630003 LA R3,OKCHARS BEGINNING OF VALID CHAR TABLE@ZA19996 76660003 BCT R0,NAMECMPR LOOP IF MORE BYTES TO CHECK @ZA19996 76670003 SR R15,R15 ALL BYTES CHECKED. @ZA19996 76720003 BR R14 RETURN WITH CODE = 0. @ZA19996 76750003 SPACE 2 76780003 OKCHARS DC C' $#@ABCD' VALID CHARACTERS FOR MODULE @ZA19996 76810003 DC C'EFGHIJKL' NAME. @ZA19996 76840003 DC C'MNOPQRST' @ZA19996 76870003 DC C'UVWXYZ01' @ZA19996 76900003 DC C'23456789' @ZA19996 76930003 DC X'00' END OF TABLE INDICATOR @ZA19996 76960003 SPACE 2 76990003 DROP R4 RELEASE CDE @ZA19996 77020003 DROP BASEREG RELEASE BASE @ZA19996 77050003 EJECT 77370003 */* FOOTING 78050002 */* 78100002 */* */ 78150002 */*IEAVLK03: END */ 78200002 TITLE ' IEAVLK03 GENERAL MODULE EQUATES AND CONSTANTS' 78250002 QVRRTN DC V(IEAVEQV1) ENTRY TO QUEUE VERIFY ROUTINE 78450002 ADVER DC V(IEAVEADV) ENTRY TO ADDRESS VERIFY ROUTINE 78500002 SPIERADR DC V(IEAVSPER) SPIE ERROR RTN @OZ07515 78520003 JPQERR DC CL10'JPQ ERROR ' ERROR LABEL 78550002 JPQEND EQU * 78600002 LPQERR DC CL10'LPA ERROR ' ERROR LABEL 78650002 LPAEND EQU * 78700002 XLSTHEAD DC F'16' LENGTH OF 16 78800002 DC F'1' COUNT OF 1 BLOCK 78850002 DC X'80' END-OF-LIST INDICATOR 78900002 IEA959 WTO 'IEA959I ERROR CAUSED ACTIVE LPA TO BE TRUNCATED, MODUL*78950002 E CONTROL MAY BE LOST',MF=L,ROUTCDE=2,DESC=4 @M7603 79000002 MSGEND EQU * END OF MSG TO OPERATOR 79050002 MSGLNTH EQU MSGEND-IEA959 LENGTH OF TOTAL MSG AND CODES 79100002 PGMXERR DC CL8'IEAVLK02' MODULE IN ERROR 79150002 DC CL8'IEAPPGMX' CSECT IN ERROR 79200002 DC CL8'FRRPGMX' RECOVERY ROUTINE 79250002 PGMMERR DC CL8'IEAVLK00' MODULE IN ERROR 79300002 DC CL8'IEAVLK00' CSECT IN ERROR 79350002 DC CL8'FRRPGMMG' RECOVERY ROUTINE 79400002 EOTRETRY DC A(EOTCHK) ADDRESS OF EOT RTN. 79450002 FINRETRY DC A(FINIS) ADDRESS OF RETURN TO CALLER 79500002 SYNCRTY DC A(SYNCR) ADDRESS OF SYNCH RETURN M01978 79520002 TITLE ' IEAVLK03 MAPPING MACROS' 79550002 FRRPLIST DSECT FRRPARM LIST @ZA02733 79552003 FRRPLWD0 DS 0F WORD ZERO @ZA02733 79554003 FRRPLSAV DS F SAVE AREA ADDRESS @ZA02733 79556003 FRRPLWD1 DS 0F WORD ONE @ZA02733 79558003 FRRPLBAS DS F IEAVLK02 BASE ADDRESS @ZA02733 79560003 FRRPLWD2 DS 0F WORD TWO @ZA02733 79562003 FRRPLR11 DS F GR11 SAVE AREA @ZA02733 79564003 FRRPLWD3 DS 0F WORD THREE @ZA02733 79566003 FRRPLR12 DS F GR12 SAVE AREA @ZA02733 79568003 FRRPLWD4 DS 0F WORD FOUR @ZA02733 79570003 FRRPLR13 DS F GR13 SAVE AREA @ZA02733 79572003 FRRPLWD5 DS 0F WORD FIVE @ZA02733 79574003 FRRPLCHK DS 0F PROGRESS CHECK WORD @ZA02733 79576003 FRRPLCK0 DS B EOTCHK CHECK POINT @ZA02733 79578003 FRRPLCK1 DS B RESERVED @ZA02733 79580003 FRRPLCK2 DS B RESERVED @ZA02733 79582003 FRRPLCK3 DS B RESERVED @ZA02733 79584003 IHACDE 79600002 CDEEND EQU * 79650002 CDESIZE EQU CDEEND-CDENTRY SIZE OF CDE 79700002 EJECT 79750002 CVT DSECT=YES,PREFIX=NO 79800002 EJECT 79850002 IHAPSA 79900002 EJECT 80250002 IHAQVPL 80300002 QVRSIZE EQU QVPLSIZE+QVPLWASZ+REGSAVE SIZE NEEDED FOR QV RTN 80350002 EJECT 80400002 IHARB 80450002 ******************************************************************* 80500002 * 80550002 * REQUEST BLOCK ADDITIONAL LABELS INTERNAL 80600002 * 80650002 ****************************************************************** 80700002 ORG RBEXSAVE MAPPED INTO RBEXSAVE 80750002 RBCSEXSA EQU * PROGRAM MANAGER USAGE OF 80800002 * RB EXTENDED SAVE AREA FOR 80850002 * REENTRANT DATA AREA 80900002 RBCSNAME DS CL8 ENTRY POINT NAME CALLER PASSED 80950002 RBCSDE DS 0A ADDRESS OF DE SAVE AREA 81000002 DS C BYTE RESERVED 81050002 RBCSDEA DS AL3 3 BYTE ADDRESS 81100002 RBCSERRA DS F ADDRESS OF ERROR ROUTINE 81150002 RBCSFLG1 DS B FLAG BYTE 81200002 RBCSGSF EQU X'80' GOOD SEARCH INDICATOR 81250002 * ON MEANS IEAVVMSR WAS 81300002 * SUCCESSFUL USED ONLY 81350002 * IEAVLK01 81400002 RBCSSYSR EQU X'40' SYSTEM REQUEST FLAG 81450002 RBCSPARM EQU X'20' PARMATER CHECKING IN PROGRESS 81500002 RBCSERIN EQU X'10' ERROR RETURN WAS REQUESTED 81550002 RBCSABEN EQU X'08' ISSUE 906 ABEND 81600002 RBCSA306 EQU X'04' ISSUE 306 ABEND 81650002 RBCSFLG2 DS B RESERVED FLAGS 81750002 RBCSFLG3 DS B RESERVED FLAGS 81800002 RBCSFLG4 DS B RESERVED FLAGS 81850002 RBCSWORK DS 0A ADDRESS OF BLDL FETCH W.A. 81900002 DS C RESERVED BYTE 81950002 RBCSWRKA DS AL3 3 BYTE ADDRESS 82000002 RBCSLLE DS 0A ADDRESS OF LLE DURING LOAD 82050002 DS C RESERVED BYTE 82100002 RBCSLLEA DS AL3 3 BYTE ADDRESS 82150002 RBCSFRRA DS F SAVE AREA FOR RECOVERY RTN. 82200002 * PARM LIST 82250002 RBCSGR15 DS F SAVE AREA FOR REGS 15 TO 1 82300002 RBCSGR0 DS F OVER MODESET MACRO 82350002 RBCSGR1 DS F INTERFACE 82400002 RBCSRESV DS 2F RESERVED FOR FUTURE EXPANSION 82450002 EJECT 82500002 IHASDWA 82650002 EJECT 82700002 IKJTCB 82750002 EJECT 82800002 END 82900002