JEOB TITLE 'IGC111 - JOB ENTRY SUBSYSTEM ACCESS METHOD SVC ROUTINE' 00500002 IGC111 START 0 SVC 111 -- JES ACCESS METHOD SVC 01000002 EJECT 01500002 *********************************************************************** 02000002 * * 02500002 * MODULE NAME -- IGC111 * 03000002 * * 03500002 * DESCRIPTIVE NAME -- SVC 111 * 04000002 * * 04500002 * COPYRIGHT -- NONE * 05000002 * * 05500002 * STATUS -- RELEASE 1, LEVEL 0 * 06000002 * * 06500002 * FUNCTION -- PROVIDES AN EXIT TO AN ACCESS METHOD END-OF-BLOCK * 07000002 * ROUTINE IN KEY 0, SUPERVISOR STATE, WITH NO LOCKS. * 07500002 * THIS ROUTINE IS USED BY THE JOB ENTRY SUBSYSTEM ACCESS * 08000002 * METHODS TO MOVE DATA TO AND FROM PROTECTED AREAS OF * 08500002 * MAIN STORAGE. SECURITY IS ASSURED BY REQUIRING THAT * 09000002 * THE EXIT ADDRESS BE PROVIDED THROUGH A VALID DATA * 09500002 * EXTENT BLOCK (DEB). INVALID CALLERS WILL BE TERMINATED * 10000002 * WITH A SYSTEM 36F ABEND CODE. * 10500002 * * 11000002 * NOTES -- SEE BELOW * 11500002 * * 12000002 * DEPENDENCIES -- NONE * 12500002 * * 13000002 * RESTRICTIONS -- NONE * 13500002 * * 14000002 * REGISTER CONVENTIONS -- R0 = ENTRY CODE, UNUSED BY IGC111 * 14500002 * R1 = ADDRESS OF RPL * 15000002 * R2 = ADDRESS OF ASSOCIATED DEB * 15500002 * R3 = ADDRESS OF CVT * 16000002 * R4 = ADDRESS OF CALLER'S TCB * 16500002 * R5 = ADDRESS OF CURRENT RB * 17000002 * R6 = ADDRESS OF IGC111 ENTRY POINT * 17500002 * R7 = ADDRESS OF ASCB * 18000002 * R8 = ADDRESS OF ASSOCIATED ACB * 18500002 * * 19000002 * PATCH LABEL -- NONE * 19500002 * * 20000002 * MODULE TYPE -- SUPERVISOR * 20500002 * * 21000002 * PROCESSOR -- ASSEMBLER F OR ASSEMBLER H * 21500002 * * 22000002 * MODULE SIZE -- 88 DECIMAL BYTES * 22500002 * * 23000002 * ATTRIBUTES -- RE-ENTERABLE * 23500002 * * 24000002 * ENTRY POINT -- IGC111 * 24500002 * * 25000002 * PURPOSE -- SEE FUNCTION * 25500002 * * 26000002 * LINKAGE -- SVC 111 * 26500002 * * 27000002 * INPUT -- R0 = ENTRY CODE * 27500002 * R1 = IF POSITIVE, ADDRESS OF RPL * 28000002 * IF NEGATIVE, ADDRESS OF ACB * 28500002 * R3 = ADDRESS OF CVT * 29000002 * R4 = ADDRESS OF CALLER'S TCB * 29500002 * R5 = ADDRESS OF CURRENT RB * 30000002 * R6 = ADDRESS OF IGC111 ENTRY POINT * 30500002 * R7 = ADDRESS OF ASCB * 31000002 * * 31500002 * OUTPUT -- SAME AS INPUT, PLUS - * 32000002 * R2 = ADDRESS OF ASSOCIATED DEB * 32500002 * R15 = ADDRESS OF END-OF-BLOCK ROUTINE * 33000002 * * 33500002 * EXIT-NORMAL -- TO END-OF-BLOCK ROUTINE SPECIFIED IN THE SECOND WORD * 34000002 * OF AN EXIT LIST POINTED TO BY THE DEBAPPAD FIELD OF * 34500002 * THE DEB. ENTRY TO THE END-OF-BLOCK ROUTINE IS MADE * 35000002 * IN KEY ZERO, SUPERVISOR STATE, WITH NO LOCKS. * 35500002 * * 36000002 * EXIT-ERROR -- IF RPL/ACB ADDRESS IS ZERO OR IF DEB IS INVALID, * 36500002 * EXIT IS MADE THROUGH ABEND (SVC 13) WITH AN ABEND * 37000002 * CODE OF SYSTEM 36F * 37500002 * * 38000002 * EXTERNAL REFERENCES -- SEE BELOW * 38500002 * * 39000002 * ROUTINES -- DEB CHECK ROUTINE SPECIFIED BY CVTDEBVR ENTRY IN CVT * 39500002 * END-OF-BLOCK ROUTINE SPECIFIED THROUGH DEB * 40000002 * * 40500002 * SETLOCK ROUTINE * 41000002 * * 41500002 * DATA AREAS -- NONE * 42000002 * * 42500002 * CONTROL BLOCKS -- REQUEST PARAMETER LIST (RPL) * 43000002 * ACCESS METHOD CONTROL BLOCK (ACB) * 43500002 * DATA EXTENT BLOCK (DEB) * 44000002 * COMMUNICATIONS VECTOR TABLE (CVT) * 44500002 * CVT EXTENSION * 45000002 * REQUEST BLOCK (RB) * 45500002 * * 46000002 * TABLES -- NONE * 46500002 * * 47000002 * MACROS -- IHAPSA * 47500002 * CVT * 48000002 * IKJRB * 48500002 * IFGRPL * 49000002 * IFGACB * 49500002 * IEZDEB * 50000002 * SETLOCK * 50500002 * * 51000002 * CHANGE ACTIVITY -- NONE * 51500002 * * 52000002 *********************************************************************** 52500002 TITLE 'SYMBOLIC REGISTER DEFINITIONS' 53000002 SPACE 5 53500002 * 54000002 * SYMBOLIC REGISTER DEFINITIONS 54500002 * 55000002 SPACE 3 55500002 R0 EQU 0 56000002 R1 EQU 1 56500002 R2 EQU 2 57000002 R3 EQU 3 57500002 R4 EQU 4 58000002 R5 EQU 5 58500002 R6 EQU 6 59000002 R7 EQU 7 59500002 R8 EQU 8 60000002 R9 EQU 9 60500002 R10 EQU 10 61000002 R11 EQU 11 61500002 R12 EQU 12 62000002 R13 EQU 13 62500002 R14 EQU 14 63000002 R15 EQU 15 63500002 TITLE 'PREFIXED SAVE AREA (PSA) DSECT' 64000002 IHAPSA DSECT=YES 64500002 TITLE 'COMMUNICATION VECTOR TABLE (CVT) DSECT' 65000002 CVT LIST=YES,DSECT=YES 65500002 TITLE 'REQUEST BLOCK (RB) DSECT' 66000002 IKJRB 66500002 TITLE 'REQUEST PARAMETER LIST (RPL) DSECT' 67000002 IFGRPL 67500002 TITLE 'ACCESS METHOD CONTROL BLOCK (ACB) DSECT' 68000002 IFGACB 68500002 TITLE 'DATA EXTENT BLOCK (DEB) DSECT' 69000002 IEZDEB LIST=YES 69500002 TITLE 'IGC111 - JOB ENTRY SUBSYSTEM ACCESS METHOD SVC ROUTINE' 70000002 IGC111 CSECT SVC 111 -- JES ACCESS METHOD SVC 70500002 USING IFGRPL,R1 ESTABLISH RPL ADDRESSABILITY 71000002 USING DEBBASIC,R2 ESTABLISH DEB ADDRESSABILITY 71500002 USING CVTMAP,R3 ESTABLISH CVT ADDRESSABILITY 72000002 USING RBBASIC,R5 ESTABLISH RB ADDRESSABILITY 72500002 USING IGC111,R6 ESTABLISH LOCAL ADDRESSABILITY 73000002 USING IFGACB,R8 ESTABLISH ACB ADDRESSABILITY 73500002 USING CVTXTNT2,R15 ESTABLISH CVT EXTENT ADDRESSABILITY 74000002 SPACE 3 74500002 LCR R8,R1 TEST ADDRESS OF RPL/ACB 75000002 BZ IGCERROR ILLEGAL IF ZERO 75500002 BP IGCACB BRANCH IF ARGUMENT IS ACB 76000002 L R8,RPLDACB GET ADDRESS OF ACB FROM RPL 76500002 IGCACB L R2,ACBDEB-1 GET ADDRESS OF DEB FROM ACB 77000002 TM RBOPSW+1,X'81' TEST CALLER'S KEY AND STATE 77500002 BNO IGCNOCHK BYPASS DEB CHECK IF CALLER IS IN 78000002 * SUPERVISOR KEY OR STATE 78500002 SPACE 2 79000002 * PREPARE TO CHECK DEB 79500002 IGCLOCK SETLOCK OBTAIN,TYPE=LOCAL,MODE=UNCOND, GET LOCAL LOCK C80000002 RELATED=(TCBDEB,IGC111(IGCUNLOK)) 80500002 LR R8,R1 SAVE RPL ADDRESS 81000002 LR R1,R2 SET R1 TO POINT TO DEB 81500002 LR R10,R4 SET R10 TO POINT TO CURRENT TCB 82000002 L R15,CVTEXT2 GET ADDRESS OF CVT EXTENSION 82500002 L R15,CVTDEBVR GET ADDRESS OF DEBCHK BRANCH ENTRY 83000002 BALR R14,R15 CHECK THE DEB 83500002 B IGCDEBOK +0 - DEB IS VALID 84000002 * +4 - DEB IS INVALID 84500002 SPACE 2 85000002 IGCERROR L R1,IGCABEND SET ABEND CODE SYSTEM 36F 85500002 SVC 13 ABEND CALLER 86000002 SPACE 3 86500002 IGCDEBOK LR R1,R8 RESTORE RPL ADDRESS 87000002 IGCUNLOK SETLOCK RELEASE,TYPE=LOCAL, RELEASE LOCAL LOCK C87500002 RELATED=(TCBDEB,IGC111(IGCLOCK)) 88000002 IGCNOCHK L R15,DEBAPPAD GET ADDRESS OF EXIT LIST 88500002 L R15,4(,R15) GET ADDRESS OF EOB ROUTINE 89000002 BR R15 AND EXIT 89500002 SPACE 3 90000002 IGCABEND DC X'8036F000' INVALID DEB ABEND CODE 90500002 END 91000002