* 00800002 * %GOTO ECBL1; /* 00850002 MACRO 01600001 IHAECB &DSECT=YES,&EXT=NO @Z40EP9A 02400004 AIF ('&DSECT' EQ 'NO').NODSCT 03200001 ECB DSECT 04000001 AGO .CONT 04800001 .NODSCT ANOP 05600001 DS 0F - 06400001 ECB EQU * - ECBPTR 07200001 .CONT ANOP , */ 08000002 *%ECBL1 : ; 08050002 * 08800002 */* **************************************************************** */ 09600002 */* */ 10400002 */* EVENT CONTROL BLOCK (ECB) (OS/VS1 AND OS/VS2) AND */ 11200004 */* EVENT CONTROL BLOCK EXTENSION (ECBE) (OS/VS2 ONLY) */ 11203004 */* */ 11210002 */* OS/VS2 RELEASE 4, OS/VS1 RELEASE 5, 04/24/75, LEVEL=1 */ 11250004 */* */ 11300002 */* METHOD OF ACCESS */ 11350002 */* BAL - A DSECT IS PRODUCED FOR ECB UNLESS DSECT=NO IS */ 11400004 */* SPECIFIED. USING ON ECB GIVES ADDRESSABILITY FOR */ 11410004 */* ALL ECB SYMBOLS. */ 11420004 */* IF EXT=YES IS SPECIFIED, A DSECT IS PRODUCED FOR */ 11430004 */* ECB EXTENSION (ECBE). USING ON ECBE GIVES */ 11440004 */* ADDRESSABILITY FOR ALL ECBE SYMBOLS. */ 11450004 */* PL/S - DCL ECBPTR PTR */ 11500002 */* SPECIFY %ECBEXT='YES' BEFORE INCLUDING IHAECB IF */ 11501004 */* THE ECB EXTENSION (ECBE) IS TO BE MAPPED. */ 11502004 */* IF A MODULE USES THE ECB EXTENSION, A RESPECIFY */ 11505004 */* STATEMENT MUST BE ISSUED ON ECBE. ECBE IS BASED */ 11510004 */* ON ECBEXTB, BUT THIS ADDRESS HAS THE LOW-ORDER 2 */ 11515004 */* BITS ON TO INDICATE THAT AN ECB EXTENSION EXISTS. */ 11520004 */* THE ADDRESS IN ECBEXTB MUST BE PUT IN ANOTHER */ 11525004 */* POINTER FIELD AND THE LOW-ORDER 2 BITS TURNED OFF */ 11530004 */* IN ORDER TO OBTAIN PROPER ADDRESSABILITY TO THE */ 11535004 */* EXTENSION. */ 11540004 */* */ 11550002 */* NOTE */ 11600002 */* THE ECB IS USED FOR COMMUNICATION BETWEEN VARIOUS */ 12000002 */* COMPONENTS OF THE CONTROL PROGRAM, AS WELL AS BETWEEN */ 12800002 */* PROCESSING PROGRAMS AND THE CONTROL PROGRAM. AN ECB IS */ 13600002 */* THE SUBJECT OF WAIT AND POST MACRO INSTRUCTIONS. */ 14400002 */* **************************************************************** */ 16800002 *%GOTO ECBL2; /* 16850002 SPACE 1 17600001 ECBRB DS 0F - REQUEST BLOCK ADDRESS (WHILE AWAITING 18400002 * COMPLETION OF AN EVENT) 18450002 ECBEVTB DS 0A - ADDRESS OF EVENT TABLE (MDC300) @X31ED9A 18750003 ECBEXTB DS 0A - ADDRESS OF ECB EXTENSION (OS/VS2) 18800004 * (MDC305) @Z40EP9A 18850004 ECBCC DS C - COMPLETION CODE BYTE 19200001 ECBWAIT EQU X'80' - WAITING FOR COMPLETION OF THE EVENT 20000002 ECBPOST EQU X'40' - THE EVENT HAS COMPLETED 20800002 ECBNORM EQU X'7F' - CHANNEL PROGRAM HAS TERMINATED WITHOUT 21600001 * ERROR. (CSW CONTENTS USEFUL.) 22400002 * FOR TCAM, WORK UNIT IN WORK AREA. 22450002 ECBPERR EQU X'41' - CHANNEL PROGRAM HAS TERMINATED WITH 23200001 * PERMANENT ERROR. (CSW STATUS BYTES 24000002 * USEFUL. CCW ADDRESS MAY BE USEFUL OR 24050002 * ZEROS.) 24100002 * FOR BTAM, CHANNEL PROGRAM HAS COMPLETED 24800002 * WITH AN I/O ERROR. 24850002 ECBDAEA EQU X'42' - CHANNEL PROGRAM HAS TERMINATED BECAUSE A 25600001 * DIRECT ACCESS EXTENT ADDRESS HAS BEEN 26400001 * VIOLATED. (CSW CONTENTS DO NOT APPLY.) 27200002 * (ACCESS METHODS EXCEPT BTAM AND TCAM) 27210002 ECBABEND EQU X'43' - I/O ABEND CONDITION OCCURRED FOR ERROR 27250001 * TRANSIENT LOADING TASK. (CSW CONTENTS DO 27300002 * NOT APPLY.) (ACCESS METHODS EXCEPT BTAM 27350002 * AND TCAM) (ICB415) XM2533 27400002 ECBINCPT EQU X'44' - CHANNEL PROGRAM HAS BEEN INTERCEPTED 28000001 * BECAUSE OF PERMANENT ERROR ASSOCIATED 28800001 * WITH DEVICE END FOR PREVIOUS REQUEST. 29600001 * YOU MAY REISSUE THE INTERCEPTED REQUEST. 30400001 * (CSW CONTENTS DO NOT APPLY.) 30450002 * (ACCESS METHODS EXCEPT BTAM AND TCAM) 30500002 ECBREPRG EQU X'48' - REQUEST ELEMENT FOR CHANNEL PROGRAM HAS 31200001 * BEEN MADE AVAILABLE AFTER IT HAS BEEN 32000001 * PURGED. (CSW CONTENTS DO NOT APPLY.) 32800002 * (ACCESS METHODS OTHER THAN BTAM) 32850002 ECBEHALT EQU X'48' - ENABLE COMMAND HALTED, OR I/O OPERATION 33600002 * PURGED. (BTAM) 34400001 ECBERPAB EQU X'4B' - ONE OF THE FOLLOWING ERRORS OCCURRED 34450002 * DURING TAPE ERROR RECOVERY PROCESSING - 34500002 * (1) THE CSW COMMAND ADDRESS IN THE IOB 34550002 * WAS ZEROS OR (2) AN UNEXPECTED LOAD POINT 34600002 * WAS ENCOUNTERED. (CSW CONTENTS DO NOT 34650002 * APPLY.) (ACCESS METHODS EXCEPT BTAM AND 34700002 * TCAM) ICB266 34750002 ECBERPER EQU X'4F' - ERROR RECOVERY ROUTINES HAVE BEEN ENTERED 35200001 * BECAUSE OF DIRECT ACCESS ERROR BUT ARE 36000001 * UNABLE TO READ HOME ADDRESS OR RECORD 0. 36800001 * (CSW CONTENTS DO NOT APPLY.) 36810002 * (ACCESS METHODS EXCEPT BTAM AND TCAM) 36820002 ECBSETEO EQU X'70' - THE SETEOF MACRO WAS ISSUED IN THE 36850002 * MESSAGE COMMAND PROGRAM (NO WORK UNIT IN 36900002 * WORK AREA) (TCAM) 36950002 ECBDMQDS EQU X'5C' - CONGESTED DESTINATION MESSAGE QUEUE DATA 37000001 * SET (WRITE ONLY) (TCAM) 37050001 ECBSEQER EQU X'58' - SEQUENCE ERROR (TCAM) 37100001 ECBINVMD EQU X'54' - INVALID MESSAGE DESTINATION (TCAM) 37150001 ECBWKOVR EQU X'52' - WORK AREA OVERFLOW (TCAM) 37200002 ECBNOMSG EQU X'50' - MESSAGE WAS NOT FOUND WHEN READ MACRO 37250001 * WAS ISSUED IN CONJUNCTION WITH POINT 37300001 * MACRO TO RETRIEVE A MESSAGE (TCAM) 37350001 ECBDTRAQ EQU X'40' - DATA IS ON READ-AHEAD QUEUE (TCAM) 37360002 ECBEOQ EQU X'02' - END-OF-QUEUE CONDITION (NOT END-OF-FILE) 37400001 * (TCAM) 37450001 ECBRAQMT EQU X'01' - READ-AHEAD QUEUE EMPTY, BUT DESTINATION 37500001 * QUEUE NOT EMPTY (TCAM) 37550001 ECBRBA DS 0AL3 - REQUEST BLOCK ADDRESS (WHILE AWAITING 37600001 * COMPLETION OF AN EVENT) 38400001 ECBEVTBA DS 0AL3 - ADDRESS OF EVENT TABLE (MDC302) @X31ED9A 38800003 ECBEXTBA DS 0AL3 - ADDRESS OF ECB EXTENSION (OS/VS2) 38850004 * (MDC306) @Z40EP9A 38900004 ECBCCCNT DS 0CL3 - ZEROES OR REMAINDER OF COMPLETION CODE 39200003 * (AFTER COMPLETION OF THE EVENT) 40000001 DS CL2 - FIRST TWO BYTES OF ECBEVTBA @XM06072 40200003 ECBBYTE3 DS B - THIRD BYTE OF ECBEVTBA (MDC303) @XM06072 40400003 ECBEXTND EQU X'03' - ECB EXTENSION EXISTS (OS/VS2) 40450004 * (MDC307) @Z40EP9A 40500004 ECBEVNT EQU X'01' - EXTENDED FORMAT ECB (MDC304) @XM06072 40600003 AIF ('&EXT' NE 'YES').ECBA1 @Z40EP9A 40610004 SPACE 3 - @Z40EP9A 40620004 ECBE DSECT - ECB EXTENSION (OS/VS2) (MDC308) @Z40EP9A 40640004 ECBEDESC DS 0F - DESCRIPTOR WORD (MDC309) @Z40EP9A 40660004 ECBEVAL DS B - FUNCTION CODE (MDC310) @Z40EP9A 40680004 ECBEEXIT EQU X'01' - EXIT ROUTINE REQUEST (MDC311) @Z40EP9A 40700004 ECBERES1 DS C - RESERVED (MDC312) @Z40EP9A 40720004 ECBERES2 DS C - RESERVED (MDC313) @Z40EP9A 40740004 ECBERES3 DS C - RESERVED (MDC314) @Z40EP9A 40760004 ECBEPIND DS A - POST INPUT DATA (MDC315) @Z40EP9A 40780004 ECBEEND EQU * - END OF ECB EXTENSION (MDC316) @Z40EP9A 40786004 .ECBA1 ANOP @Z40EP9A 40792004 MEND , */ 40800001 *%ECBL2 : ; 41600002 * 51200001 *DECLARE 52000001 * 1 ECB BASED(ECBPTR) BDY(WORD), 52800002 * 2 ECBRB FIXED(31), /* REQUEST BLOCK ADDRESS 53600002 * (WHILE AWAITING 53650002 * COMPLETION OF AN EVENT) */ 53700002 * 3 ECBEVTB PTR(31), /* ADDRESS OF EVENT TABLE 54200003 * (MDC300) @X31ED9A*/ 54700003 * 4 ECBEXTB PTR(31), /* ADDRESS OF ECB EXTENSION 54750004 * (OS/VS2) 54800004 * (MDC305) @Z40EP9A*/ 54850004 * 5 ECBCC BIT(8), /* COMPLETION CODE BYTE */ 55200004 * 6 ECBWAITB BIT(1), /* WAIT BIT */ 55250004 * 6 ECBPOSTB BIT(1), /* POST BIT */ 55300004 * 6 * BIT(6), /* COMPLETION CODE BITS */ 55350004 *%DCL ECBWAIT CHAR; 56000001 *%ECBWAIT ='''80''X'; /* WAITING FOR COMPLETION 56800001 * OF THE EVENT */ 57600002 *%DCL ECBPOST CHAR; 58400001 *%ECBPOST ='''40''X'; /* THE EVENT HAS COMPLETED */ 59200002 *%DCL ECBNORM CHAR; 60000001 *%ECBNORM ='''7F''X'; /* CHANNEL PROGRAM HAS 60800001 * TERMINATED WITHOUT ERROR. 61600002 * (CSW CONTENTS USEFUL.) 61650002 * FOR TCAM, WORK UNIT IN 61700002 * WORK AREA. */ 61750002 *%DCL ECBPERR CHAR; 63200001 *%ECBPERR ='''41''X'; /* CHANNEL PROGRAM HAS 64000001 * TERMINATED WITH PERMANENT 64800002 * ERROR. (CSW STATUS BYTES 65600002 * USEFUL. CCW ADDRESS MAY 65650002 * BE USEFUL OR ZEROS.) 65700002 * FOR BTAM, CHANNEL PROGRAM 66400002 * HAS COMPLETED WITH AN I/O 66450002 * ERROR. */ 67200002 *%DCL ECBDAEA CHAR; 68000001 *%ECBDAEA ='''42''X'; /* CHANNEL PROGRAM HAS 68800001 * TERMINATED BECAUSE A 69600001 * DIRECT ACCESS EXTENT 70400001 * ADDRESS HAS BEEN 71200001 * VIOLATED. (CSW CONTENTS 72000002 * DO NOT APPLY.) (ACCESS 72010002 * METHODS EXCEPT BTAM AND 72020002 * TCAM) */ 72030002 *%DCL ECBABEND CHAR; 72050001 *%ECBABEND='''43''X'; /* I/O ABEND CONDITION 72100001 * OCCURRED FOR ERROR 72150001 * TRANSIENT LOADING TASK 72200001 * (CSW CONTENTS DO NOT 72250002 * APPLY.) (ACCESS METHODS 72300002 * EXCEPT BTAM AND TCAM) 72350002 * (ICB415) XM2533*/ 72400002 *%DCL ECBINCPT CHAR; 72800001 *%ECBINCPT='''44''X'; /* CHANNEL PROGRAM HAS BEEN 73600001 * INTERCEPTED BECAUSE OF 74400002 * PERMANENT ERROR 75200001 * ASSOCIATED WITH DEVICE 76000002 * END FOR PREVIOUS REQUEST. 76800002 * YOU MAY REISSUE THE 77600002 * INTERCEPTED REQUEST. 78400002 * (CSW CONTENTS DO NOT 78450002 * APPLY.) (ACCESS METHODS 78500002 * EXCEPT BTAM AND TCAM) */ 78550002 *%DCL ECBREPRG CHAR; 80000001 *%ECBREPRG='''48''X'; /* REQUEST ELEMENT FOR 80800001 * CHANNEL PROGRAM HAS BEEN 81600002 * MADE AVAILABLE AFTER IT 82400002 * HAS BEEN PURGED. (CSW 83200002 * CONTENTS DO NOT APPLY.) 83250002 * (ACCESS METHODS OTHER 84000002 * THAN BTAM) */ 84800002 *%DCL ECBEHALT CHAR; 85600001 *%ECBEHALT='''48''X'; /* ENABLE COMMAND HALTED, OR 86400002 * I/O OPERATION PURGED. 87200002 * (BTAM) */ 88000001 *%DCL ECBERPAB CHAR; 88050001 *%ECBERPAB='''4B''X'; /* ONE OF THE FOLLOWING 88100002 * ERRORS OCCURRED DURING 88150002 * TAPE ERROR RECOVERY 88200002 * PROCESSING - (1) THE CSW 88250002 * COMMAND ADDRESS IN THE 88300002 * IOB WAS ZEROS OR (2) AN 88350002 * UNEXPECTED LOAD POINT WAS 88400002 * ENCOUNTERED. (CSW 88450002 * CONTENTS DO NOT APPLY.) 88500002 * (ACCESS METHODS EXCEPT 88550002 * BTAM AND TCAM) ICB266*/ 88600002 *%DCL ECBERPER CHAR; 88800001 *%ECBERPER='''4F''X'; /* ERROR RECOVERY ROUTINES 89600001 * HAVE BEEN ENTERED BECAUSE 90400002 * OF DIRECT ACCESS ERROR 91200002 * BUT ARE UNABLE TO READ 92000002 * HOME ADDRESS OR RECORD 0. 92800002 * (CSW CONTENTS DO NOT 92850002 * APPLY.) (ACCESS METHODS 92900002 * EXCEPT BTAM AND TCAM) */ 92950002 *%DCL ECBSETEO CHAR; 93650001 *%ECBSETEO='''70''X'; /* THE SETEOF MACRO WAS 93700002 * ISSUED IN THE MESSAGE 93750002 * COMMAND PROGRAM (NO WORK 93800002 * UNIT IN WORK AREA) (TCAM)*/ 93850002 *%DCL ECBDMQDS CHAR; 93900001 *%ECBDMQDS='''5C''X'; /* CONGESTED DESTINATION 93950001 * MESSAGE QUEUE DATA SET 94000001 * (WRITE ONLY) (TCAM) */ 94050001 *%DCL ECBSEQER CHAR; 94100001 *%ECBSEQER='''58''X'; /* SEQUENCE ERROR (TCAM) */ 94150001 *%DCL ECBINVMD CHAR; 94200001 *%ECBINVMD='''54''X'; /* INVALID MESSAGE 94250001 * DESTINATION (TCAM) */ 94300001 *%DCL ECBWKOVR CHAR; 94350001 *%ECBWKOVR='''52''X'; /* WORK AREA OVERFLOW (TCAM)*/ 94360002 *%DCL ECBNOMSG CHAR; 94370001 *%ECBNOMSG='''50''X'; /* MESSAGE WAS NOT FOUND 94380001 * WHEN READ MACRO WAS 94390001 * ISSUED IN CONJUNCTION 94392001 * WITH POINT MACRO TO 94394001 * RETRIEVE A MESSAGE (TCAM)*/ 94396001 *%DCL ECBDTRAQ CHAR; 94396402 *%ECBDTRAQ='''40''X'; /* DATA IS ON READ-AHEAD 94396802 * QUEUE (TCAM) */ 94397202 *%DCL ECBEOQ CHAR; 94398001 *%ECBEOQ ='''02''X'; /* END-OF-QUEUE CONDITION 94398401 * (NOT END-OF-FILE) (TCAM) */ 94398801 *%DCL ECBRAQMT CHAR; 94399201 *%ECBRAQMT='''01''X'; /* READ-AHEAD QUEUE EMPTY, 94399601 * BUT DESTINATION QUEUE 94399701 * NOT EMPTY (TCAM) */ 94399801 * 5 ECBCCCNT CHAR(3) BDY(WORD,2),/* ZEROES OR REMAINDER OF 94499904 * COMPLETION CODE (AFTER 95200001 * COMPLETION OF THE EVENT) */ 96000001 * 6 ECBRBA PTR(24), /* REQUEST BLOCK ADDRESS 96800004 * (WHILE AWAITING 97600001 * COMPLETION OF AN EVENT) */ 98400001 * 7 ECBEVTBA PTR(24), /* ADDRESS OF EVENT TABLE 98900004 * (MDC302) @X31ED9A*/ 99400003 * 8 ECBEXTBA PTR(24), /* ADDRESS OF ECB EXTENSION 99410004 * (OS/VS2) 99420004 * (MDC306) @Z40EP9A*/ 99430004 * 9 * CHAR(2), /* FIRST TWO BYTES OF 99460004 * ECBEVTBA @XM06072*/ 99520003 * 9 ECBBYTE3 BIT(8), /* THIRD BYTE OF ECBEVTBA 99580004 * (MDC303) @XM06072*/ 99640003 * 10 * BIT(6), /* BITS 0-5 OF 99700004 * ECBBYTE3 @Z40EP9A*/ 99710004 * 10 ECBEXTND BIT(2), /* ECB EXTENSION EXISTS 99720004 * (OS/VS2) 99730004 * (MDC307) @Z40EP9A*/ 99740004 * 11 * BIT(1), /* BIT 6 OF 99750004 * ECBBYTE3 @Z40EP9A*/ 99760004 * 11 ECBEVNT BIT(1); /* EXTENDED FORMAT ECB 99820004 * (MDC304) @XM06072*/ 99880003 *%IF ECBEXT ^= 'YES' %THEN 99881004 * %GOTO ECBA1; 99882004 * 99883004 * 99886004 * 99889004 *DECLARE 99892004 * 1 ECBE BASED(ECBEXTB) BDY(WORD), /* ECB EXTENSION (OS/VS2) 99895004 * (MDC308) @Z40EP9A*/ 99919004 * 2 ECBEDESC FIXED(31), /* DESCRIPTOR WORD 99925004 * (MDC309) @Z40EP9A*/ 99928004 * 3 ECBEVAL BIT(8), /* FUNCTION CODE 99931004 * (MDC310) @Z40EP9A*/ 99934004 *%ECBEEXIT='''01''X'; /* EXIT ROUTINE REQUEST 99937004 * (MDC311) @Z40EP9A*/ 99940004 * 3 ECBERES1 CHAR(1), /* RESERVED 99943004 * (MDC312) @Z40EP9A*/ 99946004 * 3 ECBERES2 CHAR(1), /* RESERVED 99949004 * (MDC313) @Z40EP9A*/ 99952004 * 3 ECBERES3 CHAR(1), /* RESERVED 99955004 * (MDC314) @Z40EP9A*/ 99958004 * 2 ECBEPIND PTR(31), /* POST INPUT DATA 99961004 * (MDC315) @Z40EP9A*/ 99964004 * 2 ECBEEND CHAR(0) BDY(WORD); /* END OF ECB EXTENSION 99971004 * (MDC316) @Z40EP9A*/ 99978004 *%ECBA1 : ; 99985004