MACRO 00050000 &NAME RESETPL &DECB,&TYPE,&SPEC @AZ64835 00100000 LCLC &X 00150000 &X SETC '&SYSNDX' 00200000 .* 00250000 .* CHANGE ACTIVITY 00300000 .* APARS PTMS 00350000 .* YA03232 (12/20/73) YM4072 (10/19/73) 00400000 .* YA03226 (2/1/74) YM5667 (12/14/73) 00450000 .* YA03242 (2/1/74) YM5699 (2/13/74) 00500000 .* YA03253 (2/1/74) YM7709 (4/2 74) 00550000 .* YA03236 00600000 .* ZA00503 05/03/74 00650000 .* ZA00537 11/15/74 00700000 .* ZA00548 (11/15/74) 00750000 .* ZA00549 11/15/74 00800000 .* AZ04199 09/22/75 00850000 .* AZ04659 09/22/75 00900000 .* AZ05393 09/22/75 00950000 .* AZ08050 01/29/76 AZ08056 01/29/76 01000000 .* AZ13193 09/10/76 AZ14028 09/13/76 01050000 .* AZ15411 11/12/76 AZ15413 11/12/76 01100000 .* AZ17733 05/26/77 AZ25182 09/26/77 01150000 .* AZ31061 03/16/78 AZ31078 03/16/78 01200000 .* AZ37047 12/06/78 AZ45123 02/21/80 01250000 .* AZ59479 02/05/82 01300000 .* AZ61484 04/15/82 01350000 .* AZ65835 08/26/82 01400000 .* AZ65419 10/21/82 01450000 .* AZ69391 02/25/83 AZ73855 08/18/83 01475000 .* AZ80090 06/13/84 01485000 .* 01500000 &NAME DS 0H 01550000 AIF ('&DECB'(1,1) EQ '(').REG 01600000 LA 1,&DECB 01650000 AGO .CON 01700000 .REG AIF ('&DECB(1)' EQ '1').CON 01750000 AIF (T'&DECB EQ 'U').UREG 01800000 AIF ('&DECB(1)' GT '12').ER 01850000 .UREG LR 1,&DECB(1) 01900000 .CON SR 0,0 01950000 SR 15,15 02000000 IC 0,25(1) GET RELATIVE LINE NUMBER FROM DECB. 02050000 L 14,8(1) GET DCB ADDRESS FROM DECB. 02100000 TM 48(14),X'10' HAS DCB BEEN OPENED? 02150000 BO IECA&X IF SO, CONTINUE. 02200000 IECJ&X LA 15,12 IF NOT, SET RETURN CODE A28622 02250000 B IECB&X AND EXIT. 02300000 IECA&X EQU * 02350000 AIF ('&TYPE' EQ 'ATTENT' OR '&TYPE' EQ '').ANR 02400000 .NOTANR MVC IECK&X.(1),26(1) MOVE RESPN TO SAVE 02450000 MVC IECK&X+1(1),5(1) MOVE OPERATION TYPE 000H 02500000 NI IECK&X+1,X'7F' HIGH ORDER BIT OFF 000H 02550000 SR 1,1 000G 02600000 IC 1,36(14) GET IOB SIZE FROM DCB. 02650000 MR 0,0 MULTIPLY IOB SIZE TIMES RELATIVE LINE NO. 02700000 A 1,28(14) ADD IOB ADDRESS MINUS SIZE TO RESULT. 02750000 OI 1(1),X'01' SET POLLING RESET BIT IN IOB. 000A 02800000 L 15,44(14) GET ADDR FROM DEB @ZA31061 02850000 LA 15,0(15) CLEAR HI-ORDER BYTE @ZA31061 02900000 IC 0,32(1) GET UCB-INDEX FROM IOB @ZA31061 02950000 SLA 0,2 MULTIPLY RLN BY 4 @ZA31061 03000000 AR 15,0 USE RLN*R AS INDEX @ZA31061 03050000 L 15,32(15) TO DEBUCBAD AND GET UCB ADDR @ZA31061 03100000 CLI 19(15),X'82' IS THIS A 2260 @ZA15413 03150000 BE IECE&X YES, GIVE ZERO RC @ZA25182 03200000 .* ONE LINE DELETED FOR THE FOLLOWING APAR YA03236 03250000 .* 03300000 AIF ('&TYPE' EQ 'POLLING' OR '&TYPE' EQ '').POLL 000D 03350000 AIF ('&TYPE' EQ 'ANSRING').ANSR 03400000 MNOTE 12,'*** IHB002 INVALID TYPE OPERAND SPECIFIED-&TYPE' 03450000 MEXIT 03500000 .* 03550000 .* 03600000 .POLL ANOP 000A 03650000 .* 03700000 L 15,16(1) LOAD ADDRESS OF FIRST CCW. 03750000 CLI 0(15),X'06' IS THE CCW A PREPARE COMMAND 000G 03800000 BE IECR&X IF SO BRANCH 000H 03850000 CLI IECK&X+1,X'0E' IS THIS WRITE TCO 000H 03900000 BE IECV&X YES, CHECK FOR PREPARE 000H 03950000 CLI IECK&X+1,X'1E' READ CONNECT WITH TONE @ZA13193 04000000 BE IECF&X YES, HANDLE CC @ZA37047 04050000 CLI 8(15),X'06' IS NEXT CCW A PREPARE 000H 04100000 BNE IECC&X BRANCH IF NOT 000H 04150000 CLI 16(15),X'04' IS THE CCW A SENSE 000H 04200000 BNE IECC&X BRANCH IF NOT 000H 04250000 B IECS&X BRANCH TO CHECK RESPONSE 000H 04300000 IECV&X LA 15,40(15) POINT TO SIXTH CCW 000H 04350000 CLI 0(15),X'06' IS THIS CCW A PREPARE 000H 04400000 BE IECR&X CHECK FOR SENSE COMMAND NEXT 000H 04450000 B IECE&X 000H 04500000 IECR&X CLI 8(15),X'04' IS THE CCW A SENSE 000H 04550000 BNE IECC&X BRANCH IF NOT 000G 04600000 IECS&X CLI IECK&X,X'FF' IS RESPN X'FF' 000H 04650000 BE IECP&X BRANCH IF YES 000G 04700000 B IECE&X 000G 04750000 IECC&X LA 15,72(1) POLL ALWAYS AT IOBCPA+8 YA01244 04800000 CLI 0(15),X'09' IS IT THERE? YA01244 04850000 BE IECD&X YES, CHECK FOR WRAPLIST YA01244 04900000 AIF ('&TYPE' EQ 'POLLING').POLL01 YA01244 04950000 B IECF&X CHECK ENABLE,PREPARE YA01244 05000000 AGO .POLL02 YA01244 05050000 .POLL01 B IECE&X QUIT YA01244 05100000 .POLL02 ANOP YA01244 05150000 IECD&X CLI 8(15),X'08' IS THE CCW FOLLOWING THE POLL 000A 05200000 BNE IECQ&X COMMAND A TIC COMMAND? IF NOT, EXIT. @ZA15411 05250000 L 15,8(15) LOAD ADDRESS OF SECOND POLL COMMAND. 000A 05300000 MVI 8(15),X'03' SET COMMAND CODE IN CCW FOLLOWING 000A 05350000 * SECOND POLL COMMAND TO AN I/O NO-OP. 000A 05400000 LA 1,0(1) CLEAR HI-ORDER BYTE OF IOB ADDR YM4072 05450000 LA 0,8(15) ADDR OF ALTERED VIRTUAL CCW YM4072 05500000 SR 0,1 OFFSET OF THIS CCW FROM IOB YM4072 05550000 SR 15,15 CLEAR WORK REG YM4072 05600000 *** PREPARE FOR REISSUE OF IOHALT IF RC=4 AND IOBBUSY @ZA59479 05650000 ST 15,IEC2&X+12 INIT *COUNTER TO ZEROES @ZA59479 05700000 ST 15,IEC2&X+16 INIT *COUNTER TO ZEROES 05750000 ST 1,IEC2&X+8 SAVE *IOBADDR @ZA59479 05800000 *** *COUNTER AND *IOBADDR ARE INITIALIZED @ZA59479 05850000 IC 15,32(1) NUMBER OF EXTENTS FROM IOB YM4072 05900000 SLL 15,2 MULT EXTENTS BY 4 YM4072 05950000 L 14,44(14) GET DEB ADDR FROM DCB YM4072 06000000 L 1,32(14,15) GET UCB ADDR IN PARAMETER REG YM4072 06050000 *** THIS STATEMENT DELETED BY APAR OZ45123 @ZA45123 06100000 LA 1,0(1) CLEAR HI_ORDER BYTE @ZA45123 06150000 STM 0,1,IEC2&X SAVE R0 AND R1 @ZA59479 06200000 *** THIS STATEMENT DELETED BY APAR OZ45123 @ZA45123 06250000 IECM&X IOHALT (1),(0) TERMINATE POLLING (CCW MODIFY) @ZA59479 06300000 LA 14,4 LOAD X'04' FOR COMPARE YM4072 06350000 CLR 15,14 RETURN CODE = X'04' ? IF NO, YM4072 06400000 BNE IEC3&X TEST IOHALT RC=X'10' @ZA59479 06450000 L 14,IEC2&X+8 ELSE, GET *IOBADDR @ZA59479 06500000 TM 28(14),X'40' IS IOBBUSY ON? @ZA59479 06550000 BNO IECB&X IOHALT DONE; EXIT WITH RC=4 @ZA80090 06600000 *** IF IOHALT RC=04 AND THE IOB IS BUSY, RESETPL TRIES @ZA59479 06650000 *** TO AVOID PASSING A RESETPL RETURN CODE OF X'00'. @ZA59479 06700000 *** IT WILL REISSUE IOHALT AND TEST FOR IOBBUSY FOR @ZA59479 06750000 *** A MAXIMUM OF 7 TIMES BEFORE PASSING RC OF X'0C'. @ZA59479 06800000 L 15,IEC2&X+12 GET RETRY COUNT FOR TEST @ZA73855 06850000 LA 14,6 GET RELATIVE MAX RETRY COUNT @ZA59479 06900000 CLR 15,14 IS RETRY AT MAX COUNT? IF NO, @ZA59479 06950000 BNH IEC4&X INCREMENT COUNTER AND RE-IOHALT @ZA59479 07000000 IEC5&X LA 15,12 ELSE GIVE UP, SET RC TO X'0C' @ZA59479 07050000 B IECB&X AND EXIT. @ZA59479 07100000 IEC3&X LA 14,16 LOAD X'10' INTO REG FOR COMPARES @ZA59479 07150000 CLR 15,14 RETURN CODE = X'10' YM4072 07200000 BL IECB&X EXIT WITH IOHALT RETURN CODE YM4072 07250000 BE IECE&X EXIT WITH 0 RETURN CODE YM4072 07300000 LA 14,24 LOAD X'18' FOR COMPARE LD YM7709 07350000 CLR 15,14 IS RETURN CODE X'18' LD YM7709 07400000 BE IECE&X YES, EXIT WITH 0 RTN CODE LD YM7709 07450000 LA 14,20 LOAD X'14' INTO REG FOR COMPARES YM4072 07500000 CLR 15,14 RETURN CODE = X'14' YM4072 07550000 LM 0,1,IEC2&X RESTORE R0 AND R1 @ZA31061 07600000 BNE IEC5&X IF NOT X'14' SET RC=X'0C' YM4072 07650000 ** IF THE RETURN CODE = X'14', REISSUE SVC 33 FOR MAXIMUM OF YM4072 07700000 ** 255 TIMES. 07750000 L 15,IEC2&X+16 GET RETRY COUNT FOR TEST @ZA73855 07800000 LA 14,6 GET RELATIVE MAX RETRY COUNT @ZA59479 07850000 CLR 15,14 IS RETRY AT MAX COUNT? IF NO, @ZA59479 07900000 BE IEC5&X SET RC=X'0C' 07950000 LA 15,1(15) ELSE ADD ONE TO RETRY COUNT 08000000 ST 15,IEC2&X+16 SAVE UPDATED COUNT @ZA59479 08050000 B IECM&X RE-ISSUE IOHALT @ZA59479 08100000 IEC4&X LA 15,1(15) ADD ONE TO RETRY COUNT @ZA59479 08150000 ST 15,IEC2&X+12 SAVE UPDATED COUNT @ZA59479 08200000 LM 0,1,IEC2&X RESTORE R0 AND R1 @ZA69391 08225000 B IECM&X RE-ISSUE IOHALT 08250000 .* 08300000 .* THIS STATEMENT DELETED BY APAR OZ37047 CC @ZA37047 08350000 IECF&X EQU * 000D 08400000 .* 08450000 .* 08500000 .ANSR ANOP 000A 08550000 .* 08600000 .* 08650000 L 15,16(1) LOAD ADDRESS OF FIRST CCW. 08700000 CLI 0(15),X'2F' IS THE CCW A DISABLE COMMAND? 000A 08750000 BNE IECG&X IF NOT, BRANCH. 000A 08800000 TM 4(15),X'40' IS THE CCW COMMAND CHAINED? 000A 08850000 BNO IEC0&X IF NOT, EXIT WITH RC=X'10' @ZA04199 08900000 LA 15,8(15) LOAD ADDRESS OF NEXT CCW. 000A 08950000 CLI 0(15),X'08' IS IT A TIC? YA02058 09000000 BNE IECG&X NO, BRANCH YA02058 09050000 L 15,0(15) GET NEXT CCW ADDRESS YA02058 09100000 LA 15,0(15) CLEAR HI ORDER BYTE YA02058 09150000 IECG&X CLI 0(15),X'27' IS THE CCW AN ENABLE COMMAND 000B 09200000 BE IECN&X 000B 09250000 CLI 0(15),X'06' IS THE CCW A PREPARE COMMAND 000B 09300000 BNE IEC1&X IF NOT, EXIT @ZA17733 09350000 CLI 13(15),X'0B' IS THE NEXT CCW READ INQUIRY 000B 09400000 BE IECP&X 000B 09450000 CLI 13(15),X'8B' IS IT READ INQUIRY 3128 09500000 BE IECP&X 3128 09550000 B IECI&X 000H 09600000 .* 09650000 IECN&X CLI 13(15),X'0B' IS THE NEXT CCW READ INQUIRY 000B 09700000 BE IECP&X 000B 09750000 CLI 13(15),X'8B' IS IT READ INQUIRY 3128 09800000 BE IECP&X Y 3128 09850000 CLI 13(15),X'07' IS NEXT CCW READ ID ENQ? A43785 09900000 BE IECP&X GO TO ISSUE HIO A43785 09950000 CLI 21(15),X'07' M2860 10000000 BE IECP&X M2860 10050000 CLI 21(15),X'87' READ ID ENQ CCW WITH @ZA04659 10100000 * LAST CCW FLAG ON @ZA04659 10150000 BE IECP&X YES, ISSUE HALT IO @ZA04659 10200000 TM 4(15),X'40' IS CCW COMMAND CHAIN A30763 10250000 BNO IECP&X NO, ISSUE HIO A30763 10300000 IECH&X LA 15,8(15) LOAD ADDRESS OF NEXT CCW. 000H 10350000 CLI 0(15),X'06' IS THIS CCW PREP? 000H 10400000 BE IECI&X 000H 10450000 IEC1&X EQU * @ZA17733 10500000 TM 4(15),X'40' IS THE CCW COMMAND CHAINED? 00H 10550000 BO IECH&X TRY NEXT CCW @ZA31078 10600000 CLI IECK&X+1,X'0B' WRITE RESET MONITOR ? @ZA31078 10650000 BE IECQ&X SET RETURN CODE TO X'04' @ZA31078 10700000 B IEC0&X SET RETURN CODE TO X'10' @ZA31078 10750000 IEC0&X LA 15,16 SET RETURN CODE = X'10' @ZA04199 10800000 B IECB&X EXIT @ZA04199 10850000 .* 2 LINES DELETED FOR THE FOLLOWING APAR YA03232 10900000 IECI&X CLI 8(15),X'0A' IS NEXT CCW INHIBIT? YA03232 10950000 AIF ('&SPEC' EQ 'HIO2740').HAL2740 YA02146 11000000 AIF (T'&SPEC EQ 'O').NO2740 YA02146 11050000 MNOTE * '*** SPEC &SPEC NOT RECOGNIZED.' YA02146 11100000 AGO .NO2740 YA02146 11150000 .HAL2740 ANOP YA02146 11200000 BE IECP&X YES, DO THE HIO YA02146 11250000 CLI 13(15),X'11' READ DATA? @ZA00503 11300000 BE IECP&X YES, DO THE HIO YA02146 11350000 CLI 13(15),X'91' LAST A READ DATA? YA02146 11400000 BE IECP&X YES, DO THE HIO YA03242 11450000 * THE ABOVE GENERATED CODE WILL CAUSE A HALT I/O TO YA02146 11500000 * BE INDISCRIMINENTLY ISSUED TO A 2740 YA02146 11550000 AGO .YES2740 YA02146 11600000 .NO2740 ANOP YA02146 11650000 BE IECP&X YES, DO THE HIO YA03232 11700000 .YES2740 ANOP YA02146 11750000 .* 3 LINES DELETED FOR THE FOLLOWING APAR YA03232 11800000 CLI 13(15),X'0B' CCW READ RESPONSE? YA03232 11850000 BE IECP&X YES, HALT I/O S99245 11900000 CLI 13(15),X'8B' LAST CCW READ RESPONSE? YA03232 11950000 BNE IECE&X NO, SET RETURN CODE S99245 12000000 .* 12050000 .END ANOP A28606 12100000 IECP&X SR 15,15 000B 12150000 *** PREPARE FOR REISSUE OF IOHALT IF RC=4 AND IOBBUSY @ZA65419 12200000 ST 15,IEC2&X+12 INIT *COUNTER TO ZEROES @ZA65419 12250000 ST 15,IEC2&X+16 INIT *COUNTER TO ZEROES @ZA65419 12300000 ST 1,IEC2&X+8 SAVE *IOBADDR @ZA59479 12350000 *** *COUNTER AND *IOBADDR ARE INITIALIZED @ZA59479 12400000 IC 15,32(1) GET EXTENT NUMBER. 12450000 SLL 15,2 MULTIPLY EXTENT NUMBER BY 4. 12500000 L 14,44(14) GET DEB ADDRESS. 12550000 L 1,32(14,15) LOAD UCB ADDRESS INTO PARAMTER REG. 12600000 LA 1,0(1) CLEAR HI-ORDER BYTE @ZA45123 12650000 STM 0,1,IEC2&X SAVE R0 AND R1 @ZA65419 12700000 IEC6&X IOHALT (1) ISSUE IOHALT @ZA65419 12750000 LA 14,4 LOAD X'04' FOR COMPARE @ZA65419 12800000 CLR 15,14 RETURN CODE = X'04' ? IF NO, @ZA65419 12850000 BNE IEC7&X TEST IOHALT RC=X'10' @ZA65419 12900000 L 14,IEC2&X+8 ELSE, GET *IOBADDR @ZA65419 12950000 TM 28(14),X'40' IS IOBBUSY ON? @ZA65419 13000000 BNO IECB&X IOHALT DONE; EXIT WITH RC=4 @ZA80090 13050000 *** IF IOHALT RC=04 AND THE IOB IS BUSY, RESETPL TRIES @ZA65419 13100000 *** TO AVOID PASSING A RESETPL RETURN CODE OF X'00'. @ZA65419 13150000 *** IT WILL REISSUE IOHALT AND TEST FOR IOBBUSY FOR @ZA65419 13200000 *** A MAXIMUM OF 7 TIMES BEFORE PASSING RC OF X'0C'. @ZA65419 13250000 L 15,IEC2&X+12 GET RETRY COUNT FOR TEST @ZA73855 13300000 LA 14,6 GET RELATIVE MAX RETRY COUNT @ZA65419 13350000 CLR 15,14 IS RETRY AT MAX COUNT? IF NO, @ZA65419 13400000 BNH IEC8&X INCREMENT COUNTER AND RE-IOHALT @ZA65419 13450000 B IECJ&X AND EXIT. @ZA65419 13500000 IEC7&X LA 14,16 LOAD X'10' INTO REG FOR COMPARES @ZA65419 13550000 CLR 15,14 RETURN CODE = X'10' @ZA65419 13600000 BL IECB&X EXIT WITH IOHALT RETURN CODE @ZA65419 13650000 BE IECE&X EXIT WITH 0 RETURN CODE @ZA65419 13700000 LA 14,24 LOAD X'18' FOR COMPARE @ZA65419 13750000 CLR 15,14 IS RETURN CODE X'18' @ZA65419 13800000 BE IECE&X YES, EXIT WITH 0 RTN CODE @ZA65419 13850000 LA 14,20 LOAD X'14' INTO REG FOR COMPARES 13900000 CLR 15,14 RETURN CODE = X'14' 13950000 LM 0,1,IEC2&X RESTORE R0 AND R1 @ZA65419 14000000 BNE IECJ&X IF NOT X'14' SET RC=X'0C' 14050000 ** IF THE RETURN CODE = X'14', REISSUE SVC 33 FOR MAXIMUM OF 14100000 ** 255 TIMES. 14150000 L 15,IEC2&X+16 GET RETRY COUNT FOR TEST @ZA73855 14200000 LA 14,6 GET RELATIVE MAX RETRY COUNT @ZA65419 14250000 CLR 15,14 IS RETRY AT MAX COUNT? IF NO, @ZA65419 14300000 BE IECJ&X SET RC=X'0C' 14350000 LA 15,1(15) ELSE ADD ONE TO RETRY COUNT 14400000 ST 15,IEC2&X+16 SAVE UPDATED COUNT @ZA65419 14450000 B IEC6&X RE-ISSUE IOHALT @ZA65419 14500000 IEC8&X LA 15,1(15) ADD ONE TO RETRY COUNT 14550000 ST 15,IEC2&X+12 SAVE UPDATED COUNT @ZA65419 14600000 LM 0,1,IEC2&X RESTORE R0 AND R1 @ZA69391 14625000 B IEC6&X RE-ISSUE IOHALT 14650000 ** PSEUDO LABELS USED IN COMMENTS @ZA65419 14700000 IEC2&X DC 5F'0' CREATE SAVE AREA 14750000 *REG0 DC F'0' REGISTER 0 14800000 *REG1 DC F'0' REGISTER 1 14850000 *IOBADDR DC F'0' IEC2&X+8 EQU *IOBADDR 14900000 *COUNTER DC F'0' IEC2&X+12 EQU *COUNTER 14950000 *CNTER1 DC F'0' IEC2&X+16 EQU *COUNTER1 15000000 .* 15050000 IECY&X EQU * 15100000 CLI 0(15),X'27' STILL ENABLE? 15150000 BE IECP&X YES, RESET 15200000 B IECE&X RETURN 15250000 .* 15300000 .ANREND ANOP 15350000 IECK&X DC H'0' SAVE AREA FOR WTTA 15400000 IECL&X DC X'0080' FLAG FOR SVC 33 15450000 * 15500000 IECQ&X LA 15,4 SET RETURN CODE 4 @ZA15411 15550000 B IECB&X AND EXIT @ZA15411 15600000 * 15650000 IECE&X SR 15,15 YA02053 15700000 IECB&X EQU * 15750000 MEXIT 000D 15800000 .* 15850000 .ER MNOTE 12,'*** IHB078 DECB OPERAND REGISTER NOTATION INVALID-X15900000 &DECB' 15950000 MEXIT 16000000 .ANR ANOP 16050000 L 15,44(14) GET ADDR OF DEB 16100000 LA 15,0(15) CLEAR HIGH-ORDER BYTE 16150000 SLA 0,2 MULTIPLY RLN BY 4 16200000 AR 15,0 USE RLN*4 AS INDEX 16250000 L 15,28(15) TO DEBUCBAD-4 AND GET UCB ADDR 16300000 CLI 18(15),X'10' DEVICE CLASS = GRAPHICS 16350000 BNE IECO&X NO, DEVICE IS NOT ANR 16400000 CLI 5(1),X'01' IS OPERATION READ INITIAL 16450000 BNE IECX&X NO, GIVE RC=10 AND EXIT 16500000 TM 0(1),X'40' IS THE OPERATION COMPLETE 16550000 BO IECQ&X YES, GIVE RC=4 AND EXIT 16600000 LR 0,1 DECB ADDR TO REG 0 16650000 .* ONE LINE DELETED BY THE FOLLOWING PTM: YM5699 16700000 LR 1,15 UCB ADDR TO REG 1 16750000 LA 15,4 ROUTING CODE OF 4 IN REG 15 16800000 SVC 116 INVOKE ESR TO DO RESET 16850000 LR 0,15 LOAD DECB ADDR @ZA14028 16900000 SRL 0,8 SHIFT DECB ADDR LO 3 BYTES @ZA14028 16950000 SLL 15,24 MAKE SURE THAT ONLY LD @ZA05393 17000000 SRL 15,24 RC IS IN REG 15 LD @ZA00537 17050000 LA 1,4 ESTABLISH COMPARAND 17100000 CR 15,1 IS RC 0 OR 4 17150000 BH IECZ&X NO RETURN WITH R.C. @ZA14028 17200000 STH 15,IECK&X SAVE RETURN CODE 17250000 * 17300000 L 1,28(14) GET IOB BASE FROM DCB 17350000 LA 1,88(1) GET ADDR OF FIRST IOB 17400000 L 14,44(14) GET DEB ADDR FROM DCB 17450000 SR 0,0 17500000 IC 0,16(14) GET NO. OF EXTENTS FROM DEB 17550000 * AND USE AS LOOP COUNTER 17600000 LA 14,32(14) GET ADDR OF FIRST DEB UCB PTR 17650000 * 17700000 IECT&X OI 1(1),X'01' SET RESETPL ISSUED FLAG 17750000 TM 28(1),X'01' RFT IN PROGRESS 17800000 BO IECW&X YES, GIVE R.C. = 0 @ZA08056 17850000 L 15,0(14) GET ADDR OF UCB 17900000 TM 6(15),X'20' OUTSTANDING I/O OPERATION 17950000 BO IECU&X YES, KEEP IOB BUSY 18000000 NI 28(1),X'BF' TURN OFF IOB BUSY FLAG 18050000 * 18100000 IECU&X LA 1,88(1) STEP TO NEXT IOB 18150000 LA 14,4(14) STEP TO NEXT UCB PTR 18200000 BCT 0,IECT&X LOOP IF NOT FINISHED 18250000 LH 15,IECK&X RESTORE RETURN CODE 18300000 B IECB&X EXIT WITH RC 18350000 * 18400000 IECZ&X LA 1,16 ESTABLISH COMPARAND @ZA14028 18450000 CR 15,1 IS RC = 16 @ZA14028 18500000 BNE IECB&X NO - EXIT WITH RC @ZA14028 18550000 LR 1,0 LOAD DECB ADDR @ZA14028 18600000 TM 0(1),X'40' IS OPERATION COMPLETE @ZA14028 18650000 BO IECQ&X YES - GIVE RC = 4 AND EXIT @ZA14028 18700000 B IECB&X EXIT WITH ORIGINAL RC @ZA14028 18750000 * 18800000 IECW&X XC IECK&X,IECK&X SET RC TO ZERO 18850000 B IECU&X 18900000 * THREE LINES REMOVED BY------------------------>@ZA15411 18950000 IECX&X LA 15,16 SET RETURN CODE OF X'10' 19000000 B IECB&X AND EXIT 19050000 * 19100000 .* 19150000 AIF ('&TYPE' EQ 'ATTENT').ANRRC8 19200000 IECO&X SRA 0,2 RESTORE REG 0 (RLN) 19250000 AGO .NOTANR 19300000 .* 19350000 .ANRRC8 ANOP 19400000 IECO&X LA 15,8 INVALID DEVICE, SET RC=8 19450000 B IECB&X AND EXIT 19500000 AGO .ANREND 19550000 .* 19600000 MEND 000D 19650000