TITLE 'ISDADCS1 - DATA CARTRIDGE STATISTICS REPORTING *00001000 ' 00002000 ISDADCS1 CSECT , 01S0001 00003000 @MAINENT DS 0H 01S0001 00004000 USING *,@15 01S0001 00005000 B @PROLOG 01S0001 00006000 DC AL1(8) 01S0001 00007000 DC C'ISDADCS1' 01S0001 00008000 DROP @15 00009000 @PROLOG STM @14,@12,12(@13) 01S0001 00010000 BALR @10,0 01S0001 00011000 @PSTART LA @11,4095(,@10) 01S0001 00012000 USING @PSTART,@10 01S0001 00013000 USING @PSTART+4095,@11 01S0001 00014000 L @00,@SIZDATD 01S0001 00015000 ISDAGSPC R,LV=(0) 00016000 LR @12,@01 01S0001 00017000 USING @DATD,@12 01S0001 00018000 ST @13,@SA00001+4 01S0001 00019000 LM @00,@01,20(@13) 01S0001 00020000 ST @12,8(,@13) 01S0001 00021000 LR @13,@12 01S0001 00022000 MVC @PC00001(4),0(@01) 01S0001 00023000 * 01S0035 00024000 */* %WORKAREL='LENGTH(WORKAREA)' @Y30LB56*/ 00025000 * 01S0036 00026000 * CVTPTR=WORKPTR; /* SAVE POINTER TO CVT @Y30LB56*/ 00027000 L @09,@PC00001 01S0036 00028000 L CVTPTR,WORKPTR(,@09) 01S0036 00029000 * RETCODE=0; /* INITIALIZE RETURN CODE@Y30LB56*/ 00030000 SLR @09,@09 01S0037 00031000 STH @09,RETCODE 01S0037 00032000 * GET0PTR=GET0PSV; /* RESTORE CURRENT WORKAREA PTR 00033000 * @Y30LB56*/ 00034000 L @04,DCS00PTR(,CVTPTR) 01S0038 00035000 L GET0PTR,GET0PSV(,@04) 01S0038 00036000 * GET0INDX=DCS00PTR->STARTPTR; /* POINT TO FIRST DCS ENTRY 01S0039 00037000 * @Y30LB56*/ 00038000 L GET0INDX,STARTPTR(,@04) 01S0039 00039000 * GET0NEXT=GET0XSV; /* RESTORE CURRENT WORKAREA INDEX 00040000 * @Y30LB56*/ 00041000 L @09,GET0XSV(,@04) 01S0040 00042000 ST @09,GET0NEXT 01S0040 00043000 * LPARMPTR=PARMPTR; /* SET POINTER TO SDA PARMS 01S0041 00044000 * @Y30LB56*/ 00045000 L LPARMPTR,PARMPTR(,CVTPTR) 01S0041 00046000 * 02S0042 00047000 * /*****************************************************************/ 00048000 * /* */ 00049000 * /* INSURE THAT SPACE IS AVAILABLE IN WORKAREA FOR SSID/RATIOS, */ 00050000 * /* WORK SPACE, AND AT LEAST ONE TOTALS ACCUMULATOR. */ 00051000 * /* */ 00052000 * /*****************************************************************/ 00053000 * 02S0042 00054000 * IF GET0LEN<((GET0NEXT+LENGTH(SSIDX)+LENGTH(WORKAREA)+LENGTH(TOT 00055000 *LS))-GET0PTR) THEN 02S0042 00056000 AH @09,@CH00568 02S0042 00057000 SLR @09,GET0PTR 02S0042 00058000 SLR @04,@04 02S0042 00059000 ICM @04,7,GET0LEN(GET0PTR) 02S0042 00060000 CR @09,@04 02S0042 00061000 BNH @RF00042 02S0042 00062000 * CALL GETMORE; /* ASK FOR ANOTHER WORKAREA 02S0043 00063000 * @Y30LB56*/ 00064000 BAL @14,GETMORE 02S0043 00065000 * ELSE 02S0044 00066000 * ; /* ENOUGH WORKAREA STILL AVAIL 00067000 * @Y30LB56*/ 00068000 @RF00042 DS 0H 02S0045 00069000 * IF RETCODE=0 THEN /* BUILD ACCUMULATOR @Y30LB56*/ 00070000 ICM @09,3,RETCODE 02S0045 00071000 BNZ @RF00045 02S0045 00072000 * DO; /*@Y30LB56*/ 00073000 * TOTX1=GET0NEXT; /* POINT TO START OF WORKAREA 00074000 * @Y30LB56*/ 00075000 L TOTX1,GET0NEXT 02S0047 00076000 * SSIDX=SSIDX&&SSIDX; /* CLEAR SSID RATIO LOOKUP TBL 00077000 * @Y30LB56*/ 00078000 XC SSIDX(64,TOTX1),SSIDX(TOTX1) 02S0048 00079000 * TOTSTART=TOTX1+LENGTH(SSIDX)+LENGTH(WORKAREA);/* 02S0049 00080000 * START @Y30LB56*/ 00081000 LA @09,96 02S0049 00082000 ALR @09,TOTX1 02S0049 00083000 ST @09,TOTSTART(,TOTX1) 02S0049 00084000 * GET0NEXT=TOTSTART; /* POINT TO NEXT SLOT IN WORKAREA 00085000 * @Y30LB56*/ 00086000 ST @09,GET0NEXT 02S0050 00087000 * TOTSW='00'X; /* SET FIRST PASS SWITCH @Y30LB56*/ 00088000 MVI TOTSW(TOTX1),X'00' 02S0051 00089000 * DO WHILE(GET0INDX^=0&RETCODE=0); /*@Y30LB56*/ 00090000 B @DE00052 02S0052 00091000 @DL00052 DS 0H 02S0053 00092000 * TOTX2=TOTSTART; /* RESET PTR TO FIRST ACCUMULATOR 00093000 * @Y30LB56*/ 00094000 * 02S0053 00095000 L TOTX2,TOTSTART(,TOTX1) 02S0053 00096000 * /***********************************************************/ 00097000 * /* */ 00098000 * /* SAVE HIGHEST ERROR/USAGE=RATIO FOR THIS SSID */ 00099000 * /* */ 00100000 * /***********************************************************/ 00101000 * 02S0054 00102000 * IF SNSSID(1:4)='0010'B THEN/* THIS IS A DRD SSID @Y30LB56*/ 00103000 TM SNSSID(GET0INDX),B'00000010' 02S0054 00104000 BNO @RF00054 02S0054 00105000 TM SNSSID(GET0INDX),B'00001101' 02S0054 00106000 BNZ @RF00054 02S0054 00107000 * DO; /*@Y30LB56*/ 00108000 * WORKVAR=SNSSID(5:12); /* BUILD TABLE LOOKUP INDEX 02S0056 00109000 * @Y30LB56*/ 00110000 SLR WORKVAR,WORKVAR 02S0056 00111000 IC WORKVAR,SNSSID+1(,GET0INDX) 02S0056 00112000 * WORKVAR=WORKVAR+1; /* ADD 1 FOR SSID 00 @ZM31053*/ 00113000 AH WORKVAR,@CH00084 02S0057 00114000 * IF SNSRDRAT>SSIDR(WORKVAR) THEN/* SAVE IT @Y30LB56*/ 00115000 SLR @09,@09 02S0058 00116000 IC @09,SNSRDRAT(,GET0INDX) 02S0058 00117000 LR @07,TOTX1 02S0058 00118000 AL @07,@CF00573 02S0058 00119000 SLR @15,@15 02S0058 00120000 IC @15,SSIDR(WORKVAR,@07) 02S0058 00121000 CR @09,@15 02S0058 00122000 BNH @RF00058 02S0058 00123000 * SSIDR(WORKVAR)=SNSRDRAT; /*@Y30LB56*/ 00124000 LR @07,TOTX1 02S0059 00125000 AL @07,@CF00573 02S0059 00126000 STC @09,SSIDR(WORKVAR,@07) 02S0059 00127000 * ELSE 02S0060 00128000 * ; /* KEEP THE PRESENT RATIO@Y30LB56*/ 00129000 @RF00058 DS 0H 02S0061 00130000 * IF SNSWRAT>SSIDR(WORKVAR) THEN/* SAVE IT @Y30LB56*/ 00131000 SLR @09,@09 02S0061 00132000 IC @09,SNSWRAT(,GET0INDX) 02S0061 00133000 LR @07,TOTX1 02S0061 00134000 AL @07,@CF00573 02S0061 00135000 SLR @15,@15 02S0061 00136000 IC @15,SSIDR(WORKVAR,@07) 02S0061 00137000 CR @09,@15 02S0061 00138000 BNH @RF00061 02S0061 00139000 * SSIDR(WORKVAR)=SNSWRAT; /*@Y30LB56*/ 00140000 LR @07,TOTX1 02S0062 00141000 AL @07,@CF00573 02S0062 00142000 STC @09,SSIDR(WORKVAR,@07) 02S0062 00143000 * ELSE 02S0063 00144000 * ; /* KEEP THE PRESENT RATIO@Y30LB56*/ 00145000 @RF00061 DS 0H 02S0064 00146000 * END; /*@Y30LB56*/ 00147000 * ELSE 02S0065 00148000 * ; /* SSID IS NOT FOR A DRD @Y30LB56*/ 00149000 * 02S0065 00150000 @RF00054 DS 0H 02S0066 00151000 * /***********************************************************/ 00152000 * /* */ 00153000 * /* BUILD CSN TOTALS ACCUMULATOR */ 00154000 * /* */ 00155000 * /***********************************************************/ 00156000 * 02S0066 00157000 * IF TOTSW='00'X THEN /* BUILD FIRST ACCUMULATOR 02S0066 00158000 * @Y30LB56*/ 00159000 CLI TOTSW(TOTX1),X'00' 02S0066 00160000 BNE @RF00066 02S0066 00161000 * DO; /*@Y30LB56*/ 00162000 * TOTSW='10'X; /* INDICATE FIRST ACCUM BUILT 00163000 * @Y30LB56*/ 00164000 MVI TOTSW(TOTX1),X'10' 02S0068 00165000 * 03S0069 00166000 * /*****************************************************************/ 00167000 * /* */ 00168000 * /* COPY NEW DCS ENTRY INTO AN ACCUMULATOR */ 00169000 * /* */ 00170000 * /*****************************************************************/ 00171000 * 03S0069 00172000 * TOTCHAIN=0; /* ZERO CHAIN POINTER @Y30LB56*/ 00173000 SLR @09,@09 03S0069 00174000 ST @09,TOTCHAIN(,TOTX2) 03S0069 00175000 * DCSN=SNSCSN; /* COPY DATA CARTRIDGE SERIAL NO. 00176000 * @Y30LB56*/ 00177000 MVC DCSN(12,TOTX2),SNSCSN(GET0INDX) 03S0070 00178000 * OLDEST=GET0INDX; /* SET PTR TO OLDEXT ENTR /CART 00179000 * @Y30LB56*/ 00180000 ST GET0INDX,OLDEST(,TOTX2) 03S0071 00181000 * NEWEST=GET0INDX; /* SET PTR TO NEWEST ENTRY/CART 00182000 * @Y30LB56*/ 00183000 ST GET0INDX,NEWEST(,TOTX2) 03S0072 00184000 * TOTRDUC=SNSRDUC; /* SET READ USAGE ACCUMULATOR 00185000 * @Y30LB56*/ 00186000 SLR @09,@09 03S0073 00187000 ICM @09,3,SNSRDUC(GET0INDX) 03S0073 00188000 ST @09,TOTRDUC(,TOTX2) 03S0073 00189000 * TOTRDCK=SNSRDCK; /* SET READ CHECK ACCUMULATOR 00190000 * @Y30LB56*/ 00191000 SLR @09,@09 03S0074 00192000 ICM @09,3,SNSRDCK(GET0INDX) 03S0074 00193000 ST @09,TOTRDCK(,TOTX2) 03S0074 00194000 * TOTWRUC=SNSWRUC; /* SET WRITE USAGE ACCUMULATOR 00195000 * @Y30LB56*/ 00196000 SLR @09,@09 03S0075 00197000 ICM @09,3,SNSWRUC(GET0INDX) 03S0075 00198000 ST @09,TOTWRUC(,TOTX2) 03S0075 00199000 * TOTWRCK=SNSWRCK; /* SET WRITE CHECK ACCUMULATOR 00200000 * @Y30LB56*/ 00201000 SLR @09,@09 03S0076 00202000 ICM @09,3,SNSWRCK(GET0INDX) 03S0076 00203000 ST @09,TOTWRCK(,TOTX2) 03S0076 00204000 * TOTNUM='01'X; /* SET NUMBER OF DCS ENTRIES 00205000 * @Y30LB56*/ 00206000 MVI TOTNUM(TOTX2),X'01' 03S0077 00207000 * GET0NEXT=GET0NEXT+LENGTH(TOTALS);/* 03S0078 00208000 * ADVANCE TO NEXT ACCUM @Y30LB56*/ 00209000 LA @09,52 03S0078 00210000 AL @09,GET0NEXT 03S0078 00211000 ST @09,GET0NEXT 03S0078 00212000 * END; /*@Y30LB56*/ 00213000 * ELSE /* LOCATE ACCUMULATOR TO MATCH 00214000 * DCS @Y30LB56*/ 00215000 * DO; /*@Y30LB56*/ 00216000 B @RC00066 02S0080 00217000 @RF00066 DS 0H 02S0081 00218000 * SORTX=TOTX2; /* SAVE FOR CHAINING @Y30LB56*/ 00219000 LR SORTX,TOTX2 02S0081 00220000 * DO WHILE(TOTX2^=0&SNSCSN^=DCSN);/* LOOK FOR CSN MATCH 00221000 * @Y30LB56*/ 00222000 B @DE00082 02S0082 00223000 @DL00082 DS 0H 02S0083 00224000 * SORTX=TOTX2; /* SAVE TOTX2 FOR CHAINING 02S0083 00225000 * @Y30LB56*/ 00226000 LR SORTX,TOTX2 02S0083 00227000 * TOTX2=TOTCHAIN; /* GET POINTER TO NEXT ACCUM 00228000 * @Y30LB56*/ 00229000 L TOTX2,TOTCHAIN(,TOTX2) 02S0084 00230000 * END; /*@Y30LB56*/ 00231000 @DE00082 LTR TOTX2,TOTX2 02S0085 00232000 BZ @DC00082 02S0085 00233000 CLC SNSCSN(12,GET0INDX),DCSN(TOTX2) 02S0085 00234000 BNE @DL00082 02S0085 00235000 @DC00082 DS 0H 02S0086 00236000 * IF TOTX2^=0 THEN /* DCS ENTRY MATCHES ACCUMULATOR 00237000 * @Y30LB56*/ 00238000 LTR TOTX2,TOTX2 02S0086 00239000 BZ @RF00086 02S0086 00240000 * DO; /*@Y30LB56*/ 00241000 * NEWEST=GET0INDX; /* SET PTR TO NEWEST ENTRY/CART 00242000 * @Y30LB56*/ 00243000 ST GET0INDX,NEWEST(,TOTX2) 02S0088 00244000 * I=1073700000; /* SET COUNTER LIMIT @Y30LB56*/ 00245000 L I,@CF00508 02S0089 00246000 * IF TOTRDUC0&TOTNUM<255 THEN 02S0098 00290000 CLI TOTNUM(TOTX2),0 02S0098 00291000 BNH @RF00098 02S0098 00292000 CLI TOTNUM(TOTX2),255 02S0098 00293000 BNL @RF00098 02S0098 00294000 * TOTNUM=TOTNUM+1;/* ADVANCE CSN COUNTER @Y30LB56*/ 00295000 LA @09,1 02S0099 00296000 SLR @15,@15 02S0099 00297000 IC @15,TOTNUM(,TOTX2) 02S0099 00298000 ALR @09,@15 02S0099 00299000 STC @09,TOTNUM(,TOTX2) 02S0099 00300000 * ELSE 02S0100 00301000 * TOTNUM='00'X; /* INDICATE MORE THAT 255@Y30LB56*/ 00302000 B @RC00098 02S0100 00303000 @RF00098 MVI TOTNUM(TOTX2),X'00' 02S0100 00304000 * END; /*@Y30LB56*/ 00305000 * ELSE /* DCS CSN NOT YET IN ACCUMULATOR 00306000 * @Y30LB56*/ 00307000 * DO; /*@Y30LB56*/ 00308000 B @RC00086 02S0102 00309000 @RF00086 DS 0H 02S0103 00310000 * IF GET0LEN<((GET0NEXT+LENGTH(TOTALS))-GET0PTR) THEN 00311000 LA @09,52 02S0103 00312000 AL @09,GET0NEXT 02S0103 00313000 SLR @09,GET0PTR 02S0103 00314000 SLR @07,@07 02S0103 00315000 ICM @07,7,GET0LEN(GET0PTR) 02S0103 00316000 CR @09,@07 02S0103 00317000 BNH @RF00103 02S0103 00318000 * CALL GETMORE; /* ASK FOR MORE WORKAREA @Y30LB56*/ 00319000 BAL @14,GETMORE 02S0104 00320000 * ELSE 02S0105 00321000 * ; /* ENOUGH WORKAREA STILL @Y30LB56 00322000 * AVAILABLE @Y30LB56*/ 00323000 @RF00103 DS 0H 02S0106 00324000 * IF RETCODE=0 THEN /* BUILD ACCUMULATORS @Y30LB56*/ 00325000 SLR @09,@09 02S0106 00326000 CH @09,RETCODE 02S0106 00327000 BNE @RF00106 02S0106 00328000 * DO; /*@Y30LB56*/ 00329000 * SORTX->TOTCHAIN=GET0NEXT;/* CHAIN TO NEW ACCUM 00330000 * @Y30LB56*/ 00331000 L @07,GET0NEXT 02S0108 00332000 ST @07,TOTCHAIN(,SORTX) 02S0108 00333000 * TOTX2=GET0NEXT;/* INDEX NEXT ACCUMULATOR SLOT 00334000 * @Y30LB56*/ 00335000 LR TOTX2,@07 02S0109 00336000 * 03S0110 00337000 * /*****************************************************************/ 00338000 * /* */ 00339000 * /* COPY NEW DCS ENTRY INTO AN ACCUMULATOR */ 00340000 * /* */ 00341000 * /*****************************************************************/ 00342000 * 03S0110 00343000 * TOTCHAIN=0; /* ZERO CHAIN POINTER @Y30LB56*/ 00344000 ST @09,TOTCHAIN(,TOTX2) 03S0110 00345000 * DCSN=SNSCSN; /* COPY DATA CARTRIDGE SERIAL NO. 00346000 * @Y30LB56*/ 00347000 MVC DCSN(12,TOTX2),SNSCSN(GET0INDX) 03S0111 00348000 * OLDEST=GET0INDX; /* SET PTR TO OLDEXT ENTR /CART 00349000 * @Y30LB56*/ 00350000 ST GET0INDX,OLDEST(,TOTX2) 03S0112 00351000 * NEWEST=GET0INDX; /* SET PTR TO NEWEST ENTRY/CART 00352000 * @Y30LB56*/ 00353000 ST GET0INDX,NEWEST(,TOTX2) 03S0113 00354000 * TOTRDUC=SNSRDUC; /* SET READ USAGE ACCUMULATOR 00355000 * @Y30LB56*/ 00356000 SLR @09,@09 03S0114 00357000 ICM @09,3,SNSRDUC(GET0INDX) 03S0114 00358000 ST @09,TOTRDUC(,TOTX2) 03S0114 00359000 * TOTRDCK=SNSRDCK; /* SET READ CHECK ACCUMULATOR 00360000 * @Y30LB56*/ 00361000 SLR @09,@09 03S0115 00362000 ICM @09,3,SNSRDCK(GET0INDX) 03S0115 00363000 ST @09,TOTRDCK(,TOTX2) 03S0115 00364000 * TOTWRUC=SNSWRUC; /* SET WRITE USAGE ACCUMULATOR 00365000 * @Y30LB56*/ 00366000 SLR @09,@09 03S0116 00367000 ICM @09,3,SNSWRUC(GET0INDX) 03S0116 00368000 ST @09,TOTWRUC(,TOTX2) 03S0116 00369000 * TOTWRCK=SNSWRCK; /* SET WRITE CHECK ACCUMULATOR 00370000 * @Y30LB56*/ 00371000 SLR @09,@09 03S0117 00372000 ICM @09,3,SNSWRCK(GET0INDX) 03S0117 00373000 ST @09,TOTWRCK(,TOTX2) 03S0117 00374000 * TOTNUM='01'X; /* SET NUMBER OF DCS ENTRIES 00375000 * @Y30LB56*/ 00376000 MVI TOTNUM(TOTX2),X'01' 03S0118 00377000 * GET0NEXT=GET0NEXT+LENGTH(TOTALS);/* 03S0119 00378000 * ADVANCE TO NEXT ACCUM @Y30LB56*/ 00379000 AH @07,@CH00462 03S0119 00380000 ST @07,GET0NEXT 03S0119 00381000 * END; /*@Y30LB56*/ 00382000 * ELSE 02S0121 00383000 * ; /*@Y30LB56*/ 00384000 @RF00106 DS 0H 02S0122 00385000 * END; /*@Y30LB56*/ 00386000 * END; /*@Y30LB56*/ 00387000 @RC00086 DS 0H 02S0124 00388000 * GET0INDX=CHAINPTR; /* PROCESS NEXT DCS ENTRY@Y30LB56*/ 00389000 @RC00066 L GET0INDX,CHAINPTR(,GET0INDX) 02S0124 00390000 * END; /*@Y30LB56*/ 00391000 @DE00052 SLR @09,@09 02S0125 00392000 CR GET0INDX,@09 02S0125 00393000 BE @DC00052 02S0125 00394000 CH @09,RETCODE 02S0125 00395000 BE @DL00052 02S0125 00396000 @DC00052 DS 0H 02S0126 00397000 * IF RETCODE=0 THEN /* WORKAREA IS STILL AVAILABLE 00398000 * @Y30LB56*/ 00399000 ICM @15,3,RETCODE 02S0126 00400000 BNZ @RF00126 02S0126 00401000 * DO; /*@Y30LB56*/ 00402000 * 03S0128 00403000 * /*****************************************************************/ 00404000 * /* */ 00405000 * /* CALCULATE USAGE AND ERROR TOTALS */ 00406000 * /* */ 00407000 * /*****************************************************************/ 00408000 * 03S0128 00409000 * TOTX2=TOTSTART; /* RESET PTR TO FIRST ACCUMULATOR 00410000 * @Y30LB56*/ 00411000 L TOTX2,TOTSTART(,TOTX1) 03S0128 00412000 * DO WHILE(TOTX2^=0); /* DO UNTIL TOTX2=0 @Y30LB56*/ 00413000 B @DE00129 03S0129 00414000 @DL00129 DS 0H 03S0130 00415000 * TOTALUSE=TOTRDUC+TOTWRUC; /* TOTAL USAGE @Y30LB56*/ 00416000 L @05,TOTRDUC(,TOTX2) 03S0130 00417000 LR @15,@05 03S0130 00418000 AL @15,TOTWRUC(,TOTX2) 03S0130 00419000 ST @15,TOTALUSE(,TOTX2) 03S0130 00420000 * TOTALERR=TOTRDCK+TOTWRCK; /* TOTAL ERRORS @Y30LB56*/ 00421000 L @15,TOTRDCK(,TOTX2) 03S0131 00422000 LR @14,@15 03S0131 00423000 AL @14,TOTWRCK(,TOTX2) 03S0131 00424000 ST @14,TOTALERR(,TOTX2) 03S0131 00425000 * IF TOTRDUC .99 @Y30LB56*/ 00426000 CLR @05,@15 03S0132 00427000 BNL @RF00132 03S0132 00428000 * RDRATIO='FF'X; /*@Y30LB56*/ 00429000 MVI RDRATIO(TOTX2),X'FF' 03S0133 00430000 * ELSE 03S0134 00431000 * DO; /*@Y30LB56*/ 00432000 B @RC00132 03S0134 00433000 @RF00132 DS 0H 03S0135 00434000 * IF TOTRDUC=0 THEN /* NO RATIO @Y30LB56*/ 00435000 ICM @05,15,TOTRDUC(TOTX2) 03S0135 00436000 BNZ @RF00135 03S0135 00437000 * RDRATIO=0; /*@Y30LB56*/ 00438000 MVI RDRATIO(TOTX2),X'00' 03S0136 00439000 * ELSE /* CALCULATE RATIO @Y30LB56*/ 00440000 * RDRATIO=(TOTRDCK*100)/TOTRDUC;/* READ RATIO @Y30LB56*/ 00441000 B @RC00135 03S0137 00442000 @RF00135 L @05,TOTRDCK(,TOTX2) 03S0137 00443000 MH @05,@CH00511 03S0137 00444000 LR @01,@05 03S0137 00445000 SLR @00,@00 03S0137 00446000 D @00,TOTRDUC(,TOTX2) 03S0137 00447000 STC @01,RDRATIO(,TOTX2) 03S0137 00448000 * END; /*@Y30LB56*/ 00449000 @RC00135 DS 0H 03S0139 00450000 * IF TOTWRUC .99 @Y30LB56*/ 00451000 @RC00132 CLC TOTWRUC(4,TOTX2),TOTWRCK(TOTX2) 03S0139 00452000 BNL @RF00139 03S0139 00453000 * WRATIO='FF'X; /*@Y30LB56*/ 00454000 MVI WRATIO(TOTX2),X'FF' 03S0140 00455000 * ELSE 03S0141 00456000 * DO; /*@Y30LB56*/ 00457000 B @RC00139 03S0141 00458000 @RF00139 DS 0H 03S0142 00459000 * IF TOTWRUC=0 THEN /* NO RATIO @Y30LB56*/ 00460000 ICM @05,15,TOTWRUC(TOTX2) 03S0142 00461000 BNZ @RF00142 03S0142 00462000 * WRATIO=0; /*@Y30LB56*/ 00463000 MVI WRATIO(TOTX2),X'00' 03S0143 00464000 * ELSE /* CALCULATE RATIO @Y30LB56*/ 00465000 * WRATIO=(TOTWRCK*100)/TOTWRUC;/* WRITE RATIO @Y30LB56*/ 00466000 B @RC00142 03S0144 00467000 @RF00142 L @05,TOTWRCK(,TOTX2) 03S0144 00468000 MH @05,@CH00511 03S0144 00469000 LR @01,@05 03S0144 00470000 SLR @00,@00 03S0144 00471000 D @00,TOTWRUC(,TOTX2) 03S0144 00472000 STC @01,WRATIO(,TOTX2) 03S0144 00473000 * END; /*@Y30LB56*/ 00474000 @RC00142 DS 0H 03S0146 00475000 * IF TOTALUSE .99 @Y30LB56*/ 00476000 @RC00139 CLC TOTALUSE(4,TOTX2),TOTALERR(TOTX2) 03S0146 00477000 BNL @RF00146 03S0146 00478000 * TOTRATIO='FF'X; /*@Y30LB56*/ 00479000 MVI TOTRATIO(TOTX2),X'FF' 03S0147 00480000 * ELSE 03S0148 00481000 * DO; /*@Y30LB56*/ 00482000 B @RC00146 03S0148 00483000 @RF00146 DS 0H 03S0149 00484000 * IF TOTALUSE=0 THEN /* NO RATIO @Y30LB56*/ 00485000 ICM @05,15,TOTALUSE(TOTX2) 03S0149 00486000 BNZ @RF00149 03S0149 00487000 * TOTRATIO=0; /*@Y30LB56*/ 00488000 MVI TOTRATIO(TOTX2),X'00' 03S0150 00489000 * ELSE /* CALCULATE RATIO @Y30LB56*/ 00490000 * TOTRATIO=(TOTALERR*100)/TOTALUSE;/* TOTAL RATIO @Y30LB56*/ 00491000 B @RC00149 03S0151 00492000 @RF00149 L @05,TOTALERR(,TOTX2) 03S0151 00493000 MH @05,@CH00511 03S0151 00494000 LR @01,@05 03S0151 00495000 SLR @00,@00 03S0151 00496000 D @00,TOTALUSE(,TOTX2) 03S0151 00497000 STC @01,TOTRATIO(,TOTX2) 03S0151 00498000 * END; /*@Y30LB56*/ 00499000 @RC00149 DS 0H 03S0153 00500000 * TOTX2=TOTCHAIN; /* POINT TO NEXT ACCUMULATOR 00501000 * @Y30LB56*/ 00502000 @RC00146 L TOTX2,TOTCHAIN(,TOTX2) 03S0153 00503000 * END; /*@Y30LB56*/ 00504000 * 03S0154 00505000 @DE00129 LTR TOTX2,TOTX2 03S0154 00506000 BNZ @DL00129 03S0154 00507000 * /*****************************************************************/ 00508000 * /* */ 00509000 * /* SORT TOTAL ACCUMULATORS IN HIGHEST 'ERROR/USAGE=RATIO' FIRST */ 00510000 * /* SEQUENCE */ 00511000 * /* */ 00512000 * /*****************************************************************/ 00513000 * 03S0155 00514000 * TOTSW='00'X; /* INDICATE SORT REQUIRED@Y30LB56*/ 00515000 MVI TOTSW(TOTX1),X'00' 03S0155 00516000 * DO WHILE(TOTSW='00'X); /*@Y30LB56*/ 00517000 B @DE00156 03S0156 00518000 @DL00156 DS 0H 03S0157 00519000 * WORKX1=ADDR(TOTSTART); /*@Y30LB56*/ 00520000 LA WORKX1,TOTSTART(,TOTX1) 03S0157 00521000 * TOTX2=TOTSTART; /*@Y30LB56*/ 00522000 L TOTX2,TOTSTART(,TOTX1) 03S0158 00523000 * WORKX2=TOTX2; /*@Y30LB56*/ 00524000 LR WORKX2,TOTX2 03S0159 00525000 * TOTX2=TOTCHAIN; /*@Y30LB56*/ 00526000 L TOTX2,TOTCHAIN(,TOTX2) 03S0160 00527000 * DO WHILE(TOTX2^=0); /*@Y30LB56*/ 00528000 B @DE00161 03S0161 00529000 @DL00161 DS 0H 03S0162 00530000 * IF WORKX2->TOTRATIOTOTCHAIN=WORKX2->TOTCHAIN;/* UPDATE TOTCHAIN 00537000 * @Y30LB56*/ 00538000 MVC TOTCHAIN(4,WORKX1),TOTCHAIN(WORKX2) 03S0165 00539000 * WORKX2->TOTCHAIN=TOTCHAIN; /*@Y30LB56*/ 00540000 L @06,TOTCHAIN(,TOTX2) 03S0166 00541000 ST @06,TOTCHAIN(,WORKX2) 03S0166 00542000 * TOTCHAIN=WORKX2; /*@Y30LB56*/ 00543000 ST WORKX2,TOTCHAIN(,TOTX2) 03S0167 00544000 * WORKX1=TOTX2; /* ADVANCE POINTERS @Y30LB56*/ 00545000 LR WORKX1,TOTX2 03S0168 00546000 * TOTX2=WORKX2->TOTCHAIN; /*@Y30LB56*/ 00547000 LR TOTX2,@06 03S0169 00548000 * END; /*@Y30LB56*/ 00549000 * ELSE /* ENTRIES IN SEQUENCE @Y30LB56*/ 00550000 * DO; /*@Y30LB56*/ 00551000 B @RC00162 03S0171 00552000 @RF00162 DS 0H 03S0172 00553000 * WORKX1=WORKX2; /* ADVANCE POINTERS @Y30LB56*/ 00554000 LR WORKX1,WORKX2 03S0172 00555000 * WORKX2=TOTX2; /*@Y30LB56*/ 00556000 LR WORKX2,TOTX2 03S0173 00557000 * TOTX2=TOTCHAIN; /*@Y30LB56*/ 00558000 L TOTX2,TOTCHAIN(,TOTX2) 03S0174 00559000 * END; /*@Y30LB56*/ 00560000 * END; /* END OF ONE PASS OF SORT 03S0176 00561000 * @Y30LB56*/ 00562000 @RC00162 DS 0H 03S0176 00563000 @DE00161 LTR TOTX2,TOTX2 03S0176 00564000 BNZ @DL00161 03S0176 00565000 * TOTSW=TOTSW&&'01'X; /* INVERT SORT SWITCH @Y30LB56*/ 00566000 XI TOTSW(TOTX1),X'01' 03S0177 00567000 * END; /* END ALL PASSES OF SORT@Y30LB56 00568000 * @Y30LB56*/ 00569000 @DE00156 CLI TOTSW(TOTX1),X'00' 03S0178 00570000 BE @DL00156 03S0178 00571000 * CALL NEWPAGE; /* OUTPUT FIRST PAGE HEADING 00572000 * @Y30LB56*/ 00573000 * 03S0179 00574000 BAL @14,NEWPAGE 03S0179 00575000 * /*****************************************************************/ 00576000 * /* */ 00577000 * /* DETERMINE IF ANY REPORT IS TO BE OUTPUT */ 00578000 * /* */ 00579000 * /*****************************************************************/ 00580000 * 03S0180 00581000 * TOTX2=TOTSTART; /*@Y30LB56*/ 00582000 L TOTX2,TOTSTART(,TOTX1) 03S0180 00583000 * CVD(TOTRATIO,CVDOUT); /*@Y30LB56*/ 00584000 SLR @05,@05 03S0181 00585000 IC @05,TOTRATIO(,TOTX2) 03S0181 00586000 CVD @05,CVDOUT(,TOTX1) 03S0181 00587000 * UNPK(UNPKOUT(1:2),UNPKIN(3:4)); /* BUILD TOTAL RATIO @Y30LB56*/ 00588000 UNPK UNPKOUT(2,TOTX1),UNPKIN+2(2,TOTX1) 03S0182 00589000 * UNPKOUT(2)=UNPKOUT(2)|'F0'X; /* FOR OPTION COMPARE @Y30LB56*/ 00590000 OI UNPKOUT+1(TOTX1),X'F0' 03S0183 00591000 * IF UNPKOUT(1:2)9&LINECNT+TOTNUM+3>58 THEN 03S0198 00637000 CLI LINECNT(TOTX1),9 03S0198 00638000 BNH @RF00198 03S0198 00639000 SLR @05,@05 03S0198 00640000 IC @05,LINECNT(,TOTX1) 03S0198 00641000 SLR @15,@15 03S0198 00642000 IC @15,TOTNUM(,TOTX2) 03S0198 00643000 ALR @05,@15 03S0198 00644000 AH @05,@CH00088 03S0198 00645000 CH @05,@CH00518 03S0198 00646000 BNH @RF00198 03S0198 00647000 * CALL NEWPAGE; /* START THIS CSN ON NEW PAGE 00648000 * @Y30LB56*/ 00649000 BAL @14,NEWPAGE 03S0199 00650000 * ELSE 03S0200 00651000 * ; /* CSN WILL FIT ON CURRENT PAGE 00652000 * @Y30LB56*/ 00653000 @RF00198 DS 0H 03S0201 00654000 * GET0INDX=OLDEST; /* POINT TO FIRST DCS ENTRY 03S0201 00655000 * @Y30LB56*/ 00656000 L GET0INDX,OLDEST(,TOTX2) 03S0201 00657000 * OLDATE=ADATE; /* SAVE DATE @Y30LB56*/ 00658000 MVC OLDATE(4,TOTX1),ADATE(GET0INDX) 03S0202 00659000 * DO WHILE(GET0INDX^=0); /*@Y30LB56*/ 00660000 B @DE00203 03S0203 00661000 @DL00203 DS 0H 03S0204 00662000 * 04S0204 00663000 * /*****************************************************************/ 00664000 * /* */ 00665000 * /* OUTPUT DETAIL REPORT LINE */ 00666000 * /* */ 00667000 * /*****************************************************************/ 00668000 * 04S0204 00669000 * OUTLINE=' '; /* CLEAR OUTPUT LINE @Y30LB56*/ 00670000 MVI OUTLINE+1(CVTPTR),C' ' 04S0204 00671000 MVC OUTLINE+2(131,CVTPTR),OUTLINE+1(CVTPTR) 04S0204 00672000 MVI OUTLINE(CVTPTR),C' ' 04S0204 00673000 * IF GET0INDX=OLDEST|LINECNT=9 THEN/* NEW CSN OR PAGE @Y30LB56*/ 00674000 C GET0INDX,OLDEST(,TOTX2) 04S0205 00675000 BE @RT00205 04S0205 00676000 CLI LINECNT(TOTX1),9 04S0205 00677000 BNE @RF00205 04S0205 00678000 @RT00205 DS 0H 04S0206 00679000 * DO; /*@Y30LB56*/ 00680000 * LINSER=SNSCSN; /* SETUP CSN @Y30LB56*/ 00681000 MVC LINSER(12,CVTPTR),SNSCSN(GET0INDX) 04S0207 00682000 * IF GET0INDX^=OLDEST THEN /* CONTINUATION PAGE @Y30LB56*/ 00683000 C GET0INDX,OLDEST(,TOTX2) 04S0208 00684000 BE @RF00208 04S0208 00685000 * LINECONT='(CONTINUED)'; /*@Y30LB56*/ 00686000 MVC LINECONT(11,CVTPTR),@CC00519 04S0209 00687000 * ELSE 04S0210 00688000 * ; /* THIS IS FIRST PG FOR THIS CART 00689000 * @Y30LB56*/ 00690000 @RF00208 DS 0H 04S0211 00691000 * END; /*@Y30LB56*/ 00692000 * ELSE 04S0212 00693000 * ; /* OMIT CSN @Y30LB56*/ 00694000 @RF00205 DS 0H 04S0213 00695000 * IF GET0INDX=OLDEST|LINECNT=9|OLDATE^=ADATE THEN 04S0213 00696000 C GET0INDX,OLDEST(,TOTX2) 04S0213 00697000 BE @RT00213 04S0213 00698000 CLI LINECNT(TOTX1),9 04S0213 00699000 BE @RT00213 04S0213 00700000 CLC OLDATE(4,TOTX1),ADATE(GET0INDX) 04S0213 00701000 BE @RF00213 04S0213 00702000 @RT00213 DS 0H 04S0214 00703000 * DO; /*@Y30LB56*/ 00704000 * UNPK(UNPKOUT(1:5),ADATE); /* MAKE DATE PRINTABLE @Y30LB56*/ 00705000 UNPK UNPKOUT(5,TOTX1),ADATE(4,GET0INDX) 04S0215 00706000 * UNPKOUT(5)=UNPKOUT(5)|'F0'X; /*@Y30LB56*/ 00707000 OI UNPKOUT+4(TOTX1),X'F0' 04S0216 00708000 * LINDATE(1:3)=UNPKOUT(3:5); /* DDD/YY @Y30LB56*/ 00709000 MVC LINDATE(3,CVTPTR),UNPKOUT+2(TOTX1) 04S0217 00710000 * OLDATE=ADATE; /* SAVE TO SUPRESS SAME DATE 00711000 * @Y30LB56*/ 00712000 MVC OLDATE(4,TOTX1),ADATE(GET0INDX) 04S0218 00713000 * LINDATE(4)='/'; /*@Y30LB56*/ 00714000 MVI LINDATE+3(CVTPTR),C'/' 04S0219 00715000 * LINDATE(5:6)=UNPKOUT(1:2); /*@Y30LB56*/ 00716000 MVC LINDATE+4(2,CVTPTR),UNPKOUT(TOTX1) 04S0220 00717000 * END; /*@Y30LB56*/ 00718000 * ELSE 04S0222 00719000 * ; /* OMIT DATE @Y30LB56*/ 00720000 @RF00213 DS 0H 04S0223 00721000 * UNPK(UNPKOUT,ATIME); /* MAKE TIME PRINTABLE @Y30LB56*/ 00722000 UNPK UNPKOUT(7,TOTX1),ATIME(4,GET0INDX) 04S0223 00723000 * LINTIME(1:2)=UNPKOUT(1:2); /*@Y30LB56*/ 00724000 MVC LINTIME(2,CVTPTR),UNPKOUT(TOTX1) 04S0224 00725000 * LINTIME(3)=':'; /* HH:MM:SS @Y30LB56*/ 00726000 MVI LINTIME+2(CVTPTR),C':' 04S0225 00727000 * LINTIME(4:5)=UNPKOUT(3:4); /*@Y30LB56*/ 00728000 MVC LINTIME+3(2,CVTPTR),UNPKOUT+2(TOTX1) 04S0226 00729000 * LINTIME(6)=':'; /*@Y30LB56*/ 00730000 MVI LINTIME+5(CVTPTR),C':' 04S0227 00731000 * LINTIME(7:8)=UNPKOUT(5:6); /*@Y30LB56*/ 00732000 MVC LINTIME+6(2,CVTPTR),UNPKOUT+4(TOTX1) 04S0228 00733000 * CVDIN=CVDIN&&CVDIN; /* CLEAR CVD INPUT AREA @Y30LB56*/ 00734000 L @15,CVDIN(,TOTX1) 04S0229 00735000 LR @14,@15 04S0229 00736000 XR @14,@15 04S0229 00737000 ST @14,CVDIN(,TOTX1) 04S0229 00738000 * CVDIN2=SNSRDCK; /*@Y30LB56*/ 00739000 MVC CVDIN2(2,TOTX1),SNSRDCK(GET0INDX) 04S0230 00740000 * CALL CONVERT; /* SETUP READ ERRORS @Y30LB56*/ 00741000 BAL @14,CONVERT 04S0231 00742000 * LINER1=UNPKOUT(3:7); /*@Y30LB56*/ 00743000 MVC LINER1(5,CVTPTR),UNPKOUT+2(TOTX1) 04S0232 00744000 * CVDIN2=SNSRDUC; /*@Y30LB56*/ 00745000 MVC CVDIN2(2,TOTX1),SNSRDUC(GET0INDX) 04S0233 00746000 * CALL CONVERT; /* SETUP READ USAGE @Y30LB56*/ 00747000 BAL @14,CONVERT 04S0234 00748000 * LINEU1=UNPKOUT(3:7); /*@Y30LB56*/ 00749000 MVC LINEU1(5,CVTPTR),UNPKOUT+2(TOTX1) 04S0235 00750000 * IF SNSRDRAT='FF'X THEN /* INDICATE INVALID RATIO@Y30LB56*/ 00751000 CLI SNSRDRAT(GET0INDX),255 04S0236 00752000 BNE @RF00236 04S0236 00753000 * LINEP1(2:3)='**'; /*@Y30LB56*/ 00754000 MVC LINEP1+1(2,CVTPTR),@CC00524 04S0237 00755000 * ELSE 04S0238 00756000 * DO; /*@Y30LB56*/ 00757000 B @RC00236 04S0238 00758000 @RF00236 DS 0H 04S0239 00759000 * IF SNSRDRAT='64'X THEN /* USE=ERR @Y30LB56*/ 00760000 CLI SNSRDRAT(GET0INDX),100 04S0239 00761000 BNE @RF00239 04S0239 00762000 * SNSRDRAT='63'X; /* SET RATIO = .99 @Y30LB56*/ 00763000 MVI SNSRDRAT(GET0INDX),X'63' 04S0240 00764000 * ELSE 04S0241 00765000 * ; /*@Y30LB56*/ 00766000 @RF00239 DS 0H 04S0242 00767000 * CVD(SNSRDRAT,CVDOUT); /* SETUP RD ERR/USE=RATIO@Y30LB56*/ 00768000 SLR @15,@15 04S0242 00769000 IC @15,SNSRDRAT(,GET0INDX) 04S0242 00770000 CVD @15,CVDOUT(,TOTX1) 04S0242 00771000 * UNPK(LINEP1(2:3),UNPKIN(3:4)); /*@Y30LB56*/ 00772000 UNPK LINEP1+1(2,CVTPTR),UNPKIN+2(2,TOTX1) 04S0243 00773000 * LINEP1(3)=LINEP1(3)|'F0'X; /*@Y30LB56*/ 00774000 OI LINEP1+2(CVTPTR),X'F0' 04S0244 00775000 * END; /*@Y30LB56*/ 00776000 * LINEP1(1)='.'; /*@Y30LB56*/ 00777000 @RC00236 MVI LINEP1(CVTPTR),C'.' 04S0246 00778000 * CVDIN2=SNSWRCK; /*@Y30LB56*/ 00779000 MVC CVDIN2(2,TOTX1),SNSWRCK(GET0INDX) 04S0247 00780000 * CALL CONVERT; /* SETUP WRITE ERRORS @Y30LB56*/ 00781000 BAL @14,CONVERT 04S0248 00782000 * LINER2=UNPKOUT(3:7); /*@Y30LB56*/ 00783000 MVC LINER2(5,CVTPTR),UNPKOUT+2(TOTX1) 04S0249 00784000 * CVDIN2=SNSWRUC; /*@Y30LB56*/ 00785000 MVC CVDIN2(2,TOTX1),SNSWRUC(GET0INDX) 04S0250 00786000 * CALL CONVERT; /* SETUP WRITE USAGE @Y30LB56*/ 00787000 BAL @14,CONVERT 04S0251 00788000 * LINEU2=UNPKOUT(3:7); /*@Y30LB56*/ 00789000 MVC LINEU2(5,CVTPTR),UNPKOUT+2(TOTX1) 04S0252 00790000 * IF SNSWRAT='FF'X THEN /* INDICATE INVALID RATIO@Y30LB56*/ 00791000 CLI SNSWRAT(GET0INDX),255 04S0253 00792000 BNE @RF00253 04S0253 00793000 * LINEP2(2:3)='**'; /*@Y30LB56*/ 00794000 MVC LINEP2+1(2,CVTPTR),@CC00524 04S0254 00795000 * ELSE 04S0255 00796000 * DO; /*@Y30LB56*/ 00797000 B @RC00253 04S0255 00798000 @RF00253 DS 0H 04S0256 00799000 * IF SNSWRAT='64'X THEN /* USE=ERR @Y30LB56*/ 00800000 CLI SNSWRAT(GET0INDX),100 04S0256 00801000 BNE @RF00256 04S0256 00802000 * SNSWRAT='63'X; /*@Y30LB56*/ 00803000 MVI SNSWRAT(GET0INDX),X'63' 04S0257 00804000 * ELSE 04S0258 00805000 * ; /*@Y30LB56*/ 00806000 @RF00256 DS 0H 04S0259 00807000 * CVD(SNSWRAT,CVDOUT); /* SETUP WR ERR/USE=RATIO@Y30LB56*/ 00808000 SLR @15,@15 04S0259 00809000 IC @15,SNSWRAT(,GET0INDX) 04S0259 00810000 CVD @15,CVDOUT(,TOTX1) 04S0259 00811000 * UNPK(LINEP2(2:3),UNPKIN(3:4)); /*@Y30LB56*/ 00812000 UNPK LINEP2+1(2,CVTPTR),UNPKIN+2(2,TOTX1) 04S0260 00813000 * LINEP2(3)=LINEP2(3)|'F0'X; /*@Y30LB56*/ 00814000 OI LINEP2+2(CVTPTR),X'F0' 04S0261 00815000 * END; /*@Y30LB56*/ 00816000 * LINEP2(1)='.'; /*@Y30LB56*/ 00817000 @RC00253 MVI LINEP2(CVTPTR),C'.' 04S0263 00818000 * UNPK(UNPKOUT(1:4),SNS4D(1:3)); /* SETUP SSID @Y30LB56*/ 00819000 UNPK UNPKOUT(4,TOTX1),SNS4D(3,GET0INDX) 04S0264 00820000 * LINESSID=UNPKOUT(1:3); /*@Y30LB56*/ 00821000 MVC LINESSID(3,CVTPTR),UNPKOUT(TOTX1) 04S0265 00822000 * WORKVAR=SNS9A10; /*@Y30LB56*/ 00823000 SLR WORKVAR,WORKVAR 04S0266 00824000 ICM WORKVAR,3,SNS9A10(GET0INDX) 04S0266 00825000 * SLL(WORKVAR,23); /* SETUP SA ADDRESS @Y30LB56*/ 00826000 SLL WORKVAR,23 04S0267 00827000 * SRL(WORKVAR,28); /*@Y30LB56*/ 00828000 SRL WORKVAR,28 04S0268 00829000 * IF WORKVAR>9 THEN /* A-F @Y30LB56*/ 00830000 CH WORKVAR,@CH00184 04S0269 00831000 BNH @RF00269 04S0269 00832000 * WORKVAR=WORKVAR+183; /* MAKE IT PRINTABLE @Y30LB56*/ 00833000 AH WORKVAR,@CH00531 04S0270 00834000 * ELSE /* 0-9 @Y30LB56*/ 00835000 * WORKVAR=WORKVAR|'F0'X; /* MAKE IT PRINTABLE @Y30LB56*/ 00836000 B @RC00269 04S0271 00837000 @RF00269 O WORKVAR,@CF00516 04S0271 00838000 * LINESA=WORKVAR; /*@Y30LB56*/ 00839000 @RC00269 STC WORKVAR,LINESA(,CVTPTR) 04S0272 00840000 * WORKVAR=SNS9A10; /*@Y30LB56*/ 00841000 SLR @15,@15 04S0273 00842000 ICM @15,3,SNS9A10(GET0INDX) 04S0273 00843000 LR WORKVAR,@15 04S0273 00844000 * SLL(WORKVAR,28); /* SETUP DRC ADDRESS @Y30LB56*/ 00845000 SLL WORKVAR,28 04S0274 00846000 * SRL(WORKVAR,30); /*@Y30LB56*/ 00847000 SRL WORKVAR,30 04S0275 00848000 * LINEDRC=WORKVAR|'F0'X; /*@Y30LB56*/ 00849000 LA @07,240 04S0276 00850000 LR @14,WORKVAR 04S0276 00851000 OR @14,@07 04S0276 00852000 STC @14,LINEDRC(,CVTPTR) 04S0276 00853000 * WORKVAR=SNS9A10; /*@Y30LB56*/ 00854000 LR WORKVAR,@15 04S0277 00855000 * SLL(WORKVAR,30); /* SETUP DRD ADDRESS @Y30LB56*/ 00856000 SLL WORKVAR,30 04S0278 00857000 * SRL(WORKVAR,30); /*@Y30LB56*/ 00858000 SRL WORKVAR,30 04S0279 00859000 * LINEDRD=WORKVAR|'F0'X; /*@Y30LB56*/ 00860000 OR @07,WORKVAR 04S0280 00861000 STC @07,LINEDRD(,CVTPTR) 04S0280 00862000 * IF SNSFORCE='0'B THEN /* FORCE LOG BIT ON @ZM31073*/ 00863000 TM SNSFORCE(GET0INDX),B'10000000' 04S0281 00864000 BNZ @RF00281 04S0281 00865000 * LINEREAS='OVERFLOW '; /* NO, MUST BE OVERFLOW @ZM31073*/ 00866000 MVC LINEREAS(10,CVTPTR),@CC00534 04S0282 00867000 * ELSE /* YES, HAVE FORCED LOG @ZM31073*/ 00868000 * IF SNSLDCHK='1'B THEN /* LOAD CHECK BIT ON @ZM31073*/ 00869000 B @RC00281 04S0283 00870000 @RF00281 TM SNSLDCHK(GET0INDX),B'01000000' 04S0283 00871000 BNO @RF00283 04S0283 00872000 * LINEREAS='LOAD CHECK'; /* YES, HAD LOAD CHECK @ZM31073*/ 00873000 MVC LINEREAS(10,CVTPTR),@CC00537 04S0284 00874000 * ELSE /* NO, NORMAL FORCED LOG @ZM31073*/ 00875000 * LINEREAS='THRESHOLD '; /* LOG THRESHOLD EXCEEDED@ZM31073*/ 00876000 B @RC00283 04S0285 00877000 @RF00283 MVC LINEREAS(10,CVTPTR),@CC00539 04S0285 00878000 * RFY 05S0286 00879000 * R1 RSTD; /*@Y30LB56*/ 00880000 @RC00283 DS 0H 05S0286 00881000 @RC00281 DS 0H 05S0287 00882000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 00883000 LA R1,WORKCALL(,CVTPTR) 05S0287 00884000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 00885000 L @15,@CV00223 05S0288 00886000 BALR @14,@15 05S0288 00887000 * RFY 05S0289 00888000 * R1 UNRSTD; /*@Y30LB56*/ 00889000 * LINECNT=LINECNT+1; /* ADVANCE LINE COUNTER @Y30LB56*/ 00890000 LA @15,1 04S0290 00891000 SLR @14,@14 04S0290 00892000 IC @14,LINECNT(,TOTX1) 04S0290 00893000 ALR @15,@14 04S0290 00894000 STC @15,LINECNT(,TOTX1) 04S0290 00895000 * IF LINECNT>58 THEN /* START A NEW PAGE @Y30LB56*/ 00896000 CLI LINECNT(TOTX1),58 04S0291 00897000 BNH @RF00291 04S0291 00898000 * CALL NEWPAGE; /*@Y30LB56*/ 00899000 BAL @14,NEWPAGE 04S0292 00900000 * ELSE 04S0293 00901000 * ; /* CONTINUE USING THIS PG@Y30LB56 00902000 * @Y30LB56*/ 00903000 @RF00291 DS 0H 04S0294 00904000 * GET0INDX=CHAINPTR; /* POINT TO NEXT ENTRY IN CHAIN 00905000 * @Y30LB56*/ 00906000 L GET0INDX,CHAINPTR(,GET0INDX) 03S0294 00907000 * DO WHILE(GET0INDX^=0&SNSCSN^=DCSN); /*@Y30LB56*/ 00908000 B @DE00295 03S0295 00909000 @DL00295 DS 0H 03S0296 00910000 * GET0INDX=CHAINPTR; /* LOOK FOR NEXT ENTRY @Y30LB56*/ 00911000 L GET0INDX,CHAINPTR(,GET0INDX) 03S0296 00912000 * END; /*@Y30LB56*/ 00913000 @DE00295 LTR GET0INDX,GET0INDX 03S0297 00914000 BZ @DC00295 03S0297 00915000 CLC SNSCSN(12,GET0INDX),DCSN(TOTX2) 03S0297 00916000 BNE @DL00295 03S0297 00917000 @DC00295 DS 0H 03S0298 00918000 * END; /*@Y30LB56*/ 00919000 @DE00203 LTR GET0INDX,GET0INDX 03S0298 00920000 BNZ @DL00203 03S0298 00921000 * 04S0299 00922000 * /*****************************************************************/ 00923000 * /* */ 00924000 * /* OUTPUT SUBTOTALS AND TOTALS FOR THIS DATA CARTRIDGE */ 00925000 * /* */ 00926000 * /*****************************************************************/ 00927000 * 04S0299 00928000 * OUTLINE=' '; /* CLEAR OUTPUT LINE @Y30LB56*/ 00929000 MVI OUTLINE+1(CVTPTR),C' ' 04S0299 00930000 MVC OUTLINE+2(131,CVTPTR),OUTLINE+1(CVTPTR) 04S0299 00931000 MVI OUTLINE(CVTPTR),C' ' 04S0299 00932000 * TOTALE1=TOTALE; /*@Y30LB56*/ 00933000 MVC TOTALE1(14,CVTPTR),TOTALE 04S0300 00934000 * IF TOTALERR>999999 THEN 04S0301 00935000 CLC TOTALERR(4,TOTX2),@CF00541 04S0301 00936000 BNH @RF00301 04S0301 00937000 * TOTALE2='******'; /* OVERFLOW @Y30LB56*/ 00938000 MVC TOTALE2(6,CVTPTR),@CC00542 04S0302 00939000 * ELSE 04S0303 00940000 * DO; /*@Y30LB56*/ 00941000 B @RC00301 04S0303 00942000 @RF00301 DS 0H 04S0304 00943000 * CVDIN=TOTALERR; /*@Y30LB56*/ 00944000 MVC CVDIN(4,TOTX1),TOTALERR(TOTX2) 04S0304 00945000 * CALL CONVERT; /* SET UP TOTAL ERRORS @Y30LB56*/ 00946000 BAL @14,CONVERT 04S0305 00947000 * TOTALE2=UNPKOUT(2:7); /*@Y30LB56*/ 00948000 MVC TOTALE2(6,CVTPTR),UNPKOUT+1(TOTX1) 04S0306 00949000 * END; /*@Y30LB56*/ 00950000 * RFY 05S0308 00951000 * R1 RSTD; /*@Y30LB56*/ 00952000 @RC00301 DS 0H 05S0309 00953000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 00954000 LA R1,WORKCALL(,CVTPTR) 05S0309 00955000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 00956000 L @15,@CV00223 05S0310 00957000 BALR @14,@15 05S0310 00958000 * RFY 05S0311 00959000 * R1 UNRSTD; /*@Y30LB56*/ 00960000 * LINECNT=LINECNT+1; /* ADVANCE LINE COUNTER @Y30LB56*/ 00961000 LA @05,1 04S0312 00962000 SLR @15,@15 04S0312 00963000 IC @15,LINECNT(,TOTX1) 04S0312 00964000 ALR @05,@15 04S0312 00965000 STC @05,LINECNT(,TOTX1) 04S0312 00966000 * IF LINECNT>58 THEN /* START A NEW PAGE @Y30LB56*/ 00967000 CLI LINECNT(TOTX1),58 04S0313 00968000 BNH @RF00313 04S0313 00969000 * CALL NEWPAGE; /*@Y30LB56*/ 00970000 BAL @14,NEWPAGE 04S0314 00971000 * ELSE 04S0315 00972000 * ; /* CONTINUE USING THIS PG@Y30LB56*/ 00973000 @RF00313 DS 0H 04S0316 00974000 * OUTLINE=' '; /* CLEAR OUTPUT LINE @Y30LB56*/ 00975000 MVI OUTLINE+1(CVTPTR),C' ' 04S0316 00976000 MVC OUTLINE+2(131,CVTPTR),OUTLINE+1(CVTPTR) 04S0316 00977000 MVI OUTLINE(CVTPTR),C' ' 04S0316 00978000 * TOTALU1=TOTALU; /*@Y30LB56*/ 00979000 MVC TOTALU1(13,CVTPTR),TOTALU 04S0317 00980000 * IF TOTALUSE>9999999 THEN 04S0318 00981000 CLC TOTALUSE(4,TOTX2),@CF00543 04S0318 00982000 BNH @RF00318 04S0318 00983000 * TOTALU2='*******'; /* OVERFLOW @Y30LB56*/ 00984000 MVC TOTALU2(7,CVTPTR),@CC00544 04S0319 00985000 * ELSE 04S0320 00986000 * DO; /*@Y30LB56*/ 00987000 B @RC00318 04S0320 00988000 @RF00318 DS 0H 04S0321 00989000 * CVDIN=TOTALUSE; /*@Y30LB56*/ 00990000 MVC CVDIN(4,TOTX1),TOTALUSE(TOTX2) 04S0321 00991000 * CALL CONVERT; /* SETUP TOTAL USAGE @Y30LB56*/ 00992000 BAL @14,CONVERT 04S0322 00993000 * TOTALU2=UNPKOUT; /*@Y30LB56*/ 00994000 MVC TOTALU2(7,CVTPTR),UNPKOUT(TOTX1) 04S0323 00995000 * END; /*@Y30LB56*/ 00996000 * SUBTOT1=SUBTOT; /*@Y30LB56*/ 00997000 @RC00318 MVC SUBTOT1(10,CVTPTR),SUBTOT 04S0325 00998000 * IF TOTRDCK>999999 THEN 04S0326 00999000 CLC TOTRDCK(4,TOTX2),@CF00541 04S0326 01000000 BNH @RF00326 04S0326 01001000 * SUBTE1='******'; /* OVERFLOW @Y30LB56*/ 01002000 MVC SUBTE1(6,CVTPTR),@CC00542 04S0327 01003000 * ELSE 04S0328 01004000 * DO; /*@Y30LB56*/ 01005000 B @RC00326 04S0328 01006000 @RF00326 DS 0H 04S0329 01007000 * CVDIN=TOTRDCK; /*@Y30LB56*/ 01008000 MVC CVDIN(4,TOTX1),TOTRDCK(TOTX2) 04S0329 01009000 * CALL CONVERT; /* SETUP TOTAL READ ERRORS 04S0330 01010000 * @Y30LB56*/ 01011000 BAL @14,CONVERT 04S0330 01012000 * SUBTE1=UNPKOUT(2:7); /*@Y30LB56*/ 01013000 MVC SUBTE1(6,CVTPTR),UNPKOUT+1(TOTX1) 04S0331 01014000 * END; /*@Y30LB56*/ 01015000 * IF TOTRDUC>999999 THEN 04S0333 01016000 @RC00326 CLC TOTRDUC(4,TOTX2),@CF00541 04S0333 01017000 BNH @RF00333 04S0333 01018000 * SUBTU1='******'; /* OVERFLOW @Y30LB56*/ 01019000 MVC SUBTU1(6,CVTPTR),@CC00542 04S0334 01020000 * ELSE 04S0335 01021000 * DO; /*@Y30LB56*/ 01022000 B @RC00333 04S0335 01023000 @RF00333 DS 0H 04S0336 01024000 * CVDIN=TOTRDUC; /*@Y30LB56*/ 01025000 MVC CVDIN(4,TOTX1),TOTRDUC(TOTX2) 04S0336 01026000 * CALL CONVERT; /* SETUP TOTAL READ USAGE@Y30LB56*/ 01027000 BAL @14,CONVERT 04S0337 01028000 * SUBTU1=UNPKOUT(2:7); /*@Y30LB56*/ 01029000 MVC SUBTU1(6,CVTPTR),UNPKOUT+1(TOTX1) 04S0338 01030000 * END; /*@Y30LB56*/ 01031000 * IF RDRATIO='FF'X THEN /* INDICATE INVALID RATIO@Y30LB56*/ 01032000 @RC00333 CLI RDRATIO(TOTX2),255 04S0340 01033000 BNE @RF00340 04S0340 01034000 * SUBTP1(2:3)='**'; /*@Y30LB56*/ 01035000 MVC SUBTP1+1(2,CVTPTR),@CC00524 04S0341 01036000 * ELSE 04S0342 01037000 * DO; /*@Y30LB56*/ 01038000 B @RC00340 04S0342 01039000 @RF00340 DS 0H 04S0343 01040000 * IF RDRATIO='64'X THEN /* USE=ERR @Y30LB56*/ 01041000 CLI RDRATIO(TOTX2),100 04S0343 01042000 BNE @RF00343 04S0343 01043000 * RDRATIO='63'X; /*@Y30LB56*/ 01044000 MVI RDRATIO(TOTX2),X'63' 04S0344 01045000 * ELSE 04S0345 01046000 * ; /*@Y30LB56*/ 01047000 @RF00343 DS 0H 04S0346 01048000 * CVD(RDRATIO,CVDOUT); /* SETUP RD ERR/USE=RATIO@Y30LB56*/ 01049000 SLR @05,@05 04S0346 01050000 IC @05,RDRATIO(,TOTX2) 04S0346 01051000 CVD @05,CVDOUT(,TOTX1) 04S0346 01052000 * UNPK(SUBTP1(2:3),UNPKIN(3:4)); /*@Y30LB56*/ 01053000 UNPK SUBTP1+1(2,CVTPTR),UNPKIN+2(2,TOTX1) 04S0347 01054000 * SUBTP1(3)=SUBTP1(3)|'F0'X; /*@Y30LB56*/ 01055000 OI SUBTP1+2(CVTPTR),X'F0' 04S0348 01056000 * END; /*@Y30LB56*/ 01057000 * SUBTP1(1)='.'; /*@Y30LB56*/ 01058000 @RC00340 MVI SUBTP1(CVTPTR),C'.' 04S0350 01059000 * IF TOTWRCK>999999 THEN 04S0351 01060000 CLC TOTWRCK(4,TOTX2),@CF00541 04S0351 01061000 BNH @RF00351 04S0351 01062000 * SUBTE2='******'; /* OVERFLOW @Y30LB56*/ 01063000 MVC SUBTE2(6,CVTPTR),@CC00542 04S0352 01064000 * ELSE 04S0353 01065000 * DO; /*@Y30LB56*/ 01066000 B @RC00351 04S0353 01067000 @RF00351 DS 0H 04S0354 01068000 * CVDIN=TOTWRCK; /*@Y30LB56*/ 01069000 MVC CVDIN(4,TOTX1),TOTWRCK(TOTX2) 04S0354 01070000 * CALL CONVERT; /* SETUP TOTAL WRITE ERRORS 04S0355 01071000 * @Y30LB56*/ 01072000 BAL @14,CONVERT 04S0355 01073000 * SUBTE2=UNPKOUT(2:7); /*@Y30LB56*/ 01074000 MVC SUBTE2(6,CVTPTR),UNPKOUT+1(TOTX1) 04S0356 01075000 * END; /*@Y30LB56*/ 01076000 * IF TOTWRUC>999999 THEN 04S0358 01077000 @RC00351 CLC TOTWRUC(4,TOTX2),@CF00541 04S0358 01078000 BNH @RF00358 04S0358 01079000 * SUBTU2='******'; /* OVERFLOW @Y30LB56*/ 01080000 MVC SUBTU2(6,CVTPTR),@CC00542 04S0359 01081000 * ELSE 04S0360 01082000 * DO; /*@Y30LB56*/ 01083000 B @RC00358 04S0360 01084000 @RF00358 DS 0H 04S0361 01085000 * CVDIN=TOTWRUC; /*@Y30LB56*/ 01086000 MVC CVDIN(4,TOTX1),TOTWRUC(TOTX2) 04S0361 01087000 * CALL CONVERT; /* SETUP TOTAL WRITE USAGE 04S0362 01088000 * @Y30LB56*/ 01089000 BAL @14,CONVERT 04S0362 01090000 * SUBTU2=UNPKOUT(2:7); /*@Y30LB56*/ 01091000 MVC SUBTU2(6,CVTPTR),UNPKOUT+1(TOTX1) 04S0363 01092000 * END; /*@Y30LB56*/ 01093000 * IF WRATIO='FF'X THEN /* INDICATE INVALID RATIO@Y30LB56*/ 01094000 @RC00358 CLI WRATIO(TOTX2),255 04S0365 01095000 BNE @RF00365 04S0365 01096000 * SUBTP2(2:3)='**'; /*@Y30LB56*/ 01097000 MVC SUBTP2+1(2,CVTPTR),@CC00524 04S0366 01098000 * ELSE 04S0367 01099000 * DO; /*@Y30LB56*/ 01100000 B @RC00365 04S0367 01101000 @RF00365 DS 0H 04S0368 01102000 * IF WRATIO='64'X THEN /* USE=ERR @Y30LB56*/ 01103000 CLI WRATIO(TOTX2),100 04S0368 01104000 BNE @RF00368 04S0368 01105000 * WRATIO='63'X; /*@Y30LB56*/ 01106000 MVI WRATIO(TOTX2),X'63' 04S0369 01107000 * ELSE 04S0370 01108000 * ; /*@Y30LB56*/ 01109000 @RF00368 DS 0H 04S0371 01110000 * CVD(WRATIO,CVDOUT); /* SETUP WR ERR/USE=RATIO@Y30LB56*/ 01111000 SLR @05,@05 04S0371 01112000 IC @05,WRATIO(,TOTX2) 04S0371 01113000 CVD @05,CVDOUT(,TOTX1) 04S0371 01114000 * UNPK(SUBTP2(2:3),UNPKIN(3:4)); /*@Y30LB56*/ 01115000 UNPK SUBTP2+1(2,CVTPTR),UNPKIN+2(2,TOTX1) 04S0372 01116000 * SUBTP2(3)=SUBTP2(3)|'F0'X; /*@Y30LB56*/ 01117000 OI SUBTP2+2(CVTPTR),X'F0' 04S0373 01118000 * END; /*@Y30LB56*/ 01119000 * SUBTP2(1)='.'; /*@Y30LB56*/ 01120000 @RC00365 MVI SUBTP2(CVTPTR),C'.' 04S0375 01121000 * RFY 05S0376 01122000 * R1 RSTD; /*@Y30LB56*/ 01123000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 01124000 LA R1,WORKCALL(,CVTPTR) 05S0377 01125000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 01126000 L @15,@CV00223 05S0378 01127000 BALR @14,@15 05S0378 01128000 * RFY 05S0379 01129000 * R1 UNRSTD; /*@Y30LB56*/ 01130000 * LINECNT=LINECNT+1; /* ADVANCE LINECOUNTER @Y30LB56*/ 01131000 LA @05,1 04S0380 01132000 SLR @15,@15 04S0380 01133000 IC @15,LINECNT(,TOTX1) 04S0380 01134000 ALR @05,@15 04S0380 01135000 STC @05,LINECNT(,TOTX1) 04S0380 01136000 * IF LINECNT>58 THEN /* START A NEW PAGE @Y30LB56*/ 01137000 CLI LINECNT(TOTX1),58 04S0381 01138000 BNH @RF00381 04S0381 01139000 * CALL NEWPAGE; /*@Y30LB56*/ 01140000 BAL @14,NEWPAGE 04S0382 01141000 * ELSE 04S0383 01142000 * ; /* CONTINUE THIS PAGE @Y30LB56*/ 01143000 @RF00381 DS 0H 04S0384 01144000 * OUTLINE=' '; /* CLEAR OUTPUT LINE @Y30LB56*/ 01145000 MVI OUTLINE+1(CVTPTR),C' ' 04S0384 01146000 MVC OUTLINE+2(131,CVTPTR),OUTLINE+1(CVTPTR) 04S0384 01147000 MVI OUTLINE(CVTPTR),C' ' 04S0384 01148000 * TOTALR1=TOTALR; /*@Y30LB56*/ 01149000 MVC TOTALR1(9,CVTPTR),TOTALR 04S0385 01150000 * IF TOTRATIO='FF'X THEN /* INDICATE INVALID RATIO@Y30LB56*/ 01151000 CLI TOTRATIO(TOTX2),255 04S0386 01152000 BNE @RF00386 04S0386 01153000 * TOTALR2='**'; /*@Y30LB56*/ 01154000 MVC TOTALR2(2,CVTPTR),@CC00524 04S0387 01155000 * ELSE 04S0388 01156000 * DO; /*@Y30LB56*/ 01157000 B @RC00386 04S0388 01158000 @RF00386 DS 0H 04S0389 01159000 * IF TOTRATIO='64'X THEN /* USE=ERR @Y30LB56*/ 01160000 CLI TOTRATIO(TOTX2),100 04S0389 01161000 BNE @RF00389 04S0389 01162000 * TOTRATIO='63'X; /*@Y30LB56*/ 01163000 MVI TOTRATIO(TOTX2),X'63' 04S0390 01164000 * ELSE 04S0391 01165000 * ; /*@Y30LB56*/ 01166000 @RF00389 DS 0H 04S0392 01167000 * CVD(TOTRATIO,CVDOUT); /* SETUP TOTAL ERR/USE=RATIO 01168000 * @Y30LB56*/ 01169000 SLR @05,@05 04S0392 01170000 IC @05,TOTRATIO(,TOTX2) 04S0392 01171000 CVD @05,CVDOUT(,TOTX1) 04S0392 01172000 * UNPK(TOTALR2,UNPKIN(3:4)); /*@Y30LB56*/ 01173000 UNPK TOTALR2(2,CVTPTR),UNPKIN+2(2,TOTX1) 04S0393 01174000 * TOTALR2(2)=TOTALR2(2)|'F0'X; /*@Y30LB56*/ 01175000 OI TOTALR2+1(CVTPTR),X'F0' 04S0394 01176000 * END; /*@Y30LB56*/ 01177000 * RFY 05S0396 01178000 * R1 RSTD; /*@Y30LB56*/ 01179000 @RC00386 DS 0H 05S0397 01180000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 01181000 LA R1,WORKCALL(,CVTPTR) 05S0397 01182000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 01183000 L @15,@CV00223 05S0398 01184000 BALR @14,@15 05S0398 01185000 * RFY 05S0399 01186000 * R1 UNRSTD; /*@Y30LB56*/ 01187000 * LINECNT=LINECNT+1; /* ADVANCE LINE COUNTER @Y30LB56*/ 01188000 LA @05,1 04S0400 01189000 SLR @15,@15 04S0400 01190000 IC @15,LINECNT(,TOTX1) 04S0400 01191000 ALR @05,@15 04S0400 01192000 STC @05,LINECNT(,TOTX1) 04S0400 01193000 * IF LINECNT>58 THEN /* START A NEW PAGE @Y30LB56*/ 01194000 CLI LINECNT(TOTX1),58 04S0401 01195000 BNH @RF00401 04S0401 01196000 * CALL NEWPAGE; /*@Y30LB56*/ 01197000 BAL @14,NEWPAGE 04S0402 01198000 * ELSE 04S0403 01199000 * ; /* CONTINUE THIS PAGE @Y30LB56 01200000 * @Y30LB56*/ 01201000 @RF00401 DS 0H 04S0404 01202000 * TOTX2=TOTCHAIN; /* ADVANCE TO NEXT CSN @Y30LB56*/ 01203000 L TOTX2,TOTCHAIN(,TOTX2) 03S0404 01204000 * IF TOTX2^=0 THEN 03S0405 01205000 SLR @05,@05 03S0405 01206000 CR TOTX2,@05 03S0405 01207000 BE @RF00405 03S0405 01208000 * DO; /*@Y30LB56*/ 01209000 * CVD(TOTRATIO,CVDOUT); /*@Y30LB56*/ 01210000 SLR @15,@15 03S0407 01211000 IC @15,TOTRATIO(,TOTX2) 03S0407 01212000 CVD @15,CVDOUT(,TOTX1) 03S0407 01213000 * UNPK(UNPKOUT(1:2),UNPKIN(3:4)); /*@Y30LB56*/ 01214000 UNPK UNPKOUT(2,TOTX1),UNPKIN+2(2,TOTX1) 03S0408 01215000 * UNPKOUT(2)=UNPKOUT(2)|'F0'X; /*@Y30LB56*/ 01216000 OI UNPKOUT+1(TOTX1),X'F0' 03S0409 01217000 * IF UNPKOUT(1:2)58 THEN/* START A NEW PAGE @Y30LB56*/ 01267000 CLI LINECNT(TOTX1),58 03S0426 01268000 BNH @RF00426 03S0426 01269000 * CALL NEWPAGE; /*@Y30LB56*/ 01270000 BAL @14,NEWPAGE 03S0427 01271000 * ELSE 03S0428 01272000 * ; /* CONTINUE THIS PAGE @Y30LB56*/ 01273000 @RF00426 DS 0H 03S0429 01274000 * END; /*@Y30LB56*/ 01275000 * END; /*@Y30LB56*/ 01276000 * ELSE 03S0431 01277000 * ; /* END OF DCS @Y30LB56*/ 01278000 @RF00405 DS 0H 03S0432 01279000 * END; /*@Y30LB56*/ 01280000 @RC00405 DS 0H 03S0432 01281000 @DE00197 LTR TOTX2,TOTX2 03S0432 01282000 BNZ @DL00197 03S0432 01283000 * ELSE /* OUTPUT SUMMARIZED REPORT 03S0433 01284000 * @Y30LB56*/ 01285000 * 03S0433 01286000 * /***********************************************************/ 01287000 * /* */ 01288000 * /* SUMMARY=YES OUTPUT ONLY ACCUMULATED TOTALS */ 01289000 * /* */ 01290000 * /***********************************************************/ 01291000 * 03S0433 01292000 * DO WHILE(TOTX2^=0); /*@Y30LB56*/ 01293000 B @RC00196 03S0433 01294000 @RF00196 B @DE00433 03S0433 01295000 @DL00433 DS 0H 03S0434 01296000 * 04S0434 01297000 * /*****************************************************************/ 01298000 * /* */ 01299000 * /* OUTPUT SUMMARY OF SUBTOTALS AND TOTALS FOR THIS DATA */ 01300000 * /* CARTRIDGE. */ 01301000 * /* */ 01302000 * /*****************************************************************/ 01303000 * 04S0434 01304000 * OUTLINE=' '; /* CLEAR OUTPUT LINE @Y30LB56*/ 01305000 MVI OUTLINE+1(CVTPTR),C' ' 04S0434 01306000 MVC OUTLINE+2(131,CVTPTR),OUTLINE+1(CVTPTR) 04S0434 01307000 MVI OUTLINE(CVTPTR),C' ' 04S0434 01308000 * SLINSER=DCSN; /* SETUP CSN @Y30LB56*/ 01309000 MVC SLINSER(12,CVTPTR),DCSN(TOTX2) 04S0435 01310000 * UNPK(UNPKOUT(1:5),OLDEST->ADATE); /*@Y30LB56*/ 01311000 L @05,OLDEST(,TOTX2) 04S0436 01312000 UNPK UNPKOUT(5,TOTX1),ADATE(4,@05) 04S0436 01313000 * UNPKOUT(5)=UNPKOUT(5)|'F0'X; /*@Y30LB56*/ 01314000 OI UNPKOUT+4(TOTX1),X'F0' 04S0437 01315000 * SLINDATF(1:3)=UNPKOUT(3:5); /* SETUP FROM DATE @Y30LB56*/ 01316000 MVC SLINDATF(3,CVTPTR),UNPKOUT+2(TOTX1) 04S0438 01317000 * SLINDATF(4)='/'; /*@Y30LB56*/ 01318000 MVI SLINDATF+3(CVTPTR),C'/' 04S0439 01319000 * SLINDATF(5:6)=UNPKOUT(1:2); /*@Y30LB56*/ 01320000 MVC SLINDATF+4(2,CVTPTR),UNPKOUT(TOTX1) 04S0440 01321000 * UNPK(UNPKOUT,OLDEST->ATIME); /*@Y30LB56*/ 01322000 UNPK UNPKOUT(7,TOTX1),ATIME(4,@05) 04S0441 01323000 * SLINTIMF(1:2)=UNPKOUT(1:2); /* SETUP FROM TIME @Y30LB56*/ 01324000 MVC SLINTIMF(2,CVTPTR),UNPKOUT(TOTX1) 04S0442 01325000 * SLINTIMF(3)=':'; /*@Y30LB56*/ 01326000 MVI SLINTIMF+2(CVTPTR),C':' 04S0443 01327000 * SLINTIMF(4:5)=UNPKOUT(3:4); /*@Y30LB56*/ 01328000 MVC SLINTIMF+3(2,CVTPTR),UNPKOUT+2(TOTX1) 04S0444 01329000 * SLINTIMF(6)=':'; /*@Y30LB56*/ 01330000 MVI SLINTIMF+5(CVTPTR),C':' 04S0445 01331000 * SLINTIMF(7:8)=UNPKOUT(5:6); /*@Y30LB56*/ 01332000 MVC SLINTIMF+6(2,CVTPTR),UNPKOUT+4(TOTX1) 04S0446 01333000 * UNPK(UNPKOUT(1:5),NEWEST->ADATE); /*@Y30LB56*/ 01334000 L @05,NEWEST(,TOTX2) 04S0447 01335000 UNPK UNPKOUT(5,TOTX1),ADATE(4,@05) 04S0447 01336000 * UNPKOUT(5)=UNPKOUT(5)|'F0'X; /* SETUP TO DATE @Y30LB56*/ 01337000 OI UNPKOUT+4(TOTX1),X'F0' 04S0448 01338000 * SLINDATO(1:3)=UNPKOUT(3:5); /*@Y30LB56*/ 01339000 MVC SLINDATO(3,CVTPTR),UNPKOUT+2(TOTX1) 04S0449 01340000 * SLINDATO(4)='/'; /*@Y30LB56*/ 01341000 MVI SLINDATO+3(CVTPTR),C'/' 04S0450 01342000 * SLINDATO(5:6)=UNPKOUT(1:2); /*@Y30LB56*/ 01343000 MVC SLINDATO+4(2,CVTPTR),UNPKOUT(TOTX1) 04S0451 01344000 * UNPK(UNPKOUT,NEWEST->ATIME); /*@Y30LB56*/ 01345000 UNPK UNPKOUT(7,TOTX1),ATIME(4,@05) 04S0452 01346000 * SLINTIMT(1:2)=UNPKOUT(1:2); /* SETUP TO TIME @Y30LB56*/ 01347000 MVC SLINTIMT(2,CVTPTR),UNPKOUT(TOTX1) 04S0453 01348000 * SLINTIMT(3)=':'; /*@Y30LB56*/ 01349000 MVI SLINTIMT+2(CVTPTR),C':' 04S0454 01350000 * SLINTIMT(4:5)=UNPKOUT(3:4); /*@Y30LB56*/ 01351000 MVC SLINTIMT+3(2,CVTPTR),UNPKOUT+2(TOTX1) 04S0455 01352000 * SLINTIMT(6)=':'; /*@Y30LB56*/ 01353000 MVI SLINTIMT+5(CVTPTR),C':' 04S0456 01354000 * SLINTIMT(7:8)=UNPKOUT(5:6); /*@Y30LB56*/ 01355000 MVC SLINTIMT+6(2,CVTPTR),UNPKOUT+4(TOTX1) 04S0457 01356000 * IF TOTRDCK>999999 THEN 04S0458 01357000 CLC TOTRDCK(4,TOTX2),@CF00541 04S0458 01358000 BNH @RF00458 04S0458 01359000 * SLINER1='******'; /* OVERFLOW @Y30LB56*/ 01360000 MVC SLINER1(6,CVTPTR),@CC00542 04S0459 01361000 * ELSE 04S0460 01362000 * DO; /*@Y30LB56*/ 01363000 B @RC00458 04S0460 01364000 @RF00458 DS 0H 04S0461 01365000 * CVDIN=TOTRDCK; /*@Y30LB56*/ 01366000 MVC CVDIN(4,TOTX1),TOTRDCK(TOTX2) 04S0461 01367000 * CALL CONVERT; /* SETUP TOTAL READ ERRORS 04S0462 01368000 * @Y30LB56*/ 01369000 BAL @14,CONVERT 04S0462 01370000 * SLINER1=UNPKOUT(2:7); /*@Y30LB56*/ 01371000 MVC SLINER1(6,CVTPTR),UNPKOUT+1(TOTX1) 04S0463 01372000 * END; /*@Y30LB56*/ 01373000 * IF TOTRDUC>999999 THEN 04S0465 01374000 @RC00458 CLC TOTRDUC(4,TOTX2),@CF00541 04S0465 01375000 BNH @RF00465 04S0465 01376000 * SLINEU1='******'; /* OVERFLOW @Y30LB56*/ 01377000 MVC SLINEU1(6,CVTPTR),@CC00542 04S0466 01378000 * ELSE 04S0467 01379000 * DO; /*@Y30LB56*/ 01380000 B @RC00465 04S0467 01381000 @RF00465 DS 0H 04S0468 01382000 * CVDIN=TOTRDUC; /*@Y30LB56*/ 01383000 MVC CVDIN(4,TOTX1),TOTRDUC(TOTX2) 04S0468 01384000 * CALL CONVERT; /* SETUP TOTAL READ USAGE@Y30LB56*/ 01385000 BAL @14,CONVERT 04S0469 01386000 * SLINEU1=UNPKOUT(2:7); /*@Y30LB56*/ 01387000 MVC SLINEU1(6,CVTPTR),UNPKOUT+1(TOTX1) 04S0470 01388000 * END; /*@Y30LB56*/ 01389000 * IF RDRATIO='FF'X THEN /* INDICATE INVALID RATIO@Y30LB56*/ 01390000 @RC00465 CLI RDRATIO(TOTX2),255 04S0472 01391000 BNE @RF00472 04S0472 01392000 * SLINEP1(2:3)='**'; /*@Y30LB56*/ 01393000 MVC SLINEP1+1(2,CVTPTR),@CC00524 04S0473 01394000 * ELSE 04S0474 01395000 * DO; /*@Y30LB56*/ 01396000 B @RC00472 04S0474 01397000 @RF00472 DS 0H 04S0475 01398000 * IF RDRATIO='64'X THEN /* USE=ERR @Y30LB56*/ 01399000 CLI RDRATIO(TOTX2),100 04S0475 01400000 BNE @RF00475 04S0475 01401000 * RDRATIO='63'X; /*@Y30LB56*/ 01402000 MVI RDRATIO(TOTX2),X'63' 04S0476 01403000 * ELSE 04S0477 01404000 * ; /*@Y30LB56*/ 01405000 @RF00475 DS 0H 04S0478 01406000 * CVD(RDRATIO,CVDOUT); /*@Y30LB56*/ 01407000 SLR @05,@05 04S0478 01408000 IC @05,RDRATIO(,TOTX2) 04S0478 01409000 CVD @05,CVDOUT(,TOTX1) 04S0478 01410000 * UNPK(SLINEP1(2:3),UNPKIN(3:4)); /*@Y30LB56*/ 01411000 UNPK SLINEP1+1(2,CVTPTR),UNPKIN+2(2,TOTX1) 04S0479 01412000 * SLINEP1(3)=SLINEP1(3)|'F0'X;/* SETUP TOTAL RD ERR/USE=RATIO 01413000 * @Y30LB56*/ 01414000 OI SLINEP1+2(CVTPTR),X'F0' 04S0480 01415000 * END; /*@Y30LB56*/ 01416000 * SLINEP1(1)='.'; /*@Y30LB56*/ 01417000 @RC00472 MVI SLINEP1(CVTPTR),C'.' 04S0482 01418000 * IF TOTWRCK>999999 THEN 04S0483 01419000 CLC TOTWRCK(4,TOTX2),@CF00541 04S0483 01420000 BNH @RF00483 04S0483 01421000 * SLINER2='******'; /* OVERFLOW @Y30LB56*/ 01422000 MVC SLINER2(6,CVTPTR),@CC00542 04S0484 01423000 * ELSE 04S0485 01424000 * DO; /*@Y30LB56*/ 01425000 B @RC00483 04S0485 01426000 @RF00483 DS 0H 04S0486 01427000 * CVDIN=TOTWRCK; /*@Y30LB56*/ 01428000 MVC CVDIN(4,TOTX1),TOTWRCK(TOTX2) 04S0486 01429000 * CALL CONVERT; /* SETUP TOTAL WRITE ERRORS 04S0487 01430000 * @Y30LB56*/ 01431000 BAL @14,CONVERT 04S0487 01432000 * SLINER2=UNPKOUT(2:7); /*@Y30LB56*/ 01433000 MVC SLINER2(6,CVTPTR),UNPKOUT+1(TOTX1) 04S0488 01434000 * END; /*@Y30LB56*/ 01435000 * IF TOTWRUC>999999 THEN 04S0490 01436000 @RC00483 CLC TOTWRUC(4,TOTX2),@CF00541 04S0490 01437000 BNH @RF00490 04S0490 01438000 * SLINEU2='******'; /* OVERFLOW @Y30LB56*/ 01439000 MVC SLINEU2(6,CVTPTR),@CC00542 04S0491 01440000 * ELSE 04S0492 01441000 * DO; /*@Y30LB56*/ 01442000 B @RC00490 04S0492 01443000 @RF00490 DS 0H 04S0493 01444000 * CVDIN=TOTWRUC; /*@Y30LB56*/ 01445000 MVC CVDIN(4,TOTX1),TOTWRUC(TOTX2) 04S0493 01446000 * CALL CONVERT; /* SETUP TOTAL WRITE USAGE 04S0494 01447000 * @Y30LB56*/ 01448000 BAL @14,CONVERT 04S0494 01449000 * SLINEU2=UNPKOUT(2:7); /*@Y30LB56*/ 01450000 MVC SLINEU2(6,CVTPTR),UNPKOUT+1(TOTX1) 04S0495 01451000 * END; /*@Y30LB56*/ 01452000 * IF WRATIO='FF'X THEN /* INDICATE INVALID RATIO@Y30LB56*/ 01453000 @RC00490 CLI WRATIO(TOTX2),255 04S0497 01454000 BNE @RF00497 04S0497 01455000 * SLINEP2(2:3)='**'; /*@Y30LB56*/ 01456000 MVC SLINEP2+1(2,CVTPTR),@CC00524 04S0498 01457000 * ELSE 04S0499 01458000 * DO; /*@Y30LB56*/ 01459000 B @RC00497 04S0499 01460000 @RF00497 DS 0H 04S0500 01461000 * IF WRATIO='64'X THEN /* USE=ERR @Y30LB56*/ 01462000 CLI WRATIO(TOTX2),100 04S0500 01463000 BNE @RF00500 04S0500 01464000 * WRATIO='63'X; /*@Y30LB56*/ 01465000 MVI WRATIO(TOTX2),X'63' 04S0501 01466000 * ELSE 04S0502 01467000 * ; /*@Y30LB56*/ 01468000 @RF00500 DS 0H 04S0503 01469000 * CVD(WRATIO,CVDOUT); /*@Y30LB56*/ 01470000 SLR @05,@05 04S0503 01471000 IC @05,WRATIO(,TOTX2) 04S0503 01472000 CVD @05,CVDOUT(,TOTX1) 04S0503 01473000 * UNPK(SLINEP2(2:3),UNPKIN(3:4)); /*@Y30LB56*/ 01474000 UNPK SLINEP2+1(2,CVTPTR),UNPKIN+2(2,TOTX1) 04S0504 01475000 * SLINEP2(3)=SLINEP2(3)|'F0'X;/* SETUP TOTAL WR ERR/USE=RATIO 01476000 * @Y30LB56*/ 01477000 OI SLINEP2+2(CVTPTR),X'F0' 04S0505 01478000 * END; /*@Y30LB56*/ 01479000 * SLINEP2(1)='.'; /*@Y30LB56*/ 01480000 @RC00497 MVI SLINEP2(CVTPTR),C'.' 04S0507 01481000 * CVDIN=TOTALERR; /*@Y30LB56*/ 01482000 MVC CVDIN(4,TOTX1),TOTALERR(TOTX2) 04S0508 01483000 * CALL CONVERT; /* SETUP TOTAL ERRORS @Y30LB56*/ 01484000 BAL @14,CONVERT 04S0509 01485000 * SLINER3=UNPKOUT(2:7); /*@Y30LB56*/ 01486000 MVC SLINER3(6,CVTPTR),UNPKOUT+1(TOTX1) 04S0510 01487000 * CVDIN=TOTALUSE; /*@Y30LB56*/ 01488000 MVC CVDIN(4,TOTX1),TOTALUSE(TOTX2) 04S0511 01489000 * CALL CONVERT; /* SETUP TOTAL USAGE @Y30LB56*/ 01490000 BAL @14,CONVERT 04S0512 01491000 * SLINEU3=UNPKOUT; /*@Y30LB56*/ 01492000 MVC SLINEU3(7,CVTPTR),UNPKOUT(TOTX1) 04S0513 01493000 * IF TOTRATIO='FF'X THEN /* INDICATE INVALID RATIO@Y30LB56*/ 01494000 CLI TOTRATIO(TOTX2),255 04S0514 01495000 BNE @RF00514 04S0514 01496000 * SLINEP3(2:3)='**'; /*@Y30LB56*/ 01497000 MVC SLINEP3+1(2,CVTPTR),@CC00524 04S0515 01498000 * ELSE 04S0516 01499000 * DO; /*@Y30LB56*/ 01500000 B @RC00514 04S0516 01501000 @RF00514 DS 0H 04S0517 01502000 * IF TOTRATIO='64'X THEN /* USE=ERR @Y30LB56*/ 01503000 CLI TOTRATIO(TOTX2),100 04S0517 01504000 BNE @RF00517 04S0517 01505000 * TOTRATIO='63'X; /*@Y30LB56*/ 01506000 MVI TOTRATIO(TOTX2),X'63' 04S0518 01507000 * ELSE 04S0519 01508000 * ; /*@Y30LB56*/ 01509000 @RF00517 DS 0H 04S0520 01510000 * CVD(TOTRATIO,CVDOUT); /*@Y30LB56*/ 01511000 SLR @05,@05 04S0520 01512000 IC @05,TOTRATIO(,TOTX2) 04S0520 01513000 CVD @05,CVDOUT(,TOTX1) 04S0520 01514000 * UNPK(SLINEP3(2:3),UNPKIN(3:4)); /*@Y30LB56*/ 01515000 UNPK SLINEP3+1(2,CVTPTR),UNPKIN+2(2,TOTX1) 04S0521 01516000 * SLINEP3(3)=SLINEP3(3)|'F0'X;/* SETUP TOT ERR/USE=RATIO 04S0522 01517000 * @Y30LB56*/ 01518000 OI SLINEP3+2(CVTPTR),X'F0' 04S0522 01519000 * IF SLINEP3(2:3)58 THEN /* START A NEW PAGE @Y30LB56*/ 01552000 CLI LINECNT(TOTX1),58 04S0535 01553000 BNH @RF00535 04S0535 01554000 * CALL NEWPAGE; /*@Y30LB56*/ 01555000 BAL @14,NEWPAGE 04S0536 01556000 * ELSE 04S0537 01557000 * ; /* CONTINUE USING THIS PAGE 04S0537 01558000 * @Y30LB56*/ 01559000 @RF00535 DS 0H 04S0538 01560000 * END; /*@Y30LB56*/ 01561000 * ELSE 04S0539 01562000 * ; /* SUPRESS THE REST OF THIS 04S0539 01563000 * REPORT 04S0539 01564000 * @Y30LB56*/ 01565000 @RF00527 DS 0H 04S0540 01566000 * TOTX2=TOTCHAIN; /*@Y30LB56*/ 01567000 L TOTX2,TOTCHAIN(,TOTX2) 03S0540 01568000 * END; /*@Y30LB56*/ 01569000 @DE00433 LTR TOTX2,TOTX2 03S0541 01570000 BNZ @DL00433 03S0541 01571000 * END; /*@Y30LB56*/ 01572000 @RC00196 DS 0H 03S0543 01573000 * IF LINECNT>55 THEN /* START A NEW PAGE @Y30LB56*/ 01574000 @RC00184 CLI LINECNT(TOTX1),55 03S0543 01575000 BNH @RF00543 03S0543 01576000 * CALL NEWPAGE; /*@Y30LB56*/ 01577000 BAL @14,NEWPAGE 03S0544 01578000 * ELSE 03S0545 01579000 * ; /* CONTINUE USING THIS PAGE 03S0545 01580000 * @Y30LB56*/ 01581000 @RF00543 DS 0H 03S0546 01582000 * OUTLINE=DRDS; /*@Y30LB56*/ 01583000 * 03S0546 01584000 MVI OUTLINE+52(CVTPTR),C' ' 03S0546 01585000 MVC OUTLINE+53(80,CVTPTR),OUTLINE+52(CVTPTR) 03S0546 01586000 MVC OUTLINE(52,CVTPTR),DRDS 03S0546 01587000 * /*****************************************************************/ 01588000 * /* */ 01589000 * /* OUTPUT DRD SSIDS WITH HIGHEST ERROR/USAGE=RATIO FIRST */ 01590000 * /* */ 01591000 * /*****************************************************************/ 01592000 * 03S0547 01593000 * WORKX1=1; /*@Y30LB56*/ 01594000 LA WORKX1,1 03S0547 01595000 * DO WHILE(WORKX1<17); /*@Y30LB56*/ 01596000 B @DE00548 03S0548 01597000 @DL00548 DS 0H 03S0549 01598000 * CVDIN1='00'X; /*@Y30LB56*/ 01599000 MVI CVDIN1(TOTX1),X'00' 03S0549 01600000 * WORKVAR=0; /*@Y30LB56*/ 01601000 SLR WORKVAR,WORKVAR 03S0550 01602000 * DO I=1 TO 56; /*@Y30LB56*/ 01603000 LA I,1 03S0551 01604000 @DL00551 DS 0H 03S0552 01605000 * IF CVDIN1'00'X THEN /* CONSTRUCT SSID @Y30LB56*/ 01628000 CLI CVDIN1(TOTX1),0 03S0559 01629000 BNH @RF00559 03S0559 01630000 * DO; /*@Y30LB56*/ 01631000 * SSIDX(WORKVAR)='00'X; /* PREVENT REUSE @Y30LB56*/ 01632000 LR @07,TOTX1 03S0561 01633000 ALR @07,WORKVAR 03S0561 01634000 AL @07,@CF00573 03S0561 01635000 MVI SSIDX(@07),X'00' 03S0561 01636000 * WORKVAR=WORKVAR-1; /*SUBTRACT 1 FOR SSID 00 @ZM31053*/ 01637000 BCTR WORKVAR,0 03S0562 01638000 * SLL(WORKVAR,8); /*@Y30LB56*/ 01639000 SLL WORKVAR,8 03S0563 01640000 * UNPKIN=WORKVAR; /*@Y30LB56*/ 01641000 ST WORKVAR,UNPKIN(,TOTX1) 03S0564 01642000 * UNPK(UNPKOUT(1:3),UNPKIN(3:4)); /*@Y30LB56*/ 01643000 UNPK UNPKOUT(3,TOTX1),UNPKIN+2(2,TOTX1) 03S0565 01644000 * DRDS2(WORKX1,3)='2'; /* SET SSID TYPE CODE @Y30LB56*/ 01645000 LR @04,WORKX1 03S0566 01646000 MH @04,@CH00383 03S0566 01647000 ST @04,@TF00001 03S0566 01648000 ALR @04,CVTPTR 03S0566 01649000 MVI DRDS2-3(@04),C'2' 03S0566 01650000 * DRDS2(WORKX1,4:5)=UNPKOUT(1:2);/* SET ID @Y30LB56*/ 01651000 LR @04,CVTPTR 03S0567 01652000 AL @04,@TF00001 03S0567 01653000 MVC DRDS2-2(2,@04),UNPKOUT(TOTX1) 03S0567 01654000 * WORKX1=WORKX1+1; /* ADVANCE ARRAY INDEX @Y30LB56*/ 01655000 AH WORKX1,@CH00084 03S0568 01656000 * END; /*@Y30LB56*/ 01657000 * ELSE /* ALL SSIDS ARE SET @Y30LB56*/ 01658000 * WORKX1=WORKX1+16; /*@ZM31073*/ 01659000 B @RC00559 03S0570 01660000 @RF00559 AH WORKX1,@CH00188 03S0570 01661000 * END; /*@Y30LB56*/ 01662000 @RC00559 DS 0H 03S0571 01663000 @DE00548 LA @04,17 03S0571 01664000 CR WORKX1,@04 03S0571 01665000 BL @DL00548 03S0571 01666000 * IF WORKX1=17 THEN /* WERE ALL RATIOS ZERO @ZM31073*/ 01667000 CR WORKX1,@04 03S0572 01668000 BNE @RF00572 03S0572 01669000 * DRDS3=DRDSZERO; /* YES, MOVE ALL ZERO @ZM31073*/ 01670000 MVC DRDS3(20,CVTPTR),DRDSZERO 03S0573 01671000 * ELSE; /* NO, SOME SSIDS PRINTED@ZM31073*/ 01672000 @RF00572 DS 0H 03S0575 01673000 * RFY 04S0575 01674000 * R1 RSTD; /*@Y30LB56*/ 01675000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 01676000 LA R1,WORKCALL(,CVTPTR) 04S0576 01677000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 01678000 L @15,@CV00223 04S0577 01679000 BALR @14,@15 04S0577 01680000 * RFY 04S0578 01681000 * R1 UNRSTD; /*@Y30LB56*/ 01682000 * END; /*@Y30LB56*/ 01683000 * ELSE 02S0580 01684000 * ; /* NO WORKAREA AVAILABLE @Y30LB56*/ 01685000 @RF00126 DS 0H 02S0581 01686000 * END; /*@Y30LB56*/ 01687000 * ELSE 02S0582 01688000 * ; /* NO WORKAREA AVAILABLE @Y30LB56 01689000 * @Y30LB56*/ 01690000 @RF00045 DS 0H 02S0583 01691000 * 02S0583 01692000 * /*****************************************************************/ 01693000 * /* */ 01694000 * /* FREE ALLOCATED WORKAREAS */ 01695000 * /* */ 01696000 * /*****************************************************************/ 01697000 * 02S0583 01698000 * GET0PTR=DCS00PTR; /* POINT TO FIRST WORKAREA 02S0583 01699000 * @Y30LB56*/ 01700000 L GET0PTR,DCS00PTR(,CVTPTR) 02S0583 01701000 * DCS00PTR=0; /*@Y30LB56*/ 01702000 SLR @09,@09 02S0584 01703000 ST @09,DCS00PTR(,CVTPTR) 02S0584 01704000 * SPNOLEN=GETWORK; /* PUT SUBPOOL NO AND LEN IN CVT 01705000 * @Y30LB56*/ 01706000 MVC SPNOLEN(4,CVTPTR),GETWORK 02S0585 01707000 * DO WHILE(GET0PTR^=0); /*@Y30LB56*/ 01708000 B @DE00586 02S0586 01709000 @DL00586 DS 0H 02S0587 01710000 * WORKX1=NEXTPTR; /* SAVE POINTER TO NEXT WORK AREA 01711000 * @Y30LB56*/ 01712000 L WORKX1,NEXTPTR(,GET0PTR) 02S0587 01713000 * COREADDR=GET0PTR; /* PUT WORKAREA PTR INTO CVT 01714000 * @Y30LB56*/ 01715000 ST GET0PTR,COREADDR(,CVTPTR) 02S0588 01716000 * RFY 02S0589 01717000 * R1 RSTD; /*@Y30LB56*/ 01718000 * R1=ADDR(WORKCALL); /* PTR TO PTR TO PTR TO CVT 02S0590 01719000 * @Y30LB56*/ 01720000 LA R1,WORKCALL(,CVTPTR) 02S0590 01721000 * CALL ISDAFREE; /* FREE WORKAREA @Y30LB56*/ 01722000 L @15,@CV00144 02S0591 01723000 BALR @14,@15 02S0591 01724000 * RFY 02S0592 01725000 * R1 UNRSTD; /*@Y30LB56*/ 01726000 * GET0PTR=WORKX1; /* POINT TO NEXT WORKAREA OR 0 01727000 * @Y30LB56*/ 01728000 LR GET0PTR,WORKX1 02S0593 01729000 * END; /*@Y30LB56*/ 01730000 @DE00586 LTR GET0PTR,GET0PTR 02S0594 01731000 BNZ @DL00586 02S0594 01732000 * RETURN CODE(RETCODE); /* RETURN TO CALLER* * * * * * * 01733000 * @Y30LB56*/ 01734000 LH @09,RETCODE 01S0595 01735000 L @13,4(,@13) 01S0595 01736000 L @00,@SIZDATD 01S0595 01737000 LR @01,@12 01S0595 01738000 ISDAFSPC R,LV=(0),A=(1) 01739000 LR @15,@09 01S0595 01740000 L @14,12(,@13) 01S0595 01741000 LM @00,@12,20(@13) 01S0595 01742000 BR @14 01S0595 01743000 * 02S0596 01744000 * /*****************************************************************/ 01745000 * /* */ 01746000 * /* ALLOCATE ADDITIONAL WORKING STORAGE */ 01747000 * /* */ 01748000 * /*****************************************************************/ 01749000 * 02S0596 01750000 *GETMORE: 02S0596 01751000 * PROC; /*@Y30LB56*/ 01752000 @EL00001 L @13,4(,@13) 02S0596 01753000 @EF00001 L @00,@SIZDATD 02S0596 01754000 LR @01,@12 02S0596 01755000 ISDAFSPC R,LV=(0),A=(1) 01756000 @ER00001 LM @14,@12,12(@13) 02S0596 01757000 BR @14 02S0596 01758000 GETMORE STM @14,@04,@SA00002 02S0596 01759000 STM @06,@07,@SA00002+28 02S0596 01760000 STM @09,@12,@SA00002+36 02S0596 01761000 * DO; /* GET ANOTHER WORKAREA @Y30LB56*/ 01762000 * WORKX2=GET0INDX; /* SAVE DCS ENTRY POINTER@Y30LB56*/ 01763000 LR WORKX2,GET0INDX 02S0598 01764000 * 03S0599 01765000 * /*****************************************************************/ 01766000 * /* */ 01767000 * /* GET ADDITIONAL WORKAREA. GETWORK IS A FULL WORD CONTAINING A */ 01768000 * /* ONE BYTE SUBPOOL NUMBER, AND A THREE BYTE VALUE INDICATING THE*/ 01769000 * /* NUMBER OF BYTES TO ALLOCATE */ 01770000 * /* */ 01771000 * /*****************************************************************/ 01772000 * 03S0599 01773000 * DO; /*@Y30LB56*/ 01774000 * SPNOLEN=GETWORK; /* SETUP SUBPOOL AND LENGTH IN 01775000 * CVT @Y30LB56*/ 01776000 MVC SPNOLEN(4,CVTPTR),GETWORK 03S0600 01777000 * RFY 03S0601 01778000 * R1 RSTD; /*@Y30LB56*/ 01779000 * R1=ADDR(WORKCALL); /* PTR TO PTR TO PTR TO CVT 03S0602 01780000 * @Y30LB56*/ 01781000 LA R1,WORKCALL(,CVTPTR) 03S0602 01782000 * CALL ISDAGET0; /* GET A WORK AREA @Y30LB56*/ 01783000 L @15,@CV00145 03S0603 01784000 BALR @14,@15 03S0603 01785000 * RFY 03S0604 01786000 * R1 UNRSTD; /*@Y30LB56*/ 01787000 * RFY 03S0605 01788000 * R15 RSTD; /* PROTECT RETURN CODE REG 03S0605 01789000 * @Y30LB56*/ 01790000 * IF R15=0 THEN /* WORKAREA WAS ALLOCATED@Y30LB56*/ 01791000 SLR @14,@14 03S0606 01792000 CR R15,@14 03S0606 01793000 BNE @RF00606 03S0606 01794000 * DO; /*@Y30LB56*/ 01795000 * RETCODE=0; /* SET RETURN CODE TO 0 @Y30LB56*/ 01796000 STH @14,RETCODE 03S0608 01797000 * NEXTPTR=COREADDR; /* CHAIN OLD WORKAREA TO NEW 01798000 * @Y30LB56*/ 01799000 L @14,COREADDR(,CVTPTR) 03S0609 01800000 ST @14,NEXTPTR(,GET0PTR) 03S0609 01801000 * WORKVAR=BLOCKCNT; /* GET PREVIOUS BLOCK COUNT 03S0610 01802000 * @Y30LB56*/ 01803000 LH WORKVAR,BLOCKCNT(,GET0PTR) 03S0610 01804000 * WORKX1=GET0PTR; /* SAVE POINTER TO LAST BLOCK 01805000 * @Y30LB56*/ 01806000 LR WORKX1,GET0PTR 03S0611 01807000 * GET0PTR=NEXTPTR; /* GET POINTER TO NEW WORK AREA 01808000 * @Y30LB56*/ 01809000 LR GET0PTR,@14 03S0612 01810000 * LASTPTR=WORKX1; /* SAVE POINTER TO LAST BLOCK 01811000 * @Y30LB56*/ 01812000 ST WORKX1,LASTPTR(,GET0PTR) 03S0613 01813000 * BLOCKCNT=WORKVAR+1; /* SAVE BLOCK COUNTER @Y30LB56*/ 01814000 LA @14,1 03S0614 01815000 ALR @14,WORKVAR 03S0614 01816000 STH @14,BLOCKCNT(,GET0PTR) 03S0614 01817000 * GET0INDX=STARTPTR; /* POINT TO NEXT AVAIL ENTRY 01818000 * @Y30LB56*/ 01819000 L GET0INDX,STARTPTR(,GET0PTR) 03S0615 01820000 * END; /*@Y30LB56*/ 01821000 * ELSE /* WORKAREA COULD NOT BE @Y30LB56 01822000 * ALLOCATED @Y30LB56*/ 01823000 * RETCODE=4; /* SET RETURN CODE TO 4 @Y30LB56*/ 01824000 B @RC00606 03S0617 01825000 @RF00606 MVC RETCODE(2),@CH00107 03S0617 01826000 * RFY 03S0618 01827000 * R15 UNRSTD; /*@Y30LB56*/ 01828000 @RC00606 DS 0H 03S0619 01829000 * END; /*@Y30LB56*/ 01830000 * IF RETCODE=0 THEN /* WORKAREA WAS OBTAINED @Y30LB56*/ 01831000 ICM @09,3,RETCODE 02S0620 01832000 BNZ @RF00620 02S0620 01833000 * DO; /*@Y30LB56*/ 01834000 * BLOCKID='DCS '; /* SET WORKAREA ID @Y30LB56*/ 01835000 MVC BLOCKID(4,GET0PTR),@CC00557 02S0622 01836000 * GET0NEXT=GET0INDX; /* POINT TO NEXT SLOT @Y30LB56*/ 01837000 ST GET0INDX,GET0NEXT 02S0623 01838000 * GET0INDX=WORKX2; /* RESTORE DCS ENTRY POINTER 01839000 * @Y30LB56*/ 01840000 LR GET0INDX,WORKX2 02S0624 01841000 * END; /*@Y30LB56*/ 01842000 * ELSE 02S0626 01843000 * ; /* NO MORE WORKAREA AVAILABLE 01844000 * @Y30LB56*/ 01845000 @RF00620 DS 0H 02S0627 01846000 * END; /*@Y30LB56*/ 01847000 * END GETMORE; /*@Y30LB56*/ 01848000 @EL00002 DS 0H 02S0628 01849000 @EF00002 DS 0H 02S0628 01850000 @ER00002 LM @14,@04,@SA00002 02S0628 01851000 LM @06,@07,@SA00002+28 02S0628 01852000 LM @09,@12,@SA00002+36 02S0628 01853000 BR @14 02S0628 01854000 * 02S0629 01855000 * /*****************************************************************/ 01856000 * /* */ 01857000 * /* OUTPUT PAGE HEADING AND RESET LINE COUNTER */ 01858000 * /* */ 01859000 * /*****************************************************************/ 01860000 * 02S0629 01861000 *NEWPAGE: 02S0629 01862000 * PROC; /*@Y30LB56*/ 01863000 NEWPAGE STM @14,@12,@SA00003 02S0629 01864000 * LINECNT=9; /* RESET LINE COUNTER @Y30LB56*/ 01865000 MVI LINECNT(TOTX1),X'09' 02S0630 01866000 * OUTLINE=LINE4; /*@Y30LB56*/ 01867000 MVI OUTLINE+128(CVTPTR),C' ' 02S0631 01868000 MVC OUTLINE+129(4,CVTPTR),OUTLINE+128(CVTPTR) 02S0631 01869000 MVC OUTLINE(128,CVTPTR),LINE4 02S0631 01870000 * HEADSER=SER; /* INSERT USER OPTIONS @Y30LB56*/ 01871000 L @15,DCS00PTR(,CVTPTR) 02S0632 01872000 MVC HEADSER(12,CVTPTR),SER(@15) 02S0632 01873000 * HEADRAT=RATIO; /*@Y30LB56*/ 01874000 MVC HEADRAT(2,CVTPTR),RATIO(@15) 02S0633 01875000 * IF SUM='Y' THEN 02S0634 01876000 CLI SUM(@15),C'Y' 02S0634 01877000 BNE @RF00634 02S0634 01878000 * HEADSUM='YES'; /*@Y30LB56*/ 01879000 MVC HEADSUM(3,CVTPTR),@CC00562 02S0635 01880000 * ELSE 02S0636 01881000 * ; /*@Y30LB56*/ 01882000 @RF00634 DS 0H 02S0637 01883000 * RFY 03S0637 01884000 * R1 RSTD; /*@Y30LB56*/ 01885000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 01886000 LA R1,WORKCALL(,CVTPTR) 03S0638 01887000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 01888000 L @15,@CV00223 03S0639 01889000 BALR @14,@15 03S0639 01890000 * RFY 03S0640 01891000 * R1 UNRSTD; /*@Y30LB56*/ 01892000 * IF SUM='N' THEN /* OUTPUT DETAIL HEADINGS@Y30LB56*/ 01893000 L @01,DCS00PTR(,CVTPTR) 02S0641 01894000 CLI SUM(@01),C'N' 02S0641 01895000 BNE @RF00641 02S0641 01896000 * DO; /*@Y30LB56*/ 01897000 * OUTLINE=LINE7SN; /*@Y30LB56*/ 01898000 MVI OUTLINE+125(CVTPTR),C' ' 02S0643 01899000 MVC OUTLINE+126(7,CVTPTR),OUTLINE+125(CVTPTR) 02S0643 01900000 MVC OUTLINE(125,CVTPTR),LINE7SN 02S0643 01901000 * RFY 03S0644 01902000 * R1 RSTD; /*@Y30LB56*/ 01903000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 01904000 LA R1,WORKCALL(,CVTPTR) 03S0645 01905000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 01906000 L @15,@CV00223 03S0646 01907000 BALR @14,@15 03S0646 01908000 * RFY 03S0647 01909000 * R1 UNRSTD; /*@Y30LB56*/ 01910000 * OUTLINE=LINE8SN; /*@Y30LB56*/ 01911000 MVI OUTLINE+125(CVTPTR),C' ' 02S0648 01912000 MVC OUTLINE+126(7,CVTPTR),OUTLINE+125(CVTPTR) 02S0648 01913000 MVC OUTLINE(125,CVTPTR),LINE8SN 02S0648 01914000 * RFY 03S0649 01915000 * R1 RSTD; /*@Y30LB56*/ 01916000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 01917000 LA R1,WORKCALL(,CVTPTR) 03S0650 01918000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 01919000 L @15,@CV00223 03S0651 01920000 BALR @14,@15 03S0651 01921000 * RFY 03S0652 01922000 * R1 UNRSTD; /*@Y30LB56*/ 01923000 * OUTLINE=' '; /*@Y30LB56*/ 01924000 MVI OUTLINE+1(CVTPTR),C' ' 02S0653 01925000 MVC OUTLINE+2(131,CVTPTR),OUTLINE+1(CVTPTR) 02S0653 01926000 MVI OUTLINE(CVTPTR),C' ' 02S0653 01927000 * DO I=2 TO 128 BY 2; /*@ZM31073*/ 01928000 LA I,2 02S0654 01929000 @DL00654 DS 0H 02S0655 01930000 * OUTLINE(I)='-'; /* BUILD - - - LINE @Y30LB56*/ 01931000 LR @06,CVTPTR 02S0655 01932000 ALR @06,I 02S0655 01933000 MVI OUTLINE-1(@06),C'-' 02S0655 01934000 * END; /*@Y30LB56*/ 01935000 AH I,@CH00103 02S0656 01936000 CH I,@CH00545 02S0656 01937000 BNH @DL00654 02S0656 01938000 * OUTLINE(28)='|'; /*@Y30LB56*/ 01939000 MVI OUTLINE+27(CVTPTR),C'|' 02S0657 01940000 * OUTLINE(52)='|'; /*@Y30LB56*/ 01941000 MVI OUTLINE+51(CVTPTR),C'|' 02S0658 01942000 * OUTLINE(98)='|'; /*@ZM31073*/ 01943000 MVI OUTLINE+97(CVTPTR),C'|' 02S0659 01944000 * OUTLINE(118)='|'; /*@ZM31073*/ 01945000 MVI OUTLINE+117(CVTPTR),C'|' 02S0660 01946000 * RFY 03S0661 01947000 * R1 RSTD; /*@Y30LB56*/ 01948000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 01949000 LA R1,WORKCALL(,CVTPTR) 03S0662 01950000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 01951000 L @15,@CV00223 03S0663 01952000 BALR @14,@15 03S0663 01953000 * RFY 03S0664 01954000 * R1 UNRSTD; /*@Y30LB56*/ 01955000 * END; /*@Y30LB56*/ 01956000 * ELSE /* OUTPUT SUMMARY HEADING@Y30LB56*/ 01957000 * DO; /*@Y30LB56*/ 01958000 B @RC00641 02S0666 01959000 @RF00641 DS 0H 02S0667 01960000 * OUTLINE=LINE7SY; /*@Y30LB56*/ 01961000 MVI OUTLINE+102(CVTPTR),C' ' 02S0667 01962000 MVC OUTLINE+103(30,CVTPTR),OUTLINE+102(CVTPTR) 02S0667 01963000 MVC OUTLINE(102,CVTPTR),LINE7SY 02S0667 01964000 * RFY 03S0668 01965000 * R1 RSTD; /*@Y30LB56*/ 01966000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 01967000 LA R1,WORKCALL(,CVTPTR) 03S0669 01968000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 01969000 L @15,@CV00223 03S0670 01970000 BALR @14,@15 03S0670 01971000 * RFY 03S0671 01972000 * R1 UNRSTD; /*@Y30LB56*/ 01973000 * OUTLINE=LINE8SY; /*@Y30LB56*/ 01974000 MVI OUTLINE+115(CVTPTR),C' ' 02S0672 01975000 MVC OUTLINE+116(17,CVTPTR),OUTLINE+115(CVTPTR) 02S0672 01976000 MVC OUTLINE(115,CVTPTR),LINE8SY 02S0672 01977000 * RFY 03S0673 01978000 * R1 RSTD; /*@Y30LB56*/ 01979000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 01980000 LA R1,WORKCALL(,CVTPTR) 03S0674 01981000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 01982000 L @15,@CV00223 03S0675 01983000 BALR @14,@15 03S0675 01984000 * RFY 03S0676 01985000 * R1 UNRSTD; /*@Y30LB56*/ 01986000 * OUTLINE=' '; /*@Y30LB56*/ 01987000 MVI OUTLINE+1(CVTPTR),C' ' 02S0677 01988000 MVC OUTLINE+2(131,CVTPTR),OUTLINE+1(CVTPTR) 02S0677 01989000 MVI OUTLINE(CVTPTR),C' ' 02S0677 01990000 * DO I=2 TO 114 BY 2; /*@Y30LB56*/ 01991000 LA I,2 02S0678 01992000 @DL00678 DS 0H 02S0679 01993000 * OUTLINE(I)='-'; /* BUILD - - - LINE @Y30LB56*/ 01994000 LR @06,CVTPTR 02S0679 01995000 ALR @06,I 02S0679 01996000 MVI OUTLINE-1(@06),C'-' 02S0679 01997000 * END; /*@Y30LB56*/ 01998000 AH I,@CH00103 02S0680 01999000 CH I,@CH00563 02S0680 02000000 BNH @DL00678 02S0680 02001000 * OUTLINE(20)='|'; /*@Y30LB56*/ 02002000 MVI OUTLINE+19(CVTPTR),C'|' 02S0681 02003000 * OUTLINE(56)='|'; /*@Y30LB56*/ 02004000 MVI OUTLINE+55(CVTPTR),C'|' 02S0682 02005000 * OUTLINE(96)='|'; /*@Y30LB56*/ 02006000 MVI OUTLINE+95(CVTPTR),C'|' 02S0683 02007000 * RFY 03S0684 02008000 * R1 RSTD; /*@Y30LB56*/ 02009000 * R1=ADDR(WORKCALL); /*@Y30LB56*/ 02010000 LA R1,WORKCALL(,CVTPTR) 03S0685 02011000 * CALL ISDAPRT0; /* PRINT LINE @Y30LB56*/ 02012000 L @15,@CV00223 03S0686 02013000 BALR @14,@15 03S0686 02014000 * RFY 03S0687 02015000 * R1 UNRSTD; /*@Y30LB56*/ 02016000 * END; /*@Y30LB56*/ 02017000 * END NEWPAGE; /*@Y30LB56*/ 02018000 @EL00003 DS 0H 02S0689 02019000 @EF00003 DS 0H 02S0689 02020000 @ER00003 LM @14,@12,@SA00003 02S0689 02021000 BR @14 02S0689 02022000 * 02S0690 02023000 * /*****************************************************************/ 02024000 * /* */ 02025000 * /* CONVERTS CVDIN TO DECIMAL AND UNPACKS IT INTO UNPKOUT. LEADING*/ 02026000 * /* ZEROS ARE CONVERTED TO BLANKS. */ 02027000 * /* */ 02028000 * /*****************************************************************/ 02029000 * 02S0690 02030000 *CONVERT: 02S0690 02031000 * PROC; /*@Y30LB56*/ 02032000 CONVERT STM @14,@12,12(@13) 02S0690 02033000 * CVD(CVDIN,CVDOUT); /* CONVERT TO DECIMAL @Y30LB56*/ 02034000 L @02,CVDIN(,TOTX1) 02S0691 02035000 CVD @02,CVDOUT(,TOTX1) 02S0691 02036000 * UNPK(UNPKOUT,UNPKIN); /* MAKE IT PRINTABLE @Y30LB56*/ 02037000 UNPK UNPKOUT(7,TOTX1),UNPKIN(4,TOTX1) 02S0692 02038000 * UNPKOUT(7)=UNPKOUT(7)|'F0'X; /* OVERLAY SIGN @Y30LB56*/ 02039000 OI UNPKOUT+6(TOTX1),X'F0' 02S0693 02040000 * DO I=1 TO 6 WHILE(UNPKOUT(I)='0'); /*@Y30LB56*/ 02041000 LA I,1 02S0694 02042000 @DL00694 LR @06,TOTX1 02S0694 02043000 ALR @06,I 02S0694 02044000 CLI UNPKOUT-1(@06),C'0' 02S0694 02045000 BNE @DC00694 02S0694 02046000 * UNPKOUT(I)=' '; /* SUPRESS LEADING ZEROS @Y30LB56*/ 02047000 LR @06,TOTX1 02S0695 02048000 ALR @06,I 02S0695 02049000 MVI UNPKOUT-1(@06),C' ' 02S0695 02050000 * END; /*@Y30LB56*/ 02051000 AH I,@CH00084 02S0696 02052000 CH I,@CH00096 02S0696 02053000 BNH @DL00694 02S0696 02054000 @DC00694 DS 0H 02S0697 02055000 * CVDIN=CVDIN&&CVDIN; /* ZERO INPUT AREA @Y30LB56*/ 02056000 L @02,CVDIN(,TOTX1) 02S0697 02057000 LR @15,@02 02S0697 02058000 XR @15,@02 02S0697 02059000 ST @15,CVDIN(,TOTX1) 02S0697 02060000 * END CONVERT; /*@Y30LB56*/ 02061000 @EL00004 DS 0H 02S0698 02062000 @EF00004 DS 0H 02S0698 02063000 @ER00004 LM @14,@12,12(@13) 02S0698 02064000 BR @14 02S0698 02065000 * END ISDADCS1 /*@Y30LB56*/ 02066000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. * 02067000 */*%INCLUDE SYSLIB (ISDACVT ) * 02068000 */*%INCLUDE SYSLIB (ISDAPRMS) * 02069000 */*%INCLUDE SYSLIB (ISDADCS5) * 02070000 */*%INCLUDE SYSUT5 (WORKTOT ) * 02071000 */*%INCLUDE SYSLIB (ISDAGHDR) * 02072000 */*%INCLUDE SYSUT5 (DCSDCLS2) * 02073000 */*%INCLUDE SYSUT5 (REPORT ) * 02074000 */*%INCLUDE SYSUT5 (NEWCSN ) * 02075000 */*%INCLUDE SYSUT5 (NEWCSN ) * 02076000 */*%INCLUDE SYSUT5 (TOTBUILD) * 02077000 */*%INCLUDE SYSUT5 (DOREPORT) * 02078000 */*%INCLUDE SYSUT5 (PRINT ) * 02079000 */*%INCLUDE SYSUT5 (PRINT ) * 02080000 */*%INCLUDE SYSUT5 (PRINT ) * 02081000 */*%INCLUDE SYSUT5 (PRINT ) * 02082000 */*%INCLUDE SYSUT5 (PRINT ) * 02083000 */*%INCLUDE SYSUT5 (PRINT ) * 02084000 */*%INCLUDE SYSUT5 (PRINT ) * 02085000 */*%INCLUDE SYSUT5 (PRINT ) * 02086000 */*%INCLUDE SYSUT5 (PRINT ) * 02087000 */*%INCLUDE SYSUT5 (PRINT ) * 02088000 */*%INCLUDE SYSUT5 (PRINT ) * 02089000 */*%INCLUDE SYSUT5 (PRINT ) * 02090000 */*%INCLUDE SYSUT5 (PRINT ) * 02091000 */*%INCLUDE SYSUT5 (PRINT ) * 02092000 */*%INCLUDE SYSUT5 (PRINT ) * 02093000 */*%INCLUDE SYSUT5 (LINEFMT1) * 02094000 */*%INCLUDE SYSUT5 (LINEFMT2) * 02095000 */*%INCLUDE SYSUT5 (LINEFMT3) * 02096000 */*%INCLUDE SYSUT5 (DRDS ) * 02097000 */*%INCLUDE SYSUT5 (CLEANUP ) * 02098000 */*%INCLUDE SYSUT5 (GETMORE2) * 02099000 */*%INCLUDE SYSUT5 (GETMORE ) * 02100000 */*%INCLUDE SYSUT5 (NEWPAGE ) * 02101000 */*%INCLUDE SYSUT5 (CONVERT ) * 02102000 *; 01S0699 02103000 @DATA DS 0H 02104000 @CH00084 DC H'1' 02105000 @CH00103 DC H'2' 02106000 @CH00088 DC H'3' 02107000 @CH00107 DC H'4' 02108000 @CH00383 DC H'5' 02109000 @CH00096 DC H'6' 02110000 @CH00184 DC H'9' 02111000 @CH00188 DC H'16' 02112000 @CH00462 DC H'52' 02113000 @CH00552 DC H'56' 02114000 @CH00518 DC H'58' 02115000 @CH00511 DC H'100' 02116000 @CH00563 DC H'114' 02117000 @CH00545 DC H'128' 02118000 @CH00568 DC H'148' 02119000 @CH00531 DC H'183' 02120000 @DATD DSECT 02121000 DS 0F 02122000 @SA00001 DS 18F 02123000 @PC00001 DS 1F 02124000 @SA00003 DS 0F 02125000 @SA00002 DS 0F 02126000 DS 15F 02127000 @TF00001 DS F 02128000 ISDADCS1 CSECT 02129000 DS 0F 02130000 @CF00541 DC F'999999' 02131000 @CF00543 DC F'9999999' 02132000 @CF00508 DC F'1073700000' 02133000 @CF00573 DC F'-1' 02134000 @CF00516 DC XL4'F0' 02135000 @DATD DSECT 02136000 DS 0D 02137000 GET0NEXT DS A 02138000 RETCODE DS H 02139000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 02140000 @ENDDATD EQU * 02141000 ISDADCS1 CSECT 02142000 NOPR ((@ENDDATD-@DATD)/161*16) 02143000 DS 0F 02144000 @SIZDATD DC AL1(0) 02145000 DC AL3(@ENDDATD-@DATD) 02146000 @CV00144 DC V(ISDAFREE) 02147000 @CV00145 DC V(ISDAGET0) 02148000 @CV00223 DC V(ISDAPRT0) 02149000 DS 0D 02150000 GETWORK DS FL4 02151000 ORG GETWORK 02152000 @NM00010 DC AL1(1) 02153000 @NM00011 DC AL3(2048) 02154000 ORG GETWORK+4 02155000 @CC00519 DC C'(CONTINUED)' 02156000 @CC00534 DC C'OVERFLOW ' 02157000 @CC00537 DC C'LOAD CHECK' 02158000 @CC00539 DC C'THRESHOLD ' 02159000 @CC00544 DC C'*******' 02160000 @CC00542 EQU @CC00544 02161000 @CC00557 DC C'DCS ' 02162000 @CC00562 DC C'YES' 02163000 @CC00524 EQU @CC00544 02164000 PATCH DS CL50 02165000 ORG PATCH 02166000 @NM00003 DC 50X'00' 02167000 ORG PATCH+50 02168000 LINE4 DS CL128 02169000 ORG LINE4 02170000 @NM00013 DC CL1'1' 02171000 @NM00014 DC CL40'REPORT 16 - DATA CARTRIDGE STATISTICS ' 02172000 @NM00015 DC CL27'OPTIONS: CSN(123 56789ABC),' 02173000 @NM00016 DC CL25'RATIO(00),SUMMARY(NO ) ' 02174000 @NM00017 DC CL35'DATA FROM MSS FORMAT 4, SA FORMAT D' 02175000 ORG LINE4+128 02176000 LINE7SN DS CL125 02177000 ORG LINE7SN 02178000 @NM00018 DC CL1'0' 02179000 @NM00019 DC CL31'CARTRIDGE ' 02180000 @NM00020 DC CL45' STRIPES READ ' 02181000 @NM00021 DC CL48'STRIPES WRITTEN DRD MSC PATH TO REASON' 02182000 ORG LINE7SN+125 02183000 LINE8SN DS CL125 02184000 ORG LINE8SN 02185000 @NM00022 DC CL1' ' 02186000 @NM00023 DC CL31'SERIAL NUMBER ' 02187000 @NM00024 DC CL45'DATE TIME ERRORS/USAGE=RATIO ' 02188000 @NM00025 DC CL48'ERRORS/USAGE=RATIO SSID SA/DRC/DRD LOGGED' 02189000 ORG LINE8SN+125 02190000 LINE7SY DS CL102 02191000 ORG LINE7SY 02192000 @NM00026 DC CL1'0' 02193000 @NM00027 DC CL38'CARTRIDGE ' 02194000 @NM00028 DC CL37' TOTAL STRIPES READ ' 02195000 @NM00029 DC CL26'TOTAL STRIPES WRITE TOTAL' 02196000 ORG LINE7SY+102 02197000 LINE8SY DS CL115 02198000 ORG LINE8SY 02199000 @NM00030 DC CL1' ' 02200000 @NM00031 DC CL38'SERIAL NUMBER FROM DATE TIME ' 02201000 @NM00032 DC CL37'TO DATE TIME ERRORS/USAGE=RATIO ' 02202000 @NM00033 DC CL39'ERRORS/USAGE=RATIO ERRORS/USAGE=RATIO' 02203000 ORG LINE8SY+115 02204000 MSGNONE DS CL95 02205000 ORG MSGNONE 02206000 @NM00034 DC CL1'0' 02207000 @NM00035 DC CL45'THE SPECIFIED RATIO OPTION EXCEEDS THE HIGHES' 02208000 @NM00036 DC CL42'T DATA CARTRIDGE ''TOTAL ERROR/USAGE RATIO''' 02209000 @NM00037 DC CL7' OF .00' 02210000 ORG MSGNONE+95 02211000 TOTALE DC CL14'TOTAL ERRORS =' 02212000 TOTALU DC CL13'TOTAL USAGE =' 02213000 SUBTOT DC CL10'SUBTOTALS:' 02214000 TOTALR DC CL9'RATIO = .' 02215000 DRDS DS CL52 02216000 ORG DRDS 02217000 @NM00040 DC CL1'0' 02218000 @NM00041 DC CL35'DRDS IN ''HIGHEST ERROR/USAGE=RATIO ' 02219000 @NM00042 DC CL16'FIRST'' SEQUENCE:' 02220000 ORG DRDS+52 02221000 DRDSZERO DC CL20' ALL RATIOS ARE ZERO' 02222000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 02223000 @01 EQU 01 02224000 @02 EQU 02 02225000 @03 EQU 03 02226000 @04 EQU 04 02227000 @05 EQU 05 02228000 @06 EQU 06 02229000 @07 EQU 07 02230000 @08 EQU 08 02231000 @09 EQU 09 02232000 @10 EQU 10 02233000 @11 EQU 11 02234000 @12 EQU 12 02235000 @13 EQU 13 02236000 @14 EQU 14 02237000 @15 EQU 15 02238000 TOTX2 EQU @04 02239000 TOTX1 EQU @03 02240000 SORTX EQU @06 02241000 I EQU @07 02242000 WORKX2 EQU @07 02243000 WORKX1 EQU @05 02244000 WORKVAR EQU @06 02245000 GET0INDX EQU @05 02246000 GET0PTR EQU @08 02247000 LPARMPTR EQU @03 02248000 CVTPTR EQU @02 02249000 R1 EQU @01 02250000 R15 EQU @15 02251000 ISDACVT EQU 0 02252000 CVTPTRS0 EQU ISDACVT 02253000 PARMPTR EQU CVTPTRS0+8 02254000 DCS00PTR EQU CVTPTRS0+40 02255000 WORKCALL EQU CVTPTRS0+96 02256000 GET0CALL EQU ISDACVT+100 02257000 SPNOLEN EQU GET0CALL 02258000 COREADDR EQU GET0CALL+4 02259000 HEXPCALL EQU ISDACVT+108 02260000 PRT0CALL EQU ISDACVT+120 02261000 OUTLINE EQU PRT0CALL 02262000 SDADATD EQU ISDACVT+256 02263000 PRTDATD EQU ISDACVT+416 02264000 ISDAPRMS EQU 0 02265000 CINPUT EQU ISDAPRMS 02266000 CSTART EQU ISDAPRMS+2 02267000 CEND EQU ISDAPRMS+6 02268000 CFSCONLY EQU ISDAPRMS+13 02269000 CSSIDF EQU ISDAPRMS+17 02270000 CSERIAL EQU ISDAPRMS+21 02271000 CREPORTS EQU ISDAPRMS+33 02272000 GET0HDR1 EQU 28 02273000 RATIO EQU GET0HDR1 02274000 SUM EQU GET0HDR1+2 02275000 SER EQU GET0HDR1+4 02276000 GET0PSV EQU GET0HDR1+20 02277000 GET0XSV EQU GET0HDR1+24 02278000 DCSENTRY EQU 0 02279000 CHAINPTR EQU DCSENTRY 02280000 DATIME EQU DCSENTRY+4 02281000 ADATE EQU DATIME 02282000 ATIME EQU DATIME+4 02283000 SNS4D EQU DCSENTRY+12 02284000 SNS1A2 EQU SNS4D 02285000 SNSSID EQU SNS1A2 02286000 SNS9A10 EQU SNS4D+2 02287000 SNS12T31 EQU SNS4D+4 02288000 SNSRDUC EQU SNS12T31 02289000 SNSRDCK EQU SNS12T31+2 02290000 SNSBYT14 EQU SNSRDCK 02291000 SNSWRUC EQU SNS12T31+4 02292000 SNSWRCK EQU SNS12T31+6 02293000 SNSBYT20 EQU SNS12T31+8 02294000 SNSFORCE EQU SNSBYT20 02295000 SNSLDCHK EQU SNSBYT20 02296000 SNSCSN EQU SNS12T31+9 02297000 SNSRDRAT EQU DCSENTRY+40 02298000 SNSWRAT EQU DCSENTRY+41 02299000 ISDAGHDR EQU 0 02300000 STARTPTR EQU ISDAGHDR 02301000 GET0SPLN EQU ISDAGHDR+8 02302000 GET0LEN EQU GET0SPLN+1 02303000 NEXTPTR EQU ISDAGHDR+12 02304000 LASTPTR EQU ISDAGHDR+16 02305000 BLOCKID EQU ISDAGHDR+20 02306000 BLOCKCNT EQU ISDAGHDR+24 02307000 TOTALS EQU 0 02308000 TOTCHAIN EQU TOTALS 02309000 OLDEST EQU TOTALS+4 02310000 NEWEST EQU TOTALS+8 02311000 TOTRDUC EQU TOTALS+12 02312000 TOTRDCK EQU TOTALS+16 02313000 TOTWRUC EQU TOTALS+20 02314000 TOTWRCK EQU TOTALS+24 02315000 DCSN EQU TOTALS+28 02316000 TOTALUSE EQU TOTALS+40 02317000 TOTALERR EQU TOTALS+44 02318000 @NM00092 EQU TOTALS+48 02319000 RDRATIO EQU @NM00092 02320000 WRATIO EQU @NM00092+1 02321000 TOTRATIO EQU @NM00092+2 02322000 TOTNUM EQU @NM00092+3 02323000 SSIDX EQU 0 02324000 SSIDR EQU SSIDX 02325000 WORKAREA EQU 64 02326000 CVDOUT EQU WORKAREA 02327000 UNPKIN EQU CVDOUT+4 02328000 CVDIN EQU WORKAREA+8 02329000 CVDIN3 EQU CVDIN+1 02330000 CVDIN2 EQU CVDIN3+1 02331000 CVDIN1 EQU CVDIN2+1 02332000 TOTSTART EQU WORKAREA+12 02333000 OLDATE EQU WORKAREA+16 02334000 LINECNT EQU WORKAREA+20 02335000 TOTSW EQU WORKAREA+21 02336000 UNPKOUT EQU WORKAREA+25 02337000 WORKPTR EQU 0 02338000 @NM00038 EQU OUTLINE 02339000 WORSTRAT EQU @NM00038+93 02340000 @NM00043 EQU OUTLINE 02341000 HEADSER EQU @NM00043+54 02342000 HEADRAT EQU @NM00043+74 02343000 HEADSUM EQU @NM00043+86 02344000 @NM00047 EQU OUTLINE 02345000 LINSER EQU @NM00047+1 02346000 LINECONT EQU @NM00047+15 02347000 LINDATE EQU @NM00047+32 02348000 LINTIME EQU @NM00047+40 02349000 LINER1 EQU @NM00047+56 02350000 LINEU1 EQU @NM00047+63 02351000 LINEP1 EQU @NM00047+70 02352000 LINER2 EQU @NM00047+77 02353000 LINEU2 EQU @NM00047+84 02354000 LINEP2 EQU @NM00047+91 02355000 LINESSID EQU @NM00047+99 02356000 LINESA EQU @NM00047+106 02357000 LINEDRC EQU @NM00047+110 02358000 LINEDRD EQU @NM00047+114 02359000 LINEREAS EQU @NM00047+119 02360000 @NM00063 EQU OUTLINE 02361000 TOTALE1 EQU @NM00063+5 02362000 TOTALE2 EQU @NM00063+19 02363000 @NM00065 EQU OUTLINE 02364000 TOTALU1 EQU @NM00065+5 02365000 TOTALU2 EQU @NM00065+18 02366000 SUBTOT1 EQU @NM00065+44 02367000 SUBTE1 EQU @NM00065+55 02368000 SUBTU1 EQU @NM00065+62 02369000 SUBTP1 EQU @NM00065+70 02370000 SUBTE2 EQU @NM00065+76 02371000 SUBTU2 EQU @NM00065+83 02372000 SUBTP2 EQU @NM00065+91 02373000 @NM00074 EQU OUTLINE 02374000 TOTALR1 EQU @NM00074+5 02375000 TOTALR2 EQU @NM00074+14 02376000 @NM00076 EQU OUTLINE 02377000 SLINSER EQU @NM00076+1 02378000 SLINDATF EQU @NM00076+22 02379000 SLINTIMF EQU @NM00076+29 02380000 SLINDATO EQU @NM00076+39 02381000 SLINTIMT EQU @NM00076+46 02382000 SLINER1 EQU @NM00076+55 02383000 SLINEU1 EQU @NM00076+62 02384000 SLINEP1 EQU @NM00076+70 02385000 SLINER2 EQU @NM00076+75 02386000 SLINEU2 EQU @NM00076+82 02387000 SLINEP2 EQU @NM00076+90 02388000 SLINER3 EQU @NM00076+96 02389000 SLINEU3 EQU @NM00076+103 02390000 SLINEP3 EQU @NM00076+112 02391000 @NM00091 EQU OUTLINE 02392000 DRDS2 EQU @NM00091+52 02393000 DRDS3 EQU OUTLINE+52 02394000 * START UNREFERENCED COMPONENTS 02395000 DRDS1 EQU @NM00091 02396000 @NM00090 EQU @NM00076+110 02397000 @NM00089 EQU @NM00076+102 02398000 @NM00088 EQU @NM00076+93 02399000 @NM00087 EQU @NM00076+88 02400000 @NM00086 EQU @NM00076+81 02401000 @NM00085 EQU @NM00076+73 02402000 @NM00084 EQU @NM00076+68 02403000 @NM00083 EQU @NM00076+61 02404000 @NM00082 EQU @NM00076+54 02405000 @NM00081 EQU @NM00076+45 02406000 @NM00080 EQU @NM00076+37 02407000 @NM00079 EQU @NM00076+28 02408000 @NM00078 EQU @NM00076+13 02409000 @NM00077 EQU @NM00076 02410000 @NM00075 EQU @NM00074 02411000 @NM00073 EQU @NM00065+89 02412000 @NM00072 EQU @NM00065+82 02413000 @NM00071 EQU @NM00065+73 02414000 @NM00070 EQU @NM00065+68 02415000 @NM00069 EQU @NM00065+61 02416000 @NM00068 EQU @NM00065+54 02417000 @NM00067 EQU @NM00065+25 02418000 @NM00066 EQU @NM00065 02419000 @NM00064 EQU @NM00063 02420000 @NM00062 EQU @NM00047+115 02421000 @NM00061 EQU @NM00047+111 02422000 @NM00060 EQU @NM00047+107 02423000 @NM00059 EQU @NM00047+102 02424000 @NM00058 EQU @NM00047+94 02425000 @NM00057 EQU @NM00047+89 02426000 @NM00056 EQU @NM00047+82 02427000 @NM00055 EQU @NM00047+73 02428000 @NM00054 EQU @NM00047+68 02429000 @NM00053 EQU @NM00047+61 02430000 @NM00052 EQU @NM00047+48 02431000 @NM00051 EQU @NM00047+38 02432000 @NM00050 EQU @NM00047+26 02433000 @NM00049 EQU @NM00047+13 02434000 @NM00048 EQU @NM00047 02435000 @NM00046 EQU @NM00043+76 02436000 @NM00045 EQU @NM00043+66 02437000 @NM00044 EQU @NM00043 02438000 @NM00039 EQU @NM00038 02439000 @NM00097 EQU WORKAREA+22 02440000 @NM00096 EQU CVDIN2 02441000 @NM00095 EQU CVDIN3 02442000 @NM00094 EQU CVDIN 02443000 @NM00093 EQU CVDOUT 02444000 @NM00012 EQU ISDAGHDR+26 02445000 GET0SPNO EQU GET0SPLN 02446000 ENDPTR EQU ISDAGHDR+4 02447000 @NM00009 EQU DCSENTRY+42 02448000 @NM00008 EQU SNS4D+25 02449000 SNSAVAL4 EQU SNSBYT20 02450000 OFLOWRCK EQU SNSWRCK 02451000 @NM00007 EQU SNSWRCK 02452000 OFLOWRUC EQU SNSWRUC 02453000 OFLORDCK EQU SNSBYT14 02454000 @NM00006 EQU SNSBYT14 02455000 OFLORDUC EQU SNSRDUC 02456000 SNSADDR EQU SNS9A10 02457000 SNSBYT9 EQU SNS9A10 02458000 SNSBYT1 EQU SNS1A2 02459000 @NM00005 EQU GET0HDR1+18 02460000 RETCDSV EQU GET0HDR1+16 02461000 @NM00004 EQU GET0HDR1+3 02462000 CTRACE EQU ISDAPRMS+48 02463000 CGEN EQU ISDAPRMS+47 02464000 CDETAIL EQU ISDAPRMS+46 02465000 CPERIOD EQU ISDAPRMS+45 02466000 CPWR EQU CREPORTS+11 02467000 CAPRSUU EQU CREPORTS+10 02468000 CDRC EQU CREPORTS+9 02469000 CDAT EQU CREPORTS+8 02470000 CCSBCSF EQU CREPORTS+7 02471000 CDCKTLX EQU CREPORTS+6 02472000 CEQC EQU CREPORTS+5 02473000 CFSC EQU CREPORTS+4 02474000 CDHEDHU EQU CREPORTS+3 02475000 CSUM EQU CREPORTS+2 02476000 CPAD EQU CREPORTS+1 02477000 CDCS EQU CREPORTS 02478000 CSERNO EQU CSERIAL+4 02479000 @NM00002 EQU CSERIAL+3 02480000 CIBM EQU CSERIAL 02481000 CRATIO EQU ISDAPRMS+19 02482000 CSSID EQU CSSIDF 02483000 @NM00001 EQU CSSIDF 02484000 CFSC34 EQU CFSCONLY+2 02485000 CFSC12 EQU CFSCONLY 02486000 CTYPE EQU ISDAPRMS+11 02487000 CSUMMARY EQU ISDAPRMS+10 02488000 CENDDAY EQU CEND+2 02489000 CENDYEAR EQU CEND 02490000 CSTDAY EQU CSTART+2 02491000 CSTYEAR EQU CSTART 02492000 CHISTIN EQU CINPUT+1 02493000 CLOGIN EQU CINPUT 02494000 PRTSA001 EQU PRTDATD 02495000 SDATEMPS EQU SDADATD+136 02496000 SDASA002 EQU SDADATD+76 02497000 SDAPC001 EQU SDADATD+72 02498000 SDASA001 EQU SDADATD 02499000 SDARPTID EQU PRT0CALL+133 02500000 LINE EQU OUTLINE+1 02501000 ANSI EQU OUTLINE 02502000 DUMPIDNO EQU HEXPCALL+8 02503000 DUMPLEN EQU HEXPCALL+4 02504000 DUMPADDR EQU HEXPCALL 02505000 CORELEN EQU SPNOLEN+1 02506000 SPNO EQU SPNOLEN 02507000 GEN00PTR EQU CVTPTRS0+92 02508000 CNFG0PTR EQU CVTPTRS0+88 02509000 PWR00PTR EQU CVTPTRS0+84 02510000 APR00PTR EQU CVTPTRS0+80 02511000 DRC00PTR EQU CVTPTRS0+76 02512000 DAT00PTR EQU CVTPTRS0+72 02513000 CSB00PTR EQU CVTPTRS0+68 02514000 DCK00PTR EQU CVTPTRS0+64 02515000 EQC00PTR EQU CVTPTRS0+60 02516000 FSC00PTR EQU CVTPTRS0+56 02517000 DHE00PTR EQU CVTPTRS0+52 02518000 SUM00PTR EQU CVTPTRS0+48 02519000 PAD00PTR EQU CVTPTRS0+44 02520000 LOG00PTR EQU CVTPTRS0+36 02521000 HIST0PTR EQU CVTPTRS0+32 02522000 PRT00PTR EQU CVTPTRS0+28 02523000 GET00PTR EQU CVTPTRS0+24 02524000 TYPE0PTR EQU CVTPTRS0+20 02525000 PARM0PTR EQU CVTPTRS0+16 02526000 SDA00PTR EQU CVTPTRS0+12 02527000 SDATAPTR EQU CVTPTRS0+4 02528000 DATAPTR EQU CVTPTRS0 02529000 * END UNREFERENCED COMPONENTS 02530000 @RC00098 EQU @RC00086 02531000 @RC00410 EQU @RC00405 02532000 @RC00641 EQU @EL00003 02533000 @ENDDATA EQU * 02534000 END ISDADCS1,(C'PLS0109',0603,75313) 02535000