TITLE 'CS BUFFERED LOG/FORCED SENSE DATA REPORT MODULE *00001000 ' 00002000 ISDACSB1 CSECT , 01S0001 00003000 @MAINENT DS 0H 01S0001 00004000 USING *,@15 01S0001 00005000 B @PROLOG 01S0001 00006000 DC AL1(16) 01S0001 00007000 DC C'ISDACSB1 77.354' 01S0001 00008000 DROP @15 00009000 @PROLOG STM @14,@12,12(@13) 01S0001 00010000 BALR @11,0 01S0001 00011000 @PSTART LA @12,4095(,@11) 01S0001 00012000 USING @PSTART,@11 01S0001 00013000 USING @PSTART+4095,@12 01S0001 00014000 L @00,@SIZDATD 01S0001 00015000 ISDAGSPC R,LV=(0) 00016000 LR @10,@01 01S0001 00017000 USING @DATD,@10 01S0001 00018000 ST @13,@SA00001+4 01S0001 00019000 LM @00,@01,20(@13) 01S0001 00020000 ST @10,8(,@13) 01S0001 00021000 LR @13,@10 01S0001 00022000 MVC @PC00001(4),0(@01) 01S0001 00023000 * ISOLATING USAGE COUNT @Y30LB50*/ 00024000 * 01S0078 00025000 * /*****************************************************************/ 00026000 * /* */ 00027000 * /* END OF ISDACSB1 DECLARES @Y30LB50*/ 00028000 * /* */ 00029000 * /*****************************************************************/ 00030000 * 01S0079 00031000 * 01S0079 00032000 * /*****************************************************************/ 00033000 * /* */ 00034000 * /* START OF ISDACSB1 MAIN PROGRAM @Y30LB50*/ 00035000 * /* */ 00036000 * /*****************************************************************/ 00037000 * 01S0079 00038000 * CVTPTR=WORKPTR; /* SAVE POINTER TO SDACVT 01S0079 00039000 * @Y30LB50*/ 00040000 L @15,@PC00001 01S0079 00041000 L CVTPTR,WORKPTR(,@15) 01S0079 00042000 * LPARMPTR=PARMPTR; /* SET PTR TO SDA PARMS @ZM30983*/ 00043000 L @15,PARMPTR(,CVTPTR) 01S0080 00044000 ST @15,LPARMPTR 01S0080 00045000 * RETCODE=0; /* ZERO RETURN CODE @Y30LB50*/ 00046000 SLR RETCODE,RETCODE 01S0081 00047000 * LWORKPTR=CSB00PTR; /* SET PTR TO ISDACSB0 WORKAREA 00048000 * @Y30LB50*/ 00049000 L LWORKPTR,CSB00PTR(,CVTPTR) 01S0082 00050000 * RFY 01S0083 00051000 * LINEPTR RSTD; /* @Y30LB50*/ 00052000 * LINEPTR=ADDR(OUTLINE); /* SET POINTER TO OUTPUT LINE 00053000 * @Y30LB50*/ 00054000 LA LINEPTR,OUTLINE(,CVTPTR) 01S0084 00055000 * IF CCSBCSF(8)=ON THEN /* IF CSB REPORT IS REQUESTED 00056000 * @Y30LB50*/ 00057000 TM CCSBCSF(@15),B'00000001' 01S0085 00058000 BNO @RF00085 01S0085 00059000 * 02S0086 00060000 * /*****************************************************************/ 00061000 * /* */ 00062000 * /* USAGERPT FORMATS ACCUMULATED USAGE BUFFERED LOG DATA INTO */ 00063000 * /* EITHER A DETAIL REPORT OR A SUMMARY REPORT-ONE PAGE PER */ 00064000 * /* ACCESSOR PER CARTRIDGE STORE. IF THE DATA FOR ONE ACCESSOR */ 00065000 * /* WILL NOT FIT ON ONE PAGE OF OUTPUT AND SUMMARY IS REQUESTED, A*/ 00066000 * /* SUMMARY REPORT WILL BE FORMATTED. OTHERWISE, A DETAIL REPORT */ 00067000 * /* WILL BE FORMATTED. @Y30LB50*/ 00068000 * /* */ 00069000 * /*****************************************************************/ 00070000 * 02S0086 00071000 * DO; /* @Y30LB50*/ 00072000 * BRETCODE=NOCSBDAT; /* SET RETURN CODE FOR NO CSB 00073000 * DATA ENCOUNTERED -IT WILL BE 00074000 * RESET TO 0 IF DATA IS 02S0087 00075000 * ENCOUNTERED @Y30LB50*/ 00076000 MVC BRETCODE(2,LWORKPTR),@CH00034 02S0087 00077000 * DO L=1 TO MAXCSS; /* PROCESS ALL CS TABLES @Y30LB50*/ 00078000 LA @06,1 02S0088 00079000 STH @06,L(,LWORKPTR) 02S0088 00080000 @DL00088 DS 0H 02S0089 00081000 * CSPTR=CSTPTRS(L); /* POINT TO CS TABLE @Y30LB50*/ 00082000 LH @06,L(,LWORKPTR) 02S0089 00083000 SLA @06,2 02S0089 00084000 L CSPTR,CSTPTRS-4(@06,LWORKPTR) 02S0089 00085000 * CNTINDX=LENGTH(CSBDATA)-LENGTH(CSB1CNTS);/* 02S0090 00086000 * SET INDEX FOR FIRST ACC 00087000 * COUNTS @Y30LB50*/ 00088000 MVC CNTINDX(2,LWORKPTR),@CH00090 02S0090 00089000 * IF BFRCNT^=0 THEN 02S0091 00090000 ICM @06,3,BFRCNT(CSPTR) 02S0091 00091000 BZ @RF00091 02S0091 00092000 * DO I=1 TO MAXACC; /* PROCESS ACCESSORS @Y30LB50*/ 00093000 LA @06,1 02S0092 00094000 STH @06,I(,LWORKPTR) 02S0092 00095000 @DL00092 DS 0H 02S0093 00096000 * NEXTCSB=CSBFIRST; /* POINT TO FIRST RECORD @Y30LB50*/ 00097000 MVC NEXTCSB(4,CSPTR),CSBFIRST(CSPTR) 02S0093 00098000 * ACCTOT=0; /* ZERO ACCESSOR COUNT @Y30LB50*/ 00099000 SLR @06,@06 02S0094 00100000 STH @06,ACCTOT(,LWORKPTR) 02S0094 00101000 * DO WHILE NEXTCSB^=0; /* @Y30LB50*/ 00102000 B @DE00095 02S0095 00103000 @DL00095 DS 0H 02S0096 00104000 * CNTPTR=NEXTCSB+CNTINDX;/* POINT TO ACCESSOR COUNTS IN 00105000 * RECORD @Y30LB50*/ 00106000 LH CNTPTR,CNTINDX(,LWORKPTR) 02S0096 00107000 AL CNTPTR,NEXTCSB(,CSPTR) 02S0096 00108000 * USAGECT=USAGECT&USAGMASK;/* CLEAR STATUS BITS @Y30LB50*/ 00109000 NC USAGECT(2,CNTPTR),USAGMASK 02S0097 00110000 * IF USAGECT^=0 THEN 02S0098 00111000 ICM @06,3,USAGECT(CNTPTR) 02S0098 00112000 BZ @RF00098 02S0098 00113000 * ACCTOT=ACCTOT+1; /* UP COUNT OF RECORDS FOR WHICH 00114000 * ACCESSOR WAS USED @Y30LB50*/ 00115000 LA @06,1 02S0099 00116000 AH @06,ACCTOT(,LWORKPTR) 02S0099 00117000 STH @06,ACCTOT(,LWORKPTR) 02S0099 00118000 * ELSE 02S0100 00119000 * ; /* @Y30LB50*/ 00120000 @RF00098 DS 0H 02S0101 00121000 * NEXTCSB=CHAINPTR; /* POINT TO NEXT RECORD SAVED BY 00122000 * TIME @Y30LB50*/ 00123000 L @06,NEXTCSB(,CSPTR) 02S0101 00124000 L @06,CHAINPTR(,@06) 02S0101 00125000 ST @06,NEXTCSB(,CSPTR) 02S0101 00126000 * END; /* @Y30LB50*/ 00127000 @DE00095 SLR @06,@06 02S0102 00128000 C @06,NEXTCSB(,CSPTR) 02S0102 00129000 BNE @DL00095 02S0102 00130000 * IF ACCTOT^=0 THEN 02S0103 00131000 LH @15,ACCTOT(,LWORKPTR) 02S0103 00132000 CR @15,@06 02S0103 00133000 BE @RF00103 02S0103 00134000 * DO; /* DO REPORT PROCESSING IF DATA 00135000 * WAS FOUND FOR THE ACCESSOR 00136000 * @Y30LB50*/ 00137000 * BRETCODE=0; /* SET RETURN CODE FOR DATA 02S0105 00138000 * ENCOUNTERED @Y30LB50*/ 00139000 STH @06,BRETCODE(,LWORKPTR) 02S0105 00140000 * IF(ACCTOT^>BFRPAGE)|(CSUMMARY=NO) THEN/* DO DETAIL 00141000 * PROCESSING IF DATA WILL FIT ON 00142000 * ONE OUTPUT PAGE OR IF SUMMARY 00143000 * IS NOT REQUESTED @Y30LB50*/ 00144000 CH @15,@CH00219 02S0106 00145000 BNH @RT00106 02S0106 00146000 L @06,LPARMPTR 02S0106 00147000 CLI CSUMMARY(@06),C'N' 02S0106 00148000 BNE @RF00106 02S0106 00149000 @RT00106 DS 0H 02S0107 00150000 * DO; /* @Y30LB50*/ 00151000 * 03S0107 00152000 * /***************************************************************/ 00153000 * /* */ 00154000 * /* DETAIL IS USED TO FORMAT USAGE BUFFERED LOG DATA FOR ONE */ 00155000 * /* ACCESSOR INTO A DETAIL REPORT @Y30LB50*/ 00156000 * /* */ 00157000 * /***************************************************************/ 00158000 * 03S0108 00159000 * PAGECNT=BFRPAGE; /* INSURE FIRST PAGE HEADING 00160000 * @Y30LB50*/ 00161000 MVC PAGECNT(2,LWORKPTR),@CH00219 03S0108 00162000 * NEXTCSB=CSBFIRST; /* POINTER TO FIRST RECORD SAVED 00163000 * BY TIME @Y30LB50*/ 00164000 MVC NEXTCSB(4,CSPTR),CSBFIRST(CSPTR) 03S0109 00165000 * DO WHILE NEXTCSB^=0; /* PROCESS ALL RECORDS SAVED 00166000 * @Y30LB50*/ 00167000 B @DE00110 03S0110 00168000 @DL00110 DS 0H 03S0111 00169000 * CNTPTR=NEXTCSB+CNTINDX; /* POINT TO ACCESSOR COUNTS IN IN 00170000 * RECORD @Y30LB50*/ 00171000 LH CNTPTR,CNTINDX(,LWORKPTR) 03S0111 00172000 AL CNTPTR,NEXTCSB(,CSPTR) 03S0111 00173000 * IF USAGECT^=0 THEN 03S0112 00174000 ICM @06,3,USAGECT(CNTPTR) 03S0112 00175000 BZ @RF00112 03S0112 00176000 * DO; /* PROCESS ONLY IF ACC COUNT IS 00177000 * NOT ZERO @Y30LB50*/ 00178000 * IF PAGECNT=BFRPAGE THEN 03S0114 00179000 CLC PAGECNT(2,LWORKPTR),@CH00219 03S0114 00180000 BNE @RF00114 03S0114 00181000 * DO; /* SKIP TO NEW PAGE IF CURRENT 00182000 * PAGE IS FULL @Y30LB50*/ 00183000 * OUTPUT=DETLHEAD; /* DETAIL REPORT MAIN HEADING 00184000 * @Y30LB50*/ 00185000 MVI OUTPUT+132(LINEPTR),C' ' 03S0116 00186000 MVC OUTPUT(132,LINEPTR),@CC00347 03S0116 00187000 * CSNUMBER=CSNUMB; /* PUT CS NUMBER IN OUTPUT LINE 00188000 * @Y30LB50*/ 00189000 MVC CSNUMBER(1,LINEPTR),CSNUMB(CSPTR) 03S0117 00190000 * IF I=1 THEN 03S0118 00191000 CLC I(2,LWORKPTR),@CH00083 03S0118 00192000 BNE @RF00118 03S0118 00193000 * ACCNO=ACC1; /* PUT ACCESSOR IN OUTPUT 03S0119 00194000 * @Y30LB50*/ 00195000 MVC ACCNO(5,LINEPTR),@CC00465 03S0119 00196000 * ELSE 03S0120 00197000 * ACCNO=ACC2; /* @Y30LB50*/ 00198000 B @RC00118 03S0120 00199000 @RF00118 MVC ACCNO(5,LINEPTR),@CC00467 03S0120 00200000 * RFY 03S0121 00201000 * R1 RSTD; /* @Y30LB50*/ 00202000 @RC00118 DS 0H 03S0122 00203000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00204000 LA R1,WORKCALL(,CVTPTR) 03S0122 00205000 * CALL ISDAPRT0; /* PRINT MAIN HEADING @Y30LB50*/ 00206000 L @15,@CV00480 03S0123 00207000 BALR @14,@15 03S0123 00208000 * OUTPUT=DETLSUB1; /* @Y30LB50*/ 00209000 MVC OUTPUT(133,LINEPTR),@CC00357 03S0124 00210000 * CALL ISDAPRT0; /* PRINT FIRST SUBHEADING 03S0125 00211000 * @Y30LB50*/ 00212000 L @15,@CV00480 03S0125 00213000 BALR @14,@15 03S0125 00214000 * OUTPUT=DETLSUB2; /* @Y30LB50*/ 00215000 MVC OUTPUT(133,LINEPTR),@CC00367 03S0126 00216000 * CALL ISDAPRT0; /* PRINT SECOND SUBHEADING 03S0127 00217000 * @Y30LB50*/ 00218000 L @15,@CV00480 03S0127 00219000 BALR @14,@15 03S0127 00220000 * RFY 03S0128 00221000 * R1 UNRSTD; /* @Y30LB50*/ 00222000 * OUTPUT=' '; /* CLEAR OUTPUT LINE @Y30LB50*/ 00223000 MVI OUTPUT+1(LINEPTR),C' ' 03S0129 00224000 MVC OUTPUT+2(131,LINEPTR),OUTPUT+1(LINEPTR) 03S0129 00225000 MVI OUTPUT(LINEPTR),C' ' 03S0129 00226000 * PAGECNT=0; /* ZERO RECORDS ON PAGE @Y30LB50*/ 00227000 SLR @06,@06 03S0130 00228000 STH @06,PAGECNT(,LWORKPTR) 03S0130 00229000 * END; /* @Y30LB50*/ 00230000 * ELSE 03S0132 00231000 * ; /* @Y30LB50*/ 00232000 @RF00114 DS 0H 03S0133 00233000 * CNTRL='0'; /* CARRIAGE CONTROL TO SKIP ONE 00234000 * LINE AND PRINT @Y30LB50*/ 00235000 MVI CNTRL(LINEPTR),C'0' 03S0133 00236000 * OUTPTR=ADDR(HEADING); /* POINTER FOR TIME FIELD IN 00237000 * OUTPUT LINE @Y30LB50*/ 00238000 LA OUTPTR,HEADING(,LINEPTR) 03S0134 00239000 * CALL TIMECVRT; /* CONVERT TIME FOR PRINTING 00240000 * @Y30LB50*/ 00241000 BAL @14,TIMECVRT 03S0135 00242000 * OUTPTR=OUTPTR+LENGTH(TIMEFLD);/* 03S0136 00243000 * UP POINTER FOR COUNT FIELDS 00244000 * @Y30LB50*/ 00245000 AH OUTPTR,@CH00244 03S0136 00246000 * CALL BFRFMT; /* CONVERT COUNTS FOR DETAIL 00247000 * REPORT @Y30LB50*/ 00248000 BAL @14,BFRFMT 03S0137 00249000 * PAGECNT=PAGECNT+1; /* UP RECORDS ON PAGE @Y30LB50*/ 00250000 LA @06,1 03S0138 00251000 AH @06,PAGECNT(,LWORKPTR) 03S0138 00252000 STH @06,PAGECNT(,LWORKPTR) 03S0138 00253000 * END; /* @Y30LB50*/ 00254000 * ELSE 03S0140 00255000 * ; /* @Y30LB50*/ 00256000 @RF00112 DS 0H 03S0141 00257000 * NEXTCSB=CHAINPTR; /* POINT TO NEXT RECORD SAVED 00258000 * @Y30LB50*/ 00259000 L @06,NEXTCSB(,CSPTR) 03S0141 00260000 L @06,CHAINPTR(,@06) 03S0141 00261000 ST @06,NEXTCSB(,CSPTR) 03S0141 00262000 * END; /* @Y30LB50*/ 00263000 @DE00110 ICM @06,15,NEXTCSB(CSPTR) 03S0142 00264000 BNZ @DL00110 03S0142 00265000 * END; /* @Y30LB50*/ 00266000 * ELSE /* DO SUMMARY PROCESSING IF DATA 00267000 * WILL NOT FIT ON ONE PAGE AND 00268000 * SUMMARY IS REQUESTED. @Y30LB50*/ 00269000 * 03S0144 00270000 * /*****************************************************************/ 00271000 * /* */ 00272000 * /* SUMMRY IS USED TO FORMAT AND PRINT A SUMMARY USAGE BUFFERED */ 00273000 * /* LOG REPORT WHEN THE BUFFERED LOG DATA COLLECTED FOR ONE */ 00274000 * /* ACCESSOR FOR ONE CARTRIDGE STORE WILL NOT FIT ON ONE PAGE OF */ 00275000 * /* OF OUTPUT AND SUMMARY OPTION IS REQUESTED. THE SUMMARY GROUP */ 00276000 * /* WILL CONTAIN N RECORDS WHERE N IS THE TOTAL NUMBER OF RECORDS */ 00277000 * /* CONTAINING DATA FOR THE ACCESSOR DIVIDED BY THE NUMBER OF */ 00278000 * /* RECORDS THAT WILL FIT ON ONE PAGE OF OUTPUT. ANY REMAINDER */ 00279000 * /* RECORDS WILL BE SPREAD OUT, ONE PER GROUP. @Y30LB50*/ 00280000 * /* */ 00281000 * /*****************************************************************/ 00282000 * 03S0144 00283000 * DO; /* @Y30LB50*/ 00284000 B @RC00106 03S0144 00285000 @RF00106 DS 0H 03S0145 00286000 * GROUPS=ACCTOT/BFRPAGE; /* CALCULATE COUNT OF RECORDS TO 00287000 * BE SUMMARIZED TOGETHER 03S0145 00288000 * @Y30LB50*/ 00289000 LA @06,26 03S0145 00290000 LH @15,ACCTOT(,LWORKPTR) 03S0145 00291000 LR @00,@15 03S0145 00292000 SRDA @00,32 03S0145 00293000 DR @00,@06 03S0145 00294000 STH @01,GROUPS(,LWORKPTR) 03S0145 00295000 * REMNDR=ACCTOT//BFRPAGE; /* CALCULATE REMAINING RECORDS TO 00296000 * BE SPREAD OUT OVER FIRST 03S0146 00297000 * GROUPS @Y30LB50*/ 00298000 LR @00,@15 03S0146 00299000 SRDA @00,32 03S0146 00300000 DR @00,@06 03S0146 00301000 STH @00,REMNDR(,LWORKPTR) 03S0146 00302000 * NEXTCSB=CSBFIRST; /* POINT TO FIRST BUFFERED LOG 00303000 * RECORD SAVED BY TIME @Y30LB50*/ 00304000 MVC NEXTCSB(4,CSPTR),CSBFIRST(CSPTR) 03S0147 00305000 * 04S0148 00306000 * /*****************************************************************/ 00307000 * /* */ 00308000 * /* SUMPAGE IS USED TO DO NEW PAGE PROCESSING FOR THE SUMMARY */ 00309000 * /* BUFFERED LOG REPORT. EACH ACCESSOR FOR EACH CARTRIDGE STORE */ 00310000 * /* WILL BE ON A NEW PAGE WITH APPROPRIATE HEADINGS. @Y30LB50*/ 00311000 * /* */ 00312000 * /*****************************************************************/ 00313000 * 04S0148 00314000 * OUTPUT=SUMRHEAD; /* MOVE MAIN HEADING TO OUTPUT 00315000 * LINE @Y30LB50*/ 00316000 MVI OUTPUT+132(LINEPTR),C' ' 04S0148 00317000 MVC OUTPUT(132,LINEPTR),@CC00377 04S0148 00318000 * CSNUMBER=CSNUMB; /* ADD CS ID TO HEADING @Y30LB50*/ 00319000 MVC CSNUMBER(1,LINEPTR),CSNUMB(CSPTR) 04S0149 00320000 * IF I=1 THEN 04S0150 00321000 CLC I(2,LWORKPTR),@CH00083 04S0150 00322000 BNE @RF00150 04S0150 00323000 * ACCNO=ACC1; /* ADD ACCESSOR TO OUTPUT LINE 00324000 * @Y30LB50*/ 00325000 MVC ACCNO(5,LINEPTR),@CC00465 04S0151 00326000 * ELSE 04S0152 00327000 * ACCNO=ACC2; /* @Y30LB50*/ 00328000 B @RC00150 04S0152 00329000 @RF00150 MVC ACCNO(5,LINEPTR),@CC00467 04S0152 00330000 * CVD(ACCTOT,HOLDDBL); /* CONVERT TOTAL COUNT OF RECORDS 00331000 * AND PUT IN OUTPUT LINE 04S0153 00332000 * @Y30LB50*/ 00333000 @RC00150 LH @06,ACCTOT(,LWORKPTR) 04S0153 00334000 CVD @06,HOLDDBL(,LWORKPTR) 04S0153 00335000 * WORK6=PATT1; /* EDIT PATTERN FOR COUNT 04S0154 00336000 * @Y30LB50*/ 00337000 MVC WORK6(6),PATT1 04S0154 00338000 * ED(WORK6,HOLD); /* CONVERT COUNT TO EBCDIC AND 00339000 * SUPPRESS LEADING ZEROS 04S0155 00340000 * @Y30LB50*/ 00341000 ED WORK6(6),HOLD(LWORKPTR) 04S0155 00342000 * RECDCNT=WORK6(2:6); /* MOVE 5 CHAR @Y30LB55*/ 00343000 MVC RECDCNT(5,LINEPTR),WORK6+1 04S0156 00344000 * RFY 04S0157 00345000 * R1 RSTD; /* @Y30LB50*/ 00346000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00347000 LA R1,WORKCALL(,CVTPTR) 04S0158 00348000 * CALL ISDAPRT0; /* PRINT MAIN HEADING @Y30LB50*/ 00349000 L @15,@CV00480 04S0159 00350000 BALR @14,@15 04S0159 00351000 * OUTPUT=SUMRHD1; /* @Y30LB50*/ 00352000 MVC OUTPUT(133,LINEPTR),@CC00387 04S0160 00353000 * CALL ISDAPRT0; /* PRINT FIRST SUBHEADING 04S0161 00354000 * @Y30LB50*/ 00355000 L @15,@CV00480 04S0161 00356000 BALR @14,@15 04S0161 00357000 * OUTPUT=SUMRHD2; /* @Y30LB50*/ 00358000 MVC OUTPUT(133,LINEPTR),@CC00397 04S0162 00359000 * CALL ISDAPRT0; /* PRINT SECOND SUBHEADING 04S0163 00360000 * @Y30LB50*/ 00361000 L @15,@CV00480 04S0163 00362000 BALR @14,@15 04S0163 00363000 * OUTPUT=SUMRHD3; /* @Y30LB50*/ 00364000 MVC OUTPUT(133,LINEPTR),@CC00407 04S0164 00365000 * CALL ISDAPRT0; /* PRINT THIRD SUBHEADING 04S0165 00366000 * @Y30LB50*/ 00367000 L @15,@CV00480 04S0165 00368000 BALR @14,@15 04S0165 00369000 * OUTPUT=' '; /* CLEAR OUTPUT LINE @Y30LB50*/ 00370000 MVI OUTPUT+1(LINEPTR),C' ' 04S0166 00371000 MVC OUTPUT+2(131,LINEPTR),OUTPUT+1(LINEPTR) 04S0166 00372000 MVI OUTPUT(LINEPTR),C' ' 04S0166 00373000 * RFY 04S0167 00374000 * R1 UNRSTD; /* @Y30LB50*/ 00375000 * DO M=1 TO BFRPAGE; /* PROCESS ALL RECORDS SAVED 00376000 * @Y30LB50*/ 00377000 LA @06,1 03S0168 00378000 STH @06,M(,LWORKPTR) 03S0168 00379000 @DL00168 DS 0H 03S0169 00380000 * CNTRL='0'; /* SET CARRIAGE CONTROL TO SKIP 00381000 * ONE LINE AND PRINT @Y30LB50*/ 00382000 MVI CNTRL(LINEPTR),C'0' 03S0169 00383000 * CNTPTR=NEXTCSB+CNTINDX; /* POINT TO ACCESSOR COUNTS 03S0170 00384000 * @Y30LB50*/ 00385000 LH CNTPTR,CNTINDX(,LWORKPTR) 03S0170 00386000 AL CNTPTR,NEXTCSB(,CSPTR) 03S0170 00387000 * DO WHILE USAGECT=0; /* SPACE UP TO A RECORD WITH DATA 00388000 * FOR ACCESSOR @Y30LB50*/ 00389000 B @DE00171 03S0171 00390000 @DL00171 DS 0H 03S0172 00391000 * NEXTCSB=CHAINPTR; /* NEXT RECORD BY TIME @Y30LB50*/ 00392000 L @06,NEXTCSB(,CSPTR) 03S0172 00393000 L @06,CHAINPTR(,@06) 03S0172 00394000 ST @06,NEXTCSB(,CSPTR) 03S0172 00395000 * CNTPTR=NEXTCSB+CNTINDX; /* NEXT RECORD ACC COUNTS 03S0173 00396000 * @Y30LB50*/ 00397000 AH @06,CNTINDX(,LWORKPTR) 03S0173 00398000 LR CNTPTR,@06 03S0173 00399000 * END; /* @Y30LB50*/ 00400000 @DE00171 ICM @06,3,USAGECT(CNTPTR) 03S0174 00401000 BZ @DL00171 03S0174 00402000 * OUTPTR=ADDR(HEADING); /* POINT TO POSITION FOR TIME IN 00403000 * OUTPUT LINE @Y30LB50*/ 00404000 LA OUTPTR,HEADING(,LINEPTR) 03S0175 00405000 * CALL TIMECVRT; /* CONVERT TIME OF FIRST RECORD 00406000 * IN SUMMARY GROUP AND PUT IN 00407000 * OUTPUT LINE @Y30LB50*/ 00408000 BAL @14,TIMECVRT 03S0176 00409000 * GINDEX=GROUPS; /* LOOP COUNT FOR SUMMARIZING 00410000 * @Y30LB50*/ 00411000 LH @06,GROUPS(,LWORKPTR) 03S0177 00412000 STH @06,GINDEX(,LWORKPTR) 03S0177 00413000 * IF REMNDR^=0 THEN 03S0178 00414000 LH @15,REMNDR(,LWORKPTR) 03S0178 00415000 LTR @15,@15 03S0178 00416000 BZ @RF00178 03S0178 00417000 * DO; /* CHECK IF AN EXTRA RECORDS 00418000 * SHOULD BE ADDED TO THIS GROUP 00419000 * @Y30LB50*/ 00420000 * GINDEX=GINDEX+1; /* ADD ONE TO LOOP COUNT @Y30LB50*/ 00421000 AH @06,@CH00083 03S0180 00422000 STH @06,GINDEX(,LWORKPTR) 03S0180 00423000 * REMNDR=REMNDR-1; /* DECREMENT COUNT OF EXTRA 03S0181 00424000 * RECORDS @Y30LB50*/ 00425000 BCTR @15,0 03S0181 00426000 STH @15,REMNDR(,LWORKPTR) 03S0181 00427000 * END; /* @Y30LB50*/ 00428000 * ELSE 03S0183 00429000 * ; /* @Y30LB50*/ 00430000 @RF00178 DS 0H 03S0184 00431000 * DO J=1 TO GINDEX; /* PROCESS ALL RECORDS OF GROUP 00432000 * @Y30LB50*/ 00433000 LA @06,1 03S0184 00434000 B @DE00184 03S0184 00435000 @DL00184 DS 0H 03S0185 00436000 * 04S0185 00437000 * /*****************************************************************/ 00438000 * /* */ 00439000 * /* SUMCNT IS USED TO CALCULATE THE TOTALS FOR THE ERRORS IN THE */ 00440000 * /* BUFFERED LOG RECORDS TO BE SUMMARIZED TOGETHER. @Y30LB50*/ 00441000 * /* */ 00442000 * /*****************************************************************/ 00443000 * 04S0185 00444000 * IF J^=1 THEN 04S0185 00445000 CLC J(2,LWORKPTR),@CH00083 04S0185 00446000 BE @RF00185 04S0185 00447000 * DO; /* AFTER THE FIRST RECORD OF THE 00448000 * GROUP, POINT TO THE NEXT 04S0186 00449000 * RECORD BY TIME @Y30LB50*/ 00450000 * NEXTCSB=CHAINPTR; /* @Y30LB50*/ 00451000 L @06,NEXTCSB(,CSPTR) 04S0187 00452000 L @06,CHAINPTR(,@06) 04S0187 00453000 ST @06,NEXTCSB(,CSPTR) 04S0187 00454000 * CNTPTR=NEXTCSB+CNTINDX; /* POINT TO THE ACCESSOR COUNTS 00455000 * @Y30LB50*/ 00456000 AH @06,CNTINDX(,LWORKPTR) 04S0188 00457000 LR CNTPTR,@06 04S0188 00458000 * DO WHILE USAGECT=0; /* @Y30LB50*/ 00459000 B @DE00189 04S0189 00460000 @DL00189 DS 0H 04S0190 00461000 * NEXTCSB=CHAINPTR; /* SPACE UP TO NEXT RECORD WITH 00462000 * DATA @Y30LB50*/ 00463000 L @06,NEXTCSB(,CSPTR) 04S0190 00464000 L @06,CHAINPTR(,@06) 04S0190 00465000 ST @06,NEXTCSB(,CSPTR) 04S0190 00466000 * CNTPTR=NEXTCSB+CNTINDX; /* @Y30LB50*/ 00467000 AH @06,CNTINDX(,LWORKPTR) 04S0191 00468000 LR CNTPTR,@06 04S0191 00469000 * END; /* @Y30LB50*/ 00470000 @DE00189 ICM @06,3,USAGECT(CNTPTR) 04S0192 00471000 BZ @DL00189 04S0192 00472000 * END; /* @Y30LB50*/ 00473000 * ELSE 04S0194 00474000 * ; /* @Y30LB50*/ 00475000 @RF00185 DS 0H 04S0195 00476000 * SUMU=SUMU+USAGECT; /* ADD USAGE COUNT TO RUNNING 00477000 * TOTAL @Y30LB50*/ 00478000 SLR @06,@06 04S0195 00479000 ICM @06,3,USAGECT(CNTPTR) 04S0195 00480000 AL @06,SUMU(,LWORKPTR) 04S0195 00481000 ST @06,SUMU(,LWORKPTR) 04S0195 00482000 * CWORK(1)=XYCOUNT; /* ISOLATE THE Y STRIP COUNT 00483000 * @Y30LB50*/ 00484000 MVC CWORK(1,LWORKPTR),XYCOUNT(CNTPTR) 04S0196 00485000 * CWORK(1)=CWORK(1)&YMASK; /* @Y30LB50*/ 00486000 NC CWORK(1,LWORKPTR),YMASK 04S0197 00487000 * CWORK(2)=YCOUNT; /* @Y30LB50*/ 00488000 MVC CWORK+1(1,LWORKPTR),YCOUNT(CNTPTR) 04S0198 00489000 * SUMY=SUMY+CWORK; /* ADD Y STRIP COUNT TO RUNNING 00490000 * TOTAL @Y30LB50*/ 00491000 SLR @06,@06 04S0199 00492000 ICM @06,3,CWORK(LWORKPTR) 04S0199 00493000 AL @06,SUMY(,LWORKPTR) 04S0199 00494000 ST @06,SUMY(,LWORKPTR) 04S0199 00495000 * SRL(XYCOUNT,4); /* ISOLATE THE X STRIP COUNT 00496000 * @Y30LB50*/ 00497000 SLR @06,@06 04S0200 00498000 IC @06,XYCOUNT(,CNTPTR) 04S0200 00499000 SRL @06,4 04S0200 00500000 STC @06,XYCOUNT(,CNTPTR) 04S0200 00501000 * SUMX=SUMX+XKOUNT; /* ADD X STRIP COUNT TO RUNNING 00502000 * TOTAL @Y30LB50*/ 00503000 SLR @06,@06 04S0201 00504000 ICM @06,3,XKOUNT(CNTPTR) 04S0201 00505000 AL @06,SUMX(,LWORKPTR) 04S0201 00506000 ST @06,SUMX(,LWORKPTR) 04S0201 00507000 * DO K=1 TO MAXCNTS BY MAXBYTE; /* PROCESS COUNT BYTES @Y30LB50*/ 00508000 LA @06,1 04S0202 00509000 STH @06,K(,LWORKPTR) 04S0202 00510000 @DL00202 DS 0H 04S0203 00511000 * CWORK(1)=COUNT12; /* ISOLATE FIRST FOUR BIT COUNT 00512000 * @Y30LB50*/ 00513000 MVC CWORK(1,LWORKPTR),COUNT12(CNTPTR) 04S0203 00514000 * SRL(CWORK(1),4); /* @Y30LB50*/ 00515000 SLR @06,@06 04S0204 00516000 IC @06,CWORK(,LWORKPTR) 04S0204 00517000 SRL @06,4 04S0204 00518000 STC @06,CWORK(,LWORKPTR) 04S0204 00519000 * SUMS(K)=SUMS(K)+CWORK(1); /* ADD TO RUNNING TOTAL @Y30LB50*/ 00520000 LH @06,K(,LWORKPTR) 04S0205 00521000 ALR @06,@06 04S0205 00522000 SLR @15,@15 04S0205 00523000 IC @15,CWORK(,LWORKPTR) 04S0205 00524000 AH @15,SUMS-2(@06,LWORKPTR) 04S0205 00525000 STH @15,SUMS-2(@06,LWORKPTR) 04S0205 00526000 * COUNT12=COUNT12&'0F'X; /* ISOLATE SECOND FOUR BIT COUNT 00527000 * @Y30LB50*/ 00528000 NI COUNT12(CNTPTR),X'0F' 04S0206 00529000 * SUMS(K+1)=SUMS(K+1)+COUNT12; /* ADD TO RUNNING TOTAL @Y30LB50*/ 00530000 SLR @15,@15 04S0207 00531000 IC @15,COUNT12(,CNTPTR) 04S0207 00532000 AH @15,SUMS(@06,LWORKPTR) 04S0207 00533000 STH @15,SUMS(@06,LWORKPTR) 04S0207 00534000 * CNTPTR=CNTPTR+1; /* POINT TO NEXT BYTE OF COUNTS 00535000 * @Y30LB50*/ 00536000 AH CNTPTR,@CH00083 04S0208 00537000 * END; /* @Y30LB50*/ 00538000 LA @06,2 04S0209 00539000 AH @06,K(,LWORKPTR) 04S0209 00540000 STH @06,K(,LWORKPTR) 04S0209 00541000 CH @06,@CH00034 04S0209 00542000 BNH @DL00202 04S0209 00543000 * END; /* @Y30LB50*/ 00544000 LA @06,1 03S0210 00545000 AH @06,J(,LWORKPTR) 03S0210 00546000 @DE00184 STH @06,J(,LWORKPTR) 03S0210 00547000 CH @06,GINDEX(,LWORKPTR) 03S0210 00548000 BNH @DL00184 03S0210 00549000 * ODASH='-'; /* SEPARATE FIRST AND LAST TIMES 00550000 * OF GROUP @Y30LB50*/ 00551000 MVI ODASH(OUTPTR),C'-' 03S0211 00552000 * OUTPTR=OUTPTR+LENGTH(TIMEFLD);/* 03S0212 00553000 * SPACE UP IN OUTPUT LINE FOR 00554000 * LAST TIME @Y30LB50*/ 00555000 AH OUTPTR,@CH00244 03S0212 00556000 * CALL TIMECVRT; /* CONVERT TIME OF LAST RECORD OF 00557000 * GROUP @Y30LB50*/ 00558000 BAL @14,TIMECVRT 03S0213 00559000 * OUTPTR=OUTPTR+LENGTH(TIMEFLD)-1;/* 03S0214 00560000 * SPACE UP IN OUTPUT LINE FOR 00561000 * COUNTS @Y30LB50*/ 00562000 SH OUTPTR,@CH00511 03S0214 00563000 * 04S0215 00564000 * /*****************************************************************/ 00565000 * /* */ 00566000 * /* SUMSOUT IS USED TO CONVERT SUMMARY COUNT TOTALS FOR USAGE */ 00567000 * /* BUFFERED LOG RECORDS AND PRINT THE OUTPUT LINE FOR THE SUMMARY*/ 00568000 * /* GROUP. IT WILL THEN CLEAR THE OUTPUT LINE AND THE TOTALS. */ 00569000 * /* @Y30LB50*/ 00570000 * /* */ 00571000 * /*****************************************************************/ 00572000 * 04S0215 00573000 * WORK6=PATT1; /* EDIT PATTERN @Y30LB50*/ 00574000 MVC WORK6(6),PATT1 04S0215 00575000 * CVD(SUMU,HOLDDBL); /* CONVERT THE USAGE TOTAL 04S0216 00576000 * @Y30LB50*/ 00577000 L @06,SUMU(,LWORKPTR) 04S0216 00578000 CVD @06,HOLDDBL(,LWORKPTR) 04S0216 00579000 * ED(WORK6,HOLD); /* @Y30LB50*/ 00580000 ED WORK6(6),HOLD(LWORKPTR) 04S0217 00581000 * SUSAGE=WORK6(2:6); /* MOVE 5 CHAR @Y30LB55*/ 00582000 MVC SUSAGE(5,OUTPTR),WORK6+1 04S0218 00583000 * WORK6=PATT1; /* EDIT PATTERN @Y30LB50*/ 00584000 MVC WORK6(6),PATT1 04S0219 00585000 * CVD(SUMX,HOLDDBL); /* CONVERT THE X-STRIP ERRORS 00586000 * TOTAL COUNT @Y30LB50*/ 00587000 L @06,SUMX(,LWORKPTR) 04S0220 00588000 CVD @06,HOLDDBL(,LWORKPTR) 04S0220 00589000 * ED(WORK6,HOLD); /* @Y30LB50*/ 00590000 ED WORK6(6),HOLD(LWORKPTR) 04S0221 00591000 * SX=WORK6(2:6); /* MOVE 5 CHAR @Y30LB55*/ 00592000 MVC SX(5,OUTPTR),WORK6+1 04S0222 00593000 * WORK6=PATT1; /* EDIT PATTERN @Y30LB50*/ 00594000 MVC WORK6(6),PATT1 04S0223 00595000 * CVD(SUMY,HOLDDBL); /* CONVERT THE Y STRIP ERRORS 00596000 * TOTAL COUNT @Y30LB50*/ 00597000 L @06,SUMY(,LWORKPTR) 04S0224 00598000 CVD @06,HOLDDBL(,LWORKPTR) 04S0224 00599000 * ED(WORK6,HOLD); /* @Y30LB50*/ 00600000 ED WORK6(6),HOLD(LWORKPTR) 04S0225 00601000 * SY=WORK6(2:6); /* MOVE 5 CHAR @Y30LB55*/ 00602000 MVC SY(5,OUTPTR),WORK6+1 04S0226 00603000 * OUTPTR=ADDR(SCNTS); /* SPACE UP IN OUTPUT LINE FOR 00604000 * REST OF COUNTS @Y30LB50*/ 00605000 LA @06,SCNTS(,OUTPTR) 04S0227 00606000 LR OUTPTR,@06 04S0227 00607000 * DO K=1 TO MAXCNTS; /* CONVERT EACH TOTAL,ADD TO 00608000 * OUTPUT @Y30LB50*/ 00609000 LA @06,1 04S0228 00610000 STH @06,K(,LWORKPTR) 04S0228 00611000 @DL00228 DS 0H 04S0229 00612000 * CVD(SUMS(K),HOLDDBL); /* @Y30LB50*/ 00613000 LH @06,K(,LWORKPTR) 04S0229 00614000 ALR @06,@06 04S0229 00615000 LH @15,SUMS-2(@06,LWORKPTR) 04S0229 00616000 CVD @15,HOLDDBL(,LWORKPTR) 04S0229 00617000 * WORK6=PATT1; /* EDIT PATTERN @Y30LB50*/ 00618000 MVC WORK6(6),PATT1 04S0230 00619000 * ED(WORK6,HOLD); /* CONVERT COUNT AND PUT IN 04S0231 00620000 * OUTPUT @Y30LB50*/ 00621000 ED WORK6(6),HOLD(LWORKPTR) 04S0231 00622000 * SCNT=WORK6(2:6); /* MOVE 5 CHAR @Y30LB55*/ 00623000 MVC SCNT(5,OUTPTR),WORK6+1 04S0232 00624000 * OUTPTR=OUTPTR+SUMSPC(K); /* SPACE UP IN OUTPUT LINE FOR 00625000 * NEXT COUNT @Y30LB50*/ 00626000 AH OUTPTR,SUMSPC-2(@06) 04S0233 00627000 * END; /* @Y30LB50*/ 00628000 LA @06,1 04S0234 00629000 AH @06,K(,LWORKPTR) 04S0234 00630000 STH @06,K(,LWORKPTR) 04S0234 00631000 CH @06,@CH00034 04S0234 00632000 BNH @DL00228 04S0234 00633000 * RFY 04S0235 00634000 * R1 RSTD; /* @Y30LB50*/ 00635000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00636000 LA R1,WORKCALL(,CVTPTR) 04S0236 00637000 * CALL ISDAPRT0; /* PRINT SUMMARY LINE @Y30LB50*/ 00638000 L @15,@CV00480 04S0237 00639000 BALR @14,@15 04S0237 00640000 * RFY 04S0238 00641000 * R1 UNRSTD; /* @Y30LB50*/ 00642000 * OUTPUT=' '; /* CLEAR OUTPUT LINE @Y30LB50*/ 00643000 MVI OUTPUT+1(LINEPTR),C' ' 04S0239 00644000 MVC OUTPUT+2(131,LINEPTR),OUTPUT+1(LINEPTR) 04S0239 00645000 MVI OUTPUT(LINEPTR),C' ' 04S0239 00646000 * SUMU=0; /* ZERO THE USAGE TOTAL @Y30LB50*/ 00647000 SLR @06,@06 04S0240 00648000 ST @06,SUMU(,LWORKPTR) 04S0240 00649000 * SUMX=0; /* ZERO THE X STRIP ERROR TOTAL 00650000 * @Y30LB50*/ 00651000 ST @06,SUMX(,LWORKPTR) 04S0241 00652000 * SUMY=0; /* ZERO THE Y STRIP ERROR TOTAL 00653000 * @Y30LB50*/ 00654000 ST @06,SUMY(,LWORKPTR) 04S0242 00655000 * DO K=1 TO MAXCNTS; /* ZERO THE OTHER TOTALS @Y30LB50*/ 00656000 LA @06,1 04S0243 00657000 STH @06,K(,LWORKPTR) 04S0243 00658000 @DL00243 DS 0H 04S0244 00659000 * SUMS(K)=0; /* @Y30LB50*/ 00660000 LH @06,K(,LWORKPTR) 04S0244 00661000 ALR @06,@06 04S0244 00662000 SLR @15,@15 04S0244 00663000 STH @15,SUMS-2(@06,LWORKPTR) 04S0244 00664000 * END; /* @Y30LB50*/ 00665000 LA @06,1 04S0245 00666000 AH @06,K(,LWORKPTR) 04S0245 00667000 STH @06,K(,LWORKPTR) 04S0245 00668000 CH @06,@CH00034 04S0245 00669000 BNH @DL00243 04S0245 00670000 * NEXTCSB=CHAINPTR; /* POINT TO FIRST RECORD IN NEXT 00671000 * GROUP @Y30LB50*/ 00672000 L @06,NEXTCSB(,CSPTR) 03S0246 00673000 L @06,CHAINPTR(,@06) 03S0246 00674000 ST @06,NEXTCSB(,CSPTR) 03S0246 00675000 * END; /* @Y30LB50*/ 00676000 LA @06,1 03S0247 00677000 AH @06,M(,LWORKPTR) 03S0247 00678000 STH @06,M(,LWORKPTR) 03S0247 00679000 CH @06,@CH00219 03S0247 00680000 BNH @DL00168 03S0247 00681000 * END; /* @Y30LB50*/ 00682000 * END; /* @Y30LB50*/ 00683000 * ELSE 02S0250 00684000 * ; /* @Y30LB50*/ 00685000 @RF00103 DS 0H 02S0251 00686000 * CNTINDX=CNTINDX+LENGTH(FMT3CNTS);/* 02S0251 00687000 * UP INDEX FOR NEXT ACCESSOR'S 00688000 * COUNTS @Y30LB50*/ 00689000 @RC00103 LA @06,11 02S0251 00690000 AH @06,CNTINDX(,LWORKPTR) 02S0251 00691000 STH @06,CNTINDX(,LWORKPTR) 02S0251 00692000 * END; /* @Y30LB50*/ 00693000 LA @06,1 02S0252 00694000 AH @06,I(,LWORKPTR) 02S0252 00695000 STH @06,I(,LWORKPTR) 02S0252 00696000 CH @06,@CH00102 02S0252 00697000 BNH @DL00092 02S0252 00698000 * ELSE 02S0253 00699000 * ; /* @Y30LB50*/ 00700000 @RF00091 DS 0H 02S0254 00701000 * END; /* @Y30LB50*/ 00702000 LA @06,1 02S0254 00703000 AH @06,L(,LWORKPTR) 02S0254 00704000 STH @06,L(,LWORKPTR) 02S0254 00705000 CH @06,@CH00106 02S0254 00706000 BNH @DL00088 02S0254 00707000 * END; /* @Y30LB50*/ 00708000 * ELSE 01S0256 00709000 * ; /* @Y30LB50*/ 00710000 @RF00085 DS 0H 01S0257 00711000 * IF CCSBCSF(7)=ON THEN /* IF CSF REPORT IS REQUESTED 00712000 * FORMAT AN ERROR BUFFERED LOG - 00713000 * FORCED SENSE DATA REPORT 01S0257 00714000 * @Y30LB50*/ 00715000 L @06,LPARMPTR 01S0257 00716000 TM CCSBCSF(@06),B'00000010' 01S0257 00717000 BNO @RF00257 01S0257 00718000 * 02S0258 00719000 * /*****************************************************************/ 00720000 * /* */ 00721000 * /* ERRORRPT IS USED TO FORMAT AND PRINT THE ERROR BUFFERED LOG */ 00722000 * /* FORCED SENSE REPORT, WITH AS MANY PAGES AS NECESSARY TO PRINT */ 00723000 * /* ALL THE DATA ACCUMULATED. RETURN CODE WILL BE 12 IF NO DATA IS*/ 00724000 * /* FOUND FOR ANY CARTRIDGE STORE. @Y30LB50*/ 00725000 * /* */ 00726000 * /*****************************************************************/ 00727000 * 02S0258 00728000 * DO; /* @Y30LB50*/ 00729000 * FRETCODE=NOCSFDAT; /* SET RETURN CODE TO NO CSF DATA 00730000 * ACCUMULATED - WILL BE RESET IF 00731000 * DATA IS ENCOUNTERED @Y30LB50*/ 00732000 MVC FRETCODE(2,LWORKPTR),@CH00244 02S0259 00733000 * DO I=1 TO MAXCSS; /* PROCESS ALL CS TABLES @Y30LB50*/ 00734000 LA @06,1 02S0260 00735000 STH @06,I(,LWORKPTR) 02S0260 00736000 @DL00260 DS 0H 02S0261 00737000 * CSPTR=CSTPTRS(I); /* POINT TO CS TABLE @Y30LB50*/ 00738000 LH @06,I(,LWORKPTR) 02S0261 00739000 SLA @06,2 02S0261 00740000 L CSPTR,CSTPTRS-4(@06,LWORKPTR) 02S0261 00741000 * IF FBFRCNT^=0 THEN 02S0262 00742000 SLR @06,@06 02S0262 00743000 CH @06,FBFRCNT(,CSPTR) 02S0262 00744000 BE @RF00262 02S0262 00745000 * DO; /* PROCESS ONLY IF CSF DATA 02S0263 00746000 * ACCUMULATED @Y30LB50*/ 00747000 * SDARPTID=CSFID; /* MOVE CSF REPORT ID @ZM30730*/ 00748000 MVC SDARPTID(3,CVTPTR),@CC00340 02S0264 00749000 * PAGECNT=ERRPAGE; /* FORCE NEW PAGE PROCESSING FOR 00750000 * NEW CARTRIDGE STORE @Y30LB50*/ 00751000 MVC PAGECNT(2,LWORKPTR),@CH00298 02S0265 00752000 * NEXTCSF=CSFFIRST; /* POINT TO FIRST CSF RECORD 00753000 * SAVED @Y30LB50*/ 00754000 MVC NEXTCSF(4,CSPTR),CSFFIRST(CSPTR) 02S0266 00755000 * FRCDLOGS=0; /* SET NO FORCED SENSE EXPECTED 00756000 * @Y30LB50*/ 00757000 STH @06,FRCDLOGS(,CSPTR) 02S0267 00758000 * DO WHILE NEXTCSF^=0; /* PROCESS ALL CSF RECORDS SAVED 00759000 * @Y30LB50*/ 00760000 B @DE00268 02S0268 00761000 @DL00268 DS 0H 02S0269 00762000 * IF CSFBFRBT=ON THEN /* PROCESS ERROR BUFFERED LOG 00763000 * DATA @Y30LB50*/ 00764000 L @06,NEXTCSF(,CSPTR) 02S0269 00765000 TM CSFBFRBT(@06),B'00000001' 02S0269 00766000 BNO @RF00269 02S0269 00767000 * 03S0270 00768000 * /*****************************************************************/ 00769000 * /* */ 00770000 * /* ERRBFRD IS USED TO PROCESS AN ERROR BUFFERED LOG RECORD. IT */ 00771000 * /* WILL SKIP TO A NEW PAGE IF NECESSARY, PRINT COLUMN HEADINGS */ 00772000 * /* FOR THE ERROR BUFFERED LOG DATA COUNTS, PRINT ONE LINE PER */ 00773000 * /* ACCESSOR OF BUFFERED LOG DATA COUNTS AND SET A COUNT OF FORCED*/ 00774000 * /* SENSE RECORDS NOW EXPECTED. @Y30LB50*/ 00775000 * /* */ 00776000 * /*****************************************************************/ 00777000 * 03S0270 00778000 * DO; /* @Y30LB50*/ 00779000 * FRETCODE=0; /* RESET RETURN CODE TO 0 FOR 00780000 * DATA FOUND @Y30LB50*/ 00781000 SLR @06,@06 03S0271 00782000 STH @06,FRETCODE(,LWORKPTR) 03S0271 00783000 * IF(PAGECNT+ERRGRP)>ERRPAGE THEN 03S0272 00784000 LA @06,4 03S0272 00785000 AH @06,PAGECNT(,LWORKPTR) 03S0272 00786000 CH @06,@CH00298 03S0272 00787000 BNH @RF00272 03S0272 00788000 * CALL FRCDPAGE; /* IF PAGE OF OUTPUT IS FULL, DO 00789000 * NEW PAGE PROCESSING @Y30LB50*/ 00790000 BAL @14,FRCDPAGE 03S0273 00791000 * ELSE 03S0274 00792000 * ; /* @Y30LB50*/ 00793000 @RF00272 DS 0H 03S0275 00794000 * RFY 03S0275 00795000 * R1 RSTD; /* @Y30LB50*/ 00796000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00797000 LA R1,WORKCALL(,CVTPTR) 03S0276 00798000 * OUTPUT=ERRSUB1; /* @Y30LB50*/ 00799000 MVC OUTPUT(133,LINEPTR),@CC00427 03S0277 00800000 * CALL ISDAPRT0; /* PRINT COLUMN HEADINGS FOR 00801000 * ERROR DATA @Y30LB50*/ 00802000 L @15,@CV00480 03S0278 00803000 BALR @14,@15 03S0278 00804000 * RFY 03S0279 00805000 * R1 UNRSTD; /* @Y30LB50*/ 00806000 * OUTPUT=' '; /* CLEAR OUTPUT AREA @Y30LB50*/ 00807000 MVI OUTPUT+1(LINEPTR),C' ' 03S0280 00808000 MVC OUTPUT+2(131,LINEPTR),OUTPUT+1(LINEPTR) 03S0280 00809000 MVI OUTPUT(LINEPTR),C' ' 03S0280 00810000 * OUTPTR=ADDR(HEADING); /* POINT TO TIME IN OUTPUT 03S0281 00811000 * @Y30LB50*/ 00812000 LA OUTPTR,HEADING(,LINEPTR) 03S0281 00813000 * NEXTCSB=NEXTCSF; /* SET POINTER TO RECORD FOR 00814000 * TIMECVRT @Y30LB50*/ 00815000 MVC NEXTCSB(4,CSPTR),NEXTCSF(CSPTR) 03S0282 00816000 * CALL TIMECVRT; /* CALL TIME CONVERT ROUTINE 00817000 * @Y30LB50*/ 00818000 BAL @14,TIMECVRT 03S0283 00819000 * CNTPTR=ADDR(CSB1CNTS); /* POINT TO FIRST ACCESSOR COUNTS 00820000 * IN RECORD @Y30LB50*/ 00821000 L CNTPTR,NEXTCSB(,CSPTR) 03S0284 00822000 LA CNTPTR,CSB1CNTS(,CNTPTR) 03S0284 00823000 * DO K=1 TO MAXACC; /* PROCESS COUNTS FOR BOTH 03S0285 00824000 * ACCESSORS @Y30LB50*/ 00825000 LA @06,1 03S0285 00826000 STH @06,K(,LWORKPTR) 03S0285 00827000 @DL00285 DS 0H 03S0286 00828000 * IF K=1 THEN 03S0286 00829000 CLC K(2,LWORKPTR),@CH00083 03S0286 00830000 BNE @RF00286 03S0286 00831000 * FACC=ACC1; /* SET ACCESSOR INTO OUTPUT LINE 00832000 * @Y30LB50*/ 00833000 MVC FACC(5,OUTPTR),@CC00465 03S0287 00834000 * ELSE 03S0288 00835000 * FACC=ACC2; /* @Y30LB50*/ 00836000 B @RC00286 03S0288 00837000 @RF00286 MVC FACC(5,OUTPTR),@CC00467 03S0288 00838000 * OUTPTR=OUTPTR+LENGTH(FACCSKEL);/* 03S0289 00839000 * POINTER FOR FIRST COUNT 03S0289 00840000 * @Y30LB50*/ 00841000 @RC00286 AH OUTPTR,@CH00204 03S0289 00842000 * CALL BFRFMT; /* CONVERT COUNTS FOR ACCESSOR 00843000 * @Y30LB50*/ 00844000 BAL @14,BFRFMT 03S0290 00845000 * CNTPTR=CNTPTR+LENGTH(FMT3CNTS);/* 03S0291 00846000 * POINT TO NEXT ACCESSOR COUNTS 00847000 * @Y30LB50*/ 00848000 AH CNTPTR,@CH00033 03S0291 00849000 * OUTPTR=ADDR(HEADING); /* POINT TO START OF OUTPUT LINE 00850000 * @Y30LB50*/ 00851000 LA OUTPTR,HEADING(,LINEPTR) 03S0292 00852000 * END; /* @Y30LB50*/ 00853000 LA @06,1 03S0293 00854000 AH @06,K(,LWORKPTR) 03S0293 00855000 STH @06,K(,LWORKPTR) 03S0293 00856000 CH @06,@CH00102 03S0293 00857000 BNH @DL00285 03S0293 00858000 * FRCDLOGS=NFORCED; /* SET COUNT OF FORCED SENSE 00859000 * RECORDS EXPECTED @Y30LB50*/ 00860000 LA @06,4 03S0294 00861000 STH @06,FRCDLOGS(,CSPTR) 03S0294 00862000 * PAGECNT=PAGECNT+ERRGRP; /* UP COUNT OF LINES ON PAGE 00863000 * @Y30LB50*/ 00864000 AH @06,PAGECNT(,LWORKPTR) 03S0295 00865000 STH @06,PAGECNT(,LWORKPTR) 03S0295 00866000 * END; /* @Y30LB50*/ 00867000 * ELSE /* PROCESS FORCED SENSE DATA 00868000 * @Y30LB50*/ 00869000 * 03S0297 00870000 * /*****************************************************************/ 00871000 * /* */ 00872000 * /* FRCDRPT IS USED TO PROCESS FORCED SENSE RECORDS. IT WILL */ 00873000 * /* PROCESS THE RECORD ONLY IF IT IS EXPECTED. IT WILL PRINT */ 00874000 * /* COLUMN HEADINGS FOR THE FORCED SENSE AND PRINT ONE LINE PER */ 00875000 * /* FORCED RECORD. @Y30LB50*/ 00876000 * /* */ 00877000 * /*****************************************************************/ 00878000 * 03S0297 00879000 * DO; /* @Y30LB50*/ 00880000 B @RC00269 03S0297 00881000 @RF00269 DS 0H 03S0298 00882000 * IF FRCDLOGS^=0 THEN 03S0298 00883000 LH @06,FRCDLOGS(,CSPTR) 03S0298 00884000 LTR @06,@06 03S0298 00885000 BZ @RF00298 03S0298 00886000 * DO; /* PROCESS ONLY IF FORCED SENSE 00887000 * DATA IS NOW EXPECTED FOR AN 00888000 * ERROR BUFFERED LOG RECORD 00889000 * ENCOUNTERED @Y30LB50*/ 00890000 * IF FRCDLOGS=NFORCED THEN 03S0300 00891000 CH @06,@CH00106 03S0300 00892000 BNE @RF00300 03S0300 00893000 * DO; /* FOR THE FIRST FORCED SENSE 00894000 * RECORD AFTER THE ERROR 03S0301 00895000 * BUFFERED LOG RECORD PRINT 00896000 * COLUMN HEADINGS @Y30LB50*/ 00897000 * IF(PAGECNT+NFORCED+FRCDHEAD)>ERRPAGE THEN 03S0302 00898000 LA @06,6 03S0302 00899000 AH @06,PAGECNT(,LWORKPTR) 03S0302 00900000 CH @06,@CH00298 03S0302 00901000 BNH @RF00302 03S0302 00902000 * CALL FRCDPAGE; /* IF PAGE OF OUTPUT WILL NOT 00903000 * HOLD ALL FORCED SENSE, DO NEW 00904000 * PAGE PROCESSING @Y30LB50*/ 00905000 BAL @14,FRCDPAGE 03S0303 00906000 * ELSE 03S0304 00907000 * ; /* @Y30LB50*/ 00908000 @RF00302 DS 0H 03S0305 00909000 * OUTPUT=ERRSUB2; /* SENSE SUBHEADING @Y30LB50*/ 00910000 MVI OUTPUT+126(LINEPTR),C' ' 03S0305 00911000 MVC OUTPUT+127(6,LINEPTR),OUTPUT+126(LINEPTR) 03S0305 00912000 MVC OUTPUT(126,LINEPTR),@CC00438 03S0305 00913000 * RFY 03S0306 00914000 * R1 RSTD; /* @Y30LB50*/ 00915000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00916000 LA R1,WORKCALL(,CVTPTR) 03S0307 00917000 * CALL ISDAPRT0; /* @Y30LB50*/ 00918000 L @15,@CV00480 03S0308 00919000 BALR @14,@15 03S0308 00920000 * RFY 03S0309 00921000 * R1 UNRSTD; /* @Y30LB50*/ 00922000 * OUTPUT=' '; /* CLEAR OUTPUT LINE @Y30LB50*/ 00923000 MVI OUTPUT+1(LINEPTR),C' ' 03S0310 00924000 MVC OUTPUT+2(131,LINEPTR),OUTPUT+1(LINEPTR) 03S0310 00925000 MVI OUTPUT(LINEPTR),C' ' 03S0310 00926000 * PAGECNT=PAGECNT+FRCDHEAD;/* UP LINES ON PAGE @Y30LB50*/ 00927000 LA @06,2 03S0311 00928000 AH @06,PAGECNT(,LWORKPTR) 03S0311 00929000 STH @06,PAGECNT(,LWORKPTR) 03S0311 00930000 * END; /* @Y30LB50*/ 00931000 * ELSE 03S0313 00932000 * ; /* @Y30LB50*/ 00933000 @RF00300 DS 0H 03S0314 00934000 * OUTPTR=ADDR(HEADING); /* POINT TO POSITION IN OUTPUT 00935000 * LINE FOR SSID @Y30LB50*/ 00936000 LA OUTPTR,HEADING(,LINEPTR) 03S0314 00937000 * 04S0315 00938000 * /*****************************************************************/ 00939000 * /* */ 00940000 * /* FRCDFMT IS USED TO CONVERT SSID AND TIME FOR PRINTING IN THE */ 00941000 * /* FORCED SENSE OUTPUT LINE. @Y30LB50*/ 00942000 * /* */ 00943000 * /*****************************************************************/ 00944000 * 04S0315 00945000 * FSSID(1)=CSFMSC(2); /* ISOLATE FIRST 4 BITS OF THE 00946000 * SSID @Y30LB50*/ 00947000 L @06,NEXTCSF(,CSPTR) 04S0315 00948000 MVC FSSID(1,OUTPTR),CSFMSC+1(@06) 04S0315 00949000 * FSSID(1)=FSSID(1)&'0F'X; /* @Y30LB50*/ 00950000 NI FSSID(OUTPTR),X'0F' 04S0316 00951000 * FSSID(2)=CSFMSC(3); /* ISOLATE SECOND 4 BITS OF THE 00952000 * SSID @Y30LB50*/ 00953000 MVC FSSID+1(1,OUTPTR),CSFMSC+2(@06) 04S0317 00954000 * SRL(FSSID(2),4); /* @Y30LB50*/ 00955000 SLR @15,@15 04S0318 00956000 IC @15,FSSID+1(,OUTPTR) 04S0318 00957000 SRL @15,4 04S0318 00958000 STC @15,FSSID+1(,OUTPTR) 04S0318 00959000 * FSSID(3)=CSFMSC(3); /* ISOLATE LAST FOUR BITS OF THE 00960000 * SSID @Y30LB50*/ 00961000 MVC FSSID+2(1,OUTPTR),CSFMSC+2(@06) 04S0319 00962000 * FSSID(3)=FSSID(3)&'0F'X; /* @Y30LB50*/ 00963000 NI FSSID+2(OUTPTR),X'0F' 04S0320 00964000 * TR(FSSID,TRTBL2); /* TRANSLATE SSID TO PRINTABLE 00965000 * HEX @Y30LB50*/ 00966000 TR FSSID(3,OUTPTR),@CC00454 04S0321 00967000 * OUTPTR=ADDR(FSTIME); /* POINT TO TIME IN OUTPUT 04S0322 00968000 * @Y30LB50*/ 00969000 LA @15,FSTIME(,OUTPTR) 04S0322 00970000 LR OUTPTR,@15 04S0322 00971000 * NEXTCSB=NEXTCSF; /* SET POINTER TO TIME FOR 04S0323 00972000 * TIMECVRT @Y30LB50*/ 00973000 ST @06,NEXTCSB(,CSPTR) 04S0323 00974000 * CALL TIMECVRT; /* CONVERT TIME OF FORCED SENSE 00975000 * RECORD @Y30LB50*/ 00976000 BAL @14,TIMECVRT 04S0324 00977000 * OUTPTR=OUTPTR+LENGTH(TIMEFLD)+26;/* 04S0325 00978000 * POINT PAST TIME IN OUTPUT 00979000 * @Y30LB50*/ 00980000 AH OUTPTR,@CH00512 04S0325 00981000 * 04S0326 00982000 * /*****************************************************************/ 00983000 * /* */ 00984000 * /* FRCDBYTS IS USED TO CONVERT THE 32 BYTES OF SENSE TO 64 */ 00985000 * /* PRINTABLE HEX CHARACTERS. @Y30LB50*/ 00986000 * /* */ 00987000 * /*****************************************************************/ 00988000 * 04S0326 00989000 * CNTPTR=ADDR(CSFMSC); /* POINT TO SENSE TO BE CONVERTED 00990000 * @Y30LB50*/ 00991000 L CNTPTR,NEXTCSF(,CSPTR) 04S0326 00992000 LA CNTPTR,CSFMSC(,CNTPTR) 04S0326 00993000 * DO K=1 TO FRCDGRPS; /* PROCESS FORCED SENSE DATA 00994000 * BYTES IN GROUPS @Y30LB50*/ 00995000 LA @06,1 04S0327 00996000 STH @06,K(,LWORKPTR) 04S0327 00997000 @DL00327 DS 0H 04S0328 00998000 * DO J=1 TO FRCDBYTE; /* PROCESS BYTES IN ONE GROUP 00999000 * @Y30LB50*/ 01000000 LA @06,1 04S0328 01001000 STH @06,J(,LWORKPTR) 04S0328 01002000 @DL00328 DS 0H 04S0329 01003000 * OBYTE1=SNS1; /* ISOLATE FIRST FOUR BITS OF 01004000 * SENSE BYTE @Y30LB50*/ 01005000 MVC OBYTE1(1,OUTPTR),SNS1(CNTPTR) 04S0329 01006000 * OBYTE2=SNS1; /* ISOLATE SECOND FOUR BITS OF 01007000 * SENSE BYTE @Y30LB50*/ 01008000 MVC OBYTE2(1,OUTPTR),SNS1(CNTPTR) 04S0330 01009000 * SRL(OBYTE1,4); /* @Y30LB50*/ 01010000 SLR @06,@06 04S0331 01011000 IC @06,OBYTE1(,OUTPTR) 04S0331 01012000 SRL @06,4 04S0331 01013000 STC @06,OBYTE1(,OUTPTR) 04S0331 01014000 * OBYTE2=OBYTE2&'0F'X; /* @Y30LB50*/ 01015000 NI OBYTE2(OUTPTR),X'0F' 04S0332 01016000 * TR(FOUTBYTS,TRTBL2); /* CONVERT BYTE TO PRINTABLE HEX 01017000 * @Y30LB50*/ 01018000 TR FOUTBYTS(2,OUTPTR),@CC00454 04S0333 01019000 * CNTPTR=CNTPTR+1; /* UP POINTER TO NEXT BYTE OF 01020000 * SENSE @Y30LB50*/ 01021000 AH CNTPTR,@CH00083 04S0334 01022000 * OUTPTR=OUTPTR+LENGTH(FOUTBYTS);/* SPACE UP IN OUTPUT @Y30LB50*/ 01023000 AH OUTPTR,@CH00102 04S0335 01024000 * END; /* @Y30LB50*/ 01025000 LA @06,1 04S0336 01026000 AH @06,J(,LWORKPTR) 04S0336 01027000 STH @06,J(,LWORKPTR) 04S0336 01028000 CH @06,@CH00106 04S0336 01029000 BNH @DL00328 04S0336 01030000 * OUTPTR=OUTPTR+FSPACES; /* SPACE UP FOR NEXT GROUP 04S0337 01031000 * @Y30LB50*/ 01032000 AH OUTPTR,@CH00102 04S0337 01033000 * END; /* @Y30LB50*/ 01034000 LA @06,1 04S0338 01035000 AH @06,K(,LWORKPTR) 04S0338 01036000 STH @06,K(,LWORKPTR) 04S0338 01037000 CH @06,@CH00071 04S0338 01038000 BNH @DL00327 04S0338 01039000 * RFY 03S0339 01040000 * R1 RSTD; /* @Y30LB50*/ 01041000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 01042000 LA R1,WORKCALL(,CVTPTR) 03S0340 01043000 * CALL ISDAPRT0; /* PRINT FORCED SENSE OUTPUT LINE 01044000 * @Y30LB50*/ 01045000 L @15,@CV00480 03S0341 01046000 BALR @14,@15 03S0341 01047000 * RFY 03S0342 01048000 * R1 UNRSTD; /* @Y30LB50*/ 01049000 * FRCDLOGS=FRCDLOGS-1; /* DECREMENT THE COUNT OF FORCED 01050000 * SENSE RECORDS EXPECTED 03S0343 01051000 * @Y30LB50*/ 01052000 LH @06,FRCDLOGS(,CSPTR) 03S0343 01053000 BCTR @06,0 03S0343 01054000 STH @06,FRCDLOGS(,CSPTR) 03S0343 01055000 * OUTPUT=' '; /* CLEAR OUTPUT LINE @Y30LB50*/ 01056000 MVI OUTPUT+1(LINEPTR),C' ' 03S0344 01057000 MVC OUTPUT+2(131,LINEPTR),OUTPUT+1(LINEPTR) 03S0344 01058000 MVI OUTPUT(LINEPTR),C' ' 03S0344 01059000 * PAGECNT=PAGECNT+1; /* UP LINES ON PAGE @Y30LB50*/ 01060000 LA @06,1 03S0345 01061000 AH @06,PAGECNT(,LWORKPTR) 03S0345 01062000 STH @06,PAGECNT(,LWORKPTR) 03S0345 01063000 * END; /* @Y30LB50*/ 01064000 * ELSE 03S0347 01065000 * ; /* @Y30LB50*/ 01066000 @RF00298 DS 0H 03S0348 01067000 * END; /* @Y30LB50*/ 01068000 * NEXTCSF=CSFCHAIN; /* POINT TO NEXT CSF RECORD BY 01069000 * TIME @Y30LB50*/ 01070000 @RC00269 L @06,NEXTCSF(,CSPTR) 02S0349 01071000 L @06,CSFCHAIN(,@06) 02S0349 01072000 ST @06,NEXTCSF(,CSPTR) 02S0349 01073000 * END; /* @Y30LB50*/ 01074000 @DE00268 ICM @06,15,NEXTCSF(CSPTR) 02S0350 01075000 BNZ @DL00268 02S0350 01076000 * END; /* @Y30LB50*/ 01077000 * ELSE 02S0352 01078000 * ; /* @Y30LB50*/ 01079000 @RF00262 DS 0H 02S0353 01080000 * END; /* @Y30LB50*/ 01081000 LA @06,1 02S0353 01082000 AH @06,I(,LWORKPTR) 02S0353 01083000 STH @06,I(,LWORKPTR) 02S0353 01084000 CH @06,@CH00106 02S0353 01085000 BNH @DL00260 02S0353 01086000 * END; /* @Y30LB50*/ 01087000 * ELSE 01S0355 01088000 * ; /* @Y30LB50*/ 01089000 @RF00257 DS 0H 01S0356 01090000 * IF(BRETCODE=NOCSBDAT)&(FRETCODE=NOCSFDAT) THEN 01S0356 01091000 CLC BRETCODE(2,LWORKPTR),@CH00034 01S0356 01092000 BNE @RF00356 01S0356 01093000 CLC FRETCODE(2,LWORKPTR),@CH00244 01S0356 01094000 BNE @RF00356 01S0356 01095000 * RETCODE=NODATA; /* IF NO CSB OR CSF DATA WAS 01096000 * FOUND SET RETCODE FOR NO DATA 01097000 * ACCUMULATED @Y30LB50*/ 01098000 LA RETCODE,8 01S0357 01099000 * ELSE 01S0358 01100000 * DO; /* @Y30LB50*/ 01101000 B @RC00356 01S0358 01102000 @RF00356 DS 0H 01S0359 01103000 * IF BRETCODE=0 THEN 01S0359 01104000 ICM @06,3,BRETCODE(LWORKPTR) 01S0359 01105000 BNZ @RF00359 01S0359 01106000 * RETCODE=FRETCODE; /* IF CSB DATA WAS FOUND SET 01107000 * RETURN CODE FROM CSF 01S0360 01108000 * PROCESSING AS RETURN CODE FROM 01109000 * ISDACSB1--COULD BE 0 OR NO CSF 01110000 * DATA ACCUMULATED @Y30LB50*/ 01111000 SLR RETCODE,RETCODE 01S0360 01112000 ICM RETCODE,3,FRETCODE(LWORKPTR) 01S0360 01113000 * ELSE 01S0361 01114000 * RETCODE=BRETCODE; /* CSF DATA WAS FOUND BUT NO CSB 01115000 * - RETURN CODE WILL BE 0 OR NO 01116000 * CSB DATA ACCUMULATED @Y30LB50*/ 01117000 B @RC00359 01S0361 01118000 @RF00359 SLR RETCODE,RETCODE 01S0361 01119000 ICM RETCODE,3,BRETCODE(LWORKPTR) 01S0361 01120000 * IF RETCODE>NODATA&CCSBCSF^='03'X THEN /* WAS ONE REPORT 01S0362 01121000 * PRINTED @ZM30730*/ 01122000 @RC00359 LA @06,8 01S0362 01123000 CR RETCODE,@06 01S0362 01124000 BNH @RF00362 01S0362 01125000 L @01,LPARMPTR 01S0362 01126000 CLI CCSBCSF(@01),X'03' 01S0362 01127000 BE @RF00362 01S0362 01128000 * RETCODE=NODATA; /* NO, SET NO REPORTS @ZM30730*/ 01129000 LR RETCODE,@06 01S0363 01130000 * ELSE; /* YES, RETCODE OK @ZM30730*/ 01131000 @RF00362 DS 0H 01S0365 01132000 * END; /* @Y30LB50*/ 01133000 * 02S0366 01134000 * /*****************************************************************/ 01135000 * /* */ 01136000 * /* FREEBLKS IS USED TO FREE ALL ACCUMULATOR BLOCKS OBTAINED BY */ 01137000 * /* ISDACSB0, THE WORKAREA OBTAINED BY ISDACSB0 AND THE WORKAREA */ 01138000 * /* OBTAINED BY ISDACSB1 @Y30LB50*/ 01139000 * /* */ 01140000 * /*****************************************************************/ 01141000 * 02S0366 01142000 * DO I=1 TO MAXCSS; /* RELEASE ACCUMULATOR BLOCKS 01143000 * OBTAINED FOR EACH CS TABLE 01144000 * @Y30LB50*/ 01145000 @RC00356 LA @06,1 02S0366 01146000 STH @06,I(,LWORKPTR) 02S0366 01147000 @DL00366 DS 0H 02S0367 01148000 * CSPTR=CSTPTRS(I); /* POINT TO CS TABLE @Y30LB50*/ 01149000 LH @06,I(,LWORKPTR) 02S0367 01150000 SLA @06,2 02S0367 01151000 L CSPTR,CSTPTRS-4(@06,LWORKPTR) 02S0367 01152000 * CORELEN=LENGTH(CSBDATA)*BLOCKKNT+LENGTH(ISDAGHDR);/* 02S0368 01153000 * LENGTH-CSB BLOCK @Y30LB50*/ 01154000 MVC CORELEN(3,CVTPTR),@CF00514+1 02S0368 01155000 * SPNO=CSBSPNO; /* SUBPOOL NUMBER OF BLOCKS 02S0369 01156000 * @Y30LB50*/ 01157000 MVI SPNO(CVTPTR),X'01' 02S0369 01158000 * DO WHILE ACCUM^=0; /* RELEASE CSB BLOCKS @Y30LB50*/ 01159000 B @DE00370 02S0370 01160000 @DL00370 DS 0H 02S0371 01161000 * RFY 02S0371 01162000 * ISDAGHDR BASED(ACCUM); /* @Y30LB50*/ 01163000 * ACCMPTR=NEXTPTR; /* BLOCK CURRENT BLOCK IS CHAINED 01164000 * TO @Y30LB50*/ 01165000 L @06,ACCUM(,CSPTR) 02S0372 01166000 MVC ACCMPTR(4,CSPTR),NEXTPTR(@06) 02S0372 01167000 * RFY 02S0373 01168000 * R1 RSTD; /* @Y30LB50*/ 01169000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 01170000 LA R1,WORKCALL(,CVTPTR) 02S0374 01171000 * COREADDR=ACCUM; /* ADDRESS TO FREE @Y30LB50*/ 01172000 ST @06,COREADDR(,CVTPTR) 02S0375 01173000 * CALL ISDAFREE; /* FREE CURRENT BLOCK @Y30LB50*/ 01174000 L @15,@CV00479 02S0376 01175000 BALR @14,@15 02S0376 01176000 * RFY 02S0377 01177000 * R1 UNRSTD; /* @Y30LB50*/ 01178000 * ACCUM=ACCMPTR; /* POINT TO NEXT BLOCK @Y30LB50*/ 01179000 MVC ACCUM(4,CSPTR),ACCMPTR(CSPTR) 02S0378 01180000 * END; /* @Y30LB50*/ 01181000 @DE00370 ICM @06,15,ACCUM(CSPTR) 02S0379 01182000 BNZ @DL00370 02S0379 01183000 * CORELEN=LENGTH(CSFDATA)*BLOCKKNT+LENGTH(ISDAGHDR);/* 02S0380 01184000 * LENGTH-CSF BLOCK @Y30LB50*/ 01185000 MVC CORELEN(3,CVTPTR),@CF00517+1 02S0380 01186000 * DO WHILE FACCUM^=0; /* RELEASE CSF BLOCKS @Y30LB50*/ 01187000 B @DE00381 02S0381 01188000 @DL00381 DS 0H 02S0382 01189000 * RFY 02S0382 01190000 * ISDAGHDR BASED(FACCUM); /* @Y30LB50*/ 01191000 * FACCMPTR=NEXTPTR; /* BLOCK CURRENT BLOCK IS CHAINED 01192000 * TO @Y30LB50*/ 01193000 L @06,FACCUM(,CSPTR) 02S0383 01194000 MVC FACCMPTR(4,CSPTR),NEXTPTR(@06) 02S0383 01195000 * RFY 02S0384 01196000 * R1 RSTD; /* @Y30LB50*/ 01197000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 01198000 LA R1,WORKCALL(,CVTPTR) 02S0385 01199000 * COREADDR=FACCUM; /* ADDR TO RELEASE @Y30LB50*/ 01200000 ST @06,COREADDR(,CVTPTR) 02S0386 01201000 * CALL ISDAFREE; /* FREE CURRENT BLOCK @Y30LB50*/ 01202000 L @15,@CV00479 02S0387 01203000 BALR @14,@15 02S0387 01204000 * RFY 02S0388 01205000 * R1 UNRSTD; /* @Y30LB50*/ 01206000 * FACCUM=FACCMPTR; /* NEXT BLOCK @Y30LB50*/ 01207000 MVC FACCUM(4,CSPTR),FACCMPTR(CSPTR) 02S0389 01208000 * END; /* @Y30LB50*/ 01209000 @DE00381 ICM @06,15,FACCUM(CSPTR) 02S0390 01210000 BNZ @DL00381 02S0390 01211000 * END; /* @Y30LB50*/ 01212000 LA @06,1 02S0391 01213000 AH @06,I(,LWORKPTR) 02S0391 01214000 STH @06,I(,LWORKPTR) 02S0391 01215000 CH @06,@CH00106 02S0391 01216000 BNH @DL00366 02S0391 01217000 * RFY 02S0392 01218000 * R1 RSTD; /* @Y30LB50*/ 01219000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 01220000 LA R1,WORKCALL(,CVTPTR) 02S0393 01221000 * CORELEN=LENGTH(CSBWORK)+MAXCSS*LENGTH(CSTBLS);/* 02S0394 01222000 * LENGTH OF WORKAREA @Y30LB50*/ 01223000 MVC CORELEN(3,CVTPTR),@CF00520+1 02S0394 01224000 * SPNO=WORKSPNO; /* SUBPOOL NUMBER OF CSB WORKAREA 01225000 * @Y30LB50*/ 01226000 MVC SPNO(1,CVTPTR),WORKSPNO 02S0395 01227000 * COREADDR=LWORKPTR; /* @Y30LB50*/ 01228000 ST LWORKPTR,COREADDR(,CVTPTR) 02S0396 01229000 * CALL ISDAFREE; /* FREE CSB0 WORKAREA @Y30LB50*/ 01230000 L @15,@CV00479 02S0397 01231000 BALR @14,@15 02S0397 01232000 * RFY 02S0398 01233000 * R1 UNRSTD; /* @Y30LB50*/ 01234000 * CSB00PTR=0; /* ZERO ISDACSB0 WORKAREA ADDRESS 01235000 * @Y30LB50*/ 01236000 SLR @06,@06 02S0399 01237000 ST @06,CSB00PTR(,CVTPTR) 02S0399 01238000 * RETURN CODE(RETCODE); /* @Y30LB50*/ 01239000 L @13,4(,@13) 01S0400 01240000 L @00,@SIZDATD 01S0400 01241000 LR @01,@10 01S0400 01242000 ISDAFSPC R,LV=(0),A=(1) 01243000 LR @15,@03 01S0400 01244000 L @14,12(,@13) 01S0400 01245000 LM @00,@12,20(@13) 01S0400 01246000 BR @14 01S0400 01247000 * 02S0401 01248000 * /*****************************************************************/ 01249000 * /* */ 01250000 * /* BFRFMT IS CALLED TO CONVERT ERROR COUNTS FOR PRINTING IN */ 01251000 * /* DETAIL USAGE BUFFERED LOG REPORTS OR ERROR BUFFERED LOG */ 01252000 * /* REPORTS. IT CONVERTS USAGE COUNT, 12 4-BIT COUNTS, X-STRIP */ 01253000 * /* ERROR COUNT AND Y-STRIP ERROR COUNT. THE OUTPUT LINE IS */ 01254000 * /* PRINTED AND CLEARED. @Y30LB50*/ 01255000 * /* */ 01256000 * /*****************************************************************/ 01257000 * 02S0401 01258000 *BFRFMT: 02S0401 01259000 * PROC; /* @Y30LB50*/ 01260000 BFRFMT STM @14,@12,@SA00002 02S0401 01261000 * WORK6=PATT1; /* SET FIELD FOR SUPPRESSING 01262000 * LEADING ZEROES @Y30LB50*/ 01263000 MVC WORK6(6),PATT1 02S0402 01264000 * USAGECT=USAGECT&USAGMASK; /* CLEAR STATUS BITS AT BEGINNING 01265000 * OF USAGE COUNT @Y30LB50*/ 01266000 NC USAGECT(2,CNTPTR),USAGMASK 02S0403 01267000 * CVD(USAGEKT,HOLDDBL); /* @Y30LB50*/ 01268000 SLR @06,@06 02S0404 01269000 ICM @06,3,USAGEKT(CNTPTR) 02S0404 01270000 CVD @06,HOLDDBL(,LWORKPTR) 02S0404 01271000 * ED(WORK6,HOLD); /* USAGE COUNT INTO OUTPUT LINE 01272000 * @Y30LB50*/ 01273000 ED WORK6(6),HOLD(LWORKPTR) 02S0405 01274000 * OUSAGE=WORK6(2:6); /* MOVE 5 CHAR @Y30LB55*/ 01275000 MVC OUSAGE(5,OUTPTR),WORK6+1 02S0406 01276000 * WORK6=PATT1; /* X-STRIP ERRORS COUNT @Y30LB50*/ 01277000 MVC WORK6(6),PATT1 02S0407 01278000 * CWORK(1)=XYCOUNT; /* ISOLATE X STRIP ERROR COUNT 01279000 * @Y30LB50*/ 01280000 MVC CWORK(1,LWORKPTR),XYCOUNT(CNTPTR) 02S0408 01281000 * SRL(CWORK(1),4); /* @Y30LB50*/ 01282000 SLR @06,@06 02S0409 01283000 IC @06,CWORK(,LWORKPTR) 02S0409 01284000 SRL @06,4 02S0409 01285000 STC @06,CWORK(,LWORKPTR) 02S0409 01286000 * CWORK(2)=XCOUNT; /* @Y30LB50*/ 01287000 MVC CWORK+1(1,LWORKPTR),XCOUNT(CNTPTR) 02S0410 01288000 * CVD(KWORK,HOLDDBL); /* @Y30LB50*/ 01289000 SLR @06,@06 02S0411 01290000 ICM @06,3,KWORK(LWORKPTR) 02S0411 01291000 CVD @06,HOLDDBL(,LWORKPTR) 02S0411 01292000 * ED(WORK6,HOLD); /* X STRIP ERROR COUNT INTO 02S0412 01293000 * OUTPUT @Y30LB50*/ 01294000 ED WORK6(6),HOLD(LWORKPTR) 02S0412 01295000 * OCNT13=WORK6(2:6); /* MOVE 5 CHAR @Y30LB55*/ 01296000 MVC OCNT13(5,OUTPTR),WORK6+1 02S0413 01297000 * WORK6=PATT1; /* EDIT PATTERN @Y30LB50*/ 01298000 MVC WORK6(6),PATT1 02S0414 01299000 * CWORK(1)=XYCOUNT; /* ISOLATE Y STRIP ERROR COUNT 01300000 * @Y30LB50*/ 01301000 MVC CWORK(1,LWORKPTR),XYCOUNT(CNTPTR) 02S0415 01302000 * CWORK(1)=CWORK(1)&YMASK; /* @Y30LB50*/ 01303000 NC CWORK(1,LWORKPTR),YMASK 02S0416 01304000 * CWORK(2)=YCOUNT; /* @Y30LB50*/ 01305000 MVC CWORK+1(1,LWORKPTR),YCOUNT(CNTPTR) 02S0417 01306000 * CVD(KWORK,HOLDDBL); /* @Y30LB50*/ 01307000 SLR @06,@06 02S0418 01308000 ICM @06,3,KWORK(LWORKPTR) 02S0418 01309000 CVD @06,HOLDDBL(,LWORKPTR) 02S0418 01310000 * ED(WORK6,HOLD); /* Y STRIP ERROR COUNT INTO 02S0419 01311000 * OUTPUT @Y30LB50*/ 01312000 ED WORK6(6),HOLD(LWORKPTR) 02S0419 01313000 * OCNT14=WORK6(2:6); /* MOVE 5 CHAR @Y30LB55*/ 01314000 MVC OCNT14(5,OUTPTR),WORK6+1 02S0420 01315000 * 03S0421 01316000 * /*****************************************************************/ 01317000 * /* */ 01318000 * /* BFRCNTS IS USED TO ISOLATE EACH 4-BIT COUNTER FROM THE 6 BYTES*/ 01319000 * /* OF BUFFERED LOG , CONVERT THE COUNT TO EBCDIC DECIMAL */ 01320000 * /* CHARACTERS AND PUT IN THE OUTPUT LIE FOR DETAIL BUFFERED LOG */ 01321000 * /* REPORTS AND ERROR BUFFERED LOG REPORTS @Y30LB50*/ 01322000 * /* */ 01323000 * /*****************************************************************/ 01324000 * 03S0421 01325000 * DO J=1 TO MAXCNTS BY MAXBYTE; /* PROCESS COUNT BYTES @Y30LB50*/ 01326000 LA @06,1 03S0421 01327000 STH @06,J(,LWORKPTR) 03S0421 01328000 @DL00421 DS 0H 03S0422 01329000 * OUTPTR=OUTPTR+CNTSPC(J); /* SPACE UP IN OUTPUT LINE FOR 01330000 * COUNT @Y30LB50*/ 01331000 LH @06,J(,LWORKPTR) 03S0422 01332000 ALR @06,@06 03S0422 01333000 AH OUTPTR,CNTSPC-2(@06) 03S0422 01334000 * OCNT1=COUNT12; /* ISOLATE FIRST FOUR BIT COUNTER 01335000 * IN BYTE @Y30LB50*/ 01336000 MVC OCNT1(1,OUTPTR),COUNT12(CNTPTR) 03S0423 01337000 * SRL(OCNT1,4); /* @Y30LB50*/ 01338000 SLR @06,@06 03S0424 01339000 IC @06,OCNT1(,OUTPTR) 03S0424 01340000 SRL @06,4 03S0424 01341000 STC @06,OCNT1(,OUTPTR) 03S0424 01342000 * COUNT12=COUNT12&'0F'X; /* ISOLATE SECOND FOUR BIT COUNT 01343000 * IN BYTE @Y30LB50*/ 01344000 NI COUNT12(CNTPTR),X'0F' 03S0425 01345000 * IF OCNT1>UNITS THEN 03S0426 01346000 CLC OCNT1(1,OUTPTR),UNITS 03S0426 01347000 BNH @RF00426 03S0426 01348000 * OCNT0=TENS; /* SET TENS DIGIT IF COUNT IS 01349000 * GREATER THAN UNITS DIGITS ONLY 01350000 * @Y30LB50*/ 01351000 MVI OCNT0(OUTPTR),C'1' 03S0427 01352000 * ELSE 03S0428 01353000 * ; /* IF COUNT IS NOT GREATER THAN 01354000 * 10, LEAVE TENS DIGIT BLANK 01355000 * @Y30LB50*/ 01356000 @RF00426 DS 0H 03S0429 01357000 * TR(OCNT1,TRTBL); /* CONVERT ONE'S DIGIT TO EBCDIC 01358000 * @Y30LB50*/ 01359000 TR OCNT1(1,OUTPTR),@CC00449 03S0429 01360000 * OUTPTR=OUTPTR+CNTSPC(J+1); /* SPACE UP IN OUTPUT LINE FOR 01361000 * NEXT COUNT @Y30LB50*/ 01362000 LH @06,J(,LWORKPTR) 03S0430 01363000 ALR @06,@06 03S0430 01364000 AH OUTPTR,CNTSPC(@06) 03S0430 01365000 * OCNT1=COUNT12; /* MOVE SECOND COUNT TO OUTPUT 01366000 * LINE @Y30LB50*/ 01367000 MVC OCNT1(1,OUTPTR),COUNT12(CNTPTR) 03S0431 01368000 * IF OCNT1>UNITS THEN 03S0432 01369000 CLC OCNT1(1,OUTPTR),UNITS 03S0432 01370000 BNH @RF00432 03S0432 01371000 * OCNT0=TENS; /* SET TENS DIGIT IF COUNT IS 01372000 * GREATER THAN UNITS DIGITS ONLY 01373000 * @Y30LB50*/ 01374000 MVI OCNT0(OUTPTR),C'1' 03S0433 01375000 * ELSE 03S0434 01376000 * ; /* @Y30LB50*/ 01377000 @RF00432 DS 0H 03S0435 01378000 * TR(OCNT1,TRTBL); /* CONVERT ONE'S DIGIT TO EBCDIC 01379000 * @Y30LB50*/ 01380000 TR OCNT1(1,OUTPTR),@CC00449 03S0435 01381000 * CNTPTR=CNTPTR+1; /* UP POINTER TO NEXT COUNT IN 01382000 * THE BUFFERED LOG LOG DATA 01383000 * SAVED @Y30LB50*/ 01384000 AH CNTPTR,@CH00083 03S0436 01385000 * END; /* @Y30LB50*/ 01386000 LA @06,2 03S0437 01387000 AH @06,J(,LWORKPTR) 03S0437 01388000 STH @06,J(,LWORKPTR) 03S0437 01389000 CH @06,@CH00034 03S0437 01390000 BNH @DL00421 03S0437 01391000 * RFY 02S0438 01392000 * R1 RSTD; /* @Y30LB50*/ 01393000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 01394000 LA R1,WORKCALL(,CVTPTR) 02S0439 01395000 * CALL ISDAPRT0; /* PRINT ONE LINE OF COUNTS 02S0440 01396000 * @Y30LB50*/ 01397000 L @15,@CV00480 02S0440 01398000 BALR @14,@15 02S0440 01399000 * RFY 02S0441 01400000 * R1 RSTD; /* @Y30LB50*/ 01401000 * OUTPUT=' '; /* CLEAR OUTPUT LINE @Y30LB50*/ 01402000 MVI OUTPUT+1(LINEPTR),C' ' 02S0442 01403000 MVC OUTPUT+2(131,LINEPTR),OUTPUT+1(LINEPTR) 02S0442 01404000 MVI OUTPUT(LINEPTR),C' ' 02S0442 01405000 * END BFRFMT; /* @Y30LB50*/ 01406000 @EL00002 DS 0H 02S0443 01407000 @EF00002 DS 0H 02S0443 01408000 @ER00002 LM @14,@12,@SA00002 02S0443 01409000 BR @14 02S0443 01410000 *FRCDPAGE: 02S0444 01411000 * PROC; /* @Y30LB50*/ 01412000 * 02S0444 01413000 FRCDPAGE STM @14,@12,@SA00003 02S0444 01414000 * /*****************************************************************/ 01415000 * /* */ 01416000 * /* FRCDPAGE IS CALLED TO PRINT THE HEADING FOR A NEW ERROR */ 01417000 * /* BUFFERED /FORCED SENSE DATA REPORT PAGE @Y30LB50*/ 01418000 * /* */ 01419000 * /*****************************************************************/ 01420000 * 02S0445 01421000 * OUTPUT=ERRHEAD; /* MOVE MAIN HEADING TO OUTPUT 01422000 * LINE @Y30LB50*/ 01423000 MVI OUTPUT+132(LINEPTR),C' ' 02S0445 01424000 MVC OUTPUT(132,LINEPTR),@CC00417 02S0445 01425000 * CSNUMBER=CSNUMB; /* SET CARTRIDGE STORE INTO 02S0446 01426000 * HEADING @Y30LB50*/ 01427000 MVC CSNUMBER(1,LINEPTR),CSNUMB(CSPTR) 02S0446 01428000 * RFY 02S0447 01429000 * R1 RSTD; /* @Y30LB50*/ 01430000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 01431000 LA R1,WORKCALL(,CVTPTR) 02S0448 01432000 * CALL ISDAPRT0; /* SKIP TO NEW PAGE AND PRINT 01433000 * HEADING @Y30LB50*/ 01434000 L @15,@CV00480 02S0449 01435000 BALR @14,@15 02S0449 01436000 * RFY 02S0450 01437000 * R1 UNRSTD; /* @Y30LB50*/ 01438000 * OUTPUT=' '; /* CLEAR OUTPUT LINE @Y30LB50*/ 01439000 MVI OUTPUT+1(LINEPTR),C' ' 02S0451 01440000 MVC OUTPUT+2(131,LINEPTR),OUTPUT+1(LINEPTR) 02S0451 01441000 MVI OUTPUT(LINEPTR),C' ' 02S0451 01442000 * PAGECNT=0; /* SET LINES ON PAGE TO 0 02S0452 01443000 * @Y30LB50*/ 01444000 SLR @06,@06 02S0452 01445000 STH @06,PAGECNT(,LWORKPTR) 02S0452 01446000 * END FRCDPAGE; /* @Y30LB50*/ 01447000 @EL00003 DS 0H 02S0453 01448000 @EF00003 DS 0H 02S0453 01449000 @ER00003 LM @14,@12,@SA00003 02S0453 01450000 BR @14 02S0453 01451000 * 02S0454 01452000 * /*****************************************************************/ 01453000 * /* */ 01454000 * /* TIMECVRT IS CALLED TO CONVERT TIME IN THE LOGREC RECORD */ 01455000 * /* POINTED TO BY NEXTCSB TO THE FORMAT DDD/YY HH:MM:SS. THE */ 01456000 * /* OUTPUT TIME IS STORED AT THE LOCATION POINTED TO BY OUTPTR */ 01457000 * /* @Y30LB50*/ 01458000 * /* */ 01459000 * /*****************************************************************/ 01460000 * 02S0454 01461000 *TIMECVRT: 02S0454 01462000 * PROC; /* @Y30LB50*/ 01463000 TIMECVRT STM @14,@12,12(@13) 02S0454 01464000 * UNPK(ODAY,CSBDATE); /* CONVERT DAY @Y30LB50*/ 01465000 L @06,NEXTCSB(,CSPTR) 02S0455 01466000 UNPK ODAY(3,OUTPTR),CSBDATE(2,@06) 02S0455 01467000 * OYR(1)=CSBYR(2); /* CONVERT YEAR @Y30LB50*/ 01468000 MVC OYR(1,OUTPTR),CSBYR+1(@06) 02S0456 01469000 * SRL(OYR(1),4); /* @Y30LB50*/ 01470000 SLR @15,@15 02S0457 01471000 IC @15,OYR(,OUTPTR) 02S0457 01472000 SRL @15,4 02S0457 01473000 STC @15,OYR(,OUTPTR) 02S0457 01474000 * OYR(2)=CSBYR(2); /* @Y30LB50*/ 01475000 MVC OYR+1(1,OUTPTR),CSBYR+1(@06) 02S0458 01476000 * OYR=OYR|'00'; /* @Y30LB50*/ 01477000 OC OYR(2,OUTPTR),@CC00508 02S0459 01478000 * OSLASH='/'; /* SLASH BETWEEN DAY AND YEAR 01479000 * @Y30LB50*/ 01480000 MVI OSLASH(OUTPTR),C'/' 02S0460 01481000 * OHR(1)=CSBHR; /* CONVERT HOURS @Y30LB50*/ 01482000 MVC OHR(1,OUTPTR),CSBHR(@06) 02S0461 01483000 * SRL(OHR(1),4); /* @Y30LB50*/ 01484000 SLR @15,@15 02S0462 01485000 IC @15,OHR(,OUTPTR) 02S0462 01486000 SRL @15,4 02S0462 01487000 STC @15,OHR(,OUTPTR) 02S0462 01488000 * OHR(2)=CSBHR; /* @Y30LB50*/ 01489000 MVC OHR+1(1,OUTPTR),CSBHR(@06) 02S0463 01490000 * OHR=OHR|'00'; /* @Y30LB50*/ 01491000 OC OHR(2,OUTPTR),@CC00508 02S0464 01492000 * OCOL1=':'; /* COLON BETWEEN HOUR AND MINUTE 01493000 * @Y30LB50*/ 01494000 MVI OCOL1(OUTPTR),C':' 02S0465 01495000 * OMIN(1)=CSBMIN; /* CONVERT MINUTES @Y30LB50*/ 01496000 MVC OMIN(1,OUTPTR),CSBMIN(@06) 02S0466 01497000 * SRL(OMIN(1),4); /* @Y30LB50*/ 01498000 SLR @15,@15 02S0467 01499000 IC @15,OMIN(,OUTPTR) 02S0467 01500000 SRL @15,4 02S0467 01501000 STC @15,OMIN(,OUTPTR) 02S0467 01502000 * OMIN(2)=CSBMIN; /* @Y30LB50*/ 01503000 MVC OMIN+1(1,OUTPTR),CSBMIN(@06) 02S0468 01504000 * OMIN=OMIN|'00'; /* @Y30LB50*/ 01505000 OC OMIN(2,OUTPTR),@CC00508 02S0469 01506000 * OCOL2=':'; /* COLON BETWEEN MINUTES AND 01507000 * SECOND @Y30LB50*/ 01508000 MVI OCOL2(OUTPTR),C':' 02S0470 01509000 * OSEC(1)=CSBSEC; /* CONVERT SECONDS @Y30LB50*/ 01510000 MVC OSEC(1,OUTPTR),CSBSEC(@06) 02S0471 01511000 * SRL(OSEC(1),4); /* @Y30LB50*/ 01512000 SLR @15,@15 02S0472 01513000 IC @15,OSEC(,OUTPTR) 02S0472 01514000 SRL @15,4 02S0472 01515000 STC @15,OSEC(,OUTPTR) 02S0472 01516000 * OSEC(2)=CSBSEC; /* @Y30LB50*/ 01517000 MVC OSEC+1(1,OUTPTR),CSBSEC(@06) 02S0473 01518000 * OSEC=OSEC|'00'; /* @Y30LB50*/ 01519000 OC OSEC(2,OUTPTR),@CC00508 02S0474 01520000 * END TIMECVRT; /* @Y30LB50*/ 01521000 @EL00004 DS 0H 02S0475 01522000 @EF00004 DS 0H 02S0475 01523000 @ER00004 LM @14,@12,12(@13) 02S0475 01524000 BR @14 02S0475 01525000 * END ISDACSB1 /* @Y30LB50*/ 01526000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. * 01527000 */*%INCLUDE SYSLIB (ISDACVT ) * 01528000 */*%INCLUDE SYSLIB (ISDAPRMS) * 01529000 */*%INCLUDE SYSLIB (ISDAGHDR) * 01530000 */*%INCLUDE SYSLIB (ISDACSB5) * 01531000 */*%INCLUDE SYSUT5 (OUTPUT ) * 01532000 */*%INCLUDE SYSUT5 (OUTFMTS ) * 01533000 */*%INCLUDE SYSUT5 (FMT3CNTS) * 01534000 */*%INCLUDE SYSUT5 (TIMEFLD ) * 01535000 */*%INCLUDE SYSUT5 (CSB1CNST) * 01536000 */*%INCLUDE SYSUT5 (USAGERPT) * 01537000 */*%INCLUDE SYSUT5 (DETAIL ) * 01538000 */*%INCLUDE SYSUT5 (SUMMRY ) * 01539000 */*%INCLUDE SYSUT5 (SUMPAGE ) * 01540000 */*%INCLUDE SYSUT5 (SUMCNT ) * 01541000 */*%INCLUDE SYSUT5 (SUMSOUT ) * 01542000 */*%INCLUDE SYSUT5 (ERRORRPT) * 01543000 */*%INCLUDE SYSUT5 (ERRBFRD ) * 01544000 */*%INCLUDE SYSUT5 (FRCDRPT ) * 01545000 */*%INCLUDE SYSUT5 (FRCDFMT ) * 01546000 */*%INCLUDE SYSUT5 (FRCDBYTS) * 01547000 */*%INCLUDE SYSUT5 (FREEBLKS) * 01548000 */*%INCLUDE SYSUT5 (BFRFMT ) * 01549000 */*%INCLUDE SYSUT5 (BFRCNTS ) * 01550000 */*%INCLUDE SYSUT5 (FRCDPAGE) * 01551000 */*%INCLUDE SYSUT5 (TIMECVRT) * 01552000 *; 01S0476 01553000 @DATA DS 0H 01554000 @CH00083 DC H'1' 01555000 @CH00102 DC H'2' 01556000 @CH00106 DC H'4' 01557000 @CH00071 DC H'8' 01558000 @CH00033 DC H'11' 01559000 @CH00034 DC H'12' 01560000 @CH00244 DC H'16' 01561000 @CH00090 DC H'18' 01562000 @CH00204 DC H'22' 01563000 @CH00219 DC H'26' 01564000 @CH00512 DC H'42' 01565000 @CH00298 DC H'56' 01566000 @CH00511 DC H'-15' 01567000 @DATD DSECT 01568000 DS 0F 01569000 @SA00001 DS 18F 01570000 @PC00001 DS 1F 01571000 @SA00003 DS 0F 01572000 @SA00002 DS 0F 01573000 DS 15F 01574000 ISDACSB1 CSECT 01575000 DS 0F 01576000 @CF00520 DC F'288' 01577000 @CF00514 DC F'948' 01578000 @CF00517 DC F'1040' 01579000 @DATD DSECT 01580000 DS 0D 01581000 LPARMPTR DS A 01582000 GET0PTR DS A 01583000 WORK6 DS CL6 01584000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 01585000 @ENDDATD EQU * 01586000 ISDACSB1 CSECT 01587000 NOPR ((@ENDDATD-@DATD)/161*16) 01588000 DS 0F 01589000 @SIZDATD DC AL1(0) 01590000 DC AL3(@ENDDATD-@DATD) 01591000 @CV00479 DC V(ISDAFREE) 01592000 @CV00480 DC V(ISDAPRT0) 01593000 DS 0D 01594000 @CC00357 DC C'0 RECORD USAGE SEL/RST SEL/RST X-TIME Y-TIME XC01595000 -ADDR Y-ADDR X-TACH Y-TACH GAP SWIVEL SELECT SWIVELC01596000 X-STRIP Y-STRIP ' 01597000 @CC00367 DC C' DATE TIME COUNT TIMEOUT FAILURE OUT OUT C01598000 CHECK CHECK CHECK CHECK ERROR CHECK SEQ CHK TIMEOUC01599000 T CHECKS CHECKS ' 01600000 @CC00387 DC C'0 PERIOD USAGE SEL/RST SEL/RSC01601000 T X- Y- X- Y- X- Y- GAP SWIVEL SELECTC01602000 SWIVEL X- Y- ' 01603000 @CC00397 DC C' FROM: TO: COUNT TIMEOUT FAILURC01604000 E TIME TIME ADDR ADDR TACH TACH ERROR CHECK SEQ C01605000 TIME STRIP STRIP ' 01606000 @CC00407 DC C' DATE TIME DATE TIME C01607000 OUT OUT CHECK CHECK CHECK CHECK CHECKC01608000 OUT CHECKS CHECKS' 01609000 @CC00427 DC C'0 DATE TIME ACC USAGE S/R-TO S/R-FAIL X-TO YC01610000 -TO X-ADDR Y-ADDR X-TACH Y-TACH GAP SWV-CHK SEL-SEQ C01611000 SWV-TO X-STRIP Y-STRIP' 01612000 @CC00347 DC C'1REPORT 14 - CARTRIDGE STORE BUFFERED LOG - DETAIL DATC01613000 A FOR ACCESSOR MSF (DC01614000 ATA FROM MSS FORMAT 3)' 01615000 @CC00377 DC C'1REPORT 14 - CARTRIDGE STORE BUFFERED LOG - SUMMARY DAC01616000 TA FOR ACCESSOR - RECORDS TOTAL MSF (DC01617000 ATA FROM MSS FORMAT 3)' 01618000 @CC00417 DC C'1REPORT 15 - CARTRIDGE STORE FORCED LOG - BUFFERED LOGC01619000 ERROR OVERFLOW AND FORCED SENSE DATA MSF (DC01620000 ATA FROM MSS FORMAT 3)' 01621000 @CC00438 DC C'0SSID DATE TIME FORCED SENSE DATA BYTES: 00..02C01622000 .. 04..06.. 08..10.. 12..14.. 16..18.. 20..22.. 24C01623000 ..26.. 28..30..' 01624000 @CC00449 DC C'0123456789012345' 01625000 @CC00454 DC C'0123456789ABCDEF' 01626000 @CC00465 DC C'RIGHT' 01627000 @CC00467 DC C'LEFT ' 01628000 @CC00340 DC C'CSF' 01629000 @CC00508 DC C'00' 01630000 WORKSPNO DC X'00' 01631000 PATCH DS CL50 01632000 ORG PATCH 01633000 @NM00004 DC 50X'00' 01634000 ORG PATCH+50 01635000 PATT1 DC X'402020202120' 01636000 UNITS DC X'09' 01637000 YMASK DC X'0F' 01638000 USAGMASK DC X'1FFF' 01639000 CNTSPC DC H'8' 01640000 DC H'8' 01641000 DC H'8' 01642000 DC H'7' 01643000 DC H'7' 01644000 DC H'7' 01645000 DC H'7' 01646000 DC H'8' 01647000 DC H'7' 01648000 DC H'7' 01649000 DC H'7' 01650000 DC H'8' 01651000 SUMSPC DC H'8' 01652000 DC H'6' 01653000 DC H'6' 01654000 DC H'6' 01655000 DC H'6' 01656000 DC H'6' 01657000 DC H'6' 01658000 DC H'6' 01659000 DC H'6' 01660000 DC H'8' 01661000 DC H'7' 01662000 DC H'0' 01663000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 01664000 @01 EQU 01 01665000 @02 EQU 02 01666000 @03 EQU 03 01667000 @04 EQU 04 01668000 @05 EQU 05 01669000 @06 EQU 06 01670000 @07 EQU 07 01671000 @08 EQU 08 01672000 @09 EQU 09 01673000 @10 EQU 10 01674000 @11 EQU 11 01675000 @12 EQU 12 01676000 @13 EQU 13 01677000 @14 EQU 14 01678000 @15 EQU 15 01679000 CVTPTR EQU @02 01680000 RETCODE EQU @03 01681000 R1 EQU @01 01682000 LWORKPTR EQU @09 01683000 CSPTR EQU @08 01684000 LINEPTR EQU @07 01685000 OUTPTR EQU @05 01686000 CNTPTR EQU @04 01687000 R0 EQU @00 01688000 R15 EQU @15 01689000 ISDACVT EQU 0 01690000 CVTPTRS0 EQU ISDACVT 01691000 PARMPTR EQU CVTPTRS0+8 01692000 CSB00PTR EQU CVTPTRS0+68 01693000 WORKCALL EQU CVTPTRS0+96 01694000 GET0CALL EQU ISDACVT+100 01695000 SPNOLEN EQU GET0CALL 01696000 SPNO EQU SPNOLEN 01697000 CORELEN EQU SPNOLEN+1 01698000 COREADDR EQU GET0CALL+4 01699000 HEXPCALL EQU ISDACVT+108 01700000 PRT0CALL EQU ISDACVT+120 01701000 OUTLINE EQU PRT0CALL 01702000 SDARPTID EQU PRT0CALL+133 01703000 SDADATD EQU ISDACVT+256 01704000 PRTDATD EQU ISDACVT+416 01705000 ISDAPRMS EQU 0 01706000 CINPUT EQU ISDAPRMS 01707000 CSTART EQU ISDAPRMS+2 01708000 CEND EQU ISDAPRMS+6 01709000 CSUMMARY EQU ISDAPRMS+10 01710000 CFSCONLY EQU ISDAPRMS+13 01711000 CSSIDF EQU ISDAPRMS+17 01712000 CSERIAL EQU ISDAPRMS+21 01713000 CREPORTS EQU ISDAPRMS+33 01714000 CCSBCSF EQU CREPORTS+7 01715000 ISDAGHDR EQU 0 01716000 GET0SPLN EQU ISDAGHDR+8 01717000 NEXTPTR EQU ISDAGHDR+12 01718000 CSTBLS EQU 0 01719000 BFRCNT EQU CSTBLS 01720000 FBFRCNT EQU CSTBLS+2 01721000 ACCUM EQU CSTBLS+4 01722000 ACCMPTR EQU CSTBLS+8 01723000 NEXTCSB EQU CSTBLS+12 01724000 FRCDLOGS EQU CSTBLS+18 01725000 CSBFIRST EQU CSTBLS+20 01726000 FACCUM EQU CSTBLS+24 01727000 FACCMPTR EQU CSTBLS+28 01728000 NEXTCSF EQU CSTBLS+32 01729000 CSFFIRST EQU CSTBLS+36 01730000 CSNUMB EQU CSTBLS+42 01731000 CSBDATA EQU 0 01732000 CHAINPTR EQU CSBDATA 01733000 DAYTIME EQU CSBDATA+4 01734000 CSBDAY EQU DAYTIME 01735000 CSBYR EQU CSBDAY 01736000 CSBDATE EQU CSBDAY+2 01737000 CSBTIME EQU DAYTIME+4 01738000 CSBHR EQU CSBTIME 01739000 CSBMIN EQU CSBTIME+1 01740000 CSBSEC EQU CSBTIME+2 01741000 CSBREC EQU CSBDATA+16 01742000 CSB1CNTS EQU CSBREC+2 01743000 CSFDATA EQU 0 01744000 CSFCHAIN EQU CSFDATA 01745000 CSFDTIM EQU CSFDATA+4 01746000 CSFMSC EQU CSFDATA+12 01747000 CSFREC EQU CSFDATA+16 01748000 CSFSNS2 EQU CSFREC+1 01749000 CSFBFRBT EQU CSFSNS2 01750000 CSBWORK EQU 0 01751000 CSTPTRS EQU CSBWORK+20 01752000 I EQU CSBWORK+38 01753000 SUMU EQU CSBWORK+40 01754000 SUMX EQU CSBWORK+44 01755000 SUMY EQU CSBWORK+48 01756000 SUMS EQU CSBWORK+52 01757000 FRETCODE EQU CSBWORK+76 01758000 BRETCODE EQU CSBWORK+78 01759000 CNTINDX EQU CSBWORK+80 01760000 ACCTOT EQU CSBWORK+82 01761000 PAGECNT EQU CSBWORK+84 01762000 HOLDDBL EQU CSBWORK+86 01763000 HOLD2 EQU HOLDDBL+4 01764000 HOLD EQU HOLD2+1 01765000 KWORK EQU CSBWORK+94 01766000 CWORK EQU KWORK 01767000 GROUPS EQU CSBWORK+96 01768000 REMNDR EQU CSBWORK+98 01769000 GINDEX EQU CSBWORK+100 01770000 J EQU CSBWORK+102 01771000 K EQU CSBWORK+104 01772000 L EQU CSBWORK+106 01773000 M EQU CSBWORK+108 01774000 OUTPUT EQU 0 01775000 CNTRL EQU OUTPUT 01776000 HEADING EQU OUTPUT+1 01777000 ACCNO EQU HEADING+60 01778000 RECDCNT EQU HEADING+76 01779000 CSNUMBER EQU HEADING+103 01780000 OUTSKEL EQU 0 01781000 OUSAGE EQU OUTSKEL 01782000 OCNT13 EQU OUTSKEL+96 01783000 OCNT14 EQU OUTSKEL+104 01784000 OUTCNTS EQU 0 01785000 OCNT0 EQU OUTCNTS 01786000 OCNT1 EQU OUTCNTS+1 01787000 SOUTSKEL EQU 0 01788000 SUSAGE EQU SOUTSKEL+2 01789000 SCNTS EQU SOUTSKEL+8 01790000 SX EQU SOUTSKEL+88 01791000 SY EQU SOUTSKEL+96 01792000 SOUTCNTS EQU 0 01793000 SCNT EQU SOUTCNTS 01794000 FOUTSKEL EQU 0 01795000 FSSID EQU FOUTSKEL 01796000 FSTIME EQU FOUTSKEL+5 01797000 FOUTBYTS EQU 0 01798000 OBYTE1 EQU FOUTBYTS 01799000 OBYTE2 EQU FOUTBYTS+1 01800000 FSSKEL EQU 0 01801000 SNS1 EQU FSSKEL 01802000 FACCSKEL EQU 0 01803000 FACC EQU FACCSKEL+16 01804000 FMT3CNTS EQU 0 01805000 USAGEKT EQU FMT3CNTS 01806000 USAGECT EQU USAGEKT 01807000 COUNT12 EQU FMT3CNTS+2 01808000 COUNTDE EQU FMT3CNTS+8 01809000 XKOUNT EQU COUNTDE 01810000 XYCOUNT EQU XKOUNT 01811000 XCOUNT EQU XKOUNT+1 01812000 YCOUNT EQU COUNTDE+2 01813000 TIMEFLD EQU 0 01814000 ODAY EQU TIMEFLD 01815000 OSLASH EQU TIMEFLD+3 01816000 OYR EQU TIMEFLD+4 01817000 OHR EQU TIMEFLD+7 01818000 OCOL1 EQU TIMEFLD+9 01819000 OMIN EQU TIMEFLD+10 01820000 OCOL2 EQU TIMEFLD+12 01821000 OSEC EQU TIMEFLD+13 01822000 ODASH EQU TIMEFLD+15 01823000 WORKPTR EQU 0 01824000 * START UNREFERENCED COMPONENTS 01825000 OBLANK EQU TIMEFLD+6 01826000 COUNTBC EQU FMT3CNTS+7 01827000 COUNT9A EQU FMT3CNTS+6 01828000 COUNT78 EQU FMT3CNTS+5 01829000 COUNT56 EQU FMT3CNTS+4 01830000 COUNT34 EQU FMT3CNTS+3 01831000 USAGCNT EQU USAGECT 01832000 USAGBITS EQU USAGECT 01833000 FBLK6 EQU FACCSKEL+21 01834000 FBLK5 EQU FACCSKEL+15 01835000 FCDTIME EQU FACCSKEL 01836000 FSBYTES EQU FOUTSKEL+21 01837000 FBLK2 EQU FOUTSKEL+20 01838000 FBLK1 EQU FOUTSKEL+3 01839000 SBLK6 EQU SOUTSKEL+93 01840000 SBLK5 EQU SOUTSKEL+84 01841000 SBLK4 EQU SOUTSKEL+7 01842000 @NM00005 EQU SOUTSKEL 01843000 OBLK3 EQU OUTSKEL+101 01844000 OBLK2 EQU OUTSKEL+91 01845000 OCNTS EQU OUTSKEL+8 01846000 OBLK1 EQU OUTSKEL+5 01847000 TEXT4 EQU HEADING+104 01848000 TEXT3 EQU HEADING+81 01849000 TEXT2 EQU HEADING+65 01850000 TEXT1 EQU HEADING 01851000 FILLXX EQU CSBWORK+110 01852000 HOLD1 EQU HOLD2 01853000 HOLD0 EQU HOLDDBL 01854000 NBRWORK EQU CSBWORK+36 01855000 CURRADR EQU CSBWORK+16 01856000 STARTADR EQU CSBWORK+12 01857000 PRECORD EQU CSBWORK+8 01858000 NRECORD EQU CSBWORK+4 01859000 LOGPTR EQU CSBWORK 01860000 CSFBYTES EQU CSFREC+2 01861000 CSFBITS EQU CSFSNS2 01862000 CSFSNS1 EQU CSFREC 01863000 CSFTIME EQU CSFDTIM+4 01864000 CSFDAY EQU CSFDTIM 01865000 CSBSNSBY EQU CSBREC 01866000 CSBMSC EQU CSBDATA+12 01867000 CSBHSEC EQU CSBTIME+3 01868000 FILL2 EQU CSTBLS+43 01869000 CSFCNT EQU CSTBLS+40 01870000 CSBCNT EQU CSTBLS+16 01871000 @NM00003 EQU ISDAGHDR+26 01872000 BLOCKCNT EQU ISDAGHDR+24 01873000 BLOCKID EQU ISDAGHDR+20 01874000 LASTPTR EQU ISDAGHDR+16 01875000 GET0LEN EQU GET0SPLN+1 01876000 GET0SPNO EQU GET0SPLN 01877000 ENDPTR EQU ISDAGHDR+4 01878000 STARTPTR EQU ISDAGHDR 01879000 CTRACE EQU ISDAPRMS+48 01880000 CGEN EQU ISDAPRMS+47 01881000 CDETAIL EQU ISDAPRMS+46 01882000 CPERIOD EQU ISDAPRMS+45 01883000 CPWR EQU CREPORTS+11 01884000 CAPRSUU EQU CREPORTS+10 01885000 CDRC EQU CREPORTS+9 01886000 CDAT EQU CREPORTS+8 01887000 CDCKTLX EQU CREPORTS+6 01888000 CEQC EQU CREPORTS+5 01889000 CFSC EQU CREPORTS+4 01890000 CDHEDHU EQU CREPORTS+3 01891000 CSUM EQU CREPORTS+2 01892000 CPAD EQU CREPORTS+1 01893000 CDCS EQU CREPORTS 01894000 CSERNO EQU CSERIAL+4 01895000 @NM00002 EQU CSERIAL+3 01896000 CIBM EQU CSERIAL 01897000 CRATIO EQU ISDAPRMS+19 01898000 CSSID EQU CSSIDF 01899000 @NM00001 EQU CSSIDF 01900000 CFSC34 EQU CFSCONLY+2 01901000 CFSC12 EQU CFSCONLY 01902000 CTYPE EQU ISDAPRMS+11 01903000 CENDDAY EQU CEND+2 01904000 CENDYEAR EQU CEND 01905000 CSTDAY EQU CSTART+2 01906000 CSTYEAR EQU CSTART 01907000 CHISTIN EQU CINPUT+1 01908000 CLOGIN EQU CINPUT 01909000 PRTSA001 EQU PRTDATD 01910000 SDATEMPS EQU SDADATD+136 01911000 SDASA002 EQU SDADATD+76 01912000 SDAPC001 EQU SDADATD+72 01913000 SDASA001 EQU SDADATD 01914000 LINE EQU OUTLINE+1 01915000 ANSI EQU OUTLINE 01916000 DUMPIDNO EQU HEXPCALL+8 01917000 DUMPLEN EQU HEXPCALL+4 01918000 DUMPADDR EQU HEXPCALL 01919000 GEN00PTR EQU CVTPTRS0+92 01920000 CNFG0PTR EQU CVTPTRS0+88 01921000 PWR00PTR EQU CVTPTRS0+84 01922000 APR00PTR EQU CVTPTRS0+80 01923000 DRC00PTR EQU CVTPTRS0+76 01924000 DAT00PTR EQU CVTPTRS0+72 01925000 DCK00PTR EQU CVTPTRS0+64 01926000 EQC00PTR EQU CVTPTRS0+60 01927000 FSC00PTR EQU CVTPTRS0+56 01928000 DHE00PTR EQU CVTPTRS0+52 01929000 SUM00PTR EQU CVTPTRS0+48 01930000 PAD00PTR EQU CVTPTRS0+44 01931000 DCS00PTR EQU CVTPTRS0+40 01932000 LOG00PTR EQU CVTPTRS0+36 01933000 HIST0PTR EQU CVTPTRS0+32 01934000 PRT00PTR EQU CVTPTRS0+28 01935000 GET00PTR EQU CVTPTRS0+24 01936000 TYPE0PTR EQU CVTPTRS0+20 01937000 PARM0PTR EQU CVTPTRS0+16 01938000 SDA00PTR EQU CVTPTRS0+12 01939000 SDATAPTR EQU CVTPTRS0+4 01940000 DATAPTR EQU CVTPTRS0 01941000 * END UNREFERENCED COMPONENTS 01942000 @RC00106 EQU @RC00103 01943000 @ENDDATA EQU * 01944000 END ISDACSB1,(C'PLS2114',0701,77354) 01945000