./ ADD SSI=00010301,NAME=IGE0001A,SOURCE=1 TITLE 'IGE0001A, 3505/3535 ERROR RECOVERY PROCEDURE ' 00001000 ER3505 CSECT , 0001 00002000 @PROLOG BALR @06,0 0001 00003000 @PSTART DS 0H 0001 00004000 USING @PSTART,@06 0001 00005000 * /************************************************************/ 00006000 * /* INITIALIZE IOB FLAGS */ 00007000 * /************************************************************/ 00008000 * 0009 00009000 * IOBREG=TSTIOB; /* INITIALIZE IOB REGISTER */ 00010000 L IOBREG,TSTIOB-1(,TSTREG) 0009 00011000 LA IOBREG,0(,IOBREG) 0009 00012000 * IOBERR='1'B; /* SET IOB ERROR FLAG */ 00013000 * IOBEX='1'B; /* SET IOB EXCEPTION FLAG */ 00014000 OI IOBERR(IOBREG),B'00100100' 0011 00015000 * CVTREG=CVTPTR; /* INITIALIZE CVT REG */ 00016000 * 0012 00017000 L CVTREG,CVTPTR 0012 00018000 * IF IOBCP='11'B /* TEST FOR MIXED CHAINING */ 00019000 * THEN /* YES-RECOVERY NOT POSSIBLE */ 00020000 TM IOBCP(IOBREG),B'11000000' 0013 00021000 BO @RT00013 0013 00022000 * GO TO EXIT22; /* PERM ERROR-BYPASS LOGOUT */ 00023000 * ELSE /* NO-CONTINUE */ 00024000 * CCWREG=CMDADR-8; /* BACK UP CCW */ 00025000 * 0015 00026000 MVC @ZT00001+1(3),CMDADR(IOBREG) 0015 00027000 L CCWREG,@ZT00001 0015 00028000 SH CCWREG,@CH00088 0015 00029000 * IF IOBCP(2)='0'B /* TEST FOR CMD CHATNING */ 00030000 * THEN /* NO-MUST BE DATA OR NONE */ 00031000 TM IOBCP(IOBREG),B'01000000' 0016 00032000 BZ @RT00016 0016 00033000 * GO TO STATUS; /* CHECK STATUS BYTE */ 00034000 * 0017 00035000 * IF IOBENT='0'B /* TEST FOR PREVIOUS ENTRY */ 00036000 * THEN /* NO- FIRST TIME THRU */ 00037000 TM IOBENT(IOBREG),B'01000000' 0018 00038000 BNZ @RF00018 0018 00039000 * DO; 0019 00040000 * IOBENT='1'B; /* SET ENTRY BIT */ 00041000 OI IOBENT(IOBREG),B'01000000' 0020 00042000 * GO TO RSTART; /* SET RESTART ADDRESS */ 00043000 B RSTART 0021 00044000 * END; 0022 00045000 * 0022 00046000 * IF CCWREG=IOBRST /* TEST FOR ERR ON RESTART */ 00047000 * THEN /* YES-FLAGS ALREADY SET */ 00048000 @RF00018 C CCWREG,IOBRST(,IOBREG) 0023 00049000 BE @RT00023 0023 00050000 * GO TO STATUS; /* CHECK STATUS BYTE */ 00051000 * ELSE /* NO-RESET ERROR COUNTS */ 00052000 * DO; 0025 00053000 * IOBART='0'B; /* RESET AUTO RETRY */ 00054000 * IOBCCC='0'B; /* RESET CH CTL CK */ 00055000 * IOBICC='0'B; /* RESET INT CTL CK */ 00056000 * IOBPRT='0'B; /* RESET PUNCH RETRY BIT */ 00057000 NI IOBART(IOBREG),B'01000111' 0029 00058000 * END; 0030 00059000 * 0030 00060000 *RSTART: IOBRST=CCWREG; /* SET RESTART ADDRESS */ 00061000 RSTART ST CCWREG,IOBRST(,IOBREG) 0031 00062000 * IOBSRS='1'B; /* SET RESTART FLAG */ 00063000 * 0032 00064000 OI IOBSRS(IOBREG),B'00000001' 0032 00065000 * /************************************************************/ 00066000 * /* TEST STATUS INFORMATION */ 00067000 * /************************************************************/ 00068000 * 0033 00069000 *STATUS: INTRPT=ADDR(STATBY); /* SET STATUS PRIORITY LIST */ 00070000 STATUS LA INTRPT,STATBY 0033 00071000 * IOBRG=IOBREG; /* SET IOB ADDR FOR INTERPRET*/ 00072000 LR IOBRG,IOBREG 0034 00073000 * ERRLNK=BASEREG; /* BASE ADDR TO INTERPRTR */ 00074000 LR ERRLNK,BASEREG 0035 00075000 * GO TO EXIT33; /* CALL INTERPRETER */ 00076000 * 0036 00077000 B EXIT33 0036 00078000 *STATBY: GENERATE; 0037 00079000 STATBY DS 0H 0037 00080000 * THE FOLLOWING BYTES INDICATE THE ORDER IN WHICH THE STATUS BITS 00081000 * ARE TO BE TESTED FOLLOWED BY AN INDEX VALUE USED BY THE 00082000 * INTERPRETER TO RETURN TO THIS ROUTINE. 00083000 SPACE 00084000 DC X'1D' CHANNEL CONTROL CHECK 00085000 DC AL1(ERR01C-STATBY) 00086000 DC X'1E' INTERFACE CONTROL CHECK 00087000 DC AL1(ERR01C+4-STATBY-2) 00088000 DC X'1C' CHANNEL DATA CHECK 00089000 DC AL1(ERR01B-STATBY-4) 00090000 DC X'10' SHOULD NOT OCCUR 00091000 DC AL1(ERR03A-STATBY-6) 00092000 DC X'11' SHOULD NOT OCCUR 00093000 DC AL1(ERR03A-STATBY-8) 00094000 DC X'12' SHOULD NOT OCCUR 00095000 DC AL1(ERR03A-STATBY-10) 00096000 DC X'16' UNIT CHECK 00097000 DC AL1(SENSE0-STATBY-12) 00098000 DC X'1F' CHAINING CHECK 00099000 DC AL1(ERR01A-STATBY-14) 00100000 DC X'1A' PROGRAM CHECK 00101000 DC AL1(ERR01D-STATBY-16) 00102000 DC X'1B' PROTECTION CHECK 00103000 DC AL1(ERR01D-STATBY-18) 00104000 DC X'17' UNIT EXCEPTION 00105000 DC AL1(ERR01D-STATBY-20) 00106000 DC X'19' INCORRECT LENGTH 00107000 DC AL1(ERR01D-STATBY-22) 00108000 DC X'2F' END OF TEST 00109000 DC AL1(ERR000-STATBY-24) 00110000 * /************************************************************/ 00111000 * /* TEST SENSE BYTE ZERO */ 00112000 * /************************************************************/ 00113000 * 0038 00114000 *SENSE0: INTRPT=ADDR(SNSBY0); /* CHECK SENSE BYTE ZERO */ 00115000 SENSE0 LA INTRPT,SNSBY0 0038 00116000 * GO TO EXIT33; /* CALL INTERPRETER */ 00117000 * 0039 00118000 B EXIT33 0039 00119000 *SNSBY0: GENERATE; 0040 00120000 SNSBY0 DS 0H 0040 00121000 * THE FOLLOWING BYTES INDICATE THE ORDER IN WHICH THE SENSE BITS 00122000 * ARE TO BE TESTED FOLLOWED BY AN INDEX VALUE USED BY THE 00123000 * INTERPRETER TO RETURN TO THIS ROUTINE. 00124000 SPACE 00125000 DC X'05' SHOULD NOT OCCUR 00126000 DC AL1(ERR03A-SNSBY0) 00127000 DC X'07' PERMANENT ERROR 00128000 DC AL1(ERR03A+4-SNSBY0-2) 00129000 DC X'03' EQUIPMENT CHECK 00130000 DC AL1(ERR03-SNSBY0-4) 00131000 DC X'06' ABNORMAL FORMAT RESET 00132000 DC AL1(SENSE1-SNSBY0-6) 00133000 DC X'01' INTERVENTION REQUIRED 00134000 DC AL1(ERR03+4-SNSBY0-8) 00135000 DC X'02' BUS OUT CHECK 00136000 DC AL1(SENSE1-SNSBY0-10) 00137000 DC X'04' DATA CHECK 00138000 DC AL1(SENSE1-SNSBY0-12) 00139000 DC X'00' COMMAND REJECT 00140000 DC AL1(SENSE1-SNSBY0-14) 00141000 DC X'2F' END OF TEST 00142000 DC AL1(ERR03A-SNSBY0-16) 00143000 * /************************************************************/ 00144000 * /* TEST SENSE BYTE ONE */ 00145000 * /************************************************************/ 00146000 * 0041 00147000 *SENSE1: INTRPT=ADDR(SNSBY1); /* CHECK SENSE BYTE ONE */ 00148000 SENSE1 LA INTRPT,SNSBY1 0041 00149000 * GO TO EXIT33; /* CALL INTERPRETER */ 00150000 * 0042 00151000 B EXIT33 0042 00152000 *SNSBY1: GENERATE; 0043 00153000 * 0043 00154000 SNSBY1 DS 0H 0043 00155000 * THE FOLLOWING BYTES INDICATE THE ORDER IN WHICH THE SENSE BITS 00156000 * ARE TO BE TESTED FOLLOWED BY AN INDEX VALUE USED BY THE 00157000 * INTERPRETER TO RETURN TO THIS ROUTINE. 00158000 SPACE 00159000 DC X'0C' SHOULD NOT OCCUR 00160000 DC AL1(ERR03A-SNSBY1) 00161000 DC X'0D' SHOULD NOT OCCUR 00162000 DC AL1(ERR03A-SNSBY1-2) 00163000 DC X'0E' SHOULD NOT OCCUR 00164000 DC AL1(ERR03A-SNSBY1-4) 00165000 DC X'0F' SHOULD NOT OCCUR 00166000 DC AL1(ERR03A-SNSBY1-6) 00167000 DC X'08' PERMANENT ERROR 00168000 DC AL1(ERR03A+4-SNSBY1-8) 00169000 DC X'0B' RETRY AFTER INTERVENTION 00170000 DC AL1(ERR03B-SNSBY1-10) 00171000 DC X'09' AUTOMATIC RETRY 00172000 DC AL1(ERR03C-SNSBY1-12) 00173000 DC X'2F' END OF TEST 00174000 DC AL1(ERR03A-SNSBY1-14) 00175000 SPACE 00176000 * /************************************************************/ 00177000 * /* ERROR DIRECTORY */ 00178000 * /************************************************************/ 00179000 SPACE 00180000 ERR000 BC 15,EXIT01 NORMAL COMPLETION 00181000 ERR01A BC 15,EXIT22 DEVICE INOPERATIVE 00182000 ERR01B BC 15,ERR012 CONTROL UNIT INOPERATIVE 00183000 ERR01C BC 15,ERR001 CHANNEL INOPERATIVE 00184000 BC 15,ERR011 CHANNEL INOPERATIVE 00185000 ERR01D BC 15,ERR004 TASK INOPERATIVE 00186000 ERR03 BC 15,ERR002 TEST FOR QSAM 00187000 BC 15,ERR003 TEST FOR QSAM 00188000 ERR03A BC 15,EXIT12 PERMANENT ERROR 00189000 BC 15,EXIT22 PERMANENT ERROR 00190000 ERR03B BC 15,ERR013 RETRY AFTER INTERVENTION 00191000 ERR03C BC 15,ERR033 AUTO RETRY 00192000 * /************************************************************/ 00193000 * /* CHANNEL ERROR */ 00194000 * /************************************************************/ 00195000 * 0044 00196000 *ERR001: IF IOBCCC='1'B /* TEST FOR PREV CCC */ 00197000 * THEN /* YES-PERMANENT ERROR */ 00198000 ERR001 TM IOBCCC(IOBREG),B'00100000' 0044 00199000 BNO @RF00044 0044 00200000 * IOBECT=1; /* INDCATES ERR ON RETRY */ 00201000 MVC IOBECT(2,IOBREG),@CH00050 0045 00202000 * ELSE /* NO-SET CCC ERR IND */ 00203000 * IOBCCC='1'B; /* SET ERR CTR TO ONE */ 00204000 * 0046 00205000 B @RC00044 0046 00206000 @RF00044 OI IOBCCC(IOBREG),B'00100000' 0046 00207000 * GO TO ERR021; /* GET ERPIB */ 00208000 * 0047 00209000 B ERR021 0047 00210000 *ERR011: IF IOBICC='1'B /* TEST FOR PREV ICC */ 00211000 * THEN /* YES-PERMANENT ERROR */ 00212000 ERR011 TM IOBICC(IOBREG),B'00010000' 0048 00213000 BNO @RF00048 0048 00214000 * IOBECT=1; /* INDICATES ERR ON RETRY */ 00215000 MVC IOBECT(2,IOBREG),@CH00050 0049 00216000 * ELSE /* NO-SET ICC ERR IND */ 00217000 * IOBICC='1'B; /* SET ERR CTR TO ONE */ 00218000 * 0050 00219000 B @RC00048 0050 00220000 @RF00048 OI IOBICC(IOBREG),B'00010000' 0050 00221000 *ERR021: ERPIBRG=IBPTR->WRKPTR->WRKPTR; /* GET ERPIB ADDR */ 00222000 * 0051 00223000 @RC00048 DS 0H 0051 00224000 ERR021 L @12,IBPTR(,CVTREG) 0051 00225000 L @12,WRKPTR(,@12) 0051 00226000 L ERPIBRG,WRKPTR(,@12) 0051 00227000 *ERR031: IF IBUCB=TSTUCB /* TEST FOR CORRECT ERPIB */ 00228000 * THEN /* YES-ERPIB LOCATED */ 00229000 ERR031 MVC @ZT00002+2(2),TSTUCB(TSTREG) 0052 00230000 L @12,@ZT00002 0052 00231000 MVC @ZT00001+1(3),IBUCB(ERPIBRG) 0052 00232000 C @12,@ZT00001 0052 00233000 BE @RT00052 0052 00234000 * GO TO ERR041; /* TEST FOR INTERCEPT */ 00235000 * 0053 00236000 * IF IBEND='FF'X /* TEST FOR END OF TABLES */ 00237000 * THEN /* YES-LAST ENTRY */ 00238000 CLI IBEND(ERPIBRG),X'FF' 0054 00239000 BE @RT00054 0054 00240000 * GO TO EXIT22; /* SET MSG FLAG AND EXIT */ 00241000 * ELSE /* NO-GET NEXT ENTRY */ 00242000 * DO; 0056 00243000 * ERPIBRG=ADDR(ERPIB)+8; /* ADVANCE ERPIB POINTER */ 00244000 AH ERPIBRG,@CH00088 0057 00245000 * GO TO ERR031; /* TEST FOR CORRECT ENTRY */ 00246000 B ERR031 0058 00247000 * END; 0059 00248000 * 0059 00249000 *ERR041: IF IOBCOD='7E'X /* TEST FOR INTERCEPT */ 00250000 * THEN /* YES-PERMANENT ERROR */ 00251000 ERR041 CLI IOBCOD(IOBREG),X'7E' 0060 00252000 BE @RT00060 0060 00253000 * GO TO ERR071; /* CLEAR ERPIB AND EXIT */ 00254000 * 0061 00255000 * IF IOBECT=1 /* ERR OCCUR ON RETRY */ 00256000 * THEN /* YES-PERMANENT ERROR */ 00257000 CLC IOBECT(2,IOBREG),@CH00050 0062 00258000 BE @RT00062 0062 00259000 * GO TO ERR071; /* CLEAR ERPIB AND EXIT */ 00260000 * 0063 00261000 * IF IBSEQ='000'B /* TEST FOR SEQ CODE ZERO */ 00262000 * THEN /* YES-PERMANENT ERROR */ 00263000 TM IBSEQ(ERPIBRG),B'00000111' 0064 00264000 BZ @RT00064 0064 00265000 * GO TO ERR071; /* CLEAR ERPIB AND EXIT */ 00266000 * 0065 00267000 * IF COMMND='00'X /* CHECK FOR TIO COMMAND */ 00268000 * THEN /* YES-PERMANENT ERROR */ 00269000 CLI COMMND(CCWREG),X'00' 0066 00270000 BE @RT00066 0066 00271000 * GO TO ERR071; /* CLEAR ERPIB AND EXIT */ 00272000 * 0067 00273000 * IF IBSEQ='001'B /* TEST FOR SEQ CODE ONE */ 00274000 * THEN /* RETRY IF CCW IS VALID */ 00275000 TM IBSEQ(ERPIBRG),B'00000001' 0068 00276000 BNO @RF00068 0068 00277000 TM IBSEQ(ERPIBRG),B'00000110' 0068 00278000 BZ @RT00068 0068 00279000 * GO TO ERR061; /* TEST CCW VALIDITY */ 00280000 * 0069 00281000 * IF IBSEQ='010'B /* TEST FOR SEQ CODE TWO */ 00282000 * THEN /* YES-CHECK CMD TYPE */ 00283000 @RF00068 TM IBSEQ(ERPIBRG),B'00000010' 0070 00284000 BNO @RF00070 0070 00285000 TM IBSEQ(ERPIBRG),B'00000101' 0070 00286000 BZ @RT00070 0070 00287000 * GO TO ERR051; /* TEST FOR FSS COMMAND */ 00288000 * 0071 00289000 * IF IBSEQ='100'B /* TEST FOR SEQ CODE FOUR */ 00290000 * THEN /* YES-RETRY IF CCW IS VALID */ 00291000 @RF00070 TM IBSEQ(ERPIBRG),B'00000100' 0072 00292000 BNO @RF00072 0072 00293000 TM IBSEQ(ERPIBRG),B'00000011' 0072 00294000 BZ @RT00072 0072 00295000 * GO TO ERR061; /* TEST CCW VALIDITY */ 00296000 * 0073 00297000 * IF IBSEQ='110'B /* TEST FOR SEQ CODE SIX */ 00298000 * THEN /* YES-PERMANENT ERROR */ 00299000 @RF00072 TM IBSEQ(ERPIBRG),B'00000110' 0074 00300000 BNO @RF00074 0074 00301000 TM IBSEQ(ERPIBRG),B'00000001' 0074 00302000 BZ @RT00074 0074 00303000 * GO TO ERR071; /* CLEAR ERPIB AND EXIT */ 00304000 * 0075 00305000 * IF IBSEQ='111'B /* TEST FOR SEQ CODE SEVEN */ 00306000 * THEN /* YES-CHECK COMMAND CODE */ 00307000 @RF00074 TM IBSEQ(ERPIBRG),B'00000111' 0076 00308000 BO @RT00076 0076 00309000 * GO TO ERR051; /* TEST FOR FSS COMMAND */ 00310000 * 0077 00311000 * GENERATE; 0078 00312000 * 0078 00313000 * PERMANENT ERROR IF COMMAND IS PL,RFSS, OR WFSS 00314000 TM COMMND,X'05' TEST FOR PL COMMAND 00315000 BC 1,ERR071 YES-PERMANENT ERROR 00316000 TM COMMND,X'C0' IS RFSS OR WFSS POSSIBLE 00317000 BC 1,ERR051 NO-TEST FOR FSS COMMAND 00318000 TM COMMND,X'10' IS RFSS OR WFSS POSSIBLE 00319000 BC 1,ERR051 NO-TEST FOR FSS COMMAND 00320000 TM COMMND,X'03' LAST TEST FOR RFSS OR WFSS 00321000 BC 4,ERR071 YES-PERMANENT ERROR 00322000 *ERR051: GENERATE; 0079 00323000 * 0079 00324000 ERR051 DS 0H 0079 00325000 TM COMMND,X'23' TEST FOR FSS COMMAND 00326000 BC 1,ERR071 YES-CLEAR ERPIB AND EXIT 00327000 *ERR061: IF CCWREG > 0 /* IS CCW ADDR ZERO OR NEG */ 00328000 * THEN /* YES-REISSUE COMMAND */ 00329000 ERR061 LTR CCWREG,CCWREG 0080 00330000 BP @RT00080 0080 00331000 * GO TO EXIT03; /* CLEAR ERPIB AND EXIT */ 00332000 * 0081 00333000 *ERR071: ERPIB=ERPIB && ERPIB; /* ZERO ERPIB */ 00334000 ERR071 XC ERPIB(8,ERPIBRG),ERPIB(ERPIBRG) 0082 00335000 * GO TO EXIT22; /* SET MSG FLAG AND EXIT */ 00336000 * 0083 00337000 B EXIT22 0083 00338000 * /************************************************************/ 00339000 * /* CHANNEL DATA CHECK OR EQUIPMENT CHECK */ 00340000 * /************************************************************/ 00341000 * 0084 00342000 *ERR002: IOBLOG='1'B; /* SET LOGOUT FLAG */ 00343000 ERR002 OI IOBLOG(IOBREG),B'00000001' 0084 00344000 * GO TO ERR022; /* TEST FOR INTERCEPT */ 00345000 * 0085 00346000 B ERR022 0085 00347000 *ERR012: /* M0825*/ 00348000 * IF CMDB6='1'B & CMDB7='0'B /* TEST FOR READ COMMAND */ 00349000 * THEN /* YES-CHECK FOR INTERCEPT */ 00350000 ERR012 TM CMDB6(CCWREG),B'00000010' 0086 00351000 BNO @RF00086 0086 00352000 TM CMDB7(CCWREG),B'00000001' 0086 00353000 BZ @RT00086 0086 00354000 * GO TO ERR022; 0087 00355000 * ELSE /* NO-EXIT TO IOS */ 00356000 * GO TO EXIT01; 0088 00357000 * 0088 00358000 B EXIT01 0088 00359000 *ERR022: IF IOBCOD='7E'X /* TEST FOR INTERCEPT */ 00360000 * THEN /* YES-CHG COMPLETION CODE */ 00361000 ERR022 CLI IOBCOD(IOBREG),X'7E' 0089 00362000 BE @RT00089 0089 00363000 * GO TO ERR032; 0090 00364000 * 0090 00365000 * IF CCWREG<=0 /* IS CCW ZERO OR NEG */ 00366000 * THEN /* YES-SET MSG FLAG AND EXIT */ 00367000 LTR CCWREG,CCWREG 0091 00368000 BNP @RT00091 0091 00369000 * GO TO EXIT22; 0092 00370000 * 0092 00371000 * IF CMDB6='1'B & CMDB7='0'B /* TEST FOR READ CMD */ 00372000 * THEN /* YES-AUTO RETRY */ 00373000 TM CMDB6(CCWREG),B'00000010' 0093 00374000 BNO @RF00093 0093 00375000 TM CMDB7(CCWREG),B'00000001' 0093 00376000 BZ @RT00093 0093 00377000 * GO TO SENSE1; 0094 00378000 * 0094 00379000 *ERR032: IOBCOD='7F'X; /* SET NORMAL COMPL CODE */ 00380000 * 0095 00381000 @RF00093 DS 0H 0095 00382000 ERR032 MVI IOBCOD(IOBREG),X'7F' 0095 00383000 * IF IOBQSM='1'B /* TEST FOR QSAM */ 00384000 * THEN /* YES-UPDATE IOB */ 00385000 TM IOBQSM(IOBREG),B'00000001' 0096 00386000 BNO @RF00096 0096 00387000 * DO; 0097 00388000 * IF SN1BT0 = '1'B /* IF PERMANENT ERROR M0825*/ 00389000 * THEN /* THEN SET MESSAGE M0825*/ 00390000 TM SN1BT0(IOBREG),B'10000000' 0098 00391000 BO @RT00098 0098 00392000 * GO TO EXIT22; /* FLAG AND EXIT M0825*/ 00393000 * IF SN1BT1 = '1'B /* IF AUTOMATIC RETRY M0825*/ 00394000 * THEN IF IOBART = '1'B /* THEN IF PREV RTY M0825*/ 00395000 TM SN1BT1(IOBREG),B'01000000' 0100 00396000 BNO @RF00100 0100 00397000 * THEN /* THEN SET MSG M0825*/ 00398000 TM IOBART(IOBREG),B'10000000' 0101 00399000 BO @RT00101 0101 00400000 * GO TO EXIT22; /* FLAG AND EXIT M0825*/ 00401000 * ELSE /* IF NO PREV RETRY M0825*/ 00402000 * IOBART = '1'B; /* SET RETRY CNT M0825*/ 00403000 OI IOBART(IOBREG),B'10000000' 0103 00404000 * IOBSRS='0'B; /* CLEAR RESTART FLAG */ 00405000 @RF00100 NI IOBSRS(IOBREG),B'11111110' 0104 00406000 * IOBRG=IOBECB; /* GET NEXT IOB */ 00407000 L IOBRG,IOBECB-1(,IOBREG) 0105 00408000 LA IOBRG,0(,IOBRG) 0105 00409000 * IOBPRT='1'B; /* SET PCH RETRY IN IOB2 */ 00410000 OI IOBPRT(IOBREG),B'00001000' 0106 00411000 * IOBERR='1'B; /* SET ERR FLAG IN IOB2 */ 00412000 * IOBEX='1'B; /* SET EX FLAG IN IOB2 */ 00413000 OI IOBERR(IOBREG),B'00100100' 0108 00414000 * TSTIOB=IOBRG; /* POINT RQE TO IOB2 */ 00415000 ST IOBRG,@TF00001 0109 00416000 MVC TSTIOB(3,TSTREG),@TF00001+1 0109 00417000 * IOBRG=IOBRG->WRKPTR; /* GET ADDR OF IOB3 */ 00418000 L @12,WRKPTR(,IOBRG) 0110 00419000 LR IOBRG,@12 0110 00420000 * IOBRG=ADDR(IOB2)+8; /* POINT PAST LINK FIELD */ 00421000 AH IOBRG,@CH00088 0111 00422000 * IOBPRT='1'B; /* SET PCH RETRY IN IOB3 */ 00423000 OI IOBPRT(IOBREG),B'00001000' 0112 00424000 * GO TO EXIT32; /* SEND INT REQ MSG */ 00425000 B EXIT32 0113 00426000 * END; 0114 00427000 * ELSE /* NO-CHECK SENSE BYTE ONE */ 00428000 * GO TO SENSE1; 0115 00429000 * 0115 00430000 * /************************************************************/ 00431000 * /* DEVICE ERROR */ 00432000 * /************************************************************/ 00433000 * 0116 00434000 *ERR003: IF SN1BT2='1'B /* TEST MOTION MALFUNCTION */ 00435000 * THEN /* YES-SET LOGOUT FLAG */ 00436000 ERR003 TM SN1BT2(IOBREG),B'00100000' 0116 00437000 BNO @RF00116 0116 00438000 * IOBLOG='1'B; 0117 00439000 * 0117 00440000 OI IOBLOG(IOBREG),B'00000001' 0117 00441000 * IF CCB0='1'B & CCB1='1'B /* CHECK SIO CODE A63768*/ 00442000 * THEN /* CC=3 MSG,INT REQ A58718*/ 00443000 @RF00116 TM CCB0(IOBREG),B'00110000' 0118 00444000 BO @RT00118 0118 00445000 * GO TO EXIT32; 0119 00446000 * 0119 00447000 * GO TO SENSE1; /* CHECK SENSE BYTE ONE */ 00448000 * 0120 00449000 B SENSE1 0120 00450000 *ERR013: IF IOBCOD='7E'X /* TEST FOR INTERCEPT */ 00451000 * THEN /* YES-DO NOT SEND MESSAGE */ 00452000 ERR013 CLI IOBCOD(IOBREG),X'7E' 0121 00453000 BE @RT00121 0121 00454000 * GO TO ERR023; /* SET NORMAL COMPL CODE */ 00455000 * 0122 00456000 * IF CCWREG<=0 /* IS CCW ADDR ZERO OR NEG */ 00457000 * THEN /* YES-PERM ERROR */ 00458000 LTR CCWREG,CCWREG 0123 00459000 BNP @RT00123 0123 00460000 * GO TO EXIT22; /* WRT MSG AND EXIT */ 00461000 * ELSE /* NO-JUST INT REQ */ 00462000 * GO TO EXIT32; /* WRT MSG AND EXIT */ 00463000 * 0125 00464000 B EXIT32 0125 00465000 *ERR023: IOBCOD = '7F'X; /* SET NORM COMPL CODE M0831*/ 00466000 ERR023 MVI IOBCOD(IOBREG),X'7F' 0126 00467000 * IOBSRS='0'B; /* CLEAR RESTART FLAG */ 00468000 NI IOBSRS(IOBREG),B'11111110' 0127 00469000 * GO TO EXIT32; /* INT REQ WITHOUT RETRY */ 00470000 * 0128 00471000 B EXIT32 0128 00472000 *ERR033: IF IOBART='1'B /* TEST FOR PREV AUTO RETRY */ 00473000 * THEN /* YES-PERMANENT ERROR */ 00474000 ERR033 TM IOBART(IOBREG),B'10000000' 0129 00475000 BO @RT00129 0129 00476000 * GO TO EXIT22; /* WRT MSG AND EXIT */ 00477000 * IOBART='1'B; /* SET AUTO RETRY FLAG */ 00478000 * 0131 00479000 OI IOBART(IOBREG),B'10000000' 0131 00480000 * IF IOBLOG='0'B /* TEST LOGOUT FLAG */ 00481000 * THEN /* NO-EXIT TO IOS */ 00482000 TM IOBLOG(IOBREG),B'00000001' 0132 00483000 BZ @RT00132 0132 00484000 * GO TO EXIT13; 0133 00485000 * ELSE /* YES-EXIT TO OBR */ 00486000 * DO; 0134 00487000 * XCTLPTR=LOGOBR; /* GET LOAD NAME OF OBR */ 00488000 L XCTLPTR,LOGOBR-1 0135 00489000 LA XCTLPTR,0(,XCTLPTR) 0135 00490000 * GO TO EXIT42; /* GO XCTL TO OBR */ 00491000 B EXIT42 0136 00492000 * END; 0137 00493000 * 0137 00494000 * /************************************************************/ 00495000 * /* TASK ERROR */ 00496000 * /************************************************************/ 00497000 * 0138 00498000 *ERR004: IOBERR='0'B; /* RESET ERP IN CONTROL FLAG */ 00499000 ERR004 NI IOBERR(IOBREG),B'11011111' 0138 00500000 * GO TO EXIT13; /* RETURN TO IOS */ 00501000 * 0139 00502000 B EXIT13 0139 00503000 * /************************************************************/ 00504000 * /* ERROR CORRECTED */ 00505000 * /************************************************************/ 00506000 * 0140 00507000 *EXIT01: IOBERR='0'B; /* CLR IOB FLAG ONE @SA66573*/ 00508000 EXIT01 DS 0H 0141 00509000 * IOBEX='0'B; /* A57258*/ 00510000 * IOBSRS='0'B; /* A57258*/ 00511000 * 0142 00512000 NI IOBERR(IOBREG),B'11011010' 0142 00513000 * IF IOBPRT='0'B /* TEST FOR QSAM RETRY */ 00514000 * THEN /* YES-CLEAR IOB FLAG THREE */ 00515000 TM IOBPRT(IOBREG),B'00001000' 0143 00516000 BNZ @RF00143 0143 00517000 * IOBFL3='00'X; 0144 00518000 MVI IOBFL3(IOBREG),X'00' 0144 00519000 * ELSE /* NO-UPDATE NEXT IOB */ 00520000 * DO; 0145 00521000 B @RC00143 0145 00522000 @RF00143 DS 0H 0146 00523000 * IOBFL3='00'X; /* CLEAR IOB FLAG THREE */ 00524000 MVI IOBFL3(IOBREG),X'00' 0146 00525000 * IOBRG=IOBRG-8; /* ADDR OF NEXT IOB */ 00526000 LA @12,8 0147 00527000 SR IOBRG,@12 0147 00528000 * IOBRG=IOBRG->WRKPTR; /* NEXT IOB */ 00529000 L @11,WRKPTR(,IOBRG) 0148 00530000 LR IOBRG,@11 0148 00531000 * IOBRG=ADDR(IOB2)+8; /* POINT PAST LINK FIELD */ 00532000 AR IOBRG,@12 0149 00533000 * IOBERR='1'B; /* SET IOB ERR FLAG */ 00534000 * IOBEX='1'B; /* SET IOB EX FLAG */ 00535000 OI IOBERR(IOBREG),B'00100100' 0151 00536000 * TSTIOB=IOBRG; /* POINT RQE TO IOB2 */ 00537000 ST IOBRG,@TF00001 0152 00538000 MVC TSTIOB(3,TSTREG),@TF00001+1 0152 00539000 * END; 0153 00540000 * 0153 00541000 * GO TO EXIT13; /* RETURN TO IOS */ 00542000 * 0154 00543000 B EXIT13 0154 00544000 * /************************************************************/ 00545000 * /* LOG OUT */ 00546000 * /************************************************************/ 00547000 * 0155 00548000 *EXIT02: ERPIB=ERPIB && ERPIB; /* ZERO ERPIB */ 00549000 EXIT02 XC ERPIB(8,ERPIBRG),ERPIB(ERPIBRG) 0155 00550000 *EXIT12: IOBLOG='1'B; /* SET LOGOUT FLAG */ 00551000 EXIT12 OI IOBLOG(IOBREG),B'00000001' 0156 00552000 *EXIT22: IOBMSG='1'B; /* SET MSG TYPE FLAG */ 00553000 EXIT22 OI IOBMSG(IOBREG),B'00000100' 0157 00554000 *EXIT32: XCTLPTR=WTORTN; /* GET LOAD NAME OF WTO RTN */ 00555000 EXIT32 L XCTLPTR,WTORTN-1 0158 00556000 LA XCTLPTR,0(,XCTLPTR) 0158 00557000 *EXIT42: XCTLREG=ADDR(XCTL); /* GET ADDR OF XCTL ROUTINE */ 00558000 EXIT42 L @12,VECTXL(,CVTREG) 0159 00559000 LR XCTLREG,@12 0159 00560000 * GO TO XCTL; /* XFER CONTROL TO WTO OR OBR*/ 00561000 * 0160 00562000 BR @12 0160 00563000 * /************************************************************/ 00564000 * /* NORMAL AND ERROR EXITS */ 00565000 * /************************************************************/ 00566000 * 0161 00567000 *EXIT03: ERPIB=ERPIB && ERPIB; /* ZERO ERPIB */ 00568000 EXIT03 XC ERPIB(8,ERPIBRG),ERPIB(ERPIBRG) 0161 00569000 *EXIT13: GENERATE; /* RETURN TO IOS */ 00570000 EXIT13 DS 0H 0162 00571000 SVC 15 ERROR EXCP 00572000 SVC 3 RETURN 00573000 *EXIT33: CALL XLTE; /* XFER CTL TO INTERPRETER */ 00574000 * 0163 00575000 EXIT33 L @15,XLATE(,CVTREG) 0163 00576000 BALR @14,@15 0163 00577000 */*IGE0001A: CHART R.L.CUNNINGHAM */ 0164 00578000 */*E IGE0001A */ 0164 00579000 */*P INITIALIZE IOB FLAG ONE */ 0164 00580000 */*D (NO,,YES,EXIT22) MIXED CHANNEL PROGRAM */ 0164 00581000 */*P BACK UP CCW ADDRESS */ 0164 00582000 */*D (YES,,NO,STATUS) COMMAND CHAINING */ 0164 00583000 */*D (YES,,NO,%C) ENTRY BIT ON */ 0164 00584000 */*D (NO,,YES,STATUS) ERR OCCUR ON RESTART */ 0164 00585000 */*P (,RSTART) CLEAR IOB FLAG THREE */ 0164 00586000 */*%C: P SET ENTRY BIT */ 0164 00587000 */*RSTART: P INITIALIZE RESTART ADDRESS */ 0164 00588000 */*STATUS: D (NORM,,BT45,ERR001,BT46,ERR011,BT44,ERR012, 0164 00589000 */*BT32,EXIT12,BT33,EXIT12,BT34,EXIT12,BT38,SENSE0,BT47,EXIT12, 0164 00590000 */*BT42,ERR004,BT43,ERR004,BT39,ERR004,BT41,ERR004) 0164 00591000 */* INTERPRET STATUS BITS */ 0164 00592000 */*EXIT01: P (,EXIT11) CLEAR STATUS BYTES */ 0164 00593000 */*EXIT11: P CLEAR IOB FLAG ONE */ 0164 00594000 */*D (YES,,NO,%L) QSAM RETRY */ 0164 00595000 */*P CLEAR IOB FLAG THREE */ 0164 00596000 */*P (,EXIT13) UPDATE NEXT IOB */ 0164 00597000 */*%L: P (,EXIT13) CLEAR IOB FLAG THREE */ 0164 00598000 */*SENSE0: D (BIT5,EXIT12,BIT7,EXIT22,BIT3,ERR002,BIT6,SENSE1, 0164 00599000 */*BIT1,ERR003,BIT2,SENSE1,BIT4,SENSE1,BIT0,, 0164 00600000 */*NONE,EXIT12) INTERPRET SENSE BYTE ZERO */ 0164 00601000 */*SENSE1: D (BIT4,EXIT12,BIT5,EXIT12,BIT6,EXIT12, 0164 00602000 */*BIT7,EXIT12,BIT0,EXIT22,NONE,, 0164 00603000 */*BIT3,ERR013,BIT1,ERR033,NONE,EXIT12) INTERPRET SENSE BYTE ONE */ 00604000 */*EXIT12: P SET LOGOUT FLAG */ 0164 00605000 */*EXIT22: P SET ERR MSG FLAG */ 0164 00606000 */*EXIT32: R XCTL TO WTO */ 0164 00607000 */*ERR002: P (,ERR022) SET LOGOUT FLAG */ 0164 00608000 */*ERR012: D (YES,ERR022,NO,EXIT01) READ COMMAND */ 0164 00609000 */*ERR022: D (NO,,YES,ERR032) INTERCEPT */ 0164 00610000 */*D (NO,,YES,EXIT22) CCW ADDR ZERO OR NEG */ 0164 00611000 */*D (NO,,YES,EXIT32) READ CMD */ 0164 00612000 */*ERR032: P SET 7F CODE */ 0164 00613000 */*%J: D (YES,,NO,SENSE1) QSAM */ 0164 00614000 */*D (NO,,YES,EXIT22) PERMANENT ERROR M0825 */ 0164 00615000 */*D (YES,,NO,%A) AUTOMATIC RETRY M0825 */ 0164 00616000 */*D (NO,,YES,EXIT22) PREVIOUS RETRY M0825 */ 0164 00617000 */*P BUMP RETRY COUNT M0825 */ 0164 00618000 */*%A: P (,EXIT32) GET CORRECT IOB M0825 */ 0164 00619000 */*ERR001: D (YES,%D,NO,%E) PREVIOUS CCC */ 0164 00620000 */*ERR011: D (YES,%D,NO,%E) PREVIOUS ICC */ 0164 00621000 */*%D: P INCREMENT ERROR COUNT */ 0164 00622000 */*%E: P GET ERPIB */ 0164 00623000 */*ERR031: D (NO,,YES,ERR041,LAST,EXIT22) CORRECT ENTRY */ 0164 00624000 */*P (,ERR031) GET NEXT ENTRY */ 0164 00625000 */*ERR041: D (NO,,YES,ERR071) INTERCEPT */ 0164 00626000 */*D (NO,,YES,ERR071) SEQUENCE CODE 000 */ 0164 00627000 */*D (NO,,YES,ERR071) TIO */ 0164 00628000 */*D (NO,,YES,ERR061) SEQUENCE CODE 001 */ 0164 00629000 */*D (NO,,YES,ERR051) SEQUENCE CODE 010 */ 0164 00630000 */*D (NO,,YES,ERR061) SEQUENCE CODE 100 */ 0164 00631000 */*D (NO,,YES,ERR071) SEQUENCE CODE 110 */ 0164 00632000 */*D (NO,,YES,ERR051) SEQUENCE CODE 111 */ 0164 00633000 */*D (NO,,YES,ERR071) PL,RFSS, OR WFSS */ 0164 00634000 */*ERR051: D (NO,,YES,ERR071) FSS */ 0164 00635000 */*ERR061: D (NO,,YES,ERR071) CCW ADDR =< ZERO */ 0164 00636000 */*EXIT03: P (,EXIT13) CLEAR ERPIB */ 0164 00637000 */*ERR071: P (,EXIT22) CLEAR ERPIB */ 0164 00638000 */*ERR004: P CLEAR IOB ERR FLAG */ 0164 00639000 */*EXIT13: R EXIT TO IOS */ 0164 00640000 */*ERR003: D (YES,,NO,SENSE1) MECHANICAL MOTION */ 0164 00641000 */*P (,SENSE1) SET LOGOUT FLAG */ 0164 00642000 */*ERR013: P (,%B) RETRY AFTER INT REQ */ 0164 00643000 */*ERR033: P AUTOMATIC RETRY */ 0164 00644000 */*%B: R EXIT TO WTO */ 0164 00645000 */*IGE0001A: END */ 0164 00646000 *END ER3505; 0164 00647000 @EL00001 DS 0H 0164 00648000 @EF00001 DS 0H 0164 00649000 @ER00001 BR @14 0164 00650000 @DATA DS 0H 00651000 @CH00050 DC H'1' 00652000 @CH00088 DC H'8' 00653000 DS 0F 00654000 @TF00001 DS F 00655000 @ZTEMPS DS 0F 00656000 @ZT00001 DC F'0' 00657000 @ZT00002 DC F'0' 00658000 @ZTEMPND EQU * 00659000 @ZLEN EQU @ZTEMPND-@ZTEMPS 00660000 @TEMPS EQU @ZTEMPS 00661000 @L EQU @ZLEN 00662000 DS 0F 00663000 DS 0D 00664000 DS CL1 00665000 LOGOBR DC AL3(256) 00666000 DS CL1 00667000 WTORTN DC AL3(253) 00668000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 00669000 @01 EQU 01 00670000 @02 EQU 02 00671000 @03 EQU 03 00672000 @04 EQU 04 00673000 @05 EQU 05 00674000 @06 EQU 06 00675000 @07 EQU 07 00676000 @08 EQU 08 00677000 @09 EQU 09 00678000 @10 EQU 10 00679000 @11 EQU 11 00680000 @12 EQU 12 00681000 @13 EQU 13 00682000 @14 EQU 14 00683000 @15 EQU 15 00684000 @0 EQU 00 00685000 @1 EQU 01 00686000 @2 EQU 02 00687000 @3 EQU 03 00688000 @4 EQU 04 00689000 @5 EQU 05 00690000 @6 EQU 06 00691000 @7 EQU 07 00692000 @8 EQU 08 00693000 @9 EQU 09 00694000 @A EQU 10 00695000 @B EQU 11 00696000 @C EQU 12 00697000 @D EQU 13 00698000 @E EQU 14 00699000 @F EQU 15 00700000 TSTREG EQU @01 00701000 IOBREG EQU @02 00702000 CVTREG EQU @04 00703000 CCWREG EQU @05 00704000 BASEREG EQU @06 00705000 ERPIBRG EQU @07 00706000 ERRLNK EQU @09 00707000 IOBRG EQU @10 00708000 INTRPT EQU @12 00709000 XCTLPTR EQU @13 00710000 XCTLREG EQU @14 00711000 WRKREG EQU @03 00712000 CVTPTR EQU 16 00713000 RQE EQU 0 00714000 TSTUCB EQU RQE+2 00715000 TSTIOB EQU RQE+5 00716000 IOB EQU 0 00717000 IOBFL1 EQU IOB 00718000 IOBCP EQU IOBFL1 00719000 IOBERR EQU IOBFL1 00720000 IOBEX EQU IOBFL1 00721000 IOBSRS EQU IOBFL1 00722000 IOBFL2 EQU IOB+1 00723000 IOBQSM EQU IOBFL2 00724000 SNBYT1 EQU IOB+3 00725000 SN1BT0 EQU SNBYT1 00726000 SN1BT1 EQU SNBYT1 00727000 SN1BT2 EQU SNBYT1 00728000 IOBCOD EQU IOB+4 00729000 IOBECB EQU IOB+5 00730000 IOBFL3 EQU IOB+8 00731000 IOBART EQU IOBFL3 00732000 IOBENT EQU IOBFL3 00733000 IOBCCC EQU IOBFL3 00734000 IOBICC EQU IOBFL3 00735000 IOBPRT EQU IOBFL3 00736000 IOBMSG EQU IOBFL3 00737000 IOBLOG EQU IOBFL3 00738000 IOBCSW EQU IOB+9 00739000 CMDADR EQU IOBCSW 00740000 IOBCC EQU IOB+16 00741000 CCB0 EQU IOBCC 00742000 CCB1 EQU IOBCC 00743000 IOBRST EQU IOB+24 00744000 IOBECT EQU IOB+30 00745000 IOB2 EQU 0 00746000 ERPIB EQU 0 00747000 IBEND EQU ERPIB 00748000 IBUCB EQU ERPIB+1 00749000 IBPROG EQU ERPIB+4 00750000 IBFLAG EQU ERPIB+7 00751000 IBSEQ EQU IBFLAG 00752000 UCB EQU 0 00753000 UCBFL1 EQU UCB+6 00754000 CVT EQU 0 00755000 VECTXL EQU CVT+44 00756000 XLATE EQU CVT+68 00757000 IBPTR EQU CVT+116 00758000 COMMND EQU 0 00759000 CMDB6 EQU COMMND 00760000 CMDB7 EQU COMMND 00761000 WRKPTR EQU 0 00762000 XCTL EQU 0 00763000 XLTE EQU 0 00764000 * START UNREFERENCED COMPONENTS 00765000 CMDB5 EQU COMMND 00766000 CMDB4 EQU COMMND 00767000 CMDB3 EQU COMMND 00768000 CMDB2 EQU COMMND 00769000 CMDB1 EQU COMMND 00770000 CMDB0 EQU COMMND 00771000 VECSTB EQU CVT+112 00772000 @NM00018 EQU CVT+72 00773000 @NM00017 EQU CVT+48 00774000 @NM00016 EQU CVT 00775000 UCBSTI EQU UCB+8 00776000 @NM00015 EQU UCB+7 00777000 @NM00014 EQU UCBFL1 00778000 UCBITF EQU UCBFL1 00779000 UCBPST EQU UCBFL1 00780000 UCBNRY EQU UCBFL1 00781000 UCBBSY EQU UCBFL1 00782000 @NM00013 EQU UCB 00783000 @NM00012 EQU IBFLAG 00784000 IBTERM EQU IBFLAG 00785000 @NM00011 EQU ERPIB+5 00786000 IBTRY EQU IBPROG 00787000 @NM00010 EQU IBPROG 00788000 @NM00009 EQU IOB+28 00789000 IOBDCB EQU IOB+21 00790000 @NM00008 EQU IOB+20 00791000 IOBST EQU IOB+17 00792000 @NM00007 EQU IOBCC 00793000 @NM00006 EQU IOBCC 00794000 @NM00005 EQU IOBCSW+5 00795000 STBYT2 EQU IOBCSW+4 00796000 STBYT1 EQU IOBCSW+3 00797000 IOBQCT EQU IOBFL3 00798000 @NM00004 EQU SNBYT1 00799000 SN1BT3 EQU SNBYT1 00800000 SNBYT0 EQU IOB+2 00801000 @NM00003 EQU IOBFL2 00802000 @NM00002 EQU IOBFL1 00803000 @NM00001 EQU IOBFL1 00804000 TSTASSN EQU RQE+4 00805000 TSTLNK EQU RQE 00806000 * END UNREFERENCED COMPONENTS 00807000 @RT00013 EQU EXIT22 00808000 @RT00016 EQU STATUS 00809000 @RT00023 EQU STATUS 00810000 @RC00044 EQU ERR021 00811000 @RT00052 EQU ERR041 00812000 @RT00054 EQU EXIT22 00813000 @RT00060 EQU ERR071 00814000 @RT00062 EQU ERR071 00815000 @RT00064 EQU ERR071 00816000 @RT00066 EQU ERR071 00817000 @RT00068 EQU ERR061 00818000 @RT00070 EQU ERR051 00819000 @RT00072 EQU ERR061 00820000 @RT00074 EQU ERR071 00821000 @RT00076 EQU ERR051 00822000 @RT00080 EQU EXIT03 00823000 @RT00086 EQU ERR022 00824000 @RF00086 EQU EXIT01 00825000 @RT00089 EQU ERR032 00826000 @RT00091 EQU EXIT22 00827000 @RT00093 EQU SENSE1 00828000 @RT00098 EQU EXIT22 00829000 @RT00101 EQU EXIT22 00830000 @RF00096 EQU SENSE1 00831000 @RT00118 EQU EXIT32 00832000 @RT00121 EQU ERR023 00833000 @RT00123 EQU EXIT22 00834000 @RF00123 EQU EXIT32 00835000 @RT00129 EQU EXIT22 00836000 @RT00132 EQU EXIT13 00837000 @RC00143 EQU EXIT13 00838000 @EL01 EQU @EL00001 00839000 @ENDDATA EQU * 00840000 @DATEND EQU * 00841000 END ER3505,(C'PL/S-II',0402,74030) 00842000 ./ ADD SSI=06011939,NAME=IGE0001C,SOURCE=0 IEC1402A START X'00' 00020000 *A061500 @SA67574 00022800 *C061200,062200 @SA67574 00024800 *A060500-060560 @SA63702 00026400 *C050460-050484 @SA63702 00029200 *D058760-058780 @SA63702 00032000 *A062900,063700 SA65501 00034800 *A050220-050360,050500-050520 A56356 00037600 *D051200-051400,053400-053600,052600 A56356 00040400 *C051600,052400 A56356 00043200 *A050304 A63702 00046000 *D050400 A63702 00048800 *084049600,49800 7884 00051617 *0731056500 A35195 00054421 SPACE 2 00057200 * 2540 ERROR RECOVERY PROCEDURE 00060000 SPACE 2 00080000 * FUNCTION ANALYSE STATUS AND SENSE DATA AND ATTEMPT ERROR 00100000 * RECOVERY. IF THE ERROR IS CORRECTED,PROCEED IN A 00120000 * NORMAL MANNER. IF A PERMANENT ERROR IS DETECTED 00140000 * INDICATE IT TO THE USER BY A COMPLETION CODE IN THE 00160000 * ECB AND A MESSAGE ON THE SYSTEM CONSOLE. 00180000 * ENTRY: ER2540 FROM INTERRUPT SUPERVISOR 00200000 * INPUT REQUEST ELEMENT POINTER IN REGISTER 1 00220000 * OUTPUT NONE 00240000 * EXT REF NONE 00260000 * EXITS 1. ERRECXP EXIT TO I/O SUPERVISOR TO RE-EXECUTE 00280000 * THE CHANNEL PROGRAM IN ERROR. 00300000 * 2. SVC 3 EXIT TO RETURN CONTROL TO THE SUPERVISOR 00320000 * AND RELINQUISH CONTROL OVER THE TRANSIENT AREA 00340000 * 3. XCTL EXIT TO OUTBOARD RECORDING, STATISTICS UP- 00360000 * DATE OR WRITE TO OPERATOR. RETURN WILL BE MADE 00380000 * FROM THESE ROUTINES TO THE SUPERVISOR VIA SVC 3. 00400000 * ERR MSGS CONSOLE MESSAGES TO INDICATE ERROR CONDITIONS ARE 00420000 * 1. I/O ERR 00440000 * 2. INT REQ 00460000 * NOTES IOB EXCEPTION AND IOB ERROR FLAGS ARE INTERPRETED 00480000 * AS FOLLOWS 00500000 * IOBEX ON AND IOBERR ON, ERR RTNE IN CONTROL. 00520000 * IOBEX ON AND IOBERR OFF, PERMANENT ERROR. 00540000 * IOBEX OFF AND IOBERR OFF, NO ERR OR CORRECTED 00560000 * TABLES STATISTICS TABLE AND IOB 00580000 * OPERATION THIS ROUTINE CHECKS THE STATUS AND SENSE BYTES 00600000 * STORED IN THE UCB AND IOB AND TAKES ACTION AS 00620000 * SPECIFIED IN THE DEVICE STANDARDS. STATISTICS ARE 00640000 * KEPT AS TO THE KIND AND FREQUENCY OF ERRORS. THESE 00660000 * STATISTICS ARE USED BY THE CE TO ISOLATED AND 00680000 * RECOGNIZE ERRORS. 00700000 * A COMMON INTERPRETER ROUTINE IS USED TO CHECK BOTH 00720000 * STATUS AND SENSE. ON RETURN FROM THE INTERPRETER 00740000 * THE PROPER ACTION OF RETRY, RETURN OR WRITE A 00760000 * MESSAGE TO THE OPERATOR IS TAKEN. 00780000 EJECT 00800000 SPACE 2 00820000 SPACE 1 00840000 * IOB DEFINITION 00860000 IOBFL1 EQU 0 FLAGS 1 00880000 IOBFL2 EQU 1 FLAGS 2 00900000 IOBSNS EQU 2 SENSE DATA 00920000 IOBCOD EQU 4 ECB CODE 00940000 IOBCSW EQU 8 CSW STORAGE 00960000 IOBFL3 EQU 8 FLAGS 3 00980000 IOBCC EQU 16 CONDITION CODE 01000000 IOBST EQU 17 START ADDRESS 01020000 IOBDCB EQU 21 DCB POINTER 01040000 IOBMDB EQU 24 MODIFIER BYTE 01060000 IOBRST EQU 25 RESTART POINTER 01080000 IOBBCI EQU 28 BLOCK COUNT INCR. 01100000 IOBTPM EQU 29 T.P. EXTENT (M) BYTE 01120000 IOBECT EQU 30 ERROR COUNTS 01140000 IOBSK EQU 33 SEEK ADDRESS 01160000 IOBDAM EQU 32 DIRECT ACCESS EXTENT (M) BYTE 01180000 SPACE 2 01200000 * THESE FLAGS ARE IN IOB-FLAG 1 01220000 IOBCP1 EQU X'80' TYPE OF CHANNEL PROGRAM 01240000 IOBCP2 EQU X'40' TYPE OF CHANNEL PROGRAM 01260000 IOBERR EQU X'20' IOB ERROR FLAG 01280000 IOBEX EQU X'04' EXCEPT FLAG 01300000 IOBSRS EQU X'01' START/RESTART FLAG 01320000 IOBCEX EQU X'FF'-IOBEX CLEAR IOB EXCEPTION 01340000 IOBEXE EQU IOBEX+IOBERR EX + ERR FLAGS 01360000 IOBCXE EQU X'FF'-IOBEXE CLEAR EX + ERR FLAGS 01380000 * FLAGS IN IOB FLG. 2 01400000 IOBQSM EQU X'01' Q-SAM ACCCES METHOD 01420000 SPACE 2 01440000 * THESE FLAGS ARE IN IOB-FLAG 3 01460000 IOBIN1 EQU X'80' INDICATOR 1 01480000 IOBENT EQU X'40' IOB ENTRY BIT 01500000 IOBRDE EQU X'20' READ ERROR CNT. 01520000 IOBBOE EQU X'10' BUS OUT ERROR CNT 01540000 IOBPRT EQU X'08' PUNCH RETRY BIT 01560000 IOBMSG EQU X'04' MESSAGE TYPE 01580000 IOBPR2 EQU X'02' QSAM ERR. CNT. 01600000 IOBLOG EQU X'01' LOGOUT FLAG 01620000 SPACE 2 01640000 * UCB DEFINITION 01660000 UCBFL1 EQU 6 UCB FLAGS 01680000 UCBSTI EQU 9 STATISTICS POINTER 01700000 UCBNRY EQU X'40' UCB NOT READY 01720000 SPACE 2 01740000 * ECB DEFINITIONS 01760000 ECBFL EQU 0 FLAGS 01780000 SPACE 2 01800000 * DCB DEFINITION 01820000 DCBFL EQU 44 FLAGS 01840000 DCBBUF EQU 20 PTR TO NUMBER OF BUFFERS 01860000 DCBORG EQU 26 DCBDSORG 01880000 DCBMCF EQU 42 DCBMACRF 01900000 DCBSPA EQU X'80' SPECIAL ACCESS 01920000 DCBPER EQU X'C0' PERMANENT ERROR FLAGS 01940000 DCBEX EQU X'40' EXCEPTION CONDITION 01960000 DCBQSM EQU X'40' DCB QSAM BIT 01980000 PHYSEQ EQU X'40' DCB PHYSICAL SEQ 02000000 DCBCEX EQU X'FF'-DCBPER CLEAR DCB EXCEPTION 02020000 SPACE 2 02040000 * TWELVE STAR DEFINITION 02060000 TSTLNK EQU 0 FORWARD 12* LINK 02080000 TSTUCB EQU 2 UCB POINTER 02100000 TSTTCB EQU 4 TCB ID BYTE 02120000 TSTIOB EQU 5 IOB POINTER 02140000 TSTPR EQU 8 PRIORITY OF ENTRY 02160000 TSTDEB EQU 9 DEB POINTER 02180000 SPACE 2 02200000 * STATUS INDICATORS 02220000 CSWPCI EQU X'80' PCI 02240000 CSWSMD EQU X'40' STATUS MODIFIER 02260000 CSWIL EQU X'40' WRONG LENGTH IND. 02280000 CSWCUE EQU X'20' CONTROL UNIT END 02300000 CSWPC EQU X'20' PROGRAM CHECK 02320000 CSWBSY EQU X'10' BUSY 02340000 CSWPCK EQU X'10' PRTECTION CHECK 02360000 CSWCHE EQU X'08' CHANNEL END 02380000 CSWDVE EQU X'04' DEVICE END 02400000 CSWUCK EQU X'02' UNIT CHECK 02420000 CSWUEX EQU X'01' UNIT EXCEPTION 02440000 CSWCCK EQU X'01' CHAINING CHECK 02460000 CSWCDCK EQU X'08' CHANNEL DATA CHECK CCHA 02465016 CSWCCCK EQU X'04' CHANNEL CNTRL CHECK CCHA 02470016 CSWICCK EQU X'02' INTRFCE CNTRL CHECK CCHA 02475016 SPACE 2 02480000 * REGISTER DEFINITION 02500000 ERREG3 EQU 0 WORK REG 02520000 TSTREG EQU 1 TWELVE STAR REG 02540000 ERREG2 EQU 2 WORK REG 02560000 CRBREG EQU 3 CURRENT RB REG. 02580000 CCWREG EQU 4 CCW ADDRESS REG 02600000 ERPIBRG EQU 6 ERPIB PTR REG CCHA 02610016 UCBREG EQU 7 UCB ADDRESS REG 02620000 COMREG EQU 8 COMMUNICATION TABLE REG 02640000 SAVREG EQU 9 SAVE REG. 02660000 IOBRG EQU 10 IOB ADDRESS REG 02680000 ERREG4 EQU 11 WORK REG 02700000 ERRLNK EQU 12 LINK REG 02720000 ERREG1 EQU 13 WORK REG 02740000 ERRETR EQU 14 RETURN REG 02760000 BASREG EQU 15 BASE REGISTER 02780000 SPACE 2 02800000 * MISC. DEFINITIONS 02820000 ERRBLK EQU X'40' BLANK 02840000 INTREQ EQU X'40' INTERVENTION REQUIRED 02860000 CMDMD2 EQU X'20' COMMAND DATA MODE 2 02880000 ERRDCT EQU X'20' READ ERROR CNT. 02900000 IOBCC1 EQU X'10' CONDITION CODE OF SIO 02920000 IOSTUS EQU X'10' STATUS BIT 02940000 RDCNTL EQU X'06' READ SENSE OR CONTROL 02960000 IOCLBT EQU X'00' CLEAR BYTE 02980000 ANYPCH EQU IOBPRT+IOBPR2 BOTH PUNCH RETRY FLAGS 03000000 UCBLTS EQU 20 UCB LAST RQE FIELD CCHB 03005018 LTSZER EQU X'00' COMPARE FIELD-RQE FIELD ZERCCHB 03010018 UCBBSY EQU X'80' DEVICE BUSY FLAG CCHB 03015018 SPACE 1 03020000 RETURN EQU 3 RETURN VALUE 03040000 EXCPER EQU 15 03060000 LOC016 EQU 16 COMMUNICATION TABLE 03080000 VECTXL EQU 44 VECTOR TO XCTL RNT. 03100000 VECT68 EQU 68 INDEX TO INTERPRETER ROUTINE 03120000 VECT72 EQU 72 INDEX TO WRITE TO OPERATOR 03140000 STATAB EQU 112 INDEX TO STATISTICS TABLE 03160000 WTORTN EQU 253 LOAD NAME TO WTO RTN. 03180000 LOAD2 EQU 1013 LOAD NAME TO SECT. 2 03200000 IBPTR EQU 116 PTR TO PTR TO PTR TO ERPIB CCHA 03206016 ENDTBL EQU X'FF' END OF ERPIB TABLE CCHA 03212016 NXT EQU 2 NEXT CONTROL ENTRY 256D 03212418 TFTYSX EQU 256 INCREMENT STAT INDEX 256D 03212818 CHDACK EQU X'01' CHAN DATA CK BIT FOR STATABCCHS 03213218 VALBITS EQU 6 VALID IND BITS IN ERPIB CCHS 03213618 COMADVAL EQU X'04' COMMAND ADDRESS VALID CCHS 03214818 RDNCNTRL EQU X'C0' READ(WITHOUT CTRL) COMMAND CCHS 03215618 RETRCD EQU 7 RETRY CODE IN ERPIB CCHS 03216818 FOUR EQU X'04' RETRY CODE OF FOUR CCHS 03217218 ONE EQU X'01' ERROR COUNT OF ONE CCHS 03217618 READFEED EQU X'10' READ/FEED CMD CCHS 03218018 EQUIPCK EQU X'10' EQUIPMENT CHECK SENSE CCHS 03218418 INTRCPT EQU X'7E' INTERCEPT CONDITION CCHB 03218618 UNCNORTY EQU X'01' UNCONTITIONAL NO-RETRY FLG CCHB 03218818 PROGFLGS EQU 4 PROG FLAGS BYTE IN ERPIB CCHB 03219018 CSWSSIO EQU X'80' CSW STORED ON SIO INDICAT CCHB 03219218 NOP EQU X'03' NOP COMMAND CCHB 03219418 THREE EQU X'03' RETRY CODE OF THREE CCHB 03219618 ACPTUCS EQU X'80' ACCEPT UNUS CMD SEQ IND CCHB 03219818 EJECT 03220000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 03240000 * THIS IS ENTRY TO THE - 1 4 0 2 - ERROR ROUTINE 03260000 ********************************************************************* 03280000 * * 03300000 * WHEN ENTERED THE IOBEX AND THE IOBERR FLAGS WILL BE SET TO 1 BY * 03320000 * THE ERROR ROUTINE. * 03340000 * ON RETURN THESE TWO FLAGS SHOULD BE INTERPRETED AS FOLLOWS. * 03360000 * IOBEX ON AND IOBERR ON - IOB IN CONTROL BY THE ERROR ROUTINE.* 03380000 * IOBEX ON AND IOBERR OFF - PERMANENT ERROR * 03400000 * IOBEX OFF AND IOBERR OFF - ERROR CORRECTED * 03420000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 03440000 * RESTART PROCEDURES 03460000 * PUNCH ERRORS 03480000 * 03500000 * WHEN A CARD JAM OCCURS ON THE 1402/2540 PUNCH ANY ONE OR 03520000 * MORE OF FOUR CARDS MAY BE JAMMED. 03540000 * 1. THE CARD PASSING THE PUNCH CHECK STATION 03560000 * 2. THE CARD PASSING THE PUNCH STATION 03580000 * 3. THE CARD PASSING THE PUNCH FEED READ STATION 03600000 * 4. THE CARD ENTERING THE THROAT 03620000 * 03640000 * IN C A 03660000 * IN CASE 1 ABOVE, THE JAM WILL CAUSE A HOLE COUNT CHECK, 03680000 * AND ON RUN IN FOLLOWING THE CLEARING OF THE JAM THERE WILL BE 03700000 * NO AUTOMATIC REPUNCHING. ONLY IF THE QSAM ACCESS METHOD IS 03720000 * USED WILL THE ERROR ROUTINE ATTEMPT RECOVERY ON A PUNCH EQ CK. 03740000 * 03760000 * IN CASES 2,3 AND 4 THE CARD BEING CHECKED WILL NORMALLY 03780000 * CHECK AS CORRECT (NO EQUIPMENT CHECK). THE SENSE INFORMATION 03800000 * WILL INDICATE INTERVENTION REQUIRED. AFTER THE JAM IS CLEARED 03820000 * 3 CARDS SHOULD BE DISCARDED (2 BLANKS PLUS THE LAST CARD 03840000 * PUNCHED). RUN-IN FOLLOWING A CARD JAM WHICH IS NOT ACCOMPANIED 03860000 * BY AN EQUIPMENT CHECK WILL REPUNCH THE CARD WHICH WAS BEING 03880000 * PUNCHED WHEN THE JAM OCCURED UNLESS IT IS A PUNCH FEED READ OP 03900000 * 03920000 * IF THE EQUIPMENT CHECK IS NOT ACCOMPANIED BY AN INTER- 03940000 * VENTION REQUIRED THE CARD IN ERROR WILL AUTOMATICALLY BE STACK 03960000 * ED IN P1 POCKET. THE OPERATOR SHOULD RUN OUT THE CARDS BY 03980000 * DEPRESSING THE NPRO BUTTON. THE LAST 4 CARDS IN & 04000000 * DEPRESSING THE NPRO BUTTON. THE LAST 4 CARDS IN P1 POCKET 04020000 * SHOULD BE DISCARDED. THEN READY THE UNIT BY DEPRESSING THE 04040000 * START KEY, FEEDING THE FIRST CARD TO THE PREPUNCH STATION. 04060000 * 04080000 * IF THE EQUIPMENT CHECK IS ACCOMPANIED BY AN INTERVENTION 04100000 * REQUIRED, THE CARD IN ERROR IS JAMMED AT THE PUNCH CHECK 04120000 * STATION AND THE JAM HAS TO BE CLEARED BEFORE RUNNING OUT THE 04140000 * REMAINING CARDS. THE LAST 4 CARDS SHOULD BE DISCARDED. THE 04160000 * RESTART PROCEDURE WILLBE AS FOR EQUIPMENT CHECK ALONE. IF THE 04180000 * ERROR SHOULD OCCUR AGAIN, THE ERROR IS CONSIDERED TO BE 04200000 * UNRECOVERABLE. 04220000 * 04240000 * READ ERRORS 04260000 * 04280000 * DATA OR EQUIPMENT CHECK 04300000 * A. READ AND FEED AND STACKER SELECT 04320000 * 1. REMOVE THE CARDS FROM THE HOPPER 04340000 * 2. REMOVE THE LAST CARD FROM THE STACKER (DATA CHECK, 04360000 * EXAMINE AND CORRECT THIS CARD). 04380000 * 3. RUN THE CARDS OUT USING NON PROCESS RUN OUT 04400000 * 4. PLACE THE FOUR CARDS AT THE BEGINNING OF THE DECK 04420000 * 5. LOAD THE HOPPER AND READY THE UNIT 04440000 * 04460000 * B. READ NO FEED NO STACKER SELECT 04480000 * 1. REMOVE THE CARDS FROM THE HOPPER 04500000 * 2. RUN THE CARDS OUT USING NON PROCESS RUN OUT 04520000 * 3. EXAMINE AND CORRECT THE FIRST CARD RUN OUT (DATA CK.) 04540000 * 4. PLACE THE THREE CARDS AT THE BEGINNING OF THE DECK 04560000 * 5. LOAD THE HOPPER AND READY THE UNIT 04580000 * 04600000 * C. READ JAM 04620000 * 1. INTERVENTION REQUIRED WITHOUT EQUIPMENT OR DATA CHECK 04640000 * THE CARDS IN THE STACKERS OR PAST THE PRESTACKER 04660000 * STATION HAVE BEEN PROCESSED PROPERLY 04680000 * 2. JAM ACCOMPANIED BY EQUIPMENT OR DATA CHECK, CLEAR 04700000 * THE JAM AND FOLLOW PROCEDURE A ABOVE 04720000 EJECT 04740000 SPACE 1 04760000 USING ERR1402,15 04780000 ERR1402 L IOBRG,TSTIOB-1(TSTREG) GET ADDRESS OF IOB 04800000 LH UCBREG,TSTUCB(TSTREG) GET UCB ADDRESS 04820000 L COMREG,LOC016 ADDRESS OF COMMUNICATION TABLE 04840000 OI IOBFL1(IOBRG),IOBEXE SET IOB EX AND ERROR FLAG ON 04860000 SPACE 1 04880000 TM IOBFL1(IOBRG),IOBCP1+IOBCP2 TEST FOR MIXED CHANNEL PROGR 04900000 BC 1,ERR548 YES, SET MSG TYPE 04920000 SPACE 1 04940000 L CCWREG,IOBCSW(IOBRG) GET CCW ADDRESS 05000000 LA CCWREG,0(CCWREG) ZERO HIGH ORDER BYTE 05020000 L ERREG2,IOBMDB(IOBRG) GET OLD RESTART ADDR A56356 05022000 LTR CCWREG,CCWREG TEST FOR INVALID ADDR A56356 05034000 BC 12,ERR521 NO, CONTINUE TESTS A56356 05036000 SH CCWREG,ERRCN1 BACK UP ONE CCW @SA63702 05046000 TM IOBFL1(IOBRG),IOBCP2 TEST FOR CMD CHAINING @SA63702 05048000 BC 8,ERR524 NO, TEST FOR ICC/CCC @SA63702 05048400 OI IOBFL1(IOBRG),IOBSRS SET RESTART FLAG A56356 05050000 ST CCWREG,IOBMDB(IOBRG) SET RESTART ADDR A56356 05052000 TM IOBFL3(IOBRG),IOBPRT IS PUNCH RETRY FLAG ON 05060000 BC 1,ERR524 YES-TST CH/INTFCE CNTRL CK CCHA 05070016 SPACE 1 05080016 SPACE 1 05100000 ERR521 TM IOBFL3(IOBRG),IOBENT IS ENTRY BIT ON A56356 05160000 BC 8,ERR522 BR-IF NOT ON 05180000 NI IOBMDB(IOBRG),IOCLBT ZERO MODIFIER BYTE 05200000 * TEST IF ERROR OCCURED ON THE RESTARTED CCW 05220000 CR ERREG2,CCWREG CMPR CCW ADDR TO RESTART A56356 05240000 BC 8,ERR524 BR-CCW ADDR. IS EQUAL TO REST. 05280000 NI IOBFL3(IOBRG),X'FF'-IOBRDE-IOBBOE-IOBPRT CLEAR CNTRS 05300000 ERR522 OI IOBFL3(IOBRG),IOBENT SET ENTRY BIT 05320000 ERR524 TM IOBCSW+5(IOBRG),CSWCCCK+CSWICCK CHAN/INTFCE CNT CK CCHA 05368016 BC 4+1,ERR551 YES-FIND ERPIB 05376018 SPACE 1 05384016 TM IOBCSW+5(IOBRG),CSWCCK TEST IF CHAINING CHECK ON CCHA 05392016 BC 1,ERR546 BR-TO INDICATE LOG OUT 05400000 SPACE 2 05420000 TM IOBCSW+5(IOBRG),CSWCDCK CHANNEL DAT CHECK CCHS 05430018 BC 8,ERR525 NO-TEST IF UNIT CHECK CCHS 05440018 BAL ERRLNK,ERR526 GET STATAB ADDRESS CCHS 05450018 OI 9(ERREG2),CHDACK SET BIT IN STATISTICS TABLECCHS 05460018 ERR525 TM IOBCSW+4(IOBRG),CSWUCK TEST FOR UNIT CHECK CCHS 05470018 BC 8,ERR5CH NO-TEST FOR CHAN DAT CK CCHS 05480018 ERR525A LA ERRLNK,ERR527 SET RTNREG FR STATAB FIND CCHS 05490018 ERR526 L ERREG2,STATAB(COMREG) GET STATISTICS TABLE ADDR 256D 05500018 SR ERREG4,ERREG4 ZERO WORK REG 256D 05510018 IC ERREG4,UCBSTI(UCBREG) GET STATAB INDEX 256D 05520018 LR ERREG1,ERREG2 GET STATAB START ADDR 256D 05530018 ERRLOOP1 CH UCBREG,0(0,ERREG1) DEV SUPPORTED BY THIS SECT 256D 05540018 BC 4,ERRLOOP2 YES-INCR ADJUSTED CORRCTLY 256D 05550018 LA ERREG1,NXT(0,ERREG1) INCR TO NXT CTL SECTION 256D 05560018 LA ERREG4,TFTYSX(0,ERREG4) INCR STAT INDEX TO NXT SECT256D 05570018 BC 15,ERRLOOP1 LOOP TO CHECK THIS SECT 256D 05580018 SPACE 1 05590018 ERRLOOP2 MH ERREG4,ERRCN2 MULTIPLY BY 10 256D 05600018 AR ERREG2,ERREG4 ADD TO TABLE ADDRESS 256D 05610018 BCR 15,ERRLNK RETURN OR FALL THROUGH 256D 05620018 SPACE 1 05630018 ERR527 OC 8(1,ERREG2),IOBSNS(IOBRG) OR SENSE BYTE INTO TABLE 256D 05640018 NI 8(ERREG2),X'78' MASK OUT UNWANTED BITS A35195 05670021 SPACE 1 05700000 TM IOBSNS(IOBRG),X'05' TEST SHOULD NOT OCCUR SENSE 05720000 BC 5,ERR546 BR-TO INDICATE LOG OUT 05740000 SPACE 1 05760000 TM IOBSNS(IOBRG),X'10' TEST FOR EQUIPMENT CHECK 05780000 BC 1,ERR528 05800000 ERR540 LA ERREG1,LOAD2 GET LOAD NAME TO SECT. 2 05820000 L ERRETR,VECTXL(COMREG) 05840000 BCR 15,ERRETR 05860000 SPACE 1 05865016 ERR5CH TM IOBCSW+5(IOBRG),CSWCDCK CHANNEL DATA CHECK CCHA 05870016 BC 8,ERR540 NO-GET SECOND LOAD CCHA 05875016 SPACE 1 05900000 * EQUIPMENT CHECK OR CHANNEL DATA CHECK ON READ CMD CCHA 05920016 ERR528 CLI IOBCOD(IOBRG),X'7E' TEST IF IOB IS INTERCEPTED 05940000 BC 8,ERR529 YES, BYPASS COMMAND TEST 05960000 LTR CCWREG,CCWREG TEST IF CCW ADDR. IS 0 OR NEG. 05980000 BC 12,ERR546 BR ON YES TO PERM. ERROR 06000000 TM 0(CCWREG),RDCNTL TEST IF READ CMD. 06020000 BC 5,ERR531 BR- TO CHECK COUNT 06040000 TM IOBCSW+4(IOBRG),CSWUCK TEST FOR UNIT CHECK @SA63702 06050000 BC 8,ERR529 NO-EQUIP CHECK @SA63702 06052000 XC IOBCSW+4(2,IOBRG),IOBCSW(IOBRG) CLEAR STATUS @SA63702 06054000 BC 15,ERR540 GO TO SECOND LOAD @SA63702 06056000 ERR529 MVI IOBCOD(IOBRG),X'7F' SET CODE TO NORMAL 06060000 TM IOBFL2(IOBRG),IOBQSM IS THIS QSAM 06080000 BC 12,ERR532 BR-ON NO TEST INTERV. REQ. 06100000 TM IOBFL3(IOBRG),IOBPR2+IOBPRT IS ERR. CNT. 1 @SA67574 06120000 BC 1,ERR546 BR ON YES TO LOG OUT 9656 06140015 BC 4,ERR550 MIX = ERR DURING ERP @SA67574 06150000 SPACE 1 06160000 * THE FOLLOWING IS TO HANDLE QSAM WITH 3 OR MORE IOBS 06180000 SPACE 1 06200000 OI IOBFL3(IOBRG),IOBPR2+IOBPRT SET QSAM ERR COUNT @SA67574 06220000 NI IOBFL1(IOBRG),X'FF'-IOBSRS RESET RESTART FLAG 9656 06230015 L IOBRG,IOBCOD(IOBRG) GET ECB PTR TO QSAM EXTENSION 06240000 LA IOBRG,4(IOBRG) ADJUST ADDR TO IOB IN ERROR 06260000 OI IOBFL3(IOBRG),IOBPRT SET PUNCH RETRY 06280000 MVI IOBCOD(IOBRG),X'7F' SET CODE TO NORMAL SA65501 06290000 LR ERREG2,IOBRG PUT ERROR IOB IN WORKREG 06300000 SH ERREG2,ERRCN1 GET QSAM LINK FIELD 06320000 L ERREG2,0(ERREG2) GET NEXT IOB EXT ADDR 06340000 OI IOBFL3+8(ERREG2),IOBPRT SET PUNCH RETRY IN NEXT IOB 06360000 MVI IOBCOD+8(ERREG2),X'7F' SET CODE TO NORMAL SA65501 06370000 OI IOBFL1(IOBRG),IOBEXE SET IOB EX AND ERR FLAGS 06380000 IC ERREG4,TSTTCB(TSTREG) SAVE TCB ID 06400000 ST IOBRG,TSTTCB(TSTREG) STORE IOB ADDRESS IN 12 * 06420000 STC ERREG4,TSTTCB(TSTREG) RESTORE TCB ID 06440000 BC 15,ERR550 GET WTO RTN. 06460000 SPACE 1 06480000 ERR531 TM IOBECT+1(IOBRG),X'05' IS RETRY COUNT 5? 06500000 BC 1,ERR53A YES-PERM. ERROR 06520000 LH ERREG1,IOBECT(IOBRG) GET CURRENT ERROR COUNT 06540000 LA ERREG1,1(ERREG1) INCREMENT COUNT 06560000 STH ERREG1,IOBECT(IOBRG) 06580000 BC 15,ERR550 BR- TO GET WTO 06600000 SPACE 1 06620000 ERR53A MVI IOBECT+1(IOBRG),X'00' CLEAR IOB ERROR COUNT 06640000 BC 15,ERR546 TO WTO RTN 06660000 SPACE 1 06661016 ERR551 L ERPIBRG,IBPTR(COMREG) PTR TO PTR TO PTR TO ERPIB 06662018 L ERPIBRG,0(ERPIBRG) PTR TO PTR TO ERPIB CCHA 06663016 L ERPIBRG,0(ERPIBRG) PTR TO ERPIB CCHA 06666016 ERCMPR CH UCBREG,2(ERPIBRG) IS THIS ERPIB FOR CARD 2540CCHA 06667016 BC 8,ERR552 YES-CHECK FOR POSSIBLE RETRCCHS 06668018 SPACE 1 06669016 LA ERPIBRG,8(ERPIBRG) ADDR OF NEXT ERPIB CCHA 06670016 TM 0(ERPIBRG),ENDTBL END OF ERPIB TABLE CCHA 06671018 BC 8+4,ERCMPR NO-TEST NEXT ERPIB CCHS 06672018 SPACE 1 06673016 BC 1,ERR546 YES-LOG OUT CCHA 06674016 SPACE 1 06675016 ERZERO XC 0(8,ERPIBRG),0(ERPIBRG) ZERO ERPIB CCHA 06676016 BC 15,ERR546 INDICATE LOG OUT CCHA 06677016 SPACE 1 06680000 ERR532 TM IOBSNS(IOBRG),INTREQ TEST FOR INTERV. REQ. 06700000 BC 1,ERR550 BR-ON YES 06720000 ERR546 OI IOBFL3(IOBRG),IOBLOG SET LOGOUT FLAG 06740000 ERR548 OI IOBFL3(IOBRG),IOBMSG SET MESSAGE TYPE TO 1 06760000 ERR550 LA ERREG1,WTORTN GET LOAD NAME TO WTO RTN. 06780000 L ERRETR,VECTXL(COMREG) GET ADDR. TO XCTL RTN. 06800000 BCR 15,ERRETR XCTL TO WTO RTN. 06820000 SPACE 1 06820518 * CHANNEL OR INTERFACE CONTROL CHECK 06821018 SPACE 1 06821518 ERR552 CLI IOBCOD(IOBRG),INTRCPT IS IOB INTERCEPTED CCHB 06821818 BC 8,ERZERO YES-PERM ERROR CCHB 06822118 TM PROGFLGS(ERPIBRG),UNCNORTY NO RETRY FLAG SET CCHB 06822418 BC 1,ERZERO YES-PERM ERROR CCHB 06822718 TM 0(CCWREG),RDNCNTRL READ WITHOUT CNTRL CMD CCHB 06823018 BC 8+4,ERR553 NO-TEST IF CSW STORED ON SIOCHB 06823318 TM 0(CCWREG),READFEED READ FEED COMMAND CCHB 06823618 BC 1,ERR553 YES-TEST IF CSW STORED CCHB 06823918 TM IOBECT+1(IOBRG),ONE SECOND OCCURRENCE CCHB 06824218 BC 1,ERZERO YES-PERM ERROR CCHB 06824518 SPACE 1 06824818 * UNUSUAL CMD SEQ SENSE WILL RESULT FROM RETRYING A READ CCHB 06825118 * WITH NO CNTRL. THE NEXT INSTRUCTION SETS A FLAG IN CCHB 06825418 * IOBECT TO TELL THE SECOND LOAD TO ACCEPT UNUSUAL CMD SEQ CCHB 06825718 * AFTER CHANNEL ERROR. CCHB 06826018 SPACE 1 06826318 OI IOBECT+1(IOBRG),ACPTUCS SET UP TO ACCEPT UCS CCHB 06826618 BC 15,ERR557 BR TO SET ERR COUNT 06826918 SPACE 1 06827218 ERR553 TM PROGFLGS(ERPIBRG),CSWSSIO CSW STORED ON SIO CCHB 06827518 BC 1,ERR556 YES-TEST ERROR COUNT CCHB 06827818 TM VALBITS(ERPIBRG),COMADVAL COMMAND ADDRESS VALID CCHB 06828118 BC 8,ERZERO NO-ZERO ERPIB/PERM ERR CCHB 06828418 CLI 0(CCWREG),NOP NOP COMMAND CCHB 06828718 BC 8,ERR556 YES-TEST ERROR COUNT CCHB 06829018 TM RETRCD(ERPIBRG),FOUR RETRY CODE OF FOUR CCHB 06829318 BC 8,ERR560 NO-TEST RETRY CODE OF THREECCHB 06829618 TM RETRCD(ERPIBRG),THREE RETRY CODE OF FOUR ALONE CCHB 06829918 BC 4+1,ERZERO NO-PERMANENT ERROR CCHB 06830218 ERR556 TM IOBECT+1(IOBRG),ONE HAS THIS BEEN RETRIED CCHB 06830518 BC 1,ERZERO YES-ZERO ERPIB/GO TO WTO CCHB 06830818 ERR557 OI IOBECT+1(IOBRG),ONE SET ERROR FLAG CCHB 06831118 XC 0(8,ERPIBRG),0(ERPIBRG) ZERO ERPIB CCHB 06831418 SVC EXCPER ERREXCP CCHB 06831718 SVC RETURN RETURN CCHB 06832018 SPACE 1 06832318 ERR560 TM RETRCD(ERPIBRG),THREE RETRY CODE TEST CCHB 06832618 BC 8,ERZERO ZERO-ZERO ERPIB/PERM ERR CCHB 06832918 BC 1,ERR563 THREE-TEST UCBLTS FIELD CCHB 06833218 TM RETRCD(ERPIBRG),ONE RETRY CODE OF ONE CCHB 06833518 BC 1,ERR556 YES-RETRY CCHB 06833818 BC 15,ERZERO NO-PERMANENT ERROR CCHB 06833918 SPACE 1 06834018 ERR563 CLI UCBLTS(UCBREG),LTSZER FIRST BYTE UCBLTS ZERO CCHB 06834118 BC 8,ERR564 YES-RESTORE UCBLTS CCHB 06834218 OI UCBFL1(UCBREG),UCBBSY SET BUSY FLAG IN UCB CCHB 06834318 BC 15,ERR565 ZERO ERPIB CCHB 06834418 SPACE 1 06834518 ERR564 STH TSTREG,UCBLTS(UCBREG) RESTORE LAST RQE POINTER CCHB 06834618 ERR565 XC 0(8,ERPIBRG),0(ERPIBRG) ZERO THE ERPIB CCHB 06834718 TM IOBECT+1(IOBRG),ONE ERROR COUNT EQUAL TO ONE CCHB 06834818 BC 1,ERR546 YES-PELRMANENT ERROR CCHB 06834918 OI IOBECT+1(IOBRG),ONE SET ERROR COUNT TO ONE CCHB 06835018 BC 15,ERR550 ISSUE INT REQ MESSAGE CCHB 06835118 SPACE 1 06835218 SPACE 1 06836218 SPACE 1 06838518 SPACE 1 06840000 DS 0H 06860000 ERRCN1 DC AL2(8) DECIMAL 8 06880000 ERRCN2 DC AL2(10) MULTIPLIER CONSTANT 06900000 ORG IEC1402A+1024-16 06902000 LABEL DC C'IGE0001C OS/21.8' MODULE ID 06910000 END 06920000 ./ ADD SSI=02010925,NAME=IGE0002{,SOURCE=0 IEC2671A START X'00' 00020000 *084135000,35200,53000,53200,53400 7884 00030017 *43100,43200,43300,50200,50400 8655 00040017 SPACE 2 00060000 * 2671 ERROR RECOVERY PROCEDURE 00080000 SPACE 1 00100000 * FUNCTION ANALYSE STATUS AND SENSE DATA AND ATTEMPT ERROR 00120000 * RECOVERY. IF THE ERROR IS CORRECTED,PROCEED IN A 00140000 * NORMAL MANNER. IF A PERMANENT ERROR IS DETECTED 00160000 * INDICATE IT TO THE USER BY A COMPLETION CODE IN THE 00180000 * ECB AND A MESSAGE ON THE SYSTEM CONSOLE. 00200000 * ENTRY: ER2671 FROM INTERRUPT SUPERVISOR 00220000 * INPUT REQUEST ELEMENT POINTER IN REGISTER 1 00240000 * OUTPUT NONE 00260000 * EXT REF NONE 00280000 * EXITS 1. ERRECXP EXIT TO I/O SUPERVISOR TO RE-EXECUTE 00300000 * THE CHANNEL PROGRAM IN ERROR. 00320000 * 2. SVC 3 EXIT TO RETURN CONTROL TO THE SUPERVISOR 00340000 * AND RELINQUISH CONTROL OVER THE TRANSIENT AREA 00360000 * 3. XCTL EXIT TO OUTBOARD RECORDING, STATISTICS UP- 00380000 * DATE OR WRITE TO OPERATOR. RETURN WILL BE MADE 00400000 * FROM THESE ROUTINES TO THE SUPERVISOR VIA SVC 3. 00420000 * ERR MSGS CONSOLE MESSAGES TO INDICATE ERROR CONDITIONS ARE 00440000 * 1. I/O ERR 00460000 * 2. INT REQ 00480000 * NOTES IOB EXCEPTION AND IOB ERROR FLAGS ARE INTERPRETED 00500000 * AS FOLLOWS 00520000 * IOBEX ON AND IOBERR ON, ERR RTNE IN CONTROL. 00540000 * IOBEX ON AND IOBERR OFF, PERMANENT ERROR. 00560000 * IOBEX OFF AND IOBERR OFF, NO ERR OR CORRECTED 00580000 * TABLES STATISTICS TABLE AND IOB 00600000 * OPERATION THIS ROUTINE CHECKS THE STATUS AND SENSE BYTES 00620000 * STORED IN THE UCB AND IOB AND TAKES ACTION AS 00640000 * SPECIFIED IN THE DEVICE STANDARDS. STATISTICS ARE 00660000 * KEPT AS TO THE KIND AND FREQUENCY OF ERRORS. THESE 00680000 * STATISTICS ARE USED BY THE CE TO ISOLATED AND 00700000 * RECOGNIZE ERRORS. 00720000 * A COMMON INTERPRETER ROUTINE IS USED TO CHECK BOTH 00740000 * STATUS AND SENSE. ON RETURN FROM THE INTERPRETER 00760000 * THE PROPER ACTION OF RETRY, RETURN OR WRITE A 00780000 * MESSAGE TO THE OPERATOR IS TAKEN. 00800000 EJECT 00820000 * TITLE ' INPUT OUTPUT CONTROL BLOCK (IOB) ' 00840000 SPACE 2 00860000 * ***************************************** 00880000 * * * * * * * 00900000 * 0 *FLG1*FLG2* SENSE *ECB * ECB PTR * 00920000 * * * * *CODE* * 00940000 * ***************************************** 00960000 * * * 00980000 * 8 * CHANNEL STATUS WORD * 01000000 * * * 01020000 * ***************************************** 01040000 * * * * * * 01060000 * 16 * CC * START *WGHT* DCB PTR * 01080000 * * * * * * 01100000 * ***************************************** 01120000 * * * * * * 01140000 * 24 *MODF* RESTART * INCR (2)* ERR CNTS* 01160000 * * * * *TP 1* * 01180000 * ***************************************** 01200000 * * * 01220000 * 32 * M * B * B * C * C * H * H * R * 01240000 * * * 01260000 * ***************************************** 01280000 SPACE 2 01300000 * IOB DEFINITION 01320000 SPACE 1 01340000 IOBFL1 EQU 0 FLAGS 1 01360000 IOBFL2 EQU 1 FLAGS 2 01380000 IOBSNS EQU 2 SENSE DATA 01400000 IOBCOD EQU 4 ECB CODE 01420000 IOBFL3 EQU 8 IOB FLAG NO 3 01440000 IOBCSW EQU 8 CSW STORAGE 01460000 IOBCC EQU 16 CONDITION CODE 01480000 IOBST EQU 17 START ADDRESS 01500000 IOBDCB EQU 21 DCB POINTER 01520000 IOBMDB EQU 24 MODIFIER BYTE 01540000 IOBRST EQU 25 RESTART POINTER 01560000 IOBBCI EQU 28 BLOCK COUNT INCR. 01580000 IOBTPM EQU 29 T.P. EXTENT (M) BYTE 01600000 IOBECT EQU 30 ERROR COUNTS 01620000 SPACE 2 01640000 * THESE FLAGS ARE IN IOB FLAG 1 01660000 IOBCP1 EQU X'80' TYPE OF CHANNEL PROGRAM 01680000 IOBCP2 EQU X'40' TYPE OF CHANNEL PROGRAM 01700000 IOBERR EQU X'20' IOB ERROR FLAG 01720000 IOBMD1 EQU X'10' MOD1 FLAG - POSITIONING 01740000 IOBMD2 EQU X'08' MOD 2 FLAG - CRC 01760000 IOBEX EQU X'04' EXCEPT FLAG 01780000 IOBSRS EQU X'01' START/RESTART FLAG 01800000 IOBEXE EQU IOBEX+IOBERR IOB EX + IOB ERROR FLAG 01820000 SPACE 2 01840000 * THESE FLAGS ARE IN IOB FLAG 2 01860000 IOBHLT EQU X'80' HALT I/O ISSUED FLAG 01880000 SPACE 2 01900000 * THESE FLAGS ARE IN IOB FLAG 3 01920000 IOBENT EQU X'80' ENTRY FLAG 8655 01930017 ECKCNT EQU X'60' EQUIPMENT CHECK MAX. COUNT 01940000 IOBBOE EQU X'10' BUS OUT ERROR CNT 01960000 IOBMSG EQU X'04' MESSAGE TYPE 01980000 IOBLOG EQU X'01' LOGOUT FLAG 02000000 SPACE 2 02020000 * REGISTER DEFINITIONS 02040000 ERREG3 EQU 0 WORK REG 3 02060000 TSTREG EQU 1 TWELVE STAR REG 02080000 ERREG2 EQU 2 WORK REG. 02100000 CRBREG EQU 3 CURRENT RB REG. 02120000 CCWREG EQU 4 CCW ADDRESS REG 02140000 ERPIBRG EQU 6 ERPIB PTR REG CCHA 02150016 UCBREG EQU 7 UCB ADDRESS REG 02160000 COMREG EQU 8 COMMUNICATION TABLE REG 02180000 SAVREG EQU 9 SAVE REG. 02200000 IOBRG EQU 10 IOB ADDRESS REG 02220000 ERREG4 EQU 11 WORK REG 02240000 ERRLNK EQU 12 LINK REG 02260000 ERREG1 EQU 13 WORK REG 1 02280000 ERRETR EQU 14 RETURN REG 02300000 BASREG EQU 15 BASE REG. 02320000 SPACE 2 02340000 * TWELVE STAR DEFINITION 02360000 TSTLNK EQU 0 FORWARD 12* LINK 02380000 TSTUCB EQU 2 UCB POINTER 02400000 TSTIOB EQU 5 IOB POINTER 02420000 TSTDEB EQU 9 DEB POINTER 02440000 SPACE 2 02460000 * ECB DEFINITIONS 02480000 ECBFL EQU 0 FLAGS 02500000 SPACE 2 02520000 * DCB DEFINITION 02540000 DCBFL EQU 44 FLAGS 02560000 DCBPER EQU X'C0' PERMANENT ERROR FLAGS 02580000 DCBEX EQU X'40' EXCEPTION CONDITION 02600000 SPACE 2 02620000 * UCB DEFINITION 02640000 UCBFL1 EQU 6 UCB FLAG 02660000 UCBSTI EQU 9 STATISTIC POINTER 02680000 UCBNRY EQU X'40' UCB NOT READY 02700000 SPACE 2 02720000 * STATUS INDICATORS 02740000 CSWCHE EQU X'08' CHANNEL END 02760000 CSWUCK EQU X'02' UNIT CHECK 02780000 CSWUEX EQU X'01' UNIT EXCEPTION 02800000 CSWCCK EQU X'01' CHAINING CHECK 02820000 CSWCDCK EQU X'08' CHANNEL DATA CHECK CCHA 02825016 CSWCCCK EQU X'04' CHANNEL CNTRL CHECK CCHA 02830016 CSWICCK EQU X'02' INTRFCE CNTRL CHECK CCHA 02835016 SPACE 2 02840000 * MISC. DEFINITIONS 02860000 ERRBLK EQU X'40' BLANK 02880000 EIOBIN EQU X'20' BINARY MODE 02900000 IOSTUS EQU X'10' STATUS BIT 02920000 IOBCC1 EQU X'10' CONDITION CODE OF SIO 02940000 IOCLBT EQU X'00' CLEAR BYTE 02960000 SPACE 2 02980000 EXCPER EQU 15 ERROR EXCP 03000000 LOC016 EQU 16 COMMUNICATION TABLE 03020000 VECTXL EQU 44 XCTL INDEX 03040000 VECT68 EQU 68 INTERPRETER ROUTINE 03060000 VECT72 EQU 72 WRITE TO OPERATOR ROUTINE 03080000 STATAB EQU 112 STATISTIC TABLE INDEX 03100000 WTORTN EQU 253 LOAD NAME TO WTO RTN. 03120000 STATUP EQU 254 STATISTIC UPDATE INDEX 03140000 IBPTR EQU 116 PTR TO PTR TO PTR TO ERPIB CCHA 03146016 ENDTBL EQU X'FF' END OF ERPIB TABLE CCHA 03152016 NXT EQU 2 NEXT CONTROL ENTRY 256D 03154018 TFTYSX EQU 256 INCREMENT STAT INDEX 256D 03156018 EJECT 03160000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 03180000 * ENTRY TO THE - 2 6 7 1 - ERROR RECOVERY ROUTINE * 03200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 03220000 * INTERPRETATION OF THE IOBEX AND IOBERR FLAGS IS AS FOLLOWS * 03240000 * IOBEX ON IOBERR ON ERROR ROUTINE HAS CONTROL * 03260000 * IOBEX ON IOBERR OFF PERMANENT ERROR * 03280000 * IOBEX OFF IOBERR OFF ERROR CORRECTED * 03300000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 03320000 SPACE 1 03340000 USING ER2671,15 03360000 ER2671 L IOBRG,TSTIOB-1(TSTREG) GET ADDRESS OF IOB 03380000 LH UCBREG,TSTUCB(TSTREG) GET ADDRESS OF UCB 03400000 L COMREG,LOC016 GET ADDRESS OF COMM. TABLE 03420000 OI IOBFL1(IOBRG),IOBEXE SET IOB EX AND ERR FLAGS ON 03440000 TM IOBFL1(IOBRG),IOBCP2 TEST FOR COMMAND CHAIN 03460000 BC 8,ERR601 NO-CHECK CH/INTFCE CNTL CK CCHA 03480016 L CCWREG,IOBCSW(IOBRG) GET ADDRESS OF CCW 03540000 LA CCWREG,0(CCWREG) CLEAR HIGH ORDER BYTE 03560000 SH CCWREG,ERRCN1 GO BACK ONE CCW 03580000 ST CCWREG,IOBMDB(IOBRG) PUT CCW ADDRESS INTO RESTART 03600000 OI IOBFL1(IOBRG),IOBSRS SET RESTART FALG 03620000 ERR601 TM IOBCSW+5(IOBRG),CSWCCCK+CSWICCK CH/INTFCE CNTL CK CCHA 03628016 BC 4+2+1,ERZERIB YES-ZERO ERPIB CCHA 03636016 SPACE 1 03644016 TM IOBCSW+5(IOBRG),CSWCCK TEST IF CHAINING CK IS ON CCHA 03652016 BC 1,ERR611 YES, INDICATE LOGOUT 03660000 TM IOBCSW+4(IOBRG),CSWUCK TEST FOR UNIT CHECK 03680000 BC 8,ERR615 NO, CHECK STATUS INFORMTION 03700000 SPACE 1 03720000 * INFORMATION FOR STATISTICS IS OBTAINED FROM SENSE BYTE 0 03740000 * AND IS STORED IN THE WORK AREA OF THE STATISTIC TABLE 03760000 SPACE 1 03780000 L ERREG2,STATAB(COMREG) GET STATISTIC TABLE ADDRESS 03800000 SR ERREG4,ERREG4 03808018 IC ERREG4,UCBSTI(UCBREG) GET STAT. TAB INDEX 256D 03816018 LR ERREG1,ERREG2 GET STAT. TAB START ADR 256D 03824018 ERRLOOP1 CH UCBREG,0(0,ERREG1) DEV SUPPORTED BY THIS SECT 256D 03832018 BC 4,ERRLOOP2 YES,INCR ADJUSTED CORRECTLY 256D 03840018 LA ERREG1,NXT(0,ERREG1) INCR TO NXT CTL SECTION 256D 03848018 LA ERREG4,TFTYSX(0,ERREG4) INCR STAT INDEX TO NXT SECT256D 03856018 BC 15,ERRLOOP1 LOOP TO CHECK THIS SECT 256D 03864018 SPACE 1 03872018 ERRLOOP2 MH ERREG4,ERRCN2 MULTIPLY BY 10 256D 03880018 AR ERREG2,ERREG4 ADD TO TABLE ADDRESS 256D 03888018 OC 8(1,ERREG2),IOBSNS(IOBRG) OR SENSE BYTE INTO TABLE 03900000 NI 8(ERREG2),X'78' MASK OUT UNWANTED BITS 03920000 SPACE 1 03940000 * LINK TO THE INTERPRETER ROUTINE - THE BYTES FOLLOWING THE BALR 03960000 * INDICATE IN WHAT ORDER THE BITS ARE TO BE TESTED (BIT 3 ON OF 03980000 * THE CODE BYTE INDICATES STATUS) FOLLOWED BY AN INDEX VALUE THE 04000000 * INTERPRETER USES TO RETURN TO THIS ROUTINE 04020000 SPACE 1 04040000 LR SAVREG,BASREG SAVE BASE ADDRESS 04060000 L BASREG,VECT68(COMREG) GET ADDRESS OF INTERPRETER RTN. 04080000 ERR604 BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 04100000 SPACE 1 04120000 DC X'05' SHOULD NOT OCCUR 04140000 DC AL1(ERR611-ERR604-2) 04160000 DC X'06' SHOULD NOT OCCUR 04180000 DC AL1(ERR611-ERR604-4) 04200000 DC X'07' SHOULD NOT OCCUR 04220000 DC AL1(ERR611-ERR604-6) 04240000 DC X'03' EQUIPMENT CHECK A30855 04260019 DC AL1(ERR611-ERR604-8) A30855 04280019 DC X'01' INTERVENTION REQUIRED A30855 04300019 DC AL1(ERR608-ERR604-10) A30855 04320019 DC X'02' BUSOUT CHECK 04340000 DC AL1(ERR609-ERR604-12) 04360000 DC X'04' DATA CHECK 04380000 DC AL1(ERR611-ERR604-14) 04400000 DC X'00' COMMAND REJECT 04420000 DC AL1(ERR612-ERR604-16) 04440000 DC X'2F' END OF TEST 04460000 DC AL1(ERR611-ERR604-18) 04480000 SPACE 1 04484017 * INTERVENTION REQUIRED 8655 04488017 ERR608 OI IOBFL3(IOBRG),IOBENT SET ENTRY FLAG 8655 04492017 BC 15,ERR613 8655 04496017 SPACE 1 04500000 * BUSOUT CHECK 04520000 ERR609 TM IOBFL3(IOBRG),IOBBOE TEST IF BUSOUT FLAG IS ON 04540000 BC 1,ERR611 YES, SET LOGOUT 04560000 OI IOBFL3(IOBRG),IOBBOE SET BUSOUT FLAG 04580000 OI IOBFL3(IOBRG),IOBENT SET ENTRY FLAG 8655 04590017 SVC EXCPER ERROR EXCP 04600000 SVC 3 RETURN 04620000 SPACE 1 04621016 ERZERIB L ERPIBRG,IBPTR(COMREG) PTR TO PTR TO PTR TO ERPIB CHAA 04622016 L ERPIBRG,0(ERPIBRG) PTR TO PTR TO ERPIB CCHA 04623016 LTR ERPIBRG,ERPIBRG CCH IN SYSTEM CCHA 04624016 BC 8,ERR611 NO-LOG OUT CCHA 04625016 L ERPIBRG,0(ERPIBRG) PTR TO ERPIB CCHA 04626016 ERCMPR CH UCBREG,2(ERPIBRG) IS THIS ERPIB FOR PAP TP RDCCHA 04627016 BC 8,ERZERO YES-ZERO ERPIB CCHA 04628016 SPACE 1 04629016 LA ERPIBRG,8(ERPIBRG) ADDR OF NEXT ERPIB CCHA 04630016 TM ERPIBRG,ENDTBL END OF ERPIB TABLE CCHA 04631016 BC 8+4+2,ERCMPR NO-TEST NEXT ERPIB CCHA 04632016 SPACE 1 04633016 BC 1,ERR611 YES-LOG OUT CCHA 04634016 SPACE 1 04635016 ERZERO XC 0(8,ERPIBRG),0(ERPIBRG) ZERO ERPIB CCHA 04636016 SPACE 1 04640000 ERR611 OI IOBFL3(IOBRG),IOBLOG SET LOGOUT FLAG 04660000 ERR612 OI IOBFL3(IOBRG),IOBMSG SET MSG TYPE FLAG 04680000 ERR613 LA ERREG1,WTORTN GET LOAD NAME TO WTO RTN. 04700000 L ERRETR,VECTXL(COMREG) GET ADDR. TO XCTL RTN. 04720000 BCR 15,ERRETR XCTL TO WTO RTN. 04740000 SPACE 1 04760000 * LINK TO THE INTERPRETER ROUTINE - THE BYTES FOLLOWING THE BALR 04780000 * INDICATE IN WHAT ORDER THE BITS ARE TO BE TESTED (BIT 3 ON OF 04800000 * THE CODE BYTE INDICATES STATUS) FOLLOWED BY AN INDEX VALUE THE 04820000 * INTERPRETER USES TO RETURN TO THIS ROUTINE 04840000 SPACE 1 04860000 ERR615 LR SAVREG,BASREG SAVE BASE ADDRESS 04880000 L BASREG,VECT68(COMREG) GET ADDRESS TO INTERP. ROUTINE 04900000 ERR616 BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 04920000 SPACE 1 04940000 DC X'1C' CHANNEL DATA CHECK CCHA 04950016 DC AL1(ERR625-ERR616-2) CCHA 04960016 DC X'1A' PROGRAM CHECK CCHA 04970016 DC AL1(ERR618-ERR616-4) CCHA 04980016 DC X'1B' PROTECTION CHECK CCHA 04990016 DC AL1(ERR618-ERR616-6) CCHA 05000016 DC X'17' UNIT EXCEPTION CCHA 05010016 DC AL1(ERR619-ERR616-8) 8655 05020017 DC X'19' INCORRECT LENGTH CCHA 05030016 DC AL1(ERR619-ERR616-10) 8655 05040017 DC X'2F' END OF TEST CCHA 05050016 DC AL1(ERR620-ERR616-12) CCHA 05060016 SPACE 1 05070016 SPACE 1 05160000 * PERMANENT ERROR 05180000 ERR618 NI IOBFL1(IOBRG),X'FF'-IOBERR RESET IOB ERR FLAG 05200000 SVC EXCPER ERROR EXCP 05220000 SVC 3 RETURN 05240000 SPACE 1 05244017 * UNIT EXCEPTION AND INCORRECT LENGTH 8655 05248017 ERR619 TM IOBFL3(IOBRG),IOBENT PREV. ERR BUT CORRECTED 8655 05252017 BC 8,ERR618 NO,PERMANENT ERROR 8655 05256017 SPACE 1 05260000 * ERROR CORRECTED 05280000 ERR620 NI IOBFL1(IOBRG),X'FF'-IOBEXE-IOBSRS 7884 05300017 * RESET IOB EX,ERR,REST 7884 05320017 MVI IOBFL3(IOBRG),IOCLBT CLEAR ERR COUNTS 05360000 ERR622 LA ERREG1,STATUP GET LOAD NAME TO STAT. UPDATE 05380000 L ERRETR,VECTXL(COMREG) GET ADDRESS TO XCTL ROUTINE 05400000 BCR 15,ERRETR XCTL TO STATISTIC UPDATE RTN. 05420000 SPACE 1 05426016 ERR625 BC 15,ERR611 LOG OUT AFTER CH DATA CK CCHA 05432016 SPACE 1 05440000 ERRCN1 DC AL2(8) CSW ADJUSTING CONSTANT 05460000 ERRCN2 DC AL2(10) MULTIPLIER CONSTANT 05480000 END 05500000 ./ ADD SSI=04032726,NAME=IGE0002H,SOURCE=0 IGE0002H START X'00' 00030000 * RELEASE 16 DELETIONS 00060000 *1665760000 13336 00065016 *1665 CI0A 00070016 * RELEASE 17 DELETIONS 00090000 * RELEASE 18 DELETIONS 00120000 *1504702000,706000,710000,714000,718000,722000,738000,742000 24514 00125018 *1504 CI0E 00130018 *1504 20669 00140018 *1504 22147 00145018 * RELEASE 19 DELETIONS 00150000 *1786003600-970000 I19072 00160019 *1786456300,466300,470300,494300 A29178 00170019 *1786425300 A29937 00175019 * A30803 00177019 * RELEASE 20 DELETIONS 00180000 *0902267300-271300,300300-343300,366300,406300,418300,467300, A32176 00183000 *0902470300,594300,613300,700300-702300,705300-709300,715300- A32176 00186000 *0902717300,722300-724300,727300,729300-731300,737300-739300, A32176 00189000 *0902749300,751300-753300,756300,760300,766300-768300,773300, A32176 00192000 *0902778300-786300,789300-790300,792300-794300,796300-802300, A32176 00195000 *0902806300-808300,810300,819300-825300,830300,836300-837300, A32176 00198000 *0902845300,847300,849300-850300,852300-854300,858300-861300 A32176 00201000 *0902568300-569300 A33173 00205000 * RELEASE 21 DELETIONS 00210000 * RELEASE 22 DELETIONS 00240000 * RELEASE 23 DELETIONS 00270000 * RELEASE 24 DELETIONS 00300000 *STATUS CHANGE LEVEL 004 00360000 *********************************************************************** 00430019 * * 00530019 * 2321 ERROR RECOVERY PROCEDURE * 00630019 * * 00730019 * * 00830019 * * 00930019 * FUNCTION: ANALYZE STATUS AND SENSE DATA AND ATTEMPT ERROR * 01030019 * RECOVERY. IF THE ERROR IS CORRECT, PROCEED IN A * 01130019 * NORMAL MANNER. IF A PERMANENT ERROR IS DETECTED, * 01230019 * INDICATE IT TO THE USER BY A COMPLETION CODE IN * 01330019 * THE ECB AND A MESSAGE ON THE SYSTEM CONSOLE. * 01430019 * * 01530019 * ENTRY: ER2321 - FROM INTERRUPTION SUPERVISOR * 01630019 * * 01730019 * INPUT: REQUEST ELEMENT POINTER IN REGISTER 1 * 01830019 * * 01930019 * OUTPUT: NONE * 02030019 * * 02130019 * EXT REF: NONE * 02230019 * * 02330019 * EXITS: 1. ERREXCP EXIT TO I/O SUPERVISOR TO RE-EXECUTE * 02430019 * THE CHANNEL PROGRAM IN ERROR. * 02530019 * 2. SVC 3 EXIT TO RETURN CONTROL TO THE SUPERVISOR * 02630019 * AND RELINQUISH CONTROL OVER THE TRANSIENT AREA.* 02730019 * 3. XCTL EXIT TO STATISTICS UPDATE OR WRITE TO * 02830019 * OPERATOR. RETURN WILL BE MADE FROM THESE ROU- * 02930019 * TIMES TO THE SUPERVISOR VIA SVC 3. * 03030019 * 4. XCTL TO LOAD 2 * 03130019 * * 03230019 * ERR MSGS: CONSOLE MESSAGES TO INDICATE ERROR CONDITIONS: * 03330019 * 1. I/O ERROR 03430019 * 2. INTERVENTION REQUIRED * 03530019 * * 03630019 * NOTES: IOB EXCEPTION AND IOB ERROR FLAGS ARE INTERPRETED * 03730019 * AS FOLLOWS: * 03830019 * 1. IOBEX ON AND IOBERR ON, ERR RTN IN CONTROL. * 03930019 * 2. IOBEX ON AND IOBERR OFF, PERMANENT ERROR. * 04030019 * 3. IOBEX OFF AND IOBERR OFF, NO ERR. OR CORRECTED.* 04130019 * * 04230019 * TABLES: STATISTICS TABLE AND IOB * 04330019 * * 04430019 * OPERATION: THIS ROUTINE CHECKS THE STATUS AND SENSE BYTES * 04530019 * STORED IN THE UCB AND IOB AND TAKES ACTION AS * 04630019 * SPECIFIED IN THE DEVICE STANDARDS. STATISTICS ARE * 04730019 * KEPT AS TO THE KIND AND FREQUENCY OF ERRORS. * 04830019 * THESE STATISTICS ARE USED BY THE CE TO ISOLATE * 04930019 * AND RECOGNIZE PROBLEM AREAS. * 05030019 * A COMMON INTERPRETER ROUTINE IS USED TO CHECK * 05130019 * STATUS AND SENSE BITS. ON RETURN FROM THE INTER- * 05230019 * PRETER, THE PROPER ACTION OF RETRY, RETURN, OR * 05330019 * WRITE A MESSAGE TO THE OPERATOR IS TAKEN. * 05430019 * * 05530019 *********************************************************************** 05630019 EJECT , I19072 05730019 SPACE 2 I19072 05830019 * 2321 UNIT CONTROL BLOCK 05930019 * 06030019 * MAIN UCB 06130019 * 06230019 * ***************************************** 06330019 * * JOB * ALLOC. * * * 06430019 * 0 * INTERNAL* CHAN. *UCB I.D. *STATUS A * 06530019 * * NUMBER * MASK * * * 06630019 * ***************************************** 06730019 * * *CHAN* * * * 06830019 * 4 * *ADR.*UNIT ADR.* FLAG 2 * DEVTAB * 06930019 * * * * * * * 07030019 * ***************************************** 07130019 * * * * * * 07230019 * 8 * ERRTAB * STATAB * LCHTAB * ATNTAB * 07330019 * * * * * * 07430019 * ***************************************** 07530019 * * * * 07630019 * 12 *CHAN.MASK* UNIT NAME * 07730019 * * * * 07830019 * ***************************************** 07930019 * * * 08030019 * 16 * TYPE * 08130019 * * * 08230019 * ***************************************** 08330019 * * LAST * * 08430019 * 20 * REQUEST * SENSE * 08530019 * * ELEMENT * * 08630019 * ***************************************** 08730019 * * * 08830019 * 24 * SENSE * 08930019 * * * 09030019 * ***************************************** 09130019 * * * 09230019 * 28 * 2321 ERROR * 09330019 * * * 09430019 * ***************************************** 09530019 * * * 09630019 * 32 * ROUTINE * 09730019 * * * 09830019 * ***************************************** 09930019 * * * 10030019 * 36 * WORK AREA * 10130019 * * * 10230019 * ***************************************** 10330019 EJECT , I19072 10430019 * ***************************************** 10530019 * * * 10630019 * 40 * SEEK QUEUE * 10730019 * * * 10830019 * ***************************************** 10930019 * * * 11030019 * 44 * CONTROL WORD * 11130019 * * * 11230019 * ***************************************** 11330019 * * * 11430019 * 48 * LAST SEEK * 11530019 * * * 11630019 * ***************************************** 11730019 * * * 11830019 * 52 * ADDRESS * 11930019 * * * 12030019 * ***************************************** 12130019 * 12230019 * SUB UCB'S 12330019 * 12430019 * ***************************************** 12530019 * * * * * 12630019 * 56 * B B * STATUS B* STATUS A* 12730019 * * * * * 12830019 * ***************************************** 12930019 * * * 13030019 * 60 * VOLUME SERIAL * 13130019 * * * 13230019 * ***************************************** BB=0 13330019 * * * * * 13430019 * 64 * NUMBER * JOB NO. *DATA MGMT* 13530019 * * * * COUNT * 13630019 * ***************************************** 13730019 * * * NO. OF * 13830019 * 68 * TTR * USERS * 13930019 * * * * 14030019 * ***************************************** 14130019 * * * 14230019 * * * 14330019 * *** *** 14430019 * 14530019 * *** *** *** *** BB=9 14630019 * * * * * 14730019 * * * * * 14830019 * ***************************************** 14930019 * * * NO. OF * 15030019 * 212 * TTR * USERS * 15130019 * * * * 15230019 * ***************************************** 15330019 EJECT , I19072 15430019 * ***************************************** 15530019 * * * 15630019 * 216 * ADDRESS OF 80 BYTE ERP WORK AREA * 15730019 * * * 15830019 * ***************************************** 15930019 EJECT , I19072 16030019 * 16130019 * ** REGISTER DEFINITION ** 16230019 * 16330019 TSTREG EQU 1 12* REG. I19072 16430019 IOBRG EQU 2 IOB BASE REG I19072 16530019 DEBREG EQU 3 DEB. REG. I19072 16630019 DCBREG EQU 4 DCB BASE REG I19072 16730019 UCBRG2 EQU 4 UCB WK AR BASEREG I19072 16830019 CCWREG EQU 5 ERR CCW REG I19072 16930019 CVTREG EQU 6 CVT BASE REG I19072 17030019 UCBREG EQU 7 UCB. REG. I19072 17130019 LNKRG2 EQU 9 LINKAGE REG AND UT 4 I19072 17230019 ERREG1 EQU 10 UTILITY REG 1 I19072 17330019 ERREG2 EQU 11 UTILITY AND PARAM REG 2 I19072 17430019 ERCCWR EQU 12 ERP CCW PTR (UTIL 3) I19072 17530019 ERREG3 EQU 12 UTIL 3 (ERP CCW PTR) I19072 17630019 ERRETR EQU 14 IOS RETURN I19072 17730019 BASREG EQU 15 BAS REG I19072 17830019 SPACE 2 I19072 17930019 * ** THESE FLAGS ARE IN IOB-FLAG 1 ** 18030019 IOBERR EQU X'20' IOB ERROR FLAG I19072 18130019 IOBEX EQU X'04' EXCEPT FLAG I19072 18230019 IOBSRS EQU X'01' START/RESTART FLAG I19072 18330019 SPACE 2 I19072 18430019 * ** THESE FLAGS ARE IN IOB-FLAG 2 ** 18530019 IOBRHA EQU X'10' READ HOME ADDR. FLAG I19072 18630019 IOBNET EQU X'08' NO TEST FOR OUT OF I19072 18730019 * EXTENT I19072 18830019 IOBPREV EQU X'04' PREVIOUS ENTRY FLAG I19072 18930019 SPACE 2 I19072 19030019 * ** THESE FLAGS ARE IN IOB-FLAG 3 ** 19130019 IOBIN1 EQU X'80' INDICATOR 1 I19072 19230019 IOBPIK EQU X'40' PIK FLAG I19072 19330019 IOBNRF EQU X'20' NO RECORD FOUND FLAG I19072 19430019 IOBBOE EQU X'10' BUS OUT ERROR CNT I19072 19530019 IOBRSF EQU X'08' RESTORE FLAG I19072 19630019 IOBMSG EQU X'04' MESSAGE TYPE I19072 19730019 IOBSWP EQU X'02' SWEEP FLAG I19072 19830019 IOBLOG EQU X'01' LOG OUT INDICATION I19072 19930019 SPACE 2 I19072 20030019 * ** FLAGS AND COUNTS IN IOB ERROR BYTE 1. SYMBOL 'IOBECT' ** 20130019 * BIT 0-7 DATA CHECK COUNT 20230019 SPACE 2 I19072 20330019 * ** FLAGS AND COUNTS IN IOB ERROR BYTE 2. SYMBOL 'IOBECT+1' ** 20430019 IOBWRT EQU X'80' INDICATOR TO STAT. I19072 20530019 * UPDATE I19072 20630019 * BIT 1-7 OVERRUN,SEEK CHK, AND CHAINING CHK COUNT 20730019 SPACE 2 I19072 20830019 * ** FLAGS IN UCB ** 20930019 UCBNRY EQU X'40' UCB NOT READY I19072 21030019 UCBERR EQU X'01' ERROR RTN IN CONTROL I19072 21130019 UCBSYS EQU X'02' SYSRES FLAG I19072 21230019 SPACE 2 I19072 21330019 * ** ASR BIT DEFINITIONS ** 21430019 CSWCDC EQU 8 CHAN DATA CHK I19072 21530019 CSWCCC EQU 4 CHAN CTRL CHK I19072 21630019 CSWICC EQU 2 INTERFACE CTRL CHK I19072 21730019 NORETRY EQU 1 CCH'S ERPIB NO-RTY FLG I19072 21830019 ERPIBFLG EQU 4 ERPIB FLAGS BYTE OFFSET I19072 21930019 CCHDELMT EQU X'FF' CCH'S ERPIB TABLE I19072 22030019 * DELIMITER I19072 22130019 TABLELGN EQU 8 ERPIB TABLE ENTRY I19072 22230019 * LENGTH I19072 22330019 SPACE 2 I19072 22430019 * ** STATUS INDICATORS ** 22530019 CSWSMD EQU X'40' STATUS MODIFIER I19072 22630019 CSWIL EQU X'40' WRONG LENGTH IND. I19072 22730019 CSWPC EQU X'20' PROGRAM CHECK I19072 22830019 CSWBSY EQU X'10' BUSY I19072 22930019 CSWPCK EQU X'10' PRTECTION CHECK I19072 23030019 CSWCHE EQU X'08' CHANNEL END I19072 23130019 CSWDVE EQU X'04' DEVICE END I19072 23230019 CSWUCK EQU X'02' UNIT CHECK I19072 23330019 CSWUEX EQU X'01' UNIT EXCEPTION I19072 23430019 CSWCCK EQU X'01' CHAINING CHECK I19072 23530019 SPACE 2 I19072 23630019 * ** CCW COMMANDS ** 23730019 CMDTIC EQU X'08' TIC COMMAND I19072 23830019 CMDFSK EQU X'07' FULL SEEK CMD CODE I19072 23930019 CCWSK EQU X'0B' HEAD OR CYL SEEK I19072 24030019 * INDICATE I19072 24130019 CC EQU X'40' CMD CHAIN I19072 24230019 SKIP EQU X'10' NO DATA XFER I19072 24330019 SPACE 2 I19072 24430019 * ** FLAG BITS IN HOME ADDRESS ** 24530019 TRKBAD EQU X'02' BAD TRACK I19072 24630019 TRKALT EQU X'01' ALTERNATE TRACK I19072 24730019 SPACE 2 I19072 24830019 * ** POINTERS TO THE DIRECT ACCESS CHARACTERISTICS TABLE ** 24930019 HEADNO EQU 3 INDEX TO NUMBER OF I19072 25030019 * HEADS/CYL I19072 25130019 * 25230019 * ** MISCELLANEOUS EQUATES ** 25330019 * 25430019 IOCLBT EQU X'00' CLEARING BYTE I19072 25530019 ERLOD2 EQU 1028 LOAD 2 I19072 25630019 RTNWTO EQU 253 WTO NAME I19072 25730019 RTNSTAT EQU 254 NAME STAT UPDATE RTN I19072 25830019 HDMAX EQU 19 MAXIMUM HEAD NO. I19072 25930019 THREE EQU 3 I19072 26030019 UPCNT EQU 4 CCHH UPDATE CNT I19072 26130019 SERWRK EQU 8 SENSE INFORM. I19072 26230019 NZ EQU 7 NOT ZERO MASK I19072 26330019 RETURN EQU 3 RETURN SVC NO. I19072 26430019 EREXCP EQU 15 ERROR EXCP SVC NO. I19072 26530019 SKIPBIT EQU X'10' SKIP FLAG I19072 26630019 SWPSVN EQU X'70' COUNT MASK - HI ORDER 7 A32176 26730000 SWPMASK EQU X'0413' CYL 4, HD 19 A32176 26830000 DEBST EQU 6 EXTENT START A32176 26930000 DEBEND EQU 10 EXTENT END A32176 27030000 DEBSCA EQU 4 SPLIT CYL ALLOCATION A32176 27130000 CVTLOC EQU 16 LOC OF CVT ADDR I19072 27230019 IOBAMRK EQU X'02' SENSE MSSNG ADDR MRK I19072 27330019 IOBCMDR EQU X'80' COMMAND REJECT IN SENSE I19072 27430019 UCBUNS EQU X'80' UNSAFE SENSE BIT I19072 27530019 IOBOVF EQU X'01' SENSE OVERFLOW BIT I19072 27630019 UCBTCC EQU X'02' TCC SENSE I19072 27730019 NOSTAT EQU X'2C' NO STATS FOR EOC,FP,NRF A30803 27780019 SPACE 2 I19072 27830019 USING *,15 I19072 27930019 USING DEB,DEBREG I19072 28030019 USING IOB,IOBRG I19072 28130019 USING CVT,CVTREG I19072 28230019 USING UCB,UCBREG I19072 28330019 USING ERU,UCBRG2 I19072 28430019 USING RQE,TSTREG I19072 28530019 SPACE 5 I19072 28630019 ER2321 LH UCBREG,TSTUCB INITIALIZE I19072 28730019 LM IOBRG,DEBREG,TSTIOB CONTROL I19072 28830019 L CVTREG,CVTLOC REGISTERS I19072 28930019 L UCBRG2,UCBWK ERP WORK AREA I19072 29030019 SPACE 2 I19072 29130019 * ** SET UP FOR ERROR INTERPRETER ** 29230019 SPACE 2 I19072 29330019 CCWUP L CCWREG,IOBCSW GET CCW ADDR FROM CSW I19072 29430019 SL CCWREG,ERRCN1 SUBTRACT EIGHT I19072 29530019 LR 10,IOBRG GLITCH FOR INTRP I19072 29630019 LR 9,BASREG REG 9=RETURN REG I19072 29730019 L BASREG,CVTNTRP ADDR OF ERR INTERP I19072 29830019 ERNT BALR 12,BASREG GO I19072 29930019 DC X'1D',AL1(ERCCC-ERNT-2) CHAN CTRL CHK A32176 30030000 * 30130000 DC X'1E',AL1(ERICC-ERNT-4) INTERFACE CTRL CHK A32176 30230000 * 30330000 DC X'1C',AL1(ERCDC-ERNT-6) CHAN DATA CHK A32176 30430000 * 30530000 DC X'03',AL1(EREQCH-ERNT-8) EQUIP CHK A32176 30630000 * 30730000 DC X'0C',AL1(ERNRF-ERNT-10) NO REC FND A32176 30830000 * 30930000 DC X'07',AL1(ERSK-ERNT-12) SEEK CHK A32176 31030000 * 31130000 DC X'01',AL1(ERNREQ-ERNT-14) INT REQ'D A32176 31230000 * 31330000 DC X'02',AL1(ERBUSO-ERNT-16) BUSOUT A32176 31430000 * 31530000 DC X'04',AL1(ERDAT-ERNT-18) DATA CHECK A32176 31630000 * 31730000 DC X'05',AL1(EROVRN-ERNT-20) OVERRUN A32176 31830000 * 31930000 DC X'0E',AL1(ERMARK-ERNT-22) MISSING ADDR MRK A32176 32030000 * 32130000 DC X'00',AL1(ERCMDR-ERNT-24) COMMAND REJECT A32176 32230000 * 32330000 DC X'06',AL1(ERTCC-ERNT-26) TRK COND CHK A32176 32430000 * 32530000 DC X'09',AL1(ERTOVRN-ERNT-28) TRK OVERRUN A32176 32630000 * 32730000 DC X'0A',AL1(EREOC-ERNT-30) END OF CYLINDER A32176 32830000 * 32930000 DC X'0D',AL1(ERFPRT-ERNT-32) FILE PROTECT A32176 33030000 * 33130000 DC X'1F',AL1(ERCHAIN-ERNT-34) CHAIN CHK A32176 33230000 * 33330000 DC X'1A',AL1(ERCHP-ERNT-36) CH PROG CHK A32176 33430000 * 33530000 DC X'1B',AL1(ERPROT-ERNT-38) CH PROT CHK A32176 33630000 * 33730000 DC X'17',AL1(EREOF-ERNT-40) UNIT EXCEPTION A32176 33830000 * 33930000 DC X'19',AL1(ERLEN-ERNT-42) WRONG LENGTH A32176 34030000 * 34130000 DC X'2F',AL1(ERNOER-ERNT-44) END OF TEST A32176 34230000 * 34430019 * ** END OF CYLINDER = 1. SKA/CYL = NEXT SEQUENTIAL CYL. ** 34530019 * 2. SKA/HD = START OF EXTENT. ** 34630019 * 3 EXECUTE SEEK AND RETURN TO USER. ** 34730019 * 34830019 EREOC MVI UCBSKA+6,HDMAX I19072 34930019 * 35030019 * ** FILE PROTECT = IF ERROR CCW IS: ** 35130019 * 1. FULL SEEK = PERM ERROR. ** 35230019 * 2. CYL OR HD SEEK = PLACE USER SEEK ARG IN ** 35330019 * UCBSKA, EXECUTE THE SEEK AND RETURN TO USER. ** 35430019 * 3. MULTI TRK = UCBSKA TO NEXT HD IN EXTENT, ** 35530019 * EXECUTE THE SEEK AND RETURN TO USER. ** 35630019 * 35730019 ERFPRT CLI 0(CCWREG),CMDFSK FULL SEEK I19072 35830019 BE PERMERR YES, BRANCH I19072 35930019 TM 0(CCWREG),CCWSK HD OR CYL SEEK I19072 36030019 BNO CHUPT NO, UPDATE SKA I19072 36130019 L ERREG2,0(CCWREG) GET SEEK ARG I19072 36230019 MVC UCBSKA+1(6),0(ERREG2) MOVE TO UCBSKA I19072 36330019 LA CCWREG,8(CCWREG) UPDATE CCW PTR I19072 36430019 NOSRCH LA ERREG2,ERPOCP2 SET FROM ADDR I19072 36530019 B OFLOCHK CHECK FOR OVERFLOW A32176 36630000 * 36730019 * ** TRACK CONDITION CHECK = READ HOME ADDR AND RECORD ZERO. ** 36830019 * 1. MOVE RECORD ZERO TO UCBSKA. ** 36930019 * A. ALT TRACK = UPDATE UCBSKA TO NEXT ** 37030019 * SEQUENTIAL HD WITHIN EXTENT. ** 37130019 * 2. EXECUTE AND VERIFY SEEK AND RETURN TO USER. ** 37230019 * 37330019 * 37430019 * ** BUILD CHAN PGM TO RHA-RRO FOR TRK COND CHK OR ERR MSG ** 37530019 * 37630019 ERTCC LA ERREG2,ERRHAP SET FROM ADDR I19072 37730019 BAL LNKRG2,ERCPBLD GO TO CP BLD RTN I19072 37830019 RHAON OI IOBFL2,IOBRHA TURN ON RHA FLAG I19072 37930019 B RSTRT GO RESTART I19072 38030019 * 38130019 * ** CHAN CTRL CHK, INTERFACE CTRL CHK, SEEK CHK, OVERRUN, ** 38230019 * ** BUS OUT, EQUIP CHK, AND CHAINING CHK ARE ** 38330019 * ** HANDLED BY LOAD 2. ** 38430019 ERSK TM IOBSNS,IOBCMDR SK CHK/CMD REJ I19072 38530019 * 38630019 BO ERCMDR YES, MSG I19072 38730019 ERCCC DS 0H I19072 38830019 ERICC DS 0H I19072 38930019 EREQCH DS 0H I19072 39030019 ERBUSO DS 0H I19072 39130019 EROVRN DS 0H I19072 39230019 ERCHAIN DS 0H I19072 39330019 XCTL2 LA 13,ERLOD2 I19072 39430019 XCTL L 14,CVTXCTL XCTL LOCATION I19072 39530019 BR 14 GO TO XCTL RTN I19072 39630019 * 39730019 * ** BRANCH VECTOR FOR DATA CHK, MAM, AND CHAN DATA CHK ** 39830019 * 39930019 ERDAT DS 0H I19072 40030019 TM 4(CCWREG),SKIPBIT SKIP BIT ON I19072 40130019 BZ *+8 NO, SKIP NEXT INST I19072 40230019 OI IOBCNT+1,IOBWRT INDICATE WRITE ERR I19072 40330019 ERMARK DS 0H I19072 40430019 ERCDC DS 0H I19072 40530019 B DATMRK GO CHK CNT A32176 40630000 * 40730019 * ** COMMAND REJECT = MSG, NO LOG ** 40830019 * 40930019 ERCMDR OI IOBFL3,IOBMSG TURN ON MSG FLAG I19072 41030019 B SKMSG GO SET UP FOR MSG I19072 41130019 * 41230019 * ** TRK OVRN, CHAN PROG OR PROT CHK = PERM ERR = NO MSG ** 41330019 * 41430019 ERTOVRN DS 0H I19072 41530019 ERCHP DS 0H I19072 41630019 ERPROT DS 0H I19072 41730019 B PERMERR PERMANENT ERROR A32176 41830000 * 41930019 * ** NRF/MAM = LOAD 2. ** 42030019 * ** NRF = READ HOME ADDR AND VERIFY ARM AT SEEK ADDR. ** 42130019 * 1. ARM AT SEEK ADDR = PERM ERR. ** 42230019 * 2. ARM NOT AT SEEK ADDR = SEEK CHK = LOAD 2. ** 42330019 * 42430019 ERNRF DS 0H A29937 42470019 CLI IOBCNT,0 PREV RETRY A29937 42510019 BE DATMRK NO, RETRY A29937 42550019 TM IOBFL3,IOBMSG MSG FLAG ON A29937 42590019 BO SKMSG YES, SET SKA FOR MSG I19072 42630019 TM IOBFL3,IOBNRF PREVIOUS NRF I19072 42730019 BO XCTL2 YES, LOAD 2 I19072 42830019 TM IOBSNS+1,IOBAMRK MISS ADDR MARK I19072 42930019 BO XCTL2 YES, GO TO LOAD 2 I19072 43030019 OI IOBFL3,IOBNRF TURN NRF FLAG ON I19072 43130019 B ERTCC GO BUILD CP TO RHA I19072 43230019 * 43330019 * ** INTERVENTION REQUIRED = CLEAR FLAG3 AND RHA AND GO TO WTO ** 43430019 * 43530019 ERNREQ BAL LNKRG2,RTRYCLR CLEAR FL3 AND RHA I19072 43630019 B XCTWTO1 I19072 43730019 * 43830019 * ** U/EX - WRONG LENGTH, PREVIOUS ERR =STATUP NONE =PERM ERR ** 43930019 * ** U/EX WITH RHA ON = U/EX IGNORED ** 44030019 * 44130019 EREOF TM IOBFL2,IOBRHA U/EX ON RHA I19072 44230019 BO RSTR YES, IGNORE U/EX I19072 44330019 ERLEN TM IOBFL2,IOBPREV PREVIOUS ERR I19072 44430019 BO STAT YES, GO TO STATUP I19072 44530019 B PERMERR NO, PERM ERR I19072 44630019 SPACE 5 I19072 44730019 * 44830019 * ** THIS CODE WILL BE ENTERED FROM THE ERROR INTERPRETER ON ** 44930019 * ** THE DETECTION OF NO ERROR IN THE SENSE OR STATUS. THIS ** 45030019 * ** IS THE NORMAL RETURN FROM THE EXECUTION OF ERP CHANNEL ** 45130019 * ** PROGRAMS TO RSTR, RHA/RRO FOR TCC OR MSG, HD SHAKE, OR ** 45230019 * ** A SUCCESSFUL RETRY OF THE FAILING CHAN PROG. ** 45330019 * 45430019 ERNOER TM IOBFL3,IOBPIK PIK FLG ON I19072 45530019 BO INCRA YES A29178 45630019 TM IOBFL3,IOBRSF RESTORE FLAG ON I19072 45730019 BO FLGOFF YES I19072 45830019 TM IOBFL3,IOBSWP SWEEP FLAG ON I19072 45930019 BZ RHACHK NO, CHK RHA I19072 46030019 TM IOBCNT+1,SWPSVN SWP CNT END IN 7 I19072 46130019 BO SHKDN YES, RESET CNT AND RETRY I19072 46230019 IC ERREG2,IOBCNT+1 I19072 46330019 LA ERREG2,16(ERREG2) NO, INCR CNT AND RESTART I19072 46430019 STC ERREG2,IOBCNT+1 I19072 46530019 SETSTRT OI IOBFL1,IOBSRS SET RESTART BIT A29178 46630019 B RSTRT GO RESTART CP A32176 46730000 * ** PRESENT HD SHAKE CYCLE IS COMPLETE, RETRY ORIG CHAN PROG ** 46830019 SHKDN NI IOBCNT+1,X'FF'-SWPSVN RESET LOW ORDER BITS I19072 46930019 B INCRA INCREMENT CNT A32176 47030000 RHACHK TM IOBFL2,IOBRHA RHA FLG ON I19072 47130019 BZ STAT NO, ERR IS CORRECTED I19072 47230019 * 47330019 * ** HOME ADDR HAS BEEN READ FOR EITHER MSG, TCC, OR NRF ** 47430019 * 47530019 RSTR MVC IOBCSW+1(7),UCBCSW RESTORE CSW I19072 47630019 MVC IOBSNS(2),UCBSSN AND SENSE I19072 47730019 NI IOBFL2,X'FF'-IOBRHA TURN RHA OFF I19072 47830019 L CCWREG,IOBCSW FETCH CCW ADDR I19072 47930019 SL CCWREG,ERRCN1 DECR BY 8 I19072 48030019 TM IOBFL3,IOBMSG RHA FOR MSG I19072 48130019 BO HARDERR YES I19072 48230019 TM IOBFL3,IOBIN1 NRF/MAM I19072 48330019 BO FLGOFF YES, RETRY I19072 48430019 TM IOBFL3,IOBNRF NO RECORD FOUND FLG ON I19072 48530019 BO CCHK YES, CHECK HOME ADDR CC I19072 48630019 * ** TCC - SET SEEK ADDR FROM R0 DATA ** 48730019 MVC UCBSKA+3(4),UCBRR0 NO, MUST BE TCC I19072 48830019 TM UCBRHA,TRKBAD BAD PRIMARY TRACK I19072 48930019 BZ CHUPT NO, UPDATE SEEK ADDR I19072 49030019 OI IOBFL2,IOBNET TURN NO EXTENT TEST FLG I19072 49130019 B SRCH GO BUILD CHAN PROG I19072 49230019 * ** NRF - VERIFY RHA/CC = SKA/CC ** 49330019 CCHK CLC UCBSKA+3(3),UCBRHA+1 S/C-STP-CYL EQUAL TO A29178 49390019 * SKA A29178 49450019 BNE XCTL2 NO, GO TO LOAD2 I19072 49530019 B PERMERR YES, PERM ERROR I19072 49630019 * 49730019 * ** MOVE SKA TO IOB FOR MSG AND GO TO WTO ** 49830019 * 49930019 SKMSG MVC IOBRST,UCBSKA+3 I19072 50030019 B XCTWTO I19072 50130019 * 50230019 * ** ERROR IS HARD, SET SKA FOR MSG AND XCTL TO WTO ** 50330019 * 50430019 HARDERR MVC IOBRST,UCBRHA+1 RHA DATA FOR MSG I19072 50530019 XCTWTO BAL LNKRG2,HARDCLR IOBERR=FL3=ERR/CNTS=0 I19072 50630019 OI IOBFL2,IOBRHA I19072 50730019 XCTWTO1 LA 13,RTNWTO RTN NAME OF WTO I19072 50830019 B XCTL I19072 50930019 * 51030019 * ** ERROR IS PERMANENT - NO MSG REQUIRED - RTRN CODE TO USER ** 51130019 * 51230019 PERMERR BAL LNKRG2,HARDCLR SET ERR FLGS I19072 51330019 B RSTRT+4 GO TO EXIT RTN I19072 51430019 * 51530019 * ** INCREMENT DATA CHECK ERR CNT, CLEAR FL3 AND RHA AND EXIT ** 51630019 * 51730019 INCRA NI IOBFL2,X'FF'-IOBRHA RHA = 0 A29178 51780019 INCR IC ERREG2,IOBCNT I19072 51830019 LA ERREG2,1(ERREG2) INCR I19072 51930019 STC ERREG2,IOBCNT REPLACE I19072 52030019 TM IOBFL2,IOBRHA RHA ON A29178 52050019 BZ FLGOFF NO A29178 52070019 B SETSTRT RESTART ON A29178 52090019 FLGOFF BAL LNKRG2,RTRYCLR IOBFL3=RHA=0 I19072 52130019 * ** EXIT FOR RETRY,RESTART, OR PERM ERR DEPENDING ON FLAG SETTINGS ** 52230019 RSTRT OI IOBFL2,IOBPREV SET PREVIOUS ENTRY FLAG I19072 52330019 SVC EREXCP EXIT I19072 52430019 SVC RETURN I19072 52530019 EJECT , I19072 52630019 * 52730019 * ** DATA CHK -MISS ADDR MARKER - CHAN DATA CHK = ** 52830019 * 1. RETRY FAILING CP EIGHT TIMES. ** 52930019 * 2. SHAKE HDS EIGHT TIMES. ** 53030019 * 3. RETRY TWO TIMES THEN SHAKE HDS EIGHT TIMES. ** 53130019 * 4. IF RETRY CNT = 226, RHA AND PRINT ERR MSG. ** 53230019 * 5. IF RETRY CNT = MULT OF 32, GO TO 7. ** 53330019 * 6. GO TO 3. ** 53430019 * 7. SEEK TO ADJACENT STRIP. ** 53530019 * 8. GO TO 3. ** 53630019 * 53730019 DATMRK CLI IOBCNT,226 IS ERR CNT MAXIMUM I19072 53830019 BNL ERLOG YES, HARD ERR I19072 53930019 CLI IOBCNT,8 IS CNT LESS THAN EIGHT I19072 54030019 BL INCR YES, RETRY I19072 54130019 TM IOBCNT,X'1F' IS CNT MULTIPLE OF 32 I19072 54230019 BZ ADJSEK YES, SEEK TO ADJACENT I19072 54330019 * STRIP I19072 54430019 TM IOBCNT,X'01' IS CNT ODD I19072 54530019 BO INCR YES, RETRY I19072 54630019 * 54730019 * ** BUILD CP FOR HD SHAKE ** 54830019 * 54930019 LA ERREG2,ERPSHAK SET FROM ADDR I19072 55030019 BAL LNKRG2,ERCPBLD BLD CHAN PROG I19072 55130019 MVC UCBSEK1,UCBSKA+1 GET SEEK ARGS I19072 55230019 MVC UCBSEK2,UCBSEK1 I19072 55330019 SR ERREG2,ERREG2 CLEAR I19072 55430019 STH ERREG2,UCBSEK1+4 SET CYL/HD TO ZERO I19072 55530019 LA ERREG2,SWPMASK SET CYL/HD TO 4/19 I19072 55630019 STH ERREG2,UCBSEK2+4 I19072 55730019 OI IOBFL3,IOBSWP SET SWEEP FLG I19072 55830019 B RHAON GO RESTART I19072 55930019 * 56030019 * ** BUILD CHAN PROG TO SEEK TO ADJACENT STRIP ** 56130019 * 56230019 ADJSEK LA ERREG2,ERPSEEK SET FROM ADDR I19072 56330019 BAL LNKRG2,ERCPBLD BUILD CCWS I19072 56430019 MVC UCBSEK2(6),UCBSKA+1 GET SEEK ADDR I19072 56530019 SR ERREG2,ERREG2 CLEAR I19072 56630019 IC ERREG2,UCBSEK2+3 GET STRIP ADDR I19072 56730019 CLI UCBSEK2+3,0 IS IT ZERO? A33173 56830000 BNE *+8 NO, SKIP NEXT INST A33173 56930000 LA ERREG2,2(ERREG2) YES, FORCE RESULT OF ONE I19072 57030019 BCTR ERREG2,0 DECREMENT I19072 57130019 STC ERREG2,UCBSEK2+3 STORE ADJ STRIP ADDR I19072 57230019 OI IOBFL3,IOBPIK SET PIK FLAG I19072 57330019 B RHAON GO RESTART I19072 57430019 * 57530019 * ** ERR CNT IS MAX, RHA FOR MSG OR POST RHA ERR ** 57630019 * 57730019 ERLOG OI IOBFL3,IOBLOG+IOBMSG SET MSG AND LOG I19072 57830019 TM IOBFL2,IOBRHA RHA ERR I19072 57930019 BZ ERTCC NO, GO RHA FOR MSG I19072 58030019 B SKMSG GO FETCH SKA FOR MSG. I19072 58130019 * 58230019 * ** ERROR HAS BEEN CORRECTED, CLEAR FLAGS AND XCTL TO STATUP ** 58330019 * 58430019 STAT BAL LNKRG2,SOFTCLR CLEAR ERR FLGS AND CNTS I19072 58530019 TM UCBSNS+1,NOSTAT STATS NEEDED A30803 58560019 BNZ RSTRT+4 NO A30803 58590019 LA 13,RTNSTAT RTN NAME FOR STATUP I19072 58630019 B XCTL GO XCTL I19072 58730019 * 58830019 * ** UPDATE SEEK ADDR ** 58930019 * 59030019 CHUPT LA ERREG2,UPCNT I19072 59130019 TM DEBOPFL,DEBSCA SPLIT CYLINDER I19072 59230019 BZ TRKINC NO INCR TRK ADDR I19072 59330019 BAL LNKRG2,EXTPTR POINT TO CURRENT EXTENT A32176 59430000 CLC UCBSKA+6(1),DEBEND+3(ERREG1) HH AT LIM I19072 59530019 BL TRKINC NO, INCR HH I19072 59630019 MVC UCBSKA+6(1),DEBST+3(ERREG1) YES, SET HH TO START I19072 59730019 LA ERREG2,THREE I19072 59830019 TRKINC IC ERREG1,UCBSKA+2(ERREG2) I19072 59930019 LA ERREG1,1(ERREG1) INCR I19072 60030019 STC ERREG1,UCBSKA+2(ERREG2) STORE NEW SEEK ADDR I19072 60130019 * ** STORE CHAR IN 'I' PORTION OF INST CMPRE ** 60230019 STC ERREG1,CMPRE+1 SET UP TEST OF ADDR I19072 60330019 LA ERREG1,TRKLIM-1(ERREG2) ACCESS BASE I19072 60430019 CMPRE CLI 0(ERREG1),0 SEEK ADDR G/T DEV LIM I19072 60530019 BNL CHUOUT NO, DONE I19072 60630019 SR ERREG1,ERREG1 CLEAR REG I19072 60730019 STC ERREG1,UCBSKA+2(ERREG2) RESET TO ZERO I19072 60830019 BCT ERREG2,TRKINC NEXT FIELD I19072 60930019 CHUOUT TM IOBSNS,UCBTCC TCC UPDATE I19072 61030019 BO SRCH YES, BUILD I19072 61130019 * SHA-RHA/SKIP-TIC I19072 61230019 BAL LNKRG2,EXTPTR POINT TO CURRENT EXTENT A32176 61330000 CLC UCBSKA+3(4),DEBEND(ERREG1) OUT OF XTNT? I19072 61430019 BH SRCH YES, BLD SHA-TIC-RHA-TIC I19072 61530019 SH ERREG2,FOUR CHECK IF ONLY HEAD I19072 61630019 * UPDATE I19072 61730019 BZ NOSRCH YES, SET UP FOR RHA ONLY I19072 61830019 * ** SET UP FOR SHA-TIC-RHA-TIC ** 61930019 SRCH LA ERREG2,ERPOCP1 SET FROM ADDR I19072 62030019 * 62130019 * ** IF OVERFLOW INCOMPLETE, GO TO LOAD 2 ** 62230019 * 62330019 OFLOCHK TM IOBSNS+1,IOBOVF IS OFLO ON I19072 62430019 BO XCTL2 YES, GO TO LOAD 2 I19072 62530019 CLC 0(32,CCWREG),OFLOCCW1 ERR IN OFLO CP I19072 62630019 BNE PGMBLD NO, USE PREVIOUSLY SET I19072 62730019 * PARM I19072 62830019 LA ERREG2,ERPOCP2 YES, SET PARM FOR I19072 62930019 * RHA/SKIP-TIC I19072 63030019 * 63130019 * ** BUILD CHANNEL PGM TO SHA-RHA/SKIP-TIC OR RHA/SKIP-TIC TO USER ** 63230019 * 63330019 PGMBLD BAL LNKRG2,ERCPBLD GO TO CP BUILD RTN I19072 63430019 * 63530019 * ** BUILD TIC TO USER ** 63630019 * 63730019 MVC 0(4,ERCCWR),0(CCWREG) MOVE IN ERR CCW I19072 63830019 TM 0(CCWREG),X'FF'-CMDTIC TEST IF TIC I19072 63930019 BZ RSTRT YES RESTART I19072 64030019 ST CCWREG,0(ERCCWR) NO, SET TIC TO USER CCW I19072 64130019 MVI 0(ERCCWR),CMDTIC SET TIC CMD I19072 64230019 B RSTRT EXEC ERP CHAN PROG I19072 64330019 * 64430019 * ** FLAG CLEARING SUBROUTINE ** 64530019 * 64630019 SOFTCLR NI IOBFL1,X'FF'-IOBEX IOBEX=0 I19072 64730019 HARDCLR NI IOBCNT,IOCLBT IOBCNT=0 I19072 64830019 NI IOBCNT+1,IOBWRT IOBCNT=0 (IOBWRT IS I19072 64930019 * PRESERVED) I19072 65030019 NI IOBFL1,X'FF'-IOBERR IOBERR=0 I19072 65130019 NI UCBFL1,X'FF'-UCBERR UCBERR=0 I19072 65230019 NI IOBFL2,X'FF'-IOBPREV IOBPREV=0 I19072 65330019 RTRYCLR NI IOBFL3,IOBMSG+IOBLOG CLR ALL BUT MSG AND LOG I19072 65430019 NI IOBFL2,X'FF'-IOBRHA IOBRHA=0 I19072 65530019 BR LNKRG2 RETURN TO CALLER I19072 65630019 * 65730019 * ** POINT TO ACTIVE DEB EXTENT ROUTINE ** 65830019 * 65930019 EXTPTR SR ERREG1,ERREG1 I19072 66030019 IC ERREG1,IOBDAM FETCH XTNT NO. I19072 66130019 SLL ERREG1,4 COMPUTE LOC I19072 66230019 LA ERREG1,DEBMDB(ERREG1) POINT TO XTNT I19072 66330019 BR LNKRG2 RETURN TO CALLER I19072 66430019 * 66530019 * 66630019 *ERCPBLD SETS UP A CHANNEL PROGRAM FOR EXECUTION 66730019 *ERREG2 IS THE SOURCE REG POINTING AT THE PROTOTYPE CH PRO 66830019 *ERCCWR IS THE TARGET (WHERE TO PUT IT) 66930019 *THE 5TH BYTE OF EACH PROTOTYPE CCW CONTAINS CONTROL INFORMATION 67030019 * A.WHETHER TO RELOCATE THE CCW AND ITS ARGUMENT ADDR. 67130019 * B.HOW TO RELOCATE IT 67230019 * C.END OF CHANNEL PROGRAM 67330019 * ERROR SENSE AND CSW ARE SAVED,APPROPRIATE FLAGS AND ADDR.S SET 67430019 ERCPBLD DS 0H BUILD CH PRO I19072 67530019 * 67630019 LA ERCCWR,UCBCCW1 FORCE TARGET ADDR = I19072 67730019 * UCBCCW1 I19072 67830019 ST ERCCWR,IOBRST ERCCWR=TO,ERREG2=FROM I19072 67930019 OI IOBFL1,IOBSRS SET RESTART I19072 68030019 ERCPB2 IC ERREG1,5(ERREG2) PICK UP RELOCATE REG I19072 68130019 EX ERREG1,ERELOC LOAD PROPER BASE TO I19072 68230019 * RELOC I19072 68330019 AL ERREG1,0(ERREG2) ADD DISPL AND CMDCODE I19072 68430019 ST ERREG1,0(ERCCWR) PUT I19072 68530019 MVC 4(4,ERCCWR),4(ERREG2) MOVE 2ND HALF I19072 68630019 TM 5(ERREG2),ERREG1*16 TERMINATOR CHECK I19072 68730019 LA ERREG2,8(ERREG2) INCREMENT(FROM)LOC I19072 68830019 LA ERCCWR,8(ERCCWR) INCREMENT(TO)LOC I19072 68930019 BNO ERCPB2 CONTINUE BUILDING I19072 69030019 MVC UCBSSN(2),IOBSNS PUSH USER ERR CONTEXT I19072 69130019 MVC UCBCSW(7),IOBCSW+1 SAVE SENSE AND CSW I19072 69230019 BR LNKRG2 EXIT I19072 69330019 ERELOC LR ERREG1,0 ERREG1=PROPER BASE REG I19072 69430019 * 69530019 * ** PROTOTYPE CCWS USED BY ERCPBLD ** 69630019 * 69730019 *CCW1 SHA UCBSKA+3,CC+SLI,3 VERIFY CORRECT SEEK (CCH) 69830019 ERPOCP1 DS 0F REPOSITION CH PRO SHA I19072 69930019 DC X'39' OP A32176 70030000 DC AL3(UCBSKA+3-UCB) ARG A32176 70130000 DC X'60' CC+SLI A32176 70230000 DC AL1(UCBREG) RELOCATE INFO FOR I19072 70330019 * ERCPBLD I19072 70430019 DC X'0004' LENGTH A32176 70530000 *CCW2 TIC *-8,CC+SLI,10 70630000 DC X'08' OP A32176 70730000 DC AL3(UCBCCW1-ERU) ARG A32176 70830000 DC X'60' CC+SLI A32176 70930000 DC AL1(UCBRG2) RELOCATE INFO FOR I19072 71030019 * ERCPBLD I19072 71130019 ERRC10 DC X'000A' SHARE LENGTH AS DC ** I19072 71230019 *CCW3,1 RHA UCBRHA,SLI+SKIP+CC,5 71330019 ERPOCP2 DS 0F REPOSITION CH PRO RHA I19072 71430019 DC X'1A' OP A32176 71530000 DC AL3(UCBRHA-ERU) ARG A32176 71630000 DC X'70' CC+SLI+SKIP A32176 71730000 DC AL1(ERREG1*16+UCBRG2) RELOCATE INFO AND END I19072 71830019 * FLG I19072 71930019 DC X'0005' I19072 72030019 *CCW1 RHA UCBRHA,CC+SLI,5 72130019 ERRHAP DC X'1A' OP A32176 72230000 DC AL3(UCBRHA-ERU) ARG A32176 72330000 DC X'60' CC+SLI A32176 72430000 DC AL1(UCBRG2) RELOCATE INFO FOR I19072 72530019 * ERCPBLD I19072 72630019 DC X'0005' LENGTH A32176 72730000 *CCW2 RR0 UCBRR0,SLI,4 72830019 DC X'16' OP A32176 72930000 DC AL3(UCBRR0-ERU) ARG A32176 73030000 DC X'20' SLI A32176 73130000 DC AL1(ERREG1*16+UCBRG2) RELOCATE INFO AND END I19072 73230019 * FLG I19072 73330019 FOUR DC X'0004' SHARE LENGTH AS DC ** I19072 73430019 *CCW1 SK UCBSEK1,CC,6 SEEK VIA ARG IN UCBSEK1 73530019 ERPSHAK DS 0F I19072 73630019 DC X'07' OP A32176 73730000 DC AL3(UCBSEK1-ERU) ARG A32176 73830000 DC X'40' CC A32176 73930000 DC AL1(UCBRG2) RELOCATE INFO FOR I19072 74030019 * ERCPBLD I19072 74130019 DC X'0006' I19072 74230019 *CCW2,1 SK UCBSEK2,CC,6 SEEK VIA ARG IN UCBSEK2 74330019 ERPSEEK DC X'07' I19072 74430019 DC AL3(UCBSEK2-ERU) I19072 74530019 DC X'40' I19072 74630019 DC AL1(UCBRG2) RELOCATE INFO FOR I19072 74730019 * ERCPBLD I19072 74830019 DC X'0006' LENGTH A32176 74930000 *CCW3,2 NOP 0,SLI,1 75030019 DC X'03' OP A32176 75130000 DC AL3(0) NO ARG A32176 75230000 DC X'20' SLI A32176 75330000 DC AL1(ERREG1*16+UCBRG2) RELOCATE INFO AND END I19072 75430019 * FLAG I19072 75530019 DC X'0001' LENGTH A32176 75630000 * 75730019 * ** CONSTANTS ** 75830019 * 75930019 TRKLIM DC X'FF090413' DEVICE ADDR LIMITS MASK A32176 76030000 ERRCN1 DC F'8' CONSTANT 8 I19072 76130019 * 76150000 ORG IGE0002H+1000 SAVE FOR PATCH AREA A32176 76170000 DC C'IGE0002H-20' MODULE IDENTIFIER A32176 76190000 EJECT , I19072 76230019 *CVT DEFINITION 76330019 CVT DSECT , I19072 76430019 CVTTCB DS A PTR TO (NXT,CURR)TCB I19072 76530019 ORG CVT+44 ALIGN A32176 76630000 CVTXCTL DS A ADDR OF XCTL RTN A32176 76730000 ORG CVT+64 ALIGN A32176 76830000 CVTDTAB DS A DEVICE CHARACTERISTICS I19072 76930019 * TB I19072 77030019 CVTNTRP DS A ERR INTERPRETER I19072 77130019 CVTWTO DS A WRITE TO OPERATOR I19072 77230019 ORG CVT+112 ALIGN A32176 77330000 STATAB DS A CVT LOC OF STATAB I19072 77430019 CVTLOG DS A LOG RTN ADDRESS I19072 77530019 EJECT , I19072 77630019 DEB DSECT , I19072 77730019 DEBTCB DS A TCB PTR A32176 77830000 DS A ALIGN A32176 77930000 DEBOPFL DS C OPEN FLAGS A32176 78030000 ORG *-1 ALIGN A32176 78130000 DEBIRB DS A IRB PTR A32176 78230000 DS 3A ALIGN A32176 78330000 DEBDCB DS A DCB PTR A32176 78430000 DS A ALIGN A32176 78530000 DEBMDB DS C FILE MASK A32176 78630000 EJECT , I19072 78730019 UCB DSECT , I19072 78830019 ORG UCB+3 ALIGN A32176 78930000 UCBSTA DS C UCBSTATUS I19072 79130019 DS H ALIGN A32176 79230000 UCBFL1 DS C FLAG1 A32176 79330000 DS C ALIGN A32176 79430000 UCBERP DS C TRANSIENT ERP ADDR I19072 79530019 ORG UCB+22 ALIGN A32176 79730000 UCBSNS DS XL6 SENSE BYTES A32176 79930000 UCBSSN DS CL2 SAVE AREA SENSE ORIG I19072 80330019 * ERROR I19072 80430019 UCBCSW DS CL7 SAVE AREA CSW ORIG ERROR I19072 80530019 ORG UCB+48 ALIGN A32176 80630000 UCBSKA DS XL8 SEEK ADDR MBBCCHHR A32176 80730000 ORG UCBSKA+4 ALIGN A32176 80830000 UCBCHHR DS F LOW PORTION SEEK ADDR I19072 80930019 ORG UCB+216 ALIGN A32176 81030000 UCBWK DS A DISJOINT UCB WK AR PTR I19072 81130019 EJECT , I19072 81230019 ERU DSECT WK AREA I19072 81330019 ORG ERU+104 ALIGN TO ERP AREA I19072 81430019 UCBCCW1 DS D ERP CONSTRUCTED CH PROGS I19072 81530019 UCBCCW2 DS D FOR TRK COND,END OF CYL, I19072 81630019 UCBCCW3 DS D FILE PROT,PERM ERR ETC I19072 81730019 UCBCCW4 DS D I19072 81830019 ORG UCBCCW4 ALIGN A32176 81930000 UCBSEK1 DS CL6 SEEK ADDR1 A32176 82030000 ORG UCBCCW4+8 ALIGN A32176 82130000 UCBCCW5 DS D CCW5 A32176 82230000 ORG UCBCCW5 ALIGN A32176 82330000 UCBSEK2 DS CL6 SEEK ADDR2 A32176 82430000 ORG UCBCCW3+4 ALIGN A32176 82530000 UCBRR0 DS CL4 R0 READ IN BUFFER I19072 82630019 UCBRHA DS CL5 HA READ IN BUFFER I19072 82730019 UCBRNO DS CL1 REC NO ATTACHED FOR I19072 82830019 * SEARCH I19072 82930019 ORG UCBCCW5+8 ALIGN A32176 83030000 * OVER FLOW ERP WORK AREA 83130019 OFLOCCW1 DS D ERP CONSTRUCTED CH PROGS I19072 83230019 OFLOCCW2 DS D FOR OVER FLOW INCOMPLETE I19072 83330019 OFLOCCW3 DS D AT TRK COND,END OF I19072 83430019 * CYL,OR I19072 83530019 OFLOCCW4 DS D OFLO-CCW 4 A32176 83630000 OFLOCCW5 DS D OFLO-CCW 5 A32176 83730000 EJECT , I19072 83830019 IOB DSECT , I19072 83930019 IOBFL1 DS CL1 FLAGS1,IOB-ERROR,EXCEPTION,RESTART I19072 84030019 IOBFL2 DS CL1 FLAGS2,READ HA,NO EXTNT CHK,CC-HH I19072 84130019 * UPDATE I19072 84230019 IOBSNS DS CL2 FIRST 2 SENSE BYTES I19072 84330019 IOBCOD DS CL1 ECB CODE I19072 84430019 DS AL3 ALIGN A32176 84530000 IOBCSW DS D CSW I19072 84630019 ORG IOBCSW ALIGN A32176 84730000 IOBFL3 DS CL1 TRK COND,NO REC FND,BUS OUT,RESTORE CMD I19072 84830019 ORG IOBCSW+8 ALIGN A32176 84930000 IOBST DS A CP START ADDR A32176 85030000 IOBDCB DS A ASSOCIATED DCB ADDR I19072 85130019 IOBRST DS A CP RESTART ADDR A32176 85230000 ORG IOB+30 ALIGN A32176 85330000 IOBCNT DS H ERROR RETRY COUNT A32176 85430000 IOBDAM DS CL8 MBBCCHH OF USER REQUEST I19072 85530019 EJECT , I19072 85630019 RQE DSECT , I19072 85730019 TSTLNK DS H LINK FIELD A32176 85830000 TSTUCB DS H UCB ADDR A32176 85930000 TSTIOB DS A IOB ADDR A32176 86030000 TSTDEB DS A DEB ADDR A32176 86130000 END , I19072 86230019 ./ ADD SSI=01051041,NAME=IGE0011A,SOURCE=0 TITLE 'IGE0011A - 2495 ERROR RECOVERY PROCEDURES' 00100019 * * 00200019 *TITLE 'IGE0011A' - 2495 ERROR RECOVERY PROCEDURES * 00300019 * * 00400019 *STATUS: CHANGE LEVEL 000 * 00500019 * * 00600019 *FUNCTION/OPERATION: IGE0011A IS SCHEDULED FOR EXECUTION WHENEVER THE* 00700019 * I/O SUPERVISOR DETECTS AN ERROR ASSOCIATED WITH THE 2495 TAPE * 00800019 * CARTRIDGE READER THAT REQUIRES ERROR RECOVERY PROCEDURES. THE * 00900019 * ROUTINES ARE NORMALLY SCHEDULED FOR THE FOLLOWING ERRORS: * 01000019 * * 01100019 * PROGRAM CHECK * 01200019 * PROTECTION CHECK * 01300019 * UNIT CHECK * 01400019 * CHANNEL DATA CHECK * 01500019 * UNIT EXCEPTION * 01600019 * INCORRECT LENGTH * 01700019 * * 01800019 * IF THE CHANNEL CHECK HANDLER (CCH) IS IN THE SYSTEM, THE ERROR * 01900019 * RECOVERY PROCEDURE IS ALSO ENTERED FOR CHANNEL CONTROL CHECKS AND * 02000019 * INTERFACE CONTROL CHECKS. * 02100019 * * 02200019 * THE ROUTINES MAY ALSO BE ENTERED WITH THE FOLLOWING CONDITIONS * 02300019 * FOLLOWING SUCCESSFUL RE-TRY OF A RECOVERABLE ERROR. THESE * 02400019 * CONDITIONS ARE CONSIDERED NORMAL AND ARE TREATED ACCORDINGLY. * 02500019 * * 02600019 * BUSY * 02700019 * CHANNEL END * 02800019 * DEVICE END * 02900019 * * 03000019 * THE ERROR ROUTINES USE THE STANDARD ERROR INTERPRETER ROUTINE * 03100019 * FOR TESTING OF SENSE BITS AND CSW STATUS BITS. THE FOLLOWING * 03200019 * ACTIONS ARE TAKEN DEPENDING UPON THE NATURE OF THE ERROR: * 03300019 * * 03400019 * 1) NORMAL CONDITION OR SUCCESSFUL RE-TRY OF RECOVERABLE ERROR * 03500019 * CONDITION * 03600019 * * 03700019 * IOB EXCEPTION AND ERROR FLAGS ARE CLEARED AND CONTROL IS * 03800019 * TRANSFERRED TO THE STATISTICS UPDATE ROUTINE. * 03900019 * * 04000019 * 2) RECOVERABLE ERROR * 04100019 * * 04200019 * IOB ERROR FLAG IS SET. * 04300019 * IOB EXCEPTION FLAG IS CLEARED. * 04400019 * ERROR COUNTS ARE UPDATED. * 04500019 * REPOSITION AND RESIDUAL READ CCW'S MAY BE CONSTRUCTED IN THE * 04600019 * UCB EXTENSION. * 04700019 * CONTROL IS PASSED TO THE I/O SUPERVISOR VIA SVC 15 AND SVC 3 * 04800019 * TO RE-TRY THE CHANNEL PROGRAM. * 04900019 * * 05000019 * 3) PERMANENT ERROR * 05100019 * * 05200019 * IOB ERROR AND EXCEPTION FLAGS ARE SET. * 05300019 * IOB MESSAGE AND LOGOUT FLAGS MAY BE SET. * 05400019 * CONTROL IS RETURNED TO THE I/O SUPERVISOR EITHER DIRECTLY * 05500019 * THROUGH ISSUANCE OF AN SVC 15 AND AN SVC 3 OR INDIRECTLY BY * 05600019 * FIRST PASSING CONTROL TO THE WTO ROUTINE WHICH IN TURN PASSES * 05700019 * CONTROL TO THE STATISTICS UPDATE ROUTINE AND THE I/O OUTBOARD * 05800019 * RECORDING ROUTINE, IF REQUIRED, AND EVENTUALLY TO THE I/O * 05900019 * SUPERVISOR. * 06000019 * * 06100019 * IF THE CHANNEL CHECK HANDLER (CCH) IS IN THE SYSTEM AND THE * 06200019 * ERROR RECOVERY PROCEDURE IS ENTERED FOR A CHANNEL CONTROL * 06300019 * CHECK OR AN INTERFACE CONTROL CHECK, THE ROUTINES ZERO OUT * 06400019 * THE ERROR RECOVERY PROCEDURE INTERFACE BYTES (ERPIB) CREATED * 06500019 * BY THE CCH AND HANDLE THE ERROR AS A PERMANENT ERROR. * 06600019 * * 06700019 * STATISTICS ARE KEPT FOR THE FOLLOWING ERROR CONDITIONS: * 06800019 * * 06900019 * INTERVENTION REQUIRED * 07000019 * EQUIPMENT CHECK * 07100019 * DATA CHECK * 07200019 * POSITION CHECK * 07300019 * CHANNEL DATA CHECK * 07400019 * * 07500019 *ENTRY POINTS: * 07600019 * * 07700019 * IGE0011A - ERROR RECOVERY PROCEDURE ENTRY POINT * 07800019 * * 07900019 * THE ROUTINES ARE ENTERED INTO THE I/O SUPERVISOR TRANSIENT * 08000019 * AREA AND SCHEDULED FOR EXECUTION BY THE I/O INTERRUPTION * 08100019 * SUPERVISOR. * 08200019 * * 08300019 * DATA PASSED TO THE ROUTINES CONSISTS OF STANDARD SYSTEM CONTROL * 08400019 * BLOCKS. * 08500019 * * 08600019 *INPUT: RQE POINTER IN REGISTER 1. * 08700019 * * 08800019 *OUTPUT: I/O ERROR AND INTERVENTION REQUIRED MESSAGES IN SOME * 08900019 * INSTANCES * 09000019 * * 09100019 *EXTERNAL ROUTINES: NONE * 09200019 * * 09300019 *EXITS-NORMAL: XCTL TO STATISTICS UPDATE ROUTINE FOLLOWING * 09400019 * SUCCESSFUL RECOVERY OF A RE-TRYABLE ERROR OR UPON DETECTION OF * 09500019 * A NORMAL CONDITION * 09600019 * * 09700019 * -ERROR: * 09800019 * * 09900019 * 1) SVC 15 AND SVC 3 EXIT TO I/O SUPERVISOR FOR RE-EXECUTION * 10000019 * OF THE CHANNEL PROGRAM UPON DETECTION OF A RE-TRYABLE ERROR * 10100019 * * 10200019 * 2) XCTL TO WTO ROUTINE FOR ISSUANCE OF AN INTERVENTION * 10300019 * REQUIRED MESSAGE AND QUEUEING OF THE I/O REQUEST IN THE CASE OF * 10400019 * INTERVENTION REQUIRED * 10500019 * * 10600019 * 3) XCTL TO WTO ROUTINE FOR ISSUANCE OF A PERMANENT I/O ERROR * 10700019 * MESSAGE AND UPDATING OF STATISTICS AND LOGREC IN THE CASE OF * 10800019 * SOME PERMANENT ERRORS. * 10900019 * * 11000019 * 4) SVC 15 AND SVC 3 EXIT TO I/O SUPERVISOR IN THE CASE OF SOME * 11100019 * PERMANENT I/O ERRORS. * 11200019 * * 11300019 *TABLES/WORK AREAS: * 11400019 * * 11500019 * 1) INPUT/OUTPUT BLOCK (IOB) * 11600019 * * 11700019 * * 11800019 * **************************************************************** * 11900019 * *IOB- * CHANNEL *IOB * * *IOB *UNREL *START/* * 12000019 * *FLG1 * PROGRAM ERROR * * *EXCEP *FLAG *RESTRT* * 12100019 * * * DESCRIPTION *FLAG * * *FLAG * *FLAG * * 12200019 * **************************************************************** * 12300019 * *IOB- * *SENSE *PURGE * * * * * * * 12400019 * *FLG2 * *BIT *FLAG * * * * * * * 12500019 * * * * * * * * * * * * 12600019 * **************************************************************** * 12700019 * *IOB- * *ENTRY *CHAN *BUS- * *MSG * *LOG- * * 12800019 * *FLG3 * *BIT *DATA *OUT * *TYPE * *OUT * * 12900019 * * * * *CHK *COUNT * * * *FLAG * * 13000019 * * * * *COUNT * * * * * * * 13100019 * **************************************************************** * 13200019 * *IOB * READ POSITION * READ DATA * * 13300019 * *ERROR * CHECK COUNT * CHECK COUNT * * 13400019 * *CNTS * * * * 13500019 * **************************************************************** * 13600019 * * 13700019 * * 13800019 * * 13900019 * 2) UNIT CONTROL BLOCK (UCB) * 14000019 * * 14100019 * * 14200019 * ***************************************************** * 14300019 * +0 * * * * * * 14400019 * ***************************************************** * 14500019 * +4 * * * * * * 14600019 * ***************************************************** * 14700019 * +8 * *STATAB INDEX* * * * 14800019 * ***************************************************** * 14900019 * +12 * * * * 15000019 * ***************************************************** * 15100019 * +16 * * * * 15200019 * ***************************************************** * 15300019 * +20 * * * * 15400019 * ***************************************************** * 15500019 * +24 * UCB EXTENSION POINTER * * 15600019 * ***************************************************** * 15700019 * * 15800019 EJECT 15900019 * * 16000019 * 3) UCB EXTENSION * 16100019 * * 16200019 * * 16300019 * ***************************************************** * 16400019 * +0 * BACKSPACE OR REPOSITION CCW * * 16500019 * ***************************************************** * 16600019 * +8 * RESIDUAL READ CCW OR TIC CCW * * 16700019 * ***************************************************** * 16800019 * +16 * TIC CCW * * 16900019 * ***************************************************** * 17000019 * +24 * IOB CSW STORE * * 17100019 * ***************************************************** * 17200019 * * 17300019 * * 17400019 * 4) STATISTICS UPDATE TABLE * 17500019 * * 17600019 *ATTRIBUTES: RE-ENTRANT * 17700019 * * 17800019 *NOTES: A 32-BYTE UCB EXTENSION IS UTILIZED FOR CONSTRUCTION OF * 17900019 * A BACKSPACE OR REPOSITION CCW, A RESIDUAL READ CCW, A TIC * 18000019 * COMMAND, AND A CSW STORAGE AREA FOR RE-TRYING OF POSITION CHECK, * 18100019 * DATA CHECK, AND CHANNEL DATA CHECK ERRORS. * 18200019 * * 18300019 EJECT 18400019 IGE0011A START 0 18500019 SPACE 3 18600019 * REGISTER DEFINITIONS 18700019 SPACE 2 18800019 TSTREG EQU 1 TWELVE STAR REG - RQE 18900019 UCBEXT EQU 2 UCB EXTENSION 19000019 CRBREG EQU 3 CURRENT RB REG 19100019 CCWREG EQU 4 CCW ADDRESS REGISTER 19200019 LOGRCREG EQU 5 LOGREC DCB ADDRESS 19300019 WKREG1 EQU 5 WORK REGISTER 19400019 WKREG2 EQU 6 WORK REGISTER 19500019 UCBREG EQU 7 UCB REG 19600019 CVTREG EQU 8 CVT REG 19700019 SAVEREG EQU 9 SAVE REG 19800019 IOBREG EQU 10 IOB REG 19900019 LNKREG EQU 12 LINK REG 20000019 WKREG3 EQU 13 WORK REGISTER 20100019 RETREG EQU 14 RETURN REG 20200019 BASEREG EQU 15 BASE REG 20300019 SPACE 2 20400019 * IOB DEFINITION 20500019 SPACE 1 20600019 IOBFLAG1 EQU 0 FLAGS 1 20700019 IOBFLAG2 EQU 1 FLAGS 2 20800019 IOBSENS0 EQU 2 SENSE BYTE 1 20900019 IOBECBCC EQU 4 COMPLETION CODE 21000019 IOBECBPT EQU 4 ECB ADDRESS 21100019 IOBFLAG3 EQU 8 FLAGS 3 21200019 IOBCSW EQU 8 CSW STORAGE 21300019 IOBSIOCC EQU 16 SIO CONDITION CODE 21400019 IOBSTART EQU 17 CHANNEL PROGRAM ADDRESS 21500019 IOBDCBPT EQU 21 DCB POINTER 21600019 IOBRESTR EQU 24 RESTART POINTER 21700019 IOBERRCT EQU 30 ERROR COUNTS 21800019 * BITS 0-3 READ POSITION CHECK 21900019 * 4-7 READ DATA CHECK 22000019 SPACE 1 22100019 * IOBFLAG1 INDICATORS 22200019 SPACE 1 22300019 IOBCP1 EQU X'80' DATA CHAINING 22400019 IOBCP2 EQU X'40' COMMAND CHAINING 22500019 IOBERR EQU X'20' IOB ERROR FLAG 22600019 IOBEX EQU X'04' IOB EXCEPTION FLAG 22700019 IOBSRS EQU X'01' START/RESTART FLAG 22800019 EJECT 22900019 * IOBFLAG3 INDICATORS 23000019 SPACE 2 23100019 IOBENT EQU X'40' IOB ENTRY BIT 23200019 IOBCDCK EQU X'20' CHANNEL DATA CHECK COUNT 23300019 IOBBUS EQU X'10' BUS-OUT ERROR COUNT 23400019 IOBMSG EQU X'04' MESSAGE TYPE 23500019 IOBLOG EQU X'01' LOGOUT FLAG 23600019 SPACE 2 23700019 * TWELVE STAR DEFINITION 23800019 SPACE 1 23900019 TSTLNK EQU 0 FORWARD 12* LINK 24000019 TSTUCB EQU 2 UCB POINTER 24100019 TSTIOB EQU 5 IOB POINTER 24200019 TSTDEB EQU 9 DEB POINTER 24300019 SPACE 2 24400019 * UCB DEFINITION 24500019 SPACE 1 24600019 UCBSTI EQU 9 STATISTICS POINTER 24700019 UCBEXTAD EQU 24 UCB EXTENSION ADDRESS 24800019 SPACE 2 24900019 * UCB EXTENSION DEFINITION 25000019 SPACE 1 25100019 UCBCCW1 EQU 0 REPO OR BACKSPACE CCW 25200019 UCBCCW2 EQU 8 RESIDUAL READ OR TIC 25300019 UCBCCW3 EQU 16 TIC 25400019 EXTWORK EQU 24 WORK AREA 25500019 CSWADD EQU 25 OLD CSW ADDRESS 25600019 CSWCNT EQU 30 OLD CSW COUNT 25700019 SPACE 2 25800019 * CSW INDICATORS 25900019 SPACE 1 26000019 CSWUCK EQU X'02' UNIT CHECK 26100019 CSWCHE EQU X'08' CHANNEL END 26200019 CSWDVE EQU X'04' DEVICE END 26300019 CSWCEDE EQU X'0C' CHANNEL OR DEVICE END 26400019 CSWCDK EQU X'08' CHANNEL DATA CHECK 26500019 SPACE 2 26600019 * CCW FLAGS AND COMMANDS 26700019 SPACE 1 26800019 CCFLAG EQU X'40' COMMAND CHAINING CCW FLAG 26900019 CCWFLAGS EQU X'30' CCW SLI AND SKIP MASK 27000019 CTRLCMD EQU X'03' CONTROL COMMAND 27100019 REPOCMD EQU X'27' CONTROL BACKSPACE 27200019 READCMD EQU X'02' READ 27300019 TICCMD EQU X'08' TIC 27400019 EJECT 27500019 * MISCELLANEOUS DEFINITIONS 27600019 SPACE 1 27700019 FOUR EQU 4 FOUR 27800019 TEN EQU 10 TEN 27900019 HEXTEN EQU X'0A' HEXADECIMAL TEN 28000019 POSCLR EQU X'0F' POSITION CHECK COUNT CLEAR 28100019 DCKCLR EQU X'F0' DATA CHECK COUNT CLEAR 28200019 EXCPER EQU 15 ERROR EXCP 28300019 RETURN EQU 3 SVC RETURN 28400019 IOBCC1 EQU X'10' CONDITION CODE OF SIO 28500019 LOC016 EQU 16 COMMUNICATION TABLE 28600019 VECTXL EQU 44 VECTOR TO XCTL ROUTINE 28700019 VECINT EQU 68 VECTOR TO INTERPRETER ROUTINE 28800019 VECWTO EQU 72 VECTOR TO WTO ROUTINE 28900019 STATAB EQU 112 INDEX TO STATISTICS TABLE 29000019 WTORTN EQU 253 LOAD NAME TO WTO RTN 29100019 STATUP EQU 254 LOAD NAME TO STAT. UPDATE RTN 29200019 IOBEXER EQU IOBEX+IOBERR IOB EX + IOB ERR FLAG 29300019 IOBINCPT EQU X'7E' INTERCEPT CONDITION 29400019 ZERO EQU X'00' ZERO 29500019 STABIT EQU X'7A' SENSE BITS REQUIRING STATISTICS 29600019 INTREQ EQU X'40' INT. REQ. BIT IN SENSE BYTE 29700019 ERRORECB EQU X'7F' IOB ECB ERROR COMPLETION CODE 29800019 SNSDCK EQU X'08' DATACHECK 29900019 CVTDCB EQU 116 LOGREC DCB POINTER 30000019 LASTERIB EQU X'FF' LAST ERIB TABLE ENTRY 30100019 TICTEST1 EQU X'07' TIC COMMAND TEST 1 30200019 TICTEST2 EQU X'08' TIC COMMAND TEST 2 30300019 CHADCK EQU X'01' STAT TABLE CHAN DATA CHK ENTRY 30400019 LEFTTEN EQU X'A0' HEXIDECIMAL TEN 30500019 CCCICC EQU X'06' CHANNEL CTRL CHK OR INT CTRL CHK 30600019 EJECT 30700019 * 2495 ERROR RECOVERY PROCEDURES 30800019 SPACE 1 30900019 * THE FOLLOWING IS A LIST OF ERRORS HANDLED BY THIS ERROR 31000019 * RECOVERY PROCEDURE AND THE MAIN PROCESSING ROUTINE ENTRY 31100019 * POINT ASSOCIATED WITH EACH. 31200019 * 31300019 * CHANNEL CONTROL CHECK - ERR130 31400019 * INTERFACE CONTROL CHECK - ERR130 31500019 * PROGRAM CHECK - ERR040 31600019 * PROTECTION CHECK - ERR040 31700019 * UNIT CHECK - ERR045 31800019 * CHANNEL DATA CHECK - ERR070 31900019 * UNIT EXCEPTION - ERR120 32000019 * INCORRECT LENGTH - ERR120 32100019 * EQUIPMENT CHECK - ERR055 32200019 * BUS-OUT CHECK - ERR050 32300019 * INTERVENTION REQUIRED - ERR065 32400019 * POSITION CHECK - ERR080 32500019 * DATA CHECK - ERR100 32600019 * COMMAND REJECT - ERR060 32700019 SPACE 2 32800019 * THIS SECTION SETS UP CONTROL BLOCK POINTERS AND TESTS FOR 32900019 * DATA CHAINING AND MIXED CHAINING. 33000019 SPACE 2 33100019 USING ER2495,BASEREG INDICATE BASE REGISTER 33200019 ER2495 L IOBREG,TSTIOB-1(TSTREG) LOAD IOB ADDRESS 33300019 L CVTREG,LOC016 LOAD CVT ADDRESS 33400019 LH UCBREG,TSTUCB(TSTREG) LOAD UCB ADDRESS 33500019 L UCBEXT,UCBEXTAD(UCBREG) LOAD ADDRESS OF EXTENSION 33600019 OI IOBFLAG1(IOBREG),IOBEXER SET IOB EX AND ERROR FLAGS 33700019 TM IOBFLAG1(IOBREG),IOBCP1 DATA CHAINING OR MIXED CHAINING 33800019 BO ERR130 BR YES 33900019 SPACE 2 34000019 * THIS SECTION DEVELOPS THE FAILING CCW ADDRESS, TESTS 34100019 * WHETHER OR IT IS ZERO OR NEGATIVE, AND TESTS FOR THE SAME 34200019 * ERROR IF THIS IS NOT THE FIRST ENTRY TO THE ERP. IF IT 34300019 * IS NOT THE SAME ERROR, THIS SECTION ZEROES ALL RECOVERABLE 34400019 * ERROR COUNTS AND STORES THE NEW CSW 34500019 SPACE 2 34600019 ERR015 L CCWREG,IOBCSW(IOBREG) LOAD CCW ADDRESS 34700019 LA CCWREG,0(CCWREG) ZERO HIGH-ORDER BYTE 34800019 SH CCWREG,CCWLNG BACK UP ONE CCW 34900019 LTR CCWREG,CCWREG CCW ADDRESS ZERO OR NEGATIVE 35000019 BNP ERR150 BR YES, INTERCEPT CONDITION 35100019 TM IOBFLAG3(IOBREG),IOBENT ENTRY BIT ON 35200019 BZ ERR020 BR NO 35300019 TM IOBFLAG1(IOBREG),IOBCP2 COMMAND CHAINING SPECIFIED 35400019 BZ ERR025 BR NO 35500019 LA WKREG1,UCBCCW1(UCBEXT) TEST CURRENT CCW WITHIN 35600019 CLR WKREG1,CCWREG EXTENSION 35700019 BE ERR025 BR YES 35800019 LA WKREG1,UCBCCW2(UCBEXT) 2ND CCW 35900019 CLR WKREG1,CCWREG 36000019 BE ERR025 BR YES 36100019 CLC CSWADD(3,UCBEXT),IOBCSW+1(IOBREG) SAME CCW WITHIN 36200019 * CHAIN 36300019 BE ERR025 BR YES 36400019 MVI IOBFLAG3(IOBREG),ZERO CLEAR COUNTERS 36500019 MVI IOBERRCT(IOBREG),ZERO CLEAR COUNTERS 36600019 ERR020 MVC CSWADD(7,UCBEXT),IOBCSW+1(IOBREG) STORE NEW CSW 36700019 SPACE 2 36800019 * IF UNIT CHECK IS ON, THIS SECTION OR'S THE SENSE BYTE INTO 36900019 * THE FIRST BYTE OF THE STATISTICS TABLE WORK AREA. IF 37000019 * CHANNEL DATA CHECK IS ON, IT SETS BIT 7 OF BYTE TWO OF THE 37100019 * STATISTICS TABLE WORK AREA TO ONE. 37200019 SPACE 2 37300019 ERR025 TM IOBCSW+5(IOBREG),CSWCDK CHANNEL DATA CHECK 37400019 BO ERR026 BRANCH IF YES 37500019 TM IOBCSW+4(IOBREG),CSWUCK TEST IF UNIT CHECK 37600019 BZ ERR030 BR IF NO 37700019 ERR026 L WKREG2,STATAB(CVTREG) LOAD STATISTICS TABLE ADDRESS 37800019 XR WKREG1,WKREG1 CLEAR WORK REGISTER 37900019 IC WKREG1,UCBSTI(UCBREG) LOAD UCB STATAB PTR 38000019 ERR027 CH UCBREG,0(0,WKREG2) DEVICE SUPPORTED BY THIS SECTION 38100019 BL ERR028 BR YES 38200019 LA WKREG2,2(WKREG2) INCREMENT TO NEXT CONTROL ENTRY 38300019 LA WKREG1,256(WKREG1) INCREMENT STATAB POINTER 38400019 B ERR027 LOOP TO CHECK THIS SECTION 38500019 ERR028 MH WKREG1,STALNG MULTIPLY BY ENTRY LENGTH 38600019 AR WKREG2,WKREG1 ADD TO STATISTICS TABLE ADDRESS 38700019 OC 8(1,WKREG2),IOBSENS0(IOBREG) OR SENSE BYTE INTO TABLE 38800019 NI 8(WKREG2),STABIT MASK OUT UNWANTED BITS 38900019 TM IOBCSW+5(IOBREG),CSWCDK CHANNEL DATA CHECK 39000019 BZ ERR030 BRANCH IF NO 39100019 OI 9(WKREG2),CHADCK SET BIT 7 OF STATISTICS TABLE 39200019 * WORK AREA BYTE 2 TO ONE 39300019 EJECT 39400019 * THIS SECTION USES THE COMMON INTERPRETER ROUTINE TO ANALYZE 39500019 * CSW STATUS BITS. 39600019 SPACE 2 39700019 ERR030 LR SAVEREG,BASEREG SAVE BASE ADDRESS 39800019 L BASEREG,VECINT(CVTREG) LOAD ADDR INTERPRETER RTN 39900019 ERR033 BALR LNKREG,BASEREG LINK TO INTERPRETER RTN 40000019 SPACE 1 40100019 DC X'1D' CHANNEL CONTROL CHECK ID 40200019 DC AL1(ERR034-ERR033-2) CHANNEL CONTROL CHECK DISP 40300019 DC X'1E' INTERFACE CONTROL CHECK ID 40400019 DC AL1(ERR034-ERR033-4) INTERFACE CONTROL CHECK DISP 40500019 DC X'1A' PROGRAM CHECK ID 40600019 DC AL1(ERR040-ERR033-6) PROGRAM CHECK DISPLACEMENT 40700019 DC X'1B' PROTECTION CHECK IDENT 40800019 DC AL1(ERR040-ERR033-8) PROTECTION CHECK DISPLACEMENT 40900019 DC X'16' UNIT CHECK ID 41000019 DC AL1(ERR045-ERR033-10) UNIT CHECK DISPLACEMENT 41100019 DC X'1C' CHANNEL DATA CHECK ID 41200019 DC AL1(ERR035-ERR033-12) CHANNEL DATA CHECK DISP 41300019 DC X'17' UNIT EXCEPTION ID 41400019 DC AL1(ERR036-ERR033-14) UNIT EXCEPTION DISPLACEMENT 41500019 DC X'19' INCORRECT LENGTH ID 41600019 DC AL1(ERR036-ERR033-16) INCORRECT LENGTH DISPL 41700019 DC X'2F' END OF TEST ID 41800019 DC AL1(ERR037-ERR033-18) END OF TEST DISPLACEMENT 41900019 SPACE 1 42000019 ERR034 B ERR130 CCC AND ICC PROCESSING 42100019 ERR035 B ERR070 CHANNEL DATA CHECK PROCESSING 42200019 ERR036 B ERR120 U.E. AND I.L. PROCESSING 42300019 ERR037 B ERR125 CORRECTED ERROR PROCESSING 42400019 SPACE 2 42500019 * PERMANENT ERROR EXIT - NO LOGOUT OR MESSAGE OUTPUT 42600019 SPACE 1 42700019 ERR040 NI IOBFLAG1(IOBREG),X'FF'-IOBERR CLEAR ERROR FLAG 42800019 SVC EXCPER ERROR EXCP 42900019 SVC RETURN RETURN 43000019 EJECT 43100019 * THIS SECTION USES THE COMMON INTERPRETER ROUTINE TO ANALYZE 43200019 * CSW STATUS BITS AND SENSE BITS ON A UNIT CHECK CONDITION. 43300019 SPACE 1 43400019 ERR045 LR SAVEREG,BASEREG SAVE BASE ADDRESS 43500019 L BASEREG,VECINT(CVTREG) LOAD ADDR INTERPRETER RTN 43600019 ERR046 BALR LNKREG,BASEREG LINK TO INTERPRETER RTN 43700019 SPACE 1 43800019 DC X'05' SENSE BIT 5 (NOT USED) 43900019 DC AL1(ERR060-ERR046-2) SENSE BIT 5 DISPLACEMENT 44000019 DC X'07' SENSE BIT 7 (NOT USED) 44100019 DC AL1(ERR060-ERR046-4) SENSE BIT 7 DISPLACEMENT 44200019 DC X'03' EQUIPMENT CHECK ID 44300019 DC AL1(ERR055-ERR046-6) EQUIPMENT CHECK DISP 44400019 DC X'1C' CHANNEL DATA CHECK ID 44500019 DC AL1(ERR070-ERR046-8) CHANNEL DATA CHECK DISP 44600019 DC X'02' BUS-OUT CHECK ID 44700019 DC AL1(ERR050-ERR046-10) BUS-OUT CHECK DISP 44800019 DC X'01' INTERVENTION REQUIRED ID 44900019 DC AL1(ERR065-ERR046-12) INTERVENTION REQ'D DISP 45000019 DC X'06' POSITION CHECK ID 45100019 DC AL1(ERR047-ERR046-14) POSITION CHECK DISP 45200019 DC X'04' DATA CHECK ID 45300019 DC AL1(ERR048-ERR046-16) DATA CHECK DISP 45400019 DC X'00' COMMAND REJECT ID 45500019 DC AL1(ERR060-ERR046-18) COMMAND REJECT DISP 45600019 DC X'2F' END OF TEST ID 45700019 DC AL1(ERR060-ERR046-20) PERMANENT ERROR PROCESSING 45800019 SPACE 1 45900019 ERR047 B ERR080 POSITION CHECK PROCESSING 46000019 ERR048 B ERR100 DATA CHECK PROCESSING 46100019 SPACE 2 46200019 * BUS-OUT CHECK PROCESSING 46300019 SPACE 1 46400019 * IF THE BUS-OUT ERROR OCCURS AT INITIAL SELECTION, THE 46500019 * THE FAILING CCW IS RE-EXECUTED ONE TIME. 46600019 SPACE 2 46700019 ERR050 TM IOBCSW+4(IOBREG),CSWCEDE CHANNEL OR DEVICE END 46800019 BNZ ERR055 BR-YES (NOT INITIAL SELECTION) 46900019 TM IOBFLAG3(IOBREG),IOBBUS ERROR COUNT EQUAL TO ONE 47000019 BO ERR055 BR-YES 47100019 OI IOBFLAG3(IOBREG),IOBBUS SET ERROR COUNT TO ONE 47200019 ERR053 OI IOBFLAG3(IOBREG),IOBENT SET IOB ENTRY BIT ON 47300019 SVC EXCPER ERROR EXCP 47400019 SVC RETURN RETURN 47500019 EJECT 47600019 * PERMANENT ERROR EXIT - WITH WTO MESSAGE AND LOGOUT 47700019 SPACE 1 47800019 * IF THE FAILING CCW IS THE READ CCW WITHIN THE EXTENSION, 47900019 * THE IOB CSW ADDRESS IS REPLACED BY THE ORIGINAL FAILING CCW 48000019 * ADDRESS WHICH HAS BEEN STORED IN THE UCB EXTENSION. 48100019 SPACE 2 48200019 ERR055 OI IOBFLAG3(IOBREG),IOBLOG SET LOG OUT BIT 48300019 ERR060 OI IOBFLAG3(IOBREG),IOBMSG SET MESSAGE BIT 48400019 NI IOBFLAG1(IOBREG),X'FF'-IOBERR CLEAR ERROR FLAG 48500019 LA WKREG1,UCBCCW2(UCBEXT) SET POINTER TO READ CCW WITHIN 48600019 * EXTENSION 48700019 CLR CCWREG,WKREG1 IS IT READ CCW 48800019 BNE ERR062 BR NO 48900019 MVC IOBCSW+1(3,IOBREG),CSWADD(UCBEXT) RESTORE ORIGINAL CSW 49000019 ERR062 LA WKREG3,WTORTN GET LOAD NAME TO WTO RTN 49100019 ERR064 L RETREG,VECTXL(CVTREG) GET ADDRESS XCTL ROUTINE 49200019 BR RETREG XCTL TO WTO RTN 49300019 EJECT 49400019 * INTERVENTION REQUIRED 49500019 SPACE 2 49600019 * ONE OF FOUR SITUATIONS IS POSSIBLE: 49700019 * 49800019 * 1) THE INTERVENTION REQUIRED OCCURRED AT INITIAL SELECTION 49900019 * (NO CHANNEL OR DEVICE END) 50000019 * 50100019 * 2) THE INTERVENTION REQUIRED OCCURRED DURING TRANSFER 50200019 * OF DATA. (INDICATED BY CHANNEL END ALONE OR BY CHANNEL 50300019 * END AND DEVICE END IF COMMAND CHAINING WAS USED) 50400019 * 50500019 * 3) INTERVENTION REQUIRED OCCURRED FOLLOWING A TRANSFER 50600019 * OF DATA DURING WHICH A UNIT CHECK CONDITION OCCURRED 50700019 * BUT PRIOR TO ISSUANCE OF THE SENSE COMMAND (INDICATED 50800019 * BY CHANNEL END, UNIT CHECK, AND SOME OTHER ERROR) 50900019 * 51000019 * 4) INTERVENTION REQUIRED OCCURRED AT DEVICE END. IN THIS 51100019 * CASE, THE STATUS IS STORED IN THE UCB UNTIL THE NEXT 51200019 * SIO IS ISSUED. AT THAT TIME THE CSW IS TRANSFERRED TO 51300019 * THE IOB AND AN INTERCEPT CONDITION IS INDICATED. (THE 51400019 * IOB ECB CONDITION CODE IS SET TO '7E'.) 51500019 SPACE 2 51600019 ERR065 TM IOBCSW+4(IOBREG),CSWCEDE CHANNEL OR DEVICE END 51700019 BNZ ERR067 BR YES 51800019 SPACE 1 51900019 * ON INITIAL SELECTION XCTL TO THE WTO ROUTINE TO ISSUE THE 52000019 * INTERVENTION REQUIRED MESSAGE AND RETRY THE COMMAND 52100019 SPACE 1 52200019 ERR066 NI IOBFLAG3(IOBREG),X'FF'-IOBMSG SET IOB MSG BIT TO ZERO 52300019 OI IOBFLAG3(IOBREG),IOBENT SET IOB ENTRY BIT 52400019 B ERR062 BRANCH TO XCTL TO WTO ROUTINE 52500019 SPACE 1 52600019 * ON A COMPLETED READ (CHANNEL END OR DEVICE END PRESENT) 52700019 * IGNORE THE INTERVENTION REQUIRED AND CONTINUE CHECKING AS 52800019 * INDICATED IN THE STANDARDS CHART 52900019 SPACE 1 53000019 ERR067 LR SAVEREG,BASEREG SAVE BASE ADDRESS 53100019 L BASEREG,VECINT(CVTREG) LOAD ADDR INTERPRETER RTN 53200019 ERR068 BALR LNKREG,BASEREG LINK TO INTERPRETER RTN 53300019 SPACE 1 53400019 DC X'06' POSITION CHECK ID 53500019 DC AL1(ERR080-ERR068-2) POSITION CHECK DISP 53600019 DC X'04' DATA CHECK ID 53700019 DC AL1(ERR0683-ERR068-4) DATA CHECK DISP 53800019 DC X'00' COMMAND REJECT ID 53900019 DC AL1(ERR0684-ERR068-6) COMMAND REJECT DISP 54000019 DC X'2F' END OF TEST 54100019 DC AL1(ERR0685-ERR068-8) CORRECTED ERROR PROCESSING 54200019 SPACE 1 54300019 ERR0683 B ERR100 DATA CHECK 54400019 ERR0684 B ERR060 PERMANENT ERROR 54500019 ERR0685 B ERR125 CORRECTED ERROR 54600019 SPACE 1 54700019 EJECT 54800019 * CHANNEL DATA CHECK PROCESSING 54900019 SPACE 1 55000019 * IF THE CHANNEL DATA CHECK OCCURRED ON A READ COMMAND, 55100019 * A REPOSITION CCW AND A TIC TO THE FAILING CCW ARE CONSTRUCTED 55200019 * IN THE UCB EXTENSION. SVC 15 AND SVC 3 ARE ISSUED TO RETRY 55300019 * THE OPERATION ONE TIME. 55400019 SPACE 2 55500019 ERR070 TM 0(CCWREG),CTRLCMD CONTROL COMMAND 55600019 BO ERR075 BR-YES 55700019 TM IOBFLAG3(IOBREG),IOBCDCK ERROR COUNT EQUAL TO ONE 55800019 BO ERR055 BR-YES 55900019 OI IOBFLAG3(IOBREG),IOBCDCK SET COUNT EQUAL TO ONE 56000019 SPACE 1 56100019 * IF THE CURRENT ERROR OCCURRED ON A RETRY OPERATION AND THE 56200019 * PREVIOUS ERROR WAS DIFFERENT, CLEAR ALL OTHER COUNTS. 56300019 SPACE 1 56400019 CLC CSWCNT(2,UCBEXT),IOBCSW+6(IOBREG) COMPARE RESIDUAL CNT 56500019 BE ERR071 BR EQUAL 56600019 NI IOBFLAG3(IOBREG),X'FF'-IOBBUS-IOBCDCK CLEAR BUS-OUT 56700019 * AND CHANNEL DATA CHECK COUNTS 56800019 MVI IOBERRCT(IOBREG),ZERO CLEAR POSITION AND DATA CHECK 56900019 * COUNTS 57000019 MVC CSWCNT(2,UCBEXT),IOBCSW+6(IOBREG) STORE NEW COUNT 57100019 ERR071 LH WKREG2,6(CCWREG) LOAD ORIGINAL COUNT 57200019 SH WKREG2,IOBCSW+6(IOBREG) SUBTRACT RESIDUAL COUNT 57300019 STH WKREG2,UCBCCW1+6(UCBEXT) STORE REPOSITION COUNT 57400019 LA WKREG1,8(UCBEXT) SET POINTER TO 2ND CCW WITHIN 57500019 * EXTENSION 57600019 CLR CCWREG,WKREG1 CURRENT CCW WITHIN EXTENSION 57700019 BE ERR073 BR YES 57800019 MVI UCBCCW1(UCBEXT),REPOCMD SET UP REPOSITION COMMAND 57900019 MVC UCBCCW1+1(3,UCBEXT),1(CCWREG) SET DUMMY ADDRESS 58000019 MVI UCBCCW1+4(UCBEXT),CCWFLAGS SET SLI AND SKIP MASK 58100019 NC UCBCCW1+4(1,UCBEXT),4(CCWREG) SET FLAGS IF REQUIRED 58200019 OI UCBCCW1+4(UCBEXT),CCFLAG SET COMMAND CHAINING FLAG 58300019 ST CCWREG,UCBCCW2(UCBEXT) STORE CCW ADDRESS IN TIC 58400019 MVI UCBCCW2(UCBEXT),TICCMD SET UP TIC COMMAND 58500019 ERR072 LA WKREG1,UCBCCW1(UCBEXT) LOAD ADDRESS REPO CCW 58600019 ST WKREG1,IOBRESTR(IOBREG) STORE ADDR IN RESTART 58700019 OI IOBFLAG1(IOBREG),IOBSRS SET RESTART FLAG 58800019 OI IOBFLAG3(IOBREG),IOBENT SET IOB ENTRY BIT ON 58900019 ERR073 SVC EXCPER ERROR EXCP 59000019 SVC RETURN RETURN 59100019 EJECT 59200019 * CHANNEL DATA CHECK - CONTROL COMMAND 59300019 SPACE 1 59400019 * IF THE CHANNEL DATA CHECK OCCURRED ON A CONTROL COMMAND, 59500019 * CONTINUE TESTING THE REMAINING SENSE BITS. IF NO OTHER 59600019 * ERROR IS FOUND, IGNORE THE CHANNEL DATA CHECK AND 59700019 * CONTINUE. 59800019 SPACE 2 59900019 ERR075 TM IOBCSW+4(IOBREG),CSWUCK TEST IF UNIT CHECK 60000019 BZ ERR125 BR NO 60100019 LR SAVEREG,BASEREG SAVE BASE ADDRESS 60200019 L BASEREG,VECINT(CVTREG) LOAD ADDR INTERPRETER RTN 60300019 ERR077 BALR LNKREG,BASEREG LINK TO INTERPRETER RTN 60400019 SPACE 1 60500019 DC X'02' BUS OUT IDENT 60600019 DC AL1(ERR078-ERR077-2) BUS-OUT DISPLACEMENT 60700019 DC X'01' INTERVENTION REQUIRED ID 60800019 DC AL1(ERR0783-ERR077-4) INTERVENTION REQ'D DISP 60900019 DC X'06' POSITION CHECK ID 61000019 DC AL1(ERR080-ERR077-6) POSITION CHECK DISP 61100019 DC X'04' DATA CHECK ID 61200019 DC AL1(ERR100-ERR077-8) DATA CHECK DISPLACEMENT 61300019 DC X'00' COMMAND REJECT ID 61400019 DC AL1(ERR0785-ERR077-10) COMMAND REJECT DISPLACEMENT 61500019 DC X'2F' END OF TEST 61600019 DC AL1(ERR125-ERR077-12) CORRECTED ERROR PROCESSING 61700019 SPACE 1 61800019 ERR078 B ERR050 BUS-OUT 61900019 ERR0783 B ERR065 INTERVENTION REQ'D PROCESSING 62000019 ERR0785 B ERR060 COMMAND REJECT PROCESSING 62100019 EJECT 62200019 * POSITION CHECK PROCESSING 62300019 SPACE 1 62400019 * IF THE POSITION CHECK OCCURRED ON A READ COMMAND, 62500019 * BACKSPACE CCW AND A RESIDUAL READ CCW ARE CONSTRUCTED 62600019 * IN THE UCB EXTENSION AND SVC 15 AND SVC 3 ARE ISSUED TO 62700019 * RE-TRY THE OPERATION. IF COMMAND CHAINING WAS SPECIFIED, 62800019 * A TIC COMMAND WHICH BRANCHES TO THE NEXT COMMAND IN THE 62900019 * CHAIN IS ALSO CONSTRUCTED. 63000019 SPACE 2 63100019 ERR080 TM 0(CCWREG),CTRLCMD CONTROL COMMAND 63200019 BO ERR055 BR-YES 63300019 SPACE 1 63400019 * IF THE CURRENT ERROR OCCURRED ON A RETRY OPERATION AND IS 63500019 * DIFFERENT FROM THE ORIGINAL ERROR, CLEAR ALL OTHER COUNTS. 63600019 SPACE 1 63700019 CLC CSWCNT(2,UCBEXT),IOBCSW+6(IOBREG) COMPARE RESIDUAL CNT 63800019 BE ERR082 BR EQUAL 63900019 NI IOBFLAG3(IOBREG),X'FF'-IOBCDCK-IOBBUS CLEAR BUS-OUT 64000019 * AND CHANNEL DATA CHECK COUNTS 64100019 MVI IOBERRCT(IOBREG),ZERO CLEAR DATA CHECK AND POSITION 64200019 * CHECK COUNTS 64300019 MVC CSWCNT(2,UCBEXT),IOBCSW+6(IOBREG) STORE NEW COUNT 64400019 ERR082 TM IOBERRCT(IOBREG),LEFTTEN COUNT EQUAL TO TEN 64500019 BO ERR055 BR YES 64600019 XR WKREG1,WKREG1 CLEAR REGISTER 64700019 IC WKREG1,IOBERRCT(IOBREG) INSERT ERROR COUNT 64800019 LA WKREG1,16(WKREG1) INCREMENT POSITION CHECK COUNT 64900019 STC WKREG1,IOBERRCT(IOBREG) REPLACE OLD COUNT 65000019 SPACE 1 65100019 * CONSTRUCT BACKSPACE CCW 65200019 SPACE 1 65300019 ERR085 MVI UCBCCW1(UCBEXT),REPOCMD SET UP BACKSPACE COMMAND 65400019 MVC UCBCCW1+1(3,UCBEXT),1(CCWREG) SET UP DUMMY ADDRESS 65500019 MVI UCBCCW1+4(UCBEXT),CCWFLAGS SET SLI AND SKIP MASK 65600019 NC UCBCCW1+4(1,UCBEXT),4(CCWREG) SET FLAGS IF REQUIRED 65700019 OI UCBCCW1+4(UCBEXT),CCFLAG SET COMMAND CHAINING FLAG 65800019 MVC UCBCCW1+6(2,UCBEXT),BACKCNT SET COUNT EQUAL TO ONE 65900019 SPACE 1 66000019 * CONSTRUCT RESIDUAL READ CCW 66100019 SPACE 1 66200019 LH WKREG2,IOBCSW+6(IOBREG) LOAD RESIDUAL COUNT 66300019 LA WKREG2,1(WKREG2) INCREMENT BY ONE 66400019 LH WKREG1,6(CCWREG) LOAD ORIGINAL COUNT 66500019 STH WKREG2,UCBCCW2+6(UCBEXT) STORE RESIDUAL READ COUNT 66600019 SR WKREG1,WKREG2 SUBTRACT RESIDUAL COUNT FROM 66700019 * ORIGINAL COUNT 66800019 L WKREG2,0(CCWREG) LOAD ORIGINAL DATA ADDRESS 66900019 LA WKREG2,0(WKREG2) CLEAR LEFT BYTES 67000019 AR WKREG2,WKREG1 INCREMENT TO LAST BYTE FILLED 67100019 ST WKREG2,UCBCCW2(UCBEXT) STORE NEW DATA ADDRESS 67200019 MVI UCBCCW2(UCBEXT),READCMD SET UP READ COMMAND 67300019 LA WKREG1,UCBCCW2(UCBEXT) SET POINTER TO READ CCW WITHIN 67400019 * EXTENSION 67500019 CLR CCWREG,WKREG1 CURRENT CCW WITHIN EXTENSION 67600019 BE ERR073 BR YES 67700019 SPACE 1 67800019 * SET UP CCW FLAGS 67900019 SPACE 1 68000019 MVI UCBCCW2+4(UCBEXT),CCWFLAGS SET SLI MASK 68100019 NC UCBCCW2+4(1,UCBEXT),4(CCWREG) SET SLI FLAG IF REQUIRED 68200019 SPACE 1 68300019 * ON COMMAND CHAINING CONSTRUCT TIC TO NEXT CCW 68400019 SPACE 1 68500019 TM IOBFLAG1(IOBREG),IOBCP2 COMMAND CHAINING SPECIFIED 68600019 BZ ERR072 BR NO 68700019 TM 4(CCWREG),IOBCP2 COMMAND CHAINING THIS CCW 68800019 BZ ERR072 BR-NO 68900019 OI UCBCCW2+4(UCBEXT),CCFLAG SET COMMAND CHAINING FLAG 69000019 SPACE 1 69100019 * IF NEXT INSTRUCTION IS TIC, REMOVE ADDRESS AND INSERT IN 69200019 * TRANSFERRING TIC 69300019 SPACE 1 69400019 TM 8(CCWREG),TICTEST1 COMMAND CODE BITS 5,6,7 ALL ZERO 69500019 BNZ ERR090 BRANCH NO 69600019 TM 8(CCWREG),TICTEST2 COMMAND CODE BIT 4 SET 69700019 BZ ERR090 BRANCH NO 69800019 L WKREG1,8(CCWREG) LOAD CCW ADDRESS 69900019 LA WKREG1,0(WKREG1) CLEAR COMMAND CODE 70000019 B ERR092 70100019 ERR090 LA WKREG1,8(CCWREG) LOAD FAILING CCW ADDRESS+8 70200019 ERR092 ST WKREG1,UCBCCW3(UCBEXT) STORE NEXT CCW ADDR IN TIC 70300019 MVI UCBCCW3(UCBEXT),TICCMD SET UP TIC COMMAND 70400019 B ERR072 BR TO CONTINUE PROCESSING 70500019 EJECT 70600019 * DATA CHECK PROCESSING 70700019 SPACE 1 70800019 * IF THE DATA CHECK OCCURRED ON A READ COMMAND, CONSTRUCT 70900019 * A BACKSPACE CCW AND A RESIDUAL READ CCW IN THE UCB EXTENSION 71000019 * AND RETRY THE OPERATION. 71100019 SPACE 2 71200019 ERR100 TM 0(CCWREG),CTRLCMD CONTROL COMMAND 71300019 BO ERR055 BR - YES 71400019 SPACE 1 71500019 * IF THIS ERROR OCCURRED ON A RETRY OPERATION AND IS DIFFERENT 71600019 * FROM THE ORIGINAL ERROR, CLEAR ALL OTHER COUNTS. 71700019 SPACE 1 71800019 CLC CSWCNT(2,UCBEXT),IOBCSW+6(IOBREG) COMPARE RESIDUAL CNT 71900019 BE ERR110 BR EQUAL 72000019 NI IOBFLAG3(IOBREG),X'FF'-IOBCDCK-IOBBUS CLEAR BUS-OUT 72100019 * AND CHANNEL DATA CHECK COUNTS 72200019 MVI IOBERRCT(IOBREG),ZERO CLEAR POSITION CHECK AND DATA 72300019 * CHECK COUNTS 72400019 MVC CSWCNT(2,UCBEXT),IOBCSW+6(IOBREG) STORE NEW COUNT 72500019 ERR110 TM IOBERRCT(IOBREG),HEXTEN COUNT EQUAL TO TEN 72600019 BO ERR055 BR YES 72700019 XR WKREG1,WKREG1 72800019 IC WKREG1,IOBERRCT(IOBREG) INSERT ERROR COUNT 72900019 LA WKREG1,1(WKREG1) INCREMENT DATA CHECK COUNT 73000019 STC WKREG1,IOBERRCT(IOBREG) REPLACE OLD COUNT 73100019 B ERR085 BR TO SET UP BACKSPACE 73200019 * AND RESIDUAL READ CCW'S 73300019 SPACE 3 73400019 * UNIT EXCEPTION OR INCORRECT LENGTH 73500019 SPACE 1 73600019 * IF UNIT EXCEPTION OR INCORRECT LENGTH OCCURS ON THE FIRST 73700019 * ENTRY TO THE ERP, IT SET AS A PERMANENT ERROR. IF IT OCCURS 73800019 * FOLLOWING THE RETRY OF ANOTHER ERROR, IT IS SET AS A 73900019 * CORRECTED ERROR TO FORCE THE I/O SUPERVISOR TO SCHEDULE 74000019 * NORMAL UNIT EXCEPTION AND INCORRECT LENGTH PROCESSING (SUCH 74100019 * AS ENTERING APPENDAGES). WHEN THE ERP IS RE-SCHEDULED, THE 74200019 * ERROR IS THEN INDICATED AS A PERMANENT ERROR. 74300019 SPACE 2 74400019 ERR120 TM IOBFLAG3(IOBREG),IOBENT ENTRY BIT ON 74500019 BZ ERR040 BR NO 74600019 EJECT 74700019 * SUCCESSFUL RECOVERY - RESET ALL ERROR INDICATORS AND COUNTS 74800019 SPACE 1 74900019 ERR125 NI IOBFLAG1(IOBREG),X'FF'-IOBEXER CLEAR IOB EXCEPTION AND 75000019 * ERROR FLAGS 75100019 NI IOBFLAG1(IOBREG),X'FF'-IOBSRS CLEAR IOB RESTART FLAG 75200019 MVI IOBERRCT(IOBREG),ZERO CLEAR ADDITIONAL ERROR COUNTS 75300019 SPACE 1 75400019 * IF THE ERROR OCCURRED ON THE READ CCW WITHIN THE UCB EXTEN- 75500019 * SION, REPLACE THE CURRENT IOB CSW ADDRESS WITH THE ORIGINAL 75600019 * CSW ADDRESS WHICH WAS STORED IN THE UCB EXTENSION. 75700019 SPACE 1 75800019 LA WKREG1,UCBCCW2(UCBEXT) SET POINTER TO READ CCW WITHIN 75900019 * EXTENSION 76000019 CLR CCWREG,WKREG1 CURRENT CCW READ CCW 76100019 BNE ERR127 BR NO 76200019 MVC IOBCSW+1(3,IOBREG),CSWADD(UCBEXT) RESTORE ORIGINAL CSW 76300019 * ADDRESS 76400019 ERR127 NC IOBCSW+4(2,IOBREG),CSWMASK CLEAR ABNORMAL CSW BITS 76500019 ERR128 MVI IOBFLAG3(IOBREG),ZERO CLEAR IOB ENTRY, LOGOUT, AND 76600019 * MSG BITS AND ERROR COUNTS 76700019 LA WKREG3,STATUP GET LOAD NAME TO STATISTICS 76800019 * UPDATE 76900019 L RETREG,VECTXL(CVTREG) GET ADDRESS XCTL ROUTINE 77000019 BR RETREG XCTL TO STATISTICS UPDATE RTN 77100019 EJECT 77200019 * CLEAR ERPIB ON CHANNEL CONTROL CHECK, INTERFACE CONTROL 77300019 * CHECK, DATA CHAINING, MIXED CHAINING, OR UNRECOVERABLE 77400019 * INTERCEPT CONDITION 77500019 SPACE 2 77600019 ERR130 TM IOBCSW+5(IOBREG),CCCICC CHANNEL CONTROL CHECK OR 77700019 * INTERFACE CONTROL CHECK 77800019 BZ ERR055 BR NO 77900019 L LOGRCREG,CVTDCB(CVTREG) LOAD ADDR LOGREC DCB 78000019 L WKREG1,0(LOGRCREG) LOAD PARAMETER TABLE ADDRESS 78100019 L WKREG2,0(WKREG1) LOAD ERPIB TABLE ADDRESS 78200019 * 78300019 ERR132 TM 0(WKREG2),LASTERIB LAST TABLE ENTRY 78400019 BO ERR055 BR - YES 78500019 CL UCBREG,0(WKREG2) SAME UCB ADDRESS 78600019 BE ERR135 BR - YES 78700019 LA WKREG2,8(WKREG2) INCREMENT TO NEXT ERPIB 78800019 B ERR132 BR TO LOOP 78900019 ERR135 XC 0(8,WKREG2),0(WKREG2) CLEAR ERPIB 79000019 ERR140 B ERR060 BR TO PERMANENT ERROR PROC 79100019 SPACE 4 79200019 * INTERCEPT CONDITION --- IF INTERVENTION REQUIRED IS ON, 79300019 * HANDLE IT NORMALLY. OTHERWISE, UNRECOVERABLE INTERCEPT 79400019 SPACE 2 79500019 ERR150 TM IOBCSW+4(IOBREG),CSWUCK UNIT CHECK ? 79600019 BZ ERR130 BRANCH IF NO 79700019 CLI IOBSENS0(IOBREG),INTREQ INT. REQ. ? 79800019 BNE ERR130 BRANCH IF NO 79900019 MVI IOBECBCC(IOBREG),ERRORECB RESET ECB CODE TO '7F' 80000019 NI IOBFLAG1(IOBREG),X'FF'-IOBSRS RESET RESTART FLAG 80100019 B ERR066 BRANCH TO NORMAL INT REQ RTN 80200019 EJECT 80300019 * CONSTANTS 80400019 SPACE 1 80500019 CCWLNG DC H'8' CCW LENGTH 80600019 STALNG DC H'10' STATISTICS TABLE ENTRY LENGTH 80700019 BACKCNT DC H'1' BACKSPACE COUNT 80800019 CSWMASK DC X'FDC0' CSW ABNORMAL INDICATOR 80900019 * RESET MASK 81000019 END 81100019 ./ ADD SSI=15011680,NAME=IGE0011B,SOURCE=0 TITLE 'IGE0011B - 1285 OPTICAL CHARACTER READER ERP' 00100019 IGE0011B CSECT ENTRY POINT FOR 1285 ERP @SA65621 00150021 *********************************************************************** 00200019 *MODULE-NAME @SA65621 00210021 * IGE0011B @SA65621 00220021 * @SA65621 00222021 *DESCRIPTIVE-NAME @SA65621 00224021 * OCR ERP FOR 1285 DEVICE @SA65621 00226021 * @SA65621 00228021 *COPYRIGHT @SA65621 00228421 * NONE @SA65621 00228821 * @SA65621 00229221 *CHANGE-ACTIVITY @SA65621 00229621 * RELEASE 20 ADDITIONS/CHANGES/DELETIONS 00230020 *C489000,491000 A33926 00260020 *D353000 A33936 00270001 *C470000,521000 A33936 00280001 * * 00285001 * RELEASE 21 ADDITIONS/CHANGES/DELETIONS * 00290001 *C367000-370000 A39680 00295001 * * 00300019 *TITLE 'IGE0011B' - 1285 ERROR RECOVERY PROCEDURES * 00400019 * * 00500019 *STATUS RELEASE 20 CHANGE LEVEL 001 00600001 * * 00700019 *FUNCTION/OPERATION IGE0011B IS SCHEDULED FOR EXECUTION WHENEVER THE* 00800019 * I/O SUPERVISOR DETECTS AN ERROR ASSOCIATED WITH THE 1285 OPTICAL * 00900019 * CHARACTER READER THAT REQUIRES ERROR RECOVERY PROCEDURES. * 01000019 * * 01100019 * * 01200019 * THE ERROR ROUTINE USES THE STANDARD ERROR INTERPRETER ROUTINE FOR * 01300019 * TESTING OF SENSE BITS AND CSW STATUS BITS. THE FOLLOWING ACTIONS * 01400019 * ARE TAKEN DEPENDING UPON THE NATURE OF THE ERROR * 01500019 * * 01600019 * 1) NORMAL CONDITION OR SUCCESSFUL RETRY OF RECOVERABLE ERROR * 01700019 * CONDITION * 01800019 * * 01900019 * IOB EXCEPTION AND ERROR FLAGS ARE CLEARED AND CONTROL IS * 02000019 * TRANSFERRED TO THE STATISTICS UPDATE ROUTINE. * 02100019 * 2) RECOVERABLE ERROR * 02200019 * * 02300019 * IOB ERROR FLAG IS SET. * 02400019 * IOB EXCEPTION FLAG IS CLEARED. * 02500019 * ERROR COUNTS ARE UPDATED. * 02600019 * CONTROL IS PASSED TO THE I/O SUPERVISOR VIA SVC 15 AND SVC 3 * 02700019 * TO RETRY THE CHANNEL PROGRAM. * 02800019 * * 02900019 * 3) PERMANENT ERROR * 03000019 * IOB ERROR AND EXCEPTION FLAGS ARE SET. * 03100019 * IOB MESSAGE AND LOGOUT FLAGS MAY BE SET. * 03200019 * CONTROL IS RETURNED TO THE I/O SUPERVISOR EITHER DIRECTLY * 03300019 * THROUGH ISSUANCE OF AN SVC 15 AND AN SVC 3 OR INDIRECTLY BY * 03400019 * FIRST PASSING CONTROL TO THE WTO ROUTINE WHICH IN TURN PASSES * 03500019 * CONTROL TO THE STATISTICS UPDATE ROUTINE AND THE I/O OUTBOARD * 03600019 * RECORDING ROUTINE, IF REQUIRED, AND EVENTUALLY TO THE I/O * 03700019 * SUPERVISOR. * 03800019 * * 03900019 *ENTRY POINTS * 04000019 * IGE0011B - ERROR RECOVERY PROCEDURE ENTRY POINT * 04100019 * * 04200019 * DATA PASSED TO THE ROUTINE CONSISTS OF STANDARD SYSTEM CONTROL* 04300019 * BLOCKS. * 04400019 * * 04500019 *INPUT RQE POINTER IN REGISTER 1. * 04600019 * * 04700019 *OUTPUT I/O ERROR AND INTERVENTION REQUIRED MESSAGES IN SOME INSTANCES* 04800019 * * 04900019 *EXTERNAL ROUTINES ERROR INTERPRETER ROUTINE * 05000019 * * 05100019 *EXITS-NORMAL XCTL TO STATISTICS UPDATE ROUTINE FOLLOWING SUCCESSFUL * 05200019 * RECOVERY OF A RETRYABLE ERROR OR UPON DETECTION OF A NORMAL * 05300019 * CONDITION. * 05400019 * * 05500019 * -ERROR * 05600019 * * 05700019 * 1) SVC 15 AND SVC 3 EXIT TO I/O SUPERVISOR FOR RE-EXECUTION OF * 05800019 * THE CHANNEL PROGRAM UPON DETECTION OF A RETRYABLE ERROR. * 05900019 * * 06000019 * 2) XCTL TO WTO ROUTINE FOR ISSUANCE OF A PERMANENT I/O ERROR * 06100019 * MESSAGE AND UPDATING OF STATISTICS AND SYS1.LOGREC IN THE CASE* 06200019 * OF SOME PERMANENT ERRORS. * 06300019 * * 06400019 * 3) SVC 15 AND SVC 3 EXIT TO I/O SUPERVISOR IN THE CASE OF SOME * 06500019 * PERMANENT I/O ERRORS. * 06600019 * * 06700019 *TABLES/WORK AREAS * 06800019 * 1) INPUT/OUTPUT BLOCK (IOB) * 06900019 * * 07000019 * 2) UNIT CONTROL BLOCK (UCB) * 07100019 * * 07200019 * 3) UCB EXTENSION * 07300019 * * 07400019 * 4) STATISTICS UPDATE TABLE * 07500019 * * 07600019 *ATTRIBUTES * 07700019 * * 07800019 * RE-USABLE, SUPERVISOR MODE * 07900019 * * 08000019 *NOTES * 08100019 * * 08200019 * N/A * 08300019 * * 08400019 * * 08500019 *********************************************************************** 08600019 *********************************************************************** 08700019 * * 08800019 * IOB DEFINITION * 08900019 * * 09000019 *********************************************************************** 09100019 IOBFL1 EQU 0 FLAGS 1 09200019 IOBSNS EQU 2 SENSE DATA 09300019 IOBCOD EQU 4 ECB CODE 09400019 IOBFL3 EQU 8 FLAGS 3 09500019 IOBCSW EQU 8 CSW STORAGE 09600019 STATUS1 EQU 4 FIRST BYTE OF STATUS INFORMATION 09700019 STATUS2 EQU 5 SECOND BYTE OF STATUS INFORMATION 09800019 SIOCC EQU 16 DISPLACEMENT TO SIO CONDITION CODE 09900019 IOBST EQU 17 START ADDRESS 10000019 IOBRST EQU 25 RESTART POINTER 10100019 IOBBCI EQU 28 BLOCK COUNT INCR. 10200019 IOBECT EQU 30 ERROR COUNTS 10300019 *********************************************************************** 10400019 * * 10500019 * IOB FLAG 1 DEFINITION * 10600019 * * 10700019 *********************************************************************** 10800019 IOBCP2 EQU X'40' TYPE OF CHANNEL PROGRAM 10900019 IOBERR EQU X'20' IOB ERROR FLAG 11000019 IOBCER EQU X'DF' CLEAR IOBERR FLAG 11100019 IOBEX EQU X'04' EXCEPT FLAG 11200019 IOBSRS EQU X'01' START/RESTART FLAG 11300019 IOBCEX EQU X'FF'-IOBEX CLEAR IOB EXCEPTION 11400019 *********************************************************************** 11500019 * * 11600019 * IOB FLAG 3 DEFINITION * 11700019 * * 11800019 *********************************************************************** 11900019 IOBMSG EQU X'04' MESSAGE TYPE 12000019 IOBLOG EQU X'01' LOGOUT FLAG 12100019 *********************************************************************** 12200019 * * 12300019 * UCB DEFINITION * 12400019 * * 12500019 *********************************************************************** 12600019 UCBSTI EQU 9 STATISTICS POINTER 12700019 UCBERRCT EQU 24 DISPLACEMENT TO UCB ERROR COUNTER ADR 12800019 *********************************************************************** 12900019 * * 13000019 * TWELVE STAR DEFINITION * 13100019 * * 13200019 *********************************************************************** 13300019 RQEUCB EQU 2 DISPLACEMENT TO UCB ADDRESS 13400019 RQEIOB EQU 5 DISPLACEMENT TO IOB ADDRESS 13500019 *********************************************************************** 13600019 * * 13700019 * STATUS INDICATORS * 13800019 * * 13900019 *********************************************************************** 14000019 CSWUCK EQU X'02' UNIT CHECK 14100019 *********************************************************************** 14200019 * * 14300019 * REGISTER DEFINITION * 14400019 * * 14500019 *********************************************************************** 14600019 RQEREG EQU 1 RQE POINTER 14700019 CCWREG EQU 2 CCW ADDRESS REGISTER 14800019 WKREG3 EQU 4 WORK REGISTER 14900019 ERREG EQU 4 WORK REGISTER 15000019 WKRG1 EQU 5 WORK REGISTER 15100019 WKREG1 EQU 5 WORK REGISTER 15200019 WKRG2 EQU 6 WORK REGISTER 15300019 WKREG2 EQU 6 WORK REGISTER 15400019 UCBREG EQU 7 UCB ADDRESS REG 15500019 COMREG EQU 8 COMMUNICATION TABLE REG 15600019 WKREG4 EQU 9 WORK REGISTER 15700019 SVREG EQU 9 WORK REGISTER 15800019 IOBREG EQU 10 IOB ADDRESS REGISTER 15900019 LINKR EQU 12 WORK REGISTER 16000019 ERRLNK EQU 12 LINK REG 16100019 ERRE1 EQU 13 WORK REGISTER 16200019 ERRETR EQU 14 RETURN REG 16300019 BASREG EQU 15 BASE REGISTER 16400019 *********************************************************************** 16500019 * * 16600019 * RETRY COUNTS * 16700019 * * 16800019 *********************************************************************** 16900019 INCCOUNT EQU 16 INCREMENT FOR OVERRUN RETRY COUNT 17000019 CDCCNT EQU X'80' TEST FOR CHANNEL DATA CHECK RETRIED 17100019 BOCOUNT EQU X'08' TEST FOR BUS OUT CHECK RETRIED 17200019 ILCOUNT EQU X'05' INCORRECT LENGTH RETRY COUNT 17300019 CCCNT EQU 5 TEST FOR CHAINING CHECK RETRISE 17400019 EQCNT EQU X'0A' TEST FOR EQUIPMENT CHECK RETRIES 17500019 DCCOUNT2 EQU X'05' TAPE DATA CHECK COUNT 17600019 ORCOUNT EQU X'50' OVERRUN RETRY COUNT (FIVE) 17700019 *********************************************************************** 17800019 * * 17900019 * MISCELLANEOUS DEFINITIONS * 18000019 * * 18100019 *********************************************************************** 18200019 VEXCTL EQU 44 ADDR OF XCTL ROUTINE 18300019 STAUPRTN EQU 254 STATISTICS UPDATE ROUTINE 18400019 CVTADDR EQU 16 POINTER TO CVT ADDRESS 18500019 BYTECNT EQU 6 DISPLACMENT TO BYTE COUNT IN CCW 18600019 ERPIBLEN EQU 8 ERPIB LENGTH 18700019 EPDT EQU 2 DISPLACEMENT TO ERPIB DEVICE TYPE 18800019 VEX116 EQU 116 ERPIB LOCATION 18900019 RFTEST EQU X'02' TSET FOR READ FORWARD COMMAND 19000019 BITS56 EQU X'03' CLEAR BITS 5 AND 6 OF A BYTE 19100019 RBTEST EQU X'0C' TEST FOR READ BACKWARD COMMAND 19200019 CLEARHI EQU X'0F' CLEAR FOUR BITS OF A BYTE 19300019 CCLENGTH EQU 1 LENGTH OF CCW COMMAND CODE 19400019 RETSVC EQU 3 RETURN TO IOS SVC 19500019 ERRORSVC EQU 15 ERROR EXCP 19600019 CLEARCNT EQU X'02' COUNT OF ERROR COUNTER BYTES TO CLEAR 19700019 KC EQU X'01' TEST FOR KEYBOARD CORRECTION 19800019 DC EQU 0 DISPLACEMENT TO DATA CHECK COUNTS 19900019 ILC EQU 1 DISPLACEMENT TO INCORRECT LENGTH CNTS 20000019 EC EQU 2 DISPLACEMENT TO EQUIPMENT CHECK CNTS 20100019 SNSLEN EQU 2 LENGTH OF SENSE BYTES TO PUT IN STATA 20200019 SNSDISP EQU 8 STATAB SENSE DISPLACEMENT 20300019 MIXCHAIN EQU X'C0' TEST FOR MIXED CHAINING 20400019 CHINTCHK EQU X'06' TEST FOR CHANNEL OR INTERFACE CHECK 20500019 CLRCNT EQU X'03' BYTE COUNT FOR CLEARING COUNTERS 20600019 ENTDISP EQU 2 CONTROL ENTRY DISPLACEMENT 20700019 IOBCC1 EQU X'10' CONDITION CODE OF SIO 20800019 STABINC EQU 256 INCREMENT TO NEXT STATAB SECTION 20900019 INTERCPT EQU X'7E' TEST FOR INTERCEPT CONDITION 21000019 ZEROCNT EQU X'0F' TEST FOR FIRST RETRY, INCORRECT LENGT 21100019 IOSTUS EQU X'10' STATUS BIT 21200019 VFCT68 EQU 68 INDEX TO INTERPRETER ROUTINE 21300019 STATAB EQU 112 INDEX TO STATISTICS TABLE 21400019 WTORTN EQU 253 LOAD NAME TO WTO RTN. 21500019 EOT EQU X'FF' TEST FOR END OF ERPIB TABLE 21600019 PERMERR EQU X'41' ECB CODE FOR PERM ERROR @SA65613 21650021 ADDRLN EQU 3 LENGTH OF CCW ADDRESS @SA65613 21700021 USING *,BASREG 25500019 ERR0011 L IOBREG,RQEIOB-1(RQEREG) GET IOB ADDRESS 25600019 LH UCBREG,RQEUCB(RQEREG) GET UCB ADDRESS 25700019 L COMREG,CVTADDR GET CVT ADDRESS 25800019 TM IOBFL1(IOBREG),IOBERR ERP IN CONTROL 25900019 BO ERR000 YES CONTINUE 26000019 * CLEAR IOB ERROR COUNTERS 26050019 XC IOBBCI(CLRCNT,IOBREG),IOBBCI(IOBREG) CLEAR COUNTERS 26100019 ERR000 CLI IOBCOD(IOBREG),INTERCPT IS IT AN INTERCEPT CONDITION 26200019 BE ERR0012 YES SEE IF CHANNEL ERROR 26300019 CLI IOBCOD(IOBREG),PERMERR CHECK FOR X'41' IN ECB @SA65613 26350021 BNE ERR001A NO, CONTINUE @SA65613 26360021 CLC IOBCSW+1(ADDRLN,IOBREG),WKAREA IS CCW ADDR OK? @SA65613 26370021 BE ERR007 NO, PERMANENT ERROR @SA65613 26380021 ERR001A TM IOBFL1(IOBREG),MIXCHAIN IS IT MIXED CHAINING @SA65613 26400021 BO ERR0012 YES SEE IF CHANNEL ERROR 26500019 TM SIOCC(IOBREG),IOSTUS CODE EQUAL 10 26600019 BZ ERR002 NO CONTINUE 26700019 L CCWREG,IOBRST-1(IOBREG) GET RESTART ADDRESS 26800019 TM IOBFL1(IOBREG),IOBSRS RESTART FLAG ON 26900019 BO ERR003 YES RESTART ADDRESS IS USED 27000019 L CCWREG,IOBST-1(IOBREG) GET START ADDRESS 27100019 B ERR003 CONTINUE 27200019 ERR0012 TM IOBCSW+STATUS2(IOBREG),CHINTCHK CHANNEL OR INTERFACE CHK 27300019 BZ ERR007 NO EXIT TO WTO ROUTINE 27400019 B ERR010 YES TO CHANNEL+INTERFACE CHK RTN 27500019 ERR002 L CCWREG,IOBCSW(IOBREG) GET CCW ADDRESS 27600019 LA CCWREG,0(CCWREG) CLEAR HIGH ORDER BYTE 27700019 SH CCWREG,ERRON1 BACK UP ONE CCW 27800019 TM IOBFL1(IOBREG),IOBCP2 IS COMMAND CHAINING USED 27900019 BZ ERR003 NO SET UP FOR WTO 28000019 TM IOBFL1(IOBREG),IOBERR ENTERED AFTER RETRY 28100019 BZ ERR002A NO CONTINUE 28200019 LR ERREG,CCWREG GET CCW ADDR IN WORK REGISTER 28300019 S ERREG,IOBRST-1(IOBREG) SUBTRACT RESATART ADDRESS 28400019 BE ERR003 IF EQUAL ERROR 28500019 LA WKREG1,IOBBCI(IOBREG) POINT TO IOB ERROR COUNTERS 28600019 L WKREG2,UCBERRCT(UCBREG) POINT TO UCB ERROR COUNTERS 28700019 MVI CLEAR1+1,CLEARCNT SET COUNT TO CLEAR 28800019 BAL LINKR,ERR018 LINK TO COUNTER UPDATE ROUTINE 28900019 ERR002A OI IOBFL1(IOBREG),IOBSRS SET RESTART FLAG ON 29000019 ST CCWREG,IOBRST-1(IOBREG) SAVE CCW RESTART ADDRESS 29100019 ERR003 TM IOBCSW+STATUS1(IOBREG),CSWUCK IS UNIT CHECK POSTED 29200019 BZ ERR004 NO DETERMINE ERROR TYPE 29300019 L ERREG,STATAB(COMREG) GET STATISTICS TABLE ADDRESS 29400019 SR WKREG1,WKREG1 CLEAR WORK REGISTER 29500019 IC WKRG1,UCBSTI(UCBREG) GET STATAB POINTER FROM UCB 29600019 LR WKRG2,ERREG GET STATISTICS TABLE START ADDRESS 29700019 ERR003A CH UCBREG,0(0,WKRG2) DEVICE SUPPORTED BY THIS SECTIOB 29800019 BC 4,ERR003B YES PROCESS THIS SECTIOB 29900019 LA WKRG2,ENTDISP(WKRG2) BUMP TO NEXT CONTROL ENTRY 30000019 LA WKRG1,STABINC(0,WKRG1) POINT AT NEXT STATAB ENTRY 30100019 B ERR003A LOOP TO TEST NEXT SECTION 30200019 ERR003B MH WKRG1,TEN MULTIPLY STATAB POINTET BY TEN 30300019 AR ERREG,WKRG1 ADD TO STATAB START ADDRESS 30400019 OC SNSDISP(SNSLEN,ERREG),IOBSNS(IOBREG) OR SENSE BYTES IN T 30500019 NC SNSDISP(SNSLEN,ERREG),MASKOUT GET RID OF UNWANTED BITS 30600019 ERR004 LR SVREG,BASREG SAVE BASE REGISTER 30700019 L BASREG,VFCT68(COMREG) GET INTERPRETER ROUTINE ADDRESS 30800019 ERR0041 BALR ERRLNK,BASREG LINK TO INTERPRETER 30900019 DC X'1D' TEST FOR CHANNEL CONTROL CHECK 31000019 DC AL1(ERR010L-ERR0041-2) BRANCH TO CCC ACTION 31100019 DC X'1E' TEST FOR INTERFACE CONTROL CHECK 31200019 DC AL1(ERR010L-ERR0041-4) BRANCH TO ICC ACTION 31300019 DC X'1C' TEST FOR CHANNEL DATA CHECK 31400019 DC AL1(ERR200L-ERR0041-6) BRANCH TO CDC ACTION 31500019 DC X'11' TEST FOR STATUS MOBIFIER ON 31600019 DC AL1(ERR007-ERR0041-8) BRANCH TO SM ROUTINE 31700019 DC X'12' TEST FOR CONTROL UNIT END 31800019 DC AL1(ERR007-ERR0041-10) BRANCH TO CUE ROUTINE 31900019 DC X'16' TEST FOR UNIT CHECK 32000019 DC AL1(ERR006B-ERR0041-12) BRANCH TO UNIT CHECK ROUTINE 32100019 DC X'2F' END OF LIST 32200019 DC AL1(ERR004B-ERR0041-14) PASS CONTROL TO ERR004B 32300019 * FOLLOWING BRANCHES GO TO ROUTINES MORE THAN 128 BYTES AWAY 32350019 ERR010L B ERR010 GO TO ERR010 32400019 ERR200L B ERR200 GO TO CDC ROUTINE 32500019 ERR004B LR SVREG,BASREG SAVE BASE REGISTER 32700019 L BASREG,VFCT68(COMREG) GET INTERPRETER ROUTINE ADDRESS 32800019 ERR004B1 BALR ERRLNK,BASREG LINK TO INTERPRETER 32900019 DC X'1F' TEST FOR CHAINING CHECK 33000019 DC AL1(ERR011L-ERR004B1-2) BRANCH TO CC ACTION 33100019 DC X'1A' TEST FOR PROGRAM CHECK 33200019 DC AL1(ERR007A-ERR004B1-4) BRANCH TO PC ACTION 33300019 DC X'1B' TEST FOR PROTECTION CHECK 33400019 DC AL1(ERR007A-ERR004B1-6) BRANCH TO PC ACTION 33500019 DC X'19' TEST FOR INCORRECT LENGTH 33600019 DC AL1(ERR017L-ERR004B1-8) BRANCH TO IL ACTION 33700019 DC X'17' CHECK FOR UNIT EXCEPTION 33800019 DC AL1(ERR013L-ERR004B1-10) BRANCH TO UE ACTION 33900019 DC X'2F' END OF LIST 34000019 DC AL1(ERR004B2-ERR004B1-12) PASS CONTROL TO ERR004B2 34100019 * THESE BRANCHS GO TO ROUTINES MORE THEN 128 BYTES AWAY 34150019 ERR011L B ERR011 GO TO CC ACTION 34200019 ERR017L B ERR017 GO TO IL ACTION 34300019 ERR013L B ERR013 GO TO UE-ACTION 34400019 ERR004B2 TM IOBCSW+STATUS1(IOBREG),CSWUCK IS UNIT CHECK POSTED 34700019 BZ ERR005 NO TO STATISTICS UPDATE ROUTINE 34800019 ERR004E1 TM IOBSNS(IOBREG),KC IS KEYBOARD CORRECTION POSTED 34900019 BO ERR008 YES EXIT TO IOS 35000019 ERR005 NI IOBFL1(IOBREG),IOBCEX CLEAR IOB EXCEPTION, ERROR CORRECT 35100019 B ERR005B CONTINUE CLEAN UP 35200019 ERR005B NI IOBFL1(IOBREG),IOBCER CLEAR IOBERR 35400019 LA ERRE1,STAUPRTN LOAD NAME OF STATISTICS UPDATE RTN 35500019 ERR005C L WKREG1,UCBERRCT(UCBREG) POINT TO UCB ERROR COUNTERS 35600019 LA WKREG2,IOBBCI(IOBREG) POINT TO IOB ERROR COUNTERS 35700019 MVI CLEAR1+1,CLEARCNT SET COUNT TO CLEAR 35800019 BAL LINKR,ERR018 LINK TO COUNTER UPDATE ROUTINE 35900019 L ERRETR,VEXCTL(COMREG) GET ADDRESS OF XCTL ROUTINE 36000019 BR ERRETR EXIT VIA XCTL 36100019 ERR006B LR SVREG,BASREG SAVE BASE ADDRESS 36200019 L BASREG,VFCT68(COMREG) GET INTERPRETER ROUTINE ADDRESS 36300019 ERR006C BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 36400019 DC X'03' TEST FOR EQUIPMENT CHECK 36500019 DC AL1(ERR012L-ERR006C-2) BRANCH TO EC ROUTINR 36600019 DC X'06' TEST FOR NONRECOVERY @SA39695 36700021 DC AL1(ERR007-ERR006C-4) BRANCH TO NONREC ROUTINE @SA39695 36800021 DC X'01' TEST FOR INT REQ'ED @SA39695 36900021 DC AL1(ERR006D-ERR006C-6) BRANCH TO IR ROUTINE @SA39695 37000021 DC X'02' TEST FOR BUS OUT CHECK 37100019 DC AL1(ERR015L-ERR006C-8) BRANCH TO BUS OUT CHECK ROUTINE 37200019 DC X'04' TEST FOR DATA CHECK 37300019 DC AL1(ERR014L-ERR006C-10) BRANCH TO DATA CHECK ROUTINE 37400019 DC X'05' TEST FOR OVERRUN 37500019 DC AL1(ERR016L-ERR006C-12) BRANCH TO OVERRUN ROUTINE 37600019 DC X'00' TEST FOR COMMAND REJECT 37700019 DC AL1(ERR007A-ERR006C-14) BRANCH TO COMMAND REJECT ROUTINE 37800019 DC X'0C' TEST FOR INVALID OPERATION 37900019 DC AL1(ERR007-ERR006C-16) BRANCH TO INVALID OPERATION RTN 38000019 DC X'2F' END OF LIST 38100019 DC AL1(ERR004BL-ERR006C-18) CONTINUE CHECKING FOR ERRORS 38200019 ERR012L B ERR012 GO TO EC ACTION 38300019 ERR015L B ERR015 GO TO BUS OUT ACTION 38400019 ERR014L B ERR014 GO TO DATA CHECK ACTION 38500019 ERR016L B ERR016 GO TO OVERRUN ACTION 38600019 ERR004BL B ERR004B CONTINUE ERROR CHECKING 38700019 ERR006D OI IOBFL1(IOBREG),IOBERR SET IOBERR ON 38800019 B ERR007B GO WRITE TO OPERATOR 38900019 * EXIT TO WTO ROUTINE 39000019 ERR007 OI IOBFL3(IOBREG),IOBLOG SET LOGOUT FLAG 39100019 ERR007A OI IOBFL3(IOBREG),IOBMSG SET MESSAGE FLAG 39200019 NI IOBFL1(IOBREG),IOBCER CLEAR IOBERR FLAG 39300019 ERR007B LA ERRE1,WTORTN LOAD NAME OF WTO ROUTINE 39400019 B ERR005C GET OUT VIA XCTL 39500019 ERR008 NI IOBFL1(IOBREG),IOBCER CLEAR IOBERR FLAG 39600019 L WKREG1,UCBERRCT(UCBREG) POINT TO UCB ERROR COUNTERS 39700019 LA WKREG2,IOBBCI(IOBREG) POINT TO IOB ERROR COUNTERS 39800019 MVI CLEAR1+1,CLEARCNT SET COUNT TO CLEAR 39900019 BAL LINKR,ERR018 LINK TO COUNTER UPDATE ROUTINE 40000019 SVC ERRORSVC ISSUE ERROR EXCP 40100019 SVC RETSVC RETURN TO IOS VIA SVC 3 40200019 * UPDATE UCB ERROR COUNTERS ROUTINE 40300019 ERR018 SR WKREG3,WKREG3 ZERO OUT 40400019 SR WKREG4,WKREG4 WORK REGISTERS 40500019 IC WKREG3,DC(WKREG1) GET DATA 40600019 IC WKREG4,DC(WKREG2) CHECK COUNTS 40700019 AR WKREG3,WKREG4 ADD COUNTS 40800019 STC WKREG3,DC(WKREG2) UPDATE DATA CHECK COUNT 40900019 IC WKREG3,ILC(WKREG1) GET INCORRECT 41000019 IC WKREG4,ILC(WKREG2) LENGTH COUNTS 41100019 AR WKREG3,WKREG4 ADD COUNTS 41200019 STC WKREG3,ILC(WKREG2) UPDATE INCORRECT LENGTH COUNT 41300019 IC WKREG3,EC(WKREG1) GET EQUIPMENT CHECK 41400019 IC WKREG4,EC(WKREG2) CHECK COUNTS 41500019 AR WKREG3,WKREG4 ADD COUNTS 41600019 STC WKREG3,EC(WKREG2) UPDATE EQUIPMENT CHECK COUNT 41700019 CLEAR1 XC 0(0,WKREG1),0(WKREG1) CLEAR ERROR COUNTERS 41800019 BR LINKR RETURN TO CALLER 41900019 * CHANNLE DATA CHECK ROUTINE 42000019 ERR200 TM IOBFL3(IOBREG),CDCCNT CHANNEL DAYA CHECK ALREADY RETRIED 42100019 BO ERR007 YES EXIT TO WTO ROUTINE 42200019 OI IOBFL3(IOBREG),CDCCNT SET TO INDICATE RETRIED 42300019 * RETRY ROUTINE 42400019 ERR009 MVC WKAREA(CCLENGTH),0(CCWREG) GET CCW COMMAND CODE 42500019 NI WKAREA,CLEARHI CLEAR HIGH ORDER FOUR BITS 42600019 CLI WKAREA,RBTEST IS COMMAND READ BACKWARD 42700019 BE ERR009B YES CLEAR INPUT AREA & RETRY 42800019 NI WKAREA,BITS56 CLEAR BITS 5 & 6 42900019 CLI WKAREA,RFTEST IS COMMAND READ FORWARD 43000019 BE ERR009B YES CLEAR INPUT AREA & RETRY 43100019 ERR009A OI IOBFL1(IOBREG),IOBERR SET IOBERR ON 43200019 XC IOBSNS(SNSLEN,IOBREG),IOBSNS(IOBREG) M0381 43250021 SVC ERRORSVC RETRY CCW 43300019 SVC RETSVC RETURN TO IOS VIA SVC 3 43400019 * CLEAR INPUT AREA 43500019 ERR009B L WKREG2,0(CCWREG) GET INPUT AREA ADDRESS FROM CCW 43600019 LA WKREG2,0(WKREG2) CLEAR OUT COMMAND CODE 43700019 LH WKREG3,BYTECNT(CCWREG) GET BYTE COUNT 43800019 BCTR WKREG3,0 DECREMENT COUNT BY ONE 43900019 CLI WKAREA,RFTEST IS COMMAND READ FORWARD 44000019 BE ERR009C YES ADDRESS NOW CORRECT 44100019 SR WKREG2,WKREG3 ADJUST ADDRESS TO PROPER VALUE 44200019 ERR009C STC WKREG3,ERR009D+1 STORE COUNT TO CLEAR 44300019 ERR009D XC 0(0,WKREG2),0(WKREG2) CLEAR INPUT AREA 44400019 B ERR009A RETRY BAD CCW 44500019 * CHANNEL CHECK ROUTINE 44600019 ERR010 L WKREG1,VEX116(COMREG) GET PTR TO PTR TO PTR TO ERPIB 44700019 L WKREG1,0(WKREG1) GET PTR TO PTR TO ERPIB 44800019 L WKREG1,0(WKREG1) GET PTR TO ERPIB 44900019 ERR010A CH UCBREG,EPDT(WKREG1) IS THIS CORRECT ERPIB 45000019 BE ERR010B YES PROCESS IT 45100019 LA WKREG1,ERPIBLEN(WKREG1) BUMP TO NEXT ERPIB 45200019 TM 0(WKREG1),EOT IS IT END OF ERPIB TABLE 45300019 BC 14,ERR010A NO TEST NEXT ERPIB 45400019 BC 1,ERR007 YES TO LOGOUT ROUTINE 45500019 ERR010B XC 0(ERPIBLEN,WKREG1),0(WKREG1) CLEAR ERPIB 45600019 B ERR007 GO TO LOGOUT ROUTINE 45700019 * CHAINING CHECK ROUTINE 45800019 ERR011 IC WKREG1,IOBECT+1(IOBREG) GET CHAINING CHECK COUNT 45900019 LA WKREG1,1(WKREG1) INCREMENT COUNT 46000019 STC WKREG1,IOBECT+1(IOBREG) UPDATE COUNT 46100019 TM IOBECT+1(IOBREG),CCCNT IS COUNT NOW FIVE 46200019 BO ERR007 YES TO LOGOUT 46300019 B ERR009 NO RETRY 46400019 * EQUIPMENT CHECK 46500019 ERR012 IC WKREG1,IOBECT(IOBREG) GET EQUIPMENT CHECK COUNT 46600019 LA WKREG1,1(WKREG1) INCREMENT COUNT 46700019 STC WKREG1,IOBECT(IOBREG) UPDATE COUNTER 46800019 CLI IOBECT(IOBREG),EQCNT IS COUNT NOW TEN 46900019 BE ERR008 YES TO IOS A33936 47000001 B ERR009 NO RETRY 47100019 * UNIT EXCEPTION 47200019 ERR013 TM IOBFL1(IOBREG),IOBERR IOBERR ON (ENTERED AFTER RETRY) 47300019 BZ ERR013B NO CONTINUE 47400019 ERR013A NI IOBFL1(IOBREG),IOBCEX SET IOBEX OFF 47500019 B ERR005B TO STATISTICS UPDATE ROUTINE 47600019 ERR013B TM SIOCC(IOBREG),IOBCC1 SIO CONDITION CODE 01 47700019 BO ERR005B YES TO STATISTICS UPDATE ROUTINE 47800019 MVC WKAREA(CCLENGTH),0(CCWREG) GET CCW COMMAND CODE 47900019 NI WKAREA,BITS56 CLEAR HIHG ORDER SIB BITS 48000019 CLI WKAREA,RFTEST IS IT READ FORWARD 48100019 BE ERR009B YES GO CLEAR INPUT AREA AND RETRY 48200019 B ERR005B NO TO STATISTICS UPDATE ROUTINE 48300019 * DATA CHECK ROUTINE 48400019 ERR014 IC WKREG1,IOBBCI(IOBREG) GET DATA CHECK ERROR COUNT 48500019 LA WKREG1,1(WKREG1) INCREMENT COUNT 48600019 STC WKREG1,IOBBCI(IOBREG) UPDATE DATA CHECK ERROR COUNT 48700019 ERR014B TM IOBSNS(IOBREG),KC IS IS KEYBOARD CORREACTION 48800019 BO ERR008 YES TO IOS A33926 48900020 TM IOBBCI(IOBREG),DCCOUNT2 IS COUNT NOW FIVE 49000019 BO ERR008 YES TO IOS A33926 49100020 B ERR009 NO RETRY 49200019 * BUSOUT CHECK 49300019 ERR015 TM IOBECT+1(IOBREG),BOCOUNT BUS OUT CHECK COUNT EQUAL ONE 49400019 BO ERR007 YES TO WTO ROUTINE 49500019 OI IOBECT+1(IOBREG),BOCOUNT SET COUNT TO ONE 49600019 B ERR009 RETRY 49700019 * OVERRUN 49800019 ERR016 IC WKREG1,IOBECT+1(IOBREG) GET OVERRUN ERROR COUNT 49900019 LA WKREG1,INCCOUNT(WKREG1) INCREMENT COUNT 50000019 STC WKREG1,IOBECT+1(IOBREG) UPDATE ERROR COUNT 50100019 TM IOBECT+1(IOBREG),ORCOUNT DOES COUNT EQUAL FOVE 50200019 BO ERR007 YES EXIT TO WTO ROUTINE 50300019 B ERR009 NO RETRY 50400019 * INCORRECT LENGTH 50500019 ERR017 TM IOBFL1(IOBREG),IOBERR ENTERED AFTER RETRY 50600019 BZ ERR017A NO 50700019 TM IOBBCI+1(IOBREG),ZEROCNT FIRST TIME HERE 50800019 BC 5,ERR017A NO CONTINUE 50900019 NI IOBFL1(IOBREG),IOBCEX CLEAR IOBEX 51000019 B ERR008 EXIT TO IOS 51100019 ERR017A IC WKREG1,IOBBCI+1(IOBREG) GET INCORRECT LENGTH ERROR COUNT 51200019 LA WKREG1,1(WKREG1) INCREMENT ERROR COUNT 51300019 STC WKREG1,IOBBCI+1(IOBREG) UPDATE COUNTER 51400019 CLI IOBBCI+1(IOBREG),ILCOUNT IS COUNT NOW FIVE 51500019 BE ERR008 YES EXIT TO IOS 51600019 B ERR009 NO RETRY 51700019 DS 0H FORCE HALF WORD ALIGNMENT 51800019 ERRON1 DC AL2(8) CONSTANT OF 8 51900019 TEN DC X'000A' CONSTANT OF 10 52000019 MASKOUT DC X'267F' MASK FOR CLEARING UNWANTED SENSE DATA A33936 52100001 WKAREA DC XL1'00' WORK AREA 52200019 ZERO DC XL2'0000' USED TO CHECK SENSE @SA65613 52250021 END IGE0011B 52300019 ./ ADD SSI=15011963,NAME=IGE0011C,SOURCE=0 TITLE 'IGE0011C - 1287 OPTICAL CHARACTER READER ERP' 00100021 IGE0011C CSECT ENTRY POINT FOR 1287 ERP @SA65621 00150021 *********************************************************************** 00200019 *MODULE-NAME @SA65621 00210021 * IGE0011C @SA65621 00220021 * @SA65621 00222021 *DESCRIPTIVE-NAME @SA65621 00224021 * OCR ERP FOR 1287 DEVICE @SA65621 00226021 * @SA65621 00228021 *COPYRIGHT @SA65621 00228421 * NONE @SA65621 00228821 * @SA65621 00229221 *CHANGE-ACTIVITY @SA65621 00229621 * RELEASE 20 ADDITIONS/CHANGES/DELETIONS 00230020 *C510000,503000,506000,508000 A33926 00260020 *D357000 A33936 00270001 *C480000,537000 A33936 00280001 * 00285021 * RELEASE 21 ADDITIONS/CHANGES/DELETIONS 00290021 *A171500,173500,478100-478600,530100-530600 21797 00295021 *C377000-380000 A39680 00297021 * * 00300019 * RELEASE OS/21.7 ADDITIONS/CHANGES/DELETIONS * 00330021 *A397000 * 00360021 *TITLE 'IGE0011C' - 1287 ERROR RECOVERY PROCEDURES * 00400019 * * 00500019 *STATUS - RELEASE 21 CHANGE LEVEL 000 * 00600021 * * 00700019 *FUNCTION/OPERATION IGE0011C IS SCHEDULED FOR EXECUTION WHENEVER THE* 00800019 * I/O SUPERVISOR DETECTS AN ERROR ASSOCIATED WITH THE 1287 OPTICAL * 00900019 * CHARACTER READER THAT REQUIRES ERROR RECOVERY PROCEDURES. * 01000019 * * 01100019 * * 01200019 * THE ERROR ROUTINE USES THE STANDARD ERROR INTERPRETER ROUTINE FOR * 01300019 * TESTING OF SENSE BITS AND CSW STATUS BITS. THE FOLLOWING ACTIONS * 01400019 * ARE TAKEN DEPENDING UPON THE NATURE OF THE ERROR * 01500019 * * 01600019 * 1) NORMAL CONDITION OR SUCCESSFUL RETRY OF RECOVERABLE ERROR * 01700019 * CONDITION * 01800019 * * 01900019 * IOB EXCEPTION AND ERROR FLAGS ARE CLEARED AND CONTROL IS * 02000019 * TRANSFERRED TO THE STATISTICS UPDATE ROUTINE. * 02100019 * 2) RECOVERABLE ERROR * 02200019 * * 02300019 * IOB ERROR FLAG IS SET. * 02400019 * IOB EXCEPTION FLAG IS CLEARED. * 02500019 * ERROR COUNTS ARE UPDATED. * 02600019 * CONTROL IS PASSED TO THE I/O SUPERVISOR VIA SVC 15 AND SVC 3 * 02700019 * TO RETRY THE CHANNEL PROGRAM. * 02800019 * * 02900019 * 3) PERMANENT ERROR * 03000019 * IOB ERROR AND EXCEPTION FLAGS ARE SET. * 03100019 * IOB MESSAGE AND LOGOUT FLAGS MAY BE SET. * 03200019 * CONTROL IS RETURNED TO THE I/O SUPERVISOR EITHER DIRECTLY * 03300019 * THROUGH ISSUANCE OF AN SVC 15 AND AN SVC 3 OR INDIRECTLY BY * 03400019 * FIRST PASSING CONTROL TO THE WTO ROUTINE WHICH IN TURN PASSES * 03500019 * CONTROL TO THE STATISTICS UPDATE ROUTINE AND THE I/O OUTBOARD * 03600019 * RECORDING ROUTINE, IF REQUIRED, AND EVENTUALLY TO THE I/O * 03700019 * SUPERVISOR. * 03800019 * * 03900019 *ENTRY POINTS * 04000019 * IGE0011C - ERROR RECOVERY PROCEDORE ENTRY POINT * 04100019 * * 04200019 * DATA PASSED TO THE ROUTINE CONSISTS OF STANDARD SYSTEM CONTROL* 04300019 * BLOCKS. * 04400019 * * 04500019 *INPUT RQE POINTER IN REGISTER 1. * 04600019 * * 04700019 *OUTPUT I/O ERROR AND INTERVENTION REQUIRED MESSAGES IN SOME INSTANCES* 04800019 * * 04900019 *EXTERNAL ROUTINES ERROR INTERPRETER ROUTINE * 05000019 * * 05100019 *EXITS-NORMAL XCTL TO STATISTICS UPDATE ROUTINE FOLLOWING SUCCESSFUL * 05200019 * RECOVERY OF A RETRYABLE ERROR OR UPON DETECTION OF A NORMAL * 05300019 * CONDITION. * 05400019 * * 05500019 * -ERROR * 05600019 * * 05700019 * 1) SVC 15 AND SVC 3 EXIT TO I/O SUPERVISOR FOR RE-EXECUTION OF * 05800019 * THE CHANNEL PROGRAM UPON DETECTION OF A RETRYABLE ERROR. * 05900019 * * 06000019 * 2) XCTL TO WTO ROUTINE FOR ISSUANCE OF A PERMANENT I/O ERROR * 06100019 * MESSAGE AND UPDATING OF STATISTICS AND SYS1.LOGREC IN THE CASE* 06200019 * OF SOME PERMANENT ERRORS. * 06300019 * * 06400019 * 3) SVC 15 AND SVC 3 EXIT TO I/O SUPERVISOR IN THE CASE OF SOME * 06500019 * PERMANENT I/O ERRORS. * 06600019 * * 06700019 *TABLES/WORK AREAS * 06800019 * 1) INPUT/OUTPUT BLOCK (IOB) * 06900019 * * 07000019 * 2) UNIT CONTROL BLOCK (UCB) * 07100019 * * 07200019 * 3) UCB EXTENSION * 07300019 * * 07400019 * 4) STATISTICS UPDATE TABLE * 07500019 * * 07600019 *ATTRIBUTES * 07700019 * * 07800019 * RE-USABLE, SUPERVISOR MODE * 07900019 * * 08000019 *NOTES * 08100019 * * 08200019 * N/A * 08300019 * * 08400019 * * 08500019 *********************************************************************** 08600019 *********************************************************************** 08700019 * * 08800019 * IOB DEFINITION * 08900019 * * 09000019 *********************************************************************** 09100019 IOBFL1 EQU 0 FLAGS 1 09200019 IOBSNS EQU 2 SENSE DATA 09300019 IOBCOD EQU 4 ECB CODE 09400019 IOBCSW EQU 8 CSW STORAGE 09500019 STATUS1 EQU 4 FIRST BYTE OF STATUS INFORMATION 09600019 STATUS2 EQU 5 SECOND BYTE OF STATUS INFORMATION 09700019 IOBFL3 EQU 8 FLAGS 3 09800019 SIOCC EQU 16 DISPLACEMENT TO SIO CONDITION CODE 09900019 IOBST EQU 17 START ADDRESS 10000019 IOBRST EQU 25 RESTART POINTER 10100019 IOBBCI EQU 28 BLOCK COUNT INCR. 10200019 IOBECT EQU 30 ERROR COUNTS 10300019 *********************************************************************** 10400019 * * 10500019 * IOB FLAG 1 DEFINITION * 10600019 * * 10700019 *********************************************************************** 10800019 IOBCP2 EQU X'40' TYPE OF CHANNEL PROGRAM 10900019 IOBERR EQU X'20' IOB ERROR FLAG 11000019 IOBEX EQU X'04' EXCEPT FLAG 11100019 IOBCER EQU X'DF' CLEAR IOBERR FLAG 11200019 IOBSRS EQU X'01' START/RESTART FLAG 11300019 IOBCEX EQU X'FF'-IOBEX CLEAR IOB EXCEPTION 11400019 IOBEXE EQU IOBEX+IOBERR FX + ERR FLAGS 11500019 *********************************************************************** 11600019 * * 11700019 * IOB FLAG 3 DEFINITION * 11800019 * * 11900019 *********************************************************************** 12000019 IOBMSG EQU X'04' MESSAGE TYPE 12100019 IOBLOG EQU X'01' LOGOUT FLAG 12200019 *********************************************************************** 12300019 * * 12400019 * UCB DEFINITION * 12500019 * * 12600019 *********************************************************************** 12700019 UCBSTI EQU 9 STATISTICS POINTER 12800019 UCBERRCT EQU 24 DISPLACEMENT TO UCB ERROR COUNTER ADR 12900019 *********************************************************************** 13000019 * * 13100019 * TWELVE STAR DEFINITION * 13200019 * * 13300019 *********************************************************************** 13400019 RQEUCB EQU 2 DISPLACEMENT TO UCB ADDRESS 13500019 RQEIOB EQU 5 DISPLACEMENT TO IOB ADDRESS 13600019 *********************************************************************** 13700019 * * 13800019 * STATUS INDICATORS * 13900019 * * 14000019 *********************************************************************** 14100019 CSWUCK EQU X'02' UNIT CHECK 14200019 *********************************************************************** 14300019 * * 14400019 * REGISTER DEFINITION * 14500019 * * 14600019 *********************************************************************** 14700019 RQEREG EQU 1 RQE POINTER 14800019 CCWREG EQU 2 CCW ADDRESS REGISTER 14900019 ERREG EQU 4 WORK REGISTER 15000019 WKREG3 EQU 4 WORK REGISTER 15100019 WKREG1 EQU 5 WORK REGISTER 15200019 WKRG1 EQU 5 WORK REGISTER 15300019 WKRG2 EQU 6 WORK REGISTER 15400019 WKREG2 EQU 6 WORK REGISTER 15500019 UCBREG EQU 7 UCB ADDRESS REG 15600019 COMREG EQU 8 COMMUNICATION TABLE REG 15700019 WKREG4 EQU 9 WORK REGISTER 15800019 SVREG EQU 9 WORK REGISTER 15900019 IOBREG EQU 10 IOB ADDRESS REGISTER 16000019 LINKR EQU 12 WORK REGISTER 16100019 ERRLNK EQU 12 LINK REG 16200019 ERRE1 EQU 13 WORK REGISTER 16300019 ERRETR EQU 14 RETURN REG 16400019 BASREG EQU 15 BASE REGISTER 16500019 *********************************************************************** 16600019 * * 16700019 * RETRY COUNTS * 16800019 * * 16900019 *********************************************************************** 17000019 ILCOUNT EQU X'05' INCORRECT LENGTH RETRY COUNT 17100019 ILCOUNT2 EQU X'03' DOCUMENT INCORRECT LENGTH COUNT 21797 17150021 CCCNT EQU 5 TEST FOR CHAINING CHECK RETRISE 17200019 EQCNT EQU X'0A' TEST FOR EQUIPMENT CHECK RETRIES 17300019 EQCNT2 EQU X'03' DOCUMENT EQUIPMENT CHECK COUNT 21797 17350021 DCCOUNT1 EQU X'03' DOCUMENT DATA CHECK RETRY COUNT 17400019 DCCOUNT2 EQU X'05' TAPE DATA CHECK COUNT 17500019 INCCOUNT EQU 16 INCREMENT FOR OVERRUN RETRY COUNT 17600019 ORCOUNT EQU X'50' OVERRUN RETRY COUNT (FIVE) 17700019 BOCOUNT EQU X'08' TEST FOR BUS OUT CHECK RETRIED 17800019 *********************************************************************** 17900019 * * 18000019 * MISCELLANEOUS DEFINITIONS * 18100019 * * 18200019 *********************************************************************** 18300019 VEXCTL EQU 44 ADDR OF XCTL ROUTINE 18400019 STAUPRTN EQU 254 STATISTICS UPDATE ROUTINE 18500019 BYTECNT EQU 6 DISPLACMENT TO BYTE COUNT IN CCW 18600019 CVTADDR EQU 16 POINTER TO CVT ADDRESS 18700019 NODOC EQU X'20' TEST FOR NO DOCUMENT FOUND 18800019 LATESS EQU X'40' TEST FOR LATE STACKER SELECT 18900019 KC EQU X'01' TEST FOR KEYBOARD CORRECTION 19000019 SNSLEN EQU 2 LENGTH OF SENSE BYTES TO PUT IN STATA 19100019 SNSDISP EQU 8 STATAB SENSE DISPLACEMENT 19200019 MIXCHAIN EQU X'C0' TEST FOR MIXED CHAINING 19300019 CHINTCHK EQU X'06' TEST FOR CHANNEL OR INTERFACE CHECK 19400019 CLRCNT EQU X'03' BYTE COUNT FOR CLEARING COUNTERS 19500019 ENTDISP EQU 2 CONTROL ENTRY DISPLACEMENT 19600019 STABINC EQU 256 INCREMENT TO NEXT STATAB SECTION 19700019 INTERCPT EQU X'7E' TEST FOR INTERCEPT CONDITION 19800019 OLC EQU X'40' TEST FOR ON-LINE CORRECTION 19900019 ZEROCNT EQU X'0F' TEST FOR FIRST RETRY, INC LENGTH 20000019 EOT EQU X'FF' TEST FOR END OF ERPIB TABLE 20100019 ERPIBLEN EQU 8 ERPIB LENGTH 20200019 EPDT EQU 2 DISPLACEMENT TO ERPIB DEVICE TYPE 20300019 VEX116 EQU 116 ERPIB LOCATION 20400019 RFTEST EQU X'02' TSET FOR READ FORWARD COMMAND 20500019 BITS56 EQU X'03' CLEAR BITS 5 AND 6 OF A BYTE 20600019 RBTEST EQU X'0C' TEST FOR READ BACKWARD COMMAND 20700019 CLEARHI EQU X'0F' CLEAR FOUR BITS OF A BYTE 20800019 CCLENGTH EQU 1 LENGTH OF CCW COMMAND CODE 20900019 DC EQU 0 DISPLACEMENT TO DATA CHECK COUNTS 21000019 ILC EQU 1 DISPLACEMENT TO INCORRECT LENGTH CNTS 21100019 EC EQU 2 DISPLACEMENT TO EQUIPMENT CHECK CNTS 21200019 CDCCNT EQU X'80' TEST FOR CHANNEL DATA CHECK RETRIED 21300019 RETSVC EQU 3 RETURN TO IOS SVC 21400019 ERRORSVC EQU 15 ERROR EXCP 21500019 CLEARCNT EQU X'02' COUNT OF ERROR COUNTER BYTES TO CLEAR 21600019 INVSNS1 EQU X'01' TEST FOR INVALID SENSE BIT 21700019 INVSNS EQU X'17' TEST FOR INVALID SENSE BITS 21800019 TM EQU X'80' TEST FOR TAPE MODE 21900019 IOBCC1 EQU X'10' CONDITION CODE OF SIO 22000019 IOSTUS EQU X'10' STATUS BIT 22100019 VFCT68 EQU 68 INDEX TO INTERPRETER ROUTINE 22200019 STATAB EQU 112 INDEX TO STATISTICS TABLE 22300019 WTORTN EQU 253 LOAD NAME TO WTO RTN. 22400019 PERMERR EQU X'41' ECB CODE FOR PERM ERROR @SA65613 22450021 ADDRLN EQU 3 LENGTH OF CCW ADDRESS @SA65613 22500021 USING *,BASREG 25700019 ERR0011 L IOBREG,RQEIOB-1(RQEREG) GET IOB ADDRESS 25800019 LH UCBREG,RQEUCB(RQEREG) GET UCB ADDRESS 25900019 L COMREG,CVTADDR GET CVT ADDRESS 26000019 TM IOBFL1(IOBREG),IOBERR ERP IN CONTROL 26100019 BO ERR000 YES CONTINUE 26200019 * CLEAR IOB ERROR COUNTERS 26250019 XC IOBBCI(CLRCNT,IOBREG),IOBBCI(IOBREG) CLEAR COUNTERS 26300019 ERR000 CLI IOBCOD(IOBREG),INTERCPT IS IT AN INTERCEPT CONDITION 26400019 BE ERR0012 YES SEE IF CHANNEL ERROR 26500019 CLI IOBCOD(IOBREG),PERMERR CHECK FOR X'41' IN ECB @SA65613 26550021 BNE ERR001A NO, CONTINUE @SA65613 26560021 CLC IOBCSW+1(ADDRLN,IOBREG),WKAREA IS CCW ADDR OK? @SA65613 26570021 BE ERR007 NO, PERMANENT ERROR @SA65613 26580021 ERR001A TM IOBFL1(IOBREG),MIXCHAIN IS IT MIXED CHAINING @SA65613 26600021 BO ERR0012 YES SEE IF CHANNEL ERROR 26700019 TM SIOCC(IOBREG),IOSTUS CODE EQUAL 10 26800019 BZ ERR002 NO CONTINUE 26900019 L CCWREG,IOBRST-1(IOBREG) GET RESTART ADDRESS 27000019 TM IOBFL1(IOBREG),IOBSRS RESTART FLAG ON 27100019 BO ERR003 YES RESTART ADDRESS IS USED 27200019 L CCWREG,IOBST-1(IOBREG) GET START ADDRESS 27300019 B ERR003 CONTINUE 27400019 ERR0012 TM IOBCSW+STATUS2(IOBREG),CHINTCHK CHANNEL OR INTERFACE CHK 27500019 BZ ERR007 NO EXIT TO WTO ROUTINE 27600019 B ERR010 YES TO CHANNEL+INTERFACE CHK RTN 27700019 ERR002 L CCWREG,IOBCSW(IOBREG) GET CCW ADDRESS 27800019 LA CCWREG,0(CCWREG) CLEAR HIGH ORDER BYTE 27900019 SH CCWREG,ERRON1 BACK UP ONE CCW 28000019 TM IOBFL1(IOBREG),IOBCP2 IS COMMAND CHAINING USED 28100019 BZ ERR003 NO SET UP FOR WTO 28200019 TM IOBFL1(IOBREG),IOBERR ENTERED AFTER RETRY 28300019 BZ ERR002A NO CONTINUE 28400019 LR ERREG,CCWREG GET CCW ADDR IN WORK REGISTER 28500019 S ERREG,IOBRST-1(IOBREG) SUBTRACT RESATART ADDRESS 28600019 BE ERR003 IF EQUAL ERROR 28700019 LA WKREG1,IOBBCI(IOBREG) POINT TO IOB ERROR COUNTERS 28800019 L WKREG2,UCBERRCT(UCBREG) POINT TO UCB ERROR COUNTERS 28900019 MVI CLEAR1+1,CLEARCNT SET COUNT TO CLEAR 29000019 BAL LINKR,ERR018 LINK TO COUNTER UPDATE ROUTINE 29100019 ERR002A OI IOBFL1(IOBREG),IOBSRS SET RESTART FLAG ON 29200019 ST CCWREG,IOBRST-1(IOBREG) SAVE CCW RESTART ADDRESS 29300019 ERR003 TM IOBCSW+STATUS1(IOBREG),CSWUCK IS UNIT CHECK POSTED 29400019 BZ ERR004 NO DETERMINE ERROR TYPE 29500019 L ERREG,STATAB(COMREG) GET STATISTICS TABLE ADDRESS 29600019 SR WKREG1,WKREG1 CLEAR WORK REGISTER 29700019 IC WKRG1,UCBSTI(UCBREG) GET STATAB POINTER FROM UCB 29800019 LR WKRG2,ERREG GET STATISTICS TABLE START ADDRESS 29900019 ERR003A CH UCBREG,0(0,WKRG2) DEVICE SUPPORTED BY THIS SECTION 30000019 BC 4,ERR003B YES PROCESS THIS SECTIOB 30100019 LA WKRG2,ENTDISP(WKRG2) BUMP TO NEXT CONTROL ENTRY 30200019 LA WKRG1,STABINC(0,WKRG1) POINT AT NEXT STATAB ENTRY 30300019 B ERR003A LOOP TO TEST NEXT SECTION 30400019 ERR003B MH WKRG1,TEN MULTIPLY STATAB POINTET BY TEN 30500019 AR ERREG,WKRG1 ADD TO STATAB START ADDRESS 30600019 OC SNSDISP(SNSLEN,ERREG),IOBSNS(IOBREG) OR SENSE BYTES IN T 30700019 NC SNSDISP(SNSLEN,ERREG),MASKOUT GET RID OF UNWANTED BITS 30800019 ERR004 LR SVREG,BASREG SAVE BASE REGISTER 30900019 L BASREG,VFCT68(COMREG) GET INTERPRETER ROUTINE ADDRESS 31000019 ERR0041 BALR ERRLNK,BASREG LINK TO INTERPRETER 31100019 DC X'1D' TEST FOR CHANNEL CONTROL CHECK 31200019 DC AL1(ERR010L-ERR0041-2) BRANCH TO CCC ACTION 31300019 DC X'1E' TEST FOR INTERFACE CONTROL CHECK 31400019 DC AL1(ERR010L-ERR0041-4) BRANCH TO ICC ACTION 31500019 DC X'1C' TEST FOR CHANNEL DATA CHECK 31600019 DC AL1(ERR200L-ERR0041-6) BRANCH TO CDC ACTION 31700019 DC X'12' CHECK FOR CONTROL UNIT END 31800019 DC AL1(ERR007L-ERR0041-8) BRANCH TO CUE ACTION 31900019 DC X'16' CHECK FOR UNIT CHECK 32000019 DC AL1(ERR006-ERR0041-10) BRANCH TO UNIT CHECK ACTION 32100019 DC X'2F' END OF LIST 32200019 DC AL1(ERR004B-ERR0041-12) PASS CONTROL TO ERR004B 32300019 ERR010L B ERR010 GO TO ERR010 32400019 ERR200L B ERR200 GO TO CDC ROUTINE 32500019 ERR007L B ERR007 EXIT TO WTO 32600019 ERR004B LR SVREG,BASREG SAVE BASE REGISTER 32700019 L BASREG,VFCT68(COMREG) GET INTERPRETER ROUTINE ADDRESS 32800019 ERR004B1 BALR ERRLNK,BASREG LINK TO INTERPRETER 32900019 DC X'1F' TEST FOR CHAINING CHECK 33000019 DC AL1(ERR011L-ERR004B1-2) BRANCH TO CC ACTION 33100019 DC X'1A' TEST FOR PROGRAM CHECK 33200019 DC AL1(ERR007A-ERR004B1-4) BRANCH TO PC ACTION 33300019 DC X'1B' TEST FOR PROTECTION CHECK 33400019 DC AL1(ERR007A-ERR004B1-6) BRANCH TO PC ACTION 33500019 DC X'19' TEST FOR INCORRECT LENGTH 33600019 DC AL1(ERR017L-ERR004B1-8) BRANCH TO IL ACTION 33700019 DC X'17' CHECK FOR UNIT EXCEPTION 33800019 DC AL1(ERR013L-ERR004B1-10) BRANCH TO UE ACTION 33900019 DC X'2F' END OF LIST 34000019 DC AL1(ERR004B2-ERR004B1-12) PASS CONTROL TO ERR004BI 34100019 * FOLLOWING BRANCHS GO TO ROUTINES MORE THAN 128 BYTES AWAY 34150019 ERR011L B ERR011 GO TO CC ACTION 34200019 ERR017L B ERR017 GO TO IL ACTION 34300019 ERR013L B ERR013 GO TO UE-ACTION 34400019 ERR004B2 TM IOBCSW+STATUS1(IOBREG),CSWUCK IS UNIT CHECK POSTED 34700019 BZ ERR005 NO TO STATISTICS UPDATE ROUTINE 34800019 ERR004E1 TM IOBSNS(IOBREG),KC IS KEYBOARD CORRECTION POSTED 34900019 BO ERR008 YES EXIT TO IOS 35000019 TM IOBSNS+1(IOBREG),LATESS IS LATE STACKER SELECT POSTED 35100019 BO ERR005B YES GO CLEAN UP 35200019 ERR004D TM IOBSNS+1(IOBREG),NODOC IS NO DOCUMENT FOUND POSTED 35300019 BO ERR005B YES CLEAN UP 35400019 ERR005 NI IOBFL1(IOBREG),IOBCEX CLEAR IOB EXCEPTION, ERROR CORRECT 35500019 B ERR005B CONTINUE CLEAN UP 35600019 ERR005B NI IOBFL1(IOBREG),IOBCER CLEAR IOBERR 35800019 LA ERRE1,STAUPRTN LOAD NAME OF STATISTICS UPDATE RTN 35900019 ERR005C L WKREG1,UCBERRCT(UCBREG) POINT TO UCB ERROR COUNTERS 36000019 LA WKREG2,IOBBCI(IOBREG) POINT TO IOB ERROR COUNTERS 36100019 MVI CLEAR1+1,CLEARCNT SET COUNT TO CLEAR 36200019 BAL LINKR,ERR018 LINK TO COUNTER UPDATE ROUTINE 36300019 L ERRETR,VEXCTL(COMREG) GET ADDRESS OF XCTL ROUTINE 36400019 BR ERRETR EXIT VIA XCTL 36500019 ERR006 TM IOBSNS+1(IOBREG),INVSNS ANY INVALID SENSE BITS ON 36600019 BC 5,ERR007 YES ALL DONE-CLEAN UP 36700019 CLC IOBSNS(2,IOBREG),ZER0 CHECK FOR NO SENSE 36730021 BE ERR007 YES GO POST PERMANENT ERROR 36760021 CLC IOBSNS(2,IOBREG),JTBITON CHECK FOR TAPE M0382 36770021 BE ERR007 YES SET PERMANENT ERROR M0382 36780021 ERR0061 TM IOBSNS+1(IOBREG),TM IS IT TAPE MODE 36800019 BO ERR006B YES DETERMINE ERROR TYPE 36900019 ERR006A TM IOBSNS(IOBREG),INVSNS1 INVALID SENSE BIT ON 37000019 BO ERR007 YES GO CLEAN UP 37100019 ERR006B LR SVREG,BASREG SAVE BASE ADDRESS 37200019 L BASREG,VFCT68(COMREG) GET INTERPRETER ROUTINE ADDRESS 37300019 ERR006C BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 37400019 DC X'03' TEST FOR EQUIPMENT CHECK 37500019 DC AL1(ERR012L-ERR006C-2) BRANCH TO EC ROUTINR 37600019 DC X'06' TEST FOR NONRECOVERY @SA65615 37700021 DC AL1(ERR007-ERR006C-4) BRANCH TO NONREC ROUTINE @SA65615 37800021 DC X'01' TEST FOR INTERVENTION REQ'ED @SA65615 37900021 DC AL1(ERR006D-ERR006C-6) BRANCH TO IR ROUTINE @SA65615 38000021 DC X'02' TEST FOR BUS OUT CHECK 38100019 DC AL1(ERR015L-ERR006C-8) BRANCH TO BUS OUT CHECK ROUTINE 38200019 DC X'04' TEST FOR DATA CHECK 38300019 DC AL1(ERR014L-ERR006C-10) BRANCH TO DATA CHECK ROUTINE 38400019 DC X'05' TEST FOR OVERRUN 38500019 DC AL1(ERR016L-ERR006C-12) BRANCH TO OVERRUN ROUTINE 38600019 DC X'00' TEST FOR COMMAND REJECT 38700019 DC AL1(ERR007A-ERR006C-14) BRANCH TO COMMAND REJECT ROUTINE 38800019 DC X'0C' TEST FOR INVALID OPERATION 38900019 DC AL1(ERR007-ERR006C-16) BRANCH TO INVALID OPERATION RTN 39000019 DC X'2F' END OF LIST 39100019 DC AL1(ERR004BL-ERR006C-18) CONTINUE CHECKING FOR ERRORS 39200019 ERR012L B ERR012 GO TO EC ACTION 39300019 ERR015L B ERR015 GO TO BUS OUT ACTION 39400019 ERR014L B ERR014 GO TO DATA CHECK ACTION 39500019 ERR016L B ERR016 GO TO OVERRUN ACTION 39600019 ERR004BL B ERR004B2 CONTINUE ERROR CHECKING 39700021 ERR006D OI IOBFL1(IOBREG),IOBERR SET IOBERR ON 39800019 B ERR007B GO WRITE TO OPERATOR 39900019 * EXIT TO WTO ROUTINE 40000019 ERR007 OI IOBFL3(IOBREG),IOBLOG SET LOGOUT FLAG 40100019 ERR007A OI IOBFL3(IOBREG),IOBMSG SET MESSAGE FLAG 40200019 NI IOBFL1(IOBREG),IOBCER CLEAR IOBERR FLAG 40300019 ERR007B LA ERRE1,WTORTN LOAD NAME OF WTO ROUTINE 40400019 B ERR005C GET OUT VIA XCTL 40500019 ERR008 NI IOBFL1(IOBREG),IOBCER CLEAR IOBERR FLAG 40600019 L WKREG1,UCBERRCT(UCBREG) POINT TO UCB ERROR COUNTERS 40700019 LA WKREG2,IOBBCI(IOBREG) POINT TO IOB ERROR COUNTERS 40800019 MVI CLEAR1+1,CLEARCNT SET COUNT TO CLEAR 40900019 BAL LINKR,ERR018 LINK TO COUNTER UPDATE ROUTINE 41000019 SVC ERRORSVC ISSUE ERROR EXCP 41100019 SVC RETSVC RETURN TO IOS VIA SVC 3 41200019 * UPDATE UCB ERROR COUNTERS ROUTINE 41300019 ERR018 SR WKREG3,WKREG3 ZERO OUT 41400019 SR WKREG4,WKREG4 WORK REGISTERS 41500019 IC WKREG3,DC(WKREG1) GET DATA 41600019 IC WKREG4,DC(WKREG2) CHECK COUNTS 41700019 AR WKREG3,WKREG4 ADD COUNTS 41800019 STC WKREG3,DC(WKREG2) UPDATE DATA CHECK COUNT 41900019 IC WKREG3,ILC(WKREG1) GET INCORRECT 42000019 IC WKREG4,ILC(WKREG2) LENGTH COUNTS 42100019 AR WKREG3,WKREG4 ADD COUNTS 42200019 STC WKREG3,ILC(WKREG2) UPDATE INCORRECT LENGTH COUNT 42300019 IC WKREG3,EC(WKREG1) GET EQUIPMENT CHECK 42400019 IC WKREG4,EC(WKREG2) CHECK COUNTS 42500019 AR WKREG3,WKREG4 ADD COUNTS 42600019 STC WKREG3,EC(WKREG2) UPDATE EQUIPMENT CHECK COUNT 42700019 CLEAR1 XC 0(0,WKREG1),0(WKREG1) CLEAR ERROR COUNTERS 42800019 BR LINKR RETURN TO CALLER 42900019 * CHANNLE DATA CHECK ROUTINE 43000019 ERR200 TM IOBFL3(IOBREG),CDCCNT CHANNEL DAYA CHECK ALREADY RETRIED 43100019 BO ERR007 YES EXIT TO WTO ROUTINE 43200019 OI IOBFL3(IOBREG),CDCCNT SET TO INDICATE RETRIED 43300019 * RETRY ROUTINE 43400019 ERR009 MVC WKAREA(CCLENGTH),0(CCWREG) GET CCW COMMAND CODE 43500019 NI WKAREA,CLEARHI CLEAR HIGH ORDER FOUR BITS 43600019 CLI WKAREA,RBTEST IS COMMAND READ BACKWARD 43700019 BE ERR009B YES CLEAR INPUT AREA & RETRY 43800019 NI WKAREA,BITS56 CLEAR BITS 5 & 6 43900019 CLI WKAREA,RFTEST IS COMMAND READ FORWARD 44000019 BE ERR009B YES CLEAR INPUT AREA & RETRY 44100019 ERR009A OI IOBFL1(IOBREG),IOBERR SET IOBERR ON 44200019 XC IOBSNS(SNSLEN,IOBREG),IOBSNS(IOBREG) M0381 44250021 SVC ERRORSVC RETRY CCW 44300019 SVC RETSVC RETURN TO IOS VIA SVC 3 44400019 * CLEAR INPUT AREA 44500019 ERR009B L WKREG2,0(CCWREG) GET INPUT AREA ADDRESS FROM CCW 44600019 LA WKREG2,0(WKREG2) CLEAR OUT COMMAND CODE 44700019 LH WKREG3,BYTECNT(CCWREG) GET BYTE COUNT 44800019 BCTR WKREG3,0 DECREMENT COUNT BY ONE 44900019 CLI WKAREA,RFTEST IS COMMAND READ FORWARD 45000019 BE ERR009C YES ADDRESS NOW CORRECT 45100019 SR WKREG2,WKREG3 ADJUST ADDRESS TO PROPER VALUE 45200019 ERR009C STC WKREG3,ERR009D+1 STORE COUNT TO CLEAR 45300019 ERR009D XC 0(0,WKREG2),0(WKREG2) CLEAR INPUT AREA 45400019 B ERR009A RETRY BAD CCW 45500019 * CHANNEL CHECK ROUTINE 45600019 ERR010 L WKREG1,VEX116(COMREG) GET PTR TO PTR TO PTR TO ERPIB 45700019 L WKREG1,0(WKREG1) GET PTR TO PTR TO ERPIB 45800019 L WKREG1,0(WKREG1) GET PTR TO ERPIB 45900019 ERR010A CH UCBREG,EPDT(WKREG1) IS THIS CORRECT ERPIB 46000019 BE ERR010B YES PROCESS IT 46100019 LA WKREG1,ERPIBLEN(WKREG1) BUMP TO NEXT ERPIB 46200019 TM 0(WKREG1),EOT IS IT END OF ERPIB TABLE 46300019 BC 14,ERR010A NO TEST NEXT ERPIB 46400019 BC 1,ERR007 YES TO LOGOUT ROUTINE 46500019 ERR010B XC 0(ERPIBLEN,WKREG1),0(WKREG1) CLEAR ERPIB 46600019 B ERR007 GO TO LOGOUT ROUTINE 46700019 * CHAINING CHECK ROUTINE 46800019 ERR011 IC WKREG1,IOBECT+1(IOBREG) GET CHAINING CHECK COUNT 46900019 LA WKREG1,1(WKREG1) INCREMENT COUNT 47000019 STC WKREG1,IOBECT+1(IOBREG) UPDATE COUNT 47100019 TM IOBECT+1(IOBREG),CCCNT IS COUNT NOW FIVE 47200019 BO ERR007 YES TO LOGOUT 47300019 B ERR009 NO RETRY 47400019 * EQUIPMENT CHECK 47500019 ERR012 IC WKREG1,IOBECT(IOBREG) GET EQUIPMENT CHECK COUNT 47600019 LA WKREG1,1(WKREG1) INCREMENT COUNT 47700019 STC WKREG1,IOBECT(IOBREG) UPDATE COUNTER 47800019 TM IOBSNS+1(IOBREG),TM IS IT TAPE MODE 21797 47810021 BO ERR012B YES TEST FOR A FIVE COUNT 21797 47820021 CLI IOBECT(IOBREG),EQCNT2 IS COUNT NOW THREE 21797 47830021 BE ERR008 YES EXIT TO IOS 21797 47840021 B ERR009 NO RETRY 21797 47850021 ERR012B EQU * 21797 47860021 CLI IOBECT(IOBREG),EQCNT IS COUNT NOW TEN 47900019 BE ERR008 YES TO IOS A33936 48000001 B ERR009 NO RETRY 48100019 * UNIT EXCEPTION 48200019 ERR013 TM IOBFL1(IOBREG),IOBERR IOBERR ON (ENTERED AFTER RETRY) 48300019 BZ ERR013B NO CONTINUE 48400019 ERR013A NI IOBFL1(IOBREG),IOBCEX SET IOBEX OFF 48500019 B ERR005B TO STATISTICS UPDATE ROUTINE 48600019 ERR013B TM SIOCC(IOBREG),IOBCC1 SIO CONDITION CODE 01 48700019 BO ERR005B YES TO STATISTICS UPDATE ROUTINE 48800019 MVC WKAREA(CCLENGTH),0(CCWREG) GET CCW COMMAND CODE 48900019 NI WKAREA,BITS56 CLEAR HIHG ORDER SIB BITS 49000019 CLI WKAREA,RFTEST IS IT READ FORWARD 49100019 BE ERR009B YES GO CLEAR INPUT AREA AND RETRY 49200019 B ERR005B NO TO STATISTICS UPDATE ROUTINE 49300019 * DATA CHECK ROUTINE 49400019 ERR014 IC WKREG1,IOBBCI(IOBREG) GET DATA CHECK ERROR COUNT 49500019 LA WKREG1,1(WKREG1) INCREMENT COUNT 49600019 STC WKREG1,IOBBCI(IOBREG) UPDATE DATA CHECK ERROR COUNT 49700019 TM IOBSNS+1(IOBREG),TM IS IT TAPE MODE 49800019 BO ERR014B YES PROCESS TAPE 49900019 ERR014A TM 0(CCWREG),OLC IS IT ON-LINE CORRECTION 50000019 BO ERR008 YES TO IOS A33926 50100020 TM IOBBCI(IOBREG),DCCOUNT1 IS COUNT NOW THREE 50200019 BO ERR008 YES TO IOS A33926 50300020 B ERR009 NO RETRY 50400019 ERR014B TM IOBSNS(IOBREG),KC IS IS KEYBOARD CORREACTION 50500019 BO ERR008 YES TO IOS A33926 50600020 TM IOBBCI(IOBREG),DCCOUNT2 IS COUNT NOW FIVE 50700019 BO ERR008 YES TO IOS A33926 50800020 B ERR009 NO RETRY 50900019 * BUSOUT CHECK 51000019 ERR015 TM IOBECT+1(IOBREG),BOCOUNT BUS OUT CHECK COUNT EQUAL ONE 51100019 BO ERR007 YES TO WTO ROUTINE 51200019 OI IOBECT+1(IOBREG),BOCOUNT SET COUNT TO ONE 51300019 B ERR009 RETRY 51400019 * OVERRUN 51500019 ERR016 IC WKREG1,IOBECT+1(IOBREG) GET OVERRUN ERROR COUNT 51600019 LA WKREG1,INCCOUNT(WKREG1) INCREMENT COUNT 51700019 STC WKREG1,IOBECT+1(IOBREG) UPDATE ERROR COUNT 51800019 TM IOBECT+1(IOBREG),ORCOUNT DOES COUNT EQUAL FOVE 51900019 BO ERR007 YES EXIT TO WTO ROUTINE 52000019 B ERR009 NO RETRY 52100019 * INCORRECT LENGTH 52200019 ERR017 TM IOBFL1(IOBREG),IOBERR ENTERED AFTER RETRY 52300019 BZ ERR017A NO 52400019 TM IOBBCI+1(IOBREG),ZEROCNT FIRST TIME HERE 52500019 BC 5,ERR017A NO CONTINUE 52600019 NI IOBFL1(IOBREG),IOBCEX CLEAR IOBEX 52700019 B ERR008 EXIT TO IOS 52750019 ERR017A IC WKREG1,IOBBCI+1(IOBREG) GET INCORRECT LENGTH ERROR COUNT 52800019 LA WKREG1,1(WKREG1) INCREMENT ERROR COUNT 52900019 STC WKREG1,IOBBCI+1(IOBREG) UPDATE COUNTER 53000019 TM IOBSNS+1(IOBREG),TM IS IT TAPE MODE 21797 53010021 BO ERR017B YES TEST FOR A FIVE COUNT 21797 53020021 CLI IOBBCI+1(IOBREG),ILCOUNT2 IS COUNT NOW THREE 21797 53030021 BE ERR008 YES EXIT TO IOS 21797 53040021 B ERR009 NO RETRY 21797 53050021 ERR017B EQU * 21797 53060021 CLI IOBBCI+1(IOBREG),ILCOUNT IS COUNT NOW FIVE 53100019 BE ERR008 YES EXIT TO IOS 53200019 B ERR009 NO RETRY 53300019 DS 0H FORCE HALF WORD ALIGNMENT 53400019 ERRON1 DC AL2(8) CONSTANT OF 8 53500019 TEN DC X'000A' CONSTANT OF 10 53600019 MASKOUT DC X'267F' MASK FOR CLEARING UNWANTED SENSE DATA A33936 53700001 WKAREA DC XL1'00' WORK AREA 53800019 ZER0 DC XL2'0000' SENSE CHECK 53850021 JTBITON DC XL2'0080' JOURNAL TAPE BIT ON CHECK M0382 53860021 END IGE0011C 53900019 ./ ADD SSI=15011680,NAME=IGE0011D,SOURCE=0 TITLE 'IGE0011D - 1288 OPTICAL CHARACTER READER ERP' 00100019 IGE0011D CSECT ENTRY POINT FOR 1288 ERP @SA65621 00150021 *********************************************************************** 00200019 *MODULE-NAME @SA65621 00210021 * IGE0011D @SA65621 00220021 * @SA65621 00222021 *DESCRIPTIVE-NAME @SA65621 00224021 * OCR ERP FOR 1288 DEVICE @SA65621 00226021 * @SA65621 00228021 *COPYRIGHT @SA65621 00228421 * NONE @SA65621 00228821 * @SA65621 00229221 *CHANGE-ACTIVITY @SA65621 00229621 * RELEASE 20 ADDITIONS/CHANGES/DELETIONS 00230020 *C503000 A33926 00260020 *D360000 A33936 00270001 *C482000,533000 A33936 00280001 * 00285021 * RELEASE 21 ADDITIONS/CHANGES/DELETIONS 00290021 *C17600,180000 21797 00295021 *C379000-382000 A39680 00297021 * 00297621 *D006000 00298221 * RELEASE 21.7 ADDITIONS / CHANGES /DELETIONS 00298821 *C379000-382000 A39692 00299421 * * 00300019 *TITLE 'IGE0011D' - 1288 ERROR RECOVERY PROCEDURES * 00400019 * * 00500019 *STATUS RELEASE 21.7 CHANGE LEVEL 000 * 00600021 * * 00700019 *FUNCTION/OPERATION IGE0011D IS SCHEDULED FOR EXECUTION WHENEVER THE* 00800019 * I/O SUPERVISOR DETECTS AN ERROR ASSOCIATED WITH THE 1288 OPTICAL * 00900019 * CHARACTER READER THAT REQUIRES ERROR RECOVERY PROCEDURES. * 01000019 * * 01100019 * * 01200019 * THE ERROR ROUTINE USES THE STANDARD ERROR INTERPRETER ROUTINE FOR * 01300019 * TESTING OF SENSE BITS AND CSW STATUS BITS. THE FOLLOWING ACTIONS * 01400019 * ARE TAKEN DEPENDING UPON THE NATURE OF THE ERROR * 01500019 * * 01600019 * 1) NORMAL CONDITION OR SUCCESSFUL RETRY OF RECOVERABLE ERROR * 01700019 * CONDITION * 01800019 * * 01900019 * IOB EXCEPTION AND ERROR FLAGS ARE CLEARED AND CONTROL IS * 02000019 * TRANSFERRED TO THE STATISTICS UPDATE ROUTINE. * 02100019 * 2) RECOVERABLE ERROR * 02200019 * * 02300019 * IOB ERROR FLAG IS SET. * 02400019 * IOB EXCEPTION FLAG IS CLEARED. * 02500019 * ERROR COUNTS ARE UPDATED. * 02600019 * CONTROL IS PASSED TO THE I/O SUPERVISOR VIA SVC 15 AND SVC 3 * 02700019 * TO RETRY THE CHANNEL PROGRAM. * 02800019 * * 02900019 * 3) PERMANENT ERROR * 03000019 * IOB ERROR AND EXCEPTION FLAGS ARE SET. * 03100019 * IOB MESSAGE AND LOGOUT FLAGS MAY BE SET. * 03200019 * CONTROL IS RETURNED TO THE I/O SUPERVISOR EITHER DIRECTLY * 03300019 * THROUGH ISSUANCE OF AN SVC 15 AND AN SVC 3 OR INDIRECTLY BY * 03400019 * FIRST PASSING CONTROL TO THE WTO ROUTINE WHICH IN TURN PASSES * 03500019 * CONTROL TO THE STATISTICS UPDATE ROUTINE AND THE I/O OUTBOARD * 03600019 * RECORDING ROUTINE, IF REQUIRED, AND EVENTUALLY TO THE I/O * 03700019 * SUPERVISOR. * 03800019 * * 03900019 *ENTRY POINTS * 04000019 * IGE0011D - ERROR RECOVERY PROCEDURE ENTRY POINT * 04100019 * * 04200019 * DATA PASSED TO THE ROUTINE CONSISTS OF STANDARD SYSTEM CONTROL* 04300019 * BLOCKS. * 04400019 * * 04500019 *INPUT RQE POINTER IN REGISTER 1. * 04600019 * * 04700019 *OUTPUT I/O ERROR AND INTERVENTION REQUIRED MESSAGES IN SOME INSTANCES* 04800019 * * 04900019 *EXTERNAL ROUTINES ERROR INTERPRETER ROUTINE * 05000019 * * 05100019 *EXITS-NORMAL XCTL TO STATISTICS UPDATE ROUTINE FOLLOWING SUCCESSFUL * 05200019 * RECOVERY OF A RETRYABLE ERROR OR UPON DETECTION OF A NORMAL * 05300019 * CONDITION. * 05400019 * * 05500019 * -ERROR * 05600019 * * 05700019 * 1) SVC 15 AND SVC 3 EXIT TO I/O SUPERVISOR FOR RE-EXECUTION OF * 05800019 * THE CHANNEL PROGRAM UPON DETECTION OF A RETRYABLE ERROR. * 05900019 * * 06000019 * 2) XCTL TO WTO ROUTINE FOR ISSUANCE OF A PERMANENT I/O ERROR * 06100019 * MESSAGE AND UPDATING OF STATISTICS AND SYS1.LOGREC IN THE CASE* 06200019 * OF SOME PERMANENT ERRORS. * 06300019 * * 06400019 * 3) SVC 15 AND SVC 3 EXIT TO I/O SUPERVISOR IN THE CASE OF SOME * 06500019 * PERMANENT I/O ERRORS. * 06600019 * * 06700019 *TABLES/WORK AREAS * 06800019 * 1) INPUT/OUTPUT BLOCK (IOB) * 06900019 * * 07000019 * 2) UNIT CONTROL BLOCK (UCB) * 07100019 * * 07200019 * 3) UCB EXTENSION * 07300019 * * 07400019 * 4) STATISTICS UPDATE TABLE * 07500019 * * 07600019 *ATTRIBUTES * 07700019 * * 07800019 * RE-USABLE, SUPERVISOR MODE * 07900019 * * 08000019 *NOTES * 08100019 * * 08200019 * N/A * 08300019 * * 08400019 * * 08500019 *********************************************************************** 08600019 *********************************************************************** 08700019 * * 08800019 * IOB DEFINITION * 08900019 * * 09000019 *********************************************************************** 09100019 IOBFL1 EQU 0 FLAGS 1 09200019 IOBSNS EQU 2 SENSE DATA 09300019 IOBCOD EQU 4 ECB CODE 09400019 IOBFL3 EQU 8 FLAGS 3 09500019 IOBCSW EQU 8 CSW STORAGE 09600019 STATUS1 EQU 4 FIRST BYTE OF CSW STATUS 09700019 STATUS2 EQU 5 SECOND BYTE OF CSW STATUS 09800019 SIOCC EQU 16 DISPLACEMENT TO SIO CONDITION CODE 09900019 IOBST EQU 17 START ADDRESS 10000019 IOBRST EQU 25 RESTART POINTER 10100019 IOBBCI EQU 28 BLOCK COUNT INCR. 10200019 IOBECT EQU 30 ERROR COUNTS 10300019 *********************************************************************** 10400019 * * 10500019 * IOB FLAG 1 DEFINITION * 10600019 * * 10700019 *********************************************************************** 10800019 IOBCP2 EQU X'40' TYPE OF CHANNEL PROGRAM 10900019 IOBERR EQU X'20' IOB ERROR FLAG 11000019 IOBCER EQU X'DF' CLEAR IOBERR FLAG 11100019 IOBEX EQU X'04' EXCEPT FLAG 11200019 IOBSRS EQU X'01' START/RESTART FLAG 11300019 IOBCEX EQU X'FF'-IOBEX CLEAR IOB EXCEPTION 11400019 IOBEXE EQU IOBEX+IOBERR FX + ERR FLAGS 11500019 *********************************************************************** 11600019 * * 11700019 * IOB FLAG 3 DEFINITION * 11800019 * * 11900019 *********************************************************************** 12000019 IOBPRT EQU X'08' PUNCH RETRY BIT 12100019 IOBMSG EQU X'04' MESSAGE TYPE 12200019 IOBPR2 EQU X'02' QSAM PUNCH RETRY BIT 12300019 IOBLOG EQU X'01' LOGOUT FLAG 12400019 *********************************************************************** 12500019 * * 12600019 * UCB DEFINITION * 12700019 * * 12800019 *********************************************************************** 12900019 UCBSTI EQU 9 STATISTICS POINTER 13000019 UCBERRCT EQU 24 DISPLACEMENT TO UCB ERROR COUNTER ADR 13100019 *********************************************************************** 13200019 * * 13300019 * TWELVE STAR DEFINITION * 13400019 * * 13500019 *********************************************************************** 13600019 RQEUCB EQU 2 DISPLACEMENT TO UCB ADDRESS 13700019 RQEIOB EQU 5 DISPLACEMENT TO IOB ADDRESS 13800019 *********************************************************************** 13900019 * * 14000019 * STATUS INDICATORS * 14100019 * * 14200019 *********************************************************************** 14300019 CSWUCK EQU X'02' UNIT CHECK 14400019 *********************************************************************** 14500019 * * 14600019 * REGISTER DEFINITION * 14700019 * * 14800019 *********************************************************************** 14900019 RQEREG EQU 1 RQE POINTER 15000019 CCWREG EQU 2 CCW ADDRESS REGISTER 15100019 ERREG EQU 4 WORK REGISTER 15200019 WKREG3 EQU 4 WORK REGISTER 15300019 WKRG1 EQU 5 WORK REGISTER 15400019 WKREG1 EQU 5 WORK REGISTER 15500019 WKREG2 EQU 6 WORK REGISTER 15600019 WKRG2 EQU 6 WORK REGISTER 15700019 UCBREG EQU 7 UCB ADDRESS REG 15800019 COMREG EQU 8 COMMUNICATION TABLE REG 15900019 SVREG EQU 9 WORK REGISTER 16000019 WKREG4 EQU 9 WORK REGISTER 16100019 IOBREG EQU 10 IOB ADDRESS REGISTER 16200019 LINKR EQU 12 WORK REGISTER 16300019 ERRLNK EQU 12 LINK REG 16400019 ERRE1 EQU 13 WORK REGISTER 16500019 ERRETR EQU 14 RETURN REG 16600019 BASREG EQU 15 BASE REGISTER 16700019 *********************************************************************** 16800019 * * 16900019 * RETRY COUNTS * 17000019 * * 17100019 *********************************************************************** 17200019 BOCOUNT EQU X'08' TEST FOR BUS OUT CHECK RETRIED 17300019 CDCCNT EQU X'80' TEST FOR CHANNEL DATA CHECK RETRIED 17400019 CCCNT EQU 5 TEST FOR CHAINING CHECK RETRISE 17500019 EQCNT EQU X'03' TEST FOR EQUIPMENT CHECK RETRY 21797 17600021 DCCOUNT1 EQU X'03' DOCUMENT DATA CHECK RETRY COUNT 17700019 INCCOUNT EQU 16 INCREMENT FOR OVERRUN RETRY COUNT 17800019 ORCOUNT EQU X'50' OVERRUN RETRY COUNT (FIVE) 17900019 ILCOUNT EQU X'03' INCORRECT LENGTH RETRY COUNT 21797 18000021 *********************************************************************** 18100019 * * 18200019 * MISCELLANEOUS DEFINITIONS * 18300019 * * 18400019 *********************************************************************** 18500019 VEXCTL EQU 44 ADDR OF XCTL ROUTINE 18600019 STAUPRTN EQU 254 STATISTICS UPDATE ROUTINE 18700019 CVTADDR EQU 16 POINTER TO CVT ADDRESS 18800019 BYTECNT EQU 6 DISPLACMENT TO BYTE COUNT IN CCW 18900019 INTERCPT EQU X'7E' TEST FOR INTERCEPT CONDITION 19000019 STABINC EQU 256 INCREMENT TO NEXT STATAB SECTION 19100019 ENTDISP EQU 2 CONTROL ENTRY DISPLACEMENT 19200019 CLRCNT EQU X'03' BYTE COUNT FOR CLEARING COUNTERS 19300019 CHINTCHK EQU X'06' TEST FOR CHANNEL OR INTERFACE CHECK 19400019 MIXCHAIN EQU X'C0' TEST FOR MIXED CHAINING 19500019 SNSDISP EQU 8 STATAB SENSE DISPLACEMENT 19600019 SNSLEN EQU 2 LENGTH OF SENSE BYTES TO PUT IN STATA 19700019 EOPDISP EQU 9 DISPLACEMENT TO END OF PAGE BIT 19800019 EOP EQU X'40' TEST FOR END OF PAGE 19900019 NODOC EQU X'20' TEST FOR NO DOCUMENT FOUND 20000019 INVSNS EQU X'97' TEST FOR INVALID SENSE BITS 20100019 INVSNS1 EQU X'01' TEST FOR INVALID SENSE BIT 20200019 CLEARCNT EQU X'02' COUNT OF ERROR COUNTER BYTES TO CLEAR 20300019 ERRORSVC EQU 15 ERROR EXCP 20400019 RETSVC EQU 3 RETURN TO IOS SVC 20500019 CCLENGTH EQU 1 LENGTH OF CCW COMMAND CODE 20600019 CLEARHI EQU X'0F' CLEAR FOUR BITS OF A BYTE 20700019 RBTEST EQU X'0C' TEST FOR READ BACKWARD COMMAND 20800019 BITS56 EQU X'03' CLEAR BITS 5 AND 6 OF A BYTE 20900019 RFTEST EQU X'02' TSET FOR READ FORWARD COMMAND 21000019 VEX116 EQU 116 ERPIB LOCATION 21100019 EPDT EQU 2 DISPLACEMENT TO ERPIB DEVICE TYPE 21200019 ERPIBLEN EQU 8 ERPIB LENGTH 21300019 DC EQU 0 DISPLACEMENT TO DATA CHECK COUNTS 21400019 ILC EQU 1 DISPLACEMENT TO INCORRECT LENGTH CNTS 21500019 EC EQU 2 DISPLACEMENT TO EQUIPMENT CHECK CNTS 21600019 EOT EQU X'FF' TEST FOR END OF ERPIB TABLE 21700019 ZEROCNT EQU X'0F' TEST FOR FIRST RETRY, INC LENGTH 21800019 IOSTUS EQU X'10' STATUS BIT 21900019 VFCT68 EQU 68 INDEX TO INTERPRETER ROUTINE 22000019 STATAB EQU 112 INDEX TO STATISTICS TABLE 22100019 WTORTN EQU 253 LOAD NAME TO WTO RTN. 22200019 PERMERR EQU X'41' ECB CODE FOR PERM ERROR @SA65613 22250021 ADDRLN EQU 3 LENGTH OF CCW ADDRESS @SA65613 22300021 USING *,BASREG 25500019 ERR0011 L IOBREG,RQEIOB-1(RQEREG) GET IOB ADDRESS 25600019 LH UCBREG,RQEUCB(RQEREG) GET UCB ADDRESS 25700019 L COMREG,CVTADDR GET CVT ADDRESS 25800019 TM IOBFL1(IOBREG),IOBERR ERP IN CONTROL 25900019 BO ERR000 YES CONTINUE 26000019 * CLEAR IOB ERROR COUNTERS 26050019 XC IOBBCI(CLRCNT,IOBREG),IOBBCI(IOBREG) CLEAR COUNTERS 26100019 ERR000 CLI IOBCOD(IOBREG),INTERCPT IS IT AN INTERCEPT CONDITION 26200019 BE ERR0012 YES SEE IF CHANNEL ERROR 26300019 CLI IOBCOD(IOBREG),PERMERR CHECK FOR X'41' IN ECB @SA65613 26350021 BNE ERR001A NO, CONTINUE @SA65613 26360021 CLC IOBCSW+1(ADDRLN,IOBREG),WKAREA IS CCW ADDR OK? @SA65613 26370021 BE ERR007 NO, PERMANENT ERROR @SA65613 26380021 ERR001A TM IOBFL1(IOBREG),MIXCHAIN IS IT MIXED CHAINING @SA65613 26400021 BO ERR0012 YES SEE IF CHANNEL ERROR 26500019 TM SIOCC(IOBREG),IOSTUS CODE EQUAL 10 26600019 BZ ERR002 NO CONTINUE 26700019 L CCWREG,IOBRST-1(IOBREG) GET RESTART ADDRESS 26800019 TM IOBFL1(IOBREG),IOBSRS RESTART FLAG ON 26900019 BO ERR003 YES RESTART ADDRESS IS USED 27000019 L CCWREG,IOBST-1(IOBREG) GET START ADDRESS 27100019 B ERR003 CONTINUE 27200019 ERR0012 TM IOBCSW+STATUS2(IOBREG),CHINTCHK CHANNEL OR INTERFACE CHK 27300019 BZ ERR007 NO EXIT TO WTO ROUTINE 27400019 B ERR010 YES TO CHANNEL+INTERFACE CHK RTN 27500019 ERR002 L CCWREG,IOBCSW(IOBREG) GET CCW ADDRESS 27600019 LA CCWREG,0(CCWREG) CLEAR HIGH ORDER BYTE 27700019 SH CCWREG,ERRON1 BACK UP ONE CCW 27800019 TM IOBFL1(IOBREG),IOBCP2 IS COMMAND CHAINING USED 27900019 BZ ERR003 NO SET UP FOR WTO 28000019 TM IOBFL1(IOBREG),IOBERR ENTERED AFTER RETRY 28100019 BZ ERR002A NO CONTINUE 28200019 LR ERREG,CCWREG GET CCW ADDR IN WORK REGISTER 28300019 S ERREG,IOBRST-1(IOBREG) SUBTRACT RESATART ADDRESS 28400019 BE ERR003 IF EQUAL ERROR 28500019 LA WKREG1,IOBBCI(IOBREG) POINT TO IOB ERROR COUNTERS 28600019 L WKREG2,UCBERRCT(UCBREG) POINT TO UCB ERROR COUNTERS 28700019 MVI CLEAR1+1,CLEARCNT SET COUNT TO CLEAR 28800019 BAL LINKR,ERR018 LINK TO COUNTER UPDATE ROUTINE 28900019 ERR002A OI IOBFL1(IOBREG),IOBSRS SET RESTART FLAG ON 29000019 ST CCWREG,IOBRST-1(IOBREG) SAVE CCW RESTART ADDRESS 29100019 ERR003 TM IOBCSW+STATUS1(IOBREG),CSWUCK IS UNIT CHECK POSTED 29200019 BZ ERR004 NO DETERMINE ERROR TYPE 29300019 L ERREG,STATAB(COMREG) GET STATISTICS TABLE ADDRESS 29400019 SR WKREG1,WKREG1 CLEAR WORK REGISTER 29500019 IC WKRG1,UCBSTI(UCBREG) GET STATAB POINTER FROM UCB 29600019 LR WKRG2,ERREG GET STATISTICS TABLE START ADDRESS 29700019 ERR003A CH UCBREG,0(0,WKRG2) DEVICE SUPPORTED BY THIS SECTION 29800019 BC 4,ERR003B YES PROCESS THIS SECTIOB 29900019 LA WKRG2,ENTDISP(WKRG2) BUMP TO NEXT CONTROL ENTRY 30000019 LA WKRG1,STABINC(0,WKRG1) POINT AT NEXT STATAB ENTRY 30100019 B ERR003A LOOP TO TEST NEXT SECTION 30200019 ERR003B MH WKRG1,TEN MULTIPLY STATAB POINTET BY TEN 30300019 AR ERREG,WKRG1 ADD TO STATAB START ADDRESS 30400019 OC SNSDISP(SNSLEN,ERREG),IOBSNS(IOBREG) OR SENSE BYTES IN T 30500019 NC SNSDISP(SNSLEN,ERREG),MASKOUT GET RID OF UNWANTED BITS 30600019 NI EOPDISP(ERREG),EOP CLEAR POSSIBLE END OF PAGE 30700019 ERR004 LR SVREG,BASREG SAVE BASE REGISTER 30800019 L BASREG,VFCT68(COMREG) GET INTERPRETER ROUTINE ADDRESS 30900019 ERR0041 BALR ERRLNK,BASREG LINK TO INTERPRETER 31000019 DC X'1D' TEST FOR CHANNEL CONTROL CHECK 31100019 DC AL1(ERR010L-ERR0041-2) BRANCH TO CCC ACTION 31200019 DC X'1E' TEST FOR INTERFACE CONTROL CHECK 31300019 DC AL1(ERR010L-ERR0041-4) BRANCH TO ICC ACTION 31400019 DC X'1C' TEST FOR CHANNEL DATA CHECK 31500019 DC AL1(ERR200L-ERR0041-6) BRANCH TO CDC ACTION 31600019 DC X'10' TEST FOR ATTENTION 31700019 DC AL1(ERR007-ERR0041-8) BRANCH TO ATTENTION ACTION 31800019 DC X'12' TEST FOR CONTROL UNIT END 31900019 DC AL1(ERR007-ERR0041-10) BRANCH TO CUE ACTION 32000019 DC X'16' TEST FOR UNIT CHECK 32100019 DC AL1(ERR006-ERR0041-12) BRANCH TO UNIT CHECK ACTION 32200019 DC X'2F' END OF LIST 32300019 DC AL1(ERR004B-ERR0041-14) PASS CONTROL TO ERR004B 32400019 * FOLLOWING BRANCHES GO TO ROUTINES MORE THAN 128 BYTES AWAY 32450019 ERR010L B ERR010 GO TO ERR010 32500019 ERR200L B ERR200 GO TO CDC ROUTINE 32600019 ERR004B LR SVREG,BASREG SAVE BASE REGISTER 32800019 L BASREG,VFCT68(COMREG) GET INTERPRETER ROUTINE ADDRESS 32900019 ERR004B1 BALR ERRLNK,BASREG LINK TO INTERPRETER 33000019 DC X'1F' TEST FOR CHAINING CHECK 33100019 DC AL1(ERR011L-ERR004B1-2) BRANCH TO CC ACTION 33200019 DC X'1A' TEST FOR PROGRAM CHECK 33300019 DC AL1(ERR007A-ERR004B1-4) BRANCH TO PC ACTION 33400019 DC X'1B' TEST FOR PROTECTION CHECK 33500019 DC AL1(ERR007A-ERR004B1-6) BRANCH TO PC ACTION 33600019 DC X'19' TEST FOR INCORRECT LENGTH 33700019 DC AL1(ERR017L-ERR004B1-8) BRANCH TO IL ACTION 33800019 DC X'17' CHECK FOR UNIT EXCEPTION 33900019 DC AL1(ERR013L-ERR004B1-10) BRANCH TO UE ACTION 34000019 DC X'2F' END OF LIST 34100019 DC AL1(ERR004B2-ERR004B1-12) PASS CONTROL TO ERR004B2 34200019 * THESE BRANCHS GO TO ROUTINES MORE THAN 128 BYTES AWAY 34250019 ERR011L B ERR011 GO TO CC ACTION 34300019 ERR017L B ERR017 GO TO IL ACTION 34400019 ERR013L B ERR013 GO TO UE-ACTION 34500019 ERR004B2 TM IOBCSW+STATUS1(IOBREG),CSWUCK IS UNIT CHECK POSTED 34700019 BZ ERR005 NO TO STATISTICS UPDATE ROUTINE 34900019 ERR004C TM IOBSNS+1(IOBREG),EOP IS IR END OF PAGE 35000019 BO ERR008 YES EXIT TO IOS 35200019 ERR004D TM IOBSNS+1(IOBREG),NODOC IS NO DOCUMENT FOUND POSTED 35600019 BO ERR005B YES CLEAN UP 35700019 ERR005 NI IOBFL1(IOBREG),IOBCEX CLEAR IOB EXCEPTION, ERROR CORRECT 35800019 B ERR005B CONTINUE CLEAN UP 35900019 ERR005B NI IOBFL1(IOBREG),IOBCER CLEAR IOBERR 36100019 LA ERRE1,STAUPRTN LOAD NAME OF STATISTICS UPDATE RTN 36200019 ERR005C L WKREG1,UCBERRCT(UCBREG) POINT TO UCB ERROR COUNTERS 36300019 LA WKREG2,IOBBCI(IOBREG) POINT TO IOB ERROR COUNTERS 36400019 MVI CLEAR1+1,CLEARCNT SET COUNT TO CLEAR 36500019 BAL LINKR,ERR018 LINK TO COUNTER UPDATE ROUTINE 36600019 L ERRETR,VEXCTL(COMREG) GET ADDRESS OF XCTL ROUTINE 36700019 BR ERRETR EXIT VIA XCTL 36800019 ERR006 TM IOBSNS+1(IOBREG),INVSNS ANY INVALID SENSE BITS ON 36900019 BC 5,ERR007 YES ALL DONE-CLEAN UP 37000019 ERR006A TM IOBSNS(IOBREG),INVSNS1 INVALID SENSE BIT ON 37200019 BO ERR007 YES GO CLEAN UP 37300019 ERR006B LR SVREG,BASREG SAVE BASE ADDRESS 37400019 L BASREG,VFCT68(COMREG) GET INTERPRETER ROUTINE ADDRESS 37500019 ERR006C BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 37600019 DC X'03' TEST FOR EQUIPMENT CHECK 37700019 DC AL1(ERR012L-ERR006C-2) BRANCH TO EC ROUTINE 37800021 DC X'06' TEST FOR NONRECOVERY A39692 37900021 DC AL1(ERR007-ERR006C-4) BRANCH TO NONREC ROUTINE A39692 38000021 DC X'01' TEST FOR INTERVENTION REQUIRED A39692 38100021 DC AL1(ERR006D-ERR006C-6) BRANCH TO IR ROUTINE A39692 38200021 DC X'02' TEST FOR BUS OUT CHECK 38300019 DC AL1(ERR015L-ERR006C-8) BRANCH TO BUS OUT CHECK ROUTINE 38400019 DC X'04' TEST FOR DATA CHECK 38500019 DC AL1(ERR014L-ERR006C-10) BRANCH TO DATA CHECK ROUTINE 38600019 DC X'05' TEST FOR OVERRUN 38700019 DC AL1(ERR016L-ERR006C-12) BRANCH TO OVERRUN ROUTINE 38800019 DC X'00' TEST FOR COMMAND REJECT 38900019 DC AL1(ERR007A-ERR006C-14) BRANCH TO COMMAND REJECT ROUTINE 39000019 DC X'0C' TEST FOR INVALID OPERATION 39100019 DC AL1(ERR007-ERR006C-16) BRANCH TO INVALID OPERATION RTN 39200019 DC X'2F' END OF LIST 39300019 DC AL1(ERR004BL-ERR006C-18) CONTINUE CHECKING FOR ERRORS 39400019 ERR012L B ERR012 GO TO EC ACTION 39500019 ERR015L B ERR015 GO TO BUS OUT ACTION 39600019 ERR014L B ERR014 GO TO DATA CHECK ACTION 39700019 ERR016L B ERR016 GO TO OVERRUN ACTION 39800019 ERR004BL B ERR004B CONTINUE ERROR CHECKING 39900019 ERR006D OI IOBFL1(IOBREG),IOBERR SET IOBERR ON 40000019 B ERR007B GO WRITE TO OPERATOR 40100019 * EXIT TO WTO ROUTINE 40200019 ERR007 OI IOBFL3(IOBREG),IOBLOG SET LOGOUT FLAG 40300019 ERR007A OI IOBFL3(IOBREG),IOBMSG SET MESSAGE FLAG 40400019 NI IOBFL1(IOBREG),IOBCER CLEAR IOBERR FLAG 40500019 ERR007B LA ERRE1,WTORTN LOAD NAME OF WTO ROUTINE 40600019 B ERR005C GET OUT VIA XCTL 40700019 ERR008 NI IOBFL1(IOBREG),IOBCER CLEAR IOBERR FLAG 40800019 L WKREG1,UCBERRCT(UCBREG) POINT TO UCB ERROR COUNTERS 40900019 LA WKREG2,IOBBCI(IOBREG) POINT TO IOB ERROR COUNTERS 41000019 MVI CLEAR1+1,CLEARCNT SET COUNT TO CLEAR 41100019 BAL LINKR,ERR018 LINK TO COUNTER UPDATE ROUTINE 41200019 SVC ERRORSVC ISSUE ERROR EXCP 41300019 SVC RETSVC RETURN TO IOS VIA SVC 3 41400019 * UPDATE UCB ERROR COUNTERS ROUTINE 41500019 ERR018 SR WKREG3,WKREG3 ZERO OUT 41600019 SR WKREG4,WKREG4 WORK REGISTERS 41700019 IC WKREG3,DC(WKREG1) GET DATA 41800019 IC WKREG4,DC(WKREG2) CHECK COUNTS 41900019 AR WKREG3,WKREG4 ADD COUNTS 42000019 STC WKREG3,DC(WKREG2) UPDATE DATA CHECK COUNT 42100019 IC WKREG3,ILC(WKREG1) GET INCORRECT 42200019 IC WKREG4,ILC(WKREG2) LENGTH COUNTS 42300019 AR WKREG3,WKREG4 ADD COUNTS 42400019 STC WKREG3,ILC(WKREG2) UPDATE INCORRECT LENGTH COUNT 42500019 IC WKREG3,EC(WKREG1) GET EQUIPMENT CHECK 42600019 IC WKREG4,EC(WKREG2) CHECK COUNTS 42700019 AR WKREG3,WKREG4 ADD COUNTS 42800019 STC WKREG3,EC(WKREG2) UPDATE EQUIPMENT CHECK COUNT 42900019 CLEAR1 XC 0(0,WKREG1),0(WKREG1) CLEAR ERROR COUNTERS 43000019 BR LINKR RETURN TO CALLER 43100019 * CHANNLE DATA CHECK ROUTINE 43200019 ERR200 TM IOBFL3(IOBREG),CDCCNT CHANNEL DAYA CHECK ALREADY RETRIED 43300019 BO ERR007 YES EXIT TO WTO ROUTINE 43400019 OI IOBFL3(IOBREG),CDCCNT SET TO INDICATE RETRIED 43500019 * RETRY ROUTINE 43600019 ERR009 MVC WKAREA(CCLENGTH),0(CCWREG) GET CCW COMMAND CODE 43700019 NI WKAREA,CLEARHI CLEAR HIGH ORDER FOUR BITS 43800019 CLI WKAREA,RBTEST IS COMMAND READ BACKWARD 43900019 BE ERR009B YES CLEAR INPUT AREA & RETRY 44000019 NI WKAREA,BITS56 CLEAR BITS 5 & 6 44100019 CLI WKAREA,RFTEST IS COMMAND READ FORWARD 44200019 BE ERR009B YES CLEAR INPUT AREA & RETRY 44300019 ERR009A OI IOBFL1(IOBREG),IOBERR SET IOBERR ON 44400019 XC IOBSNS(SNSLEN,IOBREG),IOBSNS(IOBREG) M0381 44450021 SVC ERRORSVC RETRY CCW 44500019 SVC RETSVC RETURN TO IOS VIA SVC 3 44600019 * CLEAR INPUT AREA 44700019 ERR009B L WKREG2,0(CCWREG) GET INPUT AREA ADDRESS FROM CCW 44800019 LA WKREG2,0(WKREG2) CLEAR OUT COMMAND CODE 44900019 LH WKREG3,BYTECNT(CCWREG) GET BYTE COUNT 45000019 BCTR WKREG3,0 DECREMENT COUNT BY ONE 45100019 CLI WKAREA,RFTEST IS COMMAND READ FORWARD 45200019 BE ERR009C YES ADDRESS NOW CORRECT 45300019 SR WKREG2,WKREG3 ADJUST ADDRESS TO PROPER VALUE 45400019 ERR009C STC WKREG3,ERR009D+1 STORE COUNT TO CLEAR 45500019 ERR009D XC 0(0,WKREG2),0(WKREG2) CLEAR INPUT AREA 45600019 B ERR009A RETRY BAD CCW 45700019 * CHANNEL CHECK ROUTINE 45800019 ERR010 L WKREG1,VEX116(COMREG) GET PTR TO PTR TO PTR TO ERPIB 45900019 L WKREG1,0(WKREG1) GET PTR TO PTR TO ERPIB 46000019 L WKREG1,0(WKREG1) GET PTR TO ERPIB 46100019 ERR010A CH UCBREG,EPDT(WKREG1) IS THIS CORRECT ERPIB 46200019 BE ERR010B YES PROCESS IT 46300019 LA WKREG1,ERPIBLEN(WKREG1) BUMP TO NEXT ERPIB 46400019 TM 0(WKREG1),EOT IS IT END OF ERPIB TABLE 46500019 BC 14,ERR010A NO TEST NEXT ERPIB 46600019 BC 1,ERR007 YES TO LOGOUT ROUTINE 46700019 ERR010B XC 0(ERPIBLEN,WKREG1),0(WKREG1) CLEAR ERPIB 46800019 B ERR007 GO TO LOGOUT ROUTINE 46900019 * CHAINING CHECK ROUTINE 47000019 ERR011 IC WKREG1,IOBECT+1(IOBREG) GET CHAINING CHECK COUNT 47100019 LA WKREG1,1(WKREG1) INCREMENT COUNT 47200019 STC WKREG1,IOBECT+1(IOBREG) UPDATE COUNT 47300019 TM IOBECT+1(IOBREG),CCCNT IS COUNT NOW FIVE 47400019 BO ERR007 YES TO LOGOUT 47500019 B ERR009 NO RETRY 47600019 * EQUIPMENT CHECK 47700019 ERR012 IC WKREG1,IOBECT(IOBREG) GET EQUIPMENT CHECK COUNT 47800019 LA WKREG1,1(WKREG1) INCREMENT COUNT 47900019 STC WKREG1,IOBECT(IOBREG) UPDATE COUNTER 48000019 CLI IOBECT(IOBREG),EQCNT IS COUNT NOW TEN 48100019 BE ERR008 YES TO IOS A33936 48200001 B ERR009 NO RETRY 48300019 * UNIT EXCEPTION 48400019 ERR013 TM IOBFL1(IOBREG),IOBERR IOBERR ON (ENTERED AFTER RETRY) 48500019 BZ ERR005B NO EXIT TO STATISTICS UPDATE 48600019 ERR013A NI IOBFL1(IOBREG),IOBCEX SET IOBEX OFF 48700019 B ERR005B TO STATISTICS UPDATE ROUTINE 48800019 * DATA CHECK ROUTINE 49600019 ERR014 IC WKREG1,IOBBCI(IOBREG) GET DATA CHECK ERROR COUNT 49700019 LA WKREG1,1(WKREG1) INCREMENT COUNT 49800019 STC WKREG1,IOBBCI(IOBREG) UPDATE DATA CHECK ERROR COUNT 49900019 TM IOBBCI(IOBREG),DCCOUNT1 IS COUNT NOW THREE 50200019 BO ERR008 YES TO IOS A33926 50300020 B ERR009 NO RETRY 50400019 * BUSOUT CHECK 50500019 ERR015 TM IOBECT+1(IOBREG),BOCOUNT BUS OUT CHECK COUNT EQUAL ONE 50600019 BO ERR007 YES TO WTO ROUTINE 50700019 OI IOBECT+1(IOBREG),BOCOUNT SET COUNT TO ONE 50800019 B ERR009 RETRY 50900019 * OVERRUN 51000019 ERR016 IC WKREG1,IOBECT+1(IOBREG) GET OVERRUN ERROR COUNT 51100019 LA WKREG1,INCCOUNT(WKREG1) INCREMENT COUNT 51200019 STC WKREG1,IOBECT+1(IOBREG) UPDATE ERROR COUNT 51300019 TM IOBECT+1(IOBREG),ORCOUNT DOES COUNT EQUAL FOVE 51400019 BO ERR007 YES EXIT TO WTO ROUTINE 51500019 B ERR009 NO RETRY 51600019 * INCORRECT LENGTH 51700019 ERR017 TM IOBFL1(IOBREG),IOBERR ENTERED AFTER RETRY 51800019 BZ ERR017A NO 51900019 TM IOBBCI+1(IOBREG),ZEROCNT FIRST TIME HERE 52000019 BC 5,ERR017A NO CONTINUE 52100019 NI IOBFL1(IOBREG),IOBCEX CLEAR IOBEX 52200019 B ERR008 EXIT TO IOS 52300019 ERR017A IC WKREG1,IOBBCI+1(IOBREG) GET INCORRECT LENGTH ERROR COUNT 52400019 LA WKREG1,1(WKREG1) INCREMENT ERROR COUNT 52500019 STC WKREG1,IOBBCI+1(IOBREG) UPDATE COUNTER 52600019 CLI IOBBCI+1(IOBREG),ILCOUNT IS COUNT NOW FIVE 52700019 BE ERR008 YES EXIT TO IOS 52800019 B ERR009 NO RETRY 52900019 DS 0H FORCE HALF WORD ALIGNMENT 53000019 ERRON1 DC AL2(8) CONSTANT OF 8 53100019 TEN DC X'000A' CONSTANT OF 10 53200019 MASKOUT DC X'267F' MASK FOR CLEARING UNWANTED SENSE DATA A33936 53300001 WKAREA DC XL1'00' WORK AREA 53400019 ZERO DC XL2'0000' USED TO CHECK SENSE @SA65613 53450021 END IGE0011D 53500019 ./ ADD SSI=21270267,NAME=IGE0011E,SOURCE=0 TITLE '1419 OS ERROR RECOVERY PROCEDURE' 00200000 START 00400000 * 1419 ERROR RECOVERY PROCEDURE 00600000 * 00800000 * STATUS CHANGE LVL 000, VERSION LVL 000, MODIFICATION LVL 000 01000000 * 01200000 * FUNCTION ANALYZE STATUS AND SENSE DATA FROM BOTH THE PCU AND 01400000 * SCU.MAINTAIN CURRENT ERROR STATISTIC AND SET A FLAG FOR 01600000 * RECORDING OF ERRORS THAT OCCUR IN THE 1419 AND IN THE 01800000 * CONTROL UNITS.ALSO SET A FLAG FOR THE PROPER MESSAGE 02000000 * TO THE OPERATOR. 02200000 * 02400000 * ATTRIBUTES SERIALLY REUSEABLE 02600000 * 02800000 * ENTRY ER1419 FROM SCHEDULER 03000000 * 03200000 * INPUT REQUEST ELEMENT POINTER IN REGISTER 1 03400000 * 03600000 * OUTPUT ERROR LOGOUTS AND MESSAGES TO THE OPERATOR 03800000 * 04000000 * EXT REF NONE 04200000 * 04400000 *NORMAL EXIT XCTL EXIT TO OUTBOARD RECORDING,STATISTIC UPDATE OR 04600000 * WRITE TO OPERATOR.RETURN WILL BE MADE FROM THESE 04800000 * ROUTINES TO SUPERVISOR VIA SVC 3. 05000000 * 05200000 * ERROR EXIT NOT APPLICABLE 05400000 * 05600000 * ERR MSGS CONSOLE MESSAGES TO INDICATE ERROR CONDITIONS ARE 05800000 * 1. I/O PERMANENT ERROR 06000000 * 2. INTERVENTION REQUIRED 06200000 * 06400000 * NOTES IOB EXCEPTION AND IOB ERROR FLAGS ARE INTERPRETED 06600000 * AS FOLLOWS 06800000 * IOBEX ON AND IOBERR ON, ERROR ROUTINE IN CONTROL 07000000 * IOBEX ON AND IOBERR OFF, PERMANENT ERROR 07200000 * TABLES STATISTIC TABLE AND IOB 07400000 * 07600000 * OPERATION THIS ROUTINE CHECKS THE STATUS AND SENSE BYTES STORED 07800000 * IN THE IOB AND TAKES NECESSARY ACTION.STATISTICS ARE 08000000 * KEPT AS TO THE KIND AND FREQUENCY OF ERRORS.THESE 08200000 * STATISTICS ARE USED BY THE CE TO RECOGNIZE,ANALYZE AND 08400000 * ISOLATE ERRORS. 08600000 * A COMMON INTERPRETER ROUTINE IS USED TO CHECK BOTH 08800000 * STATUS AND SENSE.ON RETURN FROM THE INTERPRETER,THE 09000000 * PROPER FLAGS ARE SET AND A WRITE A MESSAGE TO THE 09200000 * OPERATOR IS TAKEN. 09400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 09600000 * IOB DEFINITION 09800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 10000000 IOBFL1 EQU 0 FLAGS1 10200000 IOBFL2 EQU 1 FLAGS2 10400000 IOBSNS EQU 2 SENSE DATA 10600000 IOBCOD EQU 4 ECB CODE 10800000 IOBFL3 EQU 8 IOB FLAG NO 3 11000000 IOBCSW EQU 8 CSW STORAGE 11200000 IOBCC EQU 16 CONDITION CODE 11400000 IOBDCB EQU 21 DCB POINTER 11600000 IOBMDB EQU 24 MODIFIER BYTE 11800000 IOBRST EQU 25 RESTART ROUTINE 12000000 IOBECT EQU 30 ERROR COUNTS 12200000 IOBINC EQU 32 SPECIAL UNIT TYPE CODE 12400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 12600000 * THIS FLAG IS IN THE IOB IOBECBCC 12800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 13000000 IOBECB EQU X'41' COMPLETION CODE PERMANENT ERROR 13200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 13400000 * THESE FLAGS ARE IN IOB-FLAG 1 13600000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 13800000 IOBCP1 EQU X'80' TYPE OF CHANNEL PROGRAM 14000000 IOBCP2 EQU X'40' TYPE OF CHANNEL PROGRAM 14200000 IOBERR EQU X'20' IOB ERROR FLAG 14400000 IOBMD1 EQU X'10' MOD1 FLAG-POSITIONING 14600000 IOBMD2 EQU X'08' MOD2 FLAG-CRC 14800000 IOBSRS EQU X'01' START/RESTART FLAG 15000000 IOBEX EQU X'04' EXCEPTION FLAG 15200000 IOBEXE EQU IOBEX+IOBERR IOB ERROR AND EXCEPTION FLAG 15400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 15600000 * THESE FLAGS ARE IN IOB-FLAG3 15800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 16000000 IOBENT EQU X'40' IOB ENTRY BIT 16200000 IOBMSG EQU X'04' MESSAGE TYPE 16400000 IOBLOG EQU X'01' LOGOUT FLAG 16600000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 16800000 * REGISTER DEFINITION 17000000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 17200000 ERREG0 EQU 0 WORK REG 17400000 TSTREG EQU 1 REQUEST ELEMENT 17600000 ERREG2 EQU 2 WORK REG 17800000 ERREG3 EQU 3 WORK REG 18000000 CCWREG EQU 4 CCW ADDRESS REG 18200000 UCBREG EQU 7 UCB ADDRESS REG 18400000 COMREG EQU 8 COMMUNICATION TABLE REG 18600000 SAVREG EQU 9 SAVE REG 18800000 IOBREG EQU 10 IOB ADDRESS REG 19000000 ERREG4 EQU 11 WORK REG 19200000 ERRLNK EQU 12 LINK REG 19400000 ERREG1 EQU 13 WORK REG 1 19600000 ERRETR EQU 14 RETURN REG 19800000 BASREG EQU 15 BASE REG 20000000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 20200000 * DCB DEFINITION 20400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 20600000 DCBFL EQU 44 FLAGS 20800000 DCBPER EQU X'C0' PERMANENT ERROR FLAGS 21000000 DCBEX EQU X'40' EXCEPTION CONDITION 21200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 21400000 * REQUEST ELEMENT DEFINITION 21600000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 21800000 TSTLNK EQU 0 FORWARD 12 STAR LINK 22000000 TSTUCB EQU 2 UCB POINTER 22200000 TSTIOB EQU 5 IOB POINTER 22400000 TSTPR EQU 8 PRIORITY OF ENTRY 22600000 TSTDER EQU 9 DEB POINTER 22800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 23000000 * STATUS INDICATORS 23200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 23400000 CSWSMD EQU X'40' STATUS MODIFIER 23600000 CSWCHE EQU X'08' CHANNEL END 23800000 CSWUCK EQU X'02' UNIT CHECK 24000000 CSWUEX EQU X'01' UNIT EXCEPTION 24200000 CHAINCK EQU X'01' CHAINING CHECK 24400000 PROGCK EQU X'20' PROGRAM CHECK 24600000 CSWIL EQU X'40' WRONG LENGTH IND. 24800000 CSWPCK EQU X'10' PROTECTION CHECK 25000000 CSWCCC EQU X'04' CHANNEL CONTROL CHECK 25200000 CSWICC EQU X'02' INTERFACE CONTROL CHECK 25400000 CSWCDC EQU X'08' CHANNEL DATA CHECK 25600000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 25800000 * UCB DEFINITION 26000000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 26200000 UCBFL1 EQU 6 UCB FLAGS 26400000 UCBSTI EQU 9 STATISTIC TABLE POINTER 26600000 * MISC. DEFINITIONS 26800000 ONE EQU 1 27000000 TWO EQU 2 27200000 ERPIBI EQU 8 ERPIB INDEX 27400000 EIGHT EQU 8 27600000 STATWK EQU 8 STATISTIC TABLE WORK AREA INDEX 27800000 LOC016 EQU 16 COMMUNICATION VECTOR TABLE 28000000 VECTXL EQU 44 VECTOR TO XCTL ROUTINE 28200000 VECT68 EQU 68 INTERPRETER ROUTINE POINTER 28400000 VECT72 EQU 72 WRITE TO OPERATOR ROUTINE 28600000 STATAB EQU 112 INDEX TO STATISTIC TABLE 28800000 CVTDCB EQU 116 CVT DCB POINTER 29000000 WTORTN EQU 253 NAME OF WTO ROUTINE 29200000 STATUP EQU 254 LOAD NAME TO STAT.UPDATE RNT. 29400000 STATI EQU 256 STATISTIC TABLE INDEX 29600000 IOBPCU EQU X'00' PCU TEST BYTE 29800000 IOBSCU EQU X'01' SCU TEST BYTE 30000000 WKBIT1 EQU X'01' 30200000 ERREST EQU X'DF' IOB ERROR RESET FLAG 30400000 BATNUM EQU X'07' BATCH NUMBER TEST BYTE 30600000 PCUMSK EQU X'2E' MASK FOR UNWANTED PCU SNS BITS SA44107 30800021 SCUMSK EQU X'A6' MASK FOR UNWANTED SCU SNS BITS SA44107 31000021 SWITCH EQU X'FF' 31200000 USING ER1419,15 31400000 ER1419 L IOBREG,TSTIOB-ONE(TSTREG) LOAD ADD OF IOB IN REG 10 31600000 LH UCBREG,TSTUCB(TSTREG) LOAD UCB ADDRESS IN-REG 7 31800000 L COMREG,LOC016 LOAD ADD OF COMMUNICATION TABLE 32000000 OI IOBFL1(IOBREG),IOBEXE SET IOB EX AND ERROR FLAG 32200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 32400000 * LINK TO THE COMMON INTERPRETER ROUTINE. THE BYTES FOLLOWING 32600000 * THE BALR INDICATE IN WHAT ORDER THE BITS ARE TO BE TEST (BIT 3 32800000 * ON OF CODE BYTE INDICATES STATUS) FOLLOWED BY AN INDEX VALUE 33000000 * THE INTERPRETER USES TO RETURN TO THIS ROUTINE 33200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 33400000 ERR010 LR SAVREG,BASREG SAVE BASE REGISTER 33600000 L BASREG,VECT68(COMREG) GET ADDR.TO INTERP.ROUTINE 33800000 ERR020 BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 34000000 DC X'1D' CHANNEL CONTROL CHECK 34200000 DC AL1(ERR025-ERR020-2) BRANCH TO CHECK ERPIB TABLE 34400000 DC X'1E' INTERFACE CONTROL CHECK 34600000 DC AL1(ERR025-ERR020-4) BRANCH TO CHECK ERPIB TABLE 34800000 DC X'1C' CHANNEL DATA CHECK 35000000 DC AL1(ERR028-ERR020-6) BRANCH TO SET CDC SWITCH 35200000 DC X'10' SHOULD NOT OCCUR-INVALID STATUS 35400000 DC AL1(ERR070-ERR020-8) BRANCH TO SET LOGOUT FLAG 35600000 DC X'11' SHOULD NOT OCCUR INVALID STATUS 35800000 DC AL1(ERR070-ERR020-10) BRANCH TO SET LOGOUT FLAG 36000000 DC X'12' SHOULD NOT OCCUR INVALID STATUS 36200000 DC AL1(ERR070-ERR020-12) BRANCH TO SET LOGOUT FLAG 36400000 DC X'16' UNIT CHECK 36600000 DC AL1(ERR029-ERR020-14) BRANCH TO STAT TABLE UPDATE 36800000 DC X'2F' END OF LIST 37000000 DC AL1(ERR068-ERR020-16) CHECK ADDITIONAL STATUS BITS 37200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 37400000 * FRONT END SUPPORT FOR CHANNEL CONTROL CHECK 37600000 * AND FOR INTERFACE CONTROL CHECK 37800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 38000000 ERR025 L ERREG3,CVTDCB(COMREG) CVT TO PTR TO PTR TO ERPIB 38200000 L ERREG3,0(ERREG3) PTR TO PTR TO ERPIB 38400000 L ERREG3,0(ERREG3) PTR TO ERPIB 38600000 ERR026 CH UCBREG,TWO(ERREG3) IS CORRECT ERPIB 38800000 BE ERR027 YES BRANCH TO CLEAR ERPIB ENTRY 39000000 LA ERREG3,ERPIBI(ERREG3) ADDRESS OF NEXT ERPIB 39200000 TM 0(ERREG3),SWITCH END OF ERPIB TABLE 39400000 BNO ERR026 BRANCH IF NOT END OF TABLE 39600000 BO ERR070 YES BRANCH TO SET LOGOUT FLAG 39800000 ERR027 XC 0(ERPIBI,ERREG3),0(ERREG3) CLEAR ENTRY IN ERPIB TABLE 40000000 B ERR070 BRANCH TO SET LOGOUT FLAG 40200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 40400000 * CHANNEL DATA CHECK 40600000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 40800000 ERR028 MVI ERRCN1,SWITCH SET CDC SWITCH 41000000 B ERR029 BRANCH TO STATISTIC TABLE UPDAT 41200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 41400000 * STATISTIC TABLE UPDATE ROUTINE TO LOAD SENSE DATA INTO 41600000 * TABLE WORKAREA 41800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 42000000 ERR029 L ERREG2,STATAB(COMREG) GET ADD.OF STATISTIC TABLE 42200000 SR ERREG1,ERREG1 CLEAR REGISTER 42400000 IC ERREG1,UCBSTI(UCBREG) GET STATAB PTR FROM UCB 42600000 LR ERREG3,ERREG2 GET STATISTIC TABLE ADDRESS 42800000 ER029A CH UCBREG,0(0,ERREG3) IS DEV. SUPPORTED BY THIS SECT. 43000000 BNH ER029B YES, INCREMENT ADJUSTED CORR. 43200000 LA ERREG3,TWO(0,ERREG3) INCREMENT TO NEXT CTRL ENTRY 43400000 LA ERREG1,STATI(0,ERREG1) INCREMENT STAT.INDEX TO NEXT 43600000 * * SECTION 43800000 B ER029A LOOP TO CHECK NEXT SECTION 44000000 ER029B MH ERREG1,ERRCN2 MULTIPLY BY 10 44200000 AR ERREG2,ERREG1 ADD.TO STATISTIC TABLE 44400000 TM ERRCN1,SWITCH TEST FOR CHANNEL DATA CHECK 44600000 BO ER029C YES-OR BIT REP CTR NO 16 44800000 OC EIGHT(ONE,ERREG2),IOBSNS(IOBREG) LD SNS BYTE 0 IN TABLE 45000000 CLI IOBINC(IOBREG),IOBPCU TEST FOR PCU 45200000 BE ER029D YES, BRANCH 45400000 TM IOBINC(IOBREG),IOBSCU TEST FOR SCU 45600000 BO ER029E YES,CLEAR UNWANTED SCU BITS 45800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 46000000 * CHANNEL DATA CHECK 46200000 ER029C XC ERRCN1,ERRCN1 CLEAR CDC SWITCH 46400000 OI STATWK+ONE(ERREG2),WKBIT1 LD BIT FOR CTR NO 16 IN 46600000 * STATISTIC TABLE WORK AREA 46800000 B ERR070 BRANCH TO SET LOGOUT FLAG 47000000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 47200000 * MASK UNWANTED BITS FOR PCU 47400000 ER029D NI STATWK(ERREG2),PCUMSK MASK BITS EXCEPT DATA CK,CDC C47600000 BUS OUT,AUTO SEL AND C47800000 DATA OVERRUN 48000000 B ERR050 BRANCH TO CK PCU SENSE 48200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 48400000 * MASK UNWANTED BITS FOR SCU 48600000 ER029E NI STATWK(ERREG2),SCUMSK MASK BITS EXCEPT AUTO SELECT C48800000 BUS OUT,LSS,CR & CDC SA44107 49000021 B ERR060 BRANCH TO CK SCU SENSE 49200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 49400000 * LINK TO THE COMMON INTERPRETER ROUTINE. THE BYTES FOLLOWING 49600000 * THE BALR INDICATE IN WHAT ORDER THE BITS ARE TO BE TEST (BIT 3 49800000 * ON OF CODE BYTE INDICATES STATUS) FOLLOWED BY AN INDEX VALUE 50000000 * THE INTERPRETER USES TO RETURN TO THIS ROUTINE 50200000 * CHECK PCU SENSE BITS 50400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 50600000 ERR050 LR SAVREG,BASREG SAVE BASE REGISTER 50800000 L BASREG,VECT68(COMREG) GET ADDR.TO INTERPRETER ROUTINE 51000000 ERR051 BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 51200000 DC X'02' BUS OUT CHECK 51400000 DC AL1(ERR070-ERR051-2) BRANCH TO SET LOGOUT FLAG 51600000 DC X'03' SHOULD NOT OCCUR 51800000 DC AL1(ERR070-ERR051-4) BRANCH TO SET LOGOUT FLAG 52000000 DC X'07' SHOULD NOT OCCUR 52200000 DC AL1(ERR070-ERR051-6) BRANCH TO SET LOGOUT FLAG 52400000 DC X'01' INTERVENTION REQUIRED 52600000 DC AL1(ERR077-ERR051-8) BRANCH TO SET MESSAGE FLAG 52800000 DC X'00' COMMAND REJECT 53000000 DC AL1(ERR075-ERR051-10) BRANCH TO SET PERM ERR FLAG 53200000 DC X'04' DATA CHECK 53400000 DC AL1(ERR070-ERR051-12) BRANCH TO SET LOGOUT FLAG 53600000 DC X'05' DATA OVERRUN 53800000 DC AL1(ERR070-ERR051-14) BRANCH TO SET LOGOUT FLAG 54000000 DC X'06' AUTO SELECT 54200000 DC AL1(ERR070-ERR051-16) BRANCH TO SET LOGOUT FLAG 54400000 DC X'2F' END OF LIST 54600000 DC AL1(ERR068-ERR051-18) BRANCH TO CK REMAINING STATUS 54800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 55000000 * LINK TO THE COMMON INTERPRETER ROUTINE. THE BYTES FOLLOWING 55200000 * THE BALR INDICATE IN WHAT ORDER THE BITS ARE TO BE TEST (BIT 3 55400000 * ON OF CODE BYTE INDICATES STATUS) FOLLOWED BY AN INDEX VALUE 55600000 * THE INTERPRETER USES TO RETURN TO THIS ROUTINE 55800000 * CHECK SENSE BITS FOR SCU 56000000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 56200000 ERR060 LR SAVREG,BASREG SAVE BASE REGISTER 56400000 L BASREG,VECT68(COMREG) GET ADDR. OF INTERPRETER ROUT. 56600000 ERR061 BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 56800000 DC X'02' BUS OUT CHECK 57000000 DC AL1(ERR070-ERR061-2) BRANCH TO SET LOGOUT FLAG 57200000 DC X'04' SHOULD NOT OCCUR 57400000 DC AL1(ERR070-ERR061-4) BRANCH TO SET LOGOUT FLAG 57600000 DC X'03' SHOULD NOT OCCUR 57800000 DC AL1(ERR070-ERR061-6) BRANCH TO SET LOGOUT FLAG 58000000 DC X'01' INTERVENTION REQUIRED 58200000 DC AL1(ERR077-ERR061-8) BRANCH TO SET MESSAGE FLAG 58400000 DC X'07' OPERATOR ATTENTION 58600000 DC AL1(ERR077-ERR061-10) BRANCH TO SET MESSAGE FLAG 58800000 DC X'00' COMMAND REJECT SCU 59000000 DC AL1(ERR070-ERR061-12) BRANCH TO SET LOGOUT FLAGSA44107 59200021 DC X'05' LATE STACKER SELECT 59400000 DC AL1(ERR070-ERR061-14) BRANCH TO SET LOGOUT FLAG 59600000 DC X'06' AUTO SELECT 59800000 DC AL1(ERR070-ERR061-16) BRANCH TO SET LOGOUT FLAG 60000000 DC X'2F' END OF LIST 60200000 DC AL1(ERR068-ERR061-18) BRANCH TO CK REMAINING STATUS 60400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 62200000 * LINK TO THE COMMON INTERPRETER ROUTINE. THE BYTES FOLLOWING 62400000 * THE BALR INDICATE IN WHAT ORDER THE BITS ARE TO BE TEST (BIT 3 62600000 * ON OF CODE BYTE INDICATES STATUS) FOLLOWED BY AN INDEX VALUE 62800000 * THE INTERPRETER USES TO RETURN TO THIS ROUTINE 63000000 * CHECK REMAINING STATUS BITS 63200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 63400000 ERR068 LR SAVREG,BASREG SAVE BASE REGISTER 63600000 L BASREG,VECT68(COMREG) GET ADDR. OF INTERPRETER ROUT. 63800000 ERR069 BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 64000000 DC X'1F' CHAINING CHECK 64200000 DC AL1(ERR070-ERR069-2) BRANCH TO SET LOGOUT FLAG 64400000 DC X'1A' PROGRAM CHECK 64600000 DC AL1(ER070A-ERR069-4) BRANCH TO ECB CODE ROUTINE 64800000 DC X'1B' PROTECTION CHECK 65000000 DC AL1(ER070A-ERR069-6) BRANCH TO ECB CODE ROUTINE 65200000 DC X'19' INCORRECT LENGTH 65400000 DC AL1(ER070A-ERR069-8) BRANCH TO ECB CODE ROUTINE 65600000 DC X'2F' END OF LIST 65800000 DC AL1(ERR075-ERR069-10) BRANCH TO SET MESSAGE FLAG P ER 66000000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 66200000 * SET LOGOUT OUT FLAG BIT 7 OF IOBFLG3 66400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 66600000 ERR070 OI IOBFL3(IOBREG),IOBLOG SET LOGOUT FLAG 66800000 * 67000000 ER070A OI IOBCOD(IOBREG),IOBECB SET PERMANENT ERROR FLAG 67200000 * 67400000 ERR075 OI IOBFL3(IOBREG),IOBMSG SET PERMANENT ERROR MESSAGE FLG 67600000 B ERR078 BRANCH TO RESET IOB ERROR FLAG 67800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 68000000 * SET MESSAGE FLAG FOR OPERATOR ATTN. OR INTERVENTION REQUIRED 68200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 68400000 ERR077 OI IOBFL3(IOBREG),IOBMSG-IOBMSG SET FLAG FOR INTERVENTION 68600000 * REQUIRED OR OP. ATTN 68800000 ERR078 NI 0(IOBREG),ERREST RESET IOB ERROR FLAG 69000000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 69200000 * WTO ROUTINE * 69400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 69600000 L ERRETR,LOC016 GET ADDRESS OF CVT 69800000 L ERRETR,VECTXL(ERRETR) GET ADDRESS OF XCTL 70000000 LA ERREG1,WTORTN LOAD NAME OF WTO 70200000 BR ERRETR GO TO XCTL 70400000 ERRCN1 DC CL1'0' SWITCH 70600000 DS 0D 70800000 ERRCN2 DC H'10' MULTIPLER CONSTANT OF TEN 71000000 DS CL50 MAINTENANCE AREA 71200000 END 71400000 ./ ADD SSI=07011040,NAME=IGE0025C,SOURCE=0 TITLE 'IGE0025C - WTO - LOAD 1' S20201 00100020 IECWTORA START X'00' WTOI 00200017 *C559855 A55569 00200400 *A441660021 A53257 00202000 *2590010000-018000,030000-094000,106000,134000,140000-144000, BBBBBB 00210019 *2590156000-156600,160000,194000,198000-200000,224000, BBBBBB 00220019 *2590230000-232000,284000-286000,294200-295300,302000-304000, BBBBBB 00230019 *2590306000-308000,312000-314000,317100-317400,317600-317800, BBBBBB 00240019 *2590317820,317850-317870,317984,317992,334800-335400,340000, BBBBBB 00250019 *2590340300,340600,340900,341200,341400-344000,346700-353000, BBBBBB 00260019 *2590358000-360000,440000,558000,560000,560020,560040, BBBBBB 00270019 *2590560060-560200,560240,560300,560500-560520,560620, BBBBBB 00280019 *2590562500-716000,720000,724000,726000,740000-743000, BBBBBB 00290019 *2590744000-762000 BBBBBB 00300019 *1553317988 M0466 00350020 *1553338400,380000,382000,396000,426000-432000,440000,442000, S20201 00360020 *1553444000-474000,559920,559960-559970,560000,770000 S20201 00370020 *1553345500 A36343 00420020 *STATUS CHANGE LEVEL 007 00470020 * WRITE TO OPERATOR ROUTINE - LOAD 1 WTOI 00600017 SPACE 2 WTOI 00800017 * FUNCTION DETERMINE WHETHER I/O ERR, INT REQ, OR INOP BBBBBB 01100019 * PATH SITUATION. IF INT REQ, ISSUE MESSAGE. BBBBBB 01400019 * OTHERWISE, XCTL TO APPROPRIATE WTO MODULE. BBBBBB 01700019 * ENTRY IECXWTO FROM AN ERROR ROUTINE VIA XCTL. WTOI 02000017 * INPUT REQUEST ELEMENT POINTER IN REGISTER 1 WTOI 02200017 * OUTPUT MESSAGE ON CONSOLE VIA WTO MACRO. WTOI 02400017 * EXT REF NONE. WTOI 02600017 * EXITS RETURN TO SUPERVISOR VIA SVC 3 OR XCTL TO WTOI 02800017 * IGE0125C OR IGE0325C. BBBBBB 03100019 * OPERATION IF THE IOBMSG FLAG IS ON IN IOBFL3, XCTL BBBBBB 03400019 * TO LOAD 2 (IGE0125C) TO ISSUE AN I/O ERR BBBBBB 03700019 * MESSAGE. IF IOBCC INDICATES A SIO CONDITION BBBBBB 04000019 * CODE 3, XCTL TO LOAD 4 (IGE0325C) FOR BBBBBB 04300019 * INOPERATIVE PATH HANDLING. OTHERWISE, BBBBBB 04600019 * THE INT REQ MESSAGE IS FORMATTED AND A WTO BBBBBB 04900019 * IS ISSUED. THE UNIT NAME AND VOLUME SERIAL BBBBBB 05200019 * (DA AND TAPE) ARE TAKEN FROM THE UCB, THE BBBBBB 05500019 * OP CODE, STATUS, AND SENSE BYTES ARE TAKEN BBBBBB 05800019 * FROM THE IOB (THE SENSE MAY BE TAKEN FROM BBBBBB 06100019 * THE UCB FOR DA AND TAPE IF STILL VALID), BBBBBB 06400019 * AND THE JOB NAME IS TAKEN FROM THE TIOT. BBBBBB 06700019 * FOR MULTI-CONSOLE SUPPORT (MCS), ROUTING BBBBBB 07000019 * AND DESCRIPTOR CODES ARE INITIALIZED, AND BBBBBB 07300019 * IF THE DEVICE IS A CONSOLE, THE BROADCAST BBBBBB 07600019 * FLAG IS SET SO THE MESSAGE GOES TO ALL BBBBBB 07900019 * AVAILABLE CONSOLES. BBBBBB 08200019 * BBBBBB 08500019 * MESSAGE FORMAT BBBBBB 08800019 * IEA000A CUA,INT REQ,OP,STAT,SENS,,VOLSER,JOBNAME BBBBBB 09100019 EJECT WTOI 09600017 SPACE 1 WTOI 09800017 * IOB DEFINITION WTOI 10000017 IOBFL1 EQU 0 FLAGS 1 WTOI 10200017 IOBFL2 EQU 1 FLAG 2 WTOI 10400017 IOBSNS EQU 2 SENSE DATA WTOI 10800017 IOBCOD EQU 4 ECB CODE WTOI 11000017 IOBFL3 EQU 8 FLAG 3 WTOI 11200017 IOBCSW EQU 8 CSW STORAGE WTOI 11400017 IOBCC EQU 16 SIO CONDITION CODE BBBBBB 11500019 IOBDCB EQU 21 DCB POINTER WTOI 11600017 IOBMDB EQU 24 MODIFIER BYTE WTOI 11800017 IOBRST EQU 25 RESTART POINTER WTOI 12000017 IOBECT EQU 30 ERROR COUNTER WTOI 12200017 IOBSK EQU 33 IOB SEEK ADDRESS WTOI 12400017 * IOB FLAGS BBBBBB 12450019 IOBMCS EQU X'80' IOB MCS FLAG MCS 12500018 IOBERR EQU X'20' ERROR CORECTION INDICATOR WTOI 12600017 IOBEX EQU X'04' EXCEPT FLAG WTOI 12800017 IOBMSG EQU X'04' MESSAGE CODE WTOI 13000017 IOBSRS EQU X'01' START/RESTART FLAG WTOI 13200017 IOBLOG EQU X'01' LOG OUT FLAG IN IOBFL3 BBBBBB 13400019 IOBEXE EQU IOBEX+IOBERR IOB EX AND ERROR FLAG WTOI 13600017 SPACE 2 WTOI 13800017 * DCB DEFINITION WTOI 14600017 DCBBLK EQU 12 POINTER TO BLOCK COUNT WTOI 14800017 DCBFL EQU 44 FLAGS WTOI 15000017 DCBDEB EQU 44 DEB POINTER BBBBBB 15050019 DCBOFLGS EQU 48 DCB OPEN FLAGS BBBBBB 15100019 * DCB FLAGS BBBBBB 15150019 DCBPER EQU X'C0' PERMANENT ERROR FLAGS WTOI 15200017 DCBEX EQU X'40' EXCEPTION CONDITION WTOI 15400017 DCBOPEN EQU X'10' SUCCESSFUL OPEN BIT IN DCB M0224 15720018 SPACE 2 WTOI 15800017 * DEB DEFINITION BBBBBB 16000019 DEBTCB EQU 0 TCB POINTER WTOI 16200017 DEBDCB EQU 25 DEB DCB POINTER WTOI 16400017 DEBUCB EQU 33 WTOI 16600017 SPACE 2 BBBBBB 16700019 * UCB DEFINITION WTOI 16800017 UCBMPBYT EQU 0 MULT PROC IND AT UCB - 4 WTOI 17000017 UCBFL5 EQU 1 UCB SECOND FLAG BYTE S20201 17030020 * 2020 S20201 17060020 UCBALLC EQU 1 ALLOCATION CHANNEL MASK BBBBBB 17100019 UCBSTATA EQU 3 STATUS 'A' BYTE WTOI 17200017 UCBCUA EQU 4 CHAN. AND UNIT ADDRESS WTOI 17400017 UCBFL1 EQU 6 UCB FLAGS WTOI 17600017 UCBLCI EQU 10 OFFSET TO LCH INDEX MPXP 17700018 UCBCHM EQU 12 IOS CHAN MASK (BITS 4-7) BBBBBB 17750019 UCBUTN EQU 13 UNIT NAME WTOI 17800017 UCBTYP EQU 16 UCB TYPE FIELD WTOI 18000017 UCBLTS EQU 20 ADDR. OF LAST RQE STARTED WTOI 18200017 UCBSNS EQU 22 SENSE BYTES BBBBBB 18300019 UCBVSER EQU 28 VOLUME SERIAL WTOI 18400017 UCBEXT EQU 60 PTR TO UCB EXTENSION S20201 18404020 * 2020 S20201 18408020 UCBBASE EQU 92 OFFSET FOR PTR TO BASE S20201 18412020 * UCB2020 S20201 18416020 D2321 EQU X'05' 2321 CLASS S20201 18420020 * 2020 S20201 18424020 ZEUSA EQU X'06' ATHENS ZEUS DRUM TYPE S20201 18428020 * 2020 S20201 18432020 ZEUSC EQU X'07' CORINTH ZEUS DRUM TYPE S20201 18436020 * 2020 S20201 18440020 UCBFL4 EQU 44 DAVV FLAG BYTE M4698 18450019 * UCB FLAGS BBBBBB 18500019 UCBTP EQU X'40' TP DEVICE TYPE WTOI 18600017 UCBUR EQU X'08' UNIT RECORD DEVICE TYPE WTOI 18800017 UCBTAPE EQU X'80' TAPE DEVICE TYPE WTOI 19000017 UCBDA EQU X'20' DIRECT ACCESS DEVICE TYPE WTOI 19200017 UCBNRY EQU X'40' UCB NOT READY WTOI 19600017 UCBVVR EQU X'40' DAVV IN CONTROL FLAG M4698 19900019 UCBSYSRS EQU X'02' SYS RES INDICATOR WTOI 20200017 UCBCPUA EQU 8 CPU 'A' IND FOR MULT PROC WTOI 20400017 UCBCPUAB EQU X'03' MASK FOR CPU NOT CONNECTED 1793 20500018 SPACE 1 S20201 20520020 * FLAGS 2 IN THE UCB 20201 20540020 UCBEXTSN EQU X'08' UCB CONTAINS PTR TO S20201 20560020 * SENSE 2020 S20201 20580020 SPACE 2 WTOI 20600017 * TWELVE STAR DEFINITION WTOI 20800017 TSTLNK EQU 0 FORWARD 12* LINK WTOI 21000017 TSTUCB EQU 2 UCB POINTER WTOI 21200017 TSTIOB EQU 5 IOB POINTER WTOI 21400017 TSTPR EQU 8 PRIORITY OF ENTRY WTOI 21600017 TSTDEB EQU 9 DEB POINTER WTOI 21800017 TSTTCBID EQU 4 TCB ID FOR MFT WTOI 22000017 TSTTCB EQU 12 TST TCB PTR FOR MVT WTOI 22200017 SPACE 2 BBBBBB 22400019 * TCB DEFINITION WTOI 22600017 TCBTIOT EQU 12 POINTER TO TIOT WTOI 22800017 SPACE 2 BBBBBB 23100019 * TIOT DEFINITION WTOI 23400017 TIOTJOBN EQU 0 POINTER TO JOB NAME WTOI 23600017 SPACE 2 WTOI 23800017 * REGISTER DEFINITION WTOI 24000017 TSTREG EQU 1 TVELFE STAR REG. WTOI 24200017 BASEREG EQU 2 BASE REGISTER 1793 24400018 ERREG4 EQU 4 WORK REG. WTOI 24600017 VECREG EQU 8 VECTOR ADDR. REG. WTOI 24800017 IOBRG EQU 10 IOB ADDRESS REG WTOI 25000017 CCWREG EQU 11 CCW ADDRESS REG. WTOI 25200017 ERRLNK EQU 12 LINK REG WTOI 25400017 ERRETR EQU 14 RETURN REG. WTOI 25600017 ERREG2 EQU 15 WORK REG 1793 25800018 ERREG1 EQU 13 WORK REG 1 WTOI 26000017 ERREG3 EQU 3 WTOI 26200017 ERREG7 EQU 7 WTOI 26400017 ERREG5 EQU 5 WTOI 26600017 ERREG6 EQU 6 WTOI 26800017 ERREG9 EQU 9 WTOI 27000017 REG0 EQU 0 WORK REG 1793 27300018 SPACE 2 WTOI 27600017 * MISC. DEFINITIONS WTOI 27800017 EXCPER EQU 15 ERROR EXCP WTOI 28000017 COMMA EQU X'EF' TRANSLATED COMMA WTOI 28200017 MVT EQU X'10' MVT FLAG IN CVT + X'74' WTOI 28800017 MFT EQU X'20' MFT FLAG IN CVT + X'74' WTOI 29000017 PCP EQU X'40' PCP FLAG IN CVT + X'74' WTOI 29200017 NOTOPER EQU X'30' CONDITION CODE O ON SIO WTOI 29400017 SPACE 1 WTOI 29600017 LOC016 EQU 16 ADDR. TO VECTOR TABLE WTOI 29800017 VECTXL EQU 44 VECTOR TO XCTL RNT. WTOI 30000017 CVTDCB EQU 116 LOGREC DCB POINTER BBBBBB 30200019 CVTIXAVL EQU 124 NEXT AVAILABLE RQE PTR 1793 30450018 CVTOTTA EQU 182 DISP TO NIP INDICATOR A23669 30470018 CVTNIP EQU X'10' NIP IN CONTROL FLAG A23669 30490018 CVTILCH EQU 140 LOGICAL CHN TABLE PTR MPXP 30520018 CVTMACSZ EQU 164 MAXIMUM CORE SIZE BBBBBB 30720019 SPACE 1 WTOI 31000017 WTORB EQU 1253 LOAD NAME FOR LD 2 OF WTO WTOI 31600017 WTORD EQU 3253 LOAD NAME FOR LOAD 4 BBBBBB 31610019 STATUP EQU 254 S20201 31613020 * 2020 S20201 31616020 SPACE 1 31620018 DARTCOD EQU X'10' ROUTING CODE FOR DA MCS 31640018 TAPRTCD EQU X'20' ROUTING CODE FOR TAPE MCS 31660018 URRTCD EQU X'02' ROUTING CODE FOR UR MCS 31680018 TPRTCD EQU X'01' TP ROUING CODE MCS 31700018 RTCD2 EQU X'40' DEFAULT ROUTING CODE SA69928 31710021 RTDESFLG EQU X'80' RTING + DESCR CODES EXISTBBBBBB 31720019 BCSTFLG EQU X'04' 'BRDCAST TO ALL CONSOLES'BBBBBB 31740019 BRDCST EQU X'FF' BROADCAST FLAG TEST CONS MCS 31781018 DEVCLAS EQU X'02' DEVICE CLASS DISP IN UCBTYPMCS 31783018 ZERO EQU X'00' CON FOR ZEROING FLG FLDS MCS 31784018 C0 EQU 0 ASC CONS ZERO MCS 31788018 C1 EQU 1 ASC CONS 1 MCS 31789018 C2 EQU 2 ASC CONS 2 MCS 31790018 C3 EQU 3 ASC CONS 3 MCS 31791018 C4 EQU 4 ASC CONS 4 MCS 31792018 C5 EQU 5 ASC CONS 5 MCS 31793018 C9 EQU 9 ASC CONS 9 MCS 31794018 C10 EQU 10 ASC CONS 10 MCS 31795018 C12 EQU 12 ASC CONS 12 MCS 31796018 C18 EQU 18 ASC CONS 18 MCS 31797018 D0 EQU 0 S20201 31797120 * 2020 S20201 31797220 D6 EQU 6 S20201 31797320 * 2020 S20201 31797420 D11 EQU 11 DISPLACEMENT OF 11 S20201 31797520 * 2020 S20201 31797620 D32 EQU 32 DISPLACEMENT OF 32 S20201 31797720 * 2020 S20201 31797820 BLANK EQU X'40' BLANK CHARACTER 1793 31798018 PRMALT EQU X'03' PRIMARY OR ALT CONSOLE M0224 31798218 UCMADR EQU 100 UCM IN THE SYSTEM M0224 31798618 UCMMCS EQU 68 DISP TO MCS INDICATOR M04666 31798720 * M046 M0466 31798820 MCSID EQU X'02' MCS IN THE SYSTEM M0224 31799018 EJECT WTOI 31800017 * THIS ROUTINE WILL SET UP THE COMPLETE MESSAGE TO BE WRITTEN WTOI 32000017 * TO THE OPERATOR WTOI 32200017 * WTOI 32400017 DS 0D WTOI 32600017 USING *,BASEREG 1793 32700018 IECXWTO EQU * WTOI 33000017 LR BASEREG,ERREG2 INIT BASE REG 1793 33100018 L IOBRG,TSTIOB-1(TSTREG) GET ADDR. OF IOB WTOI 33200017 L VECREG,LOC016 GET CVT POINTER MPXP 33420018 TM IOBFL3(IOBRG),IOBMSG TEST FOR MESSAGE TYPE WTOI 33600017 BC 1,XCTLLD2 YES, I/O ERR - LOAD 2 WTOI 33800017 MVI MSGFLGS,RTDESFLG REINIT MCS FLAG BBBBBB 33960019 LH ERREG1,TSTUCB(TSTREG) GET ADDR OF UCB M0224 34005018 BAL ERRLNK,ERRMCTST TEST FOR MCS M0224 34010018 TM IOBCC(IOBRG),NOTOPER TEST IF SIO CC3 - INOP M2890 34011019 BC 1,XCTLLD4 YES-GO TO LOAD 4 M2890 34012019 ERR800 CLI UCBTYP+DEVCLAS(ERREG1),UCBDA TEST FOR DA M0224 34015018 MVI BUFRTCOD,DARTCOD MOVE ROUTING CD TO BUF MCS 34020018 BC 8,ERR801 YES, GO TO FORMAT BUF BBBBBB 34030019 CLI UCBTYP+DEVCLAS(ERREG1),UCBTAPE TEST FOR TAPE MCS 34040018 MVI BUFRTCOD,TAPRTCD MOVE ROUTING CD TO BUF MCS 34050018 BC 8,ERR801 YES, GO TO FORMAT BUF BBBBBB 34060019 CLI UCBTYP+DEVCLAS(ERREG1),UCBUR TEST FOR UNIT RECORD MCS 34070018 MVI BUFRTCOD,URRTCD MOVE ROUTING CD TO BUF MCS 34080018 BC 8,ERR801 YES, GO TO FORMAT BUF BBBBBB 34090019 CLI UCBTYP+DEVCLAS(ERREG1),UCBTP TEST FOR TP MCS 34100018 MVI BUFRTCOD,TPRTCD MOVE ROUTING CODE TO BUF MCS 34110018 BC 8,ERR801 YES, GO TO FORMAT BUF BBBBBB 34120019 MVI BUFRTCOD,RTCD2 DEFAULT ROUTING CODE 2 SA69928 34130021 SPACE 1 1793 34430018 * THE FOLLOWING CODE FORMATS THE INTERVENTION REQUIRED MESSAGE 1793 34460018 ERR801 CLI UCBLTS(ERREG1),ZERO TEST IF OPERATOR TOO FAST 1793 34490018 BC 8,ERR802A YES, UNIT READY - NO MSG 1793 34520018 TM UCBTYP+2(ERREG1),UCBDA TEST IF DA A29057 34530019 BC 8,ERR801B NO-CONTINUE TESTS A29057 34540019 TM UCBFL4(ERREG1),UCBVVR IS DAVV IN CONTROL M4698 34543019 BC 1,ERR801A YES-MSG MUST BE ISSUED M4698 34546019 TM UCBFL1(ERREG1),X'FE' TEST UCB FLAGS A36343 34553020 BC 1+4,ERR802A YES-NO MSG. A29057 34560019 ERR801B TM UCBSTATA(ERREG1),UCBSYSRS SYSRES OR CONSOLE A29057 34570019 BC 8,ERR801A NO, BRANCH 1793 34580018 TM UCBTYP+2(ERREG1),UCBDA INSURE SYSRES VIA D/A TEST 1793 34610018 BC 1,ERR802A YES, NO MESSAGE 1793 34640018 ERR801A MVC BUFCUA(3),UCBUTN(ERREG1) MOVE UNIT NAME TO BUF BBBBBB 35040019 MVC BUFCM(C3),CCWDUM SET DUMMY CCW MCS 35500018 L CCWREG,IOBCSW(IOBRG) GET ADDRESS OF LAST CCW WTOI 36200017 LA CCWREG,0(CCWREG) GET ADDRESS ONLY WTOI 36400017 SH CCWREG,ERRCN1 BACK UP CCW WTOI 36600017 BC 4,ERR805 WTOI 36800017 UNPK BUFCM(3),0(2,CCWREG) UNPK OP CODE TO BUFFER WTOI 37000017 MVI BUFSTAT-1,COMMA MOVE COMMA TO BUFFER WTOI 37200017 ERR805 UNPK BUFSTAT(5),IOBCSW+4(3,IOBRG) UNPK CSW STATUS WTOI 37400017 MVI BUFSNS-1,COMMA MOVE COMMA TO BUFFER WTOI 37600017 TM UCBTYP+2(ERREG1),UCBTAPE+UCBDA CHK DEV TYPE WTOI 37800017 BC 7,ERR807 GO IF TAPE OR DA S20201 37850020 * 2020 S20201 37900020 CLC UCBTYP+C2(C2,ERREG1),D2211 IS THIS 2211 S20201 37950020 * 2020 S20201 38000020 BC 7,ERR804 NO, USE SENSE FROM IOB S20201 38050020 * 2020 S20201 38100020 * INITIALIZE A POINTER TO THE SENSE DATA 20201 38120020 ERR807 LA ERREG5,UCBSNS(ERREG1) SET PTR TO SENSE AREA S20201 38140020 * 2020 S20201 38160020 TM UCBFL5(ERREG1),UCBEXTSN UCB CONTAIN PTR TO SENSE S20201 38180020 * 2020 S20201 38200020 BC 8,ERR806 NO, USE UCB AREA S20201 38220020 * 2020 S20201 38240020 L ERREG5,UCBSNS+C2(ERREG1) GET PTR TO SENS AREA S20201 38260020 * 2020 S20201 38280020 ERR806 CLC ZERO(C2,ERREG5),IOBSNS(IOBRG) UCB = IOB SENSE S20201 38300020 * 2020 S20201 38320020 BC 8,ERR803 YES, UNPACK 5 BYTES FROM UCWTOI 38400017 ERR804 UNPK BUFSNS(5),IOBSNS(3,IOBRG) NO, USE 2 BYTES FROM IOB WTOI 38600017 LA ERREG3,ERRBUF+33 UPDATE REG TO NEXT AVAIL WTOI 38800017 TR BUFCM(C12),ERRTBL-X'EE' TRANSLATE BUFFER MCS 39000018 BC 15,ERR810 WTOI 39200017 SPACE 1 WTOI 39400017 ERR803 UNPK BUFSNS(D11),ZERO(D6,ERREG5) UNPK SENSE S20201 39500020 * 2020 S20201 39600020 LA ERREG3,ERRBUF+39 UPDATE TO NEXT AVAIL BYTE WTOI 39800017 TR BUFCM(C18),ERRTBL-X'EE' TRANSLATE BUFFER MCS 40000018 ERR810 MVI IOBCOD(IOBRG),X'7F' SET CODE TO NORMAL WTOI 40200017 OI UCBFL1(ERREG1),UCBNRY FLAG AS NOT READY 1793 41000018 MVI 0(ERREG3),C',' MOVE COMMA TO BUFFER WTOI 41800017 MVI 1(ERREG3),C',' MOVE COMMA TO BUFFER WTOI 42000017 LA ERREG3,2(ERREG3) UPDATE TO NEXT AVAIL BYTE WTOI 42200017 TM UCBTYP+2(ERREG1),UCBTAPE+UCBDA TAPE OR DIR ACCESWTOI 42400017 BC 8,NOVOLSER NO, SKIP SERIAL NUMBER S20201 42600020 * 2020 S20201 42800020 SPACE 1 S20201 43000020 SPACE 1 WTOI 43400017 * THE FOLLOWING MOVES THE VOLUME SERIAL TO THE BUFFER FOR WTOI 43600017 * D/A AND TAPE. WTOI 43800017 ERVOLSER CLI UCBTYP+C2(ERREG1),UCBDA IS THIS DA S20201 43850020 * 2020 S20201 43900020 BC 7,ERVS2 NO, GO CHECK FOR VOL SER S20201 43950020 * 2020 S20201 44000020 CLI UCBTYP+C3(ERREG1),D2321 IS THIS 2321 S20201 44050020 * 2020 S20201 44100020 BC 7,ERVOL1 NO, SKIP 2321 CODE S20201 44108020 * 2020 S20201 44116020 SR ERREG6,ERREG6 CLEAR REG S20201 44124020 * 2020 S20201 44132020 IC ERREG6,IOBSK+C1(IOBRG) GET BIN NUMBER S20201 44140020 SLL ERREG6,C4 MULTIPLY BY 16 S20201 44148020 * 2020 S20201 44156020 LA ERREG1,D32(ERREG1,ERREG6) ALMOST POINT TO SUB UCB S20201 44164020 B ERVS2 BRANCH TO CHECK VOLSER A53257 44166000 * 2020 S20201 44172020 SPACE 1 S20201 44180020 * GET BASE ADDRESS UCB IF THIS IS A ZEUS DRUM 20201 44188020 ERVOL1 CLI UCBTYP+C3(ERREG1),ZEUSA IS THIS A ZEUS DRUM S20201 44196020 * 2020 S20201 44204020 BC 8,ERSV1 YES, GO GET BASE UCB S20201 44212020 * 2020 S20201 44220020 CLI UCBTYP+C3(ERREG1),ZEUSC IS THIS A ZEUS DRUM S20201 44228020 * 2020 S20201 44236020 BC 7,ERVS2 NO, GO CHECK FOR A VALID S20201 44244020 * S2020 S20201 44252020 ERSV1 L ERREG1,UCBEXT(ERREG1) GET POINTER TO UCB S20201 44260020 * EXTENSI2020 S20201 44268020 L ERREG1,UCBBASE(ERREG1) GET POINTER TO BASE UCB S20201 44276020 * 2020 S20201 44284020 * ERREG1 HAS INVALID UCB FROM HERE ON ---- 20201 44292020 SPACE 1 S20201 44300020 ERVS2 CLI UCBVSER(ERREG1),ZERO CHECK FOR VALID VOLSER S20201 44308020 * 2020 S20201 44316020 BC 8,NOVOLSER NO, SKIP VOL SER S20201 44324020 * 2020 S20201 44332020 MVC D0(D6,ERREG3),UCBVSER(ERREG1) MOVE VOLSER TO MSG S20201 44340020 * 2020 S20201 44348020 LA ERREG3,D6(0,ERREG3) POINT TO NXT AVAIL POS S20201 44356020 * 2020 S20201 44364020 NOVOLSER MVI C0(ERREG3),C',' MOVE COMMA TO BUFFER S20201 44964020 * 179 S20201 45564020 LA ERREG3,1(ERREG3) UPDATE TO NEXT AVAIL S20201 46164020 * BYTE WTO S20201 46764020 SPACE 1 WTOI 47600017 * THE FOLLOWING MOVES THE JOBNAME TO THE BUFFER IF THE TCB CAN WTOI 48400017 * BE DETERMINED. WTOI 48600017 ERJOBNAM TM CVTDCB(VECREG),MVT CHK SYST TYPE FOR 16 STARS MPXP 48900018 L ERREG5,TSTTCB(0,TSTREG) GET TCB PTR FOR MVT 1793 49300018 BC 1,GETTIOT YES, BRANCH 1793 49700018 SR ERREG6,ERREG6 CLEAR REG 1793 50100018 IC ERREG6,TSTTCBID(0,TSTREG) GET TCB ID 1793 50500018 SLL ERREG6,2 MULT ID BY 4 FOR DISP. 19054 50700019 L ERREG5,CVTIXAVL(0,VECREG) GET NEXT AVAIL PTR 1793 50900018 L ERREG5,4(0,ERREG5) GET PTR TO TCB LOOK UP TBL 1793 51300018 L ERREG5,0(ERREG6,ERREG5) GET TCB PTR 1793 51700018 GETTIOT L ERREG6,TSTDEB-1(TSTREG) GET DEB PTR FROM 12 STAR WTOI 52800017 L ERREG6,DEBTCB(ERREG6) GET TCB POINTER WTOI 53000017 LA ERREG5,0(ERREG5) INSURE ZERO IN HI ORDER WTOI 53200017 LA ERREG6,0(ERREG6) INSURE ZERO IN HI ORDER WTOI 53400017 CR ERREG5,ERREG6 COMPARE TCB PTRS FOR VLDTY WTOI 53600017 BC 7,ERR814 NOT EQUAL, OMIT JOBNAME WTOI 53800017 L ERREG5,TCBTIOT(ERREG5) GET TIOT PTR WTOI 54400017 L ERREG6,CVTMACSZ(VECREG) GET HIGHEST CORE ADDRESS WTOI 54600017 SH ERREG6,ERRCN1 INSURE NO PGM CHK IN MVC WTOI 54800017 CLR ERREG5,ERREG6 TEST IF TIOT PTR TOO HIGH WTOI 55000017 BC 2,ERR814 YES, OMIT JOB NAME WTOI 55200017 LTR ERREG5,ERREG5 TEST IF VALID TIOT PTR M4046 55260019 BC 8+4,ERR814 NO-OMIT JOB NAME M4046 55320019 MVC 0(8,ERREG3),TIOTJOBN(ERREG5) MOVE JOBN TO BUFFER WTOI 55400017 LA ERREG3,8(ERREG3) POINTER TO END OF BUFFER WTOI 55600017 ERR814 LR ERREG4,TSTREG SAVE TSTREG OVER WTO BBBBBB 55680019 LA 1,MSGAREA INIT PARAMETER REG BBBBBB 55760019 MVC C0(4,ERREG3),BUFDESC MOVE CODES TO BUFFR BBBBBB 55840019 SR ERREG3,1 FORM MSG LENGTH BBBBBB 55920019 STH ERREG3,MSGAREA WTOI 55928019 SPACE 1 WTOI 55936019 * WRITE MESSAGE TO OPERATOR WTOI 55944019 SPACE 1 WTOI 55952019 TM CVTOTTA(VECREG),CVTNIP TEST IF NIP IN CONTROL BBBBBB 55960019 BC 1,ERR802 YES, NO MESSAGE BBBBBB 55968019 WTO MF=(E,(1)) BBBBBB 55976019 ERR802 LR TSTREG,ERREG4 RESTORE TSTREG BBBBBB 55984019 LH ERREG1,TSTUCB(TSTREG) REGAIN UCB PTR S20201 55984520 CLI UCBTYP+C2(ERREG1),UCBUR IS THIS UNIT RECORD A55569 55985500 BC 7,ERR802A NO,RETURN TO IOS S20201 55986520 TM IOBFL3(IOBRG),IOBLOG IS LOGOUT ON S20201 55987520 BC 1,XCTLST YES,GO TO STAT. UPDATE S20201 55988520 ERR802A NI IOBFL3(IOBRG),X'FF'-IOBLOG NO LOGOUT S20201 55989520 * 2020 S20201 55990020 SPACE 1 S20201 55990520 SVC EXCPER RETURN TO IOS S20201 55991320 * 2020 S20201 55992120 SVC 3 WTOI 55993019 SPACE 1 S20201 55993120 XCTLST LA ERREG1,STATUP GET STAT UPDATE NAME S20201 55993220 * 2020 S20201 55993320 BC 15,XCTL GO TO SCHEDULE S20201 55993420 * 2020 S20201 55993520 SPACE 1 WTOI 55994019 XCTLLD2 LA ERREG1,WTORB GET LOAD NAME OF LOAD 2 MPXP 55995019 BC 15,XCTL GO TO SCHEDULE S20201 55996020 * 2020 S20201 55997020 SPACE 1 WTOI 55998019 XCTLLD4 LA ERREG1,WTORD GET LOAD NAME FOR LOAD 4 BBBBBB 55999019 NI IOBFL3(IOBRG),X'FF'-IOBLOG NO LOGOUT S20201 55999420 * 2020 S20201 55999820 XCTL L ERRETR,VECTXL(VECREG) GET ADR OF XCL ROUTINE S20201 56000220 * 2020 S20201 56000620 BCR 15,ERRETR GO TO XCTL BBBBBB 56001019 EJECT BBBBBB 56003019 * THIS ROUTINE DETERMINES IF A DEVICE IS AN MCS CONSOLE. BBBBBB 56005019 * THERE ARE THREE POSSIBLE CONDITIONS. BBBBBB 56007019 * 1)IF THE DEVICE IS A SUCCESSFULLY OPENED MCS CONSOLE, BBBBBB 56009019 * THE BROADCAST FLAG IS SET AND AN INT REQ MESSAGE IS BBBBBB 56011019 * ISSUED. BBBBBB 56013019 * 2)IF THE DEVICE IS AN MCS CONSOLE, BUT THE DCB IS NOT BBBBBB 56015019 * OPEN, AN XCTL IS DONE TO LOAD 2 FOR AN I/O ERR MESSAGE. BBBBBB 56017019 * 3)IF THE DEVICE IS NOT AN MCS CONSOLE, PROCESS NORMALLY. BBBBBB 56019019 ERRMCTST TM UCBTYP+DEVCLAS(ERREG1),UCBDA+UCBTAPE TAPE/DA M0224 56024018 BCR 4,ERRLNK YES, RETURN BBBBBB 56026019 TM UCBSTATA(ERREG1),PRMALT PRIM OR ALT CONSOLE M0224 56028018 BCR 8,ERRLNK NO DETERMINE RT CODE M0224 56030018 TM CVTDCB(VECREG),PCP TEST IF PCP SYSTEM BBBBBB 56032019 BCR 1,ERRLNK YES DETERMINE RT CODE M0224 56034018 L ERREG2,UCMADR(VECREG) LOAD ADDR OF UCM M0224 56036018 LA ERREG2,0(0,ERREG2) INSURE 0 IN HI ORDER BYTEBBBBBB 56037019 LTR ERREG2,ERREG2 UCM IN THE SYSTEM M0224 56038018 BCR 8,ERRLNK NO DETERMINE RT CODE M0224 56040018 TM UCMMCS(ERREG2),MCSID MULTI-CONS SUPP IN SYSTEM M0224 56042018 BCR 8,ERRLNK NO DETERMINE RT CODE M0224 56044018 L ERREG7,IOBDCB-C1(IOBRG) LOAD ADDR OF DCB M0224 56046018 TM DCBOFLGS(ERREG7),DCBOPEN IS DCB SUCCESSFULLY OPENEDM0224 56048018 BC 1,ERR799 TST FOR BRDCST M0224 56050018 OI IOBFL3(IOBRG),IOBMSG SET I/O ERR MSG FLAG BBBBBB 56052019 OI IOBFL1(IOBRG),IOBEX INDICATE PERM ERROR BBBBBB 56054019 BC 15,XCTLLD2 GO TO SECOND LOAD M0224 56056018 SPACE 1 56058018 ERR799 TM IOBDCB-C1(IOBRG),BRDCST TEST FOR BRDCST FLAG M0224 56060018 BCR 8,ERRLNK NO-DETERMINE RT CODE M0224 56062018 OI MSGFLGS,BCSTFLG INDIC BRDCST TO WTO BBBBBB 56063019 MVI IOBDCB-1(IOBRG),ZERO RESET BRDCAST FLAG BBBBBB 56064019 BCR 15,ERRLNK RETURN TO NORMAL FLOW M0224 56066018 SPACE 1 56068018 EJECT 56100018 * CONSTANTS AND WORK AREAS BBBBBB 59100019 SPACE 1 BBBBBB 62100019 DS 0H BBBBBB 65100019 ERRCN1 DC AL2(8) COUNT OF 8 WTOI 71800017 SPACE 1 BBBBBB 71900019 * INT REQ MESSAGE BUFFER BBBBBB 72000019 MSGAREA DC X'0000' COUNT FIELD FOR WTO WTOI 72200017 MSGFLGS DC X'8000' MCS FLAGS BBBBBB 72300019 ERRBUF DC CL56'IEA000A CUA,INT REQ,CM,STAT,SENS,,VOLSER,JOB' MCS 72500018 BUFDESC DC X'4000' DESCR CODE- IMM ACT REQ BBBBBB 72600019 BUFRTCOD DC XL2'0' ROUTING CODE STORAGE MCS 72720018 * BUFFER DEFINITION WTOI 72800017 BUFCODE EQU ERRBUF+0 WTOI 73000017 BUFCUA EQU ERRBUF+9 MCS 73100018 BUFTXT EQU ERRBUF+13 MCS 73200018 BUFCM EQU ERRBUF+21 WTOI 73400017 BUFSTAT EQU ERRBUF+24 WTOI 73600017 BUFSNS EQU ERRBUF+29 WTOI 73800017 SPACE 1 BBBBBB 74800019 CCWDUM DC X'EEEEEF' DUMMY CCW WTOI 76400017 ERRTBL DC C'*,0123456789ABCDEF' TRANSLATE TABLE WTOI 76600017 D2211 DC X'0809' S20201 76660020 * 2020 S20201 76720020 SPACE 1 WTOI 76800017 PATCH EQU * 76850021 DC (1024-(PATCH-IECWTORA))X'00' 76900021 END 77200017 ./ ADD SSI=09011883,NAME=IGE0025D,SOURCE=0 TITLE 'IGE0025D - STAT UPDATE ROUTINE' S20201 00006020 IECSTATA START X'00' 00020000 *0121000120,028500-028600,028800 S21021 00022021 * RELEASE 20 DELETIONS 00025020 *016820-16830,027800,035800-036000,036520 S20201 00030020 * RELEASE 19 DELETIONS 00035020 * 006800,015300,016000,016400 19023 00040020 * 017200 T314 00045020 *STATUS CHANGE LEVEL 009 00052021 * FUNCTION: COMMON ROUTINE USED BY THE ERROR ROUTINES TO UPDATE 00060000 * THE DEVICE DEPENDENT STATISTICS TABLE 00080000 * ENTRY : ENTERED VIA XCTL WITH A LOAD NAME OF IGE0025D FROM 00100000 * AN ERROR ROUTINE 00120000 * INPUT : REQUEST ELEMENT POINTER IN REGISTER 1 00140000 * OUTPUT : NONE 00160000 * EXT REF : NONE 00180000 * EXITS : 1. EXCPER, EXIT TO I/O SUPERVISOR TO RETURN REQUEST 00200000 * ELEMENT 00220000 * 2. SVC 3 EXIT TO RETURN CONTROL TO THE SUPERVISOR 00240000 * AND RELINQUISH CONTROL OVER THE TRANSIENT AREA 00260000 * 3. XCTL EXIT TO OUTBOARD RECORDING OR STATISTICS 00280000 * DATA RECORDING. RETURN TO THE I/O SUPERVISOR AND 00300000 * THE SUPERVISOR WILL BE MADE FROM THESE ROUTINES 00320000 * VIA SVC 15 AND SVC 3 RESPECTIVELY 00340000 * ERR MSG : NONE 00360000 * TABLES : STATAB OBTAINED VIA CVT 00380000 * INDEX TO STATAB OBTAINED FROM UCB'S STATAB FACTOR 00400000 * OPERATION: THE ROUTINE WILL UPDATE THE 4 BITS COUNTERS IN THE 00420000 * STATAB. THE BITS IN THE 9TH AND 10 BYTE OF THIS STATAB 00440000 * INDICATES WHICH COUNTER TO BE UPDATED 00460000 * WHEN AN OVERFLOW OCCURS THE ROUTINE WILL XCTL TO 00480000 * THE SDR ROUTINE 00500000 EJECT 00520000 EXCPER EQU 15 SVC ERROR EXCP 00540000 RETURN EQU 3 00560000 * REGISTER DEFINITION 00580000 TSTREG EQU 1 TWELVE STAR REG. 00600000 SAVBAS EQU 2 BASE SAVE FOR WTO 19023 00603019 CVTREG EQU 3 CVT REGISTER 00606015 VECREG EQU CVTREG CVT VECTOR REGISTER 19023 00609019 WKREG1 EQU 5 WORK REGISTER 00612015 ERREG4 EQU 4 WORK REG. 00620000 ERREG6 EQU 6 WORK REG. 00640000 UCBREG EQU 7 UCB ADDR.REG. 00660000 ERREGA EQU 8 WORK REGISTER 19023 00680019 ERREG9 EQU 9 WORK REG. 00700000 IOBRG EQU 10 IOB ADDR.REG. 00720000 ERREGB EQU 11 WORK REG. 00740000 STAREG EQU 12 STAT.TABLE ADDR REG 00760000 ERREGC EQU 13 WORK REG. 00780000 ERRETR EQU 14 RETURN REG. 00800000 BASREG EQU 15 BASE REGISTER 19023 00810019 SPACE 1 00820000 TSTUCB EQU 2 UCB POINTER 00840000 TSTID EQU 4 PCP/MFT TCB ID IN RQE 19023 00850019 TSTIOB EQU 5 12* IOB 00860000 TSTDEB EQU 9 DEB ADDRESS IN RQE 19023 00866019 TSTTCB EQU 12 RQE TCB POINTER FOR MVT 19023 00872019 * UCB DEVICE TYPE AND CLASS 20201 00872620 UCBDA EQU X'20' DIRECT ACCESS TYPE S20201 00873220 * 2020 S20201 00873820 ZEUSA EQU X'06' 2305 MODEL 1 CLASS S20201 00874420 * 2020 S20201 00875020 ZEUSC EQU X'07' 2305 MODEL 2 CLASS S20201 00875620 * 2020 S20201 00876220 D2314 EQU X'08' 2314 CLASS S20201 00876820 * 2020 S20201 00877420 MERLIN EQU X'09' MERLIN CLASS S20201 00878020 * 2020 S20201 00878620 SPACE 1 00880000 * IOB DEFINITION 00900000 IOBCSW EQU 8 CSW STORAGE 00920000 IOBECT EQU 30 ERROR CNT. 00940000 IOBFL3 EQU 8 FLAG 3 IN IOB 00960000 * 00961019 * MISCELLANEOUS EQUATES 00962019 * 00963019 MAXCNT EQU X'FF' MAXIMUM COUNT 19023 00964019 TAPE EQU X'80' TAPE DEVICE TYPE 19023 00965019 ESV EQU X'C0' ESV BITS IN TAPE MASK 19023 00966019 VSWRK EQU 8 VOL STATS WORK AREA 19023 00967019 RTHRSH EQU 10 READ THRESHOLD 19023 00968019 WTHRSH EQU 11 WRITE THRESHOLD 19023 00969019 RTEMP EQU 12 TEMPORARY READ ERRORS 19023 00970019 WTEMP EQU 13 TEMPORARY WRITE ERRORS 19023 00971019 SIOCNT EQU 14 SIO COUNTER 19023 00972019 MVT EQU X'10' MVT INDICATOR IN CVT 19023 00973019 CVTDCB EQU X'74' DCB ADDR IN CVT 19023 00974019 TCBTIOT EQU 12 TIOT POINTER IN TCB 19023 00975019 DEBTCB EQU 0 TCB POINTER IN DEB 19023 00976019 CVTMAX EQU X'A4' HIGHEST CORE ADDRESS 19023 00977019 CVTIXAVL EQU 124 NEXT AVAILABLE POINTER 19023 00978019 STAWRK EQU 8 POINER TO SENSE INFOR.IN STATAB 00980000 STATAB EQU 112 POINTER TO STAT TABLE 01000000 LOC284 EQU 284 STATAB ADDR. FOR SERR 01020000 LOC280 EQU 280 12* ADDR. FOR SERR 01040000 LOC016 EQU 16 VECTOR TABLE 01060000 VECTXL EQU 44 VECTOR TO XCTL RNT. 01080000 SPACE 1 01100000 SERLOG EQU 256 LOAD NAME TO LOG OUT RTN. 01120000 SPACE 1 01140000 SPACE 1 01160000 * FLAGS USED IN IOBFL3 01180000 IOBOVF EQU X'02' OVER FLOW BIT 01200000 EJECT 01220000 SPACE 1 01240000 UCBSTI EQU 9 STAT. TABLE INDEX 01260000 UCBTYP EQU 16 TYPE FIELD OFFSET T314 01266017 UCBSNS EQU 22 SENSE FIELD OFFSET T314 01272017 UCBTMSK EQU 48 EVA/ESV MASK IN UCB 19023 01273019 NXT EQU 2 NEXT CONTROL ENTRY 256D 01274018 TFTYSX EQU 256 INCREMENT STAT INDEX 256D 01276018 SPACE 1 01280000 * THIS ROUTINE WILL UPDATE THE 4 BITS COUNTERS IN THE DEVICE 01300000 * DEPENDENT STAT.TABLE. THE BITS IN THE 9TH AND 10TH BYTE OF THIS 01320000 * STAT. TABLE INDICATES WHICH COUNTER TO UPDATE. 01340000 * IF AN OVERFLOW OCCURS OR A LOG OUT IS REQUIRED THE ROUTINE WILL 01360000 * XCTL TO SERR. 01380000 SPACE 1 01400000 * PART ONE OF THIS ROUTINE WILL SHIFT THE BITS TO CORRESPOND TO ITS 01420000 * COUNTER LOCATION IN THE STAT. TABLE 01440000 SPACE 1 01460000 USING *,15 01480000 SPACE 2 01500000 L IOBRG,TSTIOB-1(TSTREG) GET IOB ADDR. 01520000 L CVTREG,LOC016 GET CVT ADDRESS 19023 01530019 * OBTAIN ADDRESS TO THE DEVICE DEPENDENT STAT. TABLE 01540000 SPACE 1 01560000 NI IOBFL3(IOBRG),X'FF'-IOBOVF SET OVER FLOW BIT TO ZERO 01580000 LH UCBREG,TSTUCB(TSTREG) GET ADDR. OF UCB 01620000 * 19023 01620319 * THIS IS THE VOLUME STATISTICS CODING 19023 01620619 * THIS SECTION WILL DETERMINE IF ESV AND/OR EVA ARE IN THE SYSTEM. 01620919 * FOR EVA - A WTO MESSAGE WILL BE ISSUED WHEN READ OR WRITE 19023 01621219 * THRESHOLD IS REACHED. 19023 01621519 * FOR ESV - THE VOLUME STATISTICS COUNTERS IN THE UCB WORK 19023 01621819 * AREA WILL BE UPDATED. 19023 01622119 * 19023 01622419 * TEST FOR TAPE DEVICE 19023 01622719 STAVOL1 CLI UCBTYP+2(UCBREG),TAPE TEST FOR TAPE 19023 01623019 BNE STA000 NO-BRANCH AROUND 19023 01623319 * 19023 01623619 * TEST FOR ESV/EVA IN SYSTEM. 19023 01623919 * 19023 01624219 TM UCBTMSK(UCBREG),ESV TEST FOR ESV 19023 01624519 BZ STA000 NO - BRANCH AROUND 19023 01624819 * 19023 01625119 * THIS CODE WILL UPDATE THE VOLUME STATISTICS. 19023 01625419 * 19023 01625719 L STAREG,UCBTMSK(UCBREG) GET WORK AREA POINTER 19023 01626019 L ERREG4,VSWRK(STAREG) GET STATISTICS WORK AREA 19023 01626319 SRL ERREG4,16 SHIFT TO LOW-ORDER 19023 01626619 SLL ERREG4,15 INITIALIZE POSITION 19023 01626919 SR ERREG6,ERREG6 CLEAR REGISTER 19023 01627219 LA WKREG1,RTEMP(STAREG) GET PTR TO TEMP RD CTR 19023 01627519 LA ERREG9,16 INITIALIZE COUNTER TO 16 19023 01627819 STAVOL2 SLA ERREG4,1 TEST FOR COUNTER UPDATE 19023 01628119 BC 14,STAVOL5 BRANCH IF BIT NOT SET 19023 01628419 TM 0(WKREG1),MAXCNT TEST FOR MAXIMUM 19023 01628719 BO STAVOL5 YES-DO NOT INCREMENT 19023 01629019 IC ERREG6,0(WKREG1) GET COUNTER 19023 01629319 LA ERREG6,1(ERREG6) INCREMENT BY 1 19023 01629619 STC ERREG6,0(WKREG1) STORE COUNTER 19023 01629919 CH ERREG9,FIFTEEN READ OR WRITE UPDATE? 19023 01630219 BL STAVOL5 NO - BRANCH AROUND 19023 01630519 BE STAVOL3 GO TEST WRITE THRESHOLD 19023 01630819 CLC RTHRSH(1,STAREG),RTEMP(STAREG) RD THRESH REACHED 19023 01631119 BE STAVOL4 YES-WRITE TO OPERATOR 19023 01631419 B STAVOL5 NO - BRANCH AROUND 19023 01631719 STAVOL3 CLC WTHRSH(1,STAREG),WTEMP(STAREG) WT THRESH REACHED 19023 01632019 BNE STAVOL5 NO-CHECK NEXT COUNTER 19023 01632319 * 19023 01632619 * THIS SECTION WILL OUTPUT THE MESSAGE FOR EVA 19023 01632919 * 19023 01633219 STAVOL4 SR ERREGB,ERREGB CLEAR WORK REGISTER 19023 01633519 IC ERREGB,RTEMP(STAREG) GET TEMP READ COUNT 19023 01633819 CVD ERREGB,CONVERT CONVERT TO DECIMAL 19023 01634119 UNPK CONVERT+9(3),CONVERT+6(2) UNPACK READ COUNT 19023 01634419 OI CONVERT+11,X'F0' SET ZONE OVER SIGN 19023 01634719 MVC WTOMSG+28(3),CONVERT+9 MOVE TR COUNT TO MSG 19023 01635019 IC ERREGB,WTEMP(STAREG) GET TEMP WRITE COUNT 19023 01635319 CVD ERREGB,CONVERT CONVERT TO DECIMAL 19023 01635619 UNPK CONVERT+9(3),CONVERT+6(2) UNPACK WRITE COUNT 19023 01635919 OI CONVERT+11,X'F0' SET ZONE OVER SIGN 19023 01636219 MVC WTOMSG+35(3),CONVERT+9 MOVE TW COUNT TO MSG 19023 01636519 LH ERREGB,SIOCNT(STAREG) GET SIO COUNT 19023 01636819 CVD ERREGB,CONVERT CONVERT TO DECIMAL 19023 01637119 UNPK CONVERT+12(5),CONVERT+5(3) UNPACK SIO COUNT 19023 01637419 OI CONVERT+16,X'F0' SET ZONE OVER SIGN 19023 01637719 MVC WTOMSG+43(5),CONVERT+12 MOVE SIO COUNT TO MSG 19023 01638019 MVC WTOMSG+21(3),13(UCBREG) GET DEVICE ADDRESS 19023 01638319 * 19023 01638619 * GET JOB NAME VIA TCB AND TIOT. 19023 01638919 * 19023 01639219 TM CVTDCB(CVTREG),MVT TEST FOR MVT SYSTEM 19023 01639519 L ERREGA,TSTTCB(TSTREG) GET TCB PTR FOR MVT 19023 01639819 BC 1,STAVOL4A IF MVT - BRANCH 19023 01640119 SR ERREGB,ERREGB CLEAR WORK REGISTER 19023 01640419 IC ERREGB,TSTID(TSTREG) GET TCB ID 19023 01640719 SLL ERREGB,2 MULTIPLY INDEX BY 4 19023 01641019 L ERREGA,CVTIXAVL(CVTREG) GET NEXT AVAILABLE ADDR 19023 01641319 L ERREGA,4(ERREGA) GET PTR TO TCB TABLE 19023 01641619 L ERREGA,0(ERREGA,ERREGB) GET TCB POINTER 19023 01641919 STAVOL4A L ERREGB,TSTDEB-1(TSTREG) GET RQE DEB ADDRESS 19023 01642219 L ERREGB,DEBTCB(ERREGB) GET DEB TCB ADDRESS 19023 01642519 LA ERREGA,0(ERREGA) CLEAR HI-ORDER 19023 01642819 LA ERREGB,0(ERREGB) CLEAR HI-ORDER 19023 01643119 CR ERREGA,ERREGB COMPARE TCB ADDRESSES 19023 01643419 BNE STAVOL4B BRANCH IF NO COMPARE 19023 01643719 L ERREGA,TCBTIOT(ERREGA) GET TIOT ADDRESS 19023 01644019 L ERREGB,CVTMAX(CVTREG) GET MAXIMUM CORE SIZE 19023 01644319 SH ERREGB,ERRCN1 REDUCE BY 8 19023 01644619 CLR ERREGA,ERREGB TEST FOR TIOT IN CORE 19023 01644919 BC 2,STAVOL4B NO-OMIT JOB NAME 19023 01645219 MVC WTOMSG+12(8),0(ERREGA) MOVE IN JOB NAME 19023 01645519 STAVOL4B LR ERREG4,TSTREG SAVE RQE ACROSS WTO 19023 01645819 LR SAVBAS,BASREG SAVE BASE ACROSS WTO 19023 01646119 LA TSTREG,WTOMSG GET MESSAGE POINTER 19023 01646419 WTO MF=(E,(1)) 19023 01646719 LR BASREG,SAVBAS RESTORE BASE REGISTER 19023 01647019 LR TSTREG,ERREG4 RESTORE RQE REGISTER 19023 01647319 STAVOL5 LA WKREG1,1(WKREG1) INCREMENT COUNTER PTR 19023 01647619 CH ERREG9,FIFTEEN COUNTER EQUAL 15 19023 01647919 BNE STAVOL6 NO-BRANCH AROUND 19023 01648219 TM UCBTMSK(UCBREG),ESV TEST FOR ESV 19023 01648519 BO STAVOL6 YES-CONTINUE UPDATING 19023 01648819 LA ERREG9,1 NO-SET CTR FOR EVA ONLY 19023 01649119 STAVOL6 BCT ERREG9,STAVOL2 GET NEXT COUNTER 19023 01649419 XC VSWRK(2,STAREG),VSWRK(STAREG) CLEAR WORK AREA 19023 01649719 STA000 L STAREG,STATAB(VECREG) GET ADDR TO STAT TABLE 19023 01650019 SR ERREG4,ERREG4 01660000 IC ERREG4,UCBSTI(UCBREG) GET INDEX TO STAT. TABLE 01680000 SR WKREG1,WKREG1 CLEAR WORK REGISTER T314 01681017 CLI UCBTYP+2(UCBREG),UCBDA IS THIS DIRECT ACCESS S20201 01681120 * 2020 S20201 01681220 BC 7,STA001 NO, GO FIND TABLE ENTRY S20201 01681320 * 2020 S20201 01681420 CLI UCBTYP+3(UCBREG),ZEUSA IS THIS ZEUS MODEL 1 S20201 01681520 * 2020 S20201 01681620 BC 8,STA050 YES, GO FIND EXIT S20201 01681720 * 2020 S20201 01681820 CLI UCBTYP+3(UCBREG),ZEUSC IS THIS ZEUS MODEL 2 S20201 01681920 * 2020 S20201 01682020 BC 8,STA050 YES, GO FIND EXIT S20201 01682120 * 2020 S20201 01682220 CLI UCBTYP+3(UCBREG),MERLIN IS THIS MERLIN S20201 01682320 * 2020 S20201 01682420 BC 8,STA050 YES, GO FIND EXIT S20201 01682520 * 2020 S20201 01682620 CLI UCBTYP+3(UCBREG),D2314 IS THIS 2314 CLASS S20201 01682720 * 2020 S20201 01682820 BC 7,STA001 NO, GO FIND TABLE ENTRY S20201 01682920 * 2020 S20201 01683020 * 01684017 * 2314 CODING TO GET STATISTICS FOR THE PHYSICAL DEVICE 01685017 * GET PROPER INDEX FROM SENSE BYTE 5 FOR THIS DEVICE 01686017 * 01687017 TM UCBSNS+4(UCBREG),X'0F' IS IT INT. REQ. T314 01688017 BC 1,STA001 YES-BRANCH AROUND T314 01689017 IC WKREG1,UCBSNS+4(UCBREG) GET SENSE BYTE T314 01690017 N WKREG1,MASK SAVE LO-ORDER 4 BITS T314 01691017 AR ERREG4,WKREG1 GET CORRECT STAT. TAB. ENT.T314 01692017 * CALCULATE CORRECT ENTRY IN STAT. TABLE 01700000 STA001 LR WKREG1,STAREG GET STAT. TAB START ADR 256D 01704018 ERRLOOP1 CH UCBREG,0(0,WKREG1) DEV SUPPORTED BY THIS SECT 256D 01708018 BC 4,ERRLOOP2 YES,INCR ADJUSTED CORRECTLY 256D 01712018 LA WKREG1,NXT(0,WKREG1) INCR TO NXT CTL SECTION 256D 01716018 LA ERREG4,TFTYSX(0,ERREG4) INCR STAT INDEX TO NXT SECT256D 01720018 BC 15,ERRLOOP1 LOOP TO CHECK THIS SECT 256D 01724018 SPACE 1 01728018 ERRLOOP2 MH ERREG4,ERRC10 MULTIPLY BY 10 256D 01732018 AR STAREG,ERREG4 GET PROPER ENTRY 01740000 SPACE 1 01760000 * UPDATE DATA CHECK ERROR COUNT 01780000 TM STAWRK(STAREG),X'08' TEST IF DATA CHECK BIT IS ON 01800000 BC 8,STA005 BR-ON NO- BYPASS UPDATE DC CNT. 01820000 SPACE 1 01840000 IC ERREG4,0(STAREG) GET FIRST BYTE FROM SENSE 01860000 TM IOBECT+1(IOBRG),X'80' IS THIS WRIT ERROR 01880000 MVI IOBECT+1(IOBRG),X'00' CLEARED ERROR COUNTS 01900000 BC 1,STA002 BR-ON YES 01920000 SPACE 1 01940000 * UPDATE TEMPORARY READ ERROR COUNT. 01960000 LA ERREG4,16(ERREG4) INCRAMENT COUNT 01980000 STC ERREG4,0(STAREG) STORE UPDATED COUNT. 02000000 TM 0(STAREG),X'F0' TEST FOR OVER FLOW 02020000 BC 1,STA003 BR-ON YES 02040000 BC 15,STA005 02060000 SPACE 1 02080000 STA002 LA ERREG4,1(ERREG4) INCRAMENT WRITE CNT. 02100000 STC ERREG4,0(STAREG) STORE UPDATED CNT. 02120000 TM 0(STAREG),X'0F' TEST FOR OVER FLOW 02140000 BC 12,STA005 BR-ON NO 02160000 STA003 OI IOBFL3(IOBRG),IOBOVF INDICATE OVER FLOW 02180000 SPACE 1 02200000 * SHIFT BITS IN BYTE 1 TO CORRECT POSITION 02220000 STA005 NI 8(STAREG),X'77' CLEAR CMD.REJECT AND DC BITS 02240000 SR ERREGB,ERREGB INITALIZE REG. 02260000 IC ERREGB,8(STAREG) GET SENSE BYTE 0 02280000 NI 8(STAREG),X'07' CLEAR 5 HIGH ORDER BITS 02300000 SRA ERREGB,4 CLEAR 4 LOW ORDER BITS 02320000 SLA ERREGB,3 REPOSITION 02340000 IC ERREG4,8(STAREG) GET PART OF SENSE DATA 1 02360000 AR ERREGB,ERREG4 CREATE NEW FORMAT 02380000 STC ERREGB,8(STAREG) STORE NEW FORMAT 02400000 SPACE 1 02420000 LA ERREG9,2 INITIALIZE REG. 02440000 LA ERREG4,7 INITIALIZE POINTER TO STAT CNT 02460000 STA008 LA ERREGB,1 INITIALIZE BIT TESTING 02480000 LA ERREGC,4 02500000 SPACE 1 02520000 STA010 AR ERREG9,STAREG 02540000 EX ERREGB,STA030 TEST BITS 02560000 BC 1,STA015 BR-IF ON TO UPDATE CNT. 02580000 STA011 SLA ERREGB,1 GET NEXT BIT TO BE TESTED 02600000 EX ERREGB,STA030 EXECUTE TEST FOR BIT ON 02620000 BC 1,STA020 BR-IF ON TO UPDATE CNT. 02640000 STA00A SLA ERREGB,1 GET NEXT BIT TO BE TESTED 02660000 SR ERREG9,STAREG 02680000 BCT ERREG4,STA00B DECRAMENT POINTER TO STAT. CNT. 02700000 STA00B BCT ERREGC,STA010 TEST IF BYTE TEST COMPLETE 02720000 BCT ERREG9,STA008 TEST IF UPDATE COMPLETE 02740000 SPACE 1 02760000 XC 8(2,STAREG),8(STAREG) CLER STAT ENTRY WORK S20201 02768020 * AREA 2020 S20201 02776020 STA050 LA ERREGC,SERLOG PREPARE FOR XCTL TO OBR S20201 02784020 * 2020 S20201 02792020 TM IOBFL3(IOBRG),X'01' IS LOG OUT REQUIRED 02800000 BC 1,STA012 YES - GO TO SERR CCHA 02810015 SPACE 1 02823015 * SPECIAL CCH INTERFACE 02826015 SPACE 1 02829015 L WKREG1,X'74'(CVTREG) GET DCB ADDRESS 02832015 L WKREG1,0(WKREG1) GET FIRST WORD 02835015 LTR WKREG1,WKREG1 TEST FOR ZERO 02838015 BZ STA00B1 BRANCH IF YES 02841015 CLI 4(WKREG1),X'00' TEST FOR ZERO 02844015 BNE STA012 NO - BRANCH AROUND CCHA 02847015 STA00B1 TM IOBFL3(IOBRG),IOBOVF TEST IF OVERFLOW BIT IS S21021 02857021 * ON S21021 02867021 BC 8,STA040 02900000 * TRANSFER CONTROL TO SERR CCHA 02940015 SPACE 1 02980000 STA012 L ERRETR,VECTXL(VECREG) GET ADDR TO XCTL ROUTINE 03000000 BCR 15,ERRETR BR- TO XCTL ROUTINE 03020000 SPACE 1 03040000 SPACE 1 03060000 * THIS CODE WILL UPDATE THE RIGHT HAND COUNTERS IN STAT.TABLE 03080000 STA015 IC ERREG6,0(ERREG4,STAREG) GET CURRENT COUNT 03100000 LA ERREG6,1(ERREG6) ADD ONE TO COUNT 03120000 STC ERREG6,0(ERREG4,STAREG) STORE UPDATED COUNT 03140000 AR ERREG4,STAREG 03160000 TM 0(ERREG4),X'0F' TEST FOR OVER FLOW 03180000 BC 12,STA016 BR-ON NO 03200000 OI IOBFL3(IOBRG),IOBOVF INDICATE OVERFLOW 03220000 STA016 SR ERREG4,STAREG 03240000 BC 15,STA011 BR-TO TEST NEXT BIT 03260000 SPACE 1 03280000 * THIS CODE WILL UPDATE THE LEFT HAND COUNTERS IN STAT.TABLE 03300000 STA020 IC ERREG6,0(ERREG4,STAREG) GET CURRENT COUNT 03320000 LA ERREG6,16(ERREG6) ADD ONE TO COUNT 03340000 STC ERREG6,0(ERREG4,STAREG) STORE UPDATED COUNT 03360000 AR ERREG4,STAREG 03380000 TM 0(ERREG4),X'F0' TEST FOR OVER FLOW 03400000 BC 12,STA021 BR-ON NO 03420000 OI IOBFL3(IOBRG),IOBOVF INDICATE OVERFLOW 03440000 SPACE 1 03460000 STA021 SR ERREG4,STAREG 03480000 BC 15,STA00A BR-TO TEST NEXT BIT 03500000 SPACE 1 03520000 STA030 TM 7(ERREG9),X'00' TEST FOR BIT SETTING 03540000 SPACE 1 03560000 STA040 SVC EXCPER S20201 03580020 * 2020 S20201 03600020 SVC RETURN 03620000 DS 0F 03640000 MASK2 DC X'0000FFFF' HALF WORD MASK 19023 03643019 MASK DC X'0000000F' SENSE BYTE MASK T314 03646017 ERRC10 DC AL2(10) DECIMAL 10 03660000 ERRCN1 DC AL2(8) DECIMAL 8 03680000 FIFTEEN DC X'000F' MASK OF FIFTEEN 19023 03682019 CONVERT DC 3D'0' MESSAGE WORK AREA 19023 03684019 WTOMSG DS 0F 19023 03686019 DC X'0048' MESSAGE LENGTH 19023 03688019 DC X'8000' MCS FLAG 19023 03690019 DC C'IEA620I TR= ,TW= ,SIO= ERROR THRX03692019 ESHOLD REACHED' MESSAGE 19023 03694019 DC X'04002040' DESC AND RTING CODE WORD 19023 03696019 END 03700000 ./ ADD SSI=07010632,NAME=IGE0025E,SOURCE=0 TITLE 'IGE0025E - IO PERMANENT ERROR PURGE RTN' 00022021 IGE0025E START 0 00024021 * A41445 00030021 EJECT 00040000 * IOS PURGE 00060000 SPACE 2 00080000 * THIS ROUTINE IS ENTERED AND OPERATES LIKE AN ERROR ROUTINE WHEN IT 00100000 * IS ENTERED THE BASE REGISTER WILL BE SET IN REGISTER 15 AND THE 00120000 * ADDRESS OF THE 12* WILL BE IN REGISTER 1. THE UCB ADDRESS IN THE 12* 00140000 * IS A PSUEDO ADDRESS IN ORDER TO HAVE THE SUPERVISOR ATTACH PURGE 00160000 * AS AN ERROR ROUTINE. THE REAL ADDRESS IS IN THE PURGE FIELD OF 00180000 * THE DEB 00200000 SPACE 3 00220000 STOREG EQU 0 00260000 TSTREG EQU 1 00280000 IOBREG EQU 2 IOB REGISTER 00300000 DEBREG EQU 3 DEB ADDRESS 00320000 STOREG2 EQU 4 00340000 LCHREG EQU 5 LOGICAL CHANNEL REGISTER 00360000 CHNREG EQU 6 CHAIN REGISTER 00380000 UCBREG EQU 7 UCB REGISTER 00400000 BASREG EQU 8 00420000 ICREG EQU 9 INSERT CHARACTER REGISTER 00440000 WKREG1 EQU 10 WORK REGISTER 00460000 WKREG2 EQU 11 WORK REGISTER 00500000 WKREG3 EQU 12 00520000 ERREG3 EQU 13 ERROR WORK REG SA60751 00530021 LNKRG2 EQU 14 LINK REGISTER 00560000 * OFFSETS AND INDICIS 00600000 SPACE 2 00620000 DEBADR EQU 1 DEB ADDRESS ON INPUT 00640000 DEBQUS EQU 13 QUIESCE COUNTER PRGA 00650016 DEBECBAD EQU 21 PURGE PARAMETER LIST ADD.M6094 00652020 DEBDCB EQU 25 A29308 00655019 DCBIFLGS EQU 44 IOS FLAGS IN DCB A41445 00656021 DCBDEB EQU 45 DEB ADDRESS IN DCB A41445 00657021 TCBPKE EQU 28 PROTECT KEY IN TCB A41445 00658021 TSTLNK EQU 0 LINK FIELD IN 12* 00660000 TSTUCB EQU 2 UCB ADDR IN RQE SA60751 00670021 TSTIOB EQU 5 IOB ADDRESS IN 12* 00680000 TSTTCB EQU 4 TASK ID FIELD IN 12* 00700000 TSTDEB EQU 9 00720000 TSTTCBP EQU 12 TCB PTR FOR MVT RQE DAVV 00730018 UCBTYP EQU 16 00740000 UCBLCI EQU 10 00760000 UCBLTS EQU 20 RQE ADDR IN UCB SA60751 00770021 UCBSQC EQU 40 00780000 DEBUPG EQU 17 USER PURGE CHAIN 00800000 IOBFL1 EQU 0 IOB FLAGS 1 00820000 IOBECB EQU 5 ECB FIELD IN IOB 00840000 IOBDCB EQU 21 DCB ADDRESS IN IOB A41445 00850021 IOBCHN EQU 24 IOB CHAIN FIELD 00860000 IOBURL EQU X'02' IOB UNRELATED FLAG 00880000 UCBRAN EQU X'20' DISK DEVICE TYPE CODE 00900000 UCBDRM EQU X'02' DRUM BIT 00920000 IOBCOD EQU 4 00940000 PERMERR EQU X'20' IF OFF, PERM ERR FLAG BBBBBB 00950019 LSTOPT EQU X'08' TSO PURGE BY TCB LIST M6094 00953020 PRGOPT EQU 0 PURGE OPTION BYTE M6094 00956020 DUMADR EQU X'01' 00960000 LCHLTS EQU 2 00980000 ERREXCP EQU 15 01000000 RETURN EQU 3 01020000 CVTCONFG EQU X'74' OFFSET TO CONFIG TYPE DAVV 01022018 CVTXCTL EQU X'2C' POINTER TO XCTL ROUTINE DAVV 01024018 MVT EQU X'10' MVT FLAG DAVV 01026018 DEVDA EQU X'20' UNIT TYPE FOR D/A DAVV 01028018 UCBFL1 EQU 6 UCB FLAGS 1 SA60751 01028421 UCBCLEAR EQU X'D0' FLAGS TO BE LEFT ON SA60751 01028821 UCBFL4 EQU 44 FLAGS 4 FOR VVR DAVV 01030018 UCBVVRTN EQU X'40' FLAG FOR LOAD 2 IN CONTROL DAVV 01032018 VVRLD1 EQU 1255 LOAD NAME OF IGE0125E DAVV 01034018 WTORD EQU 3253 LOAD NAME OF IGE0325C BBBBBB 01035019 SPACE 2 DAVV 01036018 PRGIOS LR BASREG,15 MOVE BASE REGISTER TO 14 01040000 USING PRGIOS,BASREG SET UP BASE REGISTER 01060000 L STOREG2,16 GET CVT ADDR 01080000 LR STOREG,TSTREG STORE ADDRESS OF 12* UNTIL COMP 01100000 LM IOBREG,DEBREG,TSTIOB-1(TSTREG) GET IOB AND DEB ADDR 01120000 L WKREG2,DEBDCB-1(DEBREG) GET DCB ADDRESS A29308 01150019 LH UCBREG,34(DEBREG) GET FIRST EXTENT POINTER 01180000 TM 16(DEBREG),X'FE' MULTIPLE EXTENTS 01200000 BC 8,PRG008A NO,RESTORE 12* UCB POINTER 01220000 SR WKREG1,WKREG1 YES, PREPARE WORK REGS 01240000 SR WKREG3,WKREG3 01260000 IC WKREG1,28(DEBREG) GET EXTENT SIZE 01280000 IC WKREG3,32(IOBREG) GET IOB M 01300000 SLL WKREG3,0(WKREG1) MULTIPLY BY SIZE 01320000 LH UCBREG,34(WKREG3,DEBREG) GET UCB ADDRESS 01340000 PRG008A STH UCBREG,2(TSTREG) RESTORE UCB POINTER 01360000 CLC IOBDCB(3,IOBREG),DEBDCB(DEBREG) TST FOR VALID DEB A41445 01360121 BC 7,PRGVDTY NO, RETURN TO IOS A41445 01360221 L WKREG1,DCBDEB-1(WKREG2) GET DEB FROM DCB A41445 01360321 LA WKREG1,0(WKREG1) CLEAR HI-ORDER BYTE A41445 01360421 LA DEBREG,0(DEBREG) CLEAR HI-ORDER BYTE A41445 01360521 CR WKREG1,DEBREG DCBDEB EQUALS TSTDEB A41445 01360621 BC 7,PRGVDTY NO, RETURN TO IOS A41445 01360721 TM UCBTYP+2(UCBREG),DEVDA TEST FOR D/A DEVICE DAVV 01361018 BC 8,PRG001 NO,BRANCH DAVV 01362018 TM UCBFL4(UCBREG),UCBVVRTN TEST FOR VOL VER RTN IN CTLDAVV 01363018 BC 1,XCTL125E YES,GO TO XCTL DAVV 01364018 PRG001 TM IOBCOD(IOBREG),PERMERR TEST FOR PERM ERROR A57256 01366521 BC 1,XCTL325C BRANCH TO HANDLE CC 3 A57256 01367721 * 01368121 OI DCBIFLGS(WKREG2),X'C0' SET PERM ERROR FLAGS 01368521 LA CHNREG,DEBUPG-1(DEBREG) INITIALIZE FOR CHAIN M6094 01371720 TM DEBQUS(DEBREG),X'FF' ANY QUIESCE COUNT M6094 01377720 BC 8,PRG007 NO, CONTINUE M6094 01383720 L WKREG1,DEBECBAD-1(DEBREG) GET PURGE PARM LIST M6094 01389720 TM PRGOPT(WKREG1),LSTOPT TSO PURGE BY TCB LIST M6094 01395720 BC 1,PRG018 YES, INIT. CHAIN FIELD M6094 01401720 BC 15,PRG019 NO, DO NOT USE FIELD M6094 01407720 PRG007 N DEBREG,PRGMSK CLEAR HI-ORDER BYTE M6094 01413720 SR ICREG,ICREG CLEAR IC REGISTER 01420000 BC 15,PRGLCH GET LCH WRD. FOR DEVICE 01480014 PRG008 LR TSTREG,LCHREG USE ADDRESS AS FIRST 12* 01540000 PRG010 LH TSTREG,TSTLNK(TSTREG) GET 12* FROM QUEUE 01560000 PRG012 LTR TSTREG,TSTREG TEST FOR LAST REQUEST IN QUEUE 01580000 BC 4,PRG018 YES- EXIT 01600000 L WKREG1,TSTDEB-1(TSTREG) GET 12* DEB ADDRESS 01620000 N WKREG1,PRGMSK CLEAR HIGH ORDER BYTE 01640000 CR WKREG1,DEBREG THIS 12* FOR THIS DEB 01660000 BC 7,PRG010 NO GO ADVANCE TO NEXT IN QUEUE 01680000 L IOBREG,TSTIOB-1(TSTREG) PUT ADDR OF IOB IN REGISTER 01700000 TM IOBFL1(IOBREG),IOBURL IS THIS A RELATED REQUEST 01720000 BC 1,PRG010 NO. GO ADVANCE TO NEXT IN QUEUE 01740000 LR WKREG1,LCHREG SAVE ADDR OF LCHREG 01760000 PRG014 LR WKREG2,WKREG1 01780000 LH WKREG1,TSTLNK(WKREG1) 01800000 LTR TSTREG,TSTREG TEST FOR LAST REQUEST IN QUEUE 01820000 BC 4,PRG016 01840000 CR WKREG1,TSTREG 01860000 BC 7,PRG014 01880000 MVC TSTLNK(2,WKREG2),TSTLNK(TSTREG) 01900000 TM TSTLNK+1(TSTREG),DUMADR 01920000 BC 8,PRG016 01940000 STH WKREG2,LCHLTS(LCHREG) 01960000 PRG016 IC ICREG,0(CHNREG) STORE HIGH ORDER BYTE OF FIELD 01980000 ST IOBREG,0(CHNREG) CHAIN IOB TO CHAIN 02000000 STC ICREG,0(CHNREG) RESTORE HIGH ORDER BYTE OF FLD 02020000 LH WKREG1,TSTLNK(TSTREG) SAVE UPDATE OF 12* 02040000 L WKREG2,X'7C'(STOREG2) GET ADDR OF NEXT AVAIL 02060000 MVC TSTLNK(2,TSTREG),0(WKREG2) RETURN 12* 02080000 STH TSTREG,0(WKREG2) TO NEXT AVAILABLE 02100000 LH ERREG3,TSTUCB(TSTREG) GET ADDR OF UCB SA60751 02110021 CH TSTREG,UCBLTS(ERREG3) DOES UCB POINT TO RQE SA60751 02112021 BC 7,PRG021 NO, DO NOT CLEAR FLAGS SA60751 02114021 NI UCBFL1(ERREG3),UCBCLEAR CLEAR FLAGS SA60751 02116021 PRG021 LA CHNREG,IOBCHN(IOBREG) GET ADDR OF IOB CHN FLD SA60751 02120021 TM CVTCONFG(STOREG2),MVT TEST FOR MVT CONFIGURATION DAVV 02145018 BC 8,PRG015 NO,BRANCH DAVV 02150018 L WKREG3,TSTTCBP(TSTREG) GET PTR TO TCB FROM 16* DAVV 02155018 MVC TSTTCBP(4,TSTREG),PRGMSK+1 INDICATE PURGED DAVV 02160018 BC 15,PRG017 BRANCH AROUND DAVV 02165018 SPACE 1 DAVV 02170018 PRG015 IC ICREG,TSTTCB(TSTREG) GET TCB ID DAVV 02175018 SLL ICREG,2 MULT ID BY 4 FOR DISP. 19054 02177019 L WKREG3,X'7C'(STOREG2) NEXT AVAIL+4 POINTS TO 02180000 L WKREG3,X'04'(WKREG3) TCB TABLE 02200000 L WKREG3,0(ICREG,WKREG3) GET TCB ADDR 02220000 PRG017 OI TSTTCB(TSTREG),X'FF' PLACE FF IN TASK ID A29308 02240019 LR TSTREG,WKREG1 SET UP NEXT RQE A29308 02260019 L WKREG2,IOBECB-1(IOBREG) GET ECB ADDR 02280000 L WKREG1,IOBCCODE GET COMPLETION CODE 02300000 L 15,X'98'(STOREG2) GET POST RTN ADDR 02320000 LA LNKRG2,PRG012 RETURN ADDRESS 02340000 BCR 15,15 TO POST ECB 02360000 SPACE 1 02380000 PRG018 MVC 1(3,CHNREG),PRGMSK+1 PLACE ALL FF IN LAST IOB LINK 02400000 PRG019 LR TSTREG,STOREG RESTORE RQE ADDR PRGA 02420016 SVC ERREXCP 02440000 SVC RETURN 02460000 SPACE 2 02480000 * LCHWRD INDEX SUBROUTINE 02500000 SPACE 1 02520000 PRGLCH IC ICREG,UCBLCI(UCBREG) GET LOGICAL CHANNEL INDEX 02540000 SLL ICREG,3 MULTIPLY BY EIGHT 02560000 L WKREG2,X'8C'(STOREG2) NO GET ADDRESS FROM CVT 02580000 LA LCHREG,0(ICREG,WKREG2) GET ADDRESS OF LCHWRD 02600000 SR ICREG,ICREG 02620000 BC 15,PRG008 GO GET 12* FROM QUEUE 02640000 SPACE 1 DAVV 02643018 XCTL125E LA 13,VVRLD1 GET LOAD NAME IN REG DAVV 02646018 L 14,CVTXCTL(STOREG2) GET PTR TO XCTL RTN DAVV 02649018 BCR 15,14 GO TO XCTL DAVV 02652018 SPACE 1 BBBBBB 02652619 XCTL325C LA 13,WTORD GET LOAD NAME BBBBBB 02653219 L 14,CVTXCTL(0,STOREG2) GET ADDR OF XCTL RTN BBBBBB 02653819 BCR 15,14 GO TO XCTL BBBBBB 02654419 SPACE 2 02654621 PRGVDTY DS 0H A41445 02654821 * THIS SUBROUTINE IS ENTERED WHEN AN INVALID CONTROL BLOCK HAS * 02655021 * BEEN FOUND. THE USER'S PROTECT KEY IS ENTERED BEFORE RETURNING * 02655221 * THE RQE SO THAT IOS WILL PERFORM IT'S VALIDITY CHECKING. * 02655421 SPACE 2 02655621 TM CVTCONFG(STOREG2),MVT IS THIS MVT A41445 02655821 BC 8,PRGNOMVT NO A41445 02656021 L WKREG1,TSTTCBP(TSTREG) GET THE TCB ADDR FOR MVT A41445 02656221 BC 15,PRGTCBF GO GET TCBPKE A41445 02656421 SPACE 1 02656621 PRGNOMVT SR ICREG,ICREG INITIALIZE REGISTER A41445 02656821 IC ICREG,TSTTCB(TSTREG) GET TCB ID A41445 02657021 SLL ICREG,2 MULT. BY 4 A41445 02657221 L WKREG1,X'7C'(STOREG2) GET IOS NEXT AVAILABLE A41445 02657421 L WKREG1,4(WKREG1) GET TCB TABLE A41445 02657621 L WKREG1,0(ICREG,WKREG1) GET TCB ADDRESS A41445 02657821 PRGTCBF MVZ PRGPSWGO+1(1),TCBPKE(WKREG1) MOVE TCB PROTECT KEY A41445 02658021 LA WKREG3,PRGERRCP FETCH SVC INST ADDR A53803 02658100 ST WKREG3,PRGPSWGO+4 *AND STORE TO PSW A53803 02660821 LA WKREG3,PRGSVCRT FETCH SVC INST ADDR A55576 02662821 ST WKREG3,PRGPSWRT+4 *AND STORE TO PSW A55576 02663221 LPSW PRGPSWGO ENTER USER'S PROTECT KEY A41445 02663800 PRGERRCP SVC ERREXCP RETURN RQE A41445 02666500 LPSW PRGPSWRT ENTER ZERO PROTECT KEY A41445 02669200 PRGSVCRT SVC RETURN EXIT A41445 02671900 SPACE 1 02674600 DS 0F 02677300 IOBCCODE DC XL4'48000000' COMPLETION CODE 02680000 PRGMSK DC X'00FFFFFF' 02700000 DC X'FF' DAVV 02705018 DS 0D A41445 02707021 PRGPSWGO DC X'00040000' PSW TO ENTER USER'S A41445 02709021 DC F'0' PROTECT KEY FOR ERREXCP A53803 02711000 PRGPSWRT DC X'00040000' PSW TO ENTER ZERO A41445 02713021 DC F'0' PROTECT KEY FOR EXIT. A53803 02715000 SPACE 1 02717021 PATCH EQU * START OF PATCH AREA 02719021 DC (1024-(PATCH-PRGIOS))X'00' 02719421 END 02720000 ./ ADD SSI=01011145,NAME=IGE0100F,SOURCE=0 IEC3211B START X'00' 00050000 *A277600-277920,119600,185100,185200,277940,277960 @SA69284 00052021 *C278000 @SA69284 00054021 *A062100,158100,183100 @SA69507 00060021 *1171233000,234000,236000,237000,247000,595000 A42862 00100000 *0000377000-380000 M5877 00150000 ** A49456 00200000 *A180000-180420,C180500,C278000 A51574 00210000 SPACE 2 00250000 * 3211 ERROR RECOVERY PROCEDURE 00300000 *STATUS CHANGE LEVEL 002 OS/21.8 00350021 * FUNCTION ANALYZE STATUS AND SENSE DATA AND ATTEMPT ERROR 00400000 * RECOVERY. IF THE ERROR IS CORRECTED,PROCEED IN A 00450000 * NORMAL MANNER. IF A PERMANENT ERROR IS DETECTED 00500000 * INDICATE IT TO THE USER BY A COMPLETION CODE IN THE 00550000 * ECB AND A MESSAGE ON THE SYSTEM CONSOLE. 00600000 * 00650000 * MULTI-CONSOLE SUPPORT 00700000 * 00750000 * IF MULTI-CONSOLE SUPPORT IS IN SYSTEM THE 00800000 * ERROR RECOVERY PROCEDURE SETS UP FOR A 00850000 * BROADCAST WTO, WHICH WILL OUTPUT 'INTERVENTION 00900000 * REQUIRED' TO ALL DEVICES THAT MAKE A MESSAGE 00950000 * AVAILABLE TO THE SYSTEM OPERATOR. ALL OTHER 01000000 * ERRORS WILL BE RETRIED FIVE TIMES. IF RECOVERY, 01050000 * THE SYSTEM WILL CONTINUE-IF NO RECOVERY, ENSURES 01100000 * PERMANENT ERROR WILL BE INDICATED. 01150000 * ENTRY: ER3211B FROM IGE0000F 01200000 * INPUT REQUEST ELEMENT POINTER IN REGISTER 1 01250000 * OUTPUT NONE 01300000 * EXT REF NONE 01350000 * EXITS 1. ERREXCP EXIT TO I/O SUPERVISOR TO RE-EXECUTE 01400000 * THE CHANNEL PROGRAM IN ERROR. 01450000 * 2. SVC 3 EXIT TO RETURN CONTROL TO THE SUPERVISOR 01500000 * AND RELINQUISH CONTROL OVER THE TRANSIENT AREA 01550000 * 3. XCTL EXIT TO OUTBOARD RECORDING, STATISTICS UP- 01600000 * DATE OR WRITE TO OPERATOR. RETURN WILL BE MADE 01650000 * FROM THESE ROUTINES TO THE SUPERVISOR VIA SVC 3. 01700000 * ERR MSGS CONSOLE MESSAGES TO INDICATE ERROR CONDITIONS ARE 01750000 * 1. I/O ERR 01800000 * 2. INT REQ 01850000 * NOTES IOB EXCEPTION AND IOB ERROR FLAGS ARE INTERPRETED 01900000 * AS FOLLOWS 01950000 * IOBEX ON AND IOBERR ON, ERR RTNE IN CONTROL. 02000000 * IOBEX ON AND IOBERR OFF, PERMANENT ERROR. 02050000 * IOBEX OFF AND IOBERR OFF, NO ERR OR CORRECTED 02100000 * TABLES STATISTICS TABLE AND IOB 02150000 * OPERATION THIS ROUTINE HANDLES RECOVERY FROM CHANNEL 02200000 * ERRORS AND THE RECORDING OF CONTROL UNIT BUFFERS. * 02250000 * 02300000 * CHANNEL ERRORS 02350000 * THE ERPIB INTERROGATOR DETERMINES THE VALIDITY OF 02400000 * THE CAW,CSW,CHAN ADR, DEV ADR, BY INSPECTING THE 02450000 * ERPIB. IF ANY ARE INVALID, LOGOUT AND WTO ARE INIT- 02500000 * IATED. IF GOOD AND DEVICE STATUS IS IN THE CSW 02550000 * RETRIES ARE MADE UNDER CERTAIN CONDITIONS. UNIT ERRS 02600000 * HAVE PRIORITY THUS ARE RETURNED TO NORMAL FLOW. 02650000 * 02700000 * LOGOUT OF PARITY ERRORS * 02750000 * THE FOLLOWING INFORMATION WILL BE RECORDED ON SYS1.LOGREC FOR* 02800000 * EACH OF THREE BUFFER PARITY ERRORS: * 02850000 * PLB (EQUIPMENT CHECK WITH COMMAND RETRY)--RECORD CONTENTS OF * 02900000 * PRINT LINE BUFFER AND DIAGNOSTIC CHECK READ DATA * 02950000 * UCS (BUFFER PARITY CHECK WITH COMMAND RETRY)--RECORD CONTENTS* 03000000 * UCS BUFFER AND UCBUSCID FROM UCB * 03050000 * FCB (BUFFER PARITY CHECK WITH LINE POSITION)--RECORD CONTENTS* 03100000 * OF CARRIAGE CONTROL ADDRESS REGISTER (CCAR) AND UCBFCBID FROM* 03150000 * UCB * 03200000 * * 03250000 * THE ABOVE INFORMATION AS WELL AS THE DEVICE ADDRESS WILL BE * 03300000 * PASSED TO MODULE IGE0625F FOR RECORDING * 03350000 *********************************************************************** 03400000 EJECT 03450000 SPACE 2 03500000 * TITLE ' INPUT OUTPUT CONTROL BLOCK (IOB) ' 03550000 * 03600000 * 03650000 * ***************************************** 03700000 * * * * * * * 03750000 * 0 *FLG1*FLG2* SENSE *ECB * ECB PTR * 03800000 * * * * *CODE* * 03850000 * ***************************************** 03900000 * * * 03950000 * 8 * CHANNEL STATUS WORD * 04000000 * * * 04050000 * ***************************************** 04100000 * * * * * * 04150000 * 16 * CC * START *WGHT* DCB PTR * 04200000 * * * * * * 04250000 * ***************************************** 04300000 * * * * * * 04350000 * 24 *MODF* RESTART * INCR (2)* ERR CNTS* 04400000 * * * * *TP 1* * 04450000 * ***************************************** 04500000 * * * 04550000 * 32 * M * B * B * C * C * H * H * R * 04600000 * * * 04650000 * ***************************************** 04700000 * 04750000 * 04800000 * IOB DEFINITION 04850000 IOBFL1 EQU 0 FLAGS 1 04900000 IOBFL2 EQU 1 FLAGS 2 04950000 IOBSNS EQU 2 SENSE DATA 05000000 IOBCOD EQU 4 ECB CODE 05050000 IOBFL3 EQU 8 IOB FLAG NO 3 05100000 IOBCSW EQU 8 CSW STORAGE 05150000 IOBCC EQU 16 CONDITION CODE 05200000 IOBDCB EQU 21 DCB POINTER 05250000 IOBMDB EQU 24 MODIFIER BYTE 05300000 IOBRST EQU 25 RESTART POINTER 05350000 IOBECT EQU 30 ERROR COUNTS 05400000 IOBCC1 EQU X'10' CONDITION CODE OF SIO 05450000 IOSTUS EQU X'10' STATUS BIT 05500000 IOCLBT EQU X'00' CLEAR BYTE 05550000 SPACE 2 05600000 * THESE FLAGS ARE IN IOB-FLAG 1 05650000 IOBCP1 EQU X'80' TYPE OF CHANNEL PROGRAM 05700000 IOBCP2 EQU X'40' TYPE OF CHANNEL PROGRAM 05750000 IOBERR EQU X'20' IOB ERROR FLAG 05800000 IOBMD1 EQU X'10' MOD1 FLAG-POSITIONING 05850000 IOBMD2 EQU X'08' MOD2 FLAG- CRC 05900000 IOBSRS EQU X'01' START/RESTART FLAG 05950000 IOBEX EQU X'04' EXCEPT FLAG 06000000 IOBEXE EQU IOBEX+IOBERR IOB EX + IOB ERROR FLAG 06050000 SPACE 1 06100000 * THESE FLAGS ARE IN IOB-FLAG 2 06150000 IOBHLT EQU X'80' HALT I/O ISSUED FLAG 06200000 IOBRHA EQU X'10' BYPASS USER KEY IN CAW 06210021 SPACE 1 06250000 * THESE FLAGS ARE IN IOB-FLAG 3 06300000 IOBMCS EQU X'80' MCS FLAG 06350000 IOBENT EQU X'40' IOB ENTRY BIT 06400000 IOBLCK EQU X'20' LOAD CHECK COUNT 06450000 IOBBOE EQU X'10' BUS OUT ERROR CNT 06500000 IOBBUF EQU X'08' BUFFER FLAG 06550000 IOBMSG EQU X'04' MESSAGE TYPE 06600000 IOBTPR EQU X'02' TPERR FLAG 06650000 IOBLOG EQU X'01' LOGOUT FLAG 06700000 SPACE 2 06750000 * THESE FLAGS ON IN IOBECT FIELD 06800000 IOBFCB EQU X'08' FORMS CONTROL BUFFER COUNT 06850000 IOBUCS EQU X'04' UNIVERSAL CHARACTER SET COUNT 06900000 IOBCCH EQU X'02' CHANNEL ERROR COUNT 06950000 IOBPLB EQU X'01' PRINT LINE BUFFER COUNT M1785 07000000 SPACE 2 07050000 * REGISTER DEFINITION 07100000 ERREG3 EQU 0 WORK REG 07150000 TSTREG EQU 1 TWELVE STAR REG. 07200000 ERREG2 EQU 2 WORK REG 07250000 DCBREG EQU 3 DCB ADDRESS REG 07300000 CCWREG EQU 4 CCW ADDRESS REG 07350000 ERREG5 EQU 5 WORK REG 07400000 ERPIBRG EQU 6 ERPIB PTR REG 07450000 UCBREG EQU 7 UCB ADDRESS REG 07500000 COMREG EQU 8 COMMUNICATION TABLE REG 07550000 SAVREG EQU 9 SAVE REG. 07600000 IOBRG EQU 10 IOB ADDRESS REG 07650000 ERREG4 EQU 11 WORK REG 07700000 ERRLNK EQU 12 LINK REG 07750000 ERREG1 EQU 13 WORK REG 1 07800000 ERRETR EQU 14 RETURN REG 07850000 BASREG EQU 15 BASE REG. 07900000 SPACE 2 07950000 * ECB DEFINITIONS 08000000 ECBFL EQU 0 FLAGS 08050000 SPACE 2 08100000 * DCB DEFINITION 08150000 DCBFL EQU 44 FLAGS 08200000 DCBPER EQU X'C0' PERMANENT ERROR FLAGS 08250000 DCBEX EQU X'40' EXCEPTION CONDITION 08300000 DCB09 EQU X'20' CHANNEL 9 08350000 DCB12 EQU X'10' CHANNEL 12 08400000 SPACE 2 08450000 * TWELVE STAR DEFINITION 08500000 TSTLNK EQU 0 FORWARD 12* LINK 08550000 TSTUCB EQU 2 UCB POINTER 08600000 TSTIOB EQU 5 IOB POINTER 08650000 TSTPR EQU 8 PRIORITY OF ENTRY 08700000 TSTDEB EQU 9 DEB POINTER 08750000 SPACE 2 08800000 * STATUS INDICATORS 08850000 CSWSMD EQU X'40' STATUS MODIFIER 08900000 CSWCHE EQU X'08' CHANNEL END 08950000 CSWUCK EQU X'02' UNIT CHECK 09000000 CSWUEX EQU X'01' UNIT EXCEPTION 09050000 CSWIL EQU X'40' WRONG LENGTH IND. 09100000 CSWPC EQU X'20' PROGRAM CHECK 09150000 CSWPCK EQU X'10' PRTECTION CHECK 09200000 CSWCCK EQU X'01' CHAINING CHECK 09250000 CSWCDCK EQU X'08' CHANNEL DATA CHECK 09300000 CSWCCCK EQU X'04' CHANNEL CNTRL CHECK 09350000 CSWICCK EQU X'02' INTRFCE CNTRL CHECK 09400000 SPACE 2 09450000 * SENSE INDICATORS 09500000 CMNDREJ EQU X'80' CMNDREJ ON CHAN9 09550000 INTREQ EQU X'40' INTERVENTION REQUIRED SENSE 09600000 EQCK EQU X'10' EQUIPMENT CHECK 09650000 BUFPAR EQU X'04' BUFFER PARITY 09700000 CHAN9 EQU X'01' CHAN 9 SENSE BIT 09750000 CMDRTY EQU X'80' COMMAND RETRY 09800000 LNEPOS EQU X'10' LINE POSITION 09850000 CMDSUP EQU X'04' COMMAND SUPRESS 09900000 BUFONY EQU LNEPOS+CMDRTY BUFFER PARITY ONLY 09950000 LDCHK EQU X'02' LOAD CHECK 10000000 SPACE 2 10050000 * UCB DEFINITION 10100000 UCBUA EQU 4 UNIT ADDRESS 10150000 UCBFL1 EQU 6 UCB FLAGS 10200000 UCBSTI EQU 9 STATISTICS POINTER 10250000 UCBLTS EQU 14 LAST RQE FIELD 10300000 UCBSNSPT EQU 24 U UCB SENSE ADDRESS 10350000 UCBXTADR EQU 28 UCB EXTENSION ADDRESS 10400000 UCBBSY EQU X'80' BUSY FLAG 10450000 UCBNRY EQU X'40' UCB NOT READY 10500000 LTSZER EQU X'00' ZERO RQE FIELD 10550000 SPACE 2 10600000 * UCB EXTENSION 10650000 UCBUCSID EQU 0 UCS ID 10700000 UCBUCSOP EQU 4 UCS FLAGS 10750000 UCBERCNT EQU 7 RECORD COUNT 10800000 UCBFCBID EQU 8 FCB ID 10850000 UCBERADR EQU 12 LOGOUT AREA 10900000 UCBUCSPE EQU X'01' PARITY ERROR 10950000 SPACE 2 11000000 * CVT DEFINITIONS 11050000 LOC016 EQU 16 COMMUNICATION TABLE 11100000 VECTXL EQU 44 VECTOR TO XCTL RNT. 11150000 VECT68 EQU 68 INTERPRETER ROUTINE 11200000 VECT72 EQU 72 WRITE TO OPERATOR ROUTINE 11250000 UCMADR EQU 100 UCM OFFSET IN CVT 11300000 STATAB EQU 112 INDEX TO STATISTICS TABLE 11350000 IBPTR EQU 116 PTR TO PTR TO PTR TO ERPIB CCHA 11400000 CVTDCB EQU X'74' CVT OFFSET IN DCB 11450000 SPACE 2 11500000 * THE FOLLOWING EQU'S REFER TO THE RECORD BUILT FOR BUFFER 11550000 * PARITY ERRORS 11600000 SPACE 1 11650000 UCSRSZE EQU 544 UCS RECORD SIZE 11700000 FCBRSZE EQU 208 FCB RECORD SIZE M1785 11750000 PLBRSZE EQU 188 PLB RECORD SIZE 11800000 ERRCNT EQU 10 PLB ERROR COUNTER 11850000 CHRCNT EQU 150 PLB CHAR COUNTER 11900000 SAVECSW EQU 560 SAVE AREA FOR CSW A42862 11950000 SAVERST EQU 540 SAVE- RESTART ADDR @SA69284 11960021 CCW1 EQU 544 FIRST CCW A42862 12000000 DATA1 EQU 28 DATA AREA 12050000 SAVESNS EQU 552 SAVE AREA FOR SENSE A49456 12100000 TYPFLG EQU 568 TYPE FLAG A42862 12150000 UCSTYP EQU X'80' UCS TYPE 12200000 FCBTYP EQU X'40' FCB TYPE 12250000 PLBTYP EQU X'20' PLB TYPE M1785 12300000 CHKTYP EQU X'10' CHECK DATA A49456 12350000 CLRTYP EQU X'00' CLEAR FLAG A49456 12400000 RCDID EQU X'04' RECORD ID 12450000 RCDSIZE EQU 0 RECORD SIZE AREA 12500000 TPRTNID EQU 3 RETURN ID 12550000 TPRCDID EQU 5 RECORD ID 12600000 UNITADR EQU 24 UNIT ADDRESS 12650000 RCDCNT EQU 26 RECORD COUNTER 12700000 RCDFLG EQU 27 RECORD FLAG 12750000 UCSID EQU 540 UCSID AREA A42862 12800000 FCBID EQU 29 FCBID AREA 12850000 UCSFLG EQU X'01' UCS RECORD 12900000 FCBFLG EQU X'02' FCB RECORD 12950000 PLBFLG EQU X'03' PLB RECORD 13000000 SPACE 2 13050000 * ERPIB DEFINITION 13100000 COMADVAL EQU X'04' COMMAND ADDRESS VALID 13150000 NORETRY EQU X'01' UNCONDITIONAL NO RETRY 13200000 PGMFLGS EQU X'04' PROGRAM FLGS DISP IN ERPIB 13250000 VALIDIND EQU X'06' VALIDITY INDICATORS ERPIB 13300000 RETRYCD EQU X'07' RETRY CODE OFFSET IN ERPIB 13350000 TERMCODE EQU X'07' TERMINATION BITS IN ERPIB 13400000 RTRYCOD1 EQU X'01' RETRY CODE TEST CONSTANT 13450000 RTRYCOD2 EQU X'02' RETRY CODE TEST CONSTANT 13500000 RTRYCOD3 EQU X'03' RETRY CODE TEST CONSTANT 13550000 RTRYCOD4 EQU X'04' RETRY CODE TEST CONSTANT 13600000 TRMCOD80 EQU X'80' TERMINATION CODE 1 13650000 TRMCOD40 EQU X'40' TERMINATION CODE2 13700000 ENDTBL EQU X'FF' END OF ERPIB TABLE 13750000 SPACE 2 13800000 * MISCELLANEOUS DEFINITIONS 13850000 CMNDCD EQU 0 CCW COMMAND CODE DISP 13900000 INCR EQU 1 CONSTATN OF ONE 13950000 FVRTRY EQU 5 FIVE RETRIES 14000000 WRITE EQU X'01' WRITE OP CODE 14050000 PLBCMD EQU X'02' READ PLB CMD A49456 14100000 CONTRL EQU X'03' CONTROL OP CODE 14150000 NOP EQU X'03' NOP COMMAND CODE 14200000 CHKCMD EQU X'06' CHECK READ CMD A49456 14250000 TIC EQU X'07' TEST FOR TIC 14300000 SIOCC1 EQU X'80' WAS CSW STORED ON SIO 14350000 EXCPER EQU 15 ERROR EXCP 14400000 WTORTN EQU 253 LOAD NAME TO WTO RTN. 14450000 STATUP EQU 254 LOAD NAME STAT UPDATE 14500000 EJECT 14550000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 14600000 * * 14650000 * THIS IS ENTRY TO THE 3211 ERROR ROUTINE 14700000 * * 14750000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 14800000 * * 14850000 * WHEN ENTERED THE IOBEX AND THE IOBERR FLAGS WILL BE SET TO 1 BY * 14900000 * THE ERROR ROUTINE. * 14950000 * * 15000000 * ON RETURN THESE TWO FLAGS SHOULD BE INTERPRETED AS FOLLOWS. * 15050000 * IOBEX ON AND IOBERR ON - IOB IN CONTROL BY THE ERROR ROUTINE.* 15100000 * IOBEX ON AND IOBERR OFF - PERMANENT ERROR * 15150000 * IOBEX OFF AND IOBERR OFF - ERROR CORRECTED * 15200000 * * 15250000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 15300000 SPACE 1 15350000 USING ER3211B,15 15400000 ER3211B L IOBRG,TSTIOB-1(TSTREG) IOB ADDRESS 15450000 LH UCBREG,TSTUCB(TSTREG) UCB ADDRESS 15500000 L COMREG,LOC016 CVT ADDRESS 15550000 L CCWREG,IOBCSW(IOBRG) GET ADDRESS OF CCW 15600000 LA CCWREG,0(CCWREG) ZERO HIGH ORDER BYTE 15650000 SH CCWREG,ERRCN1 BACK UP BY 8 15700000 L ERREG5,UCBXTADR(UCBREG) GET ADDR UCB EXTENSION 15750000 L ERREG1,UCBERADR(ERREG5) GET ADDR BUFFER AREA 15800000 NI IOBFL2(IOBRG),X'FF'-IOBRHA CLR KEY-0 FLAG @SA69507 15810021 TM IOBCSW+5(IOBRG),CSWCCCK+CSWICCK CH/INTERFACE CK 15850000 BC 7,ERPIBFND YES-FIND ERPIB 15900000 TM IOBFL3(IOBRG),IOBBUF TEST FOR BUFFER INFO. 15950000 BC 1,BUFLOG YES--LOGOUT 16000000 LA ERREG1,0(ERREG1) ZERO HIGH ORDER BYTE 16050000 LTR ERREG1,ERREG1 TEST FOR ZERO ADDRESS 16100000 BC 8,ERR070A YES-PERM ERROR 16150000 MVI TYPFLG(ERREG1),CLRTYP CLEAR TYPE FLAG A49456 16200000 SPACE 1 16250000 * TEST FOR PLB READ 16300000 SPACE 1 16350000 TM IOBECT(IOBRG),IOBPLB TEST FOR PLB READ M1785 16400000 BC 8,ERR020 NO,CHECK UCSB M1785 16450000 SPACE 1 16500000 ERR020D LA ERREG2,CHKCCW GET CCW ADDR A49456 16550000 BAL ERRLNK,READBUF GO SET FLAGS-SET UP CCW 16600000 MVI RCDFLG(ERREG1),PLBFLG INITIALIZE RECORD FLAG 16650000 LA ERREG2,PLBRSZE SET ERREG2 TO RECORD SIZE 16700000 NI IOBECT(IOBRG),X'FF'-IOBPLB CLR READ FLAG M1785 16750000 BC 15,ERR020C READ SELECTED BUFFER M1785 16800000 ERR020 TM IOBECT(IOBRG),IOBUCS TEST FOR UCSB READ M1785 16850000 BC 8,ERR020A NO,READ FCB M1785 16900000 LA ERREG2,UCSCCW GET ADDR CCW 16950000 BAL ERRLNK,READBUF GO SET FLAGS-SET UP CCW 17000000 MVI RCDFLG(ERREG1),UCSFLG INITIALIZE RECORD FLAG 17050000 LA ERREG2,UCSRSZE GET RECORD SIZE 17100000 MVC UCSID(4,ERREG1),UCBUCSID(ERREG5) MOVE UCSID TO RECORD 17150000 NI IOBECT(IOBRG),X'FF'-IOBUCS CLEAR READ FLAG M1785 17200000 BC 15,ERR020C GO SET RESTART 17250000 SPACE 1 17300000 ERR020A EQU * 17350000 TM IOBECT(IOBRG),IOBFCB TEST FOR FCB READ A49456 17400000 BC 8,ERR070A NO,PERM ERROR A49456 17450000 LA ERREG2,FCBCCW GET CCW ADDR 17500000 BAL ERRLNK,READBUF GO SET FLAGS-SET UP CCW 17550000 MVI RCDFLG(ERREG1),FCBFLG INITIALIZE RECORD FLAG 17600000 LA ERREG2,FCBRSZE GET RECORD SIZE 17650000 XC UCBFCBID(4,ERREG5),UCBFCBID(ERREG5) ZERO FCBID 17700000 * THIS WILL INDICATE TO DATA MANAGEMENT TO RELOAD 17750000 * THE FCB AT NEXT OPEN 17800000 NI IOBECT(IOBRG),X'FF'-IOBFCB CLEAR READ FLAG M1785 17850000 ERR020C ST ERREG4,IOBMDB(IOBRG) SET RESTART ON NEW CCW 17900000 MVI IOBCOD(IOBRG),X'7F' SET ECB CODE TO NORMAL M1785 17950000 STH ERREG2,RCDSIZE(ERREG1) STORE RECORD SIZE 18000000 ERR020E EQU * 18010000 TM IOBSNS(IOBRG),INTREQ INT REQUIRED 18020000 BC 8,ERR020F NO, LEAVE MSG BIT ON 18030000 NI IOBFL3(IOBRG),X'FF'-IOBMSG ISSUE INT REQ MSG 18040000 BC 15,ERR072 CALL WTO 18042000 ERR020F SVC EXCPER 18050000 SVC 3 18100000 SPACE 1 18150000 * INITIALIZE FLAGS,SET UP CCW AND SAVE CSW FOR RECORDING 18200000 SPACE 1 18250000 READBUF EQU * 18300000 OI IOBFL2(IOBRG),IOBRHA EX ERP PGM IN KEY-0 @SA69507 18310021 OI IOBFL1(IOBRG),IOBSRS SET RESTART FLAG 18350000 XC TPRTNID(2,ERREG1),TPRTNID(ERREG1) ZERO RETURN IND. 18400000 MVC UNITADR(2,ERREG1),UCBUA(UCBREG) GET UNIT ADDR 18450000 MVC SAVECSW(7,ERREG1),IOBCSW+1(IOBRG) SAVE CSW 18500000 MVC SAVERST(1,ERREG1),IOBFL1(IOBRG) SAVE RST FLAG @SA69284 18510021 MVC SAVERST+1(3,ERREG1),IOBRST(IOBRG) SAVE ADDR @SA69284 18520021 L ERREG4,UCBSNSPT(UCBREG) GET ADDR SENSE AREA A49456 18550000 MVC SAVESNS(6,ERREG1),0(ERREG4) SAVE SENSE A49456 18600000 MVC RCDCNT(1,ERREG1),UCBERCNT(ERREG5) MOVE IN RECORD CNT 18650000 MVI TPRCDID(ERREG1),RCDID INSERT RECORD ID 18700000 ERR056A MVC CCW1(8,ERREG1),0(ERREG2) MOVE CCW'S TO USER AREA A49456 18750000 LA ERREG4,DATA1(ERREG1) GET DATA ADDR M1785 18800000 CLI CCW1(ERREG1),X'02' TEST FOR PLB CMD A49456 18850000 BC 7,ERR056B NO,BYPASS CCW2 A49456 18900000 LA ERREG4,CHRCNT(ERREG4) GET ADDR FOR PL DATA M1785 18950000 ERR056B EQU * 19000000 O ERREG4,CCW1(ERREG1) GET OP CODE A49456 19050000 ST ERREG4,CCW1(ERREG1) STORE COMPLETED CCW A49456 19100000 OI IOBFL3(IOBRG),IOBBUF SET BUFFER FLAG M1785 19150000 LA ERREG4,CCW1(ERREG1) GET CCW ADDR 19200000 BCR 15,ERRLNK RETURN TO FINISH RECORD 19250000 SPACE 1 19300000 * SET MESSAGE AND LOGOUT FLAGS AS NECESSARY AND XCTL TO NEXT MODULE 19350000 ERR070 BAL ERRLNK,TESTMCS 19400000 ERR070A OI IOBFL3(IOBRG),IOBLOG INDICATE LOGOUT 19450000 ERR071 OI IOBFL3(IOBRG),IOBMSG INDICATE PERM ERR MSG 19500000 ERR072 LA ERREG1,WTORTN GET LOAD NAME WTO RTN 19550000 BC 15,ERR090A XCTL WTO 19600000 SPACE 1 19650000 * PERMANENT ERROR--NO MESSAGE 19700000 SPACE 1 19750000 ERR073 NI IOBFL1(IOBRG),X'FF'-IOBERR INDICATE PERM ERROR 19800000 OI IOBFL3(IOBRG),IOBLOG INDICATE LOGOUT 19850000 LA ERREG1,STATUP GET LOAD NAME STAT UPDATE 19900000 XC IOBECT(2,IOBRG),IOBECT(IOBRG) CLEAR ERR COUNTS 19950000 BC 15,ERR090A GO TO XCTL 20000000 SPACE 1 20050000 * SET UP FOR 5 RETRIES IF MCS IN SYSTEM AND THIS IS A CONSOLE 20100000 SPACE 1 20150000 ERR075 LA ERRLNK,ERR070A SET RETN FROM MCS TEST 20200000 XC 0(8,ERPIBRG),0(ERPIBRG) ZERO ERPIB 20250000 TESTMCS TM IOBFL3(IOBRG),IOBMCS TEST FOR MCS 20300000 BCR 8,ERRLNK NO-TO NORMAL FLOW 20350000 TM IOBECT+1(IOBRG),FVRTRY RETRIED FIVE TIMES 20400000 BC 1,ERR073 YES-RETURN 20450000 IC ERREG4,IOBECT+1(0,IOBRG) LOAD ERR CNT 20500000 LA ERREG4,INCR(ERREG4) INCREMENT ERR CTR 20550000 STC ERREG4,IOBECT+1(0,IOBRG) STORE NEW ERR CNT 20600000 BC 15,ERR080A TEST IF CCW ADDR VALID 20650000 SPACE 1 20700000 * SET UP RETRY OF CHANNEL ERRORS 20750000 SPACE 1 20800000 ERR080 TM IOBECT(IOBRG),IOBCCH SECOND OCCURENCE 20850000 BC 1,ERR070A YES-PROVIDE OPERATOR MSG 20900000 OI IOBECT(IOBRG),IOBCCH SET ERROR COUNT 20950000 ERR080A LTR CCWREG,CCWREG CCW PTR ZERO OR NEGATIVE 21000000 BC 2,ERR081 NO-RETRY COMMAND 21050000 NI IOBFL1(IOBRG),X'FF'-IOBSRS YES-START AT TOP 21100000 ERR081 OI IOBFL3(IOBRG),IOBENT SET ENTRY FLAG 21150000 SVC EXCPER 21200000 SVC 3 21250000 SPACE 1 21300000 * SEARCH FOR CORRECT ERPIB 21350000 SPACE 1 21400000 ERPIBFND L ERPIBRG,IBPTR(COMREG) PTR TO PTR TO PTR TO ERPIB 21450000 L ERPIBRG,0(ERPIBRG) PTR TO PTR TO ERPIB 21500000 L ERPIBRG,0(ERPIBRG) PTR TO ERPIB 21550000 ERCMPR CH UCBREG,2(ERPIBRG) IS THIS ERPIB FOR PRNTR 21600000 BC 8,ERPIBTST YES, GO CHECK ERPIB 21650000 LA ERPIBRG,8(ERPIBRG) ADDR OF NEXT ERPIB 21700000 TM 0(ERPIBRG),ENDTBL END OF ERPIB TABLE 21750000 BC 8+4,ERCMPR NO-TEST NEXT ERPIB 21800000 BC 1,ERR070 YES-LOG OUT 21850000 SPACE 1 21900000 * TEST IF RETRY POSSIBLE ON ICC OR CCC BY EXAMINING RETRY AND 21950000 * TERMINATION CODES IN ERPIB. THE ACTIONS FOR THESE CODES ARE 22000000 * STANDARD FOR THE 2211 22050000 SPACE 1 22100000 ERPIBTST LA ERRLNK,ERR075 SET RETN FOR MCS TEST 22150000 CLI IOBCOD(IOBRG),X'7E' IS THIS INTERCEPT CON 22200000 BCR 8,ERRLNK YES-PERMANENT ERROR 22250000 TM PGMFLGS(ERPIBRG),NORETRY UNCONDITIONAL NO RETRY SET 22300000 BCR 1,ERRLNK YES-PERMANENT ERROR 22350000 TM PGMFLGS(ERPIBRG),SIOCC1 WAS CSW STORED ON SIO 22400000 BC 1,CHERR YES-RETRY 22450000 TM VALIDIND(ERPIBRG),COMADVAL COMMAND ADDR VALID 22500000 BCR 8,ERRLNK NO-ZERO ERPIB/TEST IF MCS 22550000 CLI 0(CCWREG),NOP NOP COMMAND 22600000 BC 8,CHERR YES-RETRY 22650000 TM RETRYCD(ERPIBRG),RTRYCOD4 RETRY CODE>=4 22700000 BC 8,ERR086 NO-TEST FOR CODE<4 22750000 TM RETRYCD(ERPIBRG),RTRYCOD3 RETRY CODE=7 22800000 BC 1,ERR087 YES-BRANCH TEST FURTHER 22850000 BC 8,CHERR BRANCH IF CODE=4 22900000 TM RETRYCD(ERPIBRG),RTRYCOD2 RETRY CODE=2 22950000 BCR 1,ERRLNK YES-PERM ERROR 23000000 SPACE 1 23050000 * RETRY CODE = 011 OR 101 23100000 ERR085 LR ERREG1,ERRLNK SET RETN FROM OP CODE TEST 23150000 LR ERREG2,ERRLNK SET RETN FROM TERM CODE TEST 23200000 BC 15,ERR088 23250000 SPACE 1 23300000 ERR086 TM RETRYCD(ERPIBRG),RTRYCOD3 RETRY CODE =3 23350000 BC 1,ERR085 YES-BRANCH 23400000 BCR 8,ERRLNK BRANCH CODE=0-PERM ERROR 23450000 TM RETRYCD(ERPIBRG),RTRYCOD1 RETRY CODE=1 23500000 BC 1,CHERR YES-BRANCH FOR RETRY 23550000 SPACE 1 23600000 * RETRY CODE = 010 23650000 CLI CMNDCD(CCWREG),WRITE TEST FOR WRITE COMMAND 23700000 BC 8,CHERR YES-GO RETRY 23750000 ERR086A LA ERREG2,ERR089 SET RETN FROM TERM CODE TEST 23800000 LA ERREG1,ERR088A SET RETN FROM OP CODE TEST 23850000 BC 15,ERR088 23900000 SPACE 1 23950000 * SET UP TO RETRY IF NOT SECOND OCCURRENCE 24000000 SPACE 1 24050000 CHERR XC 0(8,ERPIBRG),0(ERPIBRG) ZERO ERPIB 24100000 LA ERRLNK,ERR080 SET ERRLNK FOR RETRY 24150000 TM 0(CCWREG),TIC IS FIRST CCW A TIC 24200000 BC 5,TESTMCS NO-RETRY 24250000 MVC IOBRST(3,IOBRG),1(CCWREG) INITIALIZE RESTART ADDRESS 24300000 BC 15,TESTMCS GO RETRY THE REQUEST 24350000 SPACE 1 24400000 * RETRY CODE = 111 24450000 ERR087 TM CMNDCD(CCWREG),X'03' TEST FOR CONTROL COMMAND 24500000 BC 1,ERR086A YES-BRANCH TO SET RETN CODES 24550000 LR ERREG2,ERRLNK SET RETN FROM TERM CODE TEST 24600000 LA ERREG1,ERR088A SET RETN FROM OP CODE TEST 24650000 ERR088 TM CMNDCD(CCWREG),CONTRL TEST OP CODE 24700000 BCR 1,ERREG1 BRANCH IF CONTROL COMMAND 24750000 TM CMNDCD(CCWREG),WRITE TEST OP CODE 24800000 BC 8,CHERR BRANCH IF READ 24850000 SPACE 1 24900000 * TEST TERMINATION CODE TO DETERMINE RETRY 24950000 SPACE 1 25000000 ERR088A TM TERMCODE(ERPIBRG),TRMCOD40 TEST FOR TERMCODE=01 25050000 BC 8,CHERR NO-RETRY 25100000 TM TERMCODE(ERPIBRG),TRMCOD80 TEST FOR TERMCODE=10 25150000 BC 1,CHERR YES-RETRY 25200000 BCR 15,ERREG2 25250000 SPACE 1 25300000 * SET UP FOR INTERVENTION REQUIRED MESSAGE 25350000 SPACE 1 25400000 ERR089 CLI UCBLTS(UCBREG),LTSZER FIRST BYTE OF UCBLTS ZERO 25450000 BC 7,ERR089B ZERO THE ERPIB 25500000 SPACE 1 25550000 ERR089A STH TSTREG,UCBLTS(UCBREG) RESTORE LAST RQE POINTER 25600000 ERR089B TM IOBECT(IOBRG),IOBCCH ERROR COUNT OF ONE 25650000 BC 1,ERR075 YES-PERM ERROR 25700000 XC 0(8,ERPIBRG),0(ERPIBRG) ZERO ERPIB 25750000 OI IOBECT(IOBRG),IOBCCH SET ERR COUNT 25800000 BC 15,ERR072 ISSUE INT REQ MESSAGE 25850000 SPACE 1 25900000 SPACE 1 25950000 * BUILD MORE CCW'S IF NECESSARY AND THEN GO TO TPERR FOR 26000000 * RECORDING 26050000 SPACE 1 26100000 BUFLOG EQU * 26150000 NI IOBFL3(IOBRG),X'FF'-IOBBUF CLR BUFFER FLAG M1785 26200000 CLI 0(CCWREG),CHKCMD CHECK DATA A49456 26250000 BC 8,ERR090B YES,READ PLB A49456 26300000 CLI 0(CCWREG),PLBCMD PLB TYPE A49456 26350000 BC 7,ERR09E NO,CHECK OTHER TYPES A49456 26400000 SR ERREG2,ERREG2 SET ERROR COUNT 26450000 LA ERREG3,CHRCNT-1 SET CHAR COUNT 26500000 LA ERREG4,DATA1(ERREG1) POINT TO DIAG RD DATD 26550000 ERR09D CLI 0(ERREG4),X'04' TEST FOR PRINT ERROR M1785 26600000 BC 4,ERR09B YES-MOVE CHAR TO BUFFER 26650000 MVI CHRCNT(ERREG4),X'40' NO-BLANK CHAR 26700000 ERR09C LA ERREG4,1(ERREG4) ADV CHAR POINTER 26750000 BCT ERREG3,ERR09D LAST CHAR 26800000 BC 15,ERR09E YES,CHECK OTHER TYPES M1785 26850000 ERR09B LA ERREG2,1(ERREG2) ADV ERR POINTER 26900000 STC ERREG2,STCNT SAVE ERROR COUNT M1785 26950000 LA ERREG2,DATA1+CHRCNT-1(ERREG2,ERREG1) ERR CHR M1785 27000000 MVC 0(1,ERREG2),CHRCNT(ERREG4) PLB CHAR TO BUFFER 27050000 SR ERREG2,ERREG2 CLR CHAR ADDR M1785 27100000 IC ERREG2,STCNT RESTORE ERR COUNT M1785 27150000 CLI STCNT,ERRCNT TEN ERRORS? M1785 27200000 BC 4,ERR09C NO-CHECK NEXT CHAR 27250000 ERR09E TM IOBECT(IOBRG),IOBUCS TEST FOR UCSB FLAG M1785 27300000 BC 1,ERR092 YES,SET UP FOR UCSB M1785 27350000 MVC IOBCSW+1(7,IOBRG),SAVECSW(ERREG1) RESTORE CSW M1785 27400000 L ERREG4,UCBSNSPT(UCBREG) GET ADDR SENSE A49456 27450000 MVC 0(6,ERREG4),SAVESNS(ERREG1) RESTORE UCB SNS A49456 27500000 MVC IOBSNS(2,IOBRG),SAVESNS(ERREG1) RESTORE IOB SNS A49456 27550000 TM TYPFLG(ERREG1),UCSTYP UCSB TYPE M1785 27600000 BC 1,ERR094 YES,BUILD RECORD M1785 27650000 ERR09A EQU * 27700000 MVC TPRTNID(2,ERREG1),WTO MOVE IN RETURN ID 27750000 TM IOBSNS(IOBRG),X'10' TEST FOR EQC @SA69284 27760021 BC 8,ERR090 NO-SKIP ADDTNL CHECKS @SA69284 27770021 TM IOBSNS+1(IOBRG),X'70' TEST FOR INT-REQ ERRS @SA69284 27780021 BC 7,ERR010 YES-CLEAR MSG BIT @SA69284 27790021 ERR090 OI IOBFL3(IOBRG),IOBMSG NO-SET MSG FLAG @SA69284 27792021 BC 15,ERR091 SKIP ADDR RESTORE @SA69284 27794021 ERR010 MVC IOBFL1(1,IOBRG),SAVERST(ERREG1) RESTORE FLAG @SA69284 27796021 MVC IOBRST(3,IOBRG),SAVERST+1(ERREG1) RESTORE ADDR @SA69284 27798021 ERR091 OI IOBFL3(IOBRG),IOBLOG SET LOGOUT FLAG @SA69284 27800021 MVI TPRCDID(ERREG1),RCDID INSERT RECORD ID 27850000 LH ERREG1,TPERR GET LOAD NAME TPERR 27900000 ERR090A L ERRETR,VECTXL(COMREG) GET ADDR XCTL ROUTINE 27950000 BCR 15,ERRETR XCTL TPERR 28000000 SPACE 1 28050000 * SET UP FOR PLB ERROR 28100000 SPACE 1 28150000 ERR090B LA ERREG2,PLBCCW GET CCW ADDR A49456 28200000 BAL ERRLNK,ERR056A GO SET UP CCW A49456 28250000 ST ERREG4,IOBMDB(IOBRG) SET RESTART ON NEW CCW A49456 28300000 BC 15,ERR020E READ PLB A49456 28350000 SPACE 1 28400000 * SET UP FOR UCS ERROR 28450000 SPACE 1 28500000 ERR092 LA ERREG2,UCSCCW GET CCW ADDR 28550000 BAL ERRLNK,ERR056A GO SET UP CCW 28600000 NI IOBECT(IOBRG),X'FF'-IOBUCS TURN OFF IOBUCS 28650000 MVI TYPFLG(ERREG1),UCSTYP SET UCS TYPE A49456 28700000 ERR092A ST ERREG4,IOBMDB(IOBRG) SET RESTART ON NEW CCW 28750000 BC 15,ERR090 GO TO TPERR M1785 28800000 SPACE 28850000 * FORMAT UCSB RECORD 28900000 SPACE 1 28950000 ERR094 NI TYPFLG(ERREG1),X'FF'-UCSTYP TURN OFF UCS TYPE 29000000 MVI RCDFLG(ERREG1),UCSFLG INITIALIZE RECORD FLAG 29050000 LA ERREG2,UCSRSZE GET RECORD SIZE 29100000 ERR095 STH ERREG2,RCDSIZE(ERREG1) STORE RECORD SIZE 29150000 MVC UCSID(4,ERREG1),UCBUCSID(ERREG5) MOVE UCSID TO RECORD 29200000 BC 15,ERR09A SET RTNID FOR WTO 29250000 SPACE 1 29300000 SPACE 1 29350000 WTO DC H'0253' LOAD NAME WTO RTN 29400000 TPERR DC H'6256' LOAD NAME FOR TPERR 29450000 ERRCN1 DC AL2(8) 29500000 UCSCCW DC X'0A00000020000200' READ UCS A42862 29550000 FCBCCW DC X'12000000200000B4' READ FCB M1785 29600000 CHKCCW DC X'0600000020000096' CHECK READ A49456 29650000 PLBCCW DC X'0200000020000096' READ PLB A49456 29700000 STCNT DS H ERROR COUNT SAVE AREA 29750000 DC C'IGE0100F 218 4/8/74' 29760021 END 29800000 ./ ADD SSI=01010462,NAME=IGE0100I,SOURCE=0 TITLE 'IGE0100I LOAD 2 1/2 INCH MAG TAPE ERPS' 00200021 IGE0100I START X'00' LOAD 2 00250021 *********************************************************************** 00340021 * * 00350021 * STATUS: CHANGE LEVEL 6 * 00360021 * RELEASE 21.7 * 00362021 * * 00370021 * FUNCTION/OPERATION: * 00380021 * 1. PRINT A MESSAGE AND REISSUE SIO IF ERG CONTINUE, NOISE ON * 00382021 * USER READ, OR NOISE ON ERP READ * 00384021 * 2. PRINT A MESSAGE AND REISSUE SIO IF A UNSOLICITED DEVICE * 00384421 * END FROM A NEW DEVICE TYPE * 00384821 * 3. PRINT A MESSAGE AND EXIT PERM ERROR IF A IOB INTERCEPT * 00384921 * ON DATA SECURITY ERASE ON A NEW DEVICE TYPE * 00385021 * 4. EXIT PERM ERROR IF OTHER IOB INTERCEPT CONDITION * 00387021 * 5. HANDLE UNIT CHECK DURING REPOSITIONING * 00389021 * * 00389421 * ENTRY POINTS: ER2402 - CALLED BY: * 00389821 * 1. IGE0000I (LOAD 1) VIA XCTL * 00389921 * 2. IGE0200I (LOAD 3) VIA XCTL * 00390021 * 3. IGE0300I (LOAD 4) VIA XCTL * 00392021 * * 00394021 * INPUT: REGISTER 1 CONTAINS A POINTER TO THE REQUEST ELEMENT TABLE. * 00394421 * * 00394821 * OUTPUT * 00394921 * SEVEN SPECIAL CONSOL MESSAGES - VIA SVC 35 * 00395021 * ERRMSG1 'ERROR ON ERG' * 00395421 * ERRMSG2 'NOISE - USER' * 00395821 * ERRMSG3 'NOISE - ERP ' * 00395921 * ERRMSG4 'UNEX INTRPT ' * 00396021 * ERRMSG5 'DSE FAILED ' * 00396421 * ERRMSG6 'CTRL BLK ERR' A29974 00396521 * ERRMSG7 'UNEX LOAD PT' A29972 00396621 * * 00396821 * EXTERNAL ROUTINES: INTERPRETER ROUTINE, CHECKS SENSE AND STATUS BITS. 00396921 * * 00397021 * EXITS-NORMAL: * 00397421 * 1. SVC 15/3 EXIT TO IOS TO REPOSITION TAPE AND TO * 00397821 * REXECUTE THE CHANNEL PROGRAM * 00397921 * 2. XCTL TO IGE0000I (LOAD 1) * 00398021 * 3. XCTL TO IGE0025C (WTO ROUTINE) * 00400021 * 4. XCTL TO IGE0025F (OBR ROUTINE) * 00410021 * * 00420021 * EXITS-ERROR: N/A * 00430021 * * 00440021 * TABLES/WORK AREAS: N/A * 00450021 * * 00460021 * ATTRIBUTES: SERIALLY REUSABLE * 00470021 * * 00480021 * NOTES * 00490021 * THE FOLLOWING ARE LISTING FLAG DESCRIPTIONS, * 00500021 * 000A REL 16 UNKNOWN * 00510021 * 000E REL 17 READ OPPOSITE RECOVERY * 00520021 * 000F REL 17 UNKNOWN * 00530021 * 000G REL 18 UNKNOWN * 00540021 * 000J REL 19 VOLUME ERROR STATISTICS * 00550021 * 000L REL 19 EMULATOR SUPPORT * 00560021 * * 00562021 * THE FOLLOWING APAR(S) REFLECT CLEAN-UP TYPE MAINTENANCE * 00564021 * OS63824 OVERRUN ON ERG DOESN'T RETRY, & INTERVENTION REQUIRED * 00566021 * ON NON-EXIST DRIVE RETRIES * 00568021 * * 00570021 *********************************************************************** 00580021 EJECT 00590021 * * IOB REFERENCES 00600021 * 00610021 IOBFL1 EQU 0 FLAGS 1 00620021 IOBFL2 EQU 1 FLAGS 2 00630021 IOBSNS EQU 2 SENSE DATA 00640021 IOBCOD EQU 4 ECB CODE 00650021 IOBFL3 EQU 8 FLAGS 3 00660021 IOBCSW EQU 8 CSW STORAGE 00670021 IOBDCB EQU 21 DCB POINTER 00680021 IOBMDB EQU 24 MODIFIER BYTE 00690021 IOBBCI EQU 28 BLOCK COUNT INCR. 00700021 IOBECT EQU 30 ERROR COUNTS 00710021 * 00720021 * * IOB FLAG 1 REFERENCES 00730021 * 00740021 IOBERR EQU X'20' IOB ERROR FLAG 00750021 IOBMD1 EQU X'10' MOD1 FLAG - POSITIONING 00760021 IOBEX EQU X'04' EXCEPT FLAG 00770021 IOBEXE EQU IOBEX+IOBERR IOB EX AND ERR FLAG 00780021 * 00790021 * * IOB FLAG 2 REFERENCES 00800021 * 00810021 IOBROC EQU X'04' FLAG IOS TO USE ROR CMD 000E 00820021 * 00870021 * * IOB FLAG 3 REFERENCES 00920021 * 00970021 IOBENT EQU X'40' IOB ENTRY BIT 00980021 IOBTPC EQU X'20' TAPE CLEANING BIT 00990021 CNTFLG EQU X'10' CONTROL FLAG 01000021 IOBMSG EQU X'04' MESSAGE TYPE 01050021 IOBROR EQU X'08' READ OPPOSITE IN PROGRESS 000E 01100021 IOBLOG EQU X'01' LOGOUT INDICATOR 01150021 IOBIN1 EQU X'80' NOISE MESSAGE SWITCH 01200021 * 01250021 * * IOB ERROR COUNT 1 REFERENCES 01300021 * 01350021 IOBOVR EQU X'50' OVER RUN COUNT MAX. VALUE 01400021 * 01450021 * * UCB REFERENCES 01500021 * 01550021 UCBFL5 EQU 1 UCB FLAG 5 S21048 01600021 UCBNAME EQU 13 UNIT NAME IN EBCDIC 01650021 UCBSNS EQU 22 SENSE BYTES 01700021 UCBNBRSN EQU 24 EXTENDED SENSE ADR S21048 01750021 UCBVSER EQU 28 VOL SER NO 000E 01800021 RORPTR EQU 48 POINTER TO RORCCW 000J 01850021 * 000A 01900021 * * DEB REFERENCES 000A 01950021 * 000A 02000021 DEBOFL EQU 8 DEBOFLGS 000A 02050021 EJECT 02100021 * 02150021 * * REGISTER ASSIGNMENTS 02200021 * 02250021 ERREG3 EQU 0 WORK REG 02300021 TSTREG EQU 1 TWELVE STAR REG 02350021 ERREG2 EQU 2 EXIT REGISTER 02400021 CCWREG EQU 3 CCW ADDRESS REG 02450021 ERREG4 EQU 4 WORK REGISTER 02500021 BASREG EQU 5 BASE REG. 02550021 DCBREG EQU 6 DCB ADDRESS REGISTER 02600021 UCBREG EQU 7 UCB ADDRESS REG. 02650021 VECREG EQU 8 VECTOR ADDRESS REG. 02700021 SAVREG EQU 9 SAVE REG. 02750021 IOBRG EQU 10 IOB ADDRESS REG 02800021 ERRLNK EQU 12 LINK REG 02850021 ERREG1 EQU 13 WORK REG 02900021 ERRETR EQU 14 RETURN REG FOR XCTL 02950021 RORREG EQU 14 RORCCW POINTER 03000021 INTBAS EQU 15 INTERPRETER BASE REG 03050021 * 03100021 * * TWELVE STAR DEFINITION 03150021 * 03200021 TSTUCB EQU 2 UCB POINTER 03250021 TSTIOB EQU 5 IOB POINTER 03300021 TSTDEB EQU 9 DEB POINTER 000A 03350021 * 03400021 * * DCB REFERENCES 03450021 * 03500021 DCBBLK EQU 12 DCB BLOCK COUNT 03550021 * 03600021 * * COMMANDS 03650021 * 03700021 CMDFSR EQU X'37' FORWARD SPACE RECORD 03750021 CMDCTL EQU X'03' CONTROL 03800021 * 03850021 * * STATUS INDICATORS 03900021 * 03950021 CSWDVE EQU X'04' DEVICE END 04000021 EJECT 04050021 * 04100021 * * MISCELLANEOUS 04150021 * 04200021 APPEND EQU X'01' APPENDAGE BIT 04250021 BLANK EQU X'40' EBCDIC BLANK 04300021 CNT3 EQU X'40' 3 RETRIES 04350021 C1 EQU 1 COUNT OF ONE 04400021 C2 EQU 2 COUNT OF 2 04450021 C3 EQU 3 COUNT OF 3 04500021 C4 EQU 4 COUNT OF 4 04550021 C5 EQU 5 COUNT OF 5 04600021 C6 EQU 6 COUNT OF 6 04650021 C8 EQU 8 COUNT OF 8 04700021 C16 EQU 16 COUNT OF 16 04750021 DATACK EQU X'08' DATA CHECK 04800021 DEINT EQU X'01' UNEXPECTED DEV END S21048 04850021 DSEBIT EQU 7 DSE ERROR BIT S21048 04900021 DSERR EQU X'08' DSE ERROR S21048 04950021 EMUL EQU X'10' EMULATOR BIT 05000021 ERG EQU 20 ERG COUNTER OFFSET 05050021 EXCPER EQU 15 ERROR EXCP 05100021 FULL EQU X'FF' COUNTER FULL 05150021 LOC016 EQU 16 COMMUNICATION TABLE 05200021 NEWDEV EQU X'08' EXTENDED SENSE S21048 05250021 NOISE EQU 18 NOISE OFFSET 05300021 OVRFLO EQU X'02' SDR OVER FLOW FLAG S21048 05350021 PROG EQU X'FF' ERP IN PROGRESS 05400021 RETURN EQU 3 TO GET OUT WITH 05450021 SERLOG EQU 256 LOAD NAME TO OBR S21048 05500021 TCBTIOT EQU 12 TIOTPTR 05550021 TRCOMMA EQU X'EE' WILL TRANSLATE TO ',' 05600021 TUSTAT EQU X'60' TU STATUS A & B BITS @SA63824 05610021 UNEX EQU X'10' UNEXPECTED DEV END FLAG S21048 05650021 VALVOL EQU X'00' VALID VOLUME S21048 05700021 VECTXL EQU 44 VECTOR TO XCTL RNT. 05750021 VECT68 EQU 68 INTERPRETER ROUTINE 05800021 VES EQU X'C0' VES OPTION 05850021 WTORTN EQU 253 LOAD NAME TO WTO RTN. 05900021 ZERO EQU X'00' 05950021 * 06000021 LOAD1 EQU 9 LOAD NAME FOR LOAD 1 06050021 * 06100021 * * COMPLETION CODE SETTINGS 06150021 * 06200021 ERPERR EQU X'4B' ERROR DURING ERP A29974 06210021 IOBINT EQU X'7E' IOB INTERCEPT CODE 06250021 INTCOD EQU X'44' INTERCEPT POST CODE 06300021 EJECT 06350021 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 06400021 * * 06450021 * THIS IS ENTRY TO THE SECOND LOAD OF THE 06500021 * 2400 SERIES MAGNETIC TAPE ERROR ROUTINE 06550021 * * 06600021 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 06650021 * WHEN ENTERED THE IOBEX AND THE IOBERR FLAGS WILL BE SET TO 1 BY * 06700021 * THE ERROR ROUTINE. * 06750021 * * 06800021 * ON RETURN THESE TWO FLAGS SHOULD BE INTERPRETED AS FOLLOWS. * 06850021 * IOBEX ON AND IOBERR ON - IOB IN CONTROL BY THE ERROR ROUTINE.* 06900021 * IOBEX ON AND IOBERR OFF - PERMANENT ERROR * 06950021 * IOBEX OFF AND IOBERR OFF - ERROR CORRECTED * 07000021 * 07050021 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 07100021 USING *,BASREG 07150021 ER2402 EQU * 07160021 LR BASREG,INTBAS SET BASE 07200021 MVI FLAG,ZERO CLEAR FLAG A57651 07210021 * 07250021 L IOBRG,TSTIOB-C1(TSTREG) GET IOB ADDRESS 07300021 L DCBREG,IOBDCB-C1(IOBRG) GET DCB ADDRESS 07350021 L VECREG,LOC016 07400021 LH UCBREG,TSTUCB(TSTREG) GET UCB ADDRESS 000J 07450021 CLI IOBCOD(IOBRG),ERPERR X'4B' IN COMPLETION CODE A29974 07460021 BE ERR223 A29974 07470021 LA ERREG2,ERRMSG4 GET ERR MSG ADR S21048 07500021 TM IOBFL2(IOBRG),UNEX UNSOLICITED DEVICE END S21048 07550021 BO ERR325 BR YES S21048 07600021 L CCWREG,IOBCSW(IOBRG) GET ADDR. TO CCW 07650021 LA CCWREG,0(CCWREG) CLEAR HIGH ORDER BYTE A29974 07660021 SH CCWREG,ERRCN1 BACK UP CCW BY 8 07700021 CLI IOBCOD(IOBRG),IOBINT IOB INTERCEPT 07750021 BNE ERR200 BR NO 07800021 TM UCBFL5(UCBREG),NEWDEV EXTENTED SENSE S21048 07850021 BZ ERR100 BR NO S21048 07900021 LA ERREG2,ERRMSG5 SET FOR DSE FAIL MSG S21048 07950021 L ERREG4,UCBNBRSN(UCBREG) GET SNS ADR S21048 08000021 TM DSEBIT(ERREG4),DSERR DSE ERR BIT ON IN SENSE S21048 08050021 BO ERR325 BR YES S21048 08100021 ERR100 EQU * 08150021 NI IOBFL1(IOBRG),X'FF'-IOBERR SET ERP NOT IN CTL 08200021 ERR110 EQU * 08250021 MVI IOBCOD(IOBRG),INTCOD SET INTERCEPT CODE 08300021 B ERR370 EXIT ERP 08350021 EJECT 08400021 * 08450021 * LOAD 2 PART 2 HAVE UNIT CHECK - CHECK SENSE IN SEQUENCE 08500021 * (1) DATA CHECK NOT REPOSITIONING IS NOISE RECORD 08550021 * (2) ALL OTHER CONDITIONS ARE UNIT CHECK DURING REPOSITIONING 08600021 * BUS OUT - POSSIBLE ANYTIME 08650021 * INTERVENTION REQUIRED - POSSIBLE ANYTIME 08700021 * LOAD POINT - BSR ONLY 08750021 * DATA CHECK - ERG ONLY 08800021 * 08850021 * ANY OTHER SENSE - LOGOUT 08900021 * 08950021 ERR200 EQU * 09000021 L RORREG,RORPTR(UCBREG) GET VES TABLE POINTER S21048 09050021 MVI FLAG,FULL SET VES TABLE IN USE S21048 09100021 TM UCBFL5(UCBREG),NEWDEV EXTENDED SENSE S21048 09150021 BO ERR205 BR YES S21048 09200021 TM RORPTR(UCBREG),VES VES IN USE S21048 09250021 BO ERR205 BR YES S21048 09300021 MVI FLAG,ZERO SET VES NOT IN USE S21048 09350021 * 09400021 * REGS 0,9,11,12,13,15 ARE AFFECTED BY INTERPRETER 09450021 * 09500021 ERR205 EQU * 09550021 L INTBAS,VECT68(VECREG) GET INT, ROUT, ADDRESS 09600021 ERR210 BALR ERRLNK,INTBAS LINK TO INT. ROUTINE 09650021 * 09700021 DC X'03' EQUIPTMENT CHECK 000A 09750021 DC AL1(ERR250-ERR210-2) * 000A 09800021 DC X'02' BUS OUT CHECK 000A 09850021 DC AL1(ERR220-ERR210-4) * 000A 09900021 DC X'01' INTERVENTION REQUIRED 09950021 DC AL1(ERR240-ERR210-6) * 10000021 DC X'00' COMMAND REJECT 10050021 DC AL1(ERR250-ERR210-8) * 10100021 DC X'05' OVERRUN 10150021 DC AL1(ERR220-ERR210-10) * @SA63824 10200021 DC X'0C' LOAD POINT 10250021 DC AL1(ERR260-ERR210-12) * 10300021 DC X'04' DATA CHECK 10350021 DC AL1(ERR270-ERR210-14) * 10400021 DC X'2F' END OF TEST 10450021 DC AL1(ERR250-ERR210-16) * 10500021 EJECT 10550021 * 10600021 * BUS OUT CHECK AND OVERRUN @SA63824 10650021 * 10700021 ERR220 TM IOBECT(IOBRG),IOBOVR 5 BUS OUTS 10750021 BO ERR500 BRANCH YES 10800021 * 10850021 IC ERREG1,IOBECT(IOBRG) GET COUNT 10900021 LA ERREG1,C16(ERREG1) ADD ONE TO COUNT 10950021 STC ERREG1,IOBECT(IOBRG) STORE COUNT 11000021 * 11050021 LTR CCWREG,CCWREG NEGATIVE ADDRESS A29974 11060021 BNM ERR225 BRANCH NO A29974 11070021 ERR222 MVI IOBCOD(IOBRG),ERPERR PUT X'4B' IN IOB ECB CODE A29974 11080021 ERR223 NI IOBFL1(IOBRG),X'FF'-IOBERR MARK AS PERM ERROR A29974 11090021 LA ERREG2,ERRMSG6 SET FOR CONTROL BLK MSG A29974 11092021 B ERR327 GO SET UP MESSAGE A29974 11094021 * 11096021 ERR225 CLI 0(CCWREG),CMDCTL BUS OUT ON NO-OP A29974 11100021 BNE ERR405 BR NO-BSR DONE 11150021 * 11200021 * HAD BUS OUT ON NOP COMMAND FETCH GO TO LOAD 1 IGNORE B. O. 11250021 * 11300021 ERR230 OI IOBFL3(IOBRG),IOBENT SET SWITCH 11350021 LA ERREG1,LOAD1 GET LOAD 1 ADDRESS 11400021 B ERR530 GO XCTL 11450021 * 11500021 * INTERVENTION REQUIRED 11550021 * 11600021 ERR240 TM IOBCSW+C4(IOBRG),CSWDVE DEVICE END 11650021 BO ERR245 BR YES TO ERG MSG @SA63824 11660021 TM IOBSNS+C1(IOBRG),TUSTAT DRIVE EXIST? @SA63824 11670021 BNZ ERR520 BRANCH NO, PERM ERROR @SA63824 11700021 * 11750021 ERR245 LA ERREG2,ERRMSG1 SET FOR 'ERASE GAP' MSG @SA63824 11800021 TM IOBSNS(IOBRG),DATACK IS IT DATA CHECK ? 11850021 BO ERR270 BRANCH YES MUST BE ERG 11900021 * 11950021 * EQ.CK.,O.R.,DCC,C.R.,OR NONE 12000021 * 12050021 ERR250 B ERR500 BRANCH TO LOGOUT 12100021 * 12150021 * LOAD POINT 12200021 * 12250021 ERR260 TM IOBFL3(IOBRG),IOBTPC TAPE CLEANER ACTION 12300021 BO ERR380 BRANCH YES 12350021 * 12400021 MVI IOBCOD(IOBRG),ERPERR PUT X'4B' IN IOB ECB CODE A29972 12410021 NI IOBFL1(IOBRG),X'FF'-IOBERR MARK PERM ERROR 12450021 LA ERREG2,ERRMSG7 SET FOR LOAD PT MSG A29972 12460021 B ERR330 GO SET UP MESSAGE A29972 12500021 EJECT 12550021 ERR270 TM IOBFL3(IOBRG),IOBROR ROR IN PROGRESS 12600021 BO ERR280 BRANCH YES 000E 12650021 TM IOBFL1(IOBRG),IOBMD1 REPOSITIONING ? 12700021 BO ERR310 YES- BRANCH 12750021 ERR280 EQU * 12800021 TM FLAG,FULL VES TABLE IN USE 12850021 BZ ERR290 BR NO 12900021 TM NOISE(RORREG),FULL IS COUNT FULL 12950021 BO ERR290 BR YES 13000021 IC ERREG1,NOISE(RORREG) GET NOISE COUNT 13050021 LA ERREG1,C1(ERREG1) ADD ONE TO COUNT 13100021 STC ERREG1,NOISE(RORREG) STORE BACK 13150021 ERR290 EQU * 13200021 L ERREG1,TSTDEB-C1(TSTREG) GET DEB ADDR 13250021 TM DEBOFL(ERREG1),EMUL IS EMULATOR BIT ON ? 000L 13300021 BZ ERR300 NO, SKIP PERM. ERROR SET 000L 13350021 NI IOBFL1(IOBRG),X'FF'-IOBERR PERMANENT ERROR 000L 13400021 * 13450021 * TEST FOR PREVIOUS MESSAGE 13500021 * 13550021 ERR300 TM IOBFL3(IOBRG),IOBIN1 PREVIOUS MESSAGE ? 000L 13600021 BO ERR370 YES - DON'T WRITE MESSAGE 000L 13650021 OI IOBFL3(IOBRG),IOBIN1 NO - SET MESSAGE SWITCH 000L 13700021 LA ERREG2,ERRMSG2 SET FOR 'USER' MSG 13750021 TM IOBECT+C1(IOBRG),PROG IS ERP IN PROGRESS ? 13800021 BZ ERR330 NO- BRANCH TO WRITE MSG 13850021 LA ERREG2,ERRMSG3 YES- SET FOR 'ERP' MSG 13900021 B ERR330 BRANCH TO WRITE MSG. 13950021 * 14000021 * UPDATE ERG DATA CHECK COUNT 14050021 * 14100021 ERR310 IC ERREG1,IOBECT+C1(IOBRG) GET ERG COUNTER 14150021 LA ERREG1,C16(ERREG1) ADD ONE TO COUNT 14200021 STC ERREG1,IOBECT+C1(IOBRG) STORE UPDATED COUNT 14250021 TM FLAG,FULL VES TABLE IN USE 14300021 BZ ERR320 BR NO 14350021 LH ERREG1,ERG(RORREG) GET ERG COUNT 000J 14400021 CH ERREG1,ALLF IS COUNT FULL 000J 14450021 BE ERR320 BR YES 000J 14500021 LA ERREG1,C1(ERREG1) ADD ONE TO COUNT 14550021 STH ERREG1,ERG(RORREG) STORE UPDATED COUNT 000J 14600021 ERR320 EQU * 14650021 LA ERREG2,ERRMSG1 SET FOR ERG - CONT MSG 14700021 TM IOBECT+C1(IOBRG),CNT3 3 RETRIES 14750021 BO ERR510 BRANCH YES (4 ERG'S) 000F 14800021 B ERR330 BR 14850021 EJECT 14900021 * 14950021 * BUILD OPERATOR MESSAGES AND ISSUE WTO 15000021 * 15050021 ERR325 EQU * 15100021 OI IOBFL1(IOBRG),IOBEXE SET ERP IN CONTROL S21048 15150021 ERR327 MVC OPCODE(C2),NULLOP PUT '***' IN OPCODE S21048 15200021 B ERR340 BR S21048 15250021 ERR330 EQU * 15300021 LTR CCWREG,CCWREG NEGATIVE ADDRESS A29974 15310021 BM ERR222 YES, GO SET X'4B' A29974 15320021 UNPK OPCODE,0(C2,CCWREG) UNPACK OPCODE AND 1 BYTE 15350021 ERR340 EQU * 15400021 OI IOBECT+C1(IOBRG),APPEND SET SWITCH FOR APPENDAGE 3636 15450021 MVC UNITID(C3),UCBNAME(UCBREG) MOVE TO MESSAGE AREA 15500021 * MOVE IN MESSAGE TEXT AS POINTED TO BY ERREG2 15550021 MVC MSGTEXT,0(ERREG2) MOVE IN MESSAGE 15600021 ERR350 MVI OPCODE+C2,TRCOMMA TRANSLATE CODE FOR COMMA 15650021 SPACE 15700021 UNPK STATUS,IOBCSW+C4(C3,IOBRG) UNPACK STATUS + 1 BYTE 15750021 MVI STATUS+C4,TRCOMMA TRANSLATE CODE FOR COMMA 15800021 SPACE 15850021 UNPK SENSE,IOBSNS(C3,IOBRG) UNPACK SENSE AND 1 BYTE 15900021 MVI SENSE+C4,TRCOMMA TRANSLATE CODE FOR COMMA 15950021 SPACE 16000021 UNPK LOC,DCBBLK(C5,DCBREG) UNPACK DCB BLOCK COUNT 16050021 MVI LOC+C8,TRCOMMA TRANSLATE CODE FOR COMMA 16100021 SPACE 16150021 * TRANSLATE ALL FIELDS TO PRINTABLE FORM, INCLUDING PUNCTUATION 16200021 * 16250021 TR OPCODE(L'OPCODE+L'STATUS+L'SENSE+L'LOC),TRANS 16300021 SPACE 16350021 * MOVE IN VOLUME SERIAL NUMBER IF AVAILABLE 16400021 * 16450021 MVC VOLSER(C6),UCBVSER(UCBREG) MOVE IT TO MESSAGE AREA 16500021 CLI UCBVSER(UCBREG),VALVOL IS IT A VALID VOL SER ? 16550021 BNE ERR360 YES - BRANCH TO CONTINUE 16600021 MVI VOLSER,BLANK NO - MOVE IN BLANKS 16650021 MVC VOLSER+C1(C5),VOLSER MOVE BLANKS 16700021 EJECT 17100021 * WRITE THE MESSAGE TO THE OPERATOR AND CONTINUE 17150021 * 17200021 ERR360 LR ERREG4,TSTREG SAVE REG A40906 17250021 LA TSTREG,WTOMSG POINT AT THE MESSAGE 17300021 WTO MF=(E,(1)) WRITE ON CONSOLE 17350021 LR TSTREG,ERREG4 RESTORE REG 17400021 CLI IOBCOD(IOBRG),ERPERR X'4B' COMPLETION CODE A29974 17410021 BE ERR370 YES, RETURN A29974 17420021 CLI IOBCOD(IOBRG),IOBINT WAS IT INTERCEPT S21048 17450021 BNE ERR370 BR NO S21048 17500021 OI IOBFL3(IOBRG),IOBLOG SET LOGOUT S21048 17550021 MVI IOBCOD(IOBRG),INTCOD SET INTERCEPT CODE S21048 17600021 NI IOBFL1(IOBRG),X'FF'-IOBERR SET ERP PERM ERR S21048 17650021 ERR365 EQU * 17700021 LA ERREG1,SERLOG GET OBR ADR S21048 17750021 B ERR530 EXIT VIA XCTL S21048 17800021 SPACE 17850021 ERR370 EQU * 17900021 TM IOBFL2(IOBRG),UNEX UNSOLICITED DEVICE END S21048 17950021 BZ ERR375 BR NO S21048 18000021 NI RORPTR(UCBREG),X'FF'-DEINT RESET UNSOL DEV END S21048 18050021 NI IOBFL2(IOBRG),X'FF'-UNEX RESET UNSOL DEV END S21048 18100021 ERR375 EQU * 18150021 TM IOBFL3(IOBRG),OVRFLO IS OVER FLOW ON S21048 18200021 BO ERR365 BR YES S21048 18250021 SVC EXCPER 18300021 SVC RETURN RETURN 18350021 * 18400021 * SET UP TO REPOSITION OFF LOAD POINT 18450021 * 18500021 ERR380 SR ERREG4,ERREG4 CLEAR REGISTER 18550021 IC ERREG4,IOBECT(IOBRG) GET POSITIONING COUNT 18600021 LA ERREG1,C3 MAX COUNT (RF. ALWAYS DECR. 1) 18650021 SR ERREG1,ERREG4 NO. OF BACK SPACES 18700021 BZ ERR410 DONE - OUT 18750021 TM IOBFL3(IOBRG),CNTFLG RD BK TAPE CLEANING 18800021 BO ERR390 YES - SKIP 18850021 * THE (BCTR REGZ,ZERO) IS TO DECREMENT THE CONTENTS OF REG Z BY 1 18900021 BCTR ERREG1,ZERO READ FWD. - ONE LESS RECORD 18950021 ERR390 MVI IOBMDB(IOBRG),CMDFSR REVERSE DIRECTION. 000G 19000021 ERR400 STC ERREG1,IOBECT(IOBRG) RESTORE - POSITIONING COUNT.000G 19050021 NI IOBFL3(IOBRG),X'FF'-IOBTPC-CNTFLG RESET FLAGS 19100021 ERR405 EQU * 19150021 SVC EXCPER 19200021 SVC RETURN RETURN 19250021 EJECT 19300021 ERR410 TM IOBFL3(IOBRG),CNTFLG READ BACK TAPE CLEANING 19350021 BO ERR390 YES- ONE MORE RECORD TO GO 19400021 * 000E 19450021 TM IOBFL3(IOBRG),IOBROR ROR IN PROGRESS 000E 19500021 BO ERR420 BRANCH YES 000E 19550021 NI IOBFL1(IOBRG),X'FF'-IOBMD1 NO-DONE-NO MORE POSIT. 19600021 B ERR390 BR 19650021 * 19700021 ERR420 OI IOBFL2(IOBRG),IOBROC SET IOS USE RORCCW 000E 19750021 B ERR400 GO READ OFF LOAD POINT 000G 19800021 * 19850021 * GENERAL EXIT AREA 19900021 * 19950021 ERR500 TM IOBCSW+C4(IOBRG),CSWDVE DEVICE END 20000021 BZ ERR510 BRANCH NO 000F 20050021 * 000F 20100021 L ERREG1,DCBBLK(DCBREG) GET CURRENT COUNT 000F 20150021 AH ERREG1,IOBBCI(IOBRG) ADD INCREMENT 000F 20200021 ST ERREG1,DCBBLK(DCBREG) STORE UPDATED COUNT 000F 20250021 * 000F 20300021 ERR510 OI IOBFL3(IOBRG),IOBLOG INDICATE LOG OUT 000F 20350021 OI IOBFL3(IOBRG),IOBMSG SET MESSAGE TYPE 20400021 * 000J 20450021 ERR520 EQU * 20500021 * 000J 20550021 LA ERREG1,WTORTN GET LOAD NAME FOR WTO RTN 20600021 ERR530 EQU * 20650021 L ERRETR,VECTXL(VECREG) GET ADR TO XCTL 20700021 BR ERRETR BR-TO XCTL RTN. 20750021 EJECT 20800021 ********************************************************************** 20850021 ********************************************************************** 20900021 * WRITE TO OPERATOR MESSAGE 20950021 WTOMSG DS 0F OUTPUT MESSAGE 21000021 LENGTH DC AL2(MSGEND-MSGNO) MESSAGE LENGTH 21050021 DC X'8000' MCS FLAGS A43378 21100021 MSGNO DC CL8'IEA000I ' MESSAGE ID 21150021 UNITID DC CL4'XXX,' UNIT ADDRESS 21200021 MSGTEXT DC CL13' ,' MESSAGE TEXT 21250021 OPCODE DC CL3'XX,' CCW OP CODE 21300021 STATUS DC CL5'XXXX,' CCW STATUS 21350021 SENSE DC CL5'XXXX,' SENSE DATA 21400021 LOC DC CL9'XXXXXXXX,' DCB BLOCK COUNT, INDICATES 21450021 * APPROXIMATE POSITION ON TAPE. 21500021 VOLSER DC CL6'XXXXXX' VOLUME SERIAL NUMBER A40906 21550021 ROUTE DC X'10002040' DESCRIPTOR AND ROUTING A35830 21650021 MSGEND EQU * 21700021 ERRMSG1 DC CL13'ERROR ON ERG,' MESSAGE 1 A40267 21750021 ERRMSG2 DC CL13'NOISE - USER,' MESSAGE 2 A40267 21800021 ERRMSG3 DC CL13'NOISE - ERP ,' MESSAGE 3 A40267 21850021 ERRMSG4 DC CL13'UNEX INTRPT ,' MESSAGE 4 S21048 21900021 ERRMSG5 DC CL13'DSE FAILED ,' MESSAGE 5 S21048 21950021 ERRMSG6 DC CL13'CTRL BLK ERR,' MESSAGE 6 A29974 21960021 ERRMSG7 DC CL13'UNEX LOAD PT,' MESSAGE 7 A29972 21970021 ********************************************************************** 22000021 ********************************************************************** 22050021 TRANS EQU *-X'ED' STARTING ADDR OF TRAN TABLE 22100021 TABLE DC C'*, 0123456789ABCDEF' TRANSLATE TABLE 22150021 NULLOP DC X'EDED' WILL TRANSLATE TO '**' 22200021 * 22250021 DS 0H ALIGN 22300021 ERRCN1 DC AL2(8) DECIMAL 8 22350021 ALLF DC X'FFFF' COMPARE MASK 22400021 FLAG DC X'00' EXIT FLAG 22450021 ORG ER2402+1020 MAKE LOAD 1024 BYTES 22500021 DC X'00000000' LONG FOR MAINTENANCE 22550021 END 22600021 CSWICL EQU X'40' INCORRECT LENGTH 000A 22700016 * 23000015 * MISCELLANEOUS 23200015 * 23400015 IOBCC1 EQU X'10' CONDITION CODE OF SIO 23600015 EXCPER EQU 15 ERROR EXCP 23800015 TCBTIOT EQU 12 TIOTPTR 24000015 IOCLBT EQU X'00' CLEAR BYTE 24200015 LOADPT EQU X'08' LOAD POINT INDICATOR IN SENSE 24400015 COMMA EQU X'EE' COMMA TRANSLATED CHARACTER 24600015 NOISE EQU X'80' NOISE BIT 24800015 DATACK EQU X'08' DATA CHECK 25000015 SNSTST EQU X'F4' CR,IR,BO,EQ,OR 25200015 NONEXT EQU X'60' NON EXISTENT DRIVE 25400015 LOC016 EQU 16 COMMUNICATION TABLE 25600015 VECTXL EQU 44 VECTOR TO XCTL RNT. 25800015 VECT68 EQU 68 INTERPRETER ROUTINE 26000015 STATAB EQU 112 ADDRESS TO STATISTICS TABLE 26200015 STAWRK EQU 8 STATISTICS WORK AREA 26400015 WTORTN EQU 253 LOAD NAME TO WTO RTN. 26600015 STATUP EQU 254 LOAD NAME TO STAT. UP. 26800015 IOBBUS EQU X'20' BUS OUT CHECK 000F 26900017 * 27000015 LOAD1 EQU 9 LOAD NAME FOR LOAD 1 27200015 * 27400015 * COMPLETION CODE SETTINGS 27600015 * 27800015 IOBINT EQU X'7E' IOB INTERCEPT CODE 28000015 INTCOD EQU X'44' INTERCEPT POST CODE 28200015 IOBFIN EQU X'7F' COMPLETE - NO ERROR 28400015 EJECT 28600015 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 28800015 * * 29000015 * THIS IS ENTRY TO THE SECOND LOAD OF THE 29200015 * 2400 SERIES MAGNETIC TAPE ERROR ROUTINE 29400015 * * 29600015 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 29800015 * WHEN ENTERED THE IOBEX AND THE IOBERR FLAGS WILL BE SET TO 1 BY * 30000015 * THE ERROR ROUTINE. * 30200015 * * 30400015 * ON RETURN THESE TWO FLAGS SHOULD BE INTERPRETED AS FOLLOWS. * 30600015 * IOBEX ON AND IOBERR ON - IOB IN CONTROL BY THE ERROR ROUTINE.* 30800015 * IOBEX ON AND IOBERR OFF - PERMANENT ERROR * 31000015 * IOBEX OFF AND IOBERR OFF - ERROR CORRECTED * 31200015 * 31400015 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 31600015 USING *,BASREG 31800015 ER2402 LR BASREG,15 SET BASE 32000015 * 32200015 L IOBRG,TSTIOB-1(TSTREG) GET IOB ADDRESS 32400015 L DCBREG,IOBDCB-1(IOBRG) GET DCB ADDRESS 32600015 L VECREG,LOC016 32800015 LH UCBREG,TSTUCB(TSTREG) GET UCB ADDRESS 000J 32900019 LA ERREG2,ERR42B SET UP ERROR EXCP RETURN REG 33000015 L CCWREG,IOBCSW(IOBRG) GET ADDR. TO CCW 33200015 SH CCWREG,ERRCN1 BACK UP CCW BY 8 33400015 TM IOBFL3(IOBRG),IOBENT PART 2 33600015 BC 1,ER2403 GO TO PART 2 33800015 * 34000015 * TEST OF STATUS INFORMATION 34200015 * REGS 0,9,11,12,13,15 ARE AFFECTED BY INTERPRETER ROUTINE 34400015 * 34600015 ERR417 L INTBAS,VECT68(VECREG) GET ADDRESS TO INTERPR. RTN. 34800015 ERR418 BALR ERRLNK,INTBAS LINK TO INTERPRETER ROUTINE 35000015 * 35200015 DC X'16' UNIT CHECK 000F 35240017 DC AL1(ERR422-ERR418-2) 000F 35280017 DC X'1C' CHANNEL DATA CHECK 000F 35320017 DC AL1(ERR425-ERR418-4) 000F 35360017 DC X'1F' CHANING CHECK 35400015 DC AL1(ERR425-ERR418-6) 000F 35600017 DC X'1A' PROGRAM CHECK 35800015 DC AL1(ERR419-ERR418-8) 000F 36000017 DC X'1B' PROTECTION CHECK 36200015 DC AL1(ERR419-ERR418-10) 000F 36400017 DC X'17' UNIT EXCEPTION 36600015 DC AL1(ERR424-ERR418-12) 000F 36800017 DC X'19' INCORRECT LENGTH 37000015 DC AL1(ERR424-ERR418-14) 000F 37200017 DC X'2F' END OF TEST-RECOVERED 37400015 DC AL1(ERR41B-ERR418-16) 000F 37600017 EJECT 37800015 * 000F 37810017 * UNIT EXCEPTION OR INCORRECT LENGTH 000F 37820017 * 000F 37830017 ERR424 NC IOBECT(2,IOBRG),IOBECT(IOBRG) ERROR COUNTS ZERO 000F 37840017 BC 8,ERR419 BRANCH YES 000F 37850017 * 4817 37900016 * UNIT EXCEPTION OR INCORRECT LENGTH OR 4817 38000016 * END OF TEST RECOVERED 4817 38100016 * 4817 38200016 ERR41B TM 0(CCWREG),CMDWRT WRITE OR CONTROL 000E 38230017 BC 1,ERR41C BRANCH YES 000E 38260017 * 000E 38290017 NI IOBECT+1(IOBRG),X'FF'-IOBWRT RESET HIGH ORDER BIT 000E 38320017 ERR41C NI IOBECT+1(IOBRG),X'80' CLEAR ERROR COUNTS 000E 38350017 NI IOBECT(IOBRG),X'00' CLEAR ERROR COUNTS 4817 38400016 NI IOBFL1(IOBRG),X'FF'-IOBSRS RESET RESTART BIT 4817 38500016 * 4817 38600016 TM IOBFL2(IOBRG),IOBUEX RECOVER AFTER END OF TAPE 4817 38700016 BC 8,ERR423 BRANCH NO 000F 38800017 * 4817 38900016 OI IOBCSW+4(IOBRG),CSWUEX MARK IOBCSW UNIT EXCPT. 4817 39000016 NI IOBFL2(IOBRG),X'FF'-IOBUEX RESET UNIT EXCP. FLAG 4817 39100016 * 000F 39400017 ERR423 NI IOBFL1(IOBRG),X'FF'-IOBEXE RESET ERR & EXCP COND 000F 39700017 * 4817 40100016 MVI IOBFL3(IOBRG),IOCLBT CLEAR ERROR FLAGS 4817 40500016 * 000J 40520019 BAL ERRLNK,ERR600 UPDATE ESV AREA 000J 40540019 * 000J 40560019 LA ERREG1,STATUP GET LOAD NAME TO STAT. UP 4817 40600016 BC 15,ERR436 GO XCTL 4817 40700016 * 4817 40800016 * PROGRAM CHECK OR PROTECTION CHECK 4817 40900016 * 4817 41000016 ERR419 NI IOBFL1(IOBRG),X'FF'-IOBERR RESET ERP CNTL. FLAG 4817 41100016 ERR42A MVI IOBFL3(IOBRG),IOCLBT CLEAR ERROR FLAGS 4817 41200016 BCR 15,ERREG2 ERROR EXCP 4817 41300016 EJECT 41400016 * 4817 41500016 * CHAINING CHECK OR CHANNEL DATA CHECK 000F 41900017 * 000F 42300017 ERR425 MVI IOBSNS(IOBRG),IOCLBT ZERO SENSE 000F 42700017 * 000F 43100017 * UNIT CHECK (BUS OUT OR OVER RUN) 000F 43500017 * 000F 43900017 ERR422 TM IOBECT(IOBRG),IOBOVR IS OVER RUN COUNT 5 44400015 BC 1,ERR433 BR-ON YES 44600015 IC ERREG1,IOBECT(IOBRG) GET OVER RUN COUNT 44800015 LA ERREG1,16(ERREG1) ADD ONE TO OVER RUN CNT. 45000015 STC ERREG1,IOBECT(IOBRG) STORE UPDATED COUNT IN IOB 45200015 * 000F 45210017 TM IOBSNS(IOBRG),IOBBUS BUS OUT 000F 45220017 BC 8,ERR427 BRANCH NO 000F 45230017 * 000F 45240017 * BUS OUT 000F 45250017 * 000F 45260017 TM IOBCSW+4(IOBRG),CSWDVE DEVICE END 000F 45270017 BC 8,ERR426 BRANCH NO 000F 45280017 * 000F 45290017 CLI 0(CCWREG),CMDWRT WRITE COMMAND 000F 45300017 BC 8,ERR428 BRANCH YES 000F 45310017 * 000F 45320017 ERR426 TM 0(CCWREG),CMDTIE TRACK IN ERROR. 000G 45330018 BCR 14,ERREG2 NO - GO RETRY 000F 45340017 * 000F 45350017 BC 15,ERR429 YES - GO TEST CHAINING 000F 45360017 * 000F 45370017 * OVER RUN 000F 45380017 * 000F 45390017 ERR427 CLI 0(CCWREG),CMDTIE TRACK IN ERROR 000F 45400017 BC 8,ERR429 BRANCH YES 000F 45410017 * 000F 45420017 ERR428 OI IOBFL1(IOBRG),IOBMD1 SET REPOSITION 000F 45430017 BCR 15,ERREG2 GO REPOSITION 000F 45440017 * 000F 45450017 ERR429 TM IOBFL1(IOBRG),IOBCMC COMMAND CHAINING 000F 45460017 BC 1,ERR433 BRANCH YES 000F 45470017 * 000F 45480017 ERR42B SVC EXCPER ERROR EXCP 45600015 SVC 3 RETURN 45800015 EJECT 46700017 * 47600015 * GENERAL EXIT AREA 47800015 * 48000015 ERR433 TM IOBCSW+4(IOBRG),CSWDVE DEVICE END 000F 48020017 BC 8,ERR435 BRANCH NO 000F 48040017 * 000F 48060017 L ERREG1,DCBBLK(DCBREG) GET CURRENT COUNT 000F 48080017 AH ERREG1,IOBBCI(IOBRG) ADD INCREMENT 000F 48100017 ST ERREG1,DCBBLK(DCBREG) STORE UPDATED COUNT 000F 48120017 * 000F 48140017 ERR435 OI IOBFL3(IOBRG),IOBLOG INDICATE LOG OUT 000F 48240017 ERR43A OI IOBFL3(IOBRG),IOBMSG SET MESSAGE TYPE 48400015 * 000J 48480019 ERR434 BAL ERRLNK,ERR600 UPDATE ESV AREA 000J 48560019 * 000J 48640019 LA ERREG1,WTORTN GET LOAD NAME FOR WTO RTN 48720019 ERR436 L ERRETR,VECTXL(VECREG) GET ADDR TO XCTL 48800015 BCR 15,ERRETR BR-TO XCTL RTN. 49000015 EJECT 49200015 * 49400015 * LOAD 2 PART 2 HAVE UNIT CHECK - CHECK SENSE IN SEQUENCE 49600015 * (1) DATA CHECK NOT REPOSITIONING IS NOISE RECORD 49800015 * (2) ALL OTHER CONDITIONS ARE UNIT CHECK DURING REPOSITIONING 50000015 * BUS OUT - POSSIBLE ANYTIME 50200015 * INTERVENTION REQUIRED - POSSIBLE ANYTIME 50400015 * LOAD POINT - BSR ONLY 50600015 * DATA CHECK - ERG ONLY 50800015 * 51000015 * ANY OTHER SENSE - LOGOUT 51200015 * 51400015 ER2403 NI IOBFL3(IOBRG),X'FF'-IOBENT TURN OFF SWITCH 51600015 * 51800015 * REGS 0,9,11,12,13,15 ARE AFFECTED BY INTERPRETER 52000015 * 52200015 L INTBAS,VECT68(VECREG) GET INT, ROUT, ADDRESS 52400015 ERR620 BALR ERRLNK,INTBAS LINK TO INT. ROUTINE 52600015 * 52800015 DC X'03' EQUIPTMENT CHECK 000A 53000016 DC AL1(ERR630-ERR620-2) 000A 53200016 DC X'02' BUS OUT CHECK 000A 53400016 DC AL1(ERR622-ERR620-4) 000A 53600016 DC X'01' INTERVENTION REQUIRED 53800015 DC AL1(ERR628-ERR620-6) 54000015 DC X'00' COMMAND REJECT 54200015 DC AL1(ERR630-ERR620-8) 54400015 DC X'05' OVERRUN 54600015 DC AL1(ERR630-ERR620-10) 54800015 DC X'0C' LOAD POINT 55000015 DC AL1(ERR632-ERR620-12) 55200015 DC X'04' DATA CHECK 55400015 DC AL1(ERR610-ERR620-14) 55600015 DC X'2F' END OF TEST 55800015 DC AL1(ERR630-ERR620-16) 56000015 EJECT 56200015 * 56400015 * BUS OUT CHECK 56600015 * 56800015 ERR622 TM IOBECT(IOBRG),IOBOVR 5 BUS OUTS 57000015 BC 1,ERR433 BRANCH YES 57200015 * 57400015 IC ERREG1,IOBECT(IOBRG) GET COUNT 57600015 LA ERREG1,16(ERREG1) ADD 1 57800015 STC ERREG1,IOBECT(IOBRG) STORE COUNT 58000015 * 58200015 CLI 0(CCWREG),CMDCTL BUS OUT ON NO-OP 58400015 BC 8,ERR624 BRANCH YES BSR DONE 58600015 * 58800015 BCR 15,ERREG2 GO RETRY COMMAND 59000015 * 59200015 * HAD BUS OUT ON NOP COMMAND FETCH GO TO LOAD 1 IGNORE B. O. 59400015 * 59600015 ERR624 OI IOBFL3(IOBRG),IOBENT SET SWITCH 59800015 LA ERREG1,LOAD1 GET LOAD 1 ADDRESS 60000015 BC 15,ERR436 GO XCTL 60200015 * 60400015 * INTERVENTION REQUIRED 60600015 * 60800015 ERR628 TM IOBCSW+4(IOBRG),CSWDVE DEVICE END. 2617 61300018 BC 8,ERR434 BRANCH NO - MESSAGE,RESTART 61800015 * 62000015 TM IOBSNS(IOBRG),DATACK MUST BE DATA CHECK 62200015 BC 1,ERR610 BRANCH YES (ERG) 62400015 * 62600015 * EQ.CK.,O.R.,DCC,C.R.,OR NONE 62800015 * 63000015 ERR630 BC 15,ERR433 BRANCH TO LOGOUT 63200015 * 63400015 * LOAD POINT 63600015 * 63800015 ERR632 TM IOBFL3(IOBRG),IOBTPC TAPE CLEANER ACTION 64000015 BC 1,ERR604 BRANCH YES 64200015 * 64400015 NI IOBFL1(IOBRG),X'FF'-IOBERR MARK PERM ERROR 64600015 BCR 15,ERREG2 RETURN 64800015 EJECT 65000015 * 65200015 * BUILD NOISE OR ERG DATA CHECK MESSAGES 65400015 * 65600015 ERR610 UNPK UNITID(4),UCBADDR(3,UCBREG) 65900019 MVI OPCODE,COMMA 66200015 L ERREG1,IOBCSW(IOBRG) 66400015 SH ERREG1,ERRCN1 BACK UP BY 8 66600015 UNPK OPCODE+1(3),0(2,ERREG1) 66800015 MVI STATUS,COMMA 67000015 UNPK STATUS+1(5),IOBCSW+4(3,IOBRG) 67200015 MVI SENSE,COMMA 67400015 UNPK SENSE+1(11),UCBSNS(6,UCBREG) 67600015 MVI LOC,COMMA 67800015 UNPK LOC+1(9),DCBBLK(5,DCBREG) SET LOC. IN DATA SET 68000015 TR UNITID+1(VOLSER-UNITID-1),TRANT-X'EE' TRANSLATE 000E 68100017 TM IOBFL3(IOBRG),IOBROR ROR IN PROGRESS 000E 68200017 BC 1,ERR611 BRANCH YES 000E 68300017 TM IOBFL1(IOBRG),IOBMD1 REPOSIT. 68600015 BC 1,ERR601 YES- BRANCH 68800015 ERR611 OI ESVSUM,ESVNSE SET NOISE IN ESV AREA 000J 68850019 L ERREG1,TSTDEB-1(TSTREG) GET DEB ADDRESS 000L 68900019 TM DEBOFL(ERREG1),X'10' IS EMULATOR BIT ON 000L 68950019 BC 8,ER611A NO, SKIP PERM. ERROR SET 000L 69000019 * 000L 69050019 NI IOBFL1(IOBRG),X'DF' MARK PERMANENT ERROR 000L 69100019 * 69200015 * TEST FOR PREVIOUS MESSAGE 69400015 * 69600015 ER611A TM IOBFL3(IOBRG),IOBIN1 PREVIOUS MESSAGE 000L 69800019 BC 1,ERR60B BRANCH YES - NO MORE 70000015 OI IOBFL3(IOBRG),IOBIN1 NO - SET MESSAGE SWITCH 70200015 MVC COMMENT(18),IGNORE IN CASE ERP NOT IN PROGRESS 70400015 TM IOBECT+1(IOBRG),X'FF' ERP IN PROGRESS 70600015 BC 8,ERR602 NO- BRANCH 70800015 MVC COMMENT(18),DROPREC YES- WOULD HAVE DROPPED REC 71000015 BC 15,ERR602 CONTINUE 71200015 EJECT 71400015 * 71600015 * UPDATE ERG DATA CHECK COUNT 71800015 * 72000015 ERR601 IC ERREG1,IOBECT+1(IOBRG) GET ERG COUNTER 72200015 LA ERREG1,16(ERREG1) ADD 1 TO COUNT 72400015 STC ERREG1,IOBECT+1(IOBRG) STORE UPD. COUNT 72600015 LH ERREG1,ESVERG GET ERG COUNT 000J 72650019 LA ERREG1,1(ERREG1) ADD 1 TO IT 000J 72700019 STH ERREG1,ESVERG STORE UPDATED COUNT 000J 72750019 TM IOBECT+1(IOBRG),X'40' 3 RETRIES 72800015 BC 1,ERR435 BRANCH YES (4 ERG'S) 000F 73000017 ERR602 DS 0H 73200015 OI IOBECT+1(IOBRG),X'01' SET SWITCH FOR APPENDAGE 3636 73210018 CLI UCBVSER(UCBREG),X'00' VALID VOL SER 000E 73230017 BC 8,ERR603 BRANCH NO 000E 73260017 * 000E 73290017 MVC VOLSER+1(6),UCBVSER(UCBREG) MOVE TO MESSAGE 000E 73320017 ERR603 MVI VOLSER,X'6B' MOVE IN COMMA 000E 73350017 L ERREG4,0(VECREG) TCB POINTER 73400015 L ERREG4,0(ERREG4) TCB ADDRESS 73600015 L ERREG4,TCBTIOT(0,ERREG4) TIOT PTR 73800015 MVC JOBN+1(8),0(ERREG4) SET UP JOB NAME 74000015 MVI JOBN,X'6B' MOVE IN COMMA 000E 74100017 LR 3,TSTREG SAVE REG 74200015 LA 1,MSG POINT AT MESSAGE 74400015 WTO MF=(E,(1)) WRITE ON CONSOLE 74600015 LR TSTREG,3 RESTORE REG 74800015 ERR60B DS 0H 75000015 SVC EXCPER 75200015 SVC 3 75400015 * 75800015 * SET UP TO REPOSITION OFF LOAD POINT 76000015 * 76200015 ERR604 SR ERREG4,ERREG4 CLEAR REGISTER 76400015 IC ERREG4,IOBECT(IOBRG) GET POSITIONING COUNT 76600015 LA ERREG1,3 MAX COUNT (RF. ALWAYS DECR. 1) 76800015 SR ERREG1,ERREG4 NO. OF BACK SPACES 77000015 BC 8,ERR607 DONE - OUT 77200015 TM IOBFL3(IOBRG),CNTFLG RD BK TAPE CLEANING 77400015 BC 1,ERR608 YES - SKIP 77600015 BCTR ERREG1,0 READ FWD. - ONE LESS RECORD 77800015 ERR608 MVI IOBMDB(IOBRG),CMDFSR REVERSE DIRECTION. 000G 78000018 ERR606 STC ERREG1,IOBECT(IOBRG) RESTORE - POSITIONING COUNT.000G 78200018 NI IOBFL3(IOBRG),X'FF'-IOBTPC-CNTFLG RESET FLAGS 78400015 SVC EXCPER 78600015 SVC 3 78800015 EJECT 79000017 ERR607 TM IOBFL3(IOBRG),CNTFLG READ BACK TAPE CLEANING 79200015 BC 1,ERR608 YES- ONE MORE RECORD TO GO 79400015 * 000E 79450017 TM IOBFL3(IOBRG),IOBROR ROR IN PROGRESS 000E 79500017 BC 1,ERR609 BRANCH YES 000E 79550017 NI IOBFL1(IOBRG),X'FF'-IOBMD1 NO-DONE-NO MORE POSIT. 79600015 BC 15,ERR608 79800015 ERR609 OI IOBFL2(IOBRG),IOBROC SET IOS USE RORCCW 000E 79830017 BC 15,ERR606 GO READ OFF LOAD POINT 000G 79910018 * 000J 79915019 * TEST FOR AND UPDATE OF VOLUME ERROR STATISTICS OPTION 000J 79920019 * 000J 79925019 ERR600 L ERREG1,48(UCBREG) GET POINTER TO STAT ENTRY 000J 79930019 TM 48(UCBREG),X'C0' TEST FOR ESV OPTION 000J 79935019 BC 8,ER600B BRANCH IF NO ESV 000J 79940019 * 000J 79945019 BC 4,ER600A BRANCH IF 16 BYTE OPTION 000J 79950019 * 000J 79955019 L SAVREG,20(ERREG1) GET STAT ERG AND CLN COUNT 000J 79960019 A SAVREG,ESVERG ADD ERP COUNTS 000J 79965019 ST SAVREG,20(ERREG1) STORE UPDATED STAT COUNTS 000J 79970019 ER600A MVC 8(1,ERREG1),ESVSUM MOVE WR/RD STATS INTO ESV 000J 79975019 NI 48(UCBREG),X'EF' RESET ENTRY FLAG SET IN LD1 000J 79980019 ER600B BCR 15,ERRLNK RETURN 000J 79985019 * 80000015 * -LDPT-0---1---2---3---4-DCK-5 80200015 * POSITION 5 IS THE STARTING POINT FOR READ FORWARD 80400015 * POSITION 4 IS THE STARTING POINT FOR READ BACKWARD 80600015 * NOTE-READ BACKWARD ALWAYS STARTS IN FRONT OF THE RECORD IN ERROR 80800015 * AND REQUIRES ONE LESS BACK SPACE OPERATION AND ONE MORE FORWARD 81000015 * SPACE BEFORE THE READ RETRY CAN BE INITIATED 81200015 * 81400015 CNOP 0,4 81600015 MSG DS 0C OUTPUT MESSAGE 81800015 DC AL2(JOBN+9+4-IDENT) MESSAGE LENGTH 82000015 DC AL2(0) 82200015 IDENT DC C'IEA000I ' MESSAGE ID 82400015 COMMENT DS 0C 000E 82500017 ERRGAP DC CL18'ERASE G-CONTINUE ,' ERASE GAP MESSAGE 000E 82600017 UNITID DC C'XXX' UNIT ADDRESS 82800015 OPCODE DC C' XX' CCW OP CODE 83000015 STATUS DC C' XXXX' CCW STATUS 83200015 SENSE DC C' XXXXXXXXXX' SENSE DATA 83400021 LOC DC C' XXXXXXXX' LOC WITHIN DATA SET 83600021 VOLSER DC C' ' VOL SER NO 000E 83800017 JOBN DC C' ' JOB NAME 000E 84000017 RTEDES DC X'00030004' ROUTING AND DESCRIPTOR CODES000G 84100018 DROPREC DC CL18'NOISE-ERP IN PROG,' 000E 84200017 IGNORE DC CL18'NOISE-FIRST RETRY,' 000E 84400017 TRANT DC C', 0123456789ABCDEF' 85000015 * 85200015 DS 0H ALIGN 85400017 ERRCN1 DC AL2(8) DECIMAL 8 85600015 * 85610019 * ESV EQUATES 85620019 * 85630019 ESVERG EQU ER2402+1016 ERG UPDATE AREA 000J 85640019 ESVCLN EQU ER2402+1018 CLEANER UPDATE AREA 000J 85650019 ESVSUM EQU ER2402+1020 WRITE/READ UPDATE AREA 000J 85660019 ESVTRD EQU X'80' TEMP RD MASK 000J 85670019 ESVTWR EQU X'40' TEMP WR MASK 000J 85680019 ESVPRD EQU X'08' PERM RD MASK 000J 85690019 ESVPWR EQU X'04' PERM WR MASK 000J 85700019 ESVNSE EQU X'02' NOISE BLOCK MASK 000J 85710019 END 85800015 ./ ADD SSI=05012792,NAME=IGE0101C,SOURCE=0 IEC1402B START X'00' 00020000 *201234800,35200,41200,41400 5RET 00030017 *0932042600 A40509 00035021 SPACE 1 00040000 * IOB DEFINITION 00060000 IOBFL1 EQU 0 FLAGS 1 00080000 IOBFL2 EQU 1 FLAGS 2 00100000 IOBSNS EQU 2 SENSE DATA 00120000 IOBCOD EQU 4 ECB CODE 00140000 IOBCSW EQU 8 CSW STORAGE 00160000 IOBFL3 EQU 8 FLAGS 3 00180000 IOBCC EQU 16 CONDITION CODE 00200000 IOBST EQU 17 START ADDRESS 00220000 IOBDCB EQU 21 DCB POINTER 00240000 IOBMDB EQU 24 MODIFIER BYTE 00260000 IOBRST EQU 25 RESTART POINTER 00280000 IOBBCI EQU 28 BLOCK COUNT INCR. 00300000 IOBTPM EQU 29 T.P. EXTENT (M) BYTE 00320000 IOBECT EQU 30 ERROR COUNTS 00340000 IOBSK EQU 33 SEEK ADDRESS 00360000 IOBDAM EQU 32 DIRECT ACCESS EXTENT (M) BYTE 00380000 SPACE 2 00400000 * THESE FLAGS ARE IN IOB-FLAG 1 00420000 IOBCP1 EQU X'80' TYPE OF CHANNEL PROGRAM 00440000 IOBCP2 EQU X'40' TYPE OF CHANNEL PROGRAM 00460000 IOBERR EQU X'20' IOB ERROR FLAG 00480000 IOBEX EQU X'04' EXCEPT FLAG 00500000 IOBSRS EQU X'01' START/RESTART FLAG 00520000 IOBCEX EQU X'FF'-IOBEX CLEAR IOB EXCEPTION 00540000 IOBEXE EQU IOBEX+IOBERR EX + ERR FLAGS 00560000 IOBCXE EQU X'FF'-IOBEXE CLEAR EX + ERR FLAGS 00580000 SPACE 2 00600000 * THESE FLAGS ARE IN IOB-FLAG 3 00620000 IOBIN1 EQU X'80' INDICATOR 1 00640000 IOBENT EQU X'40' IOB ENTRY BIT 00660000 IOBRDE EQU X'20' READ ERROR CNT. 00680000 IOBBOE EQU X'10' BUS OUT ERROR CNT 00700000 IOBPRT EQU X'08' PUNCH RETRY BIT 00720000 IOBMSG EQU X'04' MESSAGE TYPE 00740000 IOBPR2 EQU X'02' QSAM PUNCH RETRY BIT 00760000 IOBLOG EQU X'01' LOGOUT FLAG 00780000 SPACE 2 00800000 * UCB DEFINITION 00820000 UCBFL1 EQU 6 UCB FLAGS 00840000 UCBSTI EQU 9 STATISTICS POINTER 00860000 UCBNRY EQU X'40' UCB NOT READY 00880000 SPACE 2 00900000 * ECB DEFINITIONS 00920000 ECBFL EQU 0 FLAGS 00940000 SPACE 2 00960000 * DCB DEFINITION 00980000 DCBFL EQU 44 FLAGS 01000000 DCBORG EQU 26 DCBDSORG 01020000 DCBMCF EQU 42 DCBMACRF 01040000 DCBSPA EQU X'80' SPECIAL ACCESS 01060000 DCBPER EQU X'C0' PERMANENT ERROR FLAGS 01080000 DCBEX EQU X'40' EXCEPTION CONDITION 01100000 DCBQSM EQU X'40' DCB QSAM BIT 01120000 PHYSEQ EQU X'40' DCB PHYSICAL SEQ 01140000 DCBCEX EQU X'FF'-DCBPER CLEAR DCB EXCEPTION 01160000 SPACE 2 01180000 * TWELVE STAR DEFINITION 01200000 TSTLNK EQU 0 FORWARD 12* LINK 01220000 TSTUCB EQU 2 UCB POINTER 01240000 TSTTCB EQU 4 TCB ID BYTE 01260000 TSTIOB EQU 5 IOB POINTER 01280000 TSTPR EQU 8 PRIORITY OF ENTRY 01300000 TSTDEB EQU 9 DEB POINTER 01320000 SPACE 2 01340000 * STATUS INDICATORS 01360000 CSWPCI EQU X'80' PCI 01380000 CSWSMD EQU X'40' STATUS MODIFIER 01400000 CSWIL EQU X'40' WRONG LENGTH IND. 01420000 CSWCUE EQU X'20' CONTROL UNIT END 01440000 CSWPC EQU X'20' PROGRAM CHECK 01460000 CSWBSY EQU X'10' BUSY 01480000 CSWPCK EQU X'10' PRTECTION CHECK 01500000 CSWCHE EQU X'08' CHANNEL END 01520000 CSWDVE EQU X'04' DEVICE END 01540000 CSWUCK EQU X'02' UNIT CHECK 01560000 CSWUEX EQU X'01' UNIT EXCEPTION 01580000 CSWCCK EQU X'01' CHAINING CHECK 01600000 SPACE 2 01620000 * REGISTER DEFINITION 01640000 ERREG3 EQU 0 WORK REG 01660000 TSTREG EQU 1 TWELVE STAR REG 01680000 ERREG2 EQU 2 WORK REG 01700000 CRBREG EQU 3 CURRENT RB REG. 01720000 CCWREG EQU 4 CCW ADDRESS REG 01740000 UCBREG EQU 7 UCB ADDRESS REG 01760000 COMREG EQU 8 COMMUNICATION TABLE REG 01780000 SAVREG EQU 9 SAVE REG. 01800000 IOBRG EQU 10 IOB ADDRESS REG 01820000 ERREG4 EQU 11 WORK REG 01840000 ERRLNK EQU 12 LINK REG 01860000 ERREG1 EQU 13 WORK REG 01880000 ERRETR EQU 14 RETURN REG 01900000 BASREG EQU 15 BASE REGISTER 01920000 SPACE 2 01940000 * MISC. DEFINITIONS 01960000 ERRBLK EQU X'40' BLANK 01980000 INTREQ EQU X'40' INTERVENTION REQUIRED 02000000 CMDMD2 EQU X'20' COMMAND DATA MODE 2 02020000 ERRDCT EQU X'20' READ ERROR CNT. 02040000 IOBCC1 EQU X'10' CONDITION CODE OF SIO 02060000 IOSTUS EQU X'10' STATUS BIT 02080000 RDCNTL EQU X'06' READ SENSE OR CONTROL 02100000 IOBDCK EQU X'01' DATA CHECK FLAG 02120000 IOCLBT EQU X'00' CLEAR BYTE 02140000 ANYPCH EQU IOBPRT+IOBPR2 BOTH PUNCH RETRY FLAGS 02160000 SPACE 1 02180000 RETURN EQU 3 RETURN VALUE 02200000 EXCPER EQU 15 02220000 LOC016 EQU 16 COMMUNICATION TABLE 02240000 VECTXL EQU 44 VECTOR TO XCTL RNT. 02260000 VECT68 EQU 68 INDEX TO INTERPRETER ROUTINE 02280000 VECT72 EQU 72 INDEX TO WRITE TO OPERATOR 02300000 STATAB EQU 112 INDEX TO STATISTICS TABLE 02320000 WTORTN EQU 253 LOAD NAME TO WTO RTN. 02340000 STATUP EQU 254 LOAD NAME TO STAT. UPDATE RNT. 02360000 FVRTRY EQU X'05' FIVE RETRIES ON DATA CK 5RET 02370017 ERRUNCS EQU X'02' UNUSUAL CMD SEQ SENSE 2187 02371018 ONE EQU X'01' ERROR COUNT OF ONE CCHB 02373018 ACPTUCS EQU X'80' ACCEPT UNUS CMD SEQ IND CCHB 02376018 EJECT 02380000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02400000 * THIS ENTRY IS TO THE SECOND SECTION OF - 1402 - ERROR ROUTINE * 02420000 * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * ** * 02440000 * * 02460000 * WHEN ENTERED THE IOBEX AND THE IOBERR FLAGS WILL BE SET TO 1 BY * 02480000 * THE FIRST SECTION OF THE ERROR ROUTINE * 02500000 * ON RETURN THESE TWO FLAGS SHOULD BE INTERPRETED AS FOLLOWS. * 02520000 * IOBEX ON AND IOBERR ON - IOB IN CONTROL BY THE ERROR ROUTINE.* 02540000 * IOBEX ON AND IOBERR OFF - PERMANENT ERROR * 02560000 * IOBEX OFF AND IOBERR OFF - ERROR CORRECTED * 02580000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02600000 SPACE 1 02620000 USING ERR1402B,15 02640000 ERR1402B L IOBRG,TSTIOB-1(TSTREG) GET ADDRESS OF IOB 02660000 L COMREG,LOC016 ADDRESS OF COMMUNICATION TABLE 02680000 SPACE 1 02700000 TM IOBCSW+4(IOBRG),CSWUCK TEST FOR UNIT CHECK 02720000 BC 8,ERR540 NO, TEST STATUS 02740000 SPACE 1 02760000 * LINK TO THE INTERPRETER ROUTINE - THE BYTES FOLLOWING THE BALR 02780000 * INDICATE IN WHAT ORDER THE BITS ARE TO BE TESTED (BIT 3 ON OF 02800000 * THE CODE BYTE INDICATES STATUS) FOLLOWED BY AN INDEX VALUE THE 02820000 * INTERPRETER USES TO RETURN TO THIS ROUTINE 02840000 SPACE 1 02860000 LR SAVREG,BASREG SAVE BASE ADDRESS 02880000 L BASREG,VECT68(COMREG) GET ADDR. TO INTERP.ROUTINE 02900000 ERR526 BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 02920000 DC X'01' INTERVENTION REQUIRED 02940000 DC AL1(ERR552-ERR526-2) 2187 02960018 DC X'02' BUS OUT CHECK 02980000 DC AL1(ERR534-ERR526-4) 03000000 DC X'04' DATA CHECK 03020000 DC AL1(ERR536-ERR526-6) 03040000 DC X'00' COMMAND REFECT 03060000 DC AL1(ERR548-ERR526-8) 03080000 DC X'06' UNUSUAL COMMAND SEQUENCE 03100000 DC AL1(ERR555-ERR526-10) CCHB 03120018 DC X'2F' END OF TEST 03140000 DC AL1(ERR546-ERR526-12) 03160000 SPACE 1 03161018 * THE FOLLOWING CHECKS THE HIGH ORDER BIT OF IOBECT+1 CCHB 03162018 * FOR A FLAG SET BY THE FIRST LOAD OF THIS ERP AFTER IT CCHB 03163018 * RETRIES A READ (WITHOUT CNTRL) AFTER OCCURRENCE OF CCHB 03164018 * A CHANNEL ERROR. UNUSUAL CMD SEQ WILL BE ACCEPTED UNDER CCHB 03165018 * THESE CONDITIONS IF THIS IS NOT THE SECOND OCCURRENCE CCHB 03166018 SPACE 1 03167018 ERR555 TM IOBECT+1(IOBRG),ACPTUCS UNUS CMD SEQ AFTER CHAN ERR CCHB 03168018 BC 8,ERR548 NO-MARK PERM ERROR 03169018 XC IOBCSW+4(2,IOBRG),IOBCSW+4(IOBRG) CLEAR CSW STATUS CCHB 03169518 BC 15,ERR542 YES-ALLOW ERROR THROUGH CCHB 03170018 SPACE 1 03171018 SPACE 1 03180000 * BUS OUT CHECK 03200000 ERR534 TM IOBFL3(IOBRG),IOBBOE TEST BUS OUT EQU 1 03220000 BC 1,ERR546 BR- TO SET LOGOUT 03240000 OI IOBFL3(IOBRG),IOBBOE SET BUS OUT CNT TO 1 03260000 SVC EXCPER ERROR EXCP 03280000 SVC RETURN RETURN 03300000 SPACE 1 03320000 * DATA CHECK 03340000 ERR536 L CCWREG,IOBCSW(IOBRG) GET ADDRESS OF CCW 03360000 SH CCWREG,ERRCN1 BACK UP CCW BY 8 03380000 LTR CCWREG,CCWREG IS CCW ADDRESS ZERO OR NEGATIVE 03400000 BC 12,ERR546 YES, PERM. ERROR 03420000 TM 0(CCWREG),CMDMD2 TEST IF BINARY MODE 03440000 BC 1,ERR546 BR-TO INDICATE LOG OUT 03460000 TM IOBECT+1(IOBRG),FVRTRY FIVE RETRIES ON DATA CK 5RET 03480017 BC 1,ERR546 YES, LOGOUT 03500000 LH ERREG4,IOBECT(IOBRG) LOAD RETRY CTR 5RET 03510017 LA ERREG4,1(ERREG4) INCR. RETRY CTR 5RET 03520017 STH ERREG4,IOBECT(IOBRG) STORE NEW RETRY CTR 5RET 03530017 BC 15,ERR550 BR- TO GET WTO 03540000 SPACE 1 03560000 SPACE 1 03580000 * TEST STATUS INFORMATION 03600000 * LINK TO THE INTERPRETER ROUTINE - THE BYTES FOLLOWING THE BALR 03620000 * INDICATE IN WHAT ORDER THE BITS ARE TO BE TESTED (BIT 3 ON OF 03640000 * THE CODE BYTE INDICATES STATUS) FOLLOWED BY AN INDEX VALUE THE 03660000 * INTERPRETER USES TO RETURN TO THIS ROUTINE 03680000 SPACE 1 03700000 ERR540 LR SAVREG,BASREG SAVE BASE ADDRESS 03720000 L BASREG,VECT68(COMREG) GET ADDR. TO INTERP.ROUTINE 03740000 ERR541 BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 03760000 DC X'1A' PROGRAM CHECK 03780000 DC AL1(ERR543-ERR541-2) 03800000 DC X'1B' PROTECTION CHECK 03820000 DC AL1(ERR543-ERR541-4) 03840000 DC X'17' UNIT EXCEPTION 03860000 DC AL1(ERR543-ERR541-6) 03880000 DC X'19' INCORRECT LENGTH 03900000 DC AL1(ERR543-ERR541-8) 03920000 DC X'2F' END OF TEST 03940000 DC AL1(ERR542-ERR541-10) 03960000 SPACE 1 03980000 * ERROR CORRECTED 04000000 ERR542 NI IOBFL1(IOBRG),IOBCXE-IOBSRS RESET IOB EX, ERR, RESTART 04020000 TM IOBFL3(IOBRG),IOBPRT TEST FOR QSAM RETRY 04040000 MVI IOBFL3(IOBRG),IOCLBT CLEAR ERROR COUNTS 04060000 BC 1,ERR551 YES, UPDATE TO NEXT IOB 04080000 MVI IOBECT+1(IOBRG),IOCLBT CLEAR IOB ERROR COUNT 04100000 ERR544 LA ERREG1,STATUP GET LOAD NAME TO STAT. UPDATE 04160000 L ERRETR,VECTXL(COMREG) GET XCTL RNT. ADDR< 04180000 BCR 15,ERRETR BR-TO XCTL 04200000 SPACE 1 04220000 * PERMANENT ERROR 04240000 ERR543 TM IOBFL3(IOBRG),IOBPRT TEST QSAM RETRY A40509 04250021 BC 1,ERR551 YES - UPDATE NEXT IOB A40509 04260021 NI IOBFL1(IOBRG),X'FF'-IOBERR CLEAR ERROR FLAGS A40509 04270021 ERR545 SVC EXCPER ERROR EXCP 04280000 SVC RETURN 04300000 SPACE 1 04320000 SPACE 1 04340000 ERR546 OI IOBFL3(IOBRG),IOBLOG SET LOGOUT FLAG 04360000 ERR548 OI IOBFL3(IOBRG),IOBMSG SET MESSAGE TYPE TO 1 04380000 ERR550 LA ERREG1,WTORTN GET LOAD NAME TO WTO RTN. 04400000 L ERRETR,VECTXL(COMREG) GET ADDR. TO XCTL RTN. 04420000 BCR 15,ERRETR XCTL TO WTO RTN. 04440000 SPACE 1 04460000 ERR551 SH IOBRG,ERRCN1 GET QSAM LINK FIELD 04480000 L IOBRG,0(IOBRG) GET NEXT IOB 04500000 LA IOBRG,8(IOBRG) RESTORE IOB VALUE FOR IOS 04520000 OI IOBFL1(IOBRG),IOBEXE SET IOB EX AND ERR FLAGS 04540000 IC ERREG4,TSTTCB(TSTREG) SAVE TCB ID 04560000 ST IOBRG,TSTTCB(TSTREG) STORE IOB ADDRESS IN 12 * 04580000 STC ERREG4,TSTTCB(TSTREG) RESTORE TCB ID 04600000 SVC EXCPER ERROR EXCP 04620000 SVC 3 RETURN 04640000 SPACE 1 04642018 ERR552 TM IOBSNS(IOBRG),ERRUNCS UNUSUAL CMD SEQ IN SENSE 2187 04644018 BC 8,ERR553 NO-CHECK FOR INTERCEPT 2187 04646018 NI IOBFL1(IOBRG),X'FF'-IOBERR CLEAR ERP IN CNTRL FLAG 2187 04648018 BC 15,ERR550 BR TO WTO ROUTINE 2187 04650018 SPACE 1 04650218 ERR553 CLI IOBCOD(IOBRG),X'7E' IS IOB INTERCEPTED 2656 04650418 BC 7,ERR550 NO SEND A MESSAGE 2656 04650618 ERR553A NI IOBFL1(IOBRG),X'FF'-IOBSRS YES,RESET THE RESTART FLG2656 04650818 MVI IOBCOD(IOBRG),X'7F' SET NORMAL COMPLETION CODE 2656 04651018 BC 15,ERR550 BR TO WTO ROUTINE 2656 04651218 SPACE 1 04652018 DS 0H 04660000 ERRCN1 DC AL2(8) DECIMAL 8 04680000 ERRCN2 DC AL2(10) MULTIPLIER CONSTANT 04700000 END 04720000 ./ ADD SSI=04032726,NAME=IGE0102H,SOURCE=0 IGE0102H START X'00' 00300013 * RELEASE 16 DELETIONS 00320000 *1664 CI0A 00330016 * RELEASE 17 DELETIONS 00340000 * RELEASE 18 DELETIONS 00360000 *0813 CI0E 00370018 * RELEASE 19 DELETIONS 00380000 *0833009000-900000 I19072 00390019 *0833 A29178 00395019 * A30803 00397019 * RELEASE 20 DELETIONS 00400000 *0902145000,147000,254000,355000,363000,425000-427000,430000, A32176 00401000 *0902432000-434000,437000,439000-441000,444000,446000-448000, A32176 00402000 *0902451000,453000-455000,458000,460000-462000,465000,468000- A32176 00403000 *0902470000,473000,475000-477000,480000,482000-484000,487000, A32176 00404000 *0902489000-491000,494000,496000-498000,500000,503000,508000- A32176 00405000 *0902510000,515000,520000-528000,531000-532000,534000-536000, A32176 00406000 *0902538000-544000,548000-550000,552000,560000-567000,572000, A32176 00407000 *0902577000-579000,587000,589000,591000-596000,600000-603000 A32176 00408000 *0902 A33173 00410000 * RELEASE 21 DELETIONS 00420000 * RELEASE 22 DELETIONS 00440000 * RELEASE 23 DELETIONS 00460000 * RELEASE 24 DELETIONS 00480000 *STATUS CHANGE LEVEL 004 00540000 SPACE 1 00600013 *********************************************************************** 00700019 * * 00800019 * 2321 ERROR RECOVERY PROCEDURE - LOAD 2 * 00900019 * * 01000019 * * 01100019 * * 01200019 * FUNCTION: ANALYZE STATUS AND SENSE DATA AND ATTEMPT ERROR * 01300019 * RECOVERY. IF THE ERROR IS CORRECT, PROCEED IN A * 01400019 * NORMAL MANNER. IF A PERMANENT ERROR IS DETECTED, * 01500019 * INDICATE IT TO THE USER BY A COMPLETION CODE IN * 01600019 * THE ECB AND A MESSAGE ON THE SYSTEM CONSOLE. * 01700019 * * 01800019 * ENTRY: ERLOD2 FROM LOAD 1 FOR THE FOLLOWING ERRORS: * 01900019 * 1. CHANNEL OR INTERFACE CONTROL CHECK * 02000019 * 2. EQUIPMENT CHECK * 02100019 * 3. NO RECORD FOUND WITH MISSING ADDRESS MARKER * 02200019 * 4. SEEK CHECK * 02300019 * 5. BUS OUT PARITY * 02400019 * 6. OVERRUN * 02500019 * 7. CHAINING CHECK * 02600019 * 8. OVERFLOW INCOMPLETE * 02700019 * * 02800019 * INPUT: REQUEST ELEMENT POINTER IN REGISTER 1 * 02900019 * * 03000019 * OUTPUT: NONE * 03100019 * * 03200019 * EXT REF: NONE * 03300019 * * 03400019 * EXITS: 1. ERREXCP EXIT TO I/O SUPERVISOR TO RE-EXECUTE * 03500019 * THE CHANNEL PROGRAM IN ERROR. * 03600019 * 2. SVC 3 EXIT TO RETURN CONTROL TO THE SUPERVISOR * 03700019 * AND RELINQUISH CONTROL OVER THE TRANSIENT AREA.* 03800019 * 3. XCTL EXIT TO WRITE TO OPERATOR. RETURN * 03900019 * WILL BE MADE FROM THESE ROUTINES TO THE * 04000019 * SUPERVISOR VIA SVC 3. * 04100019 * * 04200019 * ERR MSGS: CONSOLE MESSAGES TO INDICATE ERROR CONDITIONS: * 04300019 * 1. I/O ERROR * 04400019 * * 04500019 * NOTES: IOB EXCEPTION AND IOB ERROR FLAGS ARE INTERPRETED * 04600019 * AS FOLLOWS: * 04700019 * 1. IOBEX ON AND IOBERR ON, ERR RTN IN CONTROL. * 04800019 * 2. IOBEX ON AND IOBERR OFF, PERMANENT ERROR. * 04900019 * 3. IOBEX OFF AND IOBERR OFF, NO ERR. OR CORRECTED.* 05000019 * * 05100019 * TABLES: IOB AND CCH'S ERPIB TABLE. * 05200019 * * 05300019 * OPERATION: THIS ROUTINE CHECKS THE STATUS AND SENSE BYTES * 05400019 * STORED IN THE UCB AND IOB AND TAKES ACTION AS * 05500019 * SPECIFIED IN THE DEVICE STANDARDS. STATISTICS ARE * 05600019 * KEPT AS TO THE KIND AND FREQUENCY OF ERRORS. * 05700019 * THESE STATISTICS ARE USED BY THE CE TO ISOLATE * 05800019 * AND RECOGNIZE PROBLEM AREAS. * 05900019 * * 06000019 *********************************************************************** 06100019 EJECT , I19072 06200019 * 06300019 * ** REGISTER DEFINITION ** 06400019 * 06500019 TSTREG EQU 1 12* REG. I19072 06600019 IOBRG EQU 2 IOB BASE REG I19072 06700019 DEBREG EQU 3 DEB. REG. I19072 06800019 DCBREG EQU 4 DCB BASE REG I19072 06900019 UCBRG2 EQU 4 UCB WK AR BASEREG I19072 07000019 CCWREG EQU 5 ERR CCW REG I19072 07100019 CVTREG EQU 6 CVT BASE REG I19072 07200019 UCBREG EQU 7 UCB. REG. I19072 07300019 LNKRG2 EQU 9 LINKAGE REG AND UT 4 I19072 07400019 ERREG1 EQU 10 UTILITY REG 1 I19072 07500019 ERREG2 EQU 11 UTILITY AND PARAM REG 2 I19072 07600019 ERCCWR EQU 12 ERP CCW PTR (UTIL 3) I19072 07700019 ERREG3 EQU 12 UTIL 3 (ERP CCW PTR) I19072 07800019 ERRETR EQU 14 IOS RETURN I19072 07900019 BASREG EQU 15 BAS REG I19072 08000019 SPACE 2 I19072 08100019 * ** THESE FLAGS ARE IN IOB-FLAG 1 ** 08200019 IOBERR EQU X'20' IOB ERROR FLAG I19072 08300019 IOBEX EQU X'04' EXCEPT FLAG I19072 08400019 IOBSRS EQU X'01' START/RESTART FLAG I19072 08500019 SPACE 2 I19072 08600019 * ** THESE FLAGS ARE IN IOB-FLAG 2 ** 08700019 IOBRHA EQU X'10' READ HOME ADDR. FLAG I19072 08800019 IOBNET EQU X'08' NO TEST FOR OUT OF I19072 08900019 * EXTENT I19072 09000019 IOBPREV EQU X'04' PREVIOUS ENTRY FLAG I19072 09100019 SPACE 2 I19072 09200019 * ** THESE FLAGS ARE IN IOB-FLAG 3 ** 09300019 IOBIN1 EQU X'80' INDICATOR 1 I19072 09400019 IOBPIK EQU X'40' PIK FLAG I19072 09500019 IOBNRF EQU X'20' NO RECORD FOUND FLAG I19072 09600019 IOBBOE EQU X'10' BUS OUT/EQUIP CHK CNTR I19072 09700019 IOBRSF EQU X'08' RESTORE FLAG I19072 09800019 IOBMSG EQU X'04' MESSAGE TYPE I19072 09900019 IOBSWP EQU X'02' SWEEP FLAG I19072 10000019 IOBLOG EQU X'01' LOG OUT INDICATION I19072 10100019 SPACE 2 I19072 10200019 * ** FLAGS AND COUNTS IN IOB ERROR BYTE 1. SYMBOL 'IOBECT' ** 10300019 * BIT 0-7 DATA CHECK COUNT 10400019 SPACE 2 I19072 10500019 * ** FLAGS AND COUNTS IN IOB ERROR BYTE 2. SYMBOL 'IOBECT+1' ** 10600019 IOBWRT EQU X'80' INDICATOR TO STAT. I19072 10700019 * UPDATE I19072 10800019 * BIT 1-7 OVERRUN,SEEK CHK, AND CHAINING CHK COUNT 10900019 SPACE 2 I19072 11000019 * ** FLAGS IN UCB ** 11100019 UCBNRY EQU X'40' UCB NOT READY I19072 11200019 UCBERR EQU X'01' ERROR RTN. IN CONTROL I19072 11300019 UCBSYS EQU X'02' SYSRES FLAG I19072 11400019 SPACE 2 I19072 11500019 * ** ASR BIT DEFINITIONS ** 11600019 CSWCDC EQU 8 CHAN DATA CHK I19072 11700019 CSWCCC EQU 4 CHAN CTRL CHK I19072 11800019 CSWICC EQU 2 INTERFACE CTRL CHK I19072 11900019 NORETRY EQU 1 CCH'S ERPIB NO-RTY FLG I19072 12000019 ERPIBFLG EQU 4 ERPIB FLAGS BYTE OFFSET I19072 12100019 CCHDELMT EQU X'FF' CCH'S ERPIB TABLE I19072 12200019 * DELIMITER I19072 12300019 TABLELGN EQU 8 ERPIB TABLE ENTRY I19072 12400019 * LENGTH I19072 12500019 SPACE 2 I19072 12600019 * ** STATUS INDICATORS ** 12700019 CSWSMD EQU X'40' STATUS MODIFIER I19072 12800019 CSWIL EQU X'40' WRONG LENGTH IND. I19072 12900019 CSWPC EQU X'20' PROGRAM CHECK I19072 13000019 CSWBSY EQU X'10' BUSY I19072 13100019 CSWPCK EQU X'10' PRTECTION CHECK I19072 13200019 CSWCHE EQU X'08' CHANNEL END I19072 13300019 CSWDVE EQU X'04' DEVICE END I19072 13400019 CSWUCK EQU X'02' UNIT CHECK I19072 13500019 CSWUEX EQU X'01' UNIT EXCEPTION I19072 13600019 CSWCCK EQU X'01' CHAINING CHECK I19072 13700019 SPACE 2 I19072 13800019 * ** CCW COMMANDS ** 13900019 CMDTIC EQU X'08' TIC COMMAND I19072 14000019 CMDFSK EQU X'07' FULL SEEK CMD CODE I19072 14100019 CCWSK EQU X'0B' HEAD OR CYL SEEK I19072 14200019 * INDICATE I19072 14300019 CC EQU X'40' CMD CHAIN I19072 14400019 SKIP EQU X'10' NO DATA XFER I19072 14600019 SPACE 2 I19072 14800019 * ** FLAG BITS IN HOME ADDRESS ** 14900019 TRKBAD EQU X'02' BAD TRACK I19072 15000019 TRKALT EQU X'01' ALTERNATE TRACK I19072 15100019 SPACE 2 I19072 15200019 * ** POINTERS TO THE DIRECT ACCESS CHARACTERISTICS TABLE ** 15300019 HEADNO EQU 3 INDEX TO NUMBER OF I19072 15400019 * HEADS/CYL I19072 15500019 * 15600019 * ** MISCELLANEOUS EQUATES ** 15700019 * 15800019 IOCLBT EQU X'00' CLEARING BYTE I19072 15900019 RTNWTO EQU 253 WTO NAME I19072 16000019 ONEPLUS EQU X'7E' GREATER THAN ONE MASK I19072 16100019 TWOMSK EQU X'7D' EQUAL TO MASK I19072 16200019 THIRTEEN EQU X'0D' I19072 16300019 TEN EQU X'0A' I19072 16400019 ADJMSK EQU X'01' ADJACENT HD MASK I19072 16500019 RETURN EQU 3 RETURN SVC NO. I19072 16600019 EREXCP EQU 15 ERROR EXCP SVC NO. I19072 16700019 CVTLOC EQU 16 LOC OF CVT ADDR I19072 16800019 IOBEQU EQU X'10' EQUIP CHK SENSE I19072 16900019 IOBBUS EQU X'20' BUS OUT SENSE I19072 17000019 IOBTKC EQU X'02' TRACK COND CHK SENSE I19072 17100019 IOBSKCHK EQU X'01' SEEK CHK SENSE I19072 17200019 NRFSNS EQU X'08' NO RECORD FOUND SENSE I19072 17300019 IOBOVRN EQU X'04' OVERRUN SENSE I19072 17400019 IOBAMRK EQU X'02' SENSE MSSNG ADDR MRK I19072 17500019 IOBCMDR EQU X'80' COMMAND REJECT IN SENSE I19072 17600019 IOBOVF EQU X'01' SENSE OVERFLOW BIT I19072 17700019 UCBUNS EQU X'80' UNSAFE BIT I19072 17800019 SPACE 2 I19072 17900019 USING *,15 I19072 18000019 USING DEB,DEBREG I19072 18100019 USING IOB,IOBRG I19072 18200019 USING CVT,CVTREG I19072 18300019 USING UCB,UCBREG I19072 18400019 USING ERU,UCBRG2 I19072 18500019 USING RQE,TSTREG I19072 18600019 SPACE 5 I19072 18700019 ERLOD2 LH UCBREG,TSTUCB INITIALIZE I19072 18800019 LM IOBRG,DEBREG,TSTIOB CONTROL I19072 18900019 L CVTREG,CVTLOC REGISTERS I19072 19000019 L UCBRG2,UCBWK ERP WORK AREA I19072 19100019 SPACE 2 I19072 19200019 * 19300019 * ** CHECK FOR CTRL CHKS ** 19400019 * 19500019 TM IOBCSW+5,CSWCCC+CSWICC CHAN OR INT CTRL CHK I19072 19600019 BZ EQUCHK NO, CHECK FOR EQUIP CHK I19072 19700019 * 19800019 * ** CHECK FOR RETRY ENTRY FOR ERROR UCB ** 19900019 * 20000019 L ERREG1,CVTLOG GET LOGREC DCB I19072 20100019 L ERREG1,0(ERREG1) PICK UP CCH PARM PTR I19072 20200019 LTR ERREG1,ERREG1 IS CCH PRESENT I19072 20300019 BZ SKMSG NO, PERM ERR I19072 20400019 L ERREG1,0(ERREG1) PICK UP PARM I19072 20500019 ERASR1 CLI 0(ERREG1),CCHDELMT IS THIS LAST I19072 20600019 BE SKMSG YES,LOG AND MSG I19072 20700019 CLC 2(2,TSTREG),2(ERREG1) PARM=THIS UCB I19072 20800019 BE ERASR2 YES I19072 20900019 LA ERREG1,TABLELGN(ERREG1) NO,GET NEXT I19072 21000019 B ERASR1 CONTINUE SCAN I19072 21100019 ERASR2 TM ERPIBFLG(ERREG1),NORETRY TEST IF RETRY NOT I19072 21200019 MVI 0(ERREG1),X'00' CLEAR ERPIB AREA I19072 21300019 MVC 1(7,ERREG1),0(ERREG1) I19072 21400019 BNO CNTCHK RETRY I19072 21500019 B SKMSG GO LOG AND MSG I19072 21600019 * 21700019 * ** CHECK FOR EQUIP CHECK ** 21800019 * 21900019 EQUCHK TM IOBSNS,IOBEQU EQUIP CHK I19072 22000019 BZ NRFCHK NO, CHECK FOR NRF/MAM I19072 22100019 TM UCBSNS+2,UCBUNS UNSAFE BIT ON I19072 22200019 BO SKMSG YES, PERM ERR I19072 22300019 ERBUSO TM IOBFL3,IOBBOE CNT = 1 I19072 22400019 BO SKMSG YES, PERM ERR I19072 22500019 OI IOBFL3,IOBBOE NO, TURN IT ON I19072 22600019 B RSTRT GO RETRY I19072 22700019 * 22800019 * ** CHECK FOR NRF WITH MISS ADDR MARKER ** 22900019 * 23000019 NRFCHK TM IOBSNS+1,NRFSNS+IOBAMRK NRF/MAM I19072 23100019 BNO SKCHK NO, CHECK FOR SEEK CHK I19072 23200019 TM IOBCNT+1,ONEPLUS CNT GREATER THAN 1 I19072 23300019 BZ RSTRSET NO,BUILD RESTORE CP I19072 23400019 TM IOBCNT+1,TWOMSK CNT EQUAL 2 I19072 23500019 BZ ADJHD YES, RHA ON ADJ HD I19072 23600019 TM IOBFL3,IOBIN1 RTN FROM RHA ON ADJ HD I19072 23700019 BO SKMSG YES, SET FOR MSG I19072 23800019 CLI IOBCNT+1,THIRTEEN CNT EQUAL 13 I19072 23900019 BNL SKMSG YES, SET FOR MSG I19072 24000019 B RTRY NO, INCR CNT AND RETRY I19072 24100019 * 24200019 * ** CHECK FOR SEEK CHECK SENSE OR NO CC COMPARE FROM LOAD1 ** 24300019 * ** IOBNRF WILL BE ON IF LOAD1 ENCOUNTERED A NO CC COMPARE ** 24400019 * 24500019 SKCHK TM IOBSNS,IOBSKCHK SEEK CHECK SENSE I19072 24600019 BZ NRFBIT NO, CHECK FOR IOBNRF I19072 24700019 TM IOBSNS+1,IOBAMRK YES, IS MAM ALSO ON I19072 24800019 BZ CNTCHK NO, CHECK CNT I19072 24900019 B HARDER YES, PERM ERR I19072 25000019 NRFBIT TM IOBFL3,IOBNRF IOBNRF ON I19072 25100019 BZ BCHK NO, CHECK FOR BUS OUT I19072 25200019 NI IOBFL3,X'FF'-IOBNRF TURN NRF OFF I19072 25300019 OI IOBSNS,IOBSKCHK SFTWRE DETECT- A29178 25330019 OI UCBSNS,IOBSKCHK SK CHK A29178 25360019 B CNTCHK GO TO SEEK CHK RECOVERY A32176 25430000 * 25500019 * ** CHECK FOR BUS OUT PARITY ** 25600019 * 25700019 BCHK TM IOBSNS,IOBBUS BUS OUT I19072 25800019 BO ERBUSO YES I19072 25900019 * 26000019 * ** CHECK FOR OVERRUN OR CHAINING CHECK ** 26100019 * 26200019 TM IOBCSW+5,CSWCCK CHAINING CHK I19072 26300019 BO *+12 YES, SKIP OVERRUN CHECK I19072 26400019 TM IOBSNS,IOBOVRN OVERRUN I19072 26500019 BZ OFLOCHK NO, CHECK FOR OVERFLO I19072 26600019 * INC I19072 26700019 TM IOBCNT+1,TEN CNT EQUAL 10 I19072 26800019 BNO RTRY NO, INCR CNT AND RETRY I19072 26900019 OI IOBFL3,IOBMSG+IOBLOG MSG AND LOG ON I19072 27000019 LA ERREG2,ERPRHA SET ERCPBLD FOR RHA I19072 27100019 B PGMBLD GO BUILD CP I19072 27200019 * 27300019 * ** CHECK FOR OVERFLO INCOMPLETE - IF NOT, PERM ERR - IF YES, ** 27400019 * ** PERFORM RECOVERY ** 27500019 * 27600019 OFLOCHK TM IOBSNS+1,IOBOVF OVERFLO INC I19072 27700019 BZ HARDER NO, PERM ERR I19072 27800019 L CCWREG,IOBCSW GET CCW ADDR FROM CSW I19072 27900019 SL CCWREG,ERRCN1 SUBTRACT EIGHT I19072 28000019 TM IOBSNS,IOBTKC TEST FOR TRACK COND I19072 28100019 BZ OVFA NO,SKIP NEXT TEST I19072 28200019 TM UCBRHA,TRKBAD TEST FOR BAD TRACK TO I19072 28300019 * ALT I19072 28400019 BO OVFB YES,USE HA AS SEARCH ARG I19072 28500019 OVFA MVC UCBRHA+1(4),UCBSKA+3 USE SEEK ADDR FOR I19072 28600019 * SRCHARG I19072 28700019 OVFB DS 0H I19072 28800019 MVI UCBRHA+5,X'01' 'R' OF CCHHR = 1 I19072 28900019 CLC OFLOCCW3(32),0(CCWREG) TEST IF ERR IN ERP CH I19072 29000019 * PRO I19072 29100019 BE EROVF3 YES,FO OVFL CCW3 ONLY I19072 29200019 LA ERCCWR,OFLOCCW1 NO,BUILD RECOVERY CH PRO I19072 29300019 LA ERREG2,OFLCP OFLCP IN OVF AREA I19072 29400019 BAL LNKRG2,ERCPBLD DO IT I19072 29500019 LA ERCCWR,OFLOCCW4 SET TO ADDR FOR TIC BLD I19072 29600019 ST CCWREG,OFLOCCW5+4 SAVE ERR CCW POINTER I19072 29700019 LA ERREG1,2 SET UP COUNTER I19072 29800019 EROVF1 LA CCWREG,8(CCWREG) NEXT CCW I19072 29900019 CLI 0(CCWREG),CMDTIC TEST IF CMD=TIC I19072 30000019 BNE EROVF1A NO,CONSTRUCT TIC TO USER I19072 30100019 CLC OFLOCCW5+5(3),1(CCWREG) NXT CCW POINTS AT ERR I19072 30200019 * CCW I19072 30300019 BE EROVF2 YES SKIP TIC BUILD I19072 30400019 EROVF1A DS 0H I19072 30500019 ST CCWREG,0(ERCCWR) SET TIC ADDR I19072 30600019 MVI 0(ERCCWR),CMDTIC SET COMMAND CODE I19072 30700019 EROVF2 DS 0H I19072 30800019 LA ERCCWR,8(ERCCWR) INCR TO ADDR FOR TIC BLD I19072 30900019 BCT ERREG1,EROVF1 BACK TO SECOND POSITION I19072 31000019 L CCWREG,OFLOCCW5+4 RESTORE CCWREG TO ERRCCW I19072 31100019 EROVF3 DS 0H SET UP RECOVER CCW I19072 31200019 OI IOBFL1,IOBSRS SET RESTART FLAG A30803 31250019 LH ERREG2,6(CCWREG) GET ERRCCW COUNT I19072 31300019 LH ERREG1,IOBCSW+6 LOAD RESID COUNT I19072 31400019 SLR ERREG2,ERREG1 CCWCNT-RESIDUAL I19072 31500019 N ERREG2,ZERO CLEAR UPPER 2 BYTES I19072 31600019 AL ERREG2,0(CCWREG) ADD DATA ADDR+CNT-RESID I19072 31700019 ST ERREG2,OFLOCCW3 SAVE NEW DATA ADDR I19072 31800019 MVC OFLOCCW3(1),UCBSNS+5 SET CU GENERATED CMD I19072 31900019 * CODE I19072 32000019 MVC OFLOCCW3+4(1),4(CCWREG) COPY FLGS FROM ERRCCW I19072 32100019 MVC OFLOCCW3+6(2),IOBCSW+6 CNT=RESID I19072 32200019 CLC IOBCSW+6(2),ZERO TEST RESID=0 I19072 32300019 BNE EROVF4 NO, NORMAL I19072 32400019 MVI OFLOCCW3+7,X'01' SET CNT TO 1 I19072 32500019 OI OFLOCCW3+4,SKIP SET SKIP FLG I19072 32600019 EROVF4 B RSTRT EXIT,SCHED I/O I19072 32700019 * 32800019 * ** MOVE SKA TO IOB FOR MSG, CLR FLAGS, AND XCTL TO WTO ** 32900019 * 33000019 SKMSG MVC IOBRST,UCBSKA+3 SKA TO IOB I19072 33100019 OI IOBFL3,IOBMSG+IOBLOG LOG AND MSG ON I19072 33200019 BAL LNKRG2,HARDCLR CLEAR FLAGS I19072 33300019 OI IOBFL2,IOBRHA RHA = ON I19072 33400019 LA 13,RTNWTO WTO NAME I19072 33500019 L 14,CVTXCTL XCTL ADDR I19072 33600019 BR 14 GO I19072 33700019 * 33800019 * ** CHECK FOR MAX CNT AND, IF NOT, BUILD SEEK ARG AND CCW ** 33900019 * 34000019 CNTCHK TM IOBCNT+1,TEN CNT EQUAL TEN I19072 34100019 BO SKMSG YES, SET FOR MSG I19072 34200019 MVC UCBSEK2,UCBSKA+1 NO, SK TO DIFF ADDR I19072 34300019 XC UCBSEK2+2(3),SKMSK CHANGE S/C, STP, AND CYL I19072 34400019 CLI UCBSEK2+4,5 CYL TOO HIGH? A33173 34420000 BL SEKPT NO, SKIP ALTER A33173 34440000 MVI UCBSEK2+4,0 YES, SET CYL TO ZERO A33173 34460000 SEKPT DS 0H CONNECTOR A33173 34480000 LA ERREG2,ERPSEEK SET ERCPBLD PARM FOR SK I19072 34500019 RSTRBLD OI IOBFL3,IOBRSF SET RESTORE FLAG I19072 34600019 PGMBLD OI IOBFL2,IOBRHA SET RHA FLAG I19072 34700019 LA ERCCWR,UCBCCW1 SET TO ADDR FOR ERCPBLD I19072 34800019 BAL LNKRG2,ERCPBLD GO BUILD CP I19072 34900019 B INCR GO INCR CNT AND RSTRT I19072 35000019 * 35100019 * ** SET ERCPBLD PARM FOR RESTORE ** 35200019 * 35300019 RSTRSET LA ERREG2,ERPRSTR I19072 35400019 B RSTRBLD GO BUILD RESTORE CHAN A32176 35460000 * PGM A32176 35520000 * 35600019 * ** SET UP FOR RHA OF ADJ HD ON SAME STRIP ** 35700019 * 35800019 ADJHD MVC UCBSEK2,UCBSKA+1 GET SEEK ADDR I19072 35900019 XI UCBSEK2+5,ADJMSK CHANGE HD ADDR I19072 36000019 OI IOBFL3,IOBIN1 SET ADJ RHA INDICATOR I19072 36100019 LA ERREG2,ERPSKRHA SET PARM FOR SK/RHA I19072 36200019 B PGMBLD BUILD CHAN PGM A32176 36300000 * 36400019 * ** FLAG CLEARING SUBROUTINE ** 36500019 * 36600019 SOFTCLR NI IOBFL1,X'FF'-IOBEX IOBEX=0 I19072 36700019 HARDCLR NI IOBCNT,IOCLBT IOBCNT=0 I19072 36800019 NI IOBCNT+1,IOBWRT IOBCNT=0 (IOBWRT IS I19072 36900019 * PRESERVED) I19072 37000019 NI IOBFL1,X'FF'-IOBERR IOBERR=0 I19072 37100019 NI UCBFL1,X'FF'-UCBERR UCBERR=0 I19072 37200019 NI IOBFL2,X'FF'-IOBPREV IOBPREV=0 I19072 37300019 RTRYCLR NI IOBFL3,IOBMSG+IOBLOG CLR ALL BUT MSG AND LOG I19072 37400019 NI IOBFL2,X'FF'-IOBRHA IOBRHA=0 I19072 37500019 BR LNKRG2 RETURN TO CALLER I19072 37600019 * 37700019 * ** EXIT ROUTINE - ENTRY WILL DETERMINE THE TYPE OF EXIT AND ** 37800019 * ** IF IOBFL3 AND RHA ARE TO BE CLEARED ** 37900019 * 38000019 HARDER BAL LNKRG2,HARDCLR CLR FL3, RHA, IOBERR, I19072 38100019 * UCBERR I19072 38200019 B RSTRT+4 SKIP PREV FLG SET I19072 38300019 RTRY BAL LNKRG2,RTRYCLR CLEAR FL3 AND RHA I19072 38400019 INCR SR ERREG2,ERREG2 I19072 38500019 IC ERREG2,IOBCNT+1 FETCH I19072 38600019 LA ERREG2,1(ERREG2) INCR I19072 38700019 STC ERREG2,IOBCNT+1 REPLACE I19072 38800019 RSTRT OI IOBFL2,IOBPREV SET PREVIOUS ENTRY FLAG I19072 38900019 SVC EREXCP I19072 39000019 SVC RETURN I19072 39100019 ***************************************************************** 39200019 *ERCPBLD SETS UP A CHANNEL PROGRAM FOR EXECUTION 39300019 *ERREG2 IS THE SOURCE REG POINTING AT THE PROTOTYPE CH PRO 39400019 *ERCCWR IS THE TARGET (WHERE TO PUT IT) 39500019 *THE 5TH BYTE OF EACH PROTOTYPE CCW CONTAINS CONTROL INFORMATION 39600019 * A.WHETHER TO RELOCATE THE CCW AND ITS ARGUMENT ADDR. 39700019 * B.HOW TO RELOCATE IT 39800019 * C.END OF CHANNEL PROGRAM 39900019 * ERROR SENSE AND CSW ARE SAVED,APPROPRIATE FLAGS AND ADDR.S SET 40000019 ERCPBLD DS 0H BUILD CH PRO I19072 40100019 ST ERCCWR,IOBRST ERCCWR=TO,ERREG2=FROM I19072 40200019 OI IOBFL1,IOBSRS SET RESTART I19072 40300019 ERCPB2 IC ERREG1,5(ERREG2) PICK UP RELOCATE REG I19072 40400019 EX ERREG1,ERELOC LOAD PROPER BASE TO I19072 40500019 * RELOC I19072 40600019 AL ERREG1,0(ERREG2) ADD DISPL AND CMDCODE I19072 40700019 ST ERREG1,0(ERCCWR) PUT I19072 40800019 MVC 4(4,ERCCWR),4(ERREG2) MOVE 2ND HALF I19072 40900019 TM 5(ERREG2),ERREG1*16 TERMINATOR CHECK I19072 41000019 LA ERREG2,8(ERREG2) INCREMENT(FROM)LOC I19072 41100019 LA ERCCWR,8(ERCCWR) INCREMENT(TO)LOC I19072 41200019 BNO ERCPB2 CONTINUE BUILDING I19072 41300019 MVC UCBSSN(2),IOBSNS PUSH USER ERR CONTEXT I19072 41400019 MVC UCBCSW(7),IOBCSW+1 SAVE SENSE AND CSW I19072 41500019 BR LNKRG2 EXIT I19072 41600019 ERELOC LR ERREG1,0 ERREG1=PROPER BASE REG I19072 41700019 ***************************************************************** 41800019 ***************************************************************** 41900019 * 42000019 * 42100019 * 42200019 *CCW1 SK UCBSEK2,CC,6 SEEK VIA ARG IN UCBSEK2 42300019 ERPSKRHA DS 0F I19072 42400019 DC X'07' OP A32176 42500000 DC AL3(UCBSEK2-ERU) ARG A32176 42600000 DC X'40' CC A32176 42700000 DC AL1(UCBRG2) RELOCATE INFO FOR I19072 42800019 * ERCPBLD I19072 42900019 DC X'0006' LENGTH A32176 43000000 *CCW2,1 RHA UCBRHA,SLI,5 43100019 ERPRHA DC X'1A' OP A32176 43200000 DC AL3(UCBRHA-ERU) ARG A32176 43300000 DC X'20' SL1 A32176 43400000 DC AL1(ERREG1*16+UCBRG2) RELOCATE INFO AND END I19072 43500019 * FLAG I19072 43600019 DC X'0004' LENGTH A32176 43700000 *CCW1 RSTR 0,CC+SLI,1 43800019 ERPRSTR DC X'17' OP A32176 43900000 DC AL3(0) NO ARG A32176 44000000 DC X'60' CC+SL1 A32176 44100000 DC AL1(UCBRG2) RELOCATE INFO FOR I19072 44200019 * ERCPBLD I19072 44300019 DC X'0001' LENGTH A32176 44400000 *CCW2 NOP 0,SLI,1 44500019 DC X'03' OP A32176 44600000 DC AL3(0) NO ARG A32176 44700000 DC X'20' SL1 A32176 44800000 DC AL1(ERREG1*16+UCBRG2) RELOCATE INFO AND END I19072 44900019 * FLAG I19072 45000019 DC X'0001' LENGTH A32176 45100000 *CCW1 SK UCBSEK2,CC,6 45200019 ERPSEEK DC X'07' OP A32176 45300000 DC AL3(UCBSEK2-ERU) ARG A32176 45400000 DC X'40' CC A32176 45500000 DC AL1(UCBRG2) RELOCATE INFO FOR I19072 45600019 * ERCPBLD I19072 45700019 DC X'0006' LENGTH A32176 45800000 *CCW2 NOP 0,SLI,1 45900019 DC X'03' OP A32176 46000000 DC AL3(0) NO ARG A32176 46100000 DC X'20' AL1 A32176 46200000 DC AL1(ERREG1*16+UCBRG2) RELOCATE INFO AND END I19072 46300019 * FLAG I19072 46400019 DC X'0001' LENGTH A32176 46500000 OFLCP DS 0F I19072 46600019 *OFLCCW1 SIDEQ UCBRHA+1,CC+SLI,05 46700019 DC X'31' OP A32176 46800000 DC AL3(UCBRHA+1-ERU) ARG A32176 46900000 DC X'60' CC+SL1 A32176 47000000 DC AL1(UCBRG2) RELOCATE INFO FOR I19072 47100019 * ERCPBLD I19072 47200019 DC X'0005' LENGTH A32176 47300000 *OFLCCW2 TIC *-8,CC 47400019 DC X'08' OP A32176 47500000 DC AL3(OFLOCCW1-ERU) ARG A32176 47600000 DC X'60' CC+SL1 A32176 47700000 DC AL1(UCBRG2) RELOCATE INFO FOR I19072 47800019 * ERCPBLD I19072 47900019 DC X'0000' LENGTH A32176 48000000 *OFLCCW3 X (ERRCCW DATA ADDR+CCWCNT-RESID),ERRCCWFLAGS,RESID FROM C 48100019 DC X'00' OP SET BY PGM A32176 48200000 DC AL3(0) ARG SET BY PGM A32176 48300000 DC X'60' CC+SL1 A32176 48400000 DC AL1(UCBRG2) RELOCATE INFO FOR I19072 48500019 * ERCPBLD I19072 48600019 DC X'0001' LENGTH SET BY PGM A32176 48700000 *OFLOCCW4 TIC *-8 48800019 DC X'08' OP A32176 48900000 DC AL3(OFLOCCW3-ERU) ARG A32176 49000000 DC X'60' CC+SL1 A32176 49100000 DC AL1(UCBRG2) RELOCATE INFO FOR I19072 49200019 * ERCPBLD I19072 49300019 DC X'0000' LENGTH A32176 49400000 *OFLOCCW5 TIC *-16 49500019 DC X'08' OP A32176 49600000 DC AL3(OFLOCCW3-ERU) ARG A32176 49700000 DC X'60' CC+SL1 A32176 49800000 DC AL1(ERREG1*16+UCBRG2) RELOCATE CMD INFO I19072 49900019 DC X'0000' LENGTH A32176 50000000 SKMSK DC X'010101' ADJACENT S/C-ST-HD MASK I19072 50100019 ERRCN1 DC F'8' CONSTANT 8 I19072 50200019 ZERO DC X'0000FFFF' HI-ORDER CLEAR MASK A32176 50250000 ORG IGE0102H+1000 SAVE FOR PATCH AREA A32176 50300000 DC C'IGE0102H-20' MODULE IDENTIFIER A32176 50350000 EJECT , I19072 50400019 *CVT DEFINITION 50500019 CVT DSECT , I19072 50600019 CVTTCB DS A PTR TO (NXT,CURR)TCB I19072 50700019 ORG CVT+44 ALIGN A32176 50800000 CVTXCTL DS A ADDR OF XCTL RTN A32176 50900000 ORG CVT+64 ALIGN A32176 51000000 CVTDTAB DS A DEVICE CHARACTERISTICS I19072 51100019 * TB I19072 51200019 CVTNTRP DS A ERR INTERPRETER I19072 51300019 CVTWTO DS A WRITE TO OPERATOR I19072 51400019 ORG CVT+112 ALIGN A32176 51500000 STATAB DS A CVT LOC OF STATAB I19072 51600019 CVTLOG DS A LOG RTN ADDRESS I19072 51700019 EJECT , I19072 51800019 DEB DSECT , I19072 51900019 DEBTCB DS A TCB PTR A32176 52000000 DS A ALIGN A32176 52100000 DEBOPFL DS A OPEN FLAGS A32176 52200000 ORG *-1 ALIGN A32176 52300000 DEBIRB DS A IRB PTR A32176 52400000 DS 3A ALIGN A32176 52500000 DEBDCB DS A DCB PTR A32176 52600000 DS A ALIGN A32176 52700000 DEBMDB DS C FILE MASK A32176 52800000 EJECT , I19072 52900019 UCB DSECT , I19072 53000019 ORG UCB+3 ALIGN A32176 53100000 UCBSTA DS C UCBSTATUS I19072 53300019 DS H ALIGN A32176 53400000 UCBFL1 DS C FLAG 1 A32176 53500000 DS C ALIGN A32176 53600000 UCBERP DS C TRANSIENT ERP ADDR I19072 53700019 ORG UCB+22 ALIGN A32176 53900000 UCBSNS DS XL6 SENSE BYTES A32176 54100000 UCBSSN DS CL2 SAVE AREA SENSE ORIG I19072 54500019 * ERROR I19072 54600019 UCBCSW DS CL7 SAVE AREA CSW ORIG ERROR I19072 54700019 ORG UCB+48 ALIGN A32176 54800000 UCBSKA DS XL8 SEEK ADDR - MBBCCHHR A32176 54900000 ORG UCBSKA+4 ALIGN A32176 55000000 UCBCHHR DS F LOW PORTION SEEK ADDR I19072 55100019 ORG UCB+216 ALIGN A32176 55200000 UCBWK DS A DISJOINT UCB WK AR PTR I19072 55300019 EJECT , I19072 55400019 ERU DSECT WK AREA I19072 55500019 ORG ERU+104 ALIGN TO ERP AREA I19072 55600019 UCBCCW1 DS D ERP CONSTRUCTED CH PROGS I19072 55700019 UCBCCW2 DS D FOR TRK COND,END OF CYL, I19072 55800019 UCBCCW3 DS D FILE PROT,PERM ERR ETC I19072 55900019 UCBCCW4 DS D CCW 4 A32176 56000000 ORG UCBCCW4 ALIGN A32176 56100000 UCBSEK1 DS CL6 SEEK ADDR1 A32176 56200000 ORG UCBCCW4+8 ALIGN A32176 56300000 UCBCCW5 DS D CCW 5 A32176 56400000 ORG UCBCCW5 ALIGN A32176 56500000 UCBSEK2 DS CL6 SEEK ADDR2 A32176 56600000 ORG UCBCCW3+4 ALIGN A32176 56700000 UCBRR0 DS CL4 R0 READ IN BUFFER I19072 56800019 UCBRHA DS CL5 HA READ IN BUFFER I19072 56900019 UCBRNO DS CL1 REC NO ATTACHED FOR I19072 57000019 * SEARCH I19072 57100019 ORG UCBCCW5+8 ALIGN A32176 57200000 * OVER FLOW ERP WORK AREA 57300019 OFLOCCW1 DS D ERP CONSTRUCTED CH PROGS I19072 57400019 OFLOCCW2 DS D FOR OVER FLOW INCOMPLETE I19072 57500019 OFLOCCW3 DS D AT TRK COND,END OF I19072 57600019 * CYL, OR FILE PROT 57700000 OFLOCCW4 DS D CCW 4 A32176 57800000 OFLOCCW5 DS D CCW 5 A32176 57900000 EJECT , I19072 58000019 IOB DSECT , I19072 58100019 IOBFL1 DS CL1 FLAGS1,IOB-ERROR,EXCEPTION,RESTART I19072 58200019 IOBFL2 DS CL1 FLAGS2,READ HA,NO EXTNT CHK,CC-HH I19072 58300019 * UPDATE I19072 58400019 IOBSNS DS CL2 FIRST 2 SENSE BYTES I19072 58500019 IOBCOD DS CL1 ECB CODE I19072 58600019 DS AL3 ALIGN A32176 58700000 IOBCSW DS D CSW I19072 58800019 ORG IOBCSW ALIGN A32176 58900000 IOBFL3 DS CL1 TRK COND,NO REC FND,BUS OUT,RESTORE CMD I19072 59000019 ORG IOBCSW+8 ALIGN A32176 59100000 IOBST DS A CHAN PGM START ADDR A32176 59200000 IOBDCB DS A ASSOCIATED DCB ADDR A32176 59300000 IOBRST DS A CHAN PGM RESTART ADDR A32176 59400000 ORG IOB+30 ALIGN A32176 59500000 IOBCNT DS H ERROR RETRY COUNT A32176 59600000 IOBDAM DS CL8 MBBCCHH OF USER REQUEST I19072 59700019 EJECT , I19072 59800019 RQE DSECT , I19072 59900019 TSTLNK DS H LINK FIELD A32176 60000000 TSTUCB DS H UCB ADDR A32176 60100000 TSTIOB DS A IOB ADDR A32176 60200000 TSTDEB DS A DEB ADDR A32176 60300000 END , I19072 60400019 ./ ADD SSI=03013440,NAME=IGE0125C,SOURCE=0 TITLE 'IGE0125C - WTO - LOAD2' S20201 00200020 IECWTORB START X'00' WTOI 00400017 *0141452000-479600,824000,824800-827200,830700-835700,860000- S21016 00460021 *0141924000 S21016 00520021 *2552688000,932000 1618 00600018 *2552624000,710000,748000,776000,812000,818100,819300 3007 00700018 *1283656000,819800,828000-836000 S20201 00750020 *STATUS CHANGE LEVEL 004 00950021 * WRITE TO OPERATOR ROUTINE - LOAD 2 WTOI 01200017 SPACE 2 WTOI 01600017 * FUNCTION DETERMINE THE ERROR AND MOVE AN OFFSET TO AN WTOI 02000017 * ERROR DESCRIPTION TABLE IN LOAD 3 INTO THE WTOI 02400017 * IOBSIOCC FIELD OF THE IOB. WTOI 02800017 * ENTRY IECXWTO FROM LOAD 1 OF WTO ROUTINE VIA XCTL. WTOI 03200017 * INPUT REQUEST ELEMENT IN REGISTER 1. WTOI 03600017 * OUTPUT NONE. WTOI 04000017 * EXT REF NONE. WTOI 04400017 * EXITS XCTL TO LOAD 3 OF WTO ROUTINE. WTOI 04800017 * ERR MSG NONE. WTOI 05200017 * NOTES NONE. WTOI 05600017 * TABLES STATUS AND SENSE TABLES WITH OFFSETS TO THE WTOI 06000017 * DESCRIPTION OF THAT ERROR. WTOI 06400017 * OPERATION THE CSW STATUS BYTES ARE GOTTEN FROM THE IOB WTOI 06800017 * AND 'ANDED' WITH A LIST OF STATUS ERRORS. WTOI 07200017 * WHEN A MATCH IS FOUND, THE OFFSET TO AN ERROR WTOI 07600017 * DESCRIPTION TABLE IN LOAD 3 IS MOVED TO THE WTOI 08000017 * IOBSIOCC FIELD OF THE IOB. IF THE MATCH FOUND WTOI 08400017 * HAS UNIT CHECK STATUS, THE SENSE BYTES ARE WTOI 08800017 * GOTTEN FROM THE IOB AND THE SAME PROCEDURE IS WTOI 09200017 * FOLLOWED TO GET A MORE ACCURATE ERROR WTOI 09600017 * DESCRIPTION. WTOI 10000017 EJECT WTOI 10400017 SPACE 1 WTOI 10800017 * IOB DEFINITION WTOI 11200017 IOBFL1 EQU 0 FLAGS 1 WTOI 11600017 IOBFL2 EQU 1 FLAG 2 WTOI 12000017 SPACE 1 WTOI 12400017 IOBSNS EQU 2 SENSE DATA WTOI 12800017 IOBCOD EQU 4 ECB CODE WTOI 13200017 IOBFL3 EQU 8 FLAG 3 WTOI 13600017 IOBCSW EQU 8 CSW STORAGE WTOI 14000017 IOBSIOCC EQU 16 CONDITION CODE FIELD OF SIOWTOI 14400017 IOBMINDX EQU 20 MESSAGE TABLE INDEX 3007 14600018 IOBDCB EQU 21 DCB POINTER WTOI 14800017 IOBMDB EQU 24 MODIFIER BYTE WTOI 15200017 IOBRST EQU 25 RESTART POINTER WTOI 15600017 IOBECT EQU 30 ERROR COUNTER WTOI 16000017 IOBSK EQU 33 IOB SEEK ADDRESS WTOI 16400017 IOBERR EQU X'20' ERROR CORECTION INDICATOR WTOI 16800017 IOBEX EQU X'04' EXCEPT FLAG WTOI 17200017 IOBMSG EQU X'04' MESSAGE CODE WTOI 17600017 IOBSRS EQU X'01' START/RESTART FLAG WTOI 18000017 IOBEXE EQU IOBEX+IOBERR IOB EX AND ERROR FLAG WTOI 18400017 SPACE 2 WTOI 18800017 * THESE ARE FLAGS IN IOB- FLAG 2 WTOI 19200017 IOBRHA EQU X'10' READ HA FLAG WTOI 19600017 SPACE 1 WTOI 20000017 * DCB DEFINITION WTOI 20400017 DCBBLK EQU 12 POINTER TO BLOCK COUNT WTOI 20800017 DCBFL EQU 44 FLAGS WTOI 21200017 DCBPER EQU X'C0' PERMANENT ERROR FLAGS WTOI 21600017 DCBEX EQU X'40' EXCEPTION CONDITION WTOI 22000017 DCBDEB EQU 44 WTOI 22400017 SPACE 2 WTOI 22800017 * DEB DEFINITION. WTOI 23200017 DEBTCB EQU 0 TCB POINTER WTOI 23600017 DEBDCB EQU 25 DEB DCB POINTER WTOI 24000017 DEBUCB EQU 33 WTOI 24400017 * UCB DEFINITION WTOI 24800017 UCBMPBYT EQU 0 MULT PROC IND AT UCB - 4 WTOI 25200017 UCBFL5 EQU 1 UCB SECOND FLAG BYTE S20201 25300020 * 2020 S20201 25400020 UCBSTATA EQU 3 STATUS 'A' BYTE WTOI 25600017 UCBCUA EQU 4 CHAN. AND UNIT ADDRESS WTOI 26000017 UCBFL1 EQU 6 UCB FLAGS WTOI 26400017 UCBUTN EQU 13 UNIT NAME WTOI 26800017 UCBTYP EQU 16 UCB TYPE FIELD WTOI 27200017 UCBLTS EQU 20 ADDR. OF LAST RQE STARTED WTOI 27600017 UCBVSER EQU 28 VOLUME SERIAL WTOI 28000017 UCBTP EQU X'40' TP DEVICE TYPE WTOI 28400017 UCBUR EQU X'08' UNIT RECORD DEVICE TYPE WTOI 28800017 UCBTAPE EQU X'80' TAPE DEVICE TYPE WTOI 29200017 UCBDA EQU X'20' DIRECT ACCESS DEVICE TYPE WTOI 29600017 UCBSNS EQU 22 SENSE BYTES WTOI 30000017 UCBNRY EQU X'40' UCB NOT READY WTOI 30400017 UCBCHM EQU 12 CHAN MASK (BITS 4-7) WTOI 30800017 UCBALLC EQU 1 ALLOCATION CHAN. MASK WTOI 31200017 UCBSYSRS EQU X'02' SYS RES INDICATOR WTOI 31600017 UCBCPUA EQU 8 CPU 'A' IND FOR MULT PROC WTOI 32000017 SPACE 1 S20201 32080020 * FLAGS 2 IN THE UCB 20201 32160020 UCBEXTSN EQU X'08' SENSE NOT IN UCB S20201 32240020 SPACE 2 WTOI 32400017 * TWELVE STAR DEFINITION WTOI 32800017 TSTLNK EQU 0 FORWARD 12* LINK WTOI 33200017 TSTUCB EQU 2 UCB POINTER WTOI 33600017 TSTIOB EQU 5 IOB POINTER WTOI 34000017 TSTPR EQU 8 PRIORITY OF ENTRY WTOI 34400017 TSTDEB EQU 9 DEB POINTER WTOI 34800017 SPACE 1 WTOI 35200017 * TCB DEFINITION WTOI 35600017 TCBTIOT EQU 12 POINTER TO TIOT WTOI 36000017 SPACE 1 WTOI 36400017 * TIOT DEFINITION WTOI 36800017 TIOTJOBN EQU 0 POINTER TO JOB NAME WTOI 37200017 SPACE 2 WTOI 37600017 * REGISTER DEFINITION WTOI 38000017 TSTREG EQU 1 TVELFE STAR REG. WTOI 38400017 ERREG2 EQU 2 WORK REG. WTOI 38800017 ERREG4 EQU 4 WORK REG. WTOI 39200017 VECREG EQU 8 VECTOR ADDR. REG. WTOI 39600017 IOBRG EQU 10 IOB ADDRESS REG WTOI 40000017 CCWREG EQU 11 CCW ADDRESS REG. WTOI 40400017 ERRLNK EQU 12 LINK REG WTOI 40800017 ERRETR EQU 14 RETURN REG. WTOI 41200017 BASREG EQU 15 BASE REG. WTOI 41600017 ERREG1 EQU 13 WORK REG 1 WTOI 42000017 ERREG3 EQU 3 WTOI 42400017 ERREG7 EQU 7 WTOI 42800017 ERREG5 EQU 5 WTOI 43200017 ERREG6 EQU 6 WTOI 43600017 ERREG9 EQU 9 WTOI 44000017 SPACE 2 WTOI 44400017 * MISC. DEFINITIONS WTOI 44800017 UNKNOWN EQU X'0C' OFFSET TO I/O ERROR MSG S21016 45000021 URUCK EQU X'30' OFFSET TO UR UCK MSG S21016 45400021 TPUCK EQU X'33' OFFSET TO TP UCK MSG M1162 45800021 CHDATACK EQU X'09' OFFSET TO CHN DATA CK S21016 46200021 ZERO EQU X'00' ZERO S21016 46600021 SNSFAIL EQU X'3C' OFFSET TO SENSE MSG S21016 47000021 PTKSWON EQU X'3F' WRITE INHIBIT MESSAGE S21016 47400021 SPACE 1 WTOI 48000017 LOC016 EQU 16 ADDR. TO VECTOR TABLE WTOI 48400017 VECTXL EQU 44 VECTOR TO XCTL RNT. WTOI 48800017 CVTDCB EQU X'74' LOGREC DCB POINTER WTOI 49200017 SPACE 1 WTOI 49600017 LOGOBR EQU 256 LOAD NAME TO SERR LOG OUT WTOI 50000017 STATUP EQU 254 LOAD NAME TO STAT. UPDATE RWTOI 50400017 WTORC EQU 2253 WTO ROUTINE LOAD 3 WTOI 50800017 LINKDCB EQU 8 OFFSET OF LINKLIB DCB PTR IN CVTWTOI 51200017 SPACE 1 WTOI 51600017 DEV2540R EQU X'01' DEVICE 2540 CARD READER WTOI 52000017 DEV2540P EQU X'02' DEVICE 2540 CARD PUNCH WTOI 52400017 ZEUSA EQU X'06' ATHENS ZEUS DRUM TYPE S20201 52430020 ZEUSC EQU X'07' CORNITH ZEUS DRUM TYPE S20201 52490020 MERLIN EQU X'09' MERLIN DISK TYPE S20201 52550020 D1 EQU 1 DISPLACEMENT OF 1 S20201 52610020 D2 EQU 2 S20201 52670020 D3 EQU 3 S20201 52730020 EJECT WTOI 52800017 * THIS ROUTINE WILL SET UP THE COMPLETE MESSAGE TO BE WRITTEN WTOI 53200017 * TO THE OPERATOR WTOI 53600017 * WTOI 54000017 DS 0D WTOI 54400017 USING *,15 WTOI 54800017 IECXWTO EQU * WTOI 55200017 L IOBRG,TSTIOB-1(TSTREG) GET THE IOB PTR WTOI 55600017 LH ERREG1,TSTUCB(TSTREG) GET THE UCB PTR WTOI 56000017 * THE FOLLOWING ROUTINE CHECKS FOR THE MOST COMMON STATUS AND WTOI 56400017 * SENSE (DEFINING UNIT CHECK STATUS) ERRORS. IF TEST IS WTOI 56800017 * POSITIVE, AN APPROPRIATE DESCRIPTION IS MOVED TO THE BUFFER. WTOI 57200017 * IF NOT, A GENERAL DESCRIPTION IS USED. WTOI 57600017 LH ERREG6,IOBCSW+4(IOBRG) PICK UP STATUS BYTES WTOI 58000017 LTR ERREG6,ERREG6 CHECK ZERO STATUS WTOI 58400017 BC 8,ERUNKNWN YES, MOVE GEN I/O ERR MSG WTOI 58800017 LA ERREG5,STATUS STATUS COMPARAND LIST WTOI 59200017 BAL ERREG9,ERRLOOP LINK TO SUBRTN-UPDATE BUF WTOI 59600017 TM 0(ERREG5),X'02' TEST FOR UNIT CHECK WTOI 60000017 BC 1,UCKTEST YES, GO TO TEST SENSE WTOI 60400017 TM 0(ERREG5),X'01' TEST FOR UNIT EXCEPTION WTOI 60800017 BC 8,ERR801A NO, LEAVE ROUTINE WTOI 61200017 TM UCBTYP+2(ERREG1),UCBTP TEST IF UEX ON TP WTOI 61600017 BC 1,ERR801A YES, MSG OK-LEAVE RTN WTOI 62000017 ERUNKNWN MVI IOBMINDX(IOBRG),UNKNOWN NO, MOVE GEN MSG INDIC 3007 62400018 BC 15,ERR801A LEAVE ROUTINE WTOI 62800017 SPACE 1 WTOI 63200017 UCKTEST LH ERREG6,IOBSNS(IOBRG) PICK UP 2 SENSE BYTES WTOI 63600017 LTR ERREG6,ERREG6 TEST FOR ZERO SENSE WTOI 64000017 BC 8,ERUNKNWN YES, BRANCH TO GEN. MSG WTOI 64400017 LA ERREG5,SENSE POINTER TO SENSE COMPARAND WTOI 64800017 BAL ERREG9,ERRLOOP FIND SENSE CONDITION WTOI 65200017 CH ERREG6,FPTK ERROR A WRITE INHIBIT S20201 65300020 BE SWITCHON YES SET MSG TO WRITE S20201 65500020 * INHIB2020 S20201 65600020 DEVIND NC WKAREA(D2),SNSMASK DEVICE DEPENDENT ERROR S20201 65700020 BC 8,SNSTEST YES-TEST EQUIP CK A27519 66000019 CLI UCBTYP+2(ERREG1),UCBDA NO, CHECK FOR DIR ACCESS WTOI 66400017 BC 8,DATPTEST YES, GO TO TEST CHN DATA CKWTOI 66800017 CLI 0(ERREG5),X'FF' CHECK IF AT END OF TABLE WTOI 67200017 BC 8,SPECTST YES, GO TO SPECIAL TESTS WTOI 67600017 BAL ERREG9,PRELOOP CHECK FOR TAPE ERROR WTOI 68000017 CLI UCBTYP+2(ERREG1),UCBTAPE CHECK FOR TAPE DEVICE WTOI 68400017 BC 8,TAPETEST YES, GO TO TEST OVERRUN,CDC1618 68800018 CLI 0(ERREG5),X'FF' CHECK IF AT END OF TABLE WTOI 69200017 BC 8,CDCTEST YES,GO TO TEST CHN DATA CK WTOI 69600017 BAL ERREG9,PRELOOP GO TO CHECK FOR TP DEVICE WTOI 70000017 CLI UCBTYP+2(ERREG1),UCBTP CHECK FOR TP DEVICE WTOI 70400017 BC 8,DATPTEST YES, GO TO TEST CHN DATA CKWTOI 70700017 MVI IOBMINDX(IOBRG),UNKNOWN MOVE GEN MSG OFFSET 3007 71000018 BC 15,CDCTEST GO TO TEST CHN DATA CHK WTOI 71300017 SWITCHON MVI IOBMINDX(IOBRG),PTKSWON ERROR IS WRITE INHIBIT S20201 71370020 B DEVIND CHECK FURTHER S20201 71510020 SPACE 1 WTOI 71600017 SPECTST TM WKAREA,X'02' VALID SENSE FOR UR + TP WTOI 72000017 BC 8,CDCTEST NO,GO TO TEST CHN DATA CK WTOI 72400017 CLI UCBTYP+2(ERREG1),UCBUR CHECK FOR UNIT RECORD WTOI 72800017 BC 8,ERR817 YES, GO TO HANDLE WTOI 73200017 CLI UCBTYP+2(ERREG1),UCBTP CHECK FOR TP DEVICE WTOI 73600017 BC 7,CDCTEST NO,GO TO TEST CHN DATA CK WTOI 74000017 SPACE 1 WTOI 74400017 MVI IOBMINDX(IOBRG),TPUCK INDICATE TP MSG 3007 74800018 BC 15,CDCTEST GO TO TEST CHN DATA CHK WTOI 75200017 SPACE 1 WTOI 75600017 ERR817 CLI UCBTYP+3(ERREG1),DEV2540R TEST FOR 2540 CARD RDR WTOI 76000017 BC 8,ERR817A YES, BRANCH WTOI 76400017 CLI UCBTYP+3(ERREG1),DEV2540P TEST FOR 2540 CARD PCH WTOI 76800017 BC 7,CDCTEST NO,GO TO TEST CHN DATA CK WTOI 77200017 ERR817A MVI IOBMINDX(IOBRG),URUCK INDICATE 2540 UCK 3007 77600018 BC 15,CDCTEST GO TO TEST CHN DATA CHK WTOI 78000017 SPACE 1 1618 78040018 TAPETEST TM WKAREA,X'04' TEST FOR OVERRUN 1618 78080018 BC 1,ERR801A YES, LEAVE 1618 78160018 BC 15,CDCTEST GO TO TEST CHN DATA CHK 1618 78240018 SPACE 1 WTOI 78400017 * THE FOLLOWING SUBROUTINE DETERMINES THE ERROR AND MOVES A WTOI 78800017 * CORRESPONDING MESSAGE TO THE BUFFER. WTOI 79200017 PRELOOP LA ERREG5,3(0,ERREG5) UPDATE COMPARAND POINTER WTOI 79600017 ERRLOOP STH ERREG6,WKAREA STORE ERROR IN WKAREA WTOI 80000017 NC WKAREA(2),0(ERREG5) CHECK IF COMPARAND PRESENT WTOI 80400017 BC 8,PRELOOP NO, LOOP WTOI 80800017 MVC IOBMINDX(1,IOBRG),2(ERREG5) MOVE MSG INDICATOR 3007 81200018 BCR 15,ERREG9 RETURN WTOI 81600017 SPACE 1 WTOI 81630017 * THE FOLLOWING TESTS ARE TO DETERMINE IF A CHANNEL DATA CHECK WTOI 81660017 * HAS OCCURRED, BUT NOT BEEN TESTED DUE TO THE HIGHER PRIORITY WTOI 81690017 * OF SOME UNIT CHECK CONDITIONS. IF CDCTEST IS ENTERED, WTOI 81720017 * CHANNEL DATA CHECK HAS A HIGHER PRIORITY THAN THE EXISTING WTOI 81750017 * UNIT CHECK CONDITION. WTOI 81780017 DATPTEST CLI IOBMINDX(IOBRG),UNKNOWN TEST FOR LOWER PRTY UCK 3007 81810018 BC 7,ERR801A NO, USE EXISTING MSG OFFSETWTOI 81840017 CDCTEST TM IOBCSW+5(IOBRG),X'08' TEST CSW FOR CHN DATA CHK WTOI 81870017 BC 8,ERR801A NO, USE EXISTING MSG OFFSETWTOI 81900017 MVI IOBMINDX(IOBRG),CHDATACK MOVE OFFSET TO CHN DATA CK3007 81930018 * BC 15,ERR801A FALL THRU TO XCTL CODE WTOI 81960017 SPACE 1 A27519 81965019 * THIS TEST WILL DETERMINE IF A SENSE MALFUNCTION HAS A27519 81970019 * OCCURRED. IF SO, A SPECIAL MSG. WILL BE ISSUED. A27519 81975019 SNSTEST LA ERREG5,UCBSNS(ERREG1) POINT AT SENSE DATA S20201 81975920 TM UCBFL5(ERREG1),UCBEXTSN IS SENSE IN UCB S20201 81977720 BC 8,SNSTEST1 YES, DO NOT MODIFY SENSE PTR S20201 81979520 L ERREG5,UCBSNS+D2(ERREG1) POINT AT SENSE DATA S20201 81981320 SNSTEST1 CLI D1(ERREG5),X'FE' SENSE MALFUNCTION S20201 81983120 BC 7,ERR801A NO-USE EXISTING OFFSET A27519 81985019 MVI IOBMINDX(IOBRG),SNSFAIL MOVE OFFSET TO SENSE MSG A27519 81990019 SPACE 1 WTOI 82000017 ERR801A SR VECREG,VECREG ZERO REGISTER FOR INSERT S21016 82060021 IC VECREG,IOBMINDX(IOBRG) PICK UP MSG INDEX S21016 82120021 LA VECREG,ERRTYPES(VECREG) POINT TO ERR DESCRIPTOR S21016 82180021 MVC TSTLNK(D2,TSTREG),ZERO(VECREG) PASS 3 BYTE SA57974 82230000 MVC TSTPR(D1,TSTREG),D2(VECREG) MESSAGE DESCRIPTION SA57974 82232000 * AT THIS POINT TO THE NEXT LOAD, THE DCB ADDRESS IN THE IOB IS 82300021 * INVALID 82360021 L VECREG,LOC016 GET CVT PTR S21016 82420021 TM UCBFL5(ERREG1),UCBEXTSN EXTENDED SENSE IN UCB S21016 82490021 BO ERR801D YES WILL GO TO IGE0425C S21016 82630021 ERR801E LA ERREG1,WTORC INIT REG FOR XCTL TO 225 S20201 82770020 ERR801B L ERRETR,VECTXL(VECREG) GET PTR TO XCTL ROUTINE S20201 82870020 BCR 15,ERRETR BRANCH TO XCTL S20201 82970020 ERR801D LH ERREG1,WTORD INIT REG FOR XCTL TO 425 S20201 83620020 B ERR801B COMPLETE XCTL S20201 83720020 SPACE 2 WTOI 84000017 * IN THE FOLLOWING CONSTANTS, THE FIRST TWO BYTES ARE THE WTOI 84400017 * STATUS BEING CHECKED FOR, AND THE BYTE WHICH FOLLOWS IS WTOI 84800017 * 1/2 OF THE OFFSET INTO THE ERROR DESCRIPTION TABLE IN LOAD 3 WTOI 85200017 STATUS DC X'000400' CHANNEL CONTROL CHECK WTOI 85600017 DC X'000203' INTERFACE CONTROL CHECK S21016 85700021 DC X'02000C' UNIT CHECK S21016 85900021 DC X'000809' CHANNEL DATA CHECK S21016 86100021 DC X'000106' CHAINING CHECK S21016 86300021 DC X'002036' CHANNEL PROGRAM CHECK S21016 86500021 DC X'001072' PROTECTION CHECK S21016 86700021 DC X'01000F' UNIT EXCEPTION S21016 86900021 DC X'FCFF0C' UNKNOWN CONDITION S21016 87100021 SENSE DC X'100012' EQUIPMENT CHECK S21016 87300021 DC X'200015' BUS OUT CHECK S21016 87500021 DC X'800018' COMMAND REJECT S21016 87700021 DC X'08001B' DATA CHECK S21016 87900021 DC X'04001E' OVERRUN S21016 88100021 DC X'04001E' OVERRUN S21016 88300021 DC X'010021' SEEK CHECK S21016 88500021 DC X'010024' DATA CONVERTER CHECK S21016 88700021 DC X'010027' TIMEOUT S21016 88900021 DC X'00082A' NO RECORD FOUND S21016 89100021 DC X'00022D' MISSING ADDRESS MARKER S21016 89300021 DC X'FFFF0C' I/O ERROR S21016 89500021 ERRTYPES DC C'CCC' CHANNEL CONTROL CHECK S21016 89700021 DC C'ICC' INTERFACE CONTROL CHECK S21016 89800021 DC C'CHC' CHAINING CHECK S21016 89900021 DC C'CDC' CHANNEL DATA CHECK S21016 90000021 DC C'IOE' I/O ERROR S21016 90100021 DC C'UEX' UNIT EXCEPTION S21016 90200021 DC C'EQC' EQUIPMENT CHECK S21016 90300021 DC C'BOC' BUS OUT CHECK S21016 90400021 DC C'CMD' COMMAND CEJECT S21016 90500021 DC C'DCK' DATA CHECK S21016 90600021 DC C'OVR' OVERRUN S21016 90700021 DC C'SKC' SEEK CHECK S21016 90800021 DC C'DCC' DATA CONVERTER CHECK S21016 90900021 DC C'TOT' TIME OUT S21016 91000021 DC C'NRF' NO RECORD FOUND S21016 91100021 DC C'MAM' MISSING ADDRESS MARKER S21016 91200021 DC C'UNC' UNUSUAL COMMAND S21016 91300021 DC C'LDA' LOST DATA S21016 91400021 DC C'CPC' CHANNEL PROGRAM CNECK S21016 91500021 DC C'PRT' PROTECTION CHECK S21016 91600021 DC C'SEN' SENSE I/O MALFUNCTION S21016 91700021 DC C'WRI' WRITE INHIBITED S21016 91800021 WKAREA DC H'0' WORK AREA WTOI 92800017 FPTK DC X'8002' WRITE INHIBIT SENSE S20201 92900020 WTORD DC Y(4253) WTO ROUTINE LOAD 3-EXT S20201 93000020 SNSMASK DC X'07FF' MASK FOR DEV DEPNDNT ERRS 1618 93200018 PATCH EQU * START OF PATCH AREA 93250000 DC (1024-(PATCH-IECXWTO))X'00' 93300000 END 93600017 ./ ADD SSI=03011040,NAME=IGE0125E,SOURCE=0 TITLE 'IGE0125E - DAVV - LOAD 1' 00350021 IGE0125E START 0 DAVV 00360021 *2547648000 A43739 00400021 EJECT DAVV 00600018 * VOLUME LABEL VERIFICATION ROUTINE DAVV 00900018 SPACE 3 DAVV 01200018 * FUNCTION INSURE THAT DIRECT ACCESS DEVICES WHICH GO FROM A DAVV 01500018 * NOT READY TO A READY STATE HAVE THE SAME VOLUME DAVV 01800018 * SERIAL AS IS CONTAINED IN THE UCB. 02100018 * ENTRY IGE0125E VIA XCTL FROM IGE0025E WHEN THE VOLUME DAVV 02400018 * VERIFICATION FLAG IS ON IN THE UCB. DAVV 02700018 * INPUT ENTRY POINT IN REG 15, RQE POINTER IN REG 1. DAVV 03000018 * OUTPUT NONE. DAVV 03300018 * EXT REF. NONE DAVV 03600018 * EXITS 1. SVC 15 TO IOS TO EXECUTE THIS ROUTINE'S CHANNEL DAVV 03900018 * PROGRAM. DAVV 04200018 * 2. SVC 15 TO IOS TO EXECUTE USER'S CHANNEL PROGRAM.DAVV 04500018 * 3. XCTL TO IGE0225E. DAVV 04800018 * 4. SVC 3 TO RETURN CONTROL TO SUPERVISOR. DAVV 05100018 * TABLES UCB,IOB. DAVV 05400018 * OPERATION THE INITIAL ENTRY ROUTINE SETS UP THE CHANNEL DAVV 05700018 * PROGRAM TO READ THE VOLUME LABEL, AND ISSUES SVC 15 DAVV 06000018 * TO HAVE IT EXECUTED. DAVV 06300018 * THE VOLUME LABEL VERIFICATION ROUTINE EXAMINES DAVV 06600018 * CHANNEL PROGRAM RESULTS, AND IF THE VOLUME SERIAL DAVV 06900018 * IS CORRECT, ISSUES SVC 15 TO EXECUTE THE USER'S DAVV 07200018 * CHANNEL PROGRAM. VOLUME SERIAL CONFLICTS AND DAVV 07500018 * I/O ERRORS CAUSE CONTROL TO BO TRANSFERRED TO DAVV 07800018 * IGE0225E. DAVV 08100018 EJECT DAVV 08400018 * REGISTER DEFINITION DAVV 08700018 TSTREG EQU 1 RQE POINTER DAVV 09000018 UCBREG EQU 2 UCB POINTER DAVV 09300018 IOBREG EQU 3 IOB POINTER DAVV 09600018 WKREG1 EQU 4 WORK REGISTER 1 DAVV 09900018 WKREG2 EQU 13 WORK REGISTER 2 DAVV 10200018 WKREG3 EQU 5 WORK REGISTER 3 DAVV 10500018 BASEREG EQU 12 BASE REGISTER DAVV 10800018 CCWREG EQU 10 REG USED FOR BLDING CH PGM DAVV 11100018 CVTREG EQU 6 CVT POINTER DAVV 11400018 SUCBREG EQU 6 SUB-UCB PTR FOR 2321 19022 11500019 DATAREG EQU 7 REG USED FOR BLDING CH PGM DAVV 11700018 SRCHREG EQU 11 REG USED FOR BLDING CH PGM DAVV 12000018 VOL1RG EQU 9 PTR TO VOLSER DAVV 12300018 BUFREG EQU 8 BUFFER PTR FOR WTO RTN DAVV 12600018 XCTLREG EQU 14 POINTER TO XCTL RTN DAVV 12900018 UCBWKREG EQU 14 WORK AREA POINTER 19022 13000019 LNKREG EQU 15 BRANCH AND LINK REG DAVV 13200018 SPACE 2 DAVV 13500018 * RQE DEFINITION DAVV 13800018 TSTUCB EQU 2 UCB POINTER DAVV 14100018 TSTIOB EQU 4 IOB POINTER DAVV 14400018 TSTTCBID EQU 4 TCB ID FOR MFT DAVV 14700018 TSTDEB EQU 9 DEB POINTER DAVV 15000018 TSTTCB EQU 12 TCB POINTER FOR MVT DAVV 15300018 SPACE 2 DAVV 15600018 * IOB FLAGS DAVV 15900018 IOBEX EQU X'04' IOB EXCEPTION FLAG DAVV 16200018 IOBERR EQU X'20' ERROR RTN IN CTL FLAG DAVV 16500018 IOBSRS EQU X'01' RESTART FLAG DAVV 16800018 IOBNET EQU X'08' NO EXTENT TEST FLAG DAVV 17100018 IOBMSG EQU X'04' I/O ERR MSG FLAG DAVV 17400018 IOBLOG EQU X'01' LOG OUT FLAG FOR I/O ERRS DAVV 17700018 IOBHAR0 EQU X'10' SUPVR PROTECT KEY FLAG DAVV 18000018 SPACE 3 19022 18070019 * DEVICE TYPES 19022 18140019 DEV2321 EQU X'05' 2321 DEVICE TYPE 19022 18210019 SPACE 2 DAVV 18300018 * UCB FLAGS DAVV 18600018 UCBVVRTN EQU X'40' VOL VER RTN IN CONTROL DAVV 18900018 FTFLAG EQU X'20' FLAG ON AFTER FIRST ENTRY DAVV 19200018 TCCFLAG EQU X'10' FLAG FOR ALT TRK CHN PGM DAVV 19500018 UCBVER EQU X'08' VOLUME VERIFIED FLAG DAVV 19800018 UCBMNT EQU X'80' MOUNT REQUEST BY IGE0225E DAVV 20100018 * OR BY DATA MGT. OR SCHED A28578 20200019 * IN SRTEDMCT FIELD A28578 20300019 UCBNRY EQU X'40' NOT READY FLAG IN UCBFL1 DAVV 20400018 SPACE 2 DAVV 20700018 * UCB OFFSETS DAVV 21000018 UCBVS EQU 28 OFFSET IN WKAREA FOR VOLSERDAVV 21300018 UCBALTHA EQU 16 OFFSET TO HA AFTER TCC DAVV 21600018 UCBALTR0 EQU 21 OFFSET TO REC 0 AFTER TCC DAVV 21900018 UCBID EQU 34 OFFSET TO SRCH ID ARGUMNT DAVV 22200018 UCBWKPFX EQU 104 OFFSET TO NORMAL WKAREA DAVV 22500018 DCELBIN EQU 0 OFFSET IN SUBUCB TO BIN 19022 22600019 DCELVOL1 EQU 4 OFFSET IN SUBUCB TO VOLSR 19022 22700019 SPACE 2 DAVV 22800018 * DEFINITIONS FOR BUILDING CHANNEL PROGRAM DAVV 23100018 RDHACM EQU X'1A' READ HOME ADDRESS CM DAVV 23400018 RDR0CM EQU X'16' READ RECORD 0 COMMAND DAVV 23700018 CMCHNSLI EQU X'60' COMMAND CHAIN,SUPP INC LEN DAVV 24000018 FIVECNT EQU 5 COUNT FOR RDHA,RDR0,SIDEQ DAVV 24300018 REC03 EQU 3 VOLUME LABEL IS RECORD 3 DAVV 24600018 IDR EQU 4 OFFSET TO R IN CCHHR DAVV 24900018 SIDCM EQU X'31' SEARCH ID EQUAL COMMAND DAVV 25200018 RDHACCW EQU 0 OFFSET TO READ HA CMD DAVV 25500018 RDR0CCW EQU 8 OFFSET TO READ R0 COMMAND DAVV 25800018 SIDCCW EQU 0 OFFSET TO S ID EQ CM DAVV 26100018 TICCCW EQU 8 OFFSET TO TIC COMMAND DAVV 26400018 TICCM EQU X'08' TRANSFER IN CHANNEL COMMANDDAVV 26700018 RDCCW EQU 16 OFFSET TO READ COMMAND DAVV 27000018 RDDATACM EQU X'06' READ DATA COMMAND DAVV 27300018 SLI EQU X'20' SUPPRESS INCORRECT LENGTH DAVV 27600018 RKB EQU X'13' RECALIBRATE COMMAND A43739 27700021 NOP EQU X'03' NO OPERATION COMMAND A43739 27800021 SPACE 2 DAVV 27900018 * STATUS AND SENSE INDICATORS DAVV 28200018 UNITCK EQU X'02' UNIT CHECK STATUS DAVV 28500018 INTREQ EQU X'40' INTERVENTION REQUIRED SNS DAVV 28800018 TRKCNDCK EQU X'02' TRACK COND CHECK SENSE DAVV 29100018 UEX EQU X'01' UNIT EXCEPTION STATUS DAVV 29400018 SEEKCK EQU X'01' SEEK CHECK SENSE A43739 29500021 SPACE 2 DAVV 29700018 * WTO AND BUFFER DEFINITIONS DAVV 30000018 DISMLEN EQU 24 LENGTH OF DISMOUNT MSG DAVV 30300018 BLANK EQU X'40' EBCDIC BLANK DAVV 30600018 COMMA EQU X'EF' UNTRANSLATED COMMA DAVV 30900018 TCOMMA EQU C',' TRANSLATED COMMA DAVV 31200018 MNTMSGLN EQU 26 LENGTH OF MOUNT MSG DAVV 31500018 JOBNMLN EQU 8 LENGTH OF JOB NAME DAVV 31800018 CHANMSK EQU X'0F' MASK FOR VALID CHANNELS DAVV 32100018 DISMOUNT EQU C'D' DISMOUNT COMMAND DAVV 32400018 MOUNT EQU C'M' MOUNT COMMAND DAVV 32700018 CODE4 EQU C'4' MESSAGE CODE DAVV 33000018 CODE5 EQU C'5' MESSAGE CODE DAVV 33300018 SPACE 2 DAVV 33600018 * MISCELLANEOUS DEFINITIONS DAVV 33900018 CVTPTR EQU 16 CORE LOC OF CVT POINTER DAVV 34200018 CVTXCTL EQU X'2C' POINTER TO XCTL RTN DAVV 34500018 CVTHEAD EQU X'A0' HI PRIORITY TCB FOR MFT DAVV 34800018 CVTMACSZ EQU 164 MACHINE SIZE IN CVT DAVV 35100018 CVTCONFG EQU X'74' OFFSET TO CONFIG. FLAG DAVV 35400018 DCBFL EQU X'2C' OFFSET IN DCB OF IOS FLAGS DAVV 35700018 DCBPER EQU X'C0' IOS ERROR FLAGS IN DCBFL DAVV 36000018 MVT EQU X'10' MVT INDICATOR IN CVT DAVV 36300018 MFT EQU X'20' MFT INDICATOR IN CVT DAVV 36600018 PCP EQU X'40' PCP INDICATOR IN CVT DAVV 36900018 CVTK EQU X'2C' CONSTANT FOR LOOP INIT DAVV 37200018 TCBTIOT EQU 12 TIOT POINTER DAVV 37500018 TCBNEXT EQU X'74' TCB CHAIN DAVV 37800018 DEBTCB EQU 0 TCB POINTER DAVV 38100018 TIOTJOBN EQU 0 JOB NAME POINTER DAVV 38400018 WTORA EQU 253 LOAD NAME OF WTO ERR RTN DAVV 38700018 MAXERR EQU 10 MAXIMUM NUMBER OF RETRIES DAVV 39000018 NORMC EQU X'7F' NORMAL COMPLETION FLAG DAVV 39300018 VVRLD2 EQU 2255 LOAD NAME OF IGE0225E DAVV 39600018 ERREXCP EQU 15 SVC 15 DAVV 39900018 EXIT EQU 3 SVC 3 DAVV 40200018 ZERO EQU 0 ZERO COMPARAND DAVV 40500018 NONWORD EQU 3 NON-FULL-WORD BOUNDARY DAVV 40800018 SUCBLN EQU 16 LENGTH OF SUB-UCB 19022 40900019 SUCBMAX EQU 160 FIRST BYTE AFTER SUB-UCBS 19022 41000019 EJECT DAVV 41100018 ***** ***** DAVV 41400018 * INITIAL ENTRY ROUTINE * DAVV 41700018 ***** ***** DAVV 42000018 * * DAVV 42300018 * THIS ROUTINE IS EXECUTED THE FIRST TIME IGE0125E IS ENTERED * DAVV 42600018 * DURING THE PROCESSING OF AN ASYNCHRONOUS DEVICE END * DAVV 42900018 * INTERRUPT ON A DIRECT ACCESS DEVICE. ITS FUNCTIONS INCLUDE * DAVV 43200018 * INITIALIZATION OF UCB AND IOB FIELDS, AND SETTING UP THE * DAVV 43500018 * BASIC CHANNEL PROGRAM. * DAVV 43800018 ***** ***** DAVV 44100018 SPACE 1 DAVV 44400018 USING *,BASEREG DAVV 44700018 INITENT LR BASEREG,15 ESTAB ADDRESSABILITY DAVV 45000018 LH UCBREG,TSTUCB(0,TSTREG) GET UCB ADDRESS DAVV 45300018 L IOBREG,TSTIOB(0,TSTREG) GET IOB ADDRESS DAVV 45600018 USING UCBDSECT,UCBREG ESTAB ADDR'TY FOR UCB DAVV 45900018 USING IOBDSECT,IOBREG ESTAB ADDR'TY FOR IOB DAVV 46200018 L UCBWKREG,UCBWORK GET WORK AREA POINTER 19022 46300019 CLI UCBTYP+3,DEV2321 TEST FOR 2321 19022 46400019 BC 7,INIT001 NO, BRANCH 19022 46500019 L UCBWKREG,UCBWKB GET 2321 WKAREA POINTER 19022 46600021 INIT001 LA UCBWKREG,UCBWKPFX(0,UCBWKREG) UPDATE PAST PREFIX SA68917 46610021 TM UCBFL4,UCBMNT TEST IF MOUNT MSG ISSUE SA57136 46650021 BC 14,NODOM NO,SKIP SA57136 46660021 SPACE 1 SA57136 46680021 * THIS SUBROUTINE DELETES THE OPERATOR MESSAGES GRAPHICS SA57136 46690021 * CONSOLES UNDER MCS. SA57136 46692021 DOMRTN NI UCBFL4,X'FF'-UCBMNT TURN OFF MOUNT FLAG SA57136 46694021 LR WKREG2,TSTREG SAVE REG OVER SVC SA57136 46696021 LR 1,UCBWKREG INIT INPUT REG FOR DOM SA57136 46698021 * DOM MSGLIST=(1) DOM MACRO SA57136 46698421 LNR 0,1 SA57136 46698821 SVC 87 SA57136 46699221 LR TSTREG,WKREG2 RESTORE REG SA57136 46699621 OI UCBFL4,FTFLAG TURN ON FIRST TIME FLAG SA68917 46749621 B REBLD GO REBUILD DAVV'S CP SA68917 46799621 NODOM TM UCBFL4,FTFLAG TEST FOR FIRST TIME THRU DAVV 46800021 BC 1,VOLVER NO, GO TO CHECK RESULTS DAVV 47100018 PRGENT L WKREG1,IOBDCB GET DCB POINTER A28578 47400019 NI DCBFL(WKREG1),X'FF'-DCBPER RESET ERROR FLAGS DAVV 47700018 STH TSTREG,UCBRQESV SAVE RQE ADDR FOR IOS A28578 47740019 NC IOBFL1(4),IOBFLMSK CLEAR FLAGS AND SENSE A28578 47780019 OI IOBFL1,IOBERR+IOBSRS TURN ON IOB FLAGS A28578 47820019 CLI UCBTYP+3,DEV2321 TEST FOR 2321 19022 47860019 BC 8,PRG001 YES, SKIP TEST 19022 47900019 CLI UCBVOL1,ZERO TST MNT REQST SINCE INTPT 19022 48000019 BC 8,NORMRET YES,NO VERIFICATION NEEDED DAVV 48300018 TM UCBDMCT,UCBMNT TEST MOUNT BIT A28578 48400019 BC 1,NORMRET ON-NO VERIFICATION NEC A28578 48500019 PRG001 NI UCBFL4,UCBVVRTN CLEAR FLAGS 19022 48600019 OI UCBFL4,FTFLAG TURN ON FIRST TIME FLAG DAVV 48900018 XC IOBFL3(9),IOBFL3 CLEAR FLAGS, CSW FIELDS DAVV 49800018 XC IOBECT(2),IOBECT ZERO ERROR COUNT IN IOB DAVV 50100018 MVI IOBECB,NORMC SET NORMAL COMPLETION FLAG DAVV 50400018 OI IOBFL2,IOBNET+IOBHAR0 SET IOB FLAGS DAVV 51000018 MVC UCBSKA(1),IOBSEEK INIT M FROM IOB A29995 51100019 XC UCBSKA+1(6),UCBSKA+1 INIT BBCCHH DAVV 51300018 MVI UCBSKA+7,REC03 SET TO RECORD 3 DAVV 51600018 ERRETRY CLI UCBTYP+3,DEV2321 TEST FOR 2321 19022 51800019 BC 8,DCELRTN YES, GO TO HANDLE 19022 52000019 CCWBLD LR CCWREG,UCBWKREG INIT CCW REG 19022 52200019 ST CCWREG,IOBRESTR-1 STORE RESTART ADR FOR IOS 19022 52400019 LA SRCHREG,UCBID(0,CCWREG) POINT TO SRCH ID ARGUMENT DAVV 52800018 XC 0(4,SRCHREG),0(SRCHREG) CCHH = 0 DAVV 53100018 MVI IDR(SRCHREG),REC03 INIT TO RECORD 3 DAVV 53400018 LA DATAREG,UCBVS-4(0,CCWREG) POINT TO VOL LBL BUFFER DAVV 53700018 SPACE 1 DAVV 54000018 * BUILD CHANNEL PROGRAM TO READ THE VOLUME LABEL. DAVV 54300018 REBLD ST SRCHREG,SIDCCW(0,CCWREG) STORE SRCH ARG PTR SA68917 54600021 MVI SIDCCW(CCWREG),SIDCM MOVE SEARCH ID EQUAL CMD DAVV 54900018 MVI SIDCCW+4(CCWREG),CMCHNSLI SET CMD CHAIN AND SILI DAVV 55200018 LA WKREG2,FIVECNT GET ID COUNT OF 5 DAVV 55500018 STH WKREG2,SIDCCW+6(0,CCWREG) STORE COUNT INTO CCW DAVV 55800018 ST CCWREG,TICCCW(0,CCWREG) STORE TIC ADDRESS DAVV 56100018 MVI TICCCW(CCWREG),TICCM MOVE TIC COMMAND DAVV 56400018 ST DATAREG,RDCCW(0,CCWREG) STORE BUF ADR FOR VOL LBL DAVV 56700018 MVI RDCCW(CCWREG),RDDATACM MOVE READ DATA COMMAND DAVV 57000018 MVI RDCCW+4(CCWREG),SLI SET SUPPRESS INCORRECT LEN DAVV 57300018 ALR WKREG2,WKREG2 GET COUNT OF 10 FOR VOLLBL DAVV 57600018 STH WKREG2,RDCCW+6(0,CCWREG) STORE RD DATA COUNT OF 10 DAVV 57900018 SVC ERREXCP RETURN TO IOS DAVV 58200018 SVC EXIT RETURN TO SUPERVISOR DAVV 58500018 SPACE 3 19022 58510019 * THIS ROUTINE LOOPS THROUGH THE SUB-UCBS LOOKING FOR A BIN 19022 58520019 * WHICH REQUIRES VOLUME SERIAL VERIFICATION. IT THEN 19022 58530019 * INITIALIZES THE BB IN THE SEEK ADDRESS. IF BIN 9 IS 19022 58540019 * ACCESSED AND DOES NOT REQUIRE PROCESSING, THE VOLUME 19022 58550019 * VERIFIED EXIT IS TAKEN. 19022 58560019 DCELRTN SR WKREG1,WKREG1 CLEAR WORK REG 19022 58570019 IC WKREG1,IOBDCCNT GET CURRENT SUB-UCB OFFST 19022 58580019 DCEL001 LA SUCBREG,UCBBINNO(WKREG1) POINT TO SUB-UCB 19022 58590019 CLI DCELVOL1(SUCBREG),ZERO TEST IF VER REQUIRED 19022 58600019 BC 8,UPDATCEL NO, GO TO GET NEXT 19022 58610019 MVC UCBSKA+1(2),DCELBIN(SUCBREG) INIT BB IN SK ADDR 19022 58620019 BC 15,CCWBLD GO TO BUILD CHN PGM 19022 58630019 SPACE 1 19022 58640019 UPDATCEL LA WKREG1,SUCBLN(0,WKREG1) UPDATE TO NEXT SUB-UCB 19022 58650019 STC WKREG1,IOBDCCNT STORE BACK IN BIN CNTR 19022 58660019 CLI IOBDCCNT,SUCBMAX CHECK IF LAST BIN PROC'D 19022 58670019 BC 4,DCEL001 NO, GO TO PROCESS 19022 58680019 BC 15,NORMRET YES, GO TO EXIT RTN 19022 58690019 EJECT DAVV 58800018 ***** ***** DAVV 59100018 * VOLUME LABEL VERIFICATION AND DENSITY CHECKING ROUTINE * DAVV 59400018 ***** ***** DAVV 59700018 * * DAVV 60000018 * THIS ROUTINE IS ENTERED AFTER THE INITIAL ENTRY ROUTINE'S * DAVV 60300018 * CHANNEL PROGRAM IS EXECUTED. ITS FUNCTION IS TO INSURE THAT * DAVV 60600018 * THE PACK WITH THE PROPER VOLUME SERIAL IS MOUNTED AND IF SO, * DAVV 60900018 * TO ISSUE AN SVC 15 TO RETURN TO IOS TO EXECUTE THE USER'S * DAVV 61200018 * CHANNEL PROGRAM. IF NOT, A DISMOUNT MESSAGE AND A MOUNT * DAVV 61500018 * MESSAGE WILL BE ISSUED TO THE OPERATOR AFTER CONTROL IS * DAVV 61800018 * TRANSFERRED TO IGE0225E. * DAVV 62100018 ***** ***** DAVV 62400018 SPACE 1 DAVV 62700018 VOLVER CH TSTREG,UCBRQESV CHECK IF RQE WAS PURGED SA57136 63600021 BC 7,PRGENT YES, RETURN TO I.E.R. DAVV 63900018 LH WKREG1,IOBCSW+3 GET STATUS IN REG DAVV 64200018 N WKREG1,ERRMSK CHECK FOR ERROR STATUS DAVV 64500018 BC 4,LKFORUCK YES,GO CHECK FOR SEEK A43739 64700021 * CHK A43739 64900021 TM UCBFL4,TCCFLAG TEST FOR ALT TRK PROC DAVV 65100018 BC 1,TCCRCVRY YES, GO TO INIT FOR RETRY DAVV 65400018 TM IOBCSW+3,UEX TEST FOR UNIT EXCEPTION DAVV 65700018 BC 1,XCTL225E YES, GO TO HANDLE DAVV 66000018 LA VOL1RG,UCBVOL1 GET VOLSER PTR DAVV 66300018 CLI UCBTYP+3,DEV2321 TEST FOR 2321 19022 66400019 BC 7,VV001 NO, BRANCH 19022 66500019 TM IOBFL2,IOBNET WAS LAST OP A A43739 66520021 * RECALIBRATE A43739 66540021 BZ XCTL225E GO HANDLE A43739 66560021 SR WKREG1,WKREG1 CLEAR REG 19022 66600019 IC WKREG1,IOBDCCNT BET SUB-UCB OFFSET 19022 66700019 LA VOL1RG,UCBDCVOL(WKREG1) POINT TO VOLSER IN SUBUCB 19022 66800019 VV001 LA DATAREG,UCBVS(0,UCBWKREG) POINT TO VOLSER READ 19022 66900019 CLC 0(6,VOL1RG),0(DATAREG) VOLSER SAME AS PACK M'NTED DAVV 67200018 BC 7,XCTL225E NO, GO TO ISSUE MSG DAVV 67500018 CLI UCBTYP+3,DEV2321 TEST FOR 2321 19022 67600019 BC 8,UPDATCEL YES, GO TO HANDLE 19022 67700019 SPACE 1 DAVV 67800018 * THIS IS THE RETURN POINT FOR CLEARING ALL IGE0125E FIELDS DAVV 68100018 * IN THE UCB AND IOB, AND RE-INITIALIZING THEM TO EXECUTE DAVV 68400018 * THE USER'S CHANNEL PROGRAM. DAVV 68700018 NORMRET NC IOBFL1(4),IOBFLMSK CLEAR FLAGS AND SENSE DAVV 69000018 XC IOBFL3(9),IOBFL3 CLEAR IOB FLAGS,CSW,SIOCC DAVV 69300018 XC IOBECT(2),IOBECT CLEAR ERROR COUNT DAVV 69600018 MVI IOBECB,NORMC SET NORMAL COMPLETION FLAG DAVV 69900018 OI UCBFL4,UCBVER INDICATE VOLUME VERIFIED DAVV 70500018 SVC ERREXCP RET TO IOS TO TRY USER CP DAVV 70800018 SVC EXIT RET TO SUPERVISOR DAVV 71100018 LKFORUCK TM IOBCSW+3,UNITCK WAS ERROR A UNIT CHECK A43739 71110021 BNO XCTL225E NO, GO TO HANDLE A43739 71120021 TM IOBSNS,SEEKCK WAS ERROR A SEEK CHECK A43739 71130021 BNO XCTL225E NO, GO TO HANDLE A43739 71140021 SPACE 71150021 * IN THE CASE OF A SEEK CHECK, BUILD A RECALIBRATE CCW BEFORE 71160021 * TRYING TO RESTART THE VOLUME LABLE CHANNEL PROGRAM 71170021 NI IOBFL2,X'FF'-IOBNET INDICATE DAVV-TYPE NO A43739 71180021 * SEEK A43739 71190021 LA CCWREG,UCBVS-4(UCBWKREG) POINT TO SPARE WORK AREA A43739 71200021 ST CCWREG,IOBRESTR-1 STORE RESTART ADR FOR A43739 71210021 * IOS A43739 71220021 MVC 0(16,CCWREG),RECAL SET UP CCWS FOR A43739 71230021 * RECALIBRATE A43739 71240021 SVC ERREXCP RETURN TO IOS A43739 71250021 SVC EXIT RETURN TO SUPERVISOR A43739 71260021 EJECT DAVV 71400018 * THIS SUBROUTINE TAKES THE CCHH READ IN RECORD 0 BY THE DAVV 71700018 * ALTERNATE TRACK PROCEDURE, AND UPDATES THE SEEK ADDRESS IN DAVV 72000018 * THE INITIAL ENTRY ROUTINE'S CHANNEL PROGRAM WITH IT. DAVV 72300018 TCCRCVRY NI UCBFL4,X'FF'-TCCFLAG TURN OFF ALT TRK PROC FLAG DAVV 72600018 MVC UCBSKA+3(4),UCBALTR0(UCBWKREG) MOVE CCHH 19022 73000019 MVI IOBECT+1,ZERO SET ERROR COUNT TO 0 DAVV 73500018 BC 15,ERRETRY GO TO RETRY ORIG CHN PGM DAVV 73550021 SPACE 1 DAVV 77100018 * THIS ROUTINE TRANSFERS CONTROL TO IGE0225E TO PROCESS DAVV 77400018 * OPERATOR MESSAGES AND ERROR CONDITIONS. DAVV 77700018 XCTL225E LA WKREG2,VVRLD2 GET LOAD NAME OF IGE0225E DAVV 78000018 L CVTREG,CVTPTR GET ADDR OF CVT 19022 78100019 L XCTLREG,CVTXCTL(0,CVTREG) GET PTR TO XCTL RTN DAVV 78300018 BCR 15,XCTLREG GO TO XCTL DAVV 78600018 EJECT DAVV 78900018 ***** ***** DAVV 79200018 * * DAVV 79500018 * CONSTANTS, MESSAGES, AND WORK AREAS * DAVV 79800018 * * DAVV 80100018 ***** ***** DAVV 80400018 DS 0F DAVV 80700018 ERRMSK DC X'0000027F' MASK FOR CSW STATUS ERRORS DAVV 81000018 IOBFLMSK DC X'E2010000' IOBCDS,IOBERR,IOBURL,QSAM DAVV 81300018 RECAL CCW RKB,1,CMCHNSLI,1 RECALIBRATE CCW A43739 81400021 CCW NOP,1,0,1 NO OPERATION CCW A43739 81500021 PATCH EQU * START OF PATCH AREA 81550021 DC (1024-(PATCH-INITENT))X'00' 81560021 EJECT DAVV 81600018 * DUMMY CONTROL SECTION FOR A UCB DAVV 81900018 UCBDSECT DSECT DAVV 82200018 DS AL3 JOB NO.,ALLOC CHN MSK,ID DAVV 82500018 UCBSTAT DS XL1 STATUS A FLAGS DAVV 82800018 UCBCUA DS H CHANNEL AND UNIT ADDRESS DAVV 83100018 UCBFL1 DS XL1 FLAGS 1 - IOS FLAGS DAVV 83400018 DS XL2 INDECES DAVV 83700018 UCBSTI DS XL1 INDEX TO STAT TABLE DAVV 84000018 DS XL3 INDECES DAVV 84300018 UCBUTN DS XL3 UNIT NAME IN EBCDIC DAVV 84600018 UCBTYP DS F DEVICE DESCRIPTOR WORD DAVV 84900018 UCBLTS DS H LAST RQE DAVV 85200018 UCBSNS DS XL6 SENSE INFORMATION DAVV 85500018 UCBVOL1 DS XL6 VOLUME SERIAL DAVV 85800018 DS XL1 STATUS BYTE A28578 85900019 UCBDMCT DS XL1 DATA MGT. COUNT FIELD A28578 86000019 DS XL6 VOL INFO, RES/RELSE A28578 86100019 UCBRQESV DS H RQE SAVE FOR VOL. VER. RTN DAVV 86400018 UCBCNTR DS XL1 BITS 0-3 2321 BIN COUNTER DAVV 86700018 UCBFL4 EQU UCBCNTR BITS 4-7 FLAGS FOR VVR DAVV 87000018 DS XL3 UNUSED DAVV 87300018 UCBSKA DS 2F LAST SEEK ADDRESS DAVV 87600018 DS F NO. USERS,ECB DAVV 87900018 UCBWORK DS F WORK AREA POINTER DAVV 88200018 SPACE 1 19022 88220019 * UCB EXTENSION FOR DATA CELL 19022 88240019 ORG UCBVOL1 19022 88260019 UCBWKA DS XL12 DATA CELL WORK AREA A 19022 88280019 DS 4F RES/REL,VOL VER,SEEK ADR 19022 88300019 * DESCRIPTION OF CELL ZERO 19022 88320019 UCBBINNO DS H BIN NUMBER 19022 88340019 DS H VOLUME AND CELL STATUS 19022 88360019 UCBDCVOL DS XL6 CELL VOLUME SERIAL 19022 88380019 DS XL6 CELL INFORMATION 19022 88400019 DS 36F NINE MORE SUB-UCBS 19022 88420019 UCBWKB DS F WORK AREA POINTER 19022 88440019 EJECT DAVV 88500018 * DUMMY CONTROL SECTION FOR AN IOB DAVV 88800018 IOBDSECT DSECT DAVV 89100018 IOBFL1 DS XL1 I/O FLAGS 1 DAVV 89400018 IOBFL2 DS XL1 I/O FLAGS 2 DAVV 89700018 IOBSNS DS H SENSE INFORMATION DAVV 90000018 IOBECB DS F ECB POINTER DAVV 90300018 IOBFL3 DS XL1 I/O FLAGS 3 DAVV 90600018 IOBCSW DS XL7 LAST CSW DAVV 90900018 IOBSTART DS F CHANNEL PROGRAM POINTER DAVV 91200018 IOBDCB DS F POINTER TO DCB DAVV 91500018 DS XL1 OP CODE DAVV 91800018 IOBRESTR DS XL3 RESTART ADDR FOR IOS DAVV 92100018 DS H ACCESS METHOD FIELD DAVV 92400018 IOBECT DS H ERROR COUNT FOR RETRIES DAVV 92700018 IOBDCCNT EQU IOBECT BIN COUNTER FOR 2321 19022 92800019 IOBSEEK DS 2F SEEK ADDRESS DAVV 93000018 *0320000200-026800 DAVV 93300018 END 93600018 ./ ADD SSI=01050462,NAME=IGE0200I,SOURCE=0 TITLE 'IGE0200I LOAD 3 1/2 INCH MAG TAPE ERPS' 00100021 IGE0200I START X'00' LOAD 3 00150021 *********************************************************************** 00200021 * * 00202021 * STATUS: CHANGE LEVEL 3 * 00204021 * RELEASE 21.7 * 00204121 * * 00204421 * FUNCTION/OPERATION: * 00204821 * 1. HANDLE READ OPPOSITE RECOVERY * 00204921 * * 00205021 * ENTRY POINTS: ER2403 - CALLED BY IGE0000I (LOAD 1) VIA XCTL. * 00207021 * * 00209021 * INPUT: REGISTER 1 CONTAINS A POINTER TO THE REQUEST ELEMENT TABLE. * 00209421 * * 00209821 * OUTPUT: N/A * 00209921 * * 00210021 * EXTERNAL ROUTINES: INTERPRETER ROUTINE, CHECKS SENSE AND STATUS BITS 00212021 * * 00214021 * EXITS-NORMAL: * 00214421 * 1. SVC 15/3 EXIT TO IOS TO REPOSITION TAPE AND * 00214821 * TO REXECUTE THE CHANNEL PROGRAM * 00214921 * 2. XCTL TO IGE0100I (LOAD 2) * 00215021 * 3. XCTL TO IGE0300I (LOAD 4) * 00217021 * 4. XCTL TO IGE0025C (WTO ROUTINE) * 00219021 * * 00219421 * EXITS-ERROR: N/A * 00219821 * * 00219921 * TABLES/WORK AREAS: N/A * 00220021 * * 00222021 * ATTRIBUTES: SERIALLY REUSABLE * 00224021 * * 00224421 * NOTES * 00224821 * THE FOLLOWING ARE LISTING FLAG DESCRIPTIONS, * 00224921 * 000G REL 18 UNKNOWN * 00225021 * 000J REL 19 VOLUME ERROR STATISTICS * 00227021 * * 00227421 * THE FOLLOWING APAR(S) REFLECT CLEAN-UP TYPE MAINTENANCE * 00227821 * OS63824 ERROR COUNT NO SET ON PERMANENT ERROR ON OVERRUN * 00228221 * OS63824 BUSOUT ON NOP CAUSES RETRY OF ROR CMD ERRONEOUSLY * 00228621 * OS63823 RECOVERY ON LAST RETRY STILL GOES PERMANENT * 00228721 * OS63823 REISSUES USER CMD WHEN BOC ON NOP * 00228821 * OS63823 WRONG BLK CNT WHEN CDC + NO UNIT CK ON ROR * 00228921 * * 00229021 *********************************************************************** 00229421 EJECT 00229821 * 00229921 * * DUMMY CONTROL SECTION FOR THE INPUT/OUTPUT CONTROL BLOCK 00230021 * 00232021 IOBBLK DSECT 00234021 * 00234421 IOBFL1 DS CL1 IOB FLAGS 1 00234821 IOBFL2 DS CL1 IOB FLAGS 2 00234921 IOBSNS DS CL2 SENSE BYTES 0 AND 1 00235021 IOBCOD DS CL1 ECB COMPLETION CODE 00237021 IOBECB DS CL3 ECB POINTER 00239021 IOBFL3 DS CL1 IOB FLAGS 3 00239421 IOBCSW DS CL7 CHANNEL STATUS WORD 00239821 IOBCCD DS CL1 SIO CONDITION CODE 00239921 IOBSRT DS CL3 START ADDRESS 00240021 IOBRES DS CL1 RESERVED 00242021 IOBDCB DS CL3 DCB POINTER 00244021 IOBMDB DS CL1 MODIFIER BYTE (OP CODE) 00244421 IOBRST DS CL3 RESTART ADDRESS 00244821 IOBBCI DS CL2 BLOCK COUNT INCREMENT 00244921 IOBECT DS CL2 ERROR COUNTS 00245021 * 00247021 * * DUMMY CONTROL SECTION FOR THE UNIT CONTROL BLOCK 00249021 * 00249421 UCBBLK DSECT 00249821 * 00249921 UCBXX0 DS CL1 N/A 00250021 UCBFL5 DS CL1 UCB FLAG 5 S21048 00252021 UCBXX1 DS CL2 NOT REFERENCED 00254021 UCBADD DS CL2 DEVICE ADDRESS 00254421 UCBFL1 DS CL1 FLAG 1 00254821 UCBXX2 DS CL2 NOT REFERENCED 00254921 UCBSTI DS CL1 STATISTICS TABLE INDEX 00255021 UCBXX3 DS CL12 NOT REFERENCED 00257021 UCBSNS DS CL2 SENSE DATA 00259021 UCBNBRSN DS CL4 EXTENDED SENSE ADR S21048 00259421 UCBXX4 DS CL20 NOT REFERENCED 00259821 RORPTR DS CL4 POINTER TO ROR CCW 000J 00259921 * 000J 00260021 * * DUMMY CONTROL SECTION FOR RORCCW 000J 00262021 RORCMD DSECT 000J 00264021 * 000J 00264421 RORCCW DS CL4 ROR CCW CMD., ADDR 000J 00264821 RORFLS DS CL2 ROR CCW FLAGS 000J 00264921 RORCNT DS CL2 ROR CCW COUNT 000J 00265021 EJECT 00267021 * 00269021 * * REAL CONTROL SECTION 00269421 * 00269821 IGE0200I CSECT 00269921 * 00270021 * * IOB FLAG 1 REFERENCES 00272021 * 00274021 IOBDTC EQU X'80' DATA CHAIN BIT 00274421 IOBCMC EQU X'40' COMMAND CHAIN BIT 00274821 IOBERR EQU X'20' IOB ERROR FLAG 00274921 IOBMD1 EQU X'10' MOD 1 FLAG - POSITIONING 00275021 IOBMD2 EQU X'08' MOD 2 FLAG - CRC 00277021 IOBEX EQU X'04' EXCEPT FLAG 00279021 IOBSRS EQU X'01' START/RESTART FLAG 00279421 * 00279821 * * IOB FLAG 2 REFERENCES 00279921 * 00280021 IOBUEX EQU X'08' READ/WRITE U.E. FLAG 00282021 IOBROC EQU X'04' FLAG IOS TO USE READ OPP. CMD 00284021 * 00284421 * * IOB FLAG 3 REFERENCES 00284821 * 00284921 IOBENT EQU X'40' LOAD 2 RETURN BIT 00285021 IOBTPC EQU X'20' TAPE CLEANING BIT 00287021 IOBCTL EQU X'10' CONTROL FLAG 00289021 IOBROR EQU X'08' READ OPPOSITE RECOVERY 00289421 IOBMSG EQU X'04' MESSAGE TYPE 00289821 IOBLOG EQU X'01' LOGOUT INDICATOR 00289921 * 00290021 * * IOB ERROR COUNT REFERENCES 00292021 * 00294021 IOBRDP EQU X'94' PERMANENT READ ERROR 00294421 IOBORE EQU X'01' ONE READ ERROR 00294821 IOBOVR EQU X'50' OVER RUN COUNT MAX. VALUE 00294921 IOBCON EQU X'07' CONTROL COUNT MAX. VALUE 00295021 IOBTCL EQU X'04' TAPE CLEAN TEST 00297021 CLNRDF EQU X'04' NO. BSRS FOR RF CLEANER 00299021 CLNRDB EQU X'03' NO. BSRS FOR RB CLEANER 00299421 * 00299821 * * UCB REFERENCES 00299921 * 00300021 RORSDT EQU X'10' SUPPRESS DATA TRANSFER BIT 00302021 EJECT 00304021 * 00304421 * * REGISTER ASSIGNMENTS 00304821 * 00304921 ERREG0 EQU 0 WORK REG 00305021 TSTREG EQU 1 TWELVE STAR REG 00307021 EXITRG EQU 2 EXIT REG 00309021 CCWREG EQU 3 CCW ADDRESS REG 00309421 ERREG4 EQU 4 WORK REG 00309821 ERREG5 EQU 5 WORK REG 00309921 DCBREG EQU 6 DCB ADDRESS REG 00310021 UCBREG EQU 7 UCB ADDRESS REG 00312021 VECREG EQU 8 CVT ADDRESS REG 00314021 SAVREG EQU 9 SAVE REG 00314421 IOBRG EQU 10 IOB ADDRESS REG 00314821 ERRG11 EQU 11 WORK REG 00314921 ERRLNK EQU 12 LINK REG 00315021 ERRG13 EQU 13 WORK REG - XCTL TO ADD. 00317021 RORREG EQU 14 ROR CCW REG 000J 00319021 ERRETR EQU 14 XCTL ADDRESS REG 00319421 BASREG EQU 15 BASE REG 00319821 * 00319921 * * TWELVE STAR DEFINITION 00320021 * 00322021 TSTUCB EQU 2 UCB POINTER 00324021 TSTIOB EQU 5 IOB POINTER 00324421 * 00324821 * * DCB REFERENCES 00324921 * 00325021 DCBBLK EQU 12 DCB BLOCK COUNT 00327021 DCBMOD EQU 16 RECORDING TECHNIQUE 00329021 DCBDCF EQU X'13' DATA CONVERTER FEATURE 00329421 * 00329821 * * COMMANDS 00329921 * 00330021 CMDBSR EQU X'27' BACK SPACE RECORD 00332021 CMDFSR EQU X'37' FORWARD SPACE RECORD 00334021 CMDRDB EQU X'0C' READ BACKWARDS 00334421 CMDRED EQU X'02' READ 00334821 CMDCTL EQU X'03' CONTROL 00334921 CMDTIC EQU X'08' TIC 00335021 EJECT 00337021 * 00339021 * * STATUS INDICATORS 00339421 * 00339821 CSWCUB EQU X'50' CU BUSY 00339921 CSWICL EQU X'40' INCORRECT LENGTH 00340021 CSWDVE EQU X'04' DEVICE END 00342021 CSWUCK EQU X'02' UNIT CHECK 00344021 CSWUEX EQU X'01' UNIT EXCEPTION 00344421 CSWCDC EQU X'08' CHANNEL DATA CHECK 00344821 * 00344921 * * MISCELLANEOUS 00345021 * 00347021 BLKINC EQU X'10' INCREMENT BLOCK FLAG 00349021 CCWFLS EQU 4 CCW FLAGS 00349421 CCWSIL EQU X'20' SILI BIT 00349821 CLN EQU 22 CLEANER COUNT OFFSET 00349921 COUNT EQU 6 COUNT FIELD IN CCW 00350021 C1 EQU 1 COUNT OF 1 00352021 C2 EQU 2 COUNT OF 2 00354021 C3 EQU 3 COUNT OF 3 00354421 C4 EQU 4 COUNT OF 4 00354821 C5 EQU 5 COUNT OF 5 00354921 C8 EQU 8 COUNT OF 8 00355021 C16 EQU 16 COUNT OF 16 00357021 C13 EQU 13 COUNT OF 13 00359021 ERRCT EQU X'70' ERROR COUNTER CLEANUP @SA63823 00359121 EXCPER EQU 15 ERROR EXCP 00359421 FULL EQU X'FF' COUNTER FULL 00359821 IOBCC1 EQU X'10' CONDITION CODE OF SIO 00359921 IOBSVN EQU X'10' SENSE BIT FOR 7 TRACK 00360021 IOCLBT EQU X'00' CLEAR BYTE 00362021 LOCO16 EQU 16 COMMUNICATION TABLE 00364021 NEWDEV EQU X'08' EXTENDED SENSE S21048 00364421 NOISE EQU X'80' NOISE BIT 00364821 OVRFLOW EQU X'02' OVERFLOW FLAG S21048 00364921 PERRD EQU X'40' PERM RD FLAG S21048 00365021 RESET EQU X'07' SAVE MSG,LOG,OVERFLOW S21048 00367021 RETURN EQU 3 RETURN - SVC 3 00369021 UNITCK EQU X'02' UNIT CHECK STATUS @SA63824 00369121 VECTXL EQU 44 VECTOR TO XCTL RTN. 00369421 VECT68 EQU 68 INTERPRETER ROUTINE 00369821 VES EQU X'C0' VES OPTION 00369921 VESTAB EQU X'10' VES TABLE IN USE FLAG 00370021 WTORTN EQU 253 LOAD NAME TO WTO RTN. 00372021 ZERO EQU X'00' 00374021 * 00374421 LOAD2 EQU 1009 LOAD NAME FOR LOAD 2 00374821 LOAD4 EQU 3009 LOAD NAME FOR LOAD 4 00374921 EJECT 00375021 * 00375421 * COMPLETION CODE SETTINGS 00375821 * 00376221 ERPERR EQU X'4B' ERROR DURING ERP A29974 00376621 EJECT 00376721 *********************************************************************** 00377021 * * 00379021 * THIS IS ENTRY TO THE THIRD LOAD OF THE * 00379421 * 2400 SERIES MAGNETIC TAPE ERROR ROUTINE * 00379821 * * 00379921 *********************************************************************** 00380021 USING *,BASREG 00382021 USING IOBBLK,IOBRG 00384021 USING UCBBLK,UCBREG 00384421 USING RORCMD,RORREG 000J 00384821 * 00384921 ER2403 L IOBRG,TSTIOB-C1(TSTREG) GET IOB ADDRESS 00385021 L VECREG,LOCO16 GET ADDRESS TO VECTOR TABLE 00387021 LA EXITRG,ERR530 GET EXIT ADDRESS 00389021 L DCBREG,IOBDCB-C1 GET DCB ADDRESS 00389421 LH UCBREG,TSTUCB(TSTREG) GET UCB ADDRESS 00389821 L RORREG,RORPTR SET REG 14 FOR ROR USAGE XX000J 00389921 L CCWREG,IOBCSW-C1 GET CCW FROM CSW 00390021 LA CCWREG,0(CCWREG) GET ADDRESS ONLY 00392021 SH CCWREG,ERRC08 SUBTRACT 8 00394021 MVI FLAG,FULL SET NEW DEV FLAG ON S21048 00394421 TM UCBFL5,NEWDEV EXTENDED SENSE S21048 00394821 BO ERR100 BR YES S21048 00394921 TM RORPTR,VES ESV BEING USED S21048 00395021 BO ERR100 BR YES S21048 00397021 MVI FLAG,ZERO SET NEW DEV FLAG OFF S21048 00399021 ERR100 EQU * 00399421 * 00399821 * TEST FOR READ OPPOSITE IN PROGRESS 00399921 * 00400021 MVI FLAG1,ZERO SET FLAG TO ZERO 00450021 TM IOBFL3,IOBROR ROR BIT ON 00500021 BO ERR160 BRANCH YES 00550021 * 00600021 * IF RORCCW IS NOT ZERO WE HAD A PERMANENT ROR ERROR 00650021 * 00700021 CLI RORCCW,IOCLBT IS COMMAND ZERO 00750021 BNE ERR120 BRANCH NO 000J 00800021 * 00850021 * THIS IS FIRST ENTRY FOR ROR ON A READ OR READ BACK D.C. 00900021 * TEST FOR CONDITIONS NOT APPLICABLE 00950021 * 01000021 TM IOBSNS+C1,IOBSVN IS THIS SEVEN TRACK 01050021 BZ ERR110 BRANCH NO 01100021 * 01150021 * TEST FOR DATA CONVERTER MODE SET 01200021 * 01250021 CLI DCBMOD(DCBREG),DCBDCF DATA CONVERTER BEING USED 01300021 BE ERR120 BRANCH YES 000J 01350021 EJECT 01400021 * TEST FOR SUPPRESS DATA TRANSFER IN ORIGINAL CCW 01450021 * 01500021 ERR110 EQU * 01510021 LTR CCWREG,CCWREG NEGATIVE ADDRESS A29974 01520021 BM ERR535 YES, GO SET X'4B' A29974 01530021 TM CCWFLS(CCWREG),RORSDT SUPPRESS DATA TRANSFER A29974 01550021 BO ERR560 BRANCH YES 01600021 * 01650021 * TEST FOR DATA CHAINING 01700021 * 01750021 TM IOBFL1,IOBDTC DATA CHAINING 01800021 BZ ERR140 BRANCH NO 000J 01850021 ERR120 EQU * 01900021 OI FLAG1,PERRD SET PERM RD FLAG ON S21048 01950021 B ERR560 BR TO PERM ERR S21048 02000021 * 02050021 * SET UP INTIAL RORCCW ON FIRST ENTRY ONLY 02100021 * 02150021 ERR140 EQU * 02200021 MVC RORCCW(C8),0(CCWREG) MOVE USER CCW TO RORCCW 02250021 MVI RORFLS,RORSDT SET FLAGS TO SKIP DATA XFER 02300021 MVI RORCCW,CMDRDB SET READ BACKWARD 02350021 * 02400021 * TEST ORIGINAL DIRECTION 02450021 * 02500021 CLI 0(CCWREG),CMDRED IS IT READ 02550021 BE ERR150 BRANCH YES 02600021 MVI RORCCW,CMDRED SET READ IN ROR CCW 02650021 * 02700021 ERR150 OI IOBFL3,IOBROR SET READ OPPOSITE RECOVERY 02750021 XC IOBECT,IOBECT ZERO ERROR COUNTERS 02800021 OI IOBECT+C1,IOBORE SET READ COUNT TO ONE 02850021 B ERR510 GO READ OPPOSITE 02900021 * 02950021 * TEST FOR ERROR ON RETRY OR SPACE 03000021 * 03050021 ERR160 TM IOBCSW+C3,CSWUCK GET UNIT CHECK 03100021 BO ERR230 BRANCH YES 03150021 * 03200021 * TEST FOR CONTROL UNIT BUSY 03250021 * 03300021 TM IOBCSW+C3,CSWCUB CU BUSY 03350021 BCR 1,EXITRG YES GO RETRY 03400021 * 03410021 TM IOBCSW+C4,CSWCDC CHANNEL DATA CHECK @SA63824 03420021 BO ERR320 BRANCH YES @SA63824 03430021 EJECT 03450021 * 03500021 * DECREMENT BLOCK COUNT 03550021 * 03600021 L ERREG0,DCBBLK(DCBREG) GET CURRENT COUNT 03650021 SH ERREG0,IOBBCI SUBTRACT INCREMENT (- OR +) 03700021 ST ERREG0,DCBBLK(DCBREG) STORE UPDATED COUNT 03750021 * 03800021 * TEST FOR RETRY OR SPACE 03850021 * 03900021 TM IOBFL2,IOBROC IOS USE RORCCW BIT ON 03950021 BZ ERR410 BRANCH NO 04000021 * 04010021 NI IOBFL2,X'FF'-IOBROC RESET IOS USE RORCCW 04020021 * 04030021 * WE HAVE JUST READ OPPOSITE-IF SUPPRESS DATA TRANSFER BIT 04040021 * IS OFF WE HAVE RECOVERED THE UC-DC CONDITION 04050021 * 04060021 TM RORFLS,RORSDT SUPPRESS DATA TRANSFER @SA63824 04070021 BO ERR180 BRANCH YES @SA63824 04080021 * 04200021 TM IOBCSW+C3,CSWUEX UNIT EXCEPTION 04250021 BZ ERR170 BRANCH NO 04300021 * 04350021 OI IOBFL2,IOBUEX SET UE FLAG 04400021 * 04450021 ERR170 MVI RORCCW,IOCLBT ZERO COMMAND (SWITCH) 04500021 BR EXITRG GO SPACE OVER RECORD 04550021 * 04600021 * BUILD FINAL RORCCW 04650021 * 04700021 ERR180 LH ERREG4,RORCNT GET ORIGINAL COUNT 04750021 N ERREG4,ERRCFF RESET HIGH ORDER BITS 04800021 TM IOBCSW+C4,CSWICL INCORRECT LENGTH 04850021 BZ ERR200 BRANCH NO 04900021 * 04950021 CLC IOBCSW+C5(C2),ERRCFF IS RESIDUAL COUNT ZERO 05000021 BNE ERR190 BRANCH NO 05050021 * 05100021 MVI IOBECT+C1,IOBRDP SET MAX COUNT 05150021 B ERR380 BRANCH TO ONE FINAL RETRY 05200021 EJECT 05250021 * 05300021 * CCW COUNT IS GREATER THAN OR EQUAL TO THE BLOCK SIZE 05350021 * 05400021 ERR190 SH ERREG4,IOBCSW+C5 SUBTRACT RESIDUAL 05450021 STH ERREG4,RORCNT STORE ACTUAL COUNT 05500021 * 05550021 ERR200 NI RORFLS,X'FF'-RORSDT ENABLE DATA TRANSFER 05600021 IC ERRG11,RORCCW SAVE COMMAND 05650021 L ERREG5,RORCCW GET ORIGINAL ADDRESS 05700021 * THE (BCTR REGZ,ZERO) IS TO DECREMENT THE CONTENTS OF REG Z BY 1 05750021 BCTR ERREG4,ZERO REDUCE COUNT BY 1 05800021 * 05850021 CLI RORCCW,CMDRED READ FORWARD 05900021 BNE ERR210 BRANCH NO 05950021 * 06000021 * BUILD READ FORWARD ADDRESS (ADDRESS-COUNT+1) 06050021 * 06100021 SR ERREG5,ERREG4 ADDRESS -(COUNT-1) 06150021 B ERR220 BRANCH 06200021 * 06250021 * BUILD READ BACKWARD ADDRESS (ADDRESS+COUNT-1) 06300021 * 06350021 ERR210 AR ERREG5,ERREG4 ADDRESS +(COUNT-1) 06400021 * 06450021 ERR220 ST ERREG5,RORCCW STORE COMMAND AND ADDRESS 06500021 STC ERRG11,RORCCW RESTORE COMMAND 06550021 BR EXITRG GO SPACE 06600021 * 06650021 * HAVE UNIT CHECK 06700021 * TEST SENSE INFORMATION - REGS 0,9,11,12,13,15 06750021 * ARE AFFECTED BY THE INTERPRETER ROUTINE 06800021 * 06850021 ERR230 LR SAVREG,BASREG SAVE BASE REGISTER 06900021 L BASREG,VECT68(VECREG) GET INTERPRETER ADDRESS 06950021 ERR240 BALR ERRLNK,BASREG LINK TO INTERPRETER 07000021 * 07050021 DC X'03' EQUIPMENT CHECK 07100021 DC AL1(ERR270-ERR240-2) COMPUTE OFFSET 07150021 DC X'02' BUS-OUT CHECK 07200021 DC AL1(ERR250-ERR240-4) COMPUTE OFFSET 07250021 DC X'01' INTERVENTION REQUIRED 07300021 DC AL1(ERR280-ERR240-6) COMPUTE OFFSET 07350021 DC X'2F' END OF TEST 07400021 DC AL1(ERR290-ERR240-8) COMPUTE OFFSET 07450021 EJECT 07500021 * 07550021 * BUS-OUT CHECK 07600021 * 07650021 ERR250 TM IOBECT,IOBOVR LAST RETRY 07700021 BO ERR260 BRANCH YES 07750021 * 07800021 IC ERRG11,IOBECT GET COUNT 07850021 LA ERRG11,C16(ERRG11) ADD ONE TO COUNT 07900021 STC ERRG11,IOBECT STORE NEW COUNT 07950021 * 08000021 LTR CCWREG,CCWREG NEGATIVE ADDRESS A29974 08010021 BM ERR535 YES, GO SET X'4B' A29974 08020021 CLI 0(CCWREG),CMDCTL NO-OP COMMAND 08050021 BCR 7,EXITRG NO GO RETRY 08100021 NI IOBCSW+C3,X'FF'-UNITCK CLEAR UNIT CHECK @SA63824 08110021 B ERR410 YES CONTINUE - SPACE OK @SA63823 08150021 * 08200021 ERR260 TM IOBFL2,IOBROC IOS USE RORCCW ON 08250021 BO ERR420 BRANCH YES 08300021 MVI IOBECT+C1,IOBRDP SET MAX COUNT @SA63823 08350021 B ERR380 BRANCH TO ONE MORE READ 08400021 * 08450021 * EQUIPMENT CHECK OR NONE 08500021 * 08550021 ERR270 B ERR560 GO LOGOUT 08600021 * 08650021 * INTERVENTION REQUIRED 08700021 * 08750021 ERR280 TM IOBCSW+C3,CSWDVE DEVICE END 08800021 BZ ERR590 BRANCH NO TO PRINT MESSAGE 08850021 * 08900021 * TEST REMAINING SENSE INFORMATION 08950021 * REGS 0,9,11,12,13,15 ARE 09000021 * AFFECTED BY THE INTERPRETER ROUTINE 09050021 * 09100021 ERR290 LR SAVREG,BASREG SAVE BASE REGISTER 09150021 L BASREG,VECT68(VECREG) GET INTERPRETER ADDRESS 09200021 ERR300 BALR ERRLNK,BASREG LINK TO INTERPRETER 09250021 * 09300021 DC X'05' OVER RUN 09350021 DC AL1(ERR320-ERR300-2) COMPUTE OFFSET 09400021 DC X'0C' LOAD POINT 09450021 DC AL1(ERR350-ERR300-4) COMPUTE OFFSET 09500021 DC X'04' DATA CHECK 09550021 DC AL1(ERR340-ERR300-6) COMPUTE OFFSET 09600021 DC X'2F' END OF TEST 09650021 DC AL1(ERR310-ERR300-8) COMPUTE OFFSET 000G 09700021 EJECT 000G 09750021 * 000G 09800021 * TEST FOR CDC WHEN IR IS IGNORED 000G 09850021 * 000G 09900021 ERR310 TM IOBCSW+C4,CSWCDC CHANNEL DATA CHECK 09950021 BZ ERR270 BRANCH NO. 000G 10000021 * 000G 10050021 * 10100021 * OVER RUN AND CHANNEL DATA CHECK 10150021 * 10200021 ERR320 NI IOBFL2,X'FF'-IOBROC RESET IOS USE RORCCW 10250021 TM IOBECT,IOBOVR LAST RETRY 10300021 BC 14,ERR330 BRANCH NO 10350021 * 10400021 * SET TO PERMANENT READ ERROR 10450021 * 10500021 MVI IOBECT+C1,IOBRDP SET MAX COUNT @SA63823 10550021 B ERR380 BRANCH TO ONE MORE READ 10600021 * 10650021 ERR330 IC ERRG11,IOBECT GET COUNT 10700021 LA ERRG11,C16(ERRG11) ADD ONE TO COUNT 10750021 STC ERRG11,IOBECT STORE NEW COUNT 10800021 BR EXITRG GO RETRY OR SPACE 10850021 * 10900021 * DATA CHECK 10950021 * 11000021 ERR340 TM IOBSNS+C1,NOISE NOISE BIT ON 11050021 BO ERR360 BRANCH YES 11100021 * 11150021 * TEST FOR NOISE BLOCK 11200021 * 11250021 LH ERRG11,RORCNT GET RORCCW COUNT 11300021 N ERRG11,ERRCFF RESET HIGH ORDER BITS 11350021 SH ERRG11,IOBCSW+C5 LESS RESIDUAL IN CSW 11400021 SH ERRG11,ERRC12 SUBTRACT MIN SIZE 11450021 BC 11,ERR360 BRANCH IF COUNT OK 11500021 * 11550021 * SET UP TO ENTER PART 2 OF LOAD 2 11600021 * 11650021 ERR350 EQU * 11700021 B ERR540 GO TO LOAD 2 11750021 EJECT 11800021 * 11850021 * THE BLOCK WAS NOT NOISE 11900021 * 11950021 ERR360 NI IOBFL2,X'FF'-IOBROC RESET IOS USE RORCCW 12000021 * 12050021 * ARE WE READY FOR A CLEANER 12100021 * 12150021 TM IOBECT+C1,IOBTCL MULTIPLE OF 4 12200021 BO ERR370 BRANCH YES 12250021 * 12300021 IC ERRG11,IOBECT+C1 GET CURRENT COUNT 12350021 LA ERRG11,C1(ERRG11) ADD ONE TO COUNT 12400021 STC ERRG11,IOBECT+C1 STORE NEW COUNT 12450021 BR EXITRG GO SPACE 12500021 * 12550021 * SET UP FOR CLEANER UNLESS WE ARE DONE 12600021 * 12650021 ERR370 TM IOBECT+C1,IOBRDP LAST RETRY 12700021 BNO ERR390 BRANCH NO 12750021 * 12800021 * END OF RECOVERY ATTEMPTS-SET UP TO READ ORIGINAL 12850021 * 12900021 ERR380 TM IOBFL1,IOBCMC COMMAND CHAINING 12950021 BO ERR460 BRANCH YES 13000021 B ERR470 BRANCH NO 13050021 * 13100021 * SET UP CLEANER 13150021 * 13200021 ERR390 IC ERRG11,IOBECT+C1 GET COUNT 13250021 LA ERRG11,C13(ERRG11) CARRY TO TENS(MOD 4) POSIT. 13300021 STC ERRG11,IOBECT+C1 STORE UPDATED COUNT 13350021 OI IOBFL3,IOBTPC SET TAPE CLEAN BIT 13400021 TM FLAG,FULL DO WE HAVE A VES TABLE 13450021 BZ ERR400 BR NO 13500021 LH ERRG11,CLN(RORREG) GET ESV CLEANER COUNT 13550021 CH ERRG11,ERRCFF+C2 IS COUNT FULL 13600021 BE ERR400 BR YES 13650021 LA ERRG11,C1(ERRG11) ADD ONE TO COUNT 13700021 STH ERRG11,CLN(RORREG) STORE BACK 13750021 ERR400 EQU * 13800021 * 13850021 * SET UP NUMBER OF BACK SPACES 13900021 * 13950021 OI IOBECT,CLNRDF ASSUME READ FORWARD 14000021 CLI RORCCW,CMDRED IS IT READ FORWARD 14050021 BCR 8,EXITRG YES-START CLEANER 14100021 * 14150021 MVI IOBMDB,CMDBSR SET BACK SPACE 14200021 NI IOBECT,X'FF'-CLNRDF RESET BIT 14250021 OI IOBECT,CLNRDB SET FOR READ BACK CLEANER 14300021 OI IOBFL3,IOBCTL SET READ BACK CLEANER BIT 14350021 BR EXITRG START CLEANER 14400021 EJECT 14450021 * 14500021 * WE HAVE JUST SPACED OVER THE ERRROR BLOCK 14550021 * IF THE RORCCW COMMAND IS ZERO WE HAVE RECOVERED 14600021 * 14650021 ERR410 CLI RORCCW,IOCLBT IS THE COMMAND ZERO 14700021 BNE ERR480 BRANCH NO 14750021 * 14800021 * CLEAN UP AFTER RECOVERY IN OPPOSITE DIRECTION 14850021 * 14900021 NI IOBFL1,X'FF'-IOBMD1-IOBMD2 RESET CRC AND REPOSITION 14950021 NI IOBFL3,X'FF'-IOBROR RESET ROR IN PROGRESS 15000021 L ERREG0,DCBBLK(DCBREG) GET CURRENT BLOCK COUNT 15050021 AH ERREG0,IOBBCI ADD INCREMENT (+ OR -) 15100021 ST ERREG0,DCBBLK(DCBREG) STORE UPDATED COUNT 15150021 NI IOBECT,X'FF'-ERRCT ZERO ERROR COUNT @SA63823 15160021 * 15200021 * 15250021 * PERM. BUS OUT ON RORCCW COMES HERE 15300021 * 15350021 ERR420 L CCWREG,IOBSRT-C1 GET START ADDRESS 15400021 TM IOBFL1,IOBCMC COMMAND CHAINING 15450021 BZ ERR430 BRANCH NO 15500021 * 15550021 L CCWREG,IOBRST-C1 GET RESTART ADDRESS 15600021 * 15650021 ERR430 LA ERREG5,C8(CCWREG) GET ERR CCW ADDR +8 15700021 IC ERREG4,IOBCSW-C1 GET IOBFL3 15750021 ST ERREG5,IOBCSW-C1 STORE ERR CCW ADDR +8 15800021 STC ERREG4,IOBCSW-C1 RESTORE IOBFL3 15850021 * 15900021 * TEST FOR PERM. BUS OUT 15950021 * 16000021 TM IOBECT,IOBOVR PERMANENT BUS OUT 16050021 BO ERR570 BRANCH YES 16100021 EJECT 16150021 * 16200021 * CONTINUE CLEANUP 16250021 * 16300021 LH ERRG11,COUNT(CCWREG) GET ORIGINAL COUNT 16350021 N ERRG11,ERRCFF ZERO HIGH ORDER BITS 16400021 SH ERRG11,RORCNT SUBTRACT RORCCW COUNT 16450021 STH ERRG11,IOBCSW+C5 SET RESIDUAL COUNT 16500021 BZ ERR440 BRANCH IF RESIDUAL IS ZERO 16550021 * 16600021 TM C4(CCWREG),CCWSIL SILI BIT ON 16650021 BO ERR440 BRANCH YES 16700021 * 16750021 OI IOBCSW+C4,CSWICL SET INCORRECT LENGTH 16800021 * 16850021 ERR440 TM IOBFL2,IOBUEX UNIT EXCEPTION FLAG 16900021 BO ER2404B BRANCH YES 16950021 * 17000021 TM IOBCSW+C4,CSWICL INCORRECT LENGTH 17050021 BO ER2404B BRANCH YES 17100021 * 17150021 TM IOBFL1,IOBCMC COMMAND CHAINING 17200021 BZ ER2404B BRANCH NO 17250021 * 17300021 TM C4(CCWREG),IOBCMC CCW CHAINED 17350021 BZ ER2404B BRANCH NO 17400021 * 17450021 * SET-UP TO FINISH CHAIN 17500021 * 17550021 L ERRG11,DCBBLK(DCBREG) GET CURRENT BLOCK COUNT 17600021 SH ERRG11,IOBBCI SUBTRACT INCREMENT (- OR +) 17650021 ST ERRG11,DCBBLK(DCBREG) STORE UPDATED COUNT 17700021 LA CCWREG,C8(CCWREG) GET NEXT CCW ADDR 17750021 CLI 0(CCWREG),CMDTIC NEXT COMMAND TIC 17800021 BNE ERR450 BRANCH NO 17850021 * 17900021 L CCWREG,0(CCWREG) GET ADDRESS FROM TIC 17950021 * 18000021 ERR450 ST CCWREG,IOBRST-C1 SET CONTINUE CCW ADDRESS 18050021 NI IOBFL3,OVRFLOW RESET ALL BUT OVERFLOW 18100021 XC IOBECT,IOBECT RESET ERROR COUNTERS 18150021 * 18200021 ERR460 OI IOBFL1,IOBSRS SET RESTART FLAG 18250021 * 18300021 ERR470 NI IOBFL1,X'FF'-IOBMD1-IOBMD2 RESET CRC AND REPOSITION 18350021 NI IOBFL3,X'FF'-IOBROR RESET ROR IN PROGRESS 18400021 BR EXITRG GO FINISH CHAIN 18450021 EJECT 18500021 * 18550021 * WE HAVE JUST SPACED CHECK FOR CLEANER IN PROGRESS 18600021 * 18650021 ERR480 TM IOBECT,IOBCON IS CONTROL COUNT ZERO 18700021 BZ ERR490 BRANCH YES 18750021 * 18800021 * DECREMENT CLEANER CONTROL COUNT 18850021 * THE (BCTR REGZ,ZERO) IS TO DECREMENT THE CONTENTS OF REG Z BY 1 18900021 * 18950021 IC ERRG11,IOBECT GET CONTROL COUNT 19000021 BCTR ERRG11,ZERO DECREMENT 19050021 STC ERRG11,IOBECT STORE NEW COUNT 19100021 BR EXITRG CONTINUE 19150021 * 19200021 * TEST FOR END OF CLEANER BSRS 19250021 * 19300021 ERR490 TM IOBFL3,IOBTPC CLEANER BIT ON 19350021 BZ ERR510 BRANCH NO 19400021 * 19450021 * CHANGE CLEANER DIRECTION 19500021 * 19550021 MVI IOBMDB,CMDFSR SET FORWARD SPACE 19600021 OI IOBECT,CLNRDF SET COUNT 19650021 TM IOBFL3,IOBCTL READ BACK CLEANER 19700021 BO ERR500 BRANCH YES 19750021 * 19800021 NI IOBECT,X'FF'-CLNRDF RESET COUNT 19850021 OI IOBECT,CLNRDB SET NEW COUNT 19900021 * 19950021 ERR500 NI IOBFL3,X'FF'-IOBTPC-IOBCTL CLEAR FLAGS 20000021 BR EXITRG CONTINUE 20050021 EJECT 20100021 * SET SPACE DIRECTION AND SET-UP TO READ OPPOSITE 20150021 * 20200021 ERR510 MVI IOBMDB,CMDFSR SET FORWARD SPACE 20250021 CLI RORCCW,CMDRDB RORCCW READ BACK 20300021 BE ERR520 BRANCH YES 20350021 MVI IOBMDB,CMDBSR SET BACK SPACE 20400021 * 20450021 ERR520 OI IOBFL2,IOBROC SET IOS USE RORCCW 20500021 OI IOBFL1,IOBMD2+IOBMD1 SET CRC AND REPOSITION 20550021 * 20600021 * ALL EXITS VIA SVC 15 AND SVC 3 COME HERE 20650021 * 20700021 ERR530 SVC EXCPER ERROR EXCP 20750021 SVC RETURN RETURN 20800021 * 20810021 ERR535 MVI IOBCOD,ERPERR X'4B' IN IOB ECB CODE A29974 20820021 * 20850021 * EXIT HERE FOR LOAD 2 20900021 * 20950021 ERR540 LA ERRG13,LOAD2 GET LOAD 2 ADDRESS 21000021 ERR550 L ERRETR,VECTXL(VECREG) ADR FOR XCTL RTN 21050021 BR ERRETR XCTL TO LOAD 2 21100021 * 21150021 * ALL PERMANENT ERRORS COME HERE 21200021 * 21250021 ERR560 TM IOBCSW+C3,CSWDVE DEVICE END 21300021 BZ ERR580 BRANCH NO 21350021 ERR570 EQU * 21400021 OI FLAG1,BLKINC SET ADD TO BLOCK COUNT S21048 21450021 * 21500021 ERR580 OI IOBFL3,IOBLOG+IOBMSG SET MESSAGE AND LOGOUT S21048 21550021 NI IOBFL3,RESET SAVE LOG,MSG,OVERFLOW S21048 21600021 OC IOBFL3,FLAG1 SET IN ERROR BITS S21048 21650021 OI RORPTR,VESTAB SET VES FLAG ON S21048 21700021 B ER2404C GO TO LOAD 4 PART 3 S21048 21750021 ERR590 EQU * 21800021 LA ERRG13,WTORTN GET WTO ADDRESS 000J 21850021 L ERRETR,VECTXL(VECREG) ADR FOR XCTL RTN 21900021 BR ERRETR XCTL TO WTO 21950021 * 000J 22000021 ER2404B OI IOBFL3,IOBENT SET TO PART 2 22050021 ER2404C LA ERRG13,LOAD4 SET TO LOAD 4 22100021 B ERR550 GO XCTL TO LOAD 4 22150021 * 22200021 * CONSTANTS 22250021 DS 0F ALIGN 22300021 ERRCFF DC X'0000FFFF' RESET WORD 22350021 ERRC08 DC AL2(8) HALF WORD OF 8 22400021 ERRC10 DC AL2(10) HALF WORD OF 10 22450021 ERRC12 DC AL2(12) HALF WORD OF 12 22500021 FLAG DC X'00' NEW DEVICE FLAG S21048 22550021 FLAG1 DC X'00' ERROR BIT FLAG S21048 22600021 ORG ER2403+1020 MAKE LOAD 1024 BYTES 22650021 DC X'00000000' LONG FOR MAINTENANCE 22700021 END 22750021 ./ ADD SSI=03011040,NAME=IGE0225C,SOURCE=0 TITLE 'IGE0225C - WTO - LOAD 3' S20201 00100020 IECWTORC START X'00' WTOI 00200017 *A680500 A53842 00210021 *2559324000,328000-334000,516000-526000,532000-542000,618000, MCS 00240018 *2559686000,696000-698000 MCS 00280018 *2559388000 3007 00320018 *2559350000-374000 1350 00360018 *1283332800 A34650 00380020 *1283360000,674560 A35661 00385020 *1283386000 A32499 00390020 *1283190000,326400-328800,332500-333600,351000,359000,361000, S20201 00391020 *1283370000,402600,446000,448000-450000,454000-480000,630000, S20201 00392020 *1283674420-674560,675900-675950,754000 S20201 00393020 *1283 M3023 00395020 *1283369600-370000 M0031 00415020 *1283 M4029 00445020 *A179100,378140-378160 A51570 00455000 *STATUS CHANGE LEVEL 003 00495020 * WRITE TO OPERATOR ROUTINE - LOAD 3 WTOI 00600017 SPACE 2 WTOI 00800017 * FUNCTION SET UP THE I/O ERROR MESSAGE REQUESTED BY THE WTOI 01000017 * ERROR ROUTINE AND ISSUE THE WTO MACRO. WTOI 01200017 * ENTRY IECXWTO FROM LOAD 2 OF WTO ROUTINE VIA XCTL. WTOI 01400017 * INPUT REQUEST ELEMENT IN REGISTER 1. WTOI 01600017 * OUTPUT I/O ERROR MESSAGE ON CONSOLE VIA WTO MACRO. WTOI 01800017 * EXT REF NONE. WTOI 02000017 * EXITS RETURN TO SUPERVISOR VIA SVC 3 OR TO THE WTOI 02200017 * STATISTICS UPDATE ROUTINE VIA XCTL WHEN AN WTOI 02400017 * OBR IS REQUESTED. WTOI 02600017 * ERR MSG NONE. WTOI 02800017 * NOTES NONE. WTOI 03000017 * TABLES ERRTBL - ERROR TRANSLATE TABLE. WTOI 03200017 * ERROR DESCRIPTIONS. WTOI 03400017 * IOB WTOI 03600017 * OPERATION THE I/O ERROR WAS ANALYZED IN LOAD 2 OF THE WTOI 03800017 * WTO ROUTINE, AND AN OFFSET INTO THE ERROR WTOI 04000017 * DESCRIPTION TABLE WAS PLACED IN THE IOBSIOCC WTOI 04200017 * FIELD OF THE IOB. USING THIS OFFSET, THE WTOI 04400017 * ERROR DESCRIPTION IS MOVED TO THE MESSAGE WTOI 04600017 * BUFFER. THE CCW OP CODE, THE CSW STATUS, AND WTOI 04800017 * THE FIRST 2 SENSE BYTES ARE UNPACKED AND WTOI 05000017 * TRANSLATED FROM THE IOB TO THE BUFFER (FOR DA WTOI 05200017 * AND TAPE, IF THE FIRST TWO SENSE BYTES IN THE WTOI 05400017 * UCB ARE EQUAL TO THE 2 BYTES IN THE IOB, 5 WTOI 05600017 * BYTES ARE USED FROM THE UCB.). FOR DA, THE WTOI 05800017 * BBCCHH WILL BE PUT IN THE BUFFER, AND FOR TAPE WTOI 06000017 * THE BLOCK COUNT WILL BE MOVED FROM THE DCB. WTOI 06200017 * FOR DA AND TAPE DEVICES, THE VOLUME SERIAL WTOI 06400017 * IS MOVED TO THE BUFFER FROM THE UCB. WTOI 06600017 * THE JOBNAME IS MOVED FROM THE TIOT. WTOI 06800017 * THE WTO MACRO IS THEN ISSUED. WTOI 07000017 SPACE 1 07020018 * MULTI CONSOLE SUPPORT MCS 07040018 * IN ADDITION TO THE ABOVE FUNCTION THIS MOD. MCS 07060018 * CHECKS FOR MULTIPLE CONSOLE SUPPORT. IF MCS MCS 07080018 * IS IN THE SYSTEM THE BROAD CAST AND ROUTING FLAGSMCS 07100018 * ARE SET IN THE MESSAGE BUFFER WHICH IS PASSED MCS 07120018 * TO THE WTO ROUTINE. THE ROUTING CODES AND MCS 07140018 * DESTINATION CODES ARE PLACED IN THE MSG BUF MCS 07160018 * WTOI 07200017 * THE SKELETON OF THE MESSAGE IS AS FOLLOWS. WTOI 07400017 * IEA000I CUA,ERRDESCRIPTN,CM,STAT,SENSXXXXXX, MCS 07600018 * BBBBCCCCHHHH,VOLSER,JOBNAMEX WTOI 07800017 EJECT WTOI 08000017 SPACE 1 WTOI 08200017 * IOB DEFINITION BBBBBB 08400019 IOBFL1 EQU 0 FLAGS 1 WTOI 08600017 IOBFL2 EQU 1 FLAG 2 WTOI 08800017 SPACE 1 WTOI 09000017 IOBSNS EQU 2 SENSE DATA WTOI 09200017 IOBCOD EQU 4 ECB CODE WTOI 09400017 IOBFL3 EQU 8 FLAG 3 WTOI 09600017 IOBCSW EQU 8 CSW STORAGE WTOI 09800017 IOBSIOCC EQU 16 SIO CONDITION CODE FIELD WTOI 10000017 IOBMINDX EQU 20 INDEX TO MESSAGE TBL M0801 10100018 IOBDCB EQU 21 DCB POINTER WTOI 10200017 IOBMDB EQU 24 MODIFIER BYTE WTOI 10400017 IOBRST EQU 25 RESTART POINTER WTOI 10600017 IOBINCAM EQU 28 TAPE BLK CNT INCREMENT WTOI 10800017 IOBECT EQU 30 ERROR COUNTER WTOI 11000017 IOBMCS EQU X'80' IOB MCS FLAG MCS 11100018 IOBSK EQU 33 IOB SEEK ADDRESS WTOI 11200017 IOBERR EQU X'20' ERROR CORECTION INDICATOR WTOI 11400017 IOBEX EQU X'04' EXCEPT FLAG WTOI 11600017 IOBMSG EQU X'04' MESSAGE CODE WTOI 11800017 IOBSRS EQU X'01' START/RESTART FLAG WTOI 12000017 IOBEXE EQU IOBEX+IOBERR IOB EX AND ERROR FLAG WTOI 12200017 INTREQ EQU X'40' INT REQ SENSE A32499 12260020 SPACE 2 WTOI 12400017 * IOB FLAGS BBBBBB 12600019 IOBRHA EQU X'10' READ HA FLAG WTOI 12800017 IOBLOG EQU X'01' IOB LOG OUT FLAG BBBBBB 12900019 IOBOFLO EQU X'02' SDR COUNTER OVERFLOW 21016 12950021 SPACE 1 WTOI 13000017 * DCB DEFINITION BBBBBB 13200019 DCBBLK EQU 12 POINTER TO BLOCK COUNT WTOI 13400017 DCBFL EQU 44 FLAGS WTOI 13600017 DCBPER EQU X'C0' PERMANENT ERROR FLAGS WTOI 13800017 DCBEX EQU X'40' EXCEPTION CONDITION WTOI 14000017 DCBDEB EQU 44 WTOI 14200017 SPACE 2 WTOI 14400017 * DEB DEFINITION. WTOI 14600017 DEBTCB EQU 0 TCB POINTER WTOI 14800017 DEBDCB EQU 25 DEB DCB POINTER WTOI 15000017 DEBUCB EQU 33 WTOI 15200017 SPACE 1 BBBBBB 15300019 * UCB DEFINITION BBBBBB 15400019 UCBMPBYT EQU 0 MULT PROC IND AT UCB - 4 WTOI 15600017 UCBFL5 EQU 1 UCB SECOND FLAG BYTE S20201 15660020 UCBSTATA EQU 3 STATUS 'A' BYTE WTOI 15800017 UCBCUA EQU 4 CHAN. AND UNIT ADDRESS WTOI 16000017 UCBFL1 EQU 6 UCB FLAGS WTOI 16200017 UCBUTN EQU 13 UNIT NAME WTOI 16400017 UCBTYP EQU 16 UCB TYPE FIELD WTOI 16600017 UCBLTS EQU 20 ADDR. OF LAST RQE STARTED WTOI 16800017 UCBVSER EQU 28 VOLUME SERIAL WTOI 17000017 UCBEXT EQU 60 PTR TO UCB EXTENSION S20201 17040020 UCBBASE EQU 92 OFFSET FOR PTR TO BASE S20201 17120020 UCBTP EQU X'40' TP DEVICE TYPE WTOI 17200017 UCBUR EQU X'08' UNIT RECORD DEVICE TYPE WTOI 17400017 UCBTAPE EQU X'80' TAPE DEVICE TYPE WTOI 17600017 UCBDA EQU X'20' DIRECT ACCESS DEVICE TYPE WTOI 17800017 D2321 EQU X'05' 2321 CLASS S20201 17860020 D3211 EQU X'09' 3211 CLASS A51570 17910000 UCBSNS EQU 22 SENSE BYTES WTOI 18000017 UCBNRY EQU X'40' UCB NOT READY WTOI 18200017 UCBCHM EQU 12 CHAN MASK (BITS 4-7) WTOI 18400017 UCBALLC EQU 1 ALLOCATION CHAN. MASK WTOI 18600017 UCBSYSRS EQU X'02' SYS RES INDICATOR WTOI 18800017 SPACE 1 S20201 18880020 * FLAGS 2 IN THE UCB 20201 18960020 UCBEXTSN EQU X'08' EXTENDED SENSE DEVICE S20201 19040021 SPACE 2 WTOI 19200017 * RQE DEFINITION BBBBBB 19400019 TSTLNK EQU 0 FORWARD 12* LINK WTOI 19600017 TSTUCB EQU 2 UCB POINTER WTOI 19800017 TSTIOB EQU 5 IOB POINTER WTOI 20000017 TSTPR EQU 8 PRIORITY OF ENTRY WTOI 20200017 TSTDEB EQU 9 DEB POINTER WTOI 20400017 TSTTCB EQU 12 PTR TO TCB FOR 16 STARS WTOI 20600017 TSTTCBID EQU 4 TCB ID FOR 12 STARS WTOI 20800017 SPACE 1 WTOI 21000017 SPACE 1 BBBBBB 21100019 * TCB DEFINITION BBBBBB 21200019 TCBTIOT EQU 12 POINTER TO TIOT WTOI 21400017 TCBNEXT EQU X'74' TCB LINK FIELD WTOI 21600017 SPACE 1 WTOI 21800017 * TIOT DEFINITION BBBBBB 22000019 TIOTJOBN EQU 0 POINTER TO JOB NAME WTOI 22200017 SPACE 2 WTOI 22400017 * REGISTER DEFINITION BBBBBB 22600019 ERREG0 EQU 0 PARM REGISTER 21016 22650021 TSTREG EQU 1 RQE REGISTER BBBBBB 22700019 PARMREG EQU 1 PARAMETER REGISTER BBBBBB 22800019 ERREG2 EQU 2 WORK REG. WTOI 23000017 ERREG4 EQU 4 WORK REG. WTOI 23200017 VECREG EQU 8 VECTOR ADDR. REG. WTOI 23400017 IOBRG EQU 10 IOB ADDRESS REG WTOI 23600017 CCWREG EQU 11 CCW ADDRESS REG. WTOI 23800017 ERRLNK EQU 12 LINK REG WTOI 24000017 ERRETR EQU 14 RETURN REG. WTOI 24200017 BASREG EQU 15 BASE REG. WTOI 24400017 ERREG1 EQU 13 WORK REG 1 WTOI 24600017 ERREG3 EQU 3 WTOI 24800017 ERREG7 EQU 7 WTOI 25000017 ERREG5 EQU 5 WTOI 25200017 ERREG6 EQU 6 WTOI 25400017 ERREG8 EQU 8 WTOI 25600017 ERREG9 EQU 9 WTOI 25800017 ERREG10 EQU 10 WTOI 26000017 SPACE 2 WTOI 26200017 * MISCELLANEOUS DEFINITIONS BBBBBB 26300019 EXIT EQU 3 SVC EXIT BBBBBB 26400019 EXCPER EQU 15 ERROR EXCP WTOI 26600017 COMMA EQU X'EF' TRANSLATED COMMA WTOI 26800017 ASTERISK EQU X'EE' TRANSLATED * BBBBBB 27000019 MULTPROC EQU X'14' MULTI PROCESSING FLAG WTOI 27200017 MVT EQU X'10' MVT INDICATOR IN CVT WTOI 27400017 MFT EQU X'20' MFT INDICATOR IN CVT WTOI 27600017 PCP EQU X'40' PCP INDICATOR IN CVT WTOI 27800017 UNITCK EQU X'02' UNIT CHECK STATUS 1350 27900018 SPACE 1 WTOI 28000017 LOC016 EQU 16 ADDR. TO VECTOR TABLE WTOI 28200017 VECTXL EQU 44 VECTOR TO XCTL RNT. WTOI 28400017 CVTDCB EQU X'74' LOGREC DCB POINTER WTOI 28600017 CVTHEAD EQU X'A0' PTR TO TCB 1 FOR MFT WTOI 28800017 CVTMACSZ EQU X'A4' MAX CORE SIZE WTOI 29000017 CVTOTTA EQU 182 DISP TO NIP INDICATOR A23669 29060018 CVTNIP EQU X'10' NIP IN CONTROL FLAG A23669 29120018 SPACE 1 WTOI 29200017 LOGOBR EQU 256 LOAD NAME TO SERR LOG OUT WTOI 29400017 STATUP EQU 254 LOAD NAME TO STAT. UPDATE RWTOI 29600017 LINKDCB EQU 8 OFFSET OF LINKLIB DCB PTR IN CVTWTOI 29800017 SPACE 1 WTOI 30000017 DEV2540R EQU X'01' DEVICE 2540 CARD READER WTOI 30200017 DEV2540P EQU X'02' DEVICE 2540 CARD PUNCH WTOI 30400017 SPACE 1 30407018 DARTCOD EQU X'10' ROUTING CODE FOR DA MCS 30414018 TAPRTCD EQU X'20' ROUTING CODE FOR TAPE MCS 30421018 URRTCD EQU X'02' ROUTING CODE FOR UR MCS 30428018 TPRTCD EQU X'01' TP ROUING CODE MCS 30435018 DESCDSS EQU X'10' DSCRPTR (SYSTEM STATUS) MCS 30442018 DESCDIAR EQU X'40' DSCRPTR (IMM ACTION REQ) MCS 30449018 DEVCLAS EQU X'02' UCBTYPE DEVCLAS DISP MCS 30491018 MSGFLGS EQU X'02' MSGAREA FLGS DISP MCS 30498018 ZERO EQU X'00' CON FOR ZEROING FLG FLDS MCS 30505018 BLANK EQU X'40' BLANK OUT 1 BYTE FIELD MCS 30512018 TCOMMA EQU C',' TRANSLATED COMMA BBBBBB 30519019 NEXAVL EQU X'7C' DISP TO NXAVAIL RQE MCS 30526018 TCBTBL EQU X'04' TCBTBL DISP MCS 30533018 SNSMAL EQU X'FE' SENSE I/O MALFUNCTION S20201 30533820 BUFLN EQU 48 BUFFER MOVE LENGTH S20201 30535420 ZONE EQU X'0F' SET UP A ZONE FOR UNPK 21016 30536221 PERIOD EQU C'.' PERIOD 21016 30536621 D0 EQU 0 DISPLACEMENT OF 0 BBBBBB 30537019 D1 EQU 1 DISPLACEMENT OF 1 BBBBBB 30541019 D2 EQU 2 DISPLACEMENT OF 2 BBBBBB 30545019 D3 EQU 3 DISPLACEMENT OF 3 BBBBBB 30549019 D4 EQU 4 DISPLACEMENT OF 4 BBBBBB 30553019 D5 EQU 5 DISPLACEMENT OF 5 BBBBBB 30557019 D6 EQU 6 DISPLACEMENT OF 6 BBBBBB 30561019 D7 EQU 7 DISPLACEMENT OF 7 BBBBBB 30565019 D8 EQU 8 DISPLACEMENT OF 8 BBBBBB 30569019 D9 EQU 9 DISPLACEMENT OF 9 BBBBBB 30573019 D10 EQU 10 DISPLACEMENT OF 10 BBBBBB 30577019 D11 EQU 11 DISPLACEMENT OF 11 S20201 30577820 D12 EQU 12 DISPLACEMENT OF 12 S20201 30579420 D13 EQU 13 DISPLACEMENT OF 13 BBBBBB 30581019 D14 EQU 14 DISPLACEMENT OF 14 BBBBBB 30585019 D15 EQU 15 DISPLACEMENT OF 15 S20201 30585520 D28 EQU 28 DISPLACEMENT OF 28 21016 30586021 D32 EQU 32 DISPLACEMENT OF 32 S20201 30586520 D37 EQU 37 DISPLACEMENT OF 37 S20201 30587520 D56 EQU 56 DISPLACEMENT OF 56 BBBBBB 30589019 EJECT WTOI 30600017 * THIS ROUTINE WILL SET UP THE COMPLETE MESSAGE TO BE WRITTEN WTOI 30800017 * TO THE OPERATOR WTOI 31000017 * WTOI 31200017 DS 0D WTOI 31400017 USING *,BASREG BBBBBB 31600019 IECXWTO EQU * WTOI 31800017 L IOBRG,TSTIOB-1(TSTREG) GET ADDR. OF IOB WTOI 32200017 L VECREG,LOC016 GET CVT POINTER BBBBBB 32210019 LH ERREG1,TSTUCB(0,TSTREG) GET ADDR OF UCB BBBBBB 32310019 MVC BUFWORK1(2),UCBCUA(ERREG1) GET CHN + CU WTOI 32600017 SPACE 1 S20201 32620020 * DETERMINE ROUTING CODE FOR THIS DEVICE TYPE 20201 32640020 MVC RCTABEND-D2(D1),UCBTYP+DEVCLAS(ERREG1) SET LIMIT S20201 32660020 LA ERREG5,RCTAB-D2 INITIALIZE POINTER S20201 32700020 ERCOD LA ERREG5,D2(ERREG5) STEP TO NEXT ENTRY S20201 32740020 CLC UCBTYP+DEVCLAS(D1,ERREG1),ZERO(ERREG5) THIS ENTRY S20201 32780020 BC 7,ERCOD NO, GET NEXT ENTRY S20201 32820020 MVC BUFRTCOD(D1),D1(ERREG5) INSERT ROUTING CODE S20201 32860020 SPACE 1 S20201 32900020 ERR800A UNPK BUFCUA-1(5),BUFWORK1(3) UNPK UNIT ADDR TO BUFFER BBBBBB 32960019 MVI BUFCUA-1,BLANK BLANK BYTE BBBBBB 33040019 MVI BUFERDES-1,TCOMMA MOVE TRANS COMMA TO BUF BBBBBB 33120019 TR BUFCUA(3),ERRTBL-X'EE' TRANSLATE CUA BBBBBB 33200019 MVI BUFCM,ASTERISK INITIALIZE COMMAND CODE BBBBBB 33440019 MVI BUFCM+1,ASTERISK TO ASTERISKS BBBBBB 33520019 L CCWREG,IOBCSW(IOBRG) GET ADDRESS OF LAST CCW WTOI 33600017 LA CCWREG,D0(CCWREG) GET ADDRESS ONLY BBBBBB 33800019 SH CCWREG,ERRCN1 BACK UP CCW WTOI 34000017 BC 4,ERR805 WTOI 34200017 UNPK BUFCM(3),D0(2,CCWREG) UNPK OP CODE TO BUFFER BBBBBB 34300019 ERR805 MVI BUFSTAT-1,COMMA MOVE COMMA TO BUFFER BBBBBB 34500019 UNPK BUFSTAT(5),IOBCSW+4(3,IOBRG) UNPK CSW STATUS BBBBBB 34600019 TR BUFCM(7),ERRTBL-X'EE' TRANSLATE COMMAND AND STAT 1350 34900018 MVI BUFSNS-1,TCOMMA MOVE TRANS COMMA AFTER STATUS 35000019 SPACE 1 S20201 35009020 * INITIALIZE A POINTER TO THE SENSE DATA 20201 35018020 LA ERREG5,UCBSNS(ERREG1) SET PTR TO SENSE AREA S20201 35027020 ERR803 LA ERREG3,BUFSNS POINT TO NEXT AVAIL POS S20201 35160020 TM IOBCSW+4(IOBRG),UNITCK TEST FOR UNIT CHECK 1350 35300018 BC 8,ERR801 NO, BRANCH 1350 35400018 UNPK BUFSNS(5),IOBSNS(3,IOBRG) UNPK 2 BYTES FROM IOB 1350 35500018 TR BUFSNS(4),ERRTBL-X'EE' TRANSLATE SENSE 1350 35600018 LA ERREG3,BUFSNS+4 POINT TO NXT AVAIL POS. BBBBBB 35700019 CLC ZERO(D2,ERREG5),IOBSNS(IOBRG) UCB = IOB SENSE S20201 35780020 BC 7,ERR801 21016 35960021 UNPK BUFSNS(D11),ZERO(D6,ERREG5) UNPK SENSE S20201 36080020 TR BUFSNS(10),ERRTBL-X'EE' TRANSLATE SENSE 1350 36200018 LA ERREG3,BUFSNS+10 POINT TO NXT AVAIL POS. BBBBBB 36600019 ERR801 CLI D1(ERREG5),SNSMAL SENSE MALFUNCTION S20201 36640020 BC 7,ERR802 NO, SKIP SENSE ERR CODE S20201 36720020 SPACE 1 S20201 36800020 * THE FOLLOWING WILL OMIT THE OP CODE, STATUS, AND SENSE A27519 36880020 * FIELDS FROM THE MESSAGE ON A SENSE OPERATION MALFUNCTION A27519 36920020 MVI BUFCM-D1,TCOMMA COMMA FOR BUFFER DEXC 21016 37040021 MVC BUFCM(D2),BUFCM-D1 OMIT OPCODE,STAT,SENSE 21016 37050021 LA ERREG3,BUFCM+D2 POINT TO NXT AVAIL POS 21016 37070021 ERR802 MVI D0(ERREG3),TCOMMA MOVE IN COMMA S20201 37200020 NI IOBFL1(IOBRG),X'FF'-IOBERR TURN OFF IOBERR FLAG BBBBBB 37400019 NI IOBFL3(IOBRG),X'FF'-IOBMSG CLEAR MESSAGE FLAG WTOI 37800017 CLI UCBTYP+DEVCLAS(ERREG1),UCBUR TEST FOR UR M30233 37804020 BC 7,ERR801A NO, MOVE DESCRIPTION M30233 37812020 CLI UCBTYP+D3(ERREG1),D3211 IS THIS A 3211 A51570 37814000 BC 8,ERR801A YES,MOVE DESCRIPTION A51570 37816000 TM IOBSNS(IOBRG),INTREQ TEST FOR INT REQ A32499 37820020 BC 8,ERR801A NO, MOVE DESCRIPTION A32499 37860020 OI UCBFL1(ERREG1),UCBNRY SET UCB NOT READY A32499 37900020 * WTOI 38000017 * MOVE THE ERROR DESCRIPTION TO THE BUFFER WTOI 38200017 * WTOI 38400017 ERR801A L ERREG6,TSTPR(TSTREG) PICK UP DEB ADDRESS 21016 38500021 MVC BUFERDES(D2),TSTLNK(TSTREG) 38510021 MVC BUFERDES+D2(D1),TSTPR(TSTREG) 38520021 SPACE 1 BBBBBB 39400019 * THE FOLLOWING CHECKS FOR EITHER D/A OR TP. IF YES, INFO IS WTOI 39600017 * MOVED TO BUFFER. WTOI 39800017 TM IOBFL2(IOBRG),IOBRHA IS THIS REQUEST FROM DISK WTOI 40000017 BC 8,ERR815 NO, BRANCH WTOI 40200017 CLI D1(ERREG5),SNSMAL ERROR ON SENSE S20201 40240020 BC 8,ERR815 YES-OMIT 'BBCCHH' A27519 40320019 SPACE 1 WTOI 40400017 NI IOBFL2(IOBRG),X'FF'-IOBRHA CLEAR FLAG WTOI 40600017 UNPK D1(5,ERREG3),IOBSK(3,IOBRG) GET 'BB' BBBBBB 40800019 UNPK D5(9,ERREG3),IOBRST-1(5,IOBRG) GET 'CCHH' BBBBBB 41000019 MVI D13(ERREG3),COMMA MOVE COMMA TO BUFFER BBBBBB 41200019 TR D1(13,ERREG3),ERRTBL-X'EE' TRANSLATE BUFFER BBBBBB 41400019 TM UCBTYP+2(ERREG1),UCBDA TEST IF DA DEVICE SA61737 42000021 BC 14,ERRTP NO, GO HANDLE TP SA61737 42600021 LA ERREG3,D14(0,ERREG3) POINT TO NXT AVAIL POS. BBBBBB 43200019 SPACE 1 WTOI 44000017 * THE FOLLOWING MOVES THE VOLUME SERIAL TO THE BUFFER FOR WTOI 44200017 * D/A AND TAPE. WTOI 44400017 ERVOLSER CLI UCBTYP+D2(ERREG1),UCBDA IS THIS DA S20201 44450020 BC 7,ERVOL1 NO, GO CHECK FOR VOL SER S20201 44550020 CLI UCBTYP+D3(ERREG1),D2321 IS THIS A 2321 S20201 44650020 BC 7,ERVOL1 NO, SKIP 2321 CODE S20201 44730020 SR ERREG6,ERREG6 CLEAR REG S20201 44790020 IC ERREG6,IOBSK+D1(IOBRG) GET BIN NUMBER S20201 44850020 SLL ERREG6,4 MULTIPLY BY 16 S20201 44880020 LA ERREG1,D32(ERREG1,ERREG6) ALMOST POINT TO SUB UCB S20201 44940020 SPACE 1 S20201 45000020 ERVOL1 CLI UCBVSER(ERREG1),ZERO CHECK FOR VALID VOLSER S20201 45030020 BC 8,NOVOLSER NO, GO TO INDICATE WTOI 45200017 MVC D0(D6,ERREG3),UCBVSER(ERREG1) MOVE VOLSER TO MSG S20201 45800020 LA ERREG3,D6(0,ERREG3) POINT TO NXT AVAIL POS S20201 47000020 SPACE 1 WTOI 48200017 NOVOLSER MVI D0(ERREG3),TCOMMA MOVE TRANS COMMA TO BUF BBBBBB 48400019 LA ERREG3,D1(0,ERREG3) POINT TO NXT AVAIL POS. BBBBBB 48600019 SPACE 1 WTOI 48800017 * THE FOLLOWING MOVES THE JOBNAME TO THE BUFFER IF THE TCB CAN WTOI 49000017 * BE DETERMINED. WTOI 49200017 ERJOBNAM L ERREG5,TSTTCB(0,TSTREG) GET TCB PTR IF MVT BBBBBB 49700019 TM CVTDCB(VECREG),MVT TEST IF MVT MCS 50200018 BC 1,GETTIOT GET TIOT ADDRESS M0811 50600018 SR ERREG6,ERREG6 ZERO OUT TCBID REG MCS 51000018 IC ERREG6,TSTTCBID(0,TSTREG) GET DISP INTO TCB LOOKUP MCS 51400018 SLL ERREG6,2 MULT BY 4 19054 51600019 L ERREG5,NEXAVL(0,VECREG) INIT PTR TO LKUP IOS CONST MCS 51800018 L ERREG5,TCBTBL(0,ERREG5) GET PTR TO TCB LOOKUP MCS 52200018 L ERREG5,0(ERREG6,ERREG5) GET TCB PTR M40299 52500020 GETTIOT L ERREG5,TCBTIOT(0,ERREG5) GET TIOT PTR BBBBBB 53200019 L ERREG6,CVTMACSZ(VECREG) GET HIGHEST CORE ADDRESS WTOI 55200017 SH ERREG6,ERRCN1 INSURE NO PGM CHK IN MVC WTOI 55400017 CLR ERREG5,ERREG6 TEST IF TIOT PTR TOO HIGH WTOI 55600017 BC 2,ERR814 YES, OMIT JOB NAME WTOI 55800017 LTR ERREG5,ERREG5 TEST IF THERE IS A TIOT M4046 55860019 BC 8+4,ERR814 NO - OMIT JOB NAME M4046 55920019 MVC D0(8,ERREG3),TIOTJOBN(ERREG5) MOVE JOBN TO BUF BBBBBB 56000019 LA ERREG3,D8(0,ERREG3) POINT TO END OF BUFFER BBBBBB 56200019 SPACE 1 WTOI 64000017 * WRITE MESSAGE TO OPERATOR WTOI 64200017 SPACE 1 WTOI 64400017 ERR814 LR ERREG4,TSTREG SAVE 12* REG 21016 64600021 LR ERREG2,BASREG SAVE BASE ADDR. WTOI 64800017 TIME DEC WHAT TIME IS IT 21016 64850021 LR TSTREG,ERREG4 21016 64860021 LR BASREG,ERREG2 21016 64870021 LTR ERREG0,ERREG0 TIMER AVAILABLE 21016 64880021 BZ NOTIME NO - SKIP THIS SECTION 21016 64890021 ST ERREG0,WORK STORE PACKEC TIME 21016 64892021 OI WORK+D3,ZONE SET ZONE TO F 21016 64894021 UNPK BUFTIME+D2(D7),WORK UNPACK THE TIME 21016 64896021 MVI D0(ERREG3),TCOMMA COMMA AFTER JOBNAME 21016 64898021 MVC D1(D2,ERREG3),BUFTIME+D2 MOVE IN THE HOURS 21016 64898421 MVI D3(ERREG3),PERIOD PERIOD FOR A SEPERATOR 21016 64898821 MVC D4(D2,ERREG3),BUFTIME+D4 MOVE IN THE MINUTES 21016 64899221 MVI D6(ERREG3),PERIOD PERIOD FOR A SEPERATOR 21016 64899621 MVC D7(D2,ERREG3),BUFTIME+D6 MOVE IN THE SECONDS 21016 64899721 LA ERREG3,D9(ERREG3) INCR TO END OF MSG 21016 64899821 NOTIME LA ERREG4,MSGAREA FINE FIRST OF MSG 21016 64899921 MVC D0(D4,ERREG3),BUFDESC MAKE DESCR CONTIGUOUS 21016 64949921 SR ERREG3,ERREG4 GET MESSAGE LENGTH 21016 64959921 STH ERREG3,MSGAREA STORE MESSAGE LENGTH 21016 64969921 LR ERREG4,TSTREG 21016 64979921 LR ERREG2,BASREG 21016 64989921 LA PARMREG,MSGAREA INITIALIZE PARMREG BBBBBB 64999921 TM CVTOTTA(VECREG),CVTNIP IS NIP IN CONTROL A23669 65060018 BC 1,ERR859 RETURN TO IOS A23669 65120018 WTO MF=(E,(1)) WTOI 65200017 ERR859 LR TSTREG,ERREG4 RESTORE 12* REG WTOI 65400018 LR BASREG,ERREG2 RESTOR BASE ADDR. WTOI 65600017 CLI UCBTYP+D2(ERREG1),UCBTAPE TEST FOR TAPE DEVICE 21016 65650021 BC 8,ERTAPE YES, CHECK FOR OBR 21016 65700021 TM IOBFL3(IOBRG),IOBLOG LOG OUT FLAG IN IOBFL3 BBBBBB 65800019 BC 1,ERR806 BR-TO STAT. UPDATE WTOI 66000017 EXITX SVC EXCPER RETURN TO IOS VIA SVC 15 21016 66200021 SVC EXIT BBBBBB 66400019 SPACE 1 WTOI 66600017 ERR806 LA ERREG1,STATUP LD NAME FOR STAT UPDATE BBBBBB 66900019 OUT L ERRETR,VECTXL(VECREG) GET ADR TO XCTL RTN 21016 67200021 BCR 15,ERRETR BR-TO XCTL RNT. WTOI 67400017 ERTAPE TM IOBFL3(IOBRG),IOBLOG+IOBOFLO LOGOUT OR SDR OFLO 21016 67402021 BZ EXITX NO, RETURN TO IOS 21016 67404021 LA ERREG1,LOGOBR GO TO OBR ROUTINE 21016 67406021 B OUT EXIT WTO MODULE 21016 67406421 ERR815 TM UCBTYP+2(ERREG1),UCBTAPE CHECK FOR TAPE DEVICE WTOI 67408019 BC 1,ERRTAPE YES, BRANCH WTOI 67416019 TM UCBTYP+2(ERREG1),UCBDA CHECK FOR DA WITHOUT RHA WTOI 67424019 BC 1,NOBLKCNT YES, GO UPDATE BUF PTR BBBBBB 67432019 TM IOBCSW+D4(IOBRG),UNITCK TEST FOR UNIT CHECK S20201 67437020 BC 8,ERR815A NO,NO SENSE BYTES S20201 67439020 MVI ERRBUF+D28,TCOMMA MOVE TRANS COMMA TO MSG 21016 67441021 LA ERREG3,ERRBUF+D28 RESTORE ERREG3 21016 67441421 ERR815A MVC D1(D2,ERREG3),D0(ERREG3) PROPOGATE 2 COMMAS S20201 67445020 LA ERREG3,D3(ERREG3) POINT TO NST AVAIL POS S20201 67447020 BC 15,ERJOBNAM GO TO HANDLE JOB NAME WTOI 67464019 SPACE 1 WTOI 67472019 ERRTAPE LH ERREG5,IOBINCAM(IOBRG) GET FLD TO TST VALID BLKCT WTOI 67480019 LTR ERREG5,ERREG5 ZERO SAYS INVALID WTOI 67488019 BC 8,NOBLKCNT BRANCH WTOI 67496019 L ERREG5,TSTDEB-1(TSTREG) POINTER TO DEB WTOI 67504019 L ERREG5,DEBDCB-1(ERREG5) POINTER TO DCB WTOI 67512019 UNPK D1(9,ERREG3),DCBBLK(5,ERREG5) MOVE BLK CNT TO BUF BBBBBB 67520019 MVI D9(ERREG3),TCOMMA MOVE TRANS COMMA TO BUF BBBBBB 67528019 TR D1(8,ERREG3),ERRTBL-X'EE' TRANSLATE BUFFER BBBBBB 67536019 LA ERREG3,D10(0,ERREG3) POINT TO NXT AVAIL POS. BBBBBB 67544019 BC 15,ERVOLSER BRANCH TO HANDLE VOLSER BBBBBB 67552019 SPACE 1 BBBBBB 67560019 NOBLKCNT MVI D1(ERREG3),TCOMMA MOVE TRANS COMMA TO BUF BBBBBB 67568019 LA ERREG3,D2(0,ERREG3) POINT TO NXT AVAIL POS. BBBBBB 67576019 BC 15,ERVOLSER BRANCH TO HANDLE VOLSER BBBBBB 67584019 SPACE 1 BBBBBB 67585019 ERRTP MVC D1(9,ERREG3),D5(ERREG3) MOVE UP TP INFO & COMMA BBBBBB 67586019 LA ERREG3,D10(0,ERREG3) POINT TO NXT AVAIL POS. BBBBBB 67587019 BC 15,NOVOLSER GO TO HANDLE JOB NAME BBBBBB 67588019 SPACE 1 A27519 67589019 EJECT 67596019 SPACE 1 WTOI 67600017 DS 0H WTOI 67800017 ERRCN1 DC AL2(8) COUNT OF 8 WTOI 68000017 DS 0F FORCE MSG ON FULLWD BDY A53842 68050021 MSGAREA DC X'004C' BUFFER LENGTH + 4 FOR UR WTOI 68200017 DC X'8000' MCS FLAG M4158 68400018 ERRBUF DC C'IEA000I CUA,ERR,' 21016 68600021 DC C'CM,' WTOI 68800017 DC C'STAT,SENSXXXXXX,BBBBCCCCHHHH,' WTOI 69000017 DC C'VOLSER,JOBNAMEX,HH.MM.SS' 21016 69200021 DS H HALF WORD PAD AREA 21016 69250021 WORK DS F FULL WORD WORK AREA 21016 69300021 * BUFFER DEFINITION WTOI 69400017 BUFDESC DC XL2'1000' DSCRPTR ALWAYS SYSMAINT/ERRMCS 69500018 BUFRTCOD DC XL2'0060' RTR ALWAYS HAS SYS STATUS BIT 69600018 BUFCUA EQU ERRBUF+8 MCS 69700018 BUFERDES EQU ERRBUF+12 MCS 69800018 BUFCM EQU ERRBUF+16 21016 70000021 BUFSTAT EQU ERRBUF+19 21016 70050021 BUFSNS EQU ERRBUF+24 21016 70100021 BUFWORK1 EQU ERRBUF+24 21016 70150021 BUFTIME EQU ERRBUF+64 21016 70200021 SPACE 1 WTOI 70800017 ERRTBL DC C'*,0123456789ABCDEF' TRANSLATE TABLE WTOI 71200017 SPACE 1 WTOI 75200017 RCTAB DC X'0802' UR CLASS AND ROUTE CODE S20201 75220020 DC X'2010' DA CLASS AND ROUTE CODE S20201 75260020 DC X'4001' TP CLASS AND ROUTE CODE S20201 75300020 DC X'8020' TAPE CLASS AND ROUTE S20201 75340020 DC X'0040' DUMMY ENTRY SA69928 75380021 RCTABEND DS 0H END OF TABLE S20201 75420020 PATCH EQU * 75470021 DC (1024-(PATCH-IECWTORC))X'00' 75520021 END 75600017 ./ ADD SSI=02011040,NAME=IGE0225E,SOURCE=0 TITLE 'IGE0225E - DAVV - LOAD 2' 00210021 IGE0225E START 0 DAVV 00220021 EJECT DAVV 00400018 * VOLUME LABEL VERIFICATION ROUTINE DAVV 00600018 SPACE 3 DAVV 00800018 * FUNCTION INSURE THAT DIRECT ACCESS DEVICES WHICH GO FROM A DAVV 01000018 * NOT READY TO A READY STATE HAVE THE SAME VOLUME DAVV 01200018 * SERIAL AS IS CONTAINED IN THE UCB. DAVV 01400018 * ENTRY IGE0225E VIA XCTL FROM IGE0125E WHEN AN ERROR DAVV 01600018 * CONDITION EXISTS. DAVV 01800018 * INPUT ENTRY POINT IN REG 15, RQE POINTER IN REG 1. DAVV 02000018 * OUTPUT CONSOLE MESSAGES VIA WTO MACRO. DAVV 02200018 * EXT REF. NONE DAVV 02400018 * EXITS 1. SVC 15 TO IOS. DAVV 02600018 * 2. SVC 3 TO RETURN CONTROL TO SUPERVISOR. DAVV 02800018 * 3. XCTL TO WTO ERROR ROUTINE. DAVV 03000018 * MESSAGES THREE TYPES OF CONSOLE MESSAGES ARE DAVV 03200018 * 1. DISMOUNT MESSAGE DAVV 03400018 * 2. MOUNT MESSAGE DAVV 03600018 * 3. VOLUME LABEL ERROR MESSAGE. DAVV 03800018 * TABLES UCB,IOB. DAVV 04000018 * OPERATION A TEST IS MADE TO DETERMINE IS AN ERROR CONDITION DAVV 04200018 * EXISTS. IF NOT, THIS MODULE GAINED CONTROL DUE TO DAVV 04400018 * A MOUNTED VOLUME WITH AN INCORRECT VOLUME SERIAL, DAVV 04600018 * AND A DISMOUNT MESSAGE AND A MOUNT MESSAGE ARE DAVV 04800018 * WRITTEN TO THE OPERATOR. IF AN ERROR CONDITION DAVV 05000018 * EXISTS, THE CHANNEL PROGRAM IS RETRIED UNTIL DAVV 05200018 * CORRECTED OR A MAXIMUM OF TEN TIMES. IF THE DAVV 05400018 * ERROR PERSISTS, A BAD VOLUME LABEL MESSAGE AND DAVV 05600018 * A MOUNT MESSAGE ARE WRITTEN TO THE OPERATOR. DAVV 05800018 EJECT DAVV 06000018 * REGISTER DEFINITION DAVV 06200018 TSTREG EQU 1 RQE POINTER DAVV 06400018 UCBREG EQU 2 UCB POINTER DAVV 06600018 IOBREG EQU 3 IOB POINTER DAVV 06800018 INCREG EQU 4 INCREMENT VALUE FOR BUF 19022 07000019 WKREG2 EQU 13 WORK REGISTER 2 DAVV 07200018 WKREG3 EQU 5 WORK REGISTER 3 DAVV 07400018 BASEREG EQU 12 BASE REGISTER DAVV 07600018 CCWREG EQU 10 REG USED FOR BLDING CH PGM DAVV 07800018 CVTREG EQU 6 CVT POINTER DAVV 08000018 DATAREG EQU 7 REG USED FOR BLDING CH PGM DAVV 08200018 PARMREG EQU 7 PARM REG FOR WTO RTN 19022 08300019 UCBWKREG EQU 11 PTR TO UCB WKAREA DAVV 08400018 VOL1RG EQU 9 PTR TO VOLSER DAVV 08600018 BUFREG EQU 8 BUFFER PTR FOR WTO RTN DAVV 08800018 XCTLREG EQU 14 POINTER TO XCTL RTN DAVV 09000018 SUCBREG EQU 14 SUB UCB POINTER FOR 2321 19022 09100019 LNKREG EQU 15 BRANCH AND LINK REG DAVV 09200018 SPACE 2 DAVV 09400018 * RQE DEFINITION DAVV 09600018 TSTUCB EQU 2 UCB POINTER DAVV 09800018 TSTIOB EQU 4 IOB POINTER DAVV 10000018 TSTTCBID EQU 4 TCB ID FOR MFT DAVV 10200018 TSTDEB EQU 9 DEB POINTER DAVV 10400018 TSTTCB EQU 12 TCB POINTER FOR MVT DAVV 10600018 SPACE 2 DAVV 10800018 * IOB FLAGS DAVV 11000018 IOBEX EQU X'04' IOB EXCEPTION FLAG DAVV 11200018 IOBERR EQU X'20' ERROR RTN IN CTL FLAG DAVV 11400018 IOBSRS EQU X'01' RESTART FLAG DAVV 11600018 IOBNET EQU X'08' NO EXTENT TEST FLAG DAVV 11800018 IOBMSG EQU X'04' I/O ERR MSG FLAG DAVV 12000018 IOBLOG EQU X'01' LOG OUT FLAG FOR I/O ERRS DAVV 12200018 IOBHAR0 EQU X'10' SUPVR PROTECT KEY FLAG DAVV 12400018 SPACE 2 DAVV 12600018 * DEVICE TYPES 19022 12650019 DEV2321 EQU X'05' 2321 DEVICE TYPE 19022 12700019 SPACE 3 19022 12750019 * UCB FLAGS DAVV 12800018 UCBVVRTN EQU X'40' VOL VER RTN IN CONTROL DAVV 13000018 FTFLAG EQU X'20' FLAG ON AFTER FIRST ENTRY DAVV 13200018 TCCFLAG EQU X'10' FLAG FOR ALT TRK CHN PGM DAVV 13400018 UCBVER EQU X'08' VOLUME VERIFIED FLAG DAVV 13600018 UCBMNT EQU X'80' MOUNT MSG ISSUED FLAG DAVV 13800018 UCBNRY EQU X'40' NOT READY FLAG IN UCBFL1 DAVV 14000018 SPACE 2 DAVV 14200018 * UCB OFFSETS DAVV 14400018 UCBVS EQU 28 OFFSET IN WKAREA FOR VOLSERDAVV 14600018 UCBALTHA EQU 16 OFFSET TO HA AFTER TCC DAVV 14800018 UCBALTR0 EQU 21 OFFSET TO REC 0 AFTER TCC DAVV 15000018 UCBID EQU 34 OFFSET TO SRCH ID ARGUMNT DAVV 15200018 UCBWKPFX EQU 104 OFFSET TO NORMAL WKAREA DAVV 15400018 UCBSAV EQU 0 SAVE AREA FOR MSG ID DAVV 15600018 UCBBIN EQU 0 OFFSET OF BIN INTO SUBUCB 19022 15700019 SPACE 2 DAVV 15800018 * DEFINITIONS FOR BUILDING CHANNEL PROGRAM DAVV 16000018 RDHACM EQU X'1A' READ HOME ADDRESS CM DAVV 16200018 RDR0CM EQU X'16' READ RECORD 0 COMMAND DAVV 16400018 CMCHNSLI EQU X'60' COMMAND CHAIN,SUPP INC LEN DAVV 16600018 FIVECNT EQU 5 COUNT FOR RDHA,RDR0,SIDEQ DAVV 16800018 REC03 EQU 3 VOLUME LABEL IS RECORD 3 DAVV 17000018 IDR EQU 4 OFFSET TO R IN CCHHR DAVV 17200018 SIDCM EQU X'31' SEARCH ID EQUAL COMMAND DAVV 17400018 RDHACCW EQU 0 OFFSET TO READ HA CMD DAVV 17600018 RDR0CCW EQU 8 OFFSET TO READ R0 COMMAND DAVV 17800018 SIDCCW EQU 0 OFFSET TO S ID EQ CM DAVV 18000018 TICCCW EQU 8 OFFSET TO TIC COMMAND DAVV 18200018 TICCM EQU X'08' TRANSFER IN CHANNEL COMMANDDAVV 18400018 RDCCW EQU 16 OFFSET TO READ COMMAND DAVV 18600018 RDDATACM EQU X'06' READ DATA COMMAND DAVV 18800018 SLI EQU X'20' SUPPRESS INCORRECT LENGTH DAVV 19000018 SPACE 2 DAVV 19200018 * STATUS AND SENSE INDICATORS DAVV 19400018 UNITCK EQU X'02' UNIT CHECK STATUS DAVV 19600018 INTREQ EQU X'40' INTERVENTION REQUIRED SNS DAVV 19800018 TRKCNDCK EQU X'02' TRACK COND CHECK SENSE DAVV 20000018 UEX EQU X'01' UNIT EXCEPTION STATUS DAVV 20200018 SKCHK EQU X'01' SEEK CHECK SENSE 19022 20260019 MISSAM EQU X'02' MISSING ADDR MARKER SNS 19022 20320019 SPACE 2 DAVV 20400018 * WTO AND BUFFER DEFINITIONS DAVV 20600018 DISMLEN EQU 24 LENGTH OF DISMOUNT MSG DAVV 20800018 BLANK EQU X'40' EBCDIC BLANK DAVV 21000018 COMMA EQU X'EF' UNTRANSLATED COMMA DAVV 21200018 TCOMMA EQU C',' TRANSLATED COMMA DAVV 21400018 MNTMSGLN EQU 26 LENGTH OF MOUNT MSG DAVV 21600018 JOBNMLN EQU 8 LENGTH OF JOB NAME DAVV 21800018 CHANMSK EQU X'0F' MASK FOR VALID CHANNELS DAVV 22000018 DISMOUNT EQU C'D' DISMOUNT COMMAND DAVV 22200018 MOUNT EQU C'M' MOUNT COMMAND DAVV 22400018 CODE4 EQU C'4' MESSAGE CODE DAVV 22600018 CODE5 EQU C'5' MESSAGE CODE DAVV 22800018 BUF00 EQU 0 BUFFER OFFSET OF 0 19022 22810019 BUF01 EQU 1 BUFFER OFFSET OF 1 19022 22820019 BUF02 EQU 2 BUFFER OFFSET OF 2 19022 22830019 BUF06 EQU 6 BUFFER OFFSET OF 6 19022 22840019 BUF07 EQU 7 BUFFER OFFSET OF 7 19022 22850019 BUF08 EQU 8 BUFFER OFFSET OF 8 19022 22860019 BUF09 EQU 9 BUFFER OFFSET OF 9 19022 22870019 BUF17 EQU 17 BUFFER OFFSET OF 17 19022 22880019 BUF18 EQU 18 BUFFER OFFSET OF 18 19022 22890019 BUF20 EQU 20 BUFFER OFFSET OF 20 19022 22900019 BUF21 EQU 21 BUFFER OFFSET OF 21 19022 22910019 BUF25 EQU 25 BUFFER OFFSET OF 25 19022 22920019 BUF26 EQU 26 BUFFER OFFSET OF 26 19022 22930019 BUF30 EQU 30 BUFFER OFFSET OF 30 19022 22940019 BUF36 EQU 36 BUFFER OFFSET OF 36 19022 22950019 OFF0 EQU 0 OFFSET OF 0 19022 22960019 SPACE 2 DAVV 23000018 * MISCELLANEOUS DEFINITIONS DAVV 23200018 CVTPTR EQU 16 CORE LOC OF CVT POINTER DAVV 23400018 CVTXCTL EQU X'2C' POINTER TO XCTL RTN DAVV 23600018 CVTIXAVL EQU X'7C' OFFSET TO NEXT AVAIL. PTR DAVV 23800018 CVTMACSZ EQU 164 MACHINE SIZE IN CVT DAVV 24000018 CVTCONFG EQU X'74' OFFSET TO CONFIG. FLAG DAVV 24200018 MVT EQU X'10' MVT INDICATOR IN CVT DAVV 24400018 MFT EQU X'20' MFT INDICATOR IN CVT DAVV 24600018 PCP EQU X'40' PCP INDICATOR IN CVT DAVV 24800018 TCBTIOT EQU 12 TIOT POINTER DAVV 25000018 TCBK EQU 4 OFFSET TO TCBLKUP TBL DAVV 25200018 DEBTCB EQU 0 TCB POINTER DAVV 25400018 TIOTJOBN EQU 0 JOB NAME POINTER DAVV 25600018 WTORA EQU 253 LOAD NAME OF WTO ERR RTN DAVV 25800018 MAXERR EQU 10 MAXIMUM NUMBER OF RETRIES DAVV 26000018 NORMC EQU X'7F' NORMAL COMPLETION FLAG DAVV 26200018 ERREXCP EQU 15 SVC 15 DAVV 26400018 EXIT EQU 3 SVC 3 DAVV 26600018 ZERO EQU 0 ZERO COMPARAND DAVV 26800018 NONWORD EQU 3 NON-FULL-WORD BOUNDARY DAVV 27000018 LASTIND EQU X'80' LAST ENTRY IN LIST DAVV 27200018 BININCR EQU 2 BUFFER INCREMENT FOR BIN 19022 27250019 NUMZONE EQU X'F0' ZONE FIELD FOR NUM. CHAR. 19022 27300019 SLASH EQU C'/' EBCDIC CHAR 'SLASH' 19022 27350019 EJECT DAVV 27400018 ***** ***** DAVV 27600018 * I/O ERROR HANDLER * DAVV 27800018 ***** ***** DAVV 28000018 * * DAVV 28200018 * THIS ROUTINE IS ENTERED WHENEVER A CHANNEL PROGRAM INITIATED DAVV 28400018 * IN IGE0125E RECEIVES AN ERROR CONDITION. THE CHANNEL PROGRAM* DAVV 28600018 * IS RETRIED UNTIL CORRECTED UP TO TEN TIMES, AT WHICH TIME AN * DAVV 28800018 * ERROR MESSAGE AND A MOUNT MESSAGE ARE ISSUED. * DAVV 29000018 * RECOVERY IS ATTEMPTED FROM TRACK CONDITION CHECKS BY RETRYING* DAVV 29200018 * THE CHANNEL PROGRAM ON THE ALTERNATE TRACK. * DAVV 29400018 ***** ***** DAVV 29600018 SPACE 1 DAVV 29800018 USING *,BASEREG DAVV 30000018 INITENT LR BASEREG,15 ESTAB ADDRESSABILITY DAVV 30200018 LH UCBREG,TSTUCB(0,TSTREG) GET UCB ADDRESS DAVV 30400018 L IOBREG,TSTIOB(0,TSTREG) GET IOB ADDRESS DAVV 30600018 USING UCBDSECT,UCBREG ESTAB ADDR'TY FOR UCB DAVV 30800018 USING IOBDSECT,IOBREG ESTAB ADDR'TY FOR IOB DAVV 31000018 L CVTREG,CVTPTR GET PTR TO CVT 19022 31040019 LA VOL1RG,UCBVOL1 UCB VOLSER - NON2321 19022 31080019 SR INCREG,INCREG INCR VAL OF 0 FOR NON2321 19022 31120019 LA LNKREG,UPDERCNT INIT LNKREG FOR NON2321 19022 31160019 L UCBWKREG,UCBWORK GET UCB WORK AREA PTR DAVV 31200018 CLI UCBTYP+3,DEV2321 TEST FOR 2321 19022 31270019 BC 7,INIT001 NO, BRANCH 19022 31340019 LA INCREG,BININCR SET INCR FOR 2321 19022 31410019 LA LNKREG,DCELTEST INIT FOR 2321 19022 31480019 SR WKREG2,WKREG2 CLEAR WORK REG 19022 31550019 IC WKREG2,IOBDCCNT GET SUBUCB OFFSET 19022 31620019 LA VOL1RG,UCBDCVOL(WKREG2) POINT TO 2321 VOLSER 19022 31690019 LA SUCBREG,UCBBINNO(WKREG2) POINT TO SUB UCB 19022 31760019 L UCBWKREG,UCBWKB GET 2321 WKAREA PTR 19022 31830019 INIT001 LA UCBWKREG,UCBWKPFX(0,UCBWKREG) ADJUST PAST PREFIX 19022 31900019 TM IOBFL2,IOBNET WAS LAST I/O A A43739 31910021 * RECALIBRATE A43739 31920021 BZ RECRSET YES, RETRY VOL LABEL A43739 31930021 * READ A43739 31940021 LH WKREG2,IOBCSW+3 GET CSW STATUS 19022 31970019 N WKREG2,ERRMSK CHECK FOR ERROR COND 19022 32040019 BC 8,WTORTN NO,MUST BE DISM MSG DAVV 32200018 SPACE 1 19022 32260019 * AN ERROR CONDITION EXISTS. 19022 32320019 ERRPROC TM IOBCSW+3,UNITCK TEST FOR UNIT CHECK STATUS DAVV 32400018 BC 8,UPDERCNT NO,GO TO UPDATE ERR COUNTR DAVV 32600018 TM IOBSNS,INTREQ TEST FOR INTERVENTION REQ DAVV 32800018 BC 1,XCTLWTO YES,GO TO XCTL TO WTO RTN DAVV 33000018 TM IOBSNS,TRKCNDCK TEST FOR TRACK COND. CHECK DAVV 33200018 BC 1,ALTTRKCP YES,GO TO ALT TRK PROCEDUREDAVV 33400018 BCR 15,LNKREG IF 2321, GO TEST BALLAST 19022 33460019 SPACE 1 19022 33520019 * THIS CODE MAINTAINS THE ERROR COUNTER AND EITHER BRANCHES TO DAVV 33600018 * THE RETRY PROCEDURE OR ISSUES AN ERROR MESSAGE. DAVV 33800018 RECRSET OI IOBFL2,IOBNET RESET BYPASS OF SEEK A43739 33860021 ST UCBWKREG,IOBRESTR-1 RESET RESTART FIELD A43739 33920021 XC UCBID(4,UCBWKREG),UCBID(UCBWKREG) CLEAR CCHH SA60761 33970021 MVI UCBID+IDR(UCBWKREG),REC03 SET SID TO RECORD 3 SA60761 33980021 UPDERCNT IC WKREG2,IOBECT+1 GET CURRENT ERROR COUNT 19022 34000019 LA WKREG2,1(0,WKREG2) UPDATE BY 1 DAVV 34200018 STC WKREG2,IOBECT+1 STORE NEW ERROR COUNT 19022 34400019 CLI IOBECT+1,MAXERR TEST IF TEN RETRIES DONE DAVV 34600018 BC 2,ERWTORTN YES,GO ISSUE ERROR MSG. DAVV 34800018 SVC ERREXCP RETURN TO IOS DAVV 35000018 SVC EXIT RETURN TO SUPERVISOR DAVV 35200018 EJECT DAVV 35400018 * THIS ROUTINE TESTS FOR A BALLAST CELL FOR 2321 ERRORS. IF 19022 35420019 * NOT, NORMAL PROCESSING IS FOLLOWED. IF BALLAST, NO RETRIES 19022 35440019 * ARE DONE, AND AN ERROR MESSAGE IS ISSUED. 19022 35460019 DCELTEST TM IOBSNS,SKCHK TEST FOR SEEK CHECK 19022 35480019 BC 8,UPDERCNT NO, NOT BALLAST 19022 35500019 TM IOBSNS+1,MISSAM TEST FOR MISSING ADDR MKR 19022 35520019 BC 8,UPDERCNT NO, NOT BALLAST 19022 35540019 BC 15,ERWTORTN BALLAST, ISSUE ERR MSG 19022 35560019 SPACE 1 19022 35580019 * THIS CODE TRANSFERS CONTROL TO THE WRITE-TO-OPERATOR ERROR DAVV 35600018 * ROUTINE TO ISSUE THE INTERVENTION REQUIRED MESSAGE DAVV 35800018 XCTLWTO LA WKREG2,WTORA GET LOAD NAME OF WTO DAVV 36000018 NI IOBFL3,X'FF'-IOBLOG-IOBMSG INSURE INT REQ MSG DAVV 36200018 L XCTLREG,CVTXCTL(0,CVTREG) GET PTR TO XCTL RTN DAVV 36400018 BCR 15,XCTLREG GO TO ROUTINE DAVV 36600018 SPACE 1 DAVV 36800018 * THIS ROUTINE SETS UP A CHANNEL PROGRAM TO READ THE HOME DAVV 37000018 * ADDRESS AND RECORD ZERO ON THE DEFECTIVE TRACK. DAVV 37200018 ALTTRKCP LR CCWREG,UCBWKREG GET PTR TO WKAREA DAVV 37400018 LA DATAREG,UCBALTHA(CCWREG) GET HA BUFFER ADR DAVV 37600018 ST DATAREG,RDHACCW(0,CCWREG) STR BUF ADR INTO RDHA CM DAVV 37800018 MVI RDHACCW(CCWREG),RDHACM MOVE READ H.A. COMMAND DAVV 38000018 MVI RDHACCW+4(CCWREG),CMCHNSLI SET CMD CHAIN AND SLI DAVV 38200018 MVI RDHACCW+7(CCWREG),FIVECNT SET HA LENGTH TO FIVE DAVV 38400018 LA DATAREG,FIVECNT(0,DATAREG) UPDATE BEYOND HA TO R0 DAVV 38600018 ST DATAREG,RDR0CCW(0,CCWREG) STR BUF ADR INTO RDR0 CM DAVV 38800018 MVI RDR0CCW(CCWREG),RDR0CM MOVE READ R0 COMMAND DAVV 39000018 MVI RDR0CCW+4(CCWREG),SLI SET SUPPRESS INCORRECT LEN DAVV 39200018 MVI RDR0CCW+7(CCWREG),FIVECNT SET R0 LENGTH TO FIVE DAVV 39400018 OI UCBFL4,TCCFLAG INDICATE ALT TRK PROCEDURE DAVV 39600018 SVC ERREXCP RETURN TO IOS DAVV 39800018 SVC EXIT RETURN TO SUPERVISOR DAVV 40000018 SPACE 2 DAVV 40200018 * THIS SUBROUTINE IS ENTERED WHEN THE PACK MOUNTED DISAGREES IN DAVV 40400018 * VOLUME SERIAL WITH THE UCB INFORMATION. DAVV 40600018 WTORTN MVC DMBUFCUA(3),UCBUTN MOVE UNIT NAME TO BUF 19022 40700019 CLI UCBTYP+3,DEV2321 TEST FOR 2321 19022 40800019 BC 7,WTO001 NO, NO BIN NUMBER 19022 40900019 MVI DMBUFCUA+3,SLASH MOVE SLASH TO BUF 19022 41000019 MVC DMBUFCUA+4(1),UCBBIN+1(SUCBREG) MOVE BIN NO. 19022 41100019 OI DMBUFCUA+4,NUMZONE MAKE BIN NO. PRINTABLE 19022 41200019 WTO001 LA BUFREG,DMBUFVOL-1(INCREG) INIT BUF PTR PAST CUA 19022 41300019 MVI BUF00(BUFREG),TCOMMA COMMA AFTER CUA 19022 41400019 MVC BUF01(6,BUFREG),UCBVS(UCBWKREG) VOLSER OF MNTD VOL 19022 41500019 MVC BUF07(4,BUFREG),DMDESC DESCR + RTING CODES 19022 41600019 MVI DMBUFACT,DISMOUNT MOVE DISMOUNT INDICATOR DAVV 42400018 MVI DMBUFCOD+5,CODE4 INSURE PROPER MSG CODE DAVV 42600018 LA WKREG2,DISMLEN(0,INCREG) GET MSG LENGTH 19022 42700019 STH WKREG2,DMBUFLN STORE IN BUF LEN FLD 19022 42800019 LR WKREG2,TSTREG SAVE RQE POINTER OVER SVC DAVV 43000018 LA 1,DMBUF INIT REG FOR WTO MACRO DAVV 43200018 WTO MF=(E,(1)) DAVV 43400018 ST 1,UCBSAV(0,UCBWKREG) SAVE MSG ID IN WKAREA DAVV 43600018 LA BUFREG,BUF09(0,BUFREG) POINT TO JOBNAME FIELD 19022 44600019 LR TSTREG,WKREG2 SAVE RQE PTR OVER JOBN RTN19022 45600019 BAL LNKREG,ERJOBNAM GO TO GET JOB NAME 19022 46600019 LR WKREG2,TSTREG SAVE TSTREG OVER WTO 19022 47600019 SPACE 1 19022 48600019 WTOMNT MVC BUF00(4,BUFREG),DMDESC MOVE DESCR + RTING CODES 19022 49600019 LA 1,DMBUF INIT PTR FOR WTO MACRO 19022 50600019 SR BUFREG,1 FORM MSG LENGTH 19022 51600019 STH BUFREG,DMBUFLN STORE IN BUFFER 19022 52600019 OI UCBFL1,UCBNRY INDICATE NOT READY 19022 53600019 LA WKREG3,DMBUFVOL(INCREG) GET PTR TO VOLSER FIELD 19022 54600019 MVC BUF00(6,WKREG3),OFF0(VOL1RG) MOVE UCB VOLSER 19022 55600019 MVI BUF06(WKREG3),TCOMMA MOVE COMMA TO BUFFER 19022 56600019 MVI BUF07(WKREG3),TCOMMA MOVE COMMA TO BUFFER 19022 57600019 MVI DMBUFACT,MOUNT SET ACTION TO MOUNT DAVV 59800018 MVI DMBUFCOD+5,CODE5 SET WTO CODE DAVV 60000018 WTO MF=(E,(1)) DAVV 60400018 ST 1,UCBSAV+4(0,UCBWKREG) SAVE MSG ID IN WKAREA DAVV 60600018 OI UCBSAV+4(UCBWKREG),LASTIND INDICATE LAST ENTRY DAVV 60800018 OI UCBFL4,UCBMNT INDICATE MOUNT MSG ISSUED DAVV 61000018 LR TSTREG,WKREG2 RESTORE RQE POINTER DAVV 61200018 MVI UCBRQESV,ZERO FORCE RE-DAVV SA68917 61250021 NI UCBFL4,X'FF'-FTFLAG RESET FIRST TIME FLAG SA68917 61300021 SVC ERREXCP RET TO IOS TO POST IN ERR DAVV 61400018 SVC EXIT RET TO SUPERVISOR DAVV 61600018 SPACE 1 19022 61603019 * THIS ROUTINE FORMATS AND PRINTS AN I/O ERROR MESSAGE. 19022 61606019 ERWTORTN MVC ERBUFWK(2),UCBCUA MOVE UNIT ADDR TO WKAREA 19022 61609019 UNPK ERBUFCUA-1(5),ERBUFWK(3) UNPACK INTO CUA FIELD 19022 61612019 MVI ERBUFCUA-1,BLANK RESET BLANK 19022 61615019 TR ERBUFCUA(3),ERRTBL-X'EE' TRANSLATE CUA 19022 61618019 MVC DMBUFCUA(3),UCBUTN INIT CUA FOR MNT MSG 19022 61621019 MVI DMBUFCUA+3,TCOMMA INSURE COMMA 19022 61624019 CLI UCBTYP+3,DEV2321 TEST FOR 2321 19022 61627019 BC 7,ERWTO002 NO, BRANCH 19022 61630019 MVI ERBUFCUA+3,SLASH FORMAT BUF FOR 2321 19022 61633019 MVC ERBUFCUA+4(1),UCBBIN+1(SUCBREG) MOVE BIN NO. 19022 61636019 OI ERBUFCUA+4,NUMZONE MAKE BIN NO. PRINTABLE 19022 61639019 MVC DMBUFCUA+3(2),ERBUFCUA+3 MOVE TO MNT MSG BUFFER 19022 61642019 MVI DMBUFCUA+5,TCOMMA RESET COMMA 19022 61645019 ERWTO002 LA BUFREG,ERBUFTXT-1(INCREG) POINT BUFREG AFTER CUA 19022 61648019 MVI BUF00(BUFREG),TCOMMA MOVE COMMA AFTER CUA 19022 61651019 MVC BUF01(16,BUFREG),LBLMSG MOVE MSG TEXT TO BUF 19022 61654019 MVI BUF17(BUFREG),TCOMMA MOVE COMMA AFTER TEXT 19022 61657019 MVC BUF18(3,BUFREG),DUMMYCM INIT TO DUMMY COMMAND 19022 61660019 L CCWREG,IOBCSW-1 LOAD CCW ADDR FROM CSW 19022 61663019 LA CCWREG,OFF0(0,CCWREG) INSURE HI ORDER BYTE ZERO 19022 61666019 LTR CCWREG,CCWREG TEST CCW ADDR FOR ZERO A39733 61667020 * A3973 A39733 61668020 BC 8,ERWTOST YES, USE DUMMY CM A39733 61669020 * A3973 A39733 61670020 SH CCWREG,CCWLN POINT TO FAILING CMD A39733 61671020 * A3973 A39733 61672020 UNPK BUF18(3,BUFREG),OFF0(2,CCWREG) UNPK COMMAND TO BUF 19022 61675019 MVI BUF20(BUFREG),COMMA MOVE COMMA AFTER COMMAND 19022 61678019 ERWTOST UNPK BUF21(5,BUFREG),IOBCSW+3(3) UNPACK STATUS INTO BUF 19022 61681019 MVI BUF25(BUFREG),COMMA MOVE COMMA AFTER STATUS 19022 61684019 CLC UCBSNS(2),IOBSNS TEST IF UCB SENSE VALID 19022 61687019 BC 7,ERWTOSNS NO, GO TO USE IOB SNS 19022 61690019 UNPK BUF26(11,BUFREG),UCBSNS(6) UNPACK SENSE INTO BUF 19022 61693019 TR BUF18(18,BUFREG),ERRTBL-X'EE' TRANS CM,STAT,SENSE 19022 61696019 LA BUFREG,BUF36(0,BUFREG) UPDATE REG TO NXT AVAIL 19022 61699019 BC 15,ERWTO001 BRANCH 19022 61702019 SPACE 1 19022 61705019 ERWTOSNS UNPK BUF26(5,BUFREG),IOBSNS(3) UNPACK SENSE FROM IOB 19022 61708019 TR BUF18(12,BUFREG),ERRTBL-X'EE' TRANS CM,STAT,SENSE 19022 61711019 LA BUFREG,BUF30(0,BUFREG) UPDATE TO NEXT AVAIL POS. 19022 61714019 ERWTO001 MVI BUF00(BUFREG),TCOMMA MOVE COMMA AFTER SENSE 19022 61717019 MVI BUF01(BUFREG),TCOMMA MOVE POSITIONAL COMMA 19022 61720019 MVC BUF02(6,BUFREG),OFF0(VOL1RG) USE VOLSER IN UCB 19022 61723019 MVI BUF08(BUFREG),TCOMMA MOVE COMMA AFTER VOLSER 19022 61726019 LA BUFREG,BUF09(0,BUFREG) UPDATE TO NEXT AVAIL POS. 19022 61729019 BAL LNKREG,ERJOBNAM GO TO GET JOB NAME 19022 61732019 MVC BUF00(4,BUFREG),ERDESC MOVE DESCR + RTING CODES 19022 61735019 LR WKREG2,TSTREG SAVE TSTREG OVER WTO 19022 61738019 LA 1,ERBUF INIT WTO INPUT REG 19022 61741019 SR BUFREG,1 FORM MSG LENGTH 19022 61744019 STH BUFREG,ERBUFLN STORE LENGTH IN BUFFER 19022 61747019 WTO MF=(E,(1)) 19022 61750019 ST 1,UCBSAV(0,UCBWKREG) SAVE MSG ID FOR DOM 19022 61753019 LA BUFREG,DMBUFJOB(PARMREG) PT REG TO END OF MNT BUF 19022 61756019 BC 15,WTOMNT GO TO ISSUE MOUNT MSG 19022 61759019 SPACE 1 19022 61762019 * THE FOLLOWING MOVES THE JOBNAME TO THE BUFFER IF THE TCB CAN 19022 61765019 * BE DETERMINED. 19022 61768019 ERJOBNAM LR PARMREG,INCREG INIT EOBUF REG FOR WTOMNT 19022 61771019 TM CVTCONFG(CVTREG),MVT CHK SYSTEM TYPE FOR 16 STARDAVV 61778019 L WKREG2,TSTTCB(0,TSTREG) GET TCB PTR DAVV 61785019 BC 1,GETTIOT YES,BRANCH DAVV 61792019 SR WKREG3,WKREG3 CLEAR REG DAVV 61799019 IC WKREG3,TSTTCBID(0,TSTREG) GET TCB ID-OFFSET TCBLK DAVV 61806019 SLL WKREG3,2 FORM PROPER OFFSET 19054 61809019 L WKREG2,CVTIXAVL(0,CVTREG) GET NEXT AVAIL. PTR DAVV 61813019 L WKREG2,TCBK(0,WKREG2) NEXAVL + 4 = PTR TO TCBLK DAVV 61820019 L WKREG2,0(WKREG3,WKREG2) GET TCB PTR DAVV 61827019 GETTIOT L WKREG3,TSTDEB-1(0,TSTREG) GET DEB PTR FROM 12 STAR DAVV 61834019 L WKREG3,DEBTCB(0,WKREG3) GET TCB POINTER DAVV 61841019 LA WKREG2,0(0,WKREG2) INSURE ZERO IN HI ORDER DAVV 61848019 LA WKREG3,0(0,WKREG3) INSURE ZERO IN HI ORDER DAVV 61855019 CR WKREG2,WKREG3 COMPARE TCB PTRS FOR VLDTY DAVV 61862019 BCR 7,LNKREG NOT EQUAL, OMIT JOBNAME 19022 61869019 TM TCBTIOT+3(WKREG2),NONWORD INSURE WORD BOUNDARY 19022 61876019 BCR 4+1,LNKREG NO, OMIT JOBNAME 19022 61883019 L WKREG2,TCBTIOT(0,WKREG2) GET TIOT PTR 19022 61890019 L WKREG3,CVTMACSZ(0,CVTREG) GET MAX CORE ADDR 19022 61897019 SH WKREG3,CCWLN ALLOW FOR JOBNAME LENGTH 19022 61904019 CLR WKREG2,WKREG3 TEST IF TIOT PTR TOO HIGH 19022 61911019 BCR 2,LNKREG YES, OMIT JOBNAME 19022 61918019 MVC BUF00(8,BUFREG),TIOTJOBN(WKREG2) MOVE JOBN TO BUF 19022 61925019 LA BUFREG,BUF08(0,BUFREG) UPDATE TO END OF BUFFER 19022 61932019 LA PARMREG,BUF08(0,PARMREG) UPDATE FOR MNT BUFFER 19022 61939019 LA WKREG3,DMBUFJOB(INCREG) POINT TO JOBNAME FIELD 19022 61946019 MVC BUF00(8,WKREG3),TIOTJOBN(WKREG2) MOVE JOBN TO BUF 19022 61953019 BCR 15,LNKREG RETURN TO CALLER 19022 61960019 EJECT 19022 61967019 ***** ***** DAVV 62000018 * * DAVV 62200018 * CONSTANTS, MESSAGES, AND WORK AREAS * DAVV 62400018 * * DAVV 62600018 ***** ***** DAVV 62800018 DS 0F DAVV 63000018 ERRMSK DC X'0000037F' MASK FOR CSW STATUS ERRORS DAVV 63200018 CCWLN DC H'8' COUNT OF 8 DAVV 63400018 SPACE 1 DAVV 63600018 * DISMOUNT/MOUNT MESSAGE BUFFER DAVV 63800018 DMBUF DC H'0' LENGTH FIELD M4158 63900018 DC X'8000' MCS FLAG M4158 64000018 DC CL36'IEA600A M CUA,VOLSER,,JOB' A31376 64100020 * A3137 A31376 64200020 DMDESC DC XL2'4000' DESCRIPTOR CODE- IAR DAVV 64400018 DMRTC DC XL2'1000' ROUTING CODE-DIRECT ACCESS DAVV 64600018 DMBUFLN EQU DMBUF+0 LENGTH FIELD DAVV 64800018 DMBUFCOD EQU DMBUF+4 MESSAGE CODE FIELD DAVV 65000018 DMBUFACT EQU DMBUF+12 ACTION FIELD DAVV 65200018 DMBUFCUA EQU DMBUF+14 CHN AND UNIT ADDR FIELD DAVV 65400018 DMBUFVOL EQU DMBUF+18 VOLUME SERIAL FIELD DAVV 65600018 DMBUFJOB EQU DMBUF+26 JOB NAME FIELD DAVV 65800018 SPACE 1 DAVV 66200018 * I/O ERROR MESSAGE BUFFER BBBBBB 66300019 ERBUF DC H'0' LENGTH FIELD M4158 66500018 DC X'8000' MCS FLAG M4158 66600018 DC CL70'IEA606I CUA' A31376 66700020 * A3137 A31376 66800020 ERDESC DC XL2'1000' DESCRIPTOR CODE-SYST STAT DAVV 67000018 ERRTC DC XL2'1040' RT CODE - D/A POOL AND ER DAVV 67200018 ERBUFLN EQU ERBUF+0 LENGTH FIELD DAVV 67400018 ERBUFCUA EQU ERBUF+12 CUA FIELD DAVV 67600018 ERBUFTXT EQU ERBUF+16 MESSAGE TEXT FIELD DAVV 67800018 ERBUFCM EQU ERBUF+33 COMMAND FIELD DAVV 68000018 ERBUFST EQU ERBUF+36 STATUS FIELD DAVV 68200018 ERBUFSNS EQU ERBUF+41 SENSE FIELD DAVV 68400018 ERBUFWK EQU ERBUF+36 WORK AREA WITHIN BUFFER DAVV 68600018 SPACE 1 DAVV 68800018 ERRTBL DC C'*,0123456789ABCDEF' TRANSLATE TABLE DAVV 69000018 DUMMYCM DC X'EEEEEF' UNTRANSLATED **, DAVV 69200018 LBLMSG DC C'BAD VOLUME LABEL' TEXT FOR ERROR MSG 19022 69300019 PATCH EQU * START OF PATCH AREA 69350021 DC (1024-(PATCH-INITENT))X'00' 69360021 EJECT DAVV 69400018 * DUMMY CONTROL SECTION FOR A UCB DAVV 69600018 UCBDSECT DSECT DAVV 69800018 DS AL3 JOB NO.,ALLOC CHN MSK,ID DAVV 70000018 UCBSTAT DS XL1 STATUS A FLAGS DAVV 70200018 UCBCUA DS H CHANNEL AND UNIT ADDRESS DAVV 70400018 UCBFL1 DS XL1 FLAGS 1 - IOS FLAGS DAVV 70600018 DS XL2 INDECES DAVV 70800018 UCBSTI DS XL1 INDEX TO STAT TABLE DAVV 71000018 DS XL3 INDECES DAVV 71200018 UCBUTN DS XL3 UNIT NAME IN EBCDIC DAVV 71400018 UCBTYP DS F DEVICE DESCRIPTOR WORD DAVV 71600018 UCBLTS DS H LAST RQE DAVV 71800018 UCBSNS DS XL6 SENSE INFORMATION DAVV 72000018 UCBVOL1 DS XL6 VOLUME SERIAL DAVV 72200018 DS XL8 VOLUME INFO, RESERVE/RELSE DAVV 72400018 UCBRQESV DS H RQE SAVE FOR VOL. VER. RTN DAVV 72600018 UCBCNTR DS XL1 BITS 0-3 2321 BIN COUNTER DAVV 72800018 UCBFL4 EQU UCBCNTR BITS 4-7 FLAGS FOR VVR DAVV 73000018 DS XL3 UNUSED DAVV 73200018 UCBSKA DS 2F LAST SEEK ADDRESS DAVV 73400018 DS F NO. USERS,ECB DAVV 73600018 UCBWORK DS F WORK AREA POINTER DAVV 73800018 SPACE 1 19022 73810019 * UCB EXTENSION FOR DATA CELL 19022 73820019 ORG UCBVOL1 19022 73830019 UCBWKA DS XL12 DATA CELL WORK AREA A 19022 73840019 DS 4F RES/REL,VOL VER,SEEK ADR 19022 73850019 * DESCRIPTION OF CELL ZERO 19022 73860019 UCBBINNO DS H BIN NUMBER 19022 73870019 DS H VOLUME AND CELL STATUS 19022 73880019 UCBDCVOL DS XL6 CELL VOLUME SERIAL 19022 73890019 DS XL6 CELL INFORMATION 19022 73900019 DS 36F NINE MORE SUB-UCBS 19022 73910019 UCBWKB DS F WORK AREA POINTER 19022 73920019 EJECT DAVV 74000018 * DUMMY CONTROL SECTION FOR AN IOB DAVV 74200018 IOBDSECT DSECT DAVV 74400018 IOBFL1 DS XL1 I/O FLAGS 1 DAVV 74600018 IOBFL2 DS XL1 I/O FLAGS 2 DAVV 74800018 IOBSNS DS H SENSE INFORMATION DAVV 75000018 IOBECB DS F ECB POINTER DAVV 75200018 IOBFL3 DS XL1 I/O FLAGS 3 DAVV 75400018 IOBCSW DS XL7 LAST CSW DAVV 75600018 DS 2F START OF CHN PGM,DCB ADDR DAVV 75800018 DS XL1 OP CODE DAVV 76000018 IOBRESTR DS XL3 RESTART ADDR FOR IOS DAVV 76200018 DS H ACCESS METHOD FIELD DAVV 76400018 IOBECT DS H ERROR COUNT FOR RETRIES DAVV 76600018 IOBDCCNT EQU IOBECT BIN COUNTER FOR 2321 19022 76700019 IOBSEEK DS 2F SEEK ADDRESS DAVV 76800018 END 77000018 ./ ADD SSI=01010462,NAME=IGE0300I,SOURCE=0 TITLE 'IGE0300I LOAD 4 1/2 INCH MAG TAPE ERPS' 00010021 IGE0300I START X'00' LOAD 4 00020021 *********************************************************************** 00046021 * * 00048021 * STATUS: CHANGE LEVEL 2 * 00050021 * RELEASE 21.7 * 00052021 * * 00060021 * FUNCTION/OPERATION: HANDLE ERRORS OTHER THAN NORMAL DATA CHECK ON * 00070021 * READ OR WRITE TYPE COMMANDS, AND REPOSITIONING ERRORS * 00080021 * THIS LOAD ALSO UPDATES THE 2400 TYPE SDR COUNTERS FOR TEMP READS,* 00090021 * TEMP WRITES AND READ OPPOSITE RECOVERY (ROR) * 00100021 * IT UPDATES TEMP READS AND WRITES FOR THE VES COUNTERS AND IF * 00110021 * OVERFLOW, EXITS TO LOAD 5 TO PRINT THE EVA MESSAGE * 00120021 * * 00130021 * ENTRY POINTS: ER2404A * 00140021 * 1. IGE0000I LOAD 1 * 00150021 * 1-A. NO UNIT CHECK * 00160021 * 1-B. UNIT CHK AND NO SENSE DATA * 00170021 * 1-C. UNIT CHK AND SENSE=COMD REJ,INT REQ,BUS OUT,EQUIP CHK, * 00180021 * OR OVER RUN * 00190021 * 1-D. LOAD POINT ON READ * 00200021 * 1-E. CHANNEL DATA CHECK * 00210021 * 1-F. PERM WRITE TYPE ERR OR A RECOVERED ERR * 00220021 * 1-G. REDUCED ERROR RECOVERY * 00230021 * 2. IGE0200I LOAD 3 * 00240021 * 2-A. RECOVERED ERROR OR PERM ERROR * 00250021 * * 00260021 * INPUT: REGISTER 1 CONTAINS POINTER TO REQUEST ELEMENT TABLE. * 00270021 * * 00280021 * OUTPUT: N/A * 00290021 * * 00300021 * EXTERNAL ROUTINES: INTERPRETER ROUTINE, CHECKS SENSE AND STATUS BITS* 00310021 * * 00320021 * EXITS-NORMAL: * 00330021 * 1. SVC 15/3 EXIT TO IOS TO REPOSITION TAPE AND * 00340021 * REXECUTE THE CHANNEL PROGRAM * 00350021 * 2. XCTL TO IGE0100I (LOAD 2) * 00360021 * XCTL TO IGE0400I (LOAD 5) * 00370021 * 4. XCTL TO IGE0025C (WTO ROUTINE) * 00380021 * 5. XCTL TO IGE0025F (OBR ROUTINE) * 00390021 * * 00400021 * EXITS-ERROR: N/A * 00410021 * * 00420021 * TABLES/WORK AREA: N/A * 00430021 * * 00440021 * ATTRIBUTES: SERIALLY REUSABLE * 00450021 * * 00460021 * NOTES * 00470021 * THE FOLLOWING ARE LISTING FLAG DESCRIPTIONS, * 00480021 * 000A REL 16 UNKNOWN * 00530021 * 000D REL 17 REDUCED ERROR RECOVERY * 00580021 * 000E REL 17 READ OPPOSITE RECOVERY * 00590021 * 000F REL 17 UNKNOWN * 00600021 * 000G REL 18 UNKNOWN * 00650021 * 000K REL 19 ADDITION OF LOAD 4 * 00700021 * * 00710021 * THE FOLLOWING APAR(S) REFLECT CLEAN-UP TYPE MAINTENANCE * 00720021 * SA63824 PERM ERROR CAUSED BY BOC ON WTM WITH DE IN STATUS * 00730021 * SA63823 TEST CCW FOR CHAINING ON TIE CMD INSTEAD OF IOB * 00740021 * SA63823 INTERVENTION REQUIRED + DATA CHECK WITH DE IN STATUS * 00742021 * DOES NOT RETRY DATA CHECK * 00744021 * * 00750021 *********************************************************************** 00800021 EJECT 00850021 * 00900021 * * DSECT FOR THE IOB 00950021 * 01000021 IOBBLK DSECT 01050021 IOBFL1 DS CL1 IOB FLAG 1 01100021 IOBFL2 DS CL1 IOB FLAG 2 01150021 IOBSNS DS CL2 SENSE BYTES 0 AND 1 01200021 IOBCOD DS CL1 ECB COMPLETION CODE 01250021 IOBECB DS CL3 ECB POINTER 01300021 IOBFL3 DS 0D IOBFL3 01350021 IOBCSW DS CL8 CHANNEL STATUS WORD 01400021 IOBCCD DS CL1 SIO CONDITION CODE 01450021 IOBSRT DS CL3 START ADDRESS 01500021 IOBRES DS CL1 N/A 01550021 IOBDCB DS CL3 DCB POINTER 01600021 IOBMDB DS CL1 MODIFIER BYTE (OP CODE) 01650021 IOBRST DS CL3 RESTART ADDRESS 01700021 IOBBCI DS CL2 BLOCK COUNT INCREMENT 01750021 IOBECT DS CL2 ERROR COUNTS 01800021 IGE0300I CSECT 01850021 * 01900021 * * IOB FLAG 1 REFERENCES 01950021 * 02000021 IOBERR EQU X'20' IOB ERROR FLAG 02050021 IOBMD1 EQU X'10' MOD1 FLAG - POSITIONING 02100021 IOBEX EQU X'04' EXCEPT FLAG 02150021 IOBSRS EQU X'01' START/RESTART FLAG 02200021 IOBEXE EQU IOBEX+IOBERR IOB EX AND ERROR FLAG 02250021 IOBCMC EQU X'40' COMMAND CHAIN BIT 02300021 * 02350021 * * IOB FLAG 3 REFERENCES 02400021 * 02450021 IOBENT EQU X'40' IOB ENTRY BIT 02500021 IOBMSG EQU X'04' MESSAGE TYPE 02550021 IOBLOG EQU X'01' LOGOUT INDICATOR S21048 02600021 * 02650021 * * IOB ERROR COUNT 1 REFERENCES 02700021 * 02750021 IOBBUS EQU X'80' BUS OUT FLAG 02800021 IOBOVR EQU X'50' OVER RUN COUNT MAX. VALUE 02850021 * 02900021 * * UCB REFERENCES 02950021 * 03000021 UCBFL5 EQU 1 UCB FLAG 5 S21048 03050021 UCBFL1 EQU 6 UCB FLAG 1 03100021 UCBSTI EQU 9 STATISTICS TABLE INDEX 03150021 RORPTR EQU 48 ROR COMMAND POINTER 03200021 VOLID EQU X'1C' VOL ID OFFSET 03250021 UCBNRY EQU X'40' UCB NOT READY 03300021 * 000A 03350021 * * DEB REFERENCES 000A 03400021 * 000A 03450021 DEBOFL EQU 8 DEBOFLGS 000A 03500021 DEBRER EQU X'01' REDUCED ERROR RECOVERY BIT 000D 03550021 EJECT 03600021 * * REGISTER ASSIGNMENTS 03650021 * 03700021 ERREG3 EQU 0 WORK REG 03750021 TSTREG EQU 1 TWELVE STAR REG 03800021 RORREG EQU 2 ROR REG 03850021 CCWREG EQU 3 CCW ADDRESS REG 03900021 ERREG4 EQU 4 WORK REGISTER 03950021 ERREG5 EQU 5 EXIT REGISTER 04000021 DCBREG EQU 6 DCB ADDRESS REGISTER 04050021 UCBREG EQU 7 UCB ADDRESS REG. 04100021 VECREG EQU 8 VECTOR ADDRESS REG. 04150021 SAVREG EQU 9 SAVE REG. 04200021 IOBRG EQU 10 IOB ADDRESS REG 04250021 ERRLNK EQU 12 LINK REG 04300021 ERREG1 EQU 13 WORK REG 04350021 ERRETR EQU 14 RETURN REG FOR XCTL 04400021 BASREG EQU 15 BASE REG. 04450021 * 04500021 * * TWELVE STAR DEFINITION 04550021 * 04600021 TSTUCB EQU 2 UCB POINTER 04650021 TSTIOB EQU 5 IOB POINTER 04700021 TSTDEB EQU 9 DEB POINTER 000A 04750021 * 04800021 * * DCB REFERENCES 04850021 * 04900021 DCBBLK EQU 12 DCB BLOCK COUNT 04950021 * 05000021 * * COMMANDS 05050021 * 05100021 CMDRWU EQU X'0F' REWIND-UNLOAD 05150021 CMDWRT EQU X'01' WRITE 05200021 CMDTIE EQU X'1B' TIE 05250021 * 05300021 * * STATUS INDICATORS 05350021 * 05400021 CSWDVE EQU X'04' DEVICE END 05450021 CSWUCK EQU X'02' UNIT CHECK 05500021 CSWCDC EQU X'08' CHANNEL DATA CHECK 05550021 CSWICL EQU X'40' INCORRECT LENGTH 000A 05600021 EJECT 05650021 * * MISCELLANEOUS 05700021 * 05750021 BLKDEC EQU X'08' DECREMENT BLOCK S21048 05800021 BLKINC EQU X'10' INCREMENT BLOCK S21048 05850021 BLOCK EQU 6 BLOCK LENGTH S21048 05900021 BUSOUT EQU X'20' BUS OUT FLAG 05950021 CCWCMC EQU X'40' TIE CMD CHAIN @SA63823 05960021 CMDRDB EQU X'0C' RDB OP CODE 06000021 CMDRDF EQU X'02' RDF OP CODE 06050021 CMDREJ EQU X'80' COMMAND REJECT SENSE BIT 06100021 CNT4 EQU X'04' COUNT OF 4 06150021 C1 EQU 1 COUNT OF 1 06200021 C2 EQU 2 COUNT OF 2 06250021 C4 EQU 4 COUNT OF 4 06300021 C5 EQU 5 COUNT OF 5 06350021 C6 EQU 6 COUNT OF 6 06400021 C16 EQU 16 COUNT OF 16 06450021 C256 EQU 256 COUNT OF 256 06500021 DEBMOD EQU 32 DEB MODE SET OFFSET S21048 06550021 ERPCTL EQU X'08' ERP CONTROL FLAG 06600021 EXCPER EQU 15 ERROR EXCP 06650021 FULL EQU X'FF' COUNTER FULL 06700021 INTVREQ EQU X'40' INTERV REQ'D BIT @SA63823 06710021 IOBCC3 EQU X'30' NON-EXISTANT CU 2617 06750021 IOCLBT EQU X'00' CLEAR BYTE 06800021 LOC016 EQU 16 COMMUNICATION TABLE 06850021 MODE EQU 19 MODE SET OFFSET S21048 06900021 NEWDEV EQU X'08' EXTENDED SENSE S21048 06950021 NONEXT EQU X'60' NON EXISTENT DRIVE 07000021 OVRFLOW EQU X'02' OVER FLOW BIT S21048 07050021 OVRUN EQU X'04' OVER RUN BIT 07100021 PERRD EQU X'40' PERM RD S21048 07150021 PERWRT EQU X'20' PERM WRT S21048 07200021 PR EQU 16 PERM RD OFFSET S21048 07250021 PW EQU 17 PERM WR OFFSET S21048 07300021 RDFULL EQU X'F0' READ COUNT FULL S21048 07350021 RDTH EQU 10 RD THRESHOLD OFFSET S21048 07400021 RETURN EQU 3 SVC 3 RETURN 07450021 ROR EQU 7 ROR OFFSET 07500021 SAVE3 EQU X'07' MSG,LOG,OVERFLOW S21048 07550021 SERLOG EQU 256 LOAD NAME FOR OBR S21048 07600021 STATAB EQU 112 ADDRESS TO STATISTICS TABLE 07650021 TR EQU 12 TEMP RD OFFSET S21048 07700021 TRD EQU X'F0' TEMP RD S21048 07750021 TW EQU 13 TEMP WR OFFSET S21048 07800021 TWRT EQU X'0F' TEMP WRT S21048 07850021 VECTXL EQU 44 VECTOR TO XCTL RNT. 07900021 VECT68 EQU 68 INTERPRETER ROUTINE 07950021 VES EQU X'C0' VES OPTION S21048 08000021 VESFLG EQU X'10' VES FLAG S21048 08050021 VESOPT EQU X'80' ESV OPTION IN USE S21048 08100021 WTORTN EQU 253 LOAD NAME TO WTO RTN. 08150021 WRFULL EQU X'0F' WRITE COUNT FULL S21048 08200021 WRTH EQU 11 WR THRESHOLD OFFSET S21048 08250021 WRTYPE EQU X'04' WRT TYPE OPERATION 08300021 ZERO EQU X'00' ZERO 08350021 LOAD1 EQU 9 LOAD NAME FOR LOAD 1 @SA63823 08360021 LOAD2 EQU 1009 LOAD NAME FOR LOAD 2 08400021 LOAD5 EQU 4009 LOAD NAME FOR LOAD 5 S21048 08450021 * * COMPLETION CODE SETTINGS 08500021 ERPERR EQU X'4B' ERROR DURING ERP A29974 08510021 IOBFIN EQU X'7F' COMPLETE NO ERROR 08550021 EJECT 08600021 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 08650021 * * 08700021 * THIS IS THE FOURTH LOAD OF THE 08750021 * 2400 SERIES MAGNETIC TAPE ERROR ROUTINE 08800021 * * 08850021 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 08900021 SPACE 2 08950021 USING *,BASREG 09000021 USING IOBBLK,IOBRG 09050021 SPACE 2 09100021 ER2404A EQU * 09102021 MVI TEMPRW,ZERO ZERO RD/WRT FLAG A57651 09110021 MVI FLAG,ZERO ZERO FLAG A57651 09120021 L IOBRG,TSTIOB-C1(TSTREG) GET IOB ADDRESS 09150021 L VECREG,LOC016 GET ADDR. TO VECTOR TABLE 09200021 L ERRETR,VECTXL(VECREG) GET ADDR FOR XCTL RTN 09250021 L DCBREG,IOBDCB-C1 GET ADDR. DCB 09300021 LH UCBREG,TSTUCB(TSTREG) GET UCB ADDRESS 09350021 LA ERREG5,ER2025 GET EXIT ADDR 09400021 L CCWREG,IOBCSW GET CCW ADR FROM STATUS 09450021 LA CCWREG,0(CCWREG) ZERO HI ORDER BYTE 09500021 SH CCWREG,ERRCN1 SUBTRACT 8 09550021 L RORREG,RORPTR(UCBREG) GET ROR CCW ADR 09600021 * 09650021 TM RORPTR(UCBREG),VESFLG IS VES FLAG ON S21048 09700021 BO ER2404C BR YES S21048 09750021 * 09800021 TM IOBFL3,IOBENT GO TO PART 2 09850021 BO ER2404B BR YES TO PART 2 09900021 * 09950021 EJECT 10000021 * 000E 10050021 * 10100021 * NOT REPOSITIONING 10150021 * TEST OF SENSE INFORMATION 10200021 * REGS 0,9,11,12,13,15 ARE AFFECTED BY INTERPRETER ROUTINE 10250021 * 10300021 ERR110 LR SAVREG,BASREG SAVE BASE REG. 10350021 L BASREG,VECT68(VECREG) GET ADDR. TO INTERPR. RNT. 10400021 ERR120 BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 10450021 * 10500021 DC X'03' EQUIPTMENT CHECK 000A 10550021 DC AL1(ERR150-ERR120-2) * 000A 10600021 DC X'02' BUS OUT CHECK 000A 10650021 DC AL1(ER2404B-ERR120-4) * 000F 10700021 DC X'01' INTERVENTION REQUIRED 10750021 DC AL1(ERR190-ERR120-6) * 10800021 DC X'00' COMMAND REJECT 10850021 DC AL1(ERR170-ERR120-8) * 10900021 DC X'05' OVERRUN 10950021 DC AL1(ER2404B-ERR120-10) * 000F 11000021 DC X'0C' TAPE LOAD POINT 11050021 DC AL1(ERR220-ERR120-12) * 11100021 DC X'07' DATA CONVERT CHECK 11150021 DC AL1(ERR160-ERR120-14) * 000E 11200021 DC X'0F' NOT CAPABLE 11250021 DC AL1(ERR170-ERR120-16) NOT CAPABLE 11300021 DC X'2F' END OF TEST 11350021 DC AL1(ERR150-ERR120-18) * 11400021 * 11450021 * TEST REMAINING SENSE WHEN INTERVENTION REQUIRED IS IGNORED 11500021 * REGS 0,9,11,12,13,15 ARE AFFECTED BY INTERPRETER ROUTINE 11550021 * 11600021 ERR130 LR SAVREG,BASREG SAVE BASE REGISTER 11650021 L BASREG,VECT68(VECREG) GET ADDR. TO INT. ROUTINE 11700021 ERR140 BALR ERRLNK,BASREG LINK TO INTERPRETER ROUTINE 11750021 * 11800021 DC X'05' OVERRUN 000K 11850021 DC AL1(ER2404B-ERR140-2) * 000K 11900021 DC X'07' DATA CONVERTER CHECK 000K 11950021 DC AL1(ERR160-ERR140-4) * 000K 12000021 DC X'0F' NOT CAPABLE 000K 12050021 DC AL1(ERR170-ERR140-6) 12100021 DC X'04' DATA CHECK @SA63823 12110021 DC AL1(ERR155-ERR140-8) * @SA63823 12120021 DC X'2F' END OF TEST 000K 12150021 DC AL1(ERR150-ERR140-10) * @SA63823 12200021 EJECT 12250021 * 12300021 * ENTER HERE FOR LOGOUT 12350021 * 12400021 ERR150 EQU * 12450021 B ERR840 BR TO SET LOGOUT 12500021 * 12510021 * RETURN TO LOAD 1 TO RETRY DATA CHECK @SA63823 12520021 * 12530021 ERR155 EQU * @SA63823 12540021 NI IOBSNS,X'FF'-INTVREQ IGNORE INT REQ BIT @SA63823 12542021 LA ERREG1,LOAD1 GET ADDR OF LAOD 1 @SA63823 12544021 BR ERRETR BR TO LOAD 1 TO RETRY @SA63823 12546021 * 000E 12550021 * DATA CONVERTER CHECK 000E 12600021 * 000E 12650021 ERR160 EQU * 12700021 B ERR850 BR TO STEP BLOCK COUNT 12750021 * 12800021 * COMMAND REJECT AND NOT CAPABLE 12850021 * 12900021 ERR170 EQU * 12950021 B ERR860 BR TO SET MESSAGE TYPE 13000021 * 13050021 ERR180 EQU * 13100021 B ERR870 BR TO WTO ROUTINE 13150021 * 13250021 * INTERVENTION REQUIRED 13300021 * NON EXISTENT - I/O ERR - LOGOUT 13350021 * NO DEVICE END - MESSAGE - REISSUE 13400021 * INTERCEPTED 7E - NO MESSAGE - UCB NOT READY,7F,RETURN 13450021 * REWIND UNLOAD - NO MESSAGE - UCB NOT READY,7F,U.C. OFF 13500021 * - RESTART FLAG OFF,IOB NO ERR 13550021 * IGNORE INT REQ - NO MESSAGE - FINISH SENSE CHECK 13600021 * 13650021 ERR190 EQU * 13700021 OI IOBECT,ERPCTL SET ERP CONTROL FLAG 13750021 TM IOBCCD,IOBCC3 NON-EXISTANT CONTROL UNIT 2617 13800021 BO ERR180 YES, BRANCH TO WTO 2617 13850021 * 13900021 TM IOBSNS+C1,NONEXT STATUS A AND B BOTH OFF 000G 13950021 BZ ERR150 BRANCH YES - ERROR - NO DRIVE 14000021 * 14050021 TM IOBCSW+C4,CSWDVE DEVICE END 14100021 BZ ERR180 NO - WTO AND REISSUE 14150021 * 14200021 LTR CCWREG,CCWREG NEGATIVE ADDRESS A29974 14210021 BM ER2050 YES, GO SET X'4B' A29974 14220021 CLI 0(CCWREG),CMDRWU REWIND UNLOAD 14300021 BE ERR200 BRANCH YES 000G 14350021 * 14400021 TM IOBSNS,CMDREJ COMMAND REJECT 14450021 BO ERR170 BR YES 14500021 * 14550021 TM IOBCSW+C5,CSWCDC CHANNEL DATA CHECK 000G 14600021 BO ER2404B BR YES TO PART 2 14650021 * 14700021 B ERR130 FINISH SENSE TEST 000G 14750021 EJECT 14800021 * 14850021 ERR200 NI IOBFL1,X'FF'-IOBEXE SET IOB TO NO ERROR 14900021 NI IOBCSW+C4,X'FF'-CSWUCK SET UNIT CHECK OFF 14950021 ERR210 MVI IOBCOD,IOBFIN SET NORMAL COMPLETION CODE 15000021 OI UCBFL1(UCBREG),UCBNRY SET UCB NOT READY 15050021 BR ERREG5 RETURN 15100021 * 15150021 * LOAD POINT 15200021 * 15250021 ERR220 NI IOBFL1,X'FF'-IOBERR MARK IOB TO PERM. ERROR 15300021 BR ERREG5 TO ERROR EXCP 15350021 EJECT 15400021 * 15450021 * TEST OF STATUS INFORMATION 15500021 * REGS 0,9,11,12,13,15 ARE USED BY INTERPRETER RTN 15550021 * 15600021 ER2404B EQU * 15650021 NI IOBFL3,X'FF'-IOBENT TURN OFF ENTRY FLAG 15700021 LR SAVREG,BASREG SAVE REG 15 15750021 L BASREG,VECT68(VECREG) GET ADR OF INTERPRETER RTN 15800021 ERR710 BALR ERRLNK,BASREG LINK TO INTERPRETER 15850021 * 15900021 DC X'16' UNIT CHECK 000F 15950021 DC AL1(ERR780-ERR710-2) * 000F 16000021 DC X'1C' CHANNEL DATA CHECK 000F 16050021 DC AL1(ERR770-ERR710-4) * 000F 16100021 DC X'1F' CHAINING CHECK 000F 16150021 DC AL1(ERR770-ERR710-6) * 000F 16200021 DC X'1A' PROGRAM CHECK 000F 16250021 DC AL1(ERR760-ERR710-8) * 000F 16300021 DC X'1B' PROTECTION CHECK 000F 16350021 DC AL1(ERR760-ERR710-10) * 000F 16400021 DC X'17' UNIT EXCEPTION 000F 16450021 DC AL1(ERR720-ERR710-12) * 000F 16500021 DC X'19' INCORRECT LENGTH 000F 16550021 DC AL1(ERR720-ERR710-14) * 000F 16600021 DC X'2F' END OF TEST-RECOVERED 000F 16650021 DC AL1(ERR730-ERR710-16) * 000F 16700021 * 16750021 * UNIT EXCEPTION OR INCORRECT LENGTH 000F 16800021 * IF IOBECT IS ZERO THIS IS A FIRST ENTRY ERROR 16850021 * 16900021 ERR720 NC IOBECT,IOBECT IS ERROR COUNTS ZERO 16950021 BZ ERR760 BR YES 17000021 * 17050021 * END OF TEST RECOVERED 17100021 * 17150021 ERR730 EQU * 17200021 XC IOBECT,IOBECT ZERO ERR COUNTS S21048 17250021 NI IOBFL1,X'FF'-IOBSRS RESET RESTART BIT S21048 17300021 NI IOBFL1,X'FF'-IOBEXE RESET ERP IN CTL S21048 17400021 * 17410021 LTR CCWREG,CCWREG NEGATIVE ADDRESS A29974 17420021 BM ER2050 YES, GO SET X'4B' A29974 17430021 * 17440021 CLI 0(CCWREG),X'01' WRT COMND S21048 17450021 BC 8,ERR740 BR YES S21048 17500021 CLI 0(CCWREG),X'1F' WTM S21048 17550021 BC 8,ERR740 BR YES S21048 17600021 CLI 0(CCWREG),X'17' ERG S21048 17650021 BC 8,ERR740 BR YES S21048 17700021 TM IOBSNS+C1,WRTYPE WAS IT A WRT TYPE COMND S21048 17750021 BO ERR740 BR YES S21048 17800021 * 17850021 CLI 0(CCWREG),CMDRDF IS IT RDF OR CHAINED READ S21048 17900021 BC 12,ERR735 BR YES S21048 17950021 CLI 0(CCWREG),CMDRDB IS IT A RDB S21048 18000021 BNE ER1000 BR NO S21048 18050021 EJECT 18100021 ERR735 EQU * 18150021 OI TEMPRW,TRD SET RD FLAG ON S21048 18200021 B ER1000 BR S21048 18250021 ERR740 EQU * 18300021 OI TEMPRW,TWRT SET WRT FLAG ON S21048 18350021 B ER1000 BR S21048 18400021 * 18450021 * PGM CHECK OR PROT CHECK 18500021 * 18550021 ERR760 NI IOBFL1,X'FF'-IOBERR RESET ERP CTL FLAGS 4817 18600021 MVI IOBFL3,IOCLBT CLEAR ERR FLAGS 4817 18650021 BR ERREG5 ERROR EXCP 4817 18700021 * 18750021 * CHAINING CHECK OR CHANNEL DATA CHECK 4817 18800021 * 18850021 ERR770 MVI IOBSNS,IOCLBT ZERO SENSE 000F 18900021 * 18950021 * UNIT CHECK (BUS OUT OR OVERRUN) 000F 19000021 * 19050021 ERR780 TM IOBECT,IOBOVR IS OVERRUN COUNT 5 19100021 BO ERR840 BR YES 19150021 IC ERREG1,IOBECT GET OVERRUN COUNT 19200021 LA ERREG1,C16(ERREG1) ADD ONE TO COUNT 19250021 STC ERREG1,IOBECT STORE COUNT BACK 19300021 * 19350021 LTR CCWREG,CCWREG NEGATIVE ADDRESS A29974 19360021 BM ER2050 YES, GO SET X'4B' A29974 19370021 * 19380021 TM IOBSNS,BUSOUT BUS OUT 000F 19400021 BZ ERR800 BR NO 000F 19450021 * 19500021 * BUS OUT 000F 19550021 * 19600021 TM IOBCSW+C4,CSWDVE DEVICE END 000F 19650021 BZ ERR790 BR NO 000F 19700021 * 19750021 CLI 0(CCWREG),CMDWRT WRITE COMMAND 000F 19800021 BE ERR810 BR YES 000F 19850021 ERR790 CLI 0(CCWREG),CMDTIE TRACK IN ERROR @SA63824 19900021 BNE ERR830 NO - GO RETRY @SA63824 19950021 * 20000021 B ERR820 YES - GO TEST CHAINING 000F 20050021 * 20100021 * OVER RUN 20150021 * 20200021 ERR800 CLI 0(CCWREG),CMDTIE TRACK IN ERROR 000F 20250021 BE ERR820 BR YES 000F 20300021 * 20350021 ERR810 OI IOBFL1,IOBMD1 SET REPOSITION 000F 20400021 B ERR830 GO REPOSITION 20450021 * 20500021 ERR820 TM C4(CCWREG),CCWCMC COMMAND CHAINING @SA63823 20550021 BO ERR840 BR YES 000F 20600021 * 20650021 ERR830 SVC EXCPER ERROR EXCP 20700021 SVC RETURN RETURN 20750021 EJECT 20800021 * GENERAL EXIT AREA 20850021 * 20900021 ERR840 EQU * * 20950021 OI IOBFL3,IOBLOG SET LOGOUT 21000021 ERR850 EQU * * 21050021 TM IOBCSW+C4,CSWDVE DEVICE END 21100021 BZ ERR860 BR NO 21150021 * 21200021 L ERREG1,DCBBLK(DCBREG) GET CURRENT COUNT 000F 21250021 AH ERREG1,IOBBCI ADD INCREMENT 000F 21300021 ST ERREG1,DCBBLK(DCBREG) STORE BACK 000F 21350021 ERR860 EQU * * 21400021 OI IOBFL3,IOBMSG SET MESSAGE TYPE 21450021 ERR870 EQU * * 21500021 LA ERREG1,WTORTN LOAD NAME FOR WTO 21550021 BR ERRETR GO TO XCTL RTN 21600021 EJECT 21650021 * THIS SECTION UPDATES THE 2400 SDR COUNTERS FOR TEMP READS, TEMP 21700021 * WRITES AND ROR'S 21750021 ER1000 EQU * 21800021 TM UCBFL5(UCBREG),NEWDEV EXTENDED SENSE S21048 21850021 BO ER1110 BR YES S21048 21900021 * 21950021 * UPDATE TEMP READ/WRITE FOR 2400 UNITS IN SDR TABLE 22000021 * 22050021 L ERREG4,STATAB(VECREG) GET ADR OF STAT TABLE S21048 22100021 SR SAVREG,SAVREG ZERO REG S21048 22150021 IC SAVREG,UCBSTI(UCBREG) GET INDEX FROM UCB S21048 22200021 LR ERREG1,ERREG4 SAVE STAT TABLE ADR S21048 22250021 ER1025 EQU * 22300021 CH UCBREG,0(ERREG4) STAT AREA SECTION S21048 22350021 BL ER1030 BR YES S21048 22400021 LA ERREG4,C2(ERREG4) STEP TO NEXT SECTION S21048 22450021 LA SAVREG,C256(SAVREG) UPDATE INDEX S21048 22500021 B ER1025 LOOP TO CHK NEW SECTION S21048 22550021 ER1030 EQU * 22600021 MH SAVREG,ERRC10 TIMES 10 S21048 22650021 AR ERREG1,SAVREG ENTRY FOR THIS UNIT S21048 22700021 * 22750021 IC ERREG4,0(ERREG1) GET TEMP RD/WRT COUNT S21048 22800021 TM TEMPRW,TWRT TEMP WRT S21048 22850021 BO ER1050 BR YES S21048 22900021 TM TEMPRW,TRD TEMP RD S21048 22950021 BZ ER1060 BR NO S21048 23000021 LA ERREG4,C16(ERREG4) STEP RD COUNT S21048 23050021 STC ERREG4,0(ERREG1) STORE BACK S21048 23100021 TM 0(ERREG1),RDFULL IS COUNT FULL S21048 23150021 BM ER1060 BR NO S21048 23200021 ER1040 EQU * 23250021 OI IOBFL3,OVRFLOW SET OVERFLOW BIT S21048 23300021 B ER1060 BR S21048 23350021 ER1050 EQU * 23400021 LA ERREG4,C1(ERREG4) STEP WR COUNT S21048 23450021 STC ERREG4,0(ERREG1) STORE BACK S21048 23500021 TM 0(ERREG1),WRFULL IS COUNT FULL S21048 23550021 BO ER1040 BR YES S21048 23600021 ER1060 EQU * 23650021 TM C5(RORREG),FULL DO WE CHECK ROR S21048 23700021 BNZ ER1070 BR NO S21048 23750021 IC ERREG4,ROR(ERREG1) GET ROR COUNT S21048 23800021 LA ERREG4,C16(ERREG4) ADD ONE S21048 23850021 STC ERREG4,ROR(ERREG1) STORE BACK S21048 23900021 TM ROR(ERREG1),RDFULL IS COUNT FULL S21048 23950021 BNO ER1070 BR NO S21048 24000021 OI IOBFL3,OVRFLOW SET OVER FLOW ON S21048 24050021 EJECT 24100021 * THIS SECTION UPDATES THE VES COUNTERS FOR TEMP RDS AND TEMP WRTS 24150021 ER1070 EQU * 24200021 TM UCBFL5(UCBREG),NEWDEV EXTENDED SENSE S21048 24300021 BO ER1110 BR YES S21048 24350021 TM RORPTR(UCBREG),VES ESV/EVA OPTION S21048 24400021 BZ ER2000 BR NO S21048 24450021 ER1110 EQU * 24500021 TM TEMPRW,TWRT TEMP WRT S21048 24550021 BO ER1130 BR YES S21048 24600021 TM TEMPRW,TRD TEMP RD S21048 24650021 BZ ER2000 BR NO S21048 24700021 TM TR(RORREG),FULL IS COUNT FULL S21048 24750021 BO ER1150 BR YES S21048 24800021 IC ERREG4,TR(RORREG) GET RD COUNT S21048 24850021 LA ERREG4,C1(ERREG4) ADD ONE TO COUNT S21048 24900021 STC ERREG4,TR(RORREG) STORE BACK S21048 24950021 B ER1150 BR S21048 25000021 ER1130 EQU * 25050021 IC ERREG4,TW(RORREG) GET WR COUNT S21048 25100021 TM TW(RORREG),FULL IS COUNT FULL S21048 25150021 BO ER1140 BR YES S21048 25200021 LA ERREG4,C1(ERREG4) ADD ONE TO COUNT S21048 25250021 STC ERREG4,TW(RORREG) STORE BACK S21048 25300021 ER1140 EQU * 25350021 CLC TW(C1,RORREG),WRTH(RORREG) WR THRESHOLD REACHED S21048 25400021 BE ER1160 BR YES S21048 25450021 B ER2000 BR NO S21048 25500021 ER1150 EQU * 25550021 CLC TR(C1,RORREG),RDTH(RORREG) RD THRESHOLD REACHED S21048 25600021 BNE ER2000 BR NO S21048 25650021 ER1160 EQU * 25700021 MVI FLAG,FULL SET FLAG ON S21048 25750021 EJECT 25800021 * THIS SECTION EXITS THIS LOAD OF THE ERP 25850021 ER2000 EQU * 25900021 NI IOBFL3,SAVE3 SAVE MSG,LOG,OVRFLOW S21048 25950021 TM UCBFL5(UCBREG),NEWDEV EXTENDED SENSE S21048 26000021 BZ ER2010 BR NO S21048 26050021 L ERREG1,TSTDEB-C1(TSTREG) GET DEB ADR S21048 26100021 MVC MODE(C1,RORREG),DEBMOD(ERREG1) MOVE IN MODE SET S21048 26150021 MVC BLOCK(C2,RORREG),BLOCK(CCWREG) MOVE IN BLOCK LTH S21048 26200021 MVC 0(C6,RORREG),VOLID(UCBREG) MOVE IN VOL ID S21048 26250021 ER2010 EQU * 26300021 TM FLAG,FULL DO WE PRT THRESHOLD S21048 26350021 BZ ER2020 BR NO S21048 26400021 TM RORPTR(UCBREG),VES VES OPTION IN USE S21048 26450021 BZ ER2020 BR NO S21048 26500021 OI IOBFL3,IOBENT SET UP S21048 26550021 LA ERREG1,LOAD5 FOR LOAD 5 S21048 26600021 BR ERRETR XCTL TO LOAD 5 S21048 26650021 ER2020 EQU * 26700021 NI IOBFL1,X'FF'-IOBERR RESET ERP IN CTL S21048 26750021 TM IOBFL3,IOBMSG MSG FLAG ON S21048 26800021 BO ER2030 BR YES S21048 26850021 ER2025 EQU * 26900021 TM IOBFL3,IOBLOG+OVRFLOW LOG OR OVERFLOW ON S21048 26950021 BNZ ER2040 BR YES IF EITHER OR BOTH S21048 27000021 * 27050021 SVC EXCPER ERROR EXCP S21048 27100021 SVC RETURN RETURN S21048 27150021 ER2030 EQU * 27200021 LA ERREG1,WTORTN GO TO S21048 27250021 BR ERRETR WTO RTN S21048 27300021 ER2040 EQU * 27350021 LA ERREG1,SERLOG GO TO S21048 27400021 BR ERRETR OBR RTN S21048 27450021 * 27500021 ER2050 EQU * A29974 27510021 MVI IOBCOD,ERPERR X'4B' IN IOB ECB CODE A29974 27520021 LA ERREG1,LOAD2 FOR LOAD 2 A29974 27530021 BR ERRETR XCTL TO LOAD 2 A29974 27540021 * 27542021 EJECT 27550021 * 27600021 * THIS SECTION INCREMENTS OR DECREMENTS THE DCB BLOCK COUNT AND 27650021 * UPDATES THE VES COUNTERS FOR PERM RDS AND PERM WRTS 27700021 ER2404C EQU * 27750021 NI RORPTR(UCBREG),X'FF'-VESFLG TURN OFF INDICATOR S21048 27800021 L ERREG1,DCBBLK(DCBREG) GET DCB BLOCK COUNT S21048 27850021 TM IOBFL3,BLKINC INCREMENT BLOCK COUNT S21048 27900021 BZ ER3000 BR NO S21048 27950021 AH ERREG1,IOBBCI ADD TO DCB BLOCK COUNT S21048 28000021 ST ERREG1,DCBBLK(DCBREG) STORE BLOCK COUNT BACK S21048 28050021 ER3000 EQU * 28100021 TM UCBFL5(UCBREG),NEWDEV EXTENDED SENSE S21048 28150021 BO ER3030 BR YES S21048 28200021 TM RORPTR(UCBREG),VESOPT ESV OPTION S21048 28250021 BZ ER2000 BR NO S21048 28300021 ER3030 EQU * 28350021 TM IOBFL3,PERRD PERM RD S21048 28400021 BO ER3050 BR YES S21048 28450021 TM IOBFL3,PERWRT PERM WRT S21048 28500021 BZ ER2000 BR NO S21048 28550021 ER3040 EQU * 28600021 TM PW(RORREG),FULL IS PERM WRT COUNT FULL S21048 28650021 BO ER2000 BR YES S21048 28700021 IC ERREG4,PW(RORREG) GET PERM WRT COUNT S21048 28750021 LA ERREG4,C1(ERREG4) ADD ONE TO COUNT S21048 28800021 STC ERREG4,PW(RORREG) STORE BACK S21048 28850021 B ER2000 BR S21048 28900021 ER3050 EQU * 28950021 TM PR(RORREG),FULL IS RD COUNT FULL S21048 29000021 BO ER2000 BR YES S21048 29050021 IC ERREG4,PR(RORREG) GET PERM RD COUNT S21048 29100021 LA ERREG4,C1(ERREG4) ADD ONE TO COUNT S21048 29150021 STC ERREG4,PR(RORREG) STORE BACK S21048 29200021 B ER2000 BR S21048 29250021 * 29300021 * CONSTANTS 29350021 * 29400021 DS 0H 29450021 ERRCN1 DC AL2(8) CONSTANT OF 8 29500021 ERRC10 DC AL2(10) CONSTANT OF 10 29550021 FLAG DC X'00' THRESHOLD PRINT INDICATOR S21048 29600021 TEMPRW DC X'00' TEMPORARY RD/WR FLAG S21048 29650021 ORG ER2404A+1020 MAKE LOAD 1024 BYTES 29700021 DC X'00000000' LONG FOR MAINTENANCE 29750021 END 29800021 ./ ADD SSI=02011126,NAME=IGE0325C,SOURCE=0 TITLE 'IGE0325C - WTO - LOAD 4' S20201 00100021 IECWTORD START 0 BBBBBB 00200019 *1261430100-431500,482000,486000-514000,914000,956000 S20201 00300020 *STATUS CHANGE LEVEL 002 00400020 * WRITE TO OPERATOR ROUTINE - LOAD 4 BBBBBB 00600019 SPACE 2 BBBBBB 00800019 * FUNCTION HANDLE CONDITION CODE 3 ERRORS BBBBBB 01000019 * ENTRY IECXWTO FROM IGE0025C AND FROM IGE0025E BBBBBB 01200019 * INPUT REQUEST ELEMENT IN REGISTER 1, ENTRY BBBBBB 01400019 * ADDRESS IN REGISTER 15, AND PATH INDICATOR BBBBBB 01600019 * IN THE IOBCC FIELD. BBBBBB 01800019 * OUTPUT MESSAGE ON CONSOLE VIA WTO MACRO. BBBBBB 02000019 * EXT REF NONE. BBBBBB 02200019 * EXITS RETURN TO SUPERVISOR VIA SVC 3. BBBBBB 02400019 * NOTES NONE. BBBBBB 02600019 * TABLES TEST CHANNEL TABLE IN IOS, MP CHANNEL BBBBBB 02800019 * TABLES, AND APR CEB TABLE. BBBBBB 03000019 * OPERATION THIS MODULE DETERMINES IF THE LAST PATH TO BBBBBB 03200019 * A DEVICE HAS JUST RECEIVED A NOT OPERATIONAL BBBBBB 03400019 * CONDITION CODE. IF THERE ARE ANY PATHS BBBBBB 03600019 * REMAINING, A WTO IS ISSUED INFORMING THE BBBBBB 03800019 * OPERATOR ABOUT THE INOPERATIVE PATH. IF BBBBBB 04000019 * THERE ARE NO PATHS REMAINING, AN ACTION BBBBBB 04200019 * MESSAGE IS WRITTEN TO THE OPERATOR, BBBBBB 04400019 * REQUIRING HIM TO EITHER VARY A PATH ONLINE, BBBBBB 04600019 * OR TO RESET A SWITCH. IF APR IS PROCESSING BBBBBB 04800019 * PATHS TO A DEVICE WHEN THE LAST PATH GOT THE BBBBBB 05000019 * CONDITION CODE 3, APR WILL BE CANCELLED, BBBBBB 05200019 * THE PATHS IT WAS PROCESSING WILL BE MADE BBBBBB 05400019 * AVAILABLE, AND THE INOPERATIVE PATH MESSAGE BBBBBB 05600019 * WILL BE ISSUED. IF IN A MULTI-PROCESSING BBBBBB 05800019 * ENVIRONMENT, THE CHANNEL TABLES IN MP CORE BBBBBB 06000019 * WILL BE USED TO DETERMINE THE TOTAL NUMBER BBBBBB 06200019 * OF PATHS OFFLINE. BBBBBB 06400019 * IF AN EXCP USER WHO IS NOT USING IBM ERROR BBBBBB 06600019 * ROUTINES GETS A CC 3, THIS MODULE IS ENTERED BBBBBB 06800019 * AS A LOGICAL EXTENSION OF IOS VIA IGE0025E. BBBBBB 07000019 * IF THIS IS THE CASE, ALL PROCESSING IS THE BBBBBB 07200019 * SAME EXCEPT FOR THE LAST PATH SITUATION. BBBBBB 07400019 * IN THIS CASE, NO MESSAGE WILL BE ISSUED, BBBBBB 07600019 * AND IOS WILL POST THE USER WITH A PERMANENT BBBBBB 07800019 * ERROR INDICATION. BBBBBB 08000019 * BBBBBB 08200019 * MESSAGE FORMATS BBBBBB 08400019 * BBBBBB 08600019 * IEA001I UNIT XXX, PATH YY INOPERATIVE FOR CPU Z BBBBBB 08800019 * IEA000A XXX,INT REQ,,CC=3/NO PATHS AVAILABLE,,,SER,JOBN BBBBBB 09000019 EJECT BBBBBB 09200019 * IOB DEFINITION BBBBBB 09400019 IOBFL1 EQU 0 FLAGS 1 BBBBBB 09600019 IOBFL2 EQU 1 IOB FLAGS 2 BBBBBB 09800019 IOBSNS EQU 2 SENSE DATA BBBBBB 10000019 IOBCOD EQU 4 ECB CODE BBBBBB 10200019 IOBFL3 EQU 8 FLAG 3 BBBBBB 10400019 IOBCSW EQU 8 CSW STORAGE BBBBBB 10600019 IOBCC EQU 16 SIO COND CODE + PATH IND BBBBBB 10800019 IOBDCB EQU 21 DCB POINTER BBBBBB 11000019 IOBMDB EQU 24 MODIFIER BYTE BBBBBB 11200019 IOBRST EQU 25 RESTART POINTER BBBBBB 11400019 IOBECT EQU 30 ERROR COUNTER BBBBBB 11600019 IOBSK EQU 33 IOB SEEK ADDRESS BBBBBB 11800019 * IOB FLAGS BBBBBB 12000019 IOBERR EQU X'20' ERROR CORECTION INDICATORBBBBBB 12200019 IOBEX EQU X'04' EXCEPT FLAG BBBBBB 12400019 IOBMSG EQU X'04' MESSAGE CODE BBBBBB 12600019 IOBSRS EQU X'01' START/RESTART FLAG BBBBBB 12800019 IOBEXE EQU IOBEX+IOBERR IOB EX AND ERROR FLAG BBBBBB 13000019 IOBRHA EQU X'10' READ HA FLAG BBBBBB 13200019 SPACE 2 BBBBBB 13400019 * DCB DEFINITION BBBBBB 13600019 DCBBLK EQU 12 POINTER TO BLOCK COUNT BBBBBB 13800019 DCBFL EQU 44 FLAGS BBBBBB 14000019 DCBDEB EQU 44 BBBBBB 14200019 * DCB FLAGS BBBBBB 14400019 DCBPER EQU X'C0' PERMANENT ERROR FLAGS BBBBBB 14600019 DCBEX EQU X'40' EXCEPTION CONDITION BBBBBB 14800019 DCBIEK EQU X'0C' IBM ERP FLAG BBBBBB 15000019 SPACE 2 BBBBBB 15200019 * DEB DEFINITION BBBBBB 15400019 DEBTCB EQU 0 TCB POINTER BBBBBB 15600019 DEBDCB EQU 25 DEB DCB POINTER BBBBBB 15800019 DEBUCB EQU 33 BBBBBB 16000019 SPACE 2 BBBBBB 16200019 * UCB DEFINITION BBBBBB 16400019 UCBMPBYT EQU 0 MULT PROC IND AT UCB - 4 BBBBBB 16600019 UCBALLC EQU 1 ALLOCATION CHAN. MASK BBBBBB 16800019 UCBSTATA EQU 3 STATUS 'A' BYTE BBBBBB 17000019 UCBCUA EQU 4 CHAN. AND UNIT ADDRESS BBBBBB 17200019 UCBFL1 EQU 6 UCB FLAGS BBBBBB 17400019 UCBLCI EQU 10 OFFSET TO LCH INDEX BBBBBB 17600019 UCBCHM EQU 12 CHANNEL MASK (BITS 4-7) BBBBBB 17800019 UCBUTN EQU 13 UNIT NAME BBBBBB 18000019 UCBTYP EQU 16 UCB TYPE FIELD BBBBBB 18200019 UCBLTS EQU 20 ADR OF LAST RQE STARTED BBBBBB 18400019 UCBSNS EQU 22 SENSE BYTES BBBBBB 18600019 UCBVSER EQU 28 VOLUME SERIAL BBBBBB 18800019 DCELBBNR EQU 56 DISPL TO BIN 0 IN UCB BBBBBB 19000019 UCBEXT EQU 60 PTR TO UCB EXTENSION S20201 19040020 UCBBASE EQU 92 OFFSET FOR PTR TO BASE S20201 19120020 UCBDCVOL EQU 4 DISPL IN SUBUCB OF VOLSERBBBBBB 19200019 * UCB FLAGS BBBBBB 19400019 UCBTP EQU X'40' TP DEVICE TYPE BBBBBB 19600019 UCBUR EQU X'08' UNIT RECORD DEVICE TYPE BBBBBB 19800019 UCBTAPE EQU X'80' TAPE DEVICE TYPE BBBBBB 20000019 UCBDA EQU X'20' DIRECT ACCESS DEVICE TYPEBBBBBB 20200019 D2321 EQU X'05' 2321 CLASS S20201 20220020 ZEUSA EQU X'06' ATHENS ZEUS DRUM TYPE S20201 20260020 ZEUSC EQU X'07' CORINTH ZEUS DRUM TYPE S20201 20300020 UCBNRY EQU X'40' UCB NOT READY BBBBBB 20400019 UCBSYSRS EQU X'02' SYS RES INDICATOR BBBBBB 20600019 MULTPATH EQU X'01' MULTI PATH INDIC IN ALLC BBBBBB 20800019 UCBCPUA EQU X'08' CPU 'A' IND FOR MULT PROCBBBBBB 21000019 SPACE 2 BBBBBB 21200019 * TWELVE STAR DEFINITION BBBBBB 21400019 TSTLNK EQU 0 FORWARD 12* LINK BBBBBB 21600019 TSTUCB EQU 2 UCB POINTER BBBBBB 21800019 TSTTCBID EQU 4 TCB ID FOR MFT BBBBBB 22000019 TSTIOB EQU 5 IOB POINTER BBBBBB 22200019 TSTPR EQU 8 PRIORITY OF ENTRY BBBBBB 22400019 TSTDEB EQU 9 DEB POINTER BBBBBB 22600019 TSTTCB EQU 12 TST TCB PTR FOR MVT BBBBBB 22800019 SPACE 2 BBBBBB 23000019 * TCB DEFINITION BBBBBB 23200019 TCBTIOT EQU 12 POINTER TO TIOT BBBBBB 23400019 TCBNEXT EQU 116 TCB LINK FIELD BBBBBB 23600019 SPACE 2 BBBBBB 23800019 * TIOT DEFINITION BBBBBB 24000019 TIOTJOBN EQU 0 POINTER TO JOB NAME BBBBBB 24200019 SPACE 2 BBBBBB 24400019 * REGISTER DEFINITION BBBBBB 24600019 TSTREG EQU 1 RQE POINTER BBBBBB 24800019 PARMREG EQU 1 PARAMETER REG FOR WTO BBBBBB 25000019 IOBREG EQU 2 IOB POINTER BBBBBB 25200019 UCBREG EQU 3 UCB POINTER BBBBBB 25400019 CVTREG EQU 4 CVT POINTER BBBBBB 25600019 BASREG EQU 12 BASE REGISTER BBBBBB 25800019 ERRLNK EQU 14 LINK REGISTER BBBBBB 26000019 ERREG2 EQU 5 WORK REGISTER BBBBBB 26200019 ERREG3 EQU 6 WORK REGISTER BBBBBB 26400019 ERREG4 EQU 7 WORK REGISTER BBBBBB 26600019 ERREG5 EQU 8 WORK REGISTER BBBBBB 26800019 ERREG6 EQU 9 WORK REGISTER BBBBBB 27000019 ERREG7 EQU 10 WORK REGISTER BBBBBB 27200019 ERREG8 EQU 11 WORK REGISTER BBBBBB 27400019 ERREG9 EQU 13 WORK REGISTER BBBBBB 27600019 ERREGA EQU 15 WORK REGISTER BBBBBB 27800019 BUFREG EQU 15 BUFFER POINTER BBBBBB 28000019 ERREG0 EQU 0 WORK REGISTER BBBBBB 28200019 SPACE 2 BBBBBB 28400019 * CEB DEFINITION BBBBBB 28600019 CEBCTR EQU 24 DISPL FR NXAVL TO CEB CTRBBBBBB 28800019 CEBTBL EQU 25 DISP FR NXAVL TO CEB PTR BBBBBB 29000019 CEBFLG EQU 0 DISP IN CEB TO FLAGS BBBBBB 29200019 CEBCHM EQU 1 DISPL IN CEB OF CHM FLD BBBBBB 29400019 CEBRQE EQU 2 DISP TO CEB RQE FIELD BBBBBB 29600019 CEBNXT EQU 4 CEB LENGTH BBBBBB 29800019 * CEB FLAGS BBBBBB 30000019 CEBFREE EQU X'FE' CONST TO TEST IF CEB FREEBBBBBB 30200019 CEBACTV EQU X'01' ACTIVE CEB INDICATOR BBBBBB 30400019 SPACE 2 BBBBBB 30600019 * CVT DEFINITION BBBBBB 30800019 LOC016 EQU 16 ADDR. TO VECTOR TABLE BBBBBB 31000019 CVTLINK EQU 8 PTR TO LINKLIB DCB BBBBBB 31200019 CVTXCTL EQU 44 VECTOR TO XCTL RNT. BBBBBB 31400019 CVTDCB EQU 116 LOGREC DCB POINTER BBBBBB 31600019 CVTIXAVL EQU 124 NEXT AVAILABLE RQE PTR BBBBBB 31800019 CVTNUCB EQU 128 DISP IN CVT OF APR FLG BBBBBB 32000019 CVTILCH EQU 140 LOGICAL CHN TABLE PTR BBBBBB 32200019 CVTHEAD EQU 160 PTR TO FIRST TCB BBBBBB 32400019 CVTMACSZ EQU 164 MAXIMUM CORE SIZE BBBBBB 32600019 CVTOTTA EQU 182 DISP TO NIP INDICATOR BBBBBB 32800019 * CVT FLAGS BBBBBB 33000019 CVTNIP EQU X'10' NIP IN CONTROL FLAG BBBBBB 33200019 APRVARP EQU X'40' APR FLAG IN CVT + 128 BBBBBB 33400019 MULTPROC EQU X'14' MULTI PROCESSING FLAG BBBBBB 33600019 MVT EQU X'10' MVT FLAG IN CVT + X'74' BBBBBB 33800019 MFT EQU X'20' MFT FLAG IN CVT + X'74' BBBBBB 34000019 PCP EQU X'40' PCP FLAG IN CVT + X'74' BBBBBB 34200019 SPACE 2 BBBBBB 34400019 * MULTI PROCESSING DEFINITION BBBBBB 34600019 AMPCHAN0 EQU X'2A0' LOC OF CHAN TBL IN MP PFXBBBBBB 34800019 APREFIX2 EQU X'2B0' PTR TO OTHER CPU'S PREFIXBBBBBB 35000019 MPPATHA EQU X'08' MULT PROC PATH FOR CPU A BBBBBB 35200019 MPPATHB EQU X'03' MULT PROC PTHS FOR CPU B BBBBBB 35400019 MP1PTH EQU X'0A' PATH TOT FOR MP SING PTH BBBBBB 35600019 MPMLTPTH EQU X'0F' PATH TOT FOR 4 PATH DEV BBBBBB 35800019 CPUA EQU C'A' ID FOR CPU A BBBBBB 36000019 CPUB EQU C'B' ID FOR CPU B BBBBBB 36200019 CPUID EQU 24 OFFSET TO CPU ID FROM TBLBBBBBB 36400019 CHNFLG EQU 0 FLAG FIELD IN MP CHAN TBLBBBBBB 36600019 CHNDOWN EQU X'70' CHANNEL DOWN INDICATOR BBBBBB 36800019 SPACE 2 BBBBBB 37000019 * MCS DEFINITIONS BBBBBB 37020019 DARTCOD EQU X'10' D/A ROUTING CODE BBBBBB 37040019 TAPRTCOD EQU X'20' TAPE ROUTINE CODE BBBBBB 37060019 URRTCOD EQU X'02' UNIT RECORD ROUTINE CODE BBBBBB 37080019 TPRTCOD EQU X'01' TP ROUTINE CODE BBBBBB 37100019 SPACE 2 BBBBBB 37120019 * MISCELLANEOUS DEFINITIONS BBBBBB 37200019 EXCPER EQU 15 ERROR EXCP BBBBBB 37400019 EXIT EQU 3 SVC EXIT BBBBBB 37600019 TCBLKUP EQU 4 DISPL FROM NXT AVL-TCBTBLBBBBBB 37800019 ACHMSK EQU 20 DISPL FR NXTAVL - CHMSK BBBBBB 38000019 LCHTCH EQU 6 OFFSET IN LCH TO TCH CODEBBBBBB 38200019 TBLLEN EQU 4 LENGTH OF TCH TBL FOR MP BBBBBB 38400019 VSERLN EQU 6 LENGTH OF VOLUME SERIAL BBBBBB 38600019 INOPCNT1 EQU 41 LEN OF INOP PTH MSG-NO MPBBBBBB 38800019 INOPCNT2 EQU 51 INOP PATH MSG LEN FOR MP BBBBBB 39000019 TBLORG EQU 240 ORIGIN OF TRANSLATE TBL BBBBBB 39200019 VALIDPTH EQU X'0F' MASK FOR VALID PATHS BBBBBB 39400019 CUMSK EQU X'F0' CONTROL UNIT MASK BBBBBB 39600019 NOEXCEP EQU X'FB' SAVE ALL BITS BUT EXCEP A57256 39650021 NOTOPER EQU X'30' CONDITION CODE 3 ON SIO BBBBBB 39800019 COMMA EQU C',' EBCDIC COMMA BBBBBB 40000019 BLANK EQU X'40' BLANK CHARACTER BBBBBB 40200019 ZERO EQU 0 ZERO COMPARAND BBBBBB 40400019 D0 EQU 0 DISPLACEMENT OF 0 BBBBBB 40600019 D1 EQU 1 DISPLACEMENT OF 1 BBBBBB 40800019 D2 EQU 2 DISPLACEMENT OF 2 BBBBBB 41000019 D8 EQU 8 DISPLACEMENT OF 8 BBBBBB 41200019 D32 EQU 32 DISPLACEMENT OF 32 S20201 41220020 D3 EQU 3 DISPLACEMENT OF 3 S20201 41260020 D6 EQU 6 DISPLACEMENT OF 6 S20201 41300020 DEVCLAS EQU X'02' DEVICE CLASS S20201 41340020 EJECT BBBBBB 41400019 * THIS ROUTINE DETERMINES WHETHER AN INOP PATH MSG OR AN BBBBBB 41600019 * INT REQ MSG SHOULD BE ISSUED. BBBBBB 41800019 USING *,BASREG BBBBBB 42000019 IECXWTO DS 0H BBBBBB 42200019 LR BASREG,15 INITBASREG FROM ENTRYREG BBBBBB 42400019 L IOBREG,TSTIOB-1(0,TSTREG) INIT IOB POINTER BBBBBB 42600019 LH UCBREG,TSTUCB(0,TSTREG) INIT UCB PTR BBBBBB 42800019 L CVTREG,LOC016 GET CVT POINTER BBBBBB 43000019 SPACE 1 S20201 43010020 * DETERMINE ROUTING CODE FOR THIS DEVICE TYPE 20201 43020020 MVC RCTABEND-D2(D1),UCBTYP+DEVCLAS(UCBREG) SET TABL S20201 43030020 LA ERREG5,RCTAB-D2 INITIALIZE POINTER S20201 43050020 ERCOD LA ERREG5,D2(ERREG5) STEP TO NEXT ENTRY S20201 43070020 CLC UCBTYP+DEVCLAS(D1,UCBREG),ZERO(ERREG5) THIS ENTRY S20201 43090020 BC 7,ERCOD NO, GET NEXT ENTRY S20201 43110020 MVC BUFRTCOD(D1),D1(ERREG5) INSERT ROUTING CODE S20201 43130020 MVC INOPRTCD(D1),BUFRTCOD PUT IN OTHER BUFFER S20201 43150020 SPACE 1 S20201 43170020 TM IOBCC(IOBREG),VALIDPTH TEST IF SINGLE PATH DEV BBBBBB 43200019 BC 9,ERRINT YES, TO INT REQ RTN SA61720 43400021 MVN WORKCHM(1),IOBCC(IOBREG) MOVE PATH IND TO WKAREA BBBBBB 43600019 OC UCBCHM(1,UCBREG),WORKCHM SET PATH DOWN IND IN UCB BBBBBB 43800019 BC 15,ERRLAST GO TO DETERM IF LAST PTH BBBBBB 44000019 SPACE 1 BBBBBB 44200019 * THE ERRLAST ROUTINE RETURNS WITH THE CONDITION CODE SET BBBBBB 44400019 * TO 0 IF A LAST PATH SITUATION EXISTS. BBBBBB 44600019 ERR802 BC 7,ERRINOP NO, ISSUE INOP PATH MSG BBBBBB 44800019 TM CVTNUCB(CVTREG),APRVARP TEST IF APR IN SYSTEM BBBBBB 45000019 BC 1,ERRAPR YES, GO TO TEST CEB BBBBBB 45200019 SPACE 1 BBBBBB 45400019 * THE ERRAPR ROUTINE RETURNS HERE IF NO CEBS WERE BEING BBBBBB 45600019 * PROCESSED FOR THIS RQE. I.E., NO PATHS AVAILABLE. BBBBBB 45800019 ERR800 XC UCBCHM(1,UCBREG),WORKCHM RESET UCBCHM-LEAVE 1 PTH BBBBBB 46000019 SPACE 3 BBBBBB 46200019 * THE FOLLOWING ROUTINE TESTS IF THE USER IS USING IBM ERROR BBBBBB 46400019 * ROUTINES. IF NOT, CONTROL IS RETURNED TO IOS WHERE HE BBBBBB 46600019 * WILL BE POSTED IN ERROR. OTHERWISE, THE INT REQ MESSAGE BBBBBB 46800019 * IS FORMATTED AND ISSUED. BBBBBB 47000019 ERRINT L ERREG2,IOBDCB-1(0,IOBREG) GET DCB POINTER BBBBBB 47200019 TM DCBFL(ERREG2),DCBIEK TEST IOS ERROR KEY BBBBBB 47400019 BC 4+1,ERR802B NO-RET TO IOS-POST ERR M4775 47600019 OI UCBFL1(UCBREG),UCBNRY SET DEV NOT READY BBBBBB 47800019 MVC INTRQCUA(3),UCBUTN(UCBREG) MOVE UNIT NAME TO BUF BBBBBB 48000019 LA BUFREG,INTRQVOL INIT BUFREG TO VOLSER BBBBBB 48400019 CLI UCBTYP+D2(UCBREG),UCBTAPE IS THIS TAPE S20201 48470020 BC 8,ERVS2 YES, GO CHECK FOR VOL SERS20201 48610021 CLI UCBTYP+D2(UCBREG),UCBDA IS THIS DA S20201 48750020 BC 7,ERRJOBN NO, GO GET JOB NAME S20201 48890020 CLI UCBTYP+D3(UCBREG),D2321 IS THIS 2321 S20201 49030020 BC 7,ERVOL1 NO, SKIP 2321 CODE S20201 49170020 SR ERREG6,ERREG6 CLEAR REG S20201 49310020 IC ERREG6,IOBSK+D1(IOBREG) GET BIN NUMBER S20201 49450020 SLL ERREG6,4 MULTIPLY BY 16 S20201 49590020 LA UCBREG,D32(UCBREG,ERREG6) ALMOST POINT TO SUB UCB S20201 49730020 SPACE 1 S20201 49870020 * GET BASE ADDRESS UCB IF THIS IS A ZEUS DRUM 20201 49940020 ERVOL1 CLI UCBTYP+D3(UCBREG),ZEUSA IS THIS A ZEUS DRUM S20201 50010020 BC 8,ERSV1 YES, GO GET BASE UCB S20201 50150020 CLI UCBTYP+D3(UCBREG),ZEUSC IS THIS A ZEUS DRUM S20201 50290020 BC 7,ERVS2 NO, GO CHECK FOR A VALID S20201 50430020 ERSV1 L UCBREG,UCBEXT(UCBREG) GET POINTER TO UCB EXTEN S20201 50570021 L UCBREG,UCBBASE(UCBREG) GET POINTER TO BASE UCB S20201 50710020 * UCBREG HAS INVALID UCB FROM HERE ON ---- 20201 50850020 SPACE 1 S20201 50920020 ERVS2 CLI UCBVSER(UCBREG),ZERO CHECK FOR VALID VOLSER S20201 50990020 BC 8,ERRJOBN NO, GO FIND JOB NAME S20201 51130020 MVC D0(D6,BUFREG),UCBVSER(UCBREG) MOVE VOL SER TO MSG S20201 51270020 ERR801 LA BUFREG,VSERLN(0,BUFREG) UPDATE BUFREG TO JOBN BBBBBB 51600019 SPACE 1 BBBBBB 51800019 * THE FOLLOWING MOVES THE JOBNAME TO THE BUFFER IF THE TCB BBBBBB 52000019 * CAN BE DETERMINED. BBBBBB 52200019 ERRJOBN MVI D0(BUFREG),COMMA MOVE COMMA AFTER VOLSER BBBBBB 52400019 LA BUFREG,D1(0,BUFREG) UPDATE BUFREG BBBBBB 52600019 L ERREG5,TSTTCB(0,TSTREG) GET TCB PTR IF MVT BBBBBB 52800019 TM CVTDCB(CVTREG),MVT CHECK SYSTEM TYPE FOR MVTBBBBBB 53000019 BC 1,GETTIOT NO, BRANCH BBBBBB 53200019 SR ERREG6,ERREG6 CLEAR WORK REG BBBBBB 53400019 IC ERREG6,TSTTCBID(0,TSTREG) GET TCB ID BBBBBB 53600019 SLL ERREG6,2 FORM OFFSET INTO TCB TBL 19054 53800019 L ERREG5,CVTIXAVL(0,CVTREG) GET PTR TO NEXT AVAIL. BBBBBB 54000019 L ERREG5,TCBLKUP(0,ERREG5) GET PTR TO TCB TBL BBBBBB 54200019 L ERREG5,D0(ERREG6,ERREG5) GET TCB PTR BBBBBB 54400019 GETTIOT L ERREG6,TSTDEB-1(0,TSTREG) GET DEB PTR FROM RQE BBBBBB 54600019 L ERREG6,DEBTCB(0,ERREG6) GET TCB POINTER BBBBBB 54800019 LA ERREG5,D0(0,ERREG5) INSURE ZERO IN HI ORDER BBBBBB 55000019 LA ERREG6,D0(0,ERREG6) INSURE ZERO IN HI ORDER BBBBBB 55200019 CR ERREG5,ERREG6 COMP TCB PTRS FOR VLDTY BBBBBB 55400019 BC 7,ERR814 NOT EQUAL, OMIT JOBNAME BBBBBB 55600019 L ERREG5,TCBTIOT(0,ERREG5) GET TIOT PTR BBBBBB 55800019 L ERREG6,CVTMACSZ(0,CVTREG) GET HIGHEST CORE ADDR BBBBBB 56000019 SH ERREG6,EIGHT INSURE NO PGM CHK IN MVC BBBBBB 56200019 CLR ERREG5,ERREG6 TEST IF TIOT PTR TOO HIGHBBBBBB 56400019 BC 2,ERR814 YES, OMIT JOB NAME BBBBBB 56600019 LTR ERREG5,ERREG5 TEST IF VALID TIOT PTR M4046 56660019 BC 8+4,ERR814 NO-OMIT JOB NAME M4046 56720019 MVC D0(8,BUFREG),TIOTJOBN(ERREG5) MOVE JOBN TO BUFFER BBBBBB 56800019 LA BUFREG,D8(0,BUFREG) POINTER TO END OF BUFFER BBBBBB 57000019 ERR814 LR ERREG5,TSTREG SAVE TSTREG OVER WTO BBBBBB 57200019 LA PARMREG,INTRQMSG INIT BUFFER PTR FOR WTO BBBBBB 57400019 MVC D0(4,BUFREG),INTDESC MOVE DES + RT COD TO BUFBBBBBB 57600019 SR BUFREG,PARMREG COMPUTE BUFFER LENGTH BBBBBB 57800019 STH BUFREG,INTRQMSG STORE MSG LENGTH BBBBBB 58000019 BC 15,ERR809 GO TO ISSUE MSG BBBBBB 58200019 SPACE 3 BBBBBB 58400019 * THE FOLLOWING ROUTINE FORMATS AND ISSUES THE INOP PATH MSG BBBBBB 58600019 ERRINOP MVC INOPCUA(3),UCBUTN(UCBREG) MOVE UNIT NAME TO BUF BBBBBB 58800019 MVI INOPMSG+1,INOPCNT1 INIT LENGTH FOR NO MP BBBBBB 59000019 MVC INOPDSRT(4),INOPDESC MOVE RT + DESC CODES BBBBBB 59200019 TM UCBALLC(UCBREG),MULTPATH TEST IF MULTI PATH DEV BBBBBB 59400019 BC 8,ERRI002 NO, NO TCH CHAN TBL BBBBBB 59600019 * ERREG2 POINTS TO TCH CHANNEL TABLE SUMMARY BBBBBB 59800019 IC ERREG5,D0(0,ERREG2) GET TOT NUM OF PATHS BBBBBB 60000019 AR ERREG5,ERREG5 DOUBLE FOR TBL LENGTH BBBBBB 60200019 SR ERREG2,ERREG5 POINT TO START OF TBL BBBBBB 60400019 IC ERREG5,WORKCHM GET PATH INDICATOR BBBBBB 60600019 TM CVTDCB(CVTREG),MULTPROC TEST IF MP SYSTEM BBBBBB 60800019 BC 8+4,ERRI001 NO, GO TO FIND ENTRY BBBBBB 61000019 ERRI002 MVI INOPCPU,CPUA INIT BUF TO CPU A BBBBBB 61200019 MVI INOPMSG+1,INOPCNT2 REINIT MSG LENGTH BBBBBB 61400019 MVC INOPDSRT(4),INOPTXT REINIT BUFFER BBBBBB 61600019 TM WORKCHM,MPPATHB TEST IF CC 3 ON CPU B BBBBBB 61800019 BC 8,ERRI001 NO, GO TO FIND PATH BBBBBB 62000019 MVI INOPCPU,CPUB INIT BUF TO CPU B BBBBBB 62200019 SLL ERREG5,2 SHIFT PATH TO CPU A FORM BBBBBB 62400019 ERRI001 TM UCBALLC(UCBREG),MULTPATH TEST IF MULTI PATH DEV BBBBBB 62600019 LH ERREG4,UCBCUA(0,UCBREG) INIT FOR NO TCH TBL BBBBBB 62800019 BC 8,ERRI003 NO, GO STORE PATH IN BUF BBBBBB 63000019 ERRI004 IC ERREG4,D1(0,ERREG2) GET PATH FROM TABLE BBBBBB 63200019 N ERREG4,CHINDMSK MASK OUT INVALID PATHS BBBBBB 63400019 CR ERREG5,ERREG4 TEST IF THIS IS THE PATH BBBBBB 63600019 BC 7,ERRI005 NO, GO TO UPDATE TBL PTR BBBBBB 63800019 LH ERREG4,D0(0,ERREG2) GET CHANNEL ADDR BBBBBB 64000019 TM D1(ERREG2),CUMSK TEST IF SUBCHN IN PATH BBBBBB 64200019 BC 4+1,ERRI003 YES, GO STORE PATH IN BUFBBBBBB 64400019 IC ERREG4,UCBCUA+1(0,UCBREG) GET CTL UNIT FROM UCB BBBBBB 64600019 ERRI003 SRL ERREG4,4 GET CHN + CTL UNIT IN BYTBBBBBB 64800019 STC ERREG4,INOPPATH STORE CHN, CU IN BUF BBBBBB 65000019 UNPK INOPPATH(3),INOPPATH(2) UNPACK CHN + CU BBBBBB 65200019 TR INOPPATH(2),ERRTBL-TBLORG TRANSLATE CHN + CU BBBBBB 65400019 MVI INOPPATH+2,BLANK REINIT BLANK BBBBBB 65600019 LR ERREG5,TSTREG SAVE TSTREG OVER WTO BBBBBB 65800019 LA PARMREG,INOPMSG INIT PARM REG TO WTO BBBBBB 66000019 ERR809 OI IOBFL1(IOBREG),IOBERR INSURE RQE RETURN TO QUE BBBBBB 66100019 TM CVTOTTA(CVTREG),CVTNIP TEST IF NIP IN CONTROL BBBBBB 66200019 BC 1,ERR802A YES, NO MESSAGE BBBBBB 66400019 WTO MF=(E,(1)) BBBBBB 66600019 ERR802A LR TSTREG,ERREG5 REINIT TST REG BBBBBB 66800019 NI IOBFL1(IOBREG),NOEXCEP TURN OFF EXCEP CONDITION A57256 66850021 ERR802B SVC EXCPER ISSUE SVC 15 M4775 67000019 SVC EXIT ISSUE SVC 3 BBBBBB 67200019 SPACE 2 BBBBBB 67400019 ERRI005 LA ERREG2,D2(0,ERREG2) UPDATE TBL PTR BBBBBB 67600019 BC 15,ERRI004 GO TO PROC NXT ENTRY BBBBBB 67800019 SPACE 3 BBBBBB 68000019 * THE FOLLOWING ROUTINE DETERMINES IF THERE ARE ANY ACTIVE BBBBBB 68200019 * CEBS FOR THE RQE THAT GOT THE CC 3. IF NOT, THE INT REQ BBBBBB 68400019 * MESSAGE IS ISSUED. IF SO, THE PATHS BEING PROCESSED BY APR BBBBBB 68600019 * ARE RESET (IN UCBCHM), MAKING THEM AVAILABLE TO IOS, AND BBBBBB 68800019 * THE INOP PATH MESSAGE IS ISSUED. BBBBBB 69000019 ERRAPR L ERREG5,CVTIXAVL(0,CVTREG) GET PTR TO NEXT AVAIL. BBBBBB 69200019 SR ERREG3,ERREG3 CLEAR REG BBBBBB 69400019 IC ERREG3,CEBCTR(0,ERREG5) GET CEB COUNT BBBBBB 69600019 L ERREG4,CEBTBL-1(0,ERREG5) GET PTR TO CEB TABLE BBBBBB 69800019 TM CEBFLG(ERREG4),CEBACTV TEST IF ANY ACTIVE CEBS BBBBBB 70000019 BC 8,ERR800 NO, INT REQ MSG BBBBBB 70200019 ERRAPR01 TM CEBFLG(ERREG4),CEBFREE TEST IF THIS CEB IN USE BBBBBB 70400019 BC 1,ERRAPR02 NO, GO UPDATE TO NEXT BBBBBB 70600019 CLC UCBLTS(2,UCBREG),CEBRQE(ERREG4) TEST RETRY FOR RQEBBBBBB 70800019 BC 7,ERRAPR02 NO, GO TO UPDATE BBBBBB 71000019 NC UCBCHM(1,UCBREG),CEBCHM(ERREG4) RESET PATHS ONLINEBBBBBB 71200019 OI CEBFLG(ERREG4),CEBFREE DEACTIVATE CEB BBBBBB 71400019 IC ERREG3,UCBCUA(0,UCBREG) GET CHANNEL ADDRESS BBBBBB 71600019 N ERREG3,CHINDMSK INSURE 4 BIT CHANNEL BBBBBB 71800019 L ERREG4,ZRCHNMSK GET CHAN 0 MASK BBBBBB 72000019 SRL ERREG4,0(ERREG3) FORM PROPER CHAN MASK BBBBBB 72200019 O ERREG4,ACHMSK(0,ERREG5) OR MASK WITH IOS CHMSK BBBBBB 72400019 ST ERREG4,ACHMSK(0,ERREG5) STORE NEW CHMSK BBBBBB 72600019 BC 15,ERRINOP GO ISSUE INOP PATH MSG BBBBBB 72800019 SPACE 1 BBBBBB 73000019 ERRAPR02 LA ERREG4,CEBNXT(0,ERREG4) UPDATE TO NEXT CEB BBBBBB 73200019 BCT ERREG3,ERRAPR01 BRANCH TO HANDLE BBBBBB 73400019 BC 15,ERR800 APR NOT ACTIVE FOR THIS BBBBBB 73600019 * RQE - GO ISSUE INT REQ BBBBBB 73800019 SPACE 3 BBBBBB 74000019 * THE FOLLOWING ROUTINE DETERMINES IF THE LAST PATH TO A BBBBBB 74200019 * DEVICE GOT A CC 3. THE UCBCHM FIELD IS COMPARED TO THE BBBBBB 74400019 * COMPOSITE OF ALL PATHS IN THE TCH TABLE. IF EQUAL, A BBBBBB 74600019 * LAST PATH CONDITION EXISTS. IF THE SYSTEM IS MP, THE BBBBBB 74800019 * UCBCHM MUST BE COMBINED WITH THE PATHS (CHANNELS) DOWN BBBBBB 75000019 * IN THE MP CHANNEL TABLES. ALSO, THE COMPOSITE MUST BE BBBBBB 75200019 * UPDATED TO REFLECT THE CPU B PATHS. BBBBBB 75400019 ERRLAST TM UCBALLC(UCBREG),MULTPATH TEST MULTI PATH BIT TO BBBBBB 75600019 * DETERM IF TCH TBL EXISTS BBBBBB 75800019 LA ERREG8,UCBCUA(0,UCBREG) INIT PTR FOR NO TABLE BBBBBB 76000019 LA ERREG2,UCBCUA+2(0,UCBREG) INIT EOTBL PTR FOR NOTBLBBBBBB 76200019 LA ERREG4,MP1PTH INIT TOTAL PATH REG FOR BBBBBB 76400019 * MULT PROC SINGLE PATH DEVBBBBBB 76600019 BC 8,ERRL002 NO TBL- GO TEST MP CHNTBLBBBBBB 76800019 L ERREG2,CVTILCH(0,CVTREG) GET LCH TBL PTR BBBBBB 77000019 SR ERREG4,ERREG4 CLEAR WORK REG BBBBBB 77200019 IC ERREG4,UCBLCI(0,UCBREG) GET LCH TBL INDEX BBBBBB 77400019 SLL ERREG4,3 MULT BY 8 BBBBBB 77600019 LH ERREG2,LCHTCH(ERREG4,ERREG2) GET TCH CODE PTR BBBBBB 77800019 N ERREG2,HWDMSK INSURE HALF WORD ADDR BBBBBB 78000019 BCTR ERREG2,0 BACK UP BY 2 TO POINT BBBBBB 78200019 BCTR ERREG2,0 TO TBL SUMMARY BBBBBB 78400019 IC ERREG4,D1(0,ERREG2) GET TOTAL OF PATH INDCTRSBBBBBB 78600019 N ERREG4,CHINDMSK MASK OUT INVALID PATHS BBBBBB 78800019 TM CVTDCB(CVTREG),MULTPROC TEST FOR MULT PROC SYSTEMBBBBBB 79000019 BC 1,ERRLMP YES, GO TO MP ROUTINE BBBBBB 79200019 IC ERREG5,UCBCHM(0,UCBREG) GET TOTAL PATH DOWN INDS BBBBBB 79400019 N ERREG5,CHINDMSK MASK OUT INVALID PATHS BBBBBB 79600019 ERRL001 CR ERREG4,ERREG5 TEST IF ALL PATHS DOWN BBBBBB 79800019 BC 15,ERR802 RETURN WITH CC SET BBBBBB 80000019 SPACE 1 BBBBBB 80200019 * THIS CODE IS ENTERED FOR MP ONLY. BBBBBB 80400019 ERRLMP LA ERREG4,MPMLTPTH INIT TOTAL TO 4 PATHS BBBBBB 80600019 LA ERREG5,TBLLEN GET TABLE LENGTH OF 4 - BBBBBB 80800019 * TWO 2-BYTE ENTRIES BBBBBB 81000019 LR ERREG8,ERREG2 POINT TO END OF TBL BBBBBB 81200019 SR ERREG8,ERREG5 POINT TO START OF TABLE BBBBBB 81400019 ERRL002 LA ERREG6,AMPCHAN0 GET PTR TO MP CHAN TBL BBBBBB 81600019 L ERREG7,APREFIX2 POINT TO OTHER CPU PREFIXBBBBBB 81800019 AR ERREG7,ERREG6 PTR TO OTHER CPU CHN TBL BBBBBB 82000019 SR ERREG0,ERREG0 CLEAR PATH ACCUMULATOR BBBBBB 82200019 ERRL003 IC ERREG5,D0(0,ERREG8) GET CHANNEL FROM TCH TBL BBBBBB 82400019 N ERREG5,CHINDMSK MASK OUT INVALID CHAN - BBBBBB 82600019 * NEEDED FOR MP SING PATH BBBBBB 82800019 AR ERREG5,ERREG5 DOUBLE TO GET OFFSET INTOBBBBBB 83000019 * MP CHANNEL TABLE BBBBBB 83200019 LA ERREG9,D0(ERREG5,ERREG6) POINT TO ENTRY IN MP TBL BBBBBB 83400019 LR ERREGA,ERREG6 BACK-UP TABLE PTR BBBBBB 83600019 BAL ERRLNK,ERRL004 GO TO TEST ENTRY BBBBBB 83800019 LA ERREG9,D0(ERREG5,ERREG7) POINT TO ENT IN OTHR TBL BBBBBB 84000019 LR ERREGA,ERREG7 BACK-UP TBL PTR BBBBBB 84200019 BAL ERRLNK,ERRL004 GO TO TEST ENTRY BBBBBB 84400019 LA ERREG8,D2(0,ERREG8) UPDATE TCH TBL TO NXT CHNBBBBBB 84600019 CR ERREG8,ERREG2 TEST FOR END OF TCH TBL BBBBBB 84800019 BC 4,ERRL003 NO, GO GET NEXT CHANNEL BBBBBB 85000019 IC ERREG5,UCBCHM(0,UCBREG) GET PATH DOWN TOT IN UCB BBBBBB 85200019 N ERREG5,CHINDMSK MASK OUT INVALID PAHTS BBBBBB 85400019 OR ERREG5,ERREG0 OR IN TOT FROM MP CHN TBLBBBBBB 85600019 BC 15,ERRL001 GO TO COMPARE PATH TOTALSBBBBBB 85800019 SPACE 1 BBBBBB 86000019 ERRL004 TM CHNFLG(ERREG9),CHNDOWN TEST IF THIS CHAN DOWN BBBBBB 86200019 BCR 8,ERRLNK NO, RETURN BBBBBB 86400019 TM UCBALLC(UCBREG),MULTPATH TEST FOR MULTI PATH DEV BBBBBB 86600019 LA ERREG3,MPPATHA INIT FOR SINGLE PATH BBBBBB 86800019 BC 8,ERRL005 SINGLE PATH, GO TEST CPU BBBBBB 87000019 IC ERREG3,D1(0,ERREG8) GET PATH FROM TCH TBL BBBBBB 87200019 N ERREG3,CHINDMSK MASK OUT INVALID PATHS BBBBBB 87400019 ERRL005 CLI CPUID(ERREGA),CPUA TEST IF CPU A BBBBBB 87600019 BC 8,ERRL006 YES,PATH IN PROPER FORMATBBBBBB 87800019 SRL ERREG3,2 SHIFT TO CPU B FORMAT BBBBBB 88000019 ERRL006 OR ERREG0,ERREG3 OR PATH IND INTO ACCUMLTRBBBBBB 88200019 BCR 15,ERRLNK RETURN BBBBBB 88400019 EJECT BBBBBB 88600019 * CONSTANTS AND WORK AREAS BBBBBB 88800019 DS 0F BBBBBB 89000019 CHINDMSK DC X'0000000F' MASK FOR VALID CHN PATHS BBBBBB 89200019 ZRCHNMSK DC X'80000000' MASK FOR CHANNEL 0 BBBBBB 89400019 HWDMSK DC X'0000FFFF' HALF WORD MASK BBBBBB 89600019 EIGHT DC H'8' HALF WORD CONSTANT 8 BBBBBB 89800019 SPACE 2 BBBBBB 90000019 * INTERVENTION REQUIRED MESSAGE BUFFER BBBBBB 90200019 INTRQMSG DC XL2'0' WTO MSG LENGTH BBBBBB 90400019 DC XL2'8000' MCS FLAG BBBBBB 90600019 INTRQBUF DC CL40'IEA000A CUA,INT REQ,,CC=3/NO PATHS AVAIL' BBBBBB 90800019 DC CL22'ABLE,,,VOLSER,JOBN' BBBBBB 91000019 INTDESC DC X'4000' IMMED ACT REQ DESCR CODE BBBBBB 91200019 BUFRTCOD DC X'0000' ROUTING CODE S20201 91300020 SPACE 1 BBBBBB 91600019 * BUFFER DEFINITION BBBBBB 91800019 INTRQCUA EQU INTRQBUF+8 BBBBBB 92000019 INTRQVOL EQU INTRQBUF+47 BBBBBB 92200019 SPACE 2 BBBBBB 92400019 * INOPERATIVE PATH MESSAGE BUFFER BBBBBB 92600019 INOPMSG DC XL2'0' WTO MSG LENGTH BBBBBB 92800019 DC XL2'8000' MCS FLAG BBBBBB 93000019 INOPBUF DC CL37'IEA001I UNIT XXX, PATH YY INOPERATIVE' BBBBBB 93200019 DC CL10' FOR CPU X' BBBBBB 93400019 INOPDESC DC X'1000' SYSTEM STAT DESCR CODE BBBBBB 93600019 INOPRTCD DC X'0040' ERROR ROUTING CODE BBBBBB 93800019 SPACE 1 BBBBBB 94000019 * BUFFER DEFINITION BBBBBB 94200019 INOPCUA EQU INOPBUF+13 BBBBBB 94400019 INOPPATH EQU INOPBUF+23 BBBBBB 94600019 INOPDSRT EQU INOPBUF+37 RTING + DESCR CODES-NO MPBBBBBB 94800019 INOPCPU EQU INOPBUF+46 BBBBBB 95000019 SPACE 2 BBBBBB 95200019 ERRTBL DC C'0123456789ABCDEF' TRANSLATE TABLE BBBBBB 95400019 WORKCHM DC X'00' SVAREA FOR CURR PATH DOWNBBBBBB 95800019 INOPTXT DC C' FOR' TEXT FOR REINIT'G BUFFER BBBBBB 96000019 RCTAB DC X'0802' UR CLASS AND ROUTE CODE S20201 96010020 DC X'2010' DA CLASS AND ROUTE CODE S20201 96030020 DC X'4001' TP CLASS AND ROUTE CODE S20201 96050020 DC X'8020' TAPE CLASS AND ROUTE S20201 96070020 DC X'0040' DUMMY ENTRY SA69928 96090021 RCTABEND DS 0H S20201 96110020 PATCH EQU * START OF PATCH AREA 96160021 DC (1024-(PATCH-IECXWTO))X'00' 96170021 END 96200019 ./ ADD SSI=01050524,NAME=IGE0400I,SOURCE=0 TITLE 'IGE0400I LOAD 5 1/2 INCH MAG TAPE ERPS' 00050021 IGE0400I START X'00' LOAD 5 00060021 *********************************************************************** 00070021 * * 00080021 * STATUS: CHANGE LEVEL 0 * 00090021 * RELEASE 21.8 * 00090421 * * 00092021 * FUNCTION/OPERATION: * 00094021 * 1. UPDATE SDR COUNTERS AND SET A OVERFLOW FLAG IF ANY * 00096021 * COUNTER IS STEPPED FULL. * 00098021 * 2. PRINT THE EVA MESSAGE TO THE OPERATOR IF A READ OR * 00098421 * WRITE THRESHOLD IS REACHED. * 00098821 * * 00099221 * ENTRY POINTS: ER2405A * 00099621 * 1. IGE0000I (LOAD 1) FOR STAT UPDATE * 00101621 * 2. IGE0300I (LOAD 4) FOR EVA THRESHOLD PRINT OUT * 00103621 * * 00104021 * INPUT: REGISTER 1 CONTAINS POINTER TO REQUEST ELEMENT TABLE. * 00104421 * * 00104821 * OUTPUT * 00104921 * THE EVA THRESHOLD MESSAGE - VIA SVC 35 * 00105021 * MSG 'ERROR THRESHOLD REACHED' * 00105121 * * 00105521 * EXTERNAL ROUTINES: N/A * 00105921 * * 00106021 * EXITS-NORMAL: * 00106121 * 1. SVC 15/3 EXIT TO IOS * 00106221 * 2. XCTL TO IGE0000I (LOAD 1) * 00108221 * 3. XCTL TO IGE0025F (OBR ROUTINE) * 00110221 * * 00112221 * EXITS-ERROR: N/A * 00112621 * * 00113021 * TABLES/WORK AREA: N/A * 00113121 * * 00113221 * ATTRIBUTES: SERIALLY REUSABLE * 00113621 * * 00114021 * NOTES * 00114121 * THIS IS A NEW MODULE TO SUPPORT 3400 TAPE UNITS. SUPPORT CODE * 00114221 * S21048. * 00114621 * APAR 63163 MULTI TIE IGNORED IF BITS 6 & 7 ARE ON IN SNSBYTE 2 * 00114721 * * 00114821 * APAR 63822 NO RECORDING WHEN INTERVENTION REQUIRED ONLY IN * 00114921 * SENSE BYTE 0 * 00115421 * * 00126221 * APAR 69319 BAD LA INSTRUCTION LOADS LOW CORE ADDRESS IN REGISTER * 00126621 * * 00127121 *********************************************************************** 00134121 EJECT 00134621 * 00135121 * * IOB REFERENCES 00135621 * 00136121 IOBFL1 EQU 0 FLAGS 1 00136621 IOBFL2 EQU 1 FLAGS 2 00137121 IOBFL3 EQU 8 FLAGS 3 00137621 IOBCSW EQU 8 CSW STORAGE 00138121 IOBDCB EQU 21 DCB POINTER 00138621 IOBECT EQU 30 ERROR COUNTS 00139121 * 00139621 * * IOB FLAG 1 REFERENCES 00140121 * 00140621 IOBERR EQU X'20' IOB ERROR FLAG 00141121 IOBEX EQU X'04' EXCEPT FLAG 00141621 IOBEXE EQU IOBEX+IOBERR IOB EX AND ERROR FLAG 00142121 * 00142621 * * UCB REFERENCES 00143121 * 00143621 UCBFL5 EQU 1 UCB FLAG 5 00144121 UCBSTI EQU 9 STATISTICS TABLE INDEX 00144621 UCBSNS EQU 22 SENSE BYTES 00145121 UCBNBRSN EQU 24 EXTENDED SENSE ADR 00145621 RORPTR EQU 48 ROR CCW ADR 00146121 * 00146621 * * REGISTER ASSIGNMENTS 00147121 * 00147621 ERREG3 EQU 0 WORK REG 00148121 TSTREG EQU 1 TWELVE STAR REG 00148621 R2 EQU 2 WORK REG 00149121 ERREG2 EQU 2 UNUSED 00149621 R3 EQU 3 WORK REG 00150121 CCWREG EQU 3 CCW ADDRESS REG 00150621 R4 EQU 4 WORK REG 00151121 R5 EQU 5 WORK REG 00151621 R6 EQU 6 WORK REG 00152121 DCBREG EQU 6 DCB ADDRESS REGISTER 00152621 BASREG EQU 7 BASE REG 00153121 R8 EQU 8 WORK REG 00153621 VECREG EQU 8 VECTOR ADDRESS REG. 00154121 R9 EQU 9 WORK REG 00154621 IOBRG EQU 10 IOB ADDRESS REG 00155121 ERRLNK EQU 12 LINK REG 00155621 ERREG1 EQU 13 WORK REG 00156121 ERRETR EQU 14 RETURN REG FOR XCTL 00156621 UCBREG EQU 15 UCB ADR REG 00157121 * 00157621 * * TWELVE STAR DEFINITION 00158121 * 00158621 TSTUCB EQU 2 UCB POINTER 00159121 TSTIOB EQU 5 IOB POINTER 00159621 TSTDEB EQU 9 DEB POINTER 00160121 EJECT 00160621 * 00161121 * MISCELLANEOUS 00161621 * 00162121 BLOCK EQU 6 BLOCK LENGTH 00162621 CDCNT EQU 7 CHAN DATA CK OFFSET 00163121 CDFULL EQU X'0F' CHAN DATA COUNT FULL 00163621 CHDAT EQU X'08' CHAN DATA CK 00164121 CHEND EQU X'08' CHANNEL END 00164621 CHUN EQU 13 CHAN/UNIT OFFSET 00165121 CNTEND EQU X'FF' END OF COUNTER FLAG 00165621 CTROK EQU X'80' FAKE COUNTER INDICATOR 00166121 C0 EQU 0 NUMBER 0 @SA69319 00166321 C1 EQU 1 NUMBER 1 00166621 C2 EQU 2 NUMBER 2 00167121 C3 EQU 3 COUNT OF 3 00167621 C4 EQU 4 NUMBER 4 00168121 C5 EQU 5 NUMBER 5 00168621 C6 EQU X'06' COUNT OF 6 00169121 C8 EQU 8 COUNT OF 8 00169621 C9 EQU 9 COUNT OF 9 00170121 C11 EQU 11 COUNT OF 11 00170621 C12 EQU 12 COUNT OF 12 00171121 C13 EQU 13 COUNT OF 13 00171621 C19 EQU 19 COUNT OF 19 00172121 C21 EQU 21 COUNT OF 21 00172621 C26 EQU 26 COUNT OF 26 00173121 C28 EQU 28 COUNT OF 28 00173621 C34 EQU 34 COUNT OF 34 00174121 C35 EQU 35 COUNT OF 35 00174621 C43 EQU 43 COUNT OF 43 00175121 C256 EQU 256 NUMBER 256 00175621 DEBMOD EQU 32 DEB MODE SET OFFSET 00176121 EXCPER EQU 15 SVC 15 00176621 FLAGON EQU X'FF' SET BITON FLAG 00177121 FULL EQU X'FF' ALL ONES 00177621 HIBIT EQU 128 SET HI ORDER BIT IN A BYTE 00178121 INTREQ EQU X'40' INTERV. REQ'D MASK @SA63822 00178621 INVAL EQU X'03' INVALID CODE 00179121 IOBENT EQU X'40' IOB ENTRY FLAG 00179621 LOC016 EQU 16 COMMUNICATION TABLE 00180121 MODE EQU 19 MODE SET OFFSET 00180621 NEWDEV EQU X'08' EXTENDED SENSE 00181121 NULL EQU X'F0' REMOVE SIGN 00181621 ON EQU X'80' SET BIT ON 00182121 OVRFLO EQU X'02' OVER FLOW BIT 00182621 PARON EQU X'01' TIE COUNTER PARITY BIT 00183121 PEBIT EQU 3 PE BIT IN SENSE 00183621 PEIDBIT EQU 5 PE ID BURST CK BIT 00184121 PEIDER EQU X'10' PE ID BURST ERROR 00184621 PEON EQU X'04' PE BIT 00185121 RESET1 EQU X'E7' RESET IOB FLAG 1 00185621 RESET2 EQU X'F3' RESET IOB FLAG 2 00186121 RETURN EQU 3 SVC 3 00186621 SDRPI EQU 8 PE ID BURST SDR COUNT OFFSET 00187121 SDR20 EQU X'01' 20 BYTE SDR FLAG 00187621 SERLOG EQU 256 LOAD NAME FOR OBR 000L 00188121 SIO EQU 14 SIO COUNT OFFSET 00188621 STATAB EQU 112 ADDRESS TO STATISTICS TABLE 00189121 TCB EQU 12 TCB OFFSET 00189621 TEMPRD EQU 12 TEMP READ OFFSET 00190121 TEMPWR EQU 13 TEMP WRITE OFFSET 00190621 TIOT EQU 12 TIOT OFFSET 00191121 UNCK EQU X'02' UNIT CHECK 00191621 VECTXL EQU 44 VECTOR TO XCTL RNT. 00192121 VES EQU X'C0' ESV/EVA OPTION BITS 00192621 VOLID EQU X'1C' VOLUME ID OFFSET 00193121 WORD EQU 32 NUMBER OF BITS IN WORD 00193621 ZERO EQU X'00' ZERO 00194121 * 00194621 LOAD1 EQU 9 LOAD NAME FOR LOAD 1 00195121 EJECT 00195621 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00196121 * * 00196621 * THIS IS THE FIFTH LOAD OF THE 00197121 * 2400 SERIES MAGNETIC TAPE ERROR ROUTINE 00197621 * * 00198121 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00198621 SPACE 2 00199121 ER2405A EQU * 00199621 USING *,BASREG 00200121 LR BASREG,UCBREG SET BASE REG 00200621 L IOBRG,TSTIOB-C1(TSTREG) GET IOB ADDRESS 00201121 L VECREG,LOC016 GET ADDR. TO VECTOR TABLE 00201621 L ERRETR,VECTXL(VECREG) GET ADDR FOR XCTL RTN 00202121 L DCBREG,IOBDCB-C1(IOBRG) GET ADDR. DCB 00202621 LH UCBREG,TSTUCB(TSTREG) GET UCB ADDRESS 00203121 L ERREG2,RORPTR(UCBREG) GET ROR CCW ADR 00203621 L CCWREG,IOBCSW(IOBRG) GET CCW ADR FROM STATUS 00204121 LA CCWREG,0(CCWREG) GET 3 BYTE ADR 00204621 SH CCWREG,EIGHT SUB 8 00205121 BM ERR025 BR IF CSW ADDR WAS ZERO 00205621 * 00206121 MVC BLOCK(C2,ERREG2),BLOCK(CCWREG) MOVE IN BLOCK LENGTH 00206621 ERR025 EQU * 00207121 L ERREG1,TSTDEB-C1(TSTREG) GET DEB ADDR 00207621 MVC 0(C6,ERREG2),VOLID(UCBREG) MOVE IN VOL ID 00208121 TM UCBFL5(UCBREG),NEWDEV EXTENDED SENSE 00208621 BZ ERR050 BR NO 00209121 MVC MODE(C1,ERREG2),DEBMOD(ERREG1) MOVE IN MODE SET 00209621 ERR050 EQU * 00210121 * 00210621 * GO TO PART 2 IF ENTERED FOR THRESHOLD PRINTOUT FOR EVA 00211121 * 00211621 TM IOBFL3(IOBRG),IOBENT FIRST ENTRY TO ERP 00212121 BO ER2405B BR NO TO PART 2 00212621 OI IOBFL1(IOBRG),IOBEXE SET ERP IN CONTROL 00213121 TM IOBCSW+C4(IOBRG),CHEND IS CHANNEL END ON 00213621 BZ ERR110 BR NO 00214121 TM UCBFL5(UCBREG),NEWDEV NEW DEVICE 00214621 BO ERR100 BR YES 00215121 TM RORPTR(UCBREG),VES VES OPTION 00215621 BZ ERR110 BR NO 00216121 ERR100 EQU * 00216621 LH R4,SIO(ERREG2) GET SIO COUNT 00217121 LA R4,C1(R4) ADD ONE 00217621 STH R4,SIO(ERREG2) STORE BACK 00218121 * 00218621 * FIND THE SDR COUNTER ADDRESS FOR THIS DEVICE 00219121 * 00219621 ERR110 EQU * 00220121 L R8,STATAB(VECREG) ADR OF SDR TABLE 00220621 SR R9,R9 ZERO REG 00221121 IC R9,UCBSTI(UCBREG) GET INDEX 00221621 LR R6,R8 SAVE SDR TABLE ADDR 00222121 ERR120 EQU * 00222621 CH UCBREG,0(R8) SDR AREA SECTION 00223121 BL ERR130 BR YES 00223621 LA R8,C2(R8) INCREMENT TO NEXT SECTION 00224121 LA R9,C256(R9) STEP INDEX 00224621 B ERR120 LOOP 00225121 ERR130 EQU * 00225621 MH R9,X10 TIMES 10 00226121 AR R6,R9 ENTRY FOR THIS UNIT 00226621 ST R6,SDRADR SAVE SDR TABLE ADR 00227121 * 00227621 * TEST FOR NEW DEVICES, AND GET CORRECT SDR COUNTER TABLE FOR 00228121 * THE DEVICE. 00228621 * 00229121 TM UCBFL5(UCBREG),NEWDEV EXTENDED SENSE 00229621 BO ER3420 BR YES 00239621 * 00241621 * DO UPDATE FOR 2400 SDR COUNTERS. 00243621 * 00244021 ER2400 EQU * 00244421 TM IOBCSW+C4(IOBRG),UNCK IS UNIT CK ON 00244521 BZ ER2400A BR NO 00254521 LA R2,TAB2400 ADR OF 2400 SDR DATA TABLE 00256521 BAL ERRLNK,STATUPD GO UPDATE SDR 00258521 * 00258921 * DO A UPDATE TO THE CHANNEL DATA CHECK SDR COUNTER IF 00259321 * THE CHANNEL DATA CHECK BIT IS ON IN STATUS 00259721 * 00259821 ER2400A EQU * 00259921 TM IOBCSW+C5(IOBRG),CHDAT CHAN DATA CK ON IN STATUS 00260021 BZ EXIT BR NO 00260121 SR R5,R5 ZERO R5 00260221 IC R5,CDCNT(R6) GET SDR COUNTER FOR CHAN DATA CK 00260621 LA R5,C1(R5) ADD ONE 00261021 STC R5,CDCNT(R6) STORE BACK 00261121 TM CDCNT(R6),CDFULL IS COUNT FULL 00261221 BNO EXIT BR NO 00261321 OI IOBFL3(IOBRG),OVRFLO SET OVERFLOW BIT ON 00261721 B EXIT EXIT TO LOAD 1 00262121 EJECT 00262521 * 00262921 * DO UPDATE TO SDR COUNTERS FOR NEW DEVICES (3420) 00263321 * 00263721 ER3420 EQU * 00264121 OI 0(R6),SDR20 SET 20 BYTE SDR FLAG 00264521 TM IOBCSW+C4(IOBRG),UNCK UNIT CHECK 00266521 BZ EXIT BR NO 00266921 L R9,UCBNBRSN(UCBREG) ADDR OF EXTENDED SENSE @SA63822 00267021 LA R9,C0(R9) MAKE 3 BYTE ADDRESS @SA69319 00267121 CLI 0(R9),INTREQ INTERVENTION REQ'D ONLY @SA63822 00267221 BE EXIT YES, NO RECORD @SA63822 00317221 LA R2,TAB3420 ADR OF 3420 SDR DATA TABLE 00367221 BAL ERRLNK,STATUPD GO UPDATE SDR 00417221 * 00467221 * DO UPDATE TO SDR COUNTERS FOR PE ID BURST CHECK 00517221 * 00567221 TM PEIDBIT(R3),PEIDER PE ID BURST CK ON 00617221 BZ ER3420A BR NO 00667221 OI SDRPI(R6),ON SET SDR COUNT 00717221 * 00767221 * DO UPDATE TO SDR COUNTERS FOR TRACK IN ERROR BYTE 00817221 * 00867221 ER3420A EQU * 00917221 XC TIE,TIE ZERO WORK AREA 00967221 MVC TIE+C1(C1),C2(R3) MOVE IN TIE BYTE 01017221 CLI TIE+C1,INVAL IS TIE BYTE INVALID @SA63163 01067221 BE EXIT BR YES @SA63163 01117221 TM TIE+C1,FULL IS TIE BYTE ZERO 01167221 BO EXIT BR IF ALL ON @SA63163 01177221 BNZ ER3420C BR IF NOT ZERO 01217221 OI TIE,PARON ZERO - SET PARITY COUNTER 01267221 ER3420C EQU * 01317221 OC SDRPI(C2,R6),TIE PUT IN SDR COUNTER 01367221 * 01417221 EXIT LA ERREG1,LOAD1 ADR OF LOAD 1 01467221 B EVA100 XCTL TO LOAD 1 01517221 EJECT 01567221 *********************************************************************** 01617221 * STAT UPDATE ROUTINE 01667221 * 01717221 * EACH DEVICE TYPE HAS ITS OWN TABLE CONTAINED IN THIS ERP LOAD 01767221 * TO DEFINE ITS OWN S