TITLE 'CS BUFFERED LOG/FORCED SENSE DATA ACCUMULATOR *00001000 ' 00002000 ISDACSB0 CSECT , 01S0001 00003000 @MAINENT DS 0H 01S0001 00004000 USING *,@15 01S0001 00005000 B @PROLOG 01S0001 00006000 DC AL1(8) 01S0001 00007000 DC C'ISDACSB0' 01S0001 00008000 DROP @15 00009000 @PROLOG STM @14,@12,12(@13) 01S0001 00010000 BALR @12,0 01S0001 00011000 @PSTART DS 0H 01S0001 00012000 USING @PSTART,@12 01S0001 00013000 L @00,@SIZDATD 01S0001 00014000 ISDAGSPC R,LV=(0) 00015000 LR @11,@01 01S0001 00016000 USING @DATD,@11 01S0001 00017000 ST @13,@SA00001+4 01S0001 00018000 LM @00,@01,20(@13) 01S0001 00019000 ST @11,8(,@13) 01S0001 00020000 LR @13,@11 01S0001 00021000 MVC @PC00001(4),0(@01) 01S0001 00022000 * ACCUMULATOR JUST OBTAINED 00023000 * @Y30LB50*/ 00024000 * 01S0036 00025000 * /*****************************************************************/ 00026000 * /* */ 00027000 * /* END OF ISDACSB0 DECLARES @Y30LB50*/ 00028000 * /* */ 00029000 * /*****************************************************************/ 00030000 * 01S0037 00031000 * 01S0037 00032000 * /*****************************************************************/ 00033000 * /* */ 00034000 * /* START OF ISDACSB0 MAIN PROGRAM @Y30LB50*/ 00035000 * /* */ 00036000 * /*****************************************************************/ 00037000 * 01S0037 00038000 * CVTPTR=WORKPTR; /* SAVE SDACVT POINTER @Y30LB50*/ 00039000 L @10,@PC00001 01S0037 00040000 L CVTPTR,WORKPTR(,@10) 01S0037 00041000 * LPARMPTR=PARMPTR; /* SET LOCAL PTR TO PARMS@ZM30983*/ 00042000 MVC LPARMPTR(4),PARMPTR(CVTPTR) 01S0038 00043000 * SENSEPTR=SDATAPTR; /* SET SENSE DATA PTR @ZM30983*/ 00044000 MVC SENSEPTR(4),SDATAPTR(CVTPTR) 01S0039 00045000 * RETCODE=0; /* ZERO RETURN CODE @Y30LB50*/ 00046000 SLR @10,@10 01S0040 00047000 LR RETCODE,@10 01S0040 00048000 * IF CSB00PTR=0 THEN /* IF CSB00PTR IS 0, THIS IS THE 00049000 * INITIAL CALL AND A WORK AREA 00050000 * MUST BE OBTAINED AND 01S0041 00051000 * INITIALIZED @Y30LB50*/ 00052000 C @10,CSB00PTR(,CVTPTR) 01S0041 00053000 BNE @RF00041 01S0041 00054000 * 02S0042 00055000 * /*****************************************************************/ 00056000 * /* */ 00057000 * /* CSBINIT IS CALLED ONLY ONCE TO OBTAIN A WORKAREA AND TO */ 00058000 * /* INITITALIZE IT. @Y30LB50*/ 00059000 * /* */ 00060000 * /*****************************************************************/ 00061000 * 02S0042 00062000 * DO; /* @Y30LB50*/ 00063000 * RFY 02S0043 00064000 * R1 RSTD; /* @Y30LB50*/ 00065000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00066000 LA R1,WORKCALL(,CVTPTR) 02S0044 00067000 * CORELEN=LENGTH(CSBWORK)+MAXCSS*LENGTH(CSTBLS);/* 02S0045 00068000 * LENGTH OF WORKAREA=HEADER 00069000 * INFOR LENGTH PLUS SPACE FOR CS 00070000 * PROCESSING PARAMETER TABLES 00071000 * @Y30LB50*/ 00072000 MVC CORELEN(3,CVTPTR),@CF00402+1 02S0045 00073000 * SPNO=WORKSPNO; /* SUBPOOL NUMBER FOR CSB 02S0046 00074000 * WORKAREA @Y30LB50*/ 00075000 MVC SPNO(1,CVTPTR),WORKSPNO 02S0046 00076000 * CALL ISDAGET1; /* ASK FOR WORKAREA @Y30LB50*/ 00077000 L @15,@CV00369 02S0047 00078000 BALR @14,@15 02S0047 00079000 * RFY 02S0048 00080000 * R15 RSTD; /* @Y30LB50*/ 00081000 * RETCODE=R15; /* SAVE RETURN CODE FROM REQUEST 00082000 * @Y30LB50*/ 00083000 LR RETCODE,R15 02S0049 00084000 * RFY 02S0050 00085000 * (R15, 02S0050 00086000 * R1) UNRSTD; /* @Y30LB50*/ 00087000 * IF RETCODE=0 THEN 02S0051 00088000 LTR RETCODE,RETCODE 02S0051 00089000 BNZ @RF00051 02S0051 00090000 * DO; /* CONTINUE IF WORKAREA OBTAINED 00091000 * @Y30LB50*/ 00092000 * LWORKPTR=COREADDR; /* SAVE WORKAREA PTR FOR LOCAL 00093000 * USE @Y30LB50*/ 00094000 L LWORKPTR,COREADDR(,CVTPTR) 02S0053 00095000 * CSB00PTR=LWORKPTR; /* SAVE WORKAREA POINTER IN 02S0054 00096000 * SDACVT @Y30LB50*/ 00097000 ST LWORKPTR,CSB00PTR(,CVTPTR) 02S0054 00098000 * CSBWORK=''B; /* ZERO WORK AREA @Y30LB50*/ 00099000 XC CSBWORK(112,LWORKPTR),CSBWORK(LWORKPTR) 02S0055 00100000 * CSPTR=LWORKPTR+LENGTH(CSBWORK);/* 02S0056 00101000 * PTR TO FIRST TABLE @Y30LB50*/ 00102000 LA CSPTR,112 02S0056 00103000 ALR CSPTR,LWORKPTR 02S0056 00104000 * DO I=1 TO MAXCSS; /* ZERO EACH CS TABLE @Y30LB50*/ 00105000 LA @10,1 02S0057 00106000 STH @10,I(,LWORKPTR) 02S0057 00107000 @DL00057 DS 0H 02S0058 00108000 * CSTPTRS(I)=CSPTR; /* SAVE CS TABLE POINTER @Y30LB50*/ 00109000 LH @10,I(,LWORKPTR) 02S0058 00110000 SLA @10,2 02S0058 00111000 ST CSPTR,CSTPTRS-4(@10,LWORKPTR) 02S0058 00112000 * CSTBLS=''B; /* @Y30LB50*/ 00113000 XC CSTBLS(44,CSPTR),CSTBLS(CSPTR) 02S0059 00114000 * CSPTR=CSPTR+LENGTH(CSTBLS);/* 02S0060 00115000 * @Y30LB50*/ 00116000 AH CSPTR,@CH00400 02S0060 00117000 * END; /* @Y30LB50*/ 00118000 LA @10,1 02S0061 00119000 AH @10,I(,LWORKPTR) 02S0061 00120000 STH @10,I(,LWORKPTR) 02S0061 00121000 CH @10,@CH00107 02S0061 00122000 BNH @DL00057 02S0061 00123000 * END; /* @Y30LB50*/ 00124000 * ELSE /* BAD RETURN FROM GET1 @ZM30983*/ 00125000 * CCSBCSF='00'X; /* SET NO CALL FLAG @ZM30983*/ 00126000 B @RC00051 02S0063 00127000 @RF00051 L @10,LPARMPTR 02S0063 00128000 MVI CCSBCSF(@10),X'00' 02S0063 00129000 * END; /* @Y30LB50*/ 00130000 * ELSE 01S0065 00131000 * ; /* @Y30LB50*/ 00132000 @RF00041 DS 0H 01S0066 00133000 * IF RETCODE=0 THEN 01S0066 00134000 @RC00041 SLR @10,@10 01S0066 00135000 CR RETCODE,@10 01S0066 00136000 BNE @RF00066 01S0066 00137000 * DO; /* CONTINUE ONLY IF INITIAL 01S0067 00138000 * WORKAREA WAS OBTAINED @Y30LB50*/ 00139000 * LWORKPTR=CSB00PTR; /* PTR FOR WORKAREA @Y30LB50*/ 00140000 L LWORKPTR,CSB00PTR(,CVTPTR) 01S0068 00141000 * LOGPTR=DATAPTR; /* SAVE LOG HEADER POINTER 01S0069 00142000 * @Y30LB50*/ 00143000 MVC LOGPTR(4,LWORKPTR),DATAPTR(CVTPTR) 01S0069 00144000 * IF(ENVIRDAT=ON)&(RECONFIG^=ON) THEN 01S0070 00145000 L @15,SENSEPTR 01S0070 00146000 TM ENVIRDAT(@15),B'00000001' 01S0070 00147000 BNO @RF00070 01S0070 00148000 TM RECONFIG(@15),B'01000000' 01S0070 00149000 BO @RF00070 01S0070 00150000 * DO; /* FOR VALID INPUT THE 01S0071 00151000 * ENVIRONMENTAL DATA BIT MUST BE 00152000 * ON AND THE RECONFIGURATION BIT 00153000 * MUST BE OFF IN THE FORMAT 3 00154000 * SENSE. IF TRUE, CHECK FOR NEW 00155000 * CS. IF NOT TRUE, IGNORE DATA 00156000 * @Y30LB50*/ 00157000 * 02S0072 00158000 * /*****************************************************************/ 00159000 * /* */ 00160000 * /* CSCHK IS CALLED FOR EACH INPUT RECORD TO DETERMINE IF IT IS */ 00161000 * /* FOR A NEW CS (I.E. ONE FOR WHICH NO CS PARAMETERS TABLE HAS */ 00162000 * /* BEEN INITIALIZED). IF IT IS NEW, THE TABLE WILL BE INITIALIZED*/ 00163000 * /* AND CSPTR WILL BE INITIALIZED TO POINT TO THE NEW CS TABLE */ 00164000 * /* @Y30LB50*/ 00165000 * /* */ 00166000 * /*****************************************************************/ 00167000 * 02S0072 00168000 * DO; /* @Y30LB50*/ 00169000 * NBRWORK=SUBSYSID; /* ISOLATE CS IN SSID @Y30LB50*/ 00170000 MVC NBRWORK(2,LWORKPTR),SUBSYSID(@15) 02S0073 00171000 * NBRWORK=NBRWORK&CSMASK; /* @Y30LB50*/ 00172000 NC NBRWORK(2,LWORKPTR),CSMASK 02S0074 00173000 * SRL(NBRWORK(2),4); /* @Y30LB50*/ 00174000 SLR @15,@15 02S0075 00175000 IC @15,NBRWORK+1(,LWORKPTR) 02S0075 00176000 SRL @15,4 02S0075 00177000 STC @15,NBRWORK+1(,LWORKPTR) 02S0075 00178000 * CSPTR=CSTPTRS(NBRWORK+1); /* POINT TO THIS CS TABLE 02S0076 00179000 * @Y30LB50*/ 00180000 SLR @15,@15 02S0076 00181000 ICM @15,3,NBRWORK(LWORKPTR) 02S0076 00182000 SLA @15,2 02S0076 00183000 L CSPTR,CSTPTRS(@15,LWORKPTR) 02S0076 00184000 * IF(ACCUM=0)&(FACCUM=0) THEN 02S0077 00185000 C @10,ACCUM(,CSPTR) 02S0077 00186000 BNE @RF00077 02S0077 00187000 C @10,FACCUM(,CSPTR) 02S0077 00188000 BNE @RF00077 02S0077 00189000 * DO; /* NO CSB OR CSF ACCUMULATOR 00190000 * BLOCKS OBTAINED INDICATES NEW 00191000 * CS INPUT @Y30LB50*/ 00192000 * 03S0079 00193000 * /*****************************************************************/ 00194000 * /* */ 00195000 * /* FIRSTCSB IS CALLED TO OBTAIN THE FIRST CSB ACCUMULATOR BLOCK */ 00196000 * /* FOR A NEW CS, TO INITIALIZE ITS HEADER AND TO INITIALIZE THE */ 00197000 * /* CSB PARAMETERS IN THE CS TABLE IN THE CSB WORKAREA . IT CAN */ 00198000 * /* RETURN A CODE OF 4 FOR NO BLOCK OBTAINED OR 0 FOR BLOCK */ 00199000 * /* OBTAINED AND INITIALIZED @Y30LB50*/ 00200000 * /* */ 00201000 * /*****************************************************************/ 00202000 * 03S0079 00203000 * IF CCSBCSF(8)=ON THEN 03S0079 00204000 L @10,LPARMPTR 03S0079 00205000 TM CCSBCSF(@10),B'00000001' 03S0079 00206000 BNO @RF00079 03S0079 00207000 * DO; /* CHECK FOR CSB REQUESTED (USAGE 00208000 * BUFFERED LOG REPORT) @Y30LB50*/ 00209000 * CORELEN=LENGTH(ISDAGHDR)+BLOCKKNT*LENGTH(CSBDATA);/* 03S0081 00210000 * LENGTH OF ACCUMULATOR 00211000 * FOR ISDAGET0 REQUESTS=LENGTH 00212000 * OF HEADER PLUS LENGTH OF ONE 00213000 * LOG SAVE TIMES NUMBER OF LOGS 00214000 * PER BLOCK @Y30LB50*/ 00215000 MVC CORELEN(3,CVTPTR),@CF00404+1 03S0081 00216000 * SPNO=CSBSPNO; /* SUBPOOL NUMBER FOR CSB 03S0082 00217000 * PROCESSING @Y30LB50*/ 00218000 MVI SPNO(CVTPTR),X'01' 03S0082 00219000 * RFY 03S0083 00220000 * R1 RSTD; /* @Y30LB50*/ 00221000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00222000 LA R1,WORKCALL(,CVTPTR) 03S0084 00223000 * CALL ISDAGET0; /* GET ACCUMULATOR BLOCK @Y30LB50*/ 00224000 L @15,@CV00368 03S0085 00225000 BALR @14,@15 03S0085 00226000 * RFY 03S0086 00227000 * R15 RSTD; /* @Y30LB50*/ 00228000 * RETCODE=R15; /* SAVE RETURN CODE FROM ISDAGET0 00229000 * @Y30LB50*/ 00230000 LR RETCODE,R15 03S0087 00231000 * RFY 03S0088 00232000 * (R15, 03S0088 00233000 * R1) UNRSTD; /* @Y30LB50*/ 00234000 * IF RETCODE=0 THEN 03S0089 00235000 LTR RETCODE,RETCODE 03S0089 00236000 BNZ @RF00089 03S0089 00237000 * DO; /* INITIALIZE BLK IF OBTAINED 00238000 * @Y30LB50*/ 00239000 * RFY 03S0091 00240000 * GET0PTR RSTD; /* @Y30LB50*/ 00241000 * GET0PTR=COREADDR; /* SAVE ADDR OF BLOCK OBTAINED 00242000 * @Y30LB50*/ 00243000 L GET0PTR,COREADDR(,CVTPTR) 03S0092 00244000 * BLOCKID='CSB'; /* BLOCK USER ID @Y30LB50*/ 00245000 MVI BLOCKID+3(GET0PTR),C' ' 03S0093 00246000 MVC BLOCKID(3,GET0PTR),@CC00381 03S0093 00247000 * ACCUM=GET0PTR; /* FIRST CSB BLOCK FOR CS 03S0094 00248000 * @Y30LB50*/ 00249000 ST GET0PTR,ACCUM(,CSPTR) 03S0094 00250000 * ACCMPTR=GET0PTR; /* CURRENT CSB BLOCK FOR CS 03S0095 00251000 * @Y30LB50*/ 00252000 ST GET0PTR,ACCMPTR(,CSPTR) 03S0095 00253000 * CSBFIRST=STARTPTR; /* SET PTR FOR EARLIEST TIME REC 00254000 * @Y30LB50*/ 00255000 L @10,STARTPTR(,GET0PTR) 03S0096 00256000 ST @10,CSBFIRST(,CSPTR) 03S0096 00257000 * NEXTCSB=STARTPTR-LENGTH(CSBDATA);/* 03S0097 00258000 * SAVE ADDR-FIRST CSB RECORD 00259000 * @Y30LB50*/ 00260000 SH @10,@CH00097 03S0097 00261000 ST @10,NEXTCSB(,CSPTR) 03S0097 00262000 * CSNUMB=NBRWORK(2)|'0'; /* SAVE CS NUMBER FOR PRINTING 00263000 * @Y30LB50*/ 00264000 MVC CSNUMB(1,CSPTR),NBRWORK+1(LWORKPTR) 03S0098 00265000 OI CSNUMB(CSPTR),C'0' 03S0098 00266000 * RFY 03S0099 00267000 * GET0PTR UNRSTD; /* @Y30LB50*/ 00268000 * END; /* @Y30LB50*/ 00269000 * ELSE 03S0101 00270000 * ; /* @Y30LB50*/ 00271000 @RF00089 DS 0H 03S0102 00272000 * END; /* @Y30LB50*/ 00273000 * ELSE 03S0103 00274000 * ; /* @Y30LB50*/ 00275000 @RF00079 DS 0H 03S0104 00276000 * 03S0104 00277000 * /*****************************************************************/ 00278000 * /* */ 00279000 * /* FIRSTCSF IS USED TO OBTAIN THE FIRST CSF ACCUMULATOR BLOCK FOR*/ 00280000 * /* A NEW CS, TO INITIALIZE ITS HEADER AND TO INITIALIZE THE CSF */ 00281000 * /* PARAMETERS IN THE CS TABLE IN THE CSB WORKAREA. IT CAN RETURN */ 00282000 * /* A CODE OF 0 FOR BLOCK OBTAINED AND INITIALIZED OR 4 FOR NO */ 00283000 * /* BLOCK OBTAINED. @Y30LB50*/ 00284000 * /* */ 00285000 * /*****************************************************************/ 00286000 * 03S0104 00287000 * IF(CCSBCSF(7)=ON)&(RETCODE=0) THEN 03S0104 00288000 L @10,LPARMPTR 03S0104 00289000 TM CCSBCSF(@10),B'00000010' 03S0104 00290000 BNO @RF00104 03S0104 00291000 LTR RETCODE,RETCODE 03S0104 00292000 BNZ @RF00104 03S0104 00293000 * DO; /* CHECK IF ERROR BUFFERED LOG 00294000 * WAS REQUESTED @Y30LB50*/ 00295000 * CORELEN=LENGTH(ISDAGHDR)+BLOCKKNT*LENGTH(CSFDATA);/* 03S0106 00296000 * LENGTH OF ACCUMULATOR 00297000 * FOR ISDAGET0 REQUESTS=LENGTH 00298000 * OF HEADER PLUS LENGTH OF ONE 00299000 * LOG SAVE TIMES NUMBER OF LOGS 00300000 * PER BLOCK @Y30LB50*/ 00301000 MVC CORELEN(3,CVTPTR),@CF00406+1 03S0106 00302000 * SPNO=CSBSPNO; /* SUBPOOL NUMBER FOR CSB, CSF 00303000 * PROCESSING @Y30LB50*/ 00304000 MVI SPNO(CVTPTR),X'01' 03S0107 00305000 * RFY 03S0108 00306000 * R1 RSTD; /* @Y30LB50*/ 00307000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00308000 LA R1,WORKCALL(,CVTPTR) 03S0109 00309000 * CALL ISDAGET0; /* GET CSF ACCUMULATOR BLK 03S0110 00310000 * @Y30LB50*/ 00311000 L @15,@CV00368 03S0110 00312000 BALR @14,@15 03S0110 00313000 * RFY 03S0111 00314000 * R15 RSTD; /* @Y30LB50*/ 00315000 * RETCODE=R15; /* SAVE RETURN CODE FROM ISDAGET0 00316000 * @Y30LB50*/ 00317000 LR RETCODE,R15 03S0112 00318000 * RFY 03S0113 00319000 * (R15, 03S0113 00320000 * R1) UNRSTD; /* @Y30LB50*/ 00321000 * IF RETCODE=0 THEN 03S0114 00322000 LTR RETCODE,RETCODE 03S0114 00323000 BNZ @RF00114 03S0114 00324000 * DO; /* INITIALIZE BLK IF OBTAINED 00325000 * @Y30LB50*/ 00326000 * RFY 03S0116 00327000 * GET0PTR RSTD; /* @Y30LB50*/ 00328000 * GET0PTR=COREADDR; /* SAVE ADDR OF BLOCK OBTAINED 00329000 * @Y30LB50*/ 00330000 L GET0PTR,COREADDR(,CVTPTR) 03S0117 00331000 * BLOCKID='CSF'; /* BLOCK USER ID @Y30LB50*/ 00332000 MVI BLOCKID+3(GET0PTR),C' ' 03S0118 00333000 MVC BLOCKID(3,GET0PTR),@CC00383 03S0118 00334000 * FACCUM=GET0PTR; /* FIRST CSF BLOCK FOR CS 03S0119 00335000 * @Y30LB50*/ 00336000 ST GET0PTR,FACCUM(,CSPTR) 03S0119 00337000 * FACCMPTR=GET0PTR; /* CURRENT CSF BLOCK FOR CS 03S0120 00338000 * @Y30LB50*/ 00339000 ST GET0PTR,FACCMPTR(,CSPTR) 03S0120 00340000 * CSFFIRST=STARTPTR; /* SET PTR FOR EARLIEST TIME REC 00341000 * @Y30LB50*/ 00342000 L @10,STARTPTR(,GET0PTR) 03S0121 00343000 ST @10,CSFFIRST(,CSPTR) 03S0121 00344000 * NEXTCSF=STARTPTR-LENGTH(CSFDATA);/* 03S0122 00345000 * ADDR TO SAVE FIRST CSF LOG 00346000 * @Y30LB50*/ 00347000 SH @10,@CH00400 03S0122 00348000 ST @10,NEXTCSF(,CSPTR) 03S0122 00349000 * RFY 03S0123 00350000 * GET0PTR UNRSTD; /* @Y30LB50*/ 00351000 * CSNUMB=NBRWORK(2)|'0'; /* SAVE CS NUMBER FOR PRINTING 00352000 * @Y30LB50*/ 00353000 MVC CSNUMB(1,CSPTR),NBRWORK+1(LWORKPTR) 03S0124 00354000 OI CSNUMB(CSPTR),C'0' 03S0124 00355000 * END; /* @Y30LB50*/ 00356000 * ELSE 03S0126 00357000 * ; /* @Y30LB50*/ 00358000 @RF00114 DS 0H 03S0127 00359000 * END; /* @Y30LB50*/ 00360000 * ELSE 03S0128 00361000 * ; /* @Y30LB50*/ 00362000 @RF00104 DS 0H 03S0129 00363000 * END; /* @Y30LB50*/ 00364000 * ELSE 02S0130 00365000 * ; /* @Y30LB50*/ 00366000 @RF00077 DS 0H 02S0131 00367000 * END; /* @Y30LB50*/ 00368000 * IF RETCODE=0 THEN 01S0132 00369000 LTR RETCODE,RETCODE 01S0132 00370000 BNZ @RF00132 01S0132 00371000 * DO; /* IF CS CHECK WAS SUCCESSFUL 00372000 * @Y30LB50*/ 00373000 * IF(BFRBIT=ON) THEN /* CHECK BUFFERED LOG BIT IN THE 00374000 * MSC FMT 3 SENSE TO DETERMINE 00375000 * DATA TYPE. IF ON-CS BUFFERED 00376000 * LOG DATA. IF OFF-CS FORCED 00377000 * SENSE DATA @Y30LB50*/ 00378000 L @10,SENSEPTR 01S0134 00379000 TM BFRBIT(@10),B'00000001' 01S0134 00380000 BNO @RF00134 01S0134 00381000 * 02S0135 00382000 * /*****************************************************************/ 00383000 * /* */ 00384000 * /* BFRLOG IS CALLED TO ACCUMULATE BUFFERED LOG DATA FOR EITHER A */ 00385000 * /* USAGE REPORT REQUEST(CSB) OR AN ERROR REPORT REQUEST(CSF) OR */ 00386000 * /* BOTH. IT WILL OBTAIN A NEW BLOCK FOR ACCUMULATING WHEN */ 00387000 * /* NECESSARY. RETURN CODE WILL BE 4 IF NO ADDITIONAL BLOCK COULD */ 00388000 * /* BE OBTAINED WHEN NEEDED. @Y30LB50*/ 00389000 * /* */ 00390000 * /*****************************************************************/ 00391000 * 02S0135 00392000 * DO; /* @Y30LB50*/ 00393000 * IF CCSBCSF(8)=ON THEN /* IF USAGE REQUEST @Y30LB50*/ 00394000 L @10,LPARMPTR 02S0136 00395000 TM CCSBCSF(@10),B'00000001' 02S0136 00396000 BNO @RF00136 02S0136 00397000 * DO; /* @Y30LB50*/ 00398000 * RFY 03S0138 00399000 * LASTREC RSTD; /* @Y30LB50*/ 00400000 * LASTREC=NEXTCSB; /* SAVE ADDR OF PREVIOUS RECORD 00401000 * @Y30LB50*/ 00402000 L @10,NEXTCSB(,CSPTR) 03S0139 00403000 LR LASTREC,@10 03S0139 00404000 * NEXTCSB=NEXTCSB+LENGTH(CSBDATA);/* 03S0140 00405000 * UP PTR TO SAVE CURRENT REC 00406000 * @Y30LB50*/ 00407000 AH @10,@CH00097 03S0140 00408000 ST @10,NEXTCSB(,CSPTR) 03S0140 00409000 * IF CSBCNT=BLOCKKNT THEN /* IF CURRENT BLOCK IS FULL, 00410000 * OBTAIN A NEW ONE @Y30LB50*/ 00411000 CLC CSBCNT(2,CSPTR),@CH00237 03S0141 00412000 BNE @RF00141 03S0141 00413000 * 04S0142 00414000 * /*****************************************************************/ 00415000 * /* */ 00416000 * /* NEWCSB IS CALLED TO OBTAIN AN ADDITIONAL ACCUMULATOR BLOCK FOR*/ 00417000 * /* CSB PROCESSING. RETURN CODE WILL BE 4 IF NO BLOCK IS AVAILABLE*/ 00418000 * /* @Y30LB50*/ 00419000 * /* */ 00420000 * /*****************************************************************/ 00421000 * 04S0142 00422000 * DO; /* @Y30LB50*/ 00423000 * CORELEN=LENGTH(ISDAGHDR)+BLOCKKNT*LENGTH(CSBDATA);/* 04S0143 00424000 * LENGTH OF ACCUMULATOR FOR 00425000 * ISDAGET0 REQUESTS=LENGTH OF 00426000 * HEADER PLUS LENGTH OF ONE LOG 00427000 * SAVE TIMES NUMBER OF LOGS PER 00428000 * BLOCK @Y30LB50*/ 00429000 MVC CORELEN(3,CVTPTR),@CF00404+1 04S0143 00430000 * SPNO=CSBSPNO; /* SUBPOOL NUMBER FOR BLOCK 04S0144 00431000 * @Y30LB50*/ 00432000 MVI SPNO(CVTPTR),X'01' 04S0144 00433000 * RFY 04S0145 00434000 * R1 RSTD; /* @Y30LB50*/ 00435000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00436000 LA R1,WORKCALL(,CVTPTR) 04S0146 00437000 * CALL ISDAGET0; /* REQUEST BLOCK @Y30LB50*/ 00438000 L @15,@CV00368 04S0147 00439000 BALR @14,@15 04S0147 00440000 * RFY 04S0148 00441000 * R15 RSTD; /* @Y30LB50*/ 00442000 * RETCODE=R15; /* SAVE RETURN CODE FROM ISDAGET0 00443000 * @Y30LB50*/ 00444000 LR RETCODE,R15 04S0149 00445000 * RFY 04S0150 00446000 * (R1, 04S0150 00447000 * R15) UNRSTD; /* @Y30LB50*/ 00448000 * IF RETCODE=0 THEN 04S0151 00449000 SLR @10,@10 04S0151 00450000 CR RETCODE,@10 04S0151 00451000 BNE @RF00151 04S0151 00452000 * DO; /* INITIALIZE AND CHAIN BLOCK IF 00453000 * OBTAINED @Y30LB50*/ 00454000 * RFY 04S0153 00455000 * GET0PTR RSTD; /* @Y30LB50*/ 00456000 * GET0PTR=COREADDR; /* SAVE ADDRESS OF BLOCK OBTAINED 00457000 * @Y30LB50*/ 00458000 L GET0PTR,COREADDR(,CVTPTR) 04S0154 00459000 * LASTPTR=ACCMPTR; /* BACKWARD CHAIN IN NEW BLOCK 00460000 * @Y30LB50*/ 00461000 L @06,ACCMPTR(,CSPTR) 04S0155 00462000 ST @06,LASTPTR(,GET0PTR) 04S0155 00463000 * BLOCKID='CSB'; /* BLOCK USER ID @Y30LB50*/ 00464000 MVI BLOCKID+3(GET0PTR),C' ' 04S0156 00465000 MVC BLOCKID(3,GET0PTR),@CC00381 04S0156 00466000 * CSBCNT=0; /* COUNT OF LOGS IN NEW BLOCK 00467000 * @Y30LB50*/ 00468000 STH @10,CSBCNT(,CSPTR) 04S0157 00469000 * NEXTCSB=STARTPTR; /* ADDR TO SAVE NEXT LOG @Y30LB50*/ 00470000 MVC NEXTCSB(4,CSPTR),STARTPTR(GET0PTR) 04S0158 00471000 * RFY 04S0159 00472000 * ISDAGHDR BASED(ACCMPTR);/* @Y30LB50*/ 00473000 * NEXTPTR=GET0PTR; /* FORWARD CHAIN IN PREVIOUS 00474000 * BLOCK @Y30LB50*/ 00475000 ST GET0PTR,NEXTPTR(,@06) 04S0160 00476000 * RFY 04S0161 00477000 * ISDAGHDR BASED(GET0PTR);/* @Y30LB50*/ 00478000 * ACCMPTR=GET0PTR; /* NEW CSB BLOCK FOR CS @Y30LB50*/ 00479000 ST GET0PTR,ACCMPTR(,CSPTR) 04S0162 00480000 * RFY 04S0163 00481000 * GET0PTR UNRSTD; /* @Y30LB50*/ 00482000 * END; /* @Y30LB50*/ 00483000 * ELSE 04S0165 00484000 * ; /* @Y30LB50*/ 00485000 @RF00151 DS 0H 04S0166 00486000 * END; /* @Y30LB50*/ 00487000 * ELSE 03S0167 00488000 * ; /* @Y30LB50*/ 00489000 @RF00141 DS 0H 03S0168 00490000 * IF RETCODE=0 THEN 03S0168 00491000 LTR RETCODE,RETCODE 03S0168 00492000 BNZ @RF00168 03S0168 00493000 * DO; /* CONTINUE IF BLOCK OBTAINED 00494000 * @Y30LB50*/ 00495000 * CSBCNT=CSBCNT+1; /* UP COUNT OF LOGS IN BLOCK 00496000 * @Y30LB50*/ 00497000 LA @10,1 03S0170 00498000 LH @06,CSBCNT(,CSPTR) 03S0170 00499000 ALR @06,@10 03S0170 00500000 STH @06,CSBCNT(,CSPTR) 03S0170 00501000 * BFRCNT=BFRCNT+1; /* UP TOTAL COUNT OF CSB LOGS 00502000 * SAVED @Y30LB50*/ 00503000 AH @10,BFRCNT(,CSPTR) 03S0171 00504000 STH @10,BFRCNT(,CSPTR) 03S0171 00505000 * CSBDAY=DATE; /* SAVE DATE FROM HEADER @Y30LB50*/ 00506000 L @10,NEXTCSB(,CSPTR) 03S0172 00507000 L @06,LOGPTR(,LWORKPTR) 03S0172 00508000 MVC CSBDAY(4,@10),DATE(@06) 03S0172 00509000 * CSBTIME=TIME; /* SAVE TIME FROM HEADER @Y30LB50*/ 00510000 MVC CSBTIME(4,@10),TIME(@06) 03S0173 00511000 * CSBMSC=ISDAMSCS; /* SAVE MSC SENSE @Y30LB50*/ 00512000 L @06,SENSEPTR 03S0174 00513000 MVC CSBMSC(4,@10),ISDAMSCS(@06) 03S0174 00514000 * CSBREC=MSCFMT3B; /* SAVE BUFFERED LOG DATA 03S0175 00515000 * @Y30LB50*/ 00516000 MVC CSBREC(24,@10),MSCFMT3B(@06) 03S0175 00517000 * STARTADR=CSBFIRST; /* EARLIEST CSB TIME TAGGED 03S0176 00518000 * RECORD @Y30LB50*/ 00519000 MVC STARTADR(4,LWORKPTR),CSBFIRST(CSPTR) 03S0176 00520000 * CURRADR=NEXTCSB; /* CURRENT RECORD SAVED @Y30LB50*/ 00521000 ST @10,CURRADR(,LWORKPTR) 03S0177 00522000 * CALL CSBSORT; /* TIME MERGE CURRENT RECORD WITH 00523000 * THOSE ALREADY SAVED @Y30LB50*/ 00524000 BAL @14,CSBSORT 03S0178 00525000 * CSBFIRST=STARTADR; /* UPDATE POINTER TO EARLIEST 00526000 * RECORD @Y30LB50*/ 00527000 MVC CSBFIRST(4,CSPTR),STARTADR(LWORKPTR) 03S0179 00528000 * RFY 03S0180 00529000 * LASTREC UNRSTD; /* @Y30LB50*/ 00530000 * END; /* @Y30LB50*/ 00531000 * ELSE 03S0182 00532000 * ; /* @Y30LB50*/ 00533000 @RF00168 DS 0H 03S0183 00534000 * END; /* @Y30LB50*/ 00535000 * ELSE 02S0184 00536000 * ; /* @Y30LB50*/ 00537000 @RF00136 DS 0H 02S0185 00538000 * IF(CCSBCSF(7)=ON)&(ERROVFL1=ON) THEN/* IF ERROR @YM32171 00539000 * BUFFERED LOG REPORT IS 02S0185 00540000 * REQUESTED(CSF) AND THE ERROR 00541000 * BUFFERED LOG BIT IS ON IN THE 00542000 * MSC FORMAT3B SENSE-SAVE LOG 00543000 * FOR CSF PROCESSING @Y30LB50*/ 00544000 L @10,LPARMPTR 02S0185 00545000 TM CCSBCSF(@10),B'00000010' 02S0185 00546000 BNO @RF00185 02S0185 00547000 L @10,SENSEPTR 02S0185 00548000 TM ERROVFL1(@10),B'00100000' 02S0185 00549000 BNO @RF00185 02S0185 00550000 * DO; /* @Y30LB50*/ 00551000 * RFY 03S0187 00552000 * LASTREC RSTD; /* @Y30LB50*/ 00553000 * LASTREC=NEXTCSF; /* SAVE PTR TO LAST REC @Y30LB50*/ 00554000 L @10,NEXTCSF(,CSPTR) 03S0188 00555000 LR LASTREC,@10 03S0188 00556000 * NEXTCSF=NEXTCSF+LENGTH(CSFDATA);/* 03S0189 00557000 * UP PTR TO SAVE CURR REC 03S0189 00558000 * @Y30LB50*/ 00559000 AH @10,@CH00400 03S0189 00560000 ST @10,NEXTCSF(,CSPTR) 03S0189 00561000 * IF CSFCNT=BLOCKKNT THEN 03S0190 00562000 CLC CSFCNT(2,CSPTR),@CH00237 03S0190 00563000 BNE @RF00190 03S0190 00564000 * CALL NEWCSF; /* IF CURRENT CSF BLOCK IS FULL 00565000 * THEN GET A NEW ONE @Y30LB50*/ 00566000 BAL @14,NEWCSF 03S0191 00567000 * ELSE 03S0192 00568000 * ; /* @Y30LB50*/ 00569000 @RF00190 DS 0H 03S0193 00570000 * IF RETCODE=0 THEN 03S0193 00571000 LTR RETCODE,RETCODE 03S0193 00572000 BNZ @RF00193 03S0193 00573000 * DO; /* CONTINUE IF BLOCK OBTAINED 00574000 * @Y30LB50*/ 00575000 * CSFCNT=CSFCNT+1; /* UP COUNT OF LOGS IN BLOCK 00576000 * @Y30LB50*/ 00577000 LA @10,1 03S0195 00578000 LH @06,CSFCNT(,CSPTR) 03S0195 00579000 ALR @06,@10 03S0195 00580000 STH @06,CSFCNT(,CSPTR) 03S0195 00581000 * FBFRCNT=FBFRCNT+1; /* UP TOTAL COUNT OF ERROR 03S0196 00582000 * BUFFERED LOGS SAVED @Y30LB50*/ 00583000 AH @10,FBFRCNT(,CSPTR) 03S0196 00584000 STH @10,FBFRCNT(,CSPTR) 03S0196 00585000 * CSFDAY=DATE; /* SAVE DAY FROM HEADER @Y30LB50*/ 00586000 L @10,NEXTCSF(,CSPTR) 03S0197 00587000 L @06,LOGPTR(,LWORKPTR) 03S0197 00588000 MVC CSFDAY(4,@10),DATE(@06) 03S0197 00589000 * CSFTIME=TIME; /* SAVE TIME FROM HEADER @Y30LB50*/ 00590000 MVC CSFTIME(4,@10),TIME(@06) 03S0198 00591000 * CSFMSC=ISDAMSCS; /* SAVE MSC SENSE @Y30LB50*/ 00592000 L @06,SENSEPTR 03S0199 00593000 MVC CSFMSC(4,@10),ISDAMSCS(@06) 03S0199 00594000 * CSFREC=ISDAMSC3; /* SAVE ERROR BUFFERED LOG DATA 00595000 * @Y30LB50*/ 00596000 MVC CSFREC(28,@10),ISDAMSC3(@06) 03S0200 00597000 * STARTADR=CSFFIRST; /* EARLIEST CSF RECORD @Y30LB50*/ 00598000 MVC STARTADR(4,LWORKPTR),CSFFIRST(CSPTR) 03S0201 00599000 * CURRADR=NEXTCSF; /* CURRENT RECORD @Y30LB50*/ 00600000 ST @10,CURRADR(,LWORKPTR) 03S0202 00601000 * CALL CSBSORT; /* TIME MERGE CURRENT RECORD WITH 00602000 * THOSE ALREADY SAVED @Y30LB50*/ 00603000 BAL @14,CSBSORT 03S0203 00604000 * CSFFIRST=STARTADR; /* UPDATE EARLIEST RECORD POINTER 00605000 * @Y30LB50*/ 00606000 MVC CSFFIRST(4,CSPTR),STARTADR(LWORKPTR) 03S0204 00607000 * RFY 03S0205 00608000 * LASTREC UNRSTD; /* @Y30LB50*/ 00609000 * FRCDLOGS=NFORCED; /* EXPECTED COUNT OF FORCED LOGS 00610000 * @Y30LB50*/ 00611000 MVC FRCDLOGS(2,CSPTR),@CH00107 03S0206 00612000 * END; /* @Y30LB50*/ 00613000 * ELSE 03S0208 00614000 * ; /* @Y30LB50*/ 00615000 @RF00193 DS 0H 03S0209 00616000 * END; /* @Y30LB50*/ 00617000 * ELSE 02S0210 00618000 * ; /* @Y30LB50*/ 00619000 @RF00185 DS 0H 02S0211 00620000 * END; /* @Y30LB50*/ 00621000 * ELSE 01S0212 00622000 * 02S0212 00623000 * /*****************************************************************/ 00624000 * /* */ 00625000 * /* FSNSLOG IS CALLED TO ACUMULATE CS FORCED SENSE DATA. IF NONE */ 00626000 * /* IS EXPECTED, THE INPUT IS IGNORED. IF A NEW BLOCK CANNOT BE */ 00627000 * /* OBTAINED WHEN NEEDED. RETURN CODE WILL BE 4. @Y30LB50*/ 00628000 * /* */ 00629000 * /*****************************************************************/ 00630000 * 02S0212 00631000 * DO; /* @Y30LB50*/ 00632000 B @RC00134 02S0212 00633000 @RF00134 DS 0H 02S0213 00634000 * IF CCSBCSF(7)=ON THEN 02S0213 00635000 L @10,LPARMPTR 02S0213 00636000 TM CCSBCSF(@10),B'00000010' 02S0213 00637000 BNO @RF00213 02S0213 00638000 * DO; /* PROCESS IF CSF IS REQUESTED 00639000 * @Y30LB50*/ 00640000 * IF FRCDLOGS^=0 THEN 02S0215 00641000 ICM @10,3,FRCDLOGS(CSPTR) 02S0215 00642000 BZ @RF00215 02S0215 00643000 * DO; /* PROCESS ONLY IF FORCED DATA IS 00644000 * EXPECTED. FRCDLOGS IS COUNT 00645000 * EXPECTED @Y30LB50*/ 00646000 * RFY 02S0217 00647000 * LASTREC RSTD; /* @Y30LB50*/ 00648000 * LASTREC=NEXTCSF; /* SAVE PTR TO LAST REC SAVED 00649000 * @Y30LB50*/ 00650000 L @10,NEXTCSF(,CSPTR) 02S0218 00651000 LR LASTREC,@10 02S0218 00652000 * NEXTCSF=NEXTCSF+LENGTH(CSFDATA);/* 02S0219 00653000 * UP PTR TO SAVE CURRENT REC 00654000 * @Y30LB50*/ 00655000 AH @10,@CH00400 02S0219 00656000 ST @10,NEXTCSF(,CSPTR) 02S0219 00657000 * IF CSFCNT=BLOCKKNT THEN 02S0220 00658000 CLC CSFCNT(2,CSPTR),@CH00237 02S0220 00659000 BNE @RF00220 02S0220 00660000 * CALL NEWCSF; /* IF CURRENT BLOCK IS FULL THEN 00661000 * GET A NEW BLOCK @Y30LB50*/ 00662000 BAL @14,NEWCSF 02S0221 00663000 * ELSE 02S0222 00664000 * ; /* @Y30LB50*/ 00665000 @RF00220 DS 0H 02S0223 00666000 * IF RETCODE=0 THEN 02S0223 00667000 LTR RETCODE,RETCODE 02S0223 00668000 BNZ @RF00223 02S0223 00669000 * DO; /* CONTINUE IF BLOCK OBTAINED 00670000 * @Y30LB50*/ 00671000 * CSFCNT=CSFCNT+1; /* UP COUNT OF LOGS IN BLOCK 00672000 * @Y30LB50*/ 00673000 LA @10,1 02S0225 00674000 AH @10,CSFCNT(,CSPTR) 02S0225 00675000 STH @10,CSFCNT(,CSPTR) 02S0225 00676000 * CSFDAY=DATE; /* SAVE DATE FROM HEADER @Y30LB50*/ 00677000 L @10,NEXTCSF(,CSPTR) 02S0226 00678000 L @06,LOGPTR(,LWORKPTR) 02S0226 00679000 MVC CSFDAY(4,@10),DATE(@06) 02S0226 00680000 * CSFTIME=TIME; /* SAVE TIME FROM HEADER @Y30LB50*/ 00681000 MVC CSFTIME(4,@10),TIME(@06) 02S0227 00682000 * CSFMSC=ISDAMSCS; /* SAVE MSC SENSE @Y30LB50*/ 00683000 L @06,SENSEPTR 02S0228 00684000 MVC CSFMSC(4,@10),ISDAMSCS(@06) 02S0228 00685000 * CSFREC=ISDAMSC3; /* SAVE FORCED SENSE DATA 02S0229 00686000 * @Y30LB50*/ 00687000 MVC CSFREC(28,@10),ISDAMSC3(@06) 02S0229 00688000 * FRCDLOGS=FRCDLOGS-1;/* DECREMENT COUNT OF LOGS 00689000 * STILL EXPECTED @Y30LB50*/ 00690000 LH @06,FRCDLOGS(,CSPTR) 02S0230 00691000 BCTR @06,0 02S0230 00692000 STH @06,FRCDLOGS(,CSPTR) 02S0230 00693000 * STARTADR=CSFFIRST;/* EARLIEST RECORD SAVED @Y30LB50*/ 00694000 MVC STARTADR(4,LWORKPTR),CSFFIRST(CSPTR) 02S0231 00695000 * CURRADR=NEXTCSF; /* CURRENT RECORD SAVED @Y30LB50*/ 00696000 ST @10,CURRADR(,LWORKPTR) 02S0232 00697000 * CALL CSBSORT; /* TIME MERGE CURRENT RECORD WITH 00698000 * THOSE ALREADY SAVED @Y30LB50*/ 00699000 BAL @14,CSBSORT 02S0233 00700000 * CSFFIRST=STARTADR;/* UPDATE EARLIEST RECORD 02S0234 00701000 * @Y30LB50*/ 00702000 MVC CSFFIRST(4,CSPTR),STARTADR(LWORKPTR) 02S0234 00703000 * RFY 02S0235 00704000 * LASTREC UNRSTD; /* @Y30LB50*/ 00705000 * END; /* @Y30LB50*/ 00706000 * ELSE 02S0237 00707000 * ; /* @Y30LB50*/ 00708000 @RF00223 DS 0H 02S0238 00709000 * END; /* @Y30LB50*/ 00710000 * ELSE 02S0239 00711000 * RETCODE=INVLDATA; /* SET INVALID INPUT RET CODE 00712000 * @Y30LB50*/ 00713000 B @RC00215 02S0239 00714000 @RF00215 LA RETCODE,16 02S0239 00715000 * END; /* @Y30LB50*/ 00716000 * ELSE 02S0241 00717000 * ; /* @Y30LB50*/ 00718000 @RF00213 DS 0H 02S0242 00719000 * END; /* @Y30LB50*/ 00720000 * END; /* @Y30LB50*/ 00721000 * ELSE 01S0244 00722000 * ; /* @Y30LB50*/ 00723000 @RF00132 DS 0H 01S0245 00724000 * IF RETCODE=NOSPACE THEN /* IF ACCUMULATOR SPACE WAS NOT 00725000 * AVAILABLE, RELEASE BLOCKS 00726000 * ALREADY OBTAINED AND SHUT OFF 00727000 * THE CSB AND CSF REPORTS 01S0245 00728000 * @Y30LB50*/ 00729000 @RC00132 CH RETCODE,@CH00107 01S0245 00730000 BNE @RF00245 01S0245 00731000 * 02S0246 00732000 * /*****************************************************************/ 00733000 * /* */ 00734000 * /* FREEBLKS IS USED TO FREE ALL ACCUMULATOR BLOCKS OBTAINED BY */ 00735000 * /* ISDACSB0, THE WORKAREA OBTAINED BY ISDACSB0 AND THE WORKAREA */ 00736000 * /* OBTAINED BY ISDACSB1 @Y30LB50*/ 00737000 * /* */ 00738000 * /*****************************************************************/ 00739000 * 02S0246 00740000 * DO; /* @Y30LB50*/ 00741000 * DO I=1 TO MAXCSS; /* RELEASE ACCUMULATOR BLOCKS 00742000 * OBTAINED FOR EACH CS TABLE 00743000 * @Y30LB50*/ 00744000 LA @10,1 02S0247 00745000 STH @10,I(,LWORKPTR) 02S0247 00746000 @DL00247 DS 0H 02S0248 00747000 * CSPTR=CSTPTRS(I); /* POINT TO CS TABLE @Y30LB50*/ 00748000 LH @10,I(,LWORKPTR) 02S0248 00749000 SLA @10,2 02S0248 00750000 L CSPTR,CSTPTRS-4(@10,LWORKPTR) 02S0248 00751000 * CORELEN=LENGTH(CSBDATA)*BLOCKKNT+LENGTH(ISDAGHDR);/* 02S0249 00752000 * LENGTH-CSB BLOCK @Y30LB50*/ 00753000 MVC CORELEN(3,CVTPTR),@CF00404+1 02S0249 00754000 * SPNO=CSBSPNO; /* SUBPOOL NUMBER OF BLOCKS 02S0250 00755000 * @Y30LB50*/ 00756000 MVI SPNO(CVTPTR),X'01' 02S0250 00757000 * DO WHILE ACCUM^=0; /* RELEASE CSB BLOCKS @Y30LB50*/ 00758000 B @DE00251 02S0251 00759000 @DL00251 DS 0H 02S0252 00760000 * RFY 02S0252 00761000 * ISDAGHDR BASED(ACCUM); /* @Y30LB50*/ 00762000 * ACCMPTR=NEXTPTR; /* BLOCK CURRENT BLOCK IS CHAINED 00763000 * TO @Y30LB50*/ 00764000 L @10,ACCUM(,CSPTR) 02S0253 00765000 MVC ACCMPTR(4,CSPTR),NEXTPTR(@10) 02S0253 00766000 * RFY 02S0254 00767000 * R1 RSTD; /* @Y30LB50*/ 00768000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00769000 LA R1,WORKCALL(,CVTPTR) 02S0255 00770000 * COREADDR=ACCUM; /* ADDRESS TO FREE @Y30LB50*/ 00771000 ST @10,COREADDR(,CVTPTR) 02S0256 00772000 * CALL ISDAFREE; /* FREE CURRENT BLOCK @Y30LB50*/ 00773000 L @15,@CV00370 02S0257 00774000 BALR @14,@15 02S0257 00775000 * RFY 02S0258 00776000 * R1 UNRSTD; /* @Y30LB50*/ 00777000 * ACCUM=ACCMPTR; /* POINT TO NEXT BLOCK @Y30LB50*/ 00778000 MVC ACCUM(4,CSPTR),ACCMPTR(CSPTR) 02S0259 00779000 * END; /* @Y30LB50*/ 00780000 @DE00251 ICM @10,15,ACCUM(CSPTR) 02S0260 00781000 BNZ @DL00251 02S0260 00782000 * CORELEN=LENGTH(CSFDATA)*BLOCKKNT+LENGTH(ISDAGHDR);/* 02S0261 00783000 * LENGTH-CSF BLOCK @Y30LB50*/ 00784000 MVC CORELEN(3,CVTPTR),@CF00406+1 02S0261 00785000 * DO WHILE FACCUM^=0; /* RELEASE CSF BLOCKS @Y30LB50*/ 00786000 B @DE00262 02S0262 00787000 @DL00262 DS 0H 02S0263 00788000 * RFY 02S0263 00789000 * ISDAGHDR BASED(FACCUM); /* @Y30LB50*/ 00790000 * FACCMPTR=NEXTPTR; /* BLOCK CURRENT BLOCK IS CHAINED 00791000 * TO @Y30LB50*/ 00792000 L @10,FACCUM(,CSPTR) 02S0264 00793000 MVC FACCMPTR(4,CSPTR),NEXTPTR(@10) 02S0264 00794000 * RFY 02S0265 00795000 * R1 RSTD; /* @Y30LB50*/ 00796000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00797000 LA R1,WORKCALL(,CVTPTR) 02S0266 00798000 * COREADDR=FACCUM; /* ADDR TO RELEASE @Y30LB50*/ 00799000 ST @10,COREADDR(,CVTPTR) 02S0267 00800000 * CALL ISDAFREE; /* FREE CURRENT BLOCK @Y30LB50*/ 00801000 L @15,@CV00370 02S0268 00802000 BALR @14,@15 02S0268 00803000 * RFY 02S0269 00804000 * R1 UNRSTD; /* @Y30LB50*/ 00805000 * FACCUM=FACCMPTR; /* NEXT BLOCK @Y30LB50*/ 00806000 MVC FACCUM(4,CSPTR),FACCMPTR(CSPTR) 02S0270 00807000 * RFY 02S0271 00808000 * ISDAGHDR BASED(GET0PTR); /* @Y30LB50*/ 00809000 * END; /* @Y30LB50*/ 00810000 @DE00262 ICM @10,15,FACCUM(CSPTR) 02S0272 00811000 BNZ @DL00262 02S0272 00812000 * END; /* @Y30LB50*/ 00813000 LA @10,1 02S0273 00814000 AH @10,I(,LWORKPTR) 02S0273 00815000 STH @10,I(,LWORKPTR) 02S0273 00816000 CH @10,@CH00107 02S0273 00817000 BNH @DL00247 02S0273 00818000 * RFY 02S0274 00819000 * R1 RSTD; /* @Y30LB50*/ 00820000 * CCSBCSF='00'X; /* TURN OFF CONTROL FLAG FOR CSB, 00821000 * CSF REPORTS @Y30LB50*/ 00822000 L @10,LPARMPTR 02S0275 00823000 MVI CCSBCSF(@10),X'00' 02S0275 00824000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00825000 LA R1,WORKCALL(,CVTPTR) 02S0276 00826000 * CORELEN=LENGTH(CSBWORK)+MAXCSS*LENGTH(CSTBLS);/* 02S0277 00827000 * LENGTH OF WORKAREA @Y30LB50*/ 00828000 MVC CORELEN(3,CVTPTR),@CF00402+1 02S0277 00829000 * SPNO=WORKSPNO; /* SUBPOOL NUMBER OF CSB WORKAREA 00830000 * @Y30LB50*/ 00831000 MVC SPNO(1,CVTPTR),WORKSPNO 02S0278 00832000 * COREADDR=LWORKPTR; /* @Y30LB50*/ 00833000 ST LWORKPTR,COREADDR(,CVTPTR) 02S0279 00834000 * CALL ISDAFREE; /* FREE CSB0 WORKAREA @Y30LB50*/ 00835000 L @15,@CV00370 02S0280 00836000 BALR @14,@15 02S0280 00837000 * RFY 02S0281 00838000 * R1 UNRSTD; /* @Y30LB50*/ 00839000 * CSB00PTR=0; /* ZERO ISDACSB0 WORKAREA ADDRESS 00840000 * @Y30LB50*/ 00841000 SLR @10,@10 02S0282 00842000 ST @10,CSB00PTR(,CVTPTR) 02S0282 00843000 * END; /* @Y30LB50*/ 00844000 * ELSE 01S0284 00845000 * ; /* @Y30LB50*/ 00846000 @RF00245 DS 0H 01S0285 00847000 * END; /* @Y30LB50*/ 00848000 * ELSE 01S0286 00849000 * ; /* @Y30LB50*/ 00850000 @RF00070 DS 0H 01S0287 00851000 * END; /* @Y30LB50*/ 00852000 * ELSE 01S0288 00853000 * ; /* @Y30LB50*/ 00854000 @RF00066 DS 0H 01S0289 00855000 * RETURN CODE(RETCODE); /* @Y30LB50*/ 00856000 L @13,4(,@13) 01S0289 00857000 L @00,@SIZDATD 01S0289 00858000 LR @01,@11 01S0289 00859000 ISDAFSPC R,LV=(0),A=(1) 00860000 LR @15,@03 01S0289 00861000 L @14,12(,@13) 01S0289 00862000 LM @00,@12,20(@13) 01S0289 00863000 BR @14 01S0289 00864000 * 02S0290 00865000 * /*****************************************************************/ 00866000 * /* */ 00867000 * /* NEWCSF IS CALLED TO OBTAIN AN ADDITIONAL ACCUMULATOR BLOCK FOR*/ 00868000 * /* CSF PROCESSING. RETURN CODE WILL BE 4 IF NO BLOCK IS */ 00869000 * /* AVAILABLE. @Y30LB50*/ 00870000 * /* */ 00871000 * /*****************************************************************/ 00872000 * 02S0290 00873000 *NEWCSF: 02S0290 00874000 * PROC; /* @Y30LB50*/ 00875000 @EL00001 L @13,4(,@13) 02S0290 00876000 @EF00001 L @00,@SIZDATD 02S0290 00877000 LR @01,@11 02S0290 00878000 ISDAFSPC R,LV=(0),A=(1) 00879000 @ER00001 LM @14,@12,12(@13) 02S0290 00880000 BR @14 02S0290 00881000 NEWCSF STM @14,@12,@SA00002 02S0290 00882000 * CORELEN=LENGTH(ISDAGHDR)+BLOCKKNT*LENGTH(CSFDATA);/* 02S0291 00883000 * LENGTH OF ACCUMULATOR FOR 00884000 * ISDAGET0 REQUESTS=LENGTH OF 00885000 * HEADER PLUS LENGTH OF ONE LOG 00886000 * SAVE TIMES NUMBER OF LOGS PER 00887000 * BLOCK @Y30LB50*/ 00888000 MVC CORELEN(3,CVTPTR),@CF00406+1 02S0291 00889000 * SPNO=CSBSPNO; /* SUBPOOL NUMBER FOR BLOCK 02S0292 00890000 * @Y30LB50*/ 00891000 MVI SPNO(CVTPTR),X'01' 02S0292 00892000 * RFY 02S0293 00893000 * R1 RSTD; /* @Y30LB50*/ 00894000 * R1=ADDR(WORKCALL); /* @Y30LB50*/ 00895000 LA R1,WORKCALL(,CVTPTR) 02S0294 00896000 * CALL ISDAGET0; /* REQUEST BLOCK @Y30LB50*/ 00897000 L @15,@CV00368 02S0295 00898000 BALR @14,@15 02S0295 00899000 * RFY 02S0296 00900000 * R15 RSTD; /* @Y30LB50*/ 00901000 * RETCODE=R15; /* SAVE RETURN CODE FROM ISDAGET0 00902000 * @Y30LB50*/ 00903000 LR RETCODE,R15 02S0297 00904000 * RFY 02S0298 00905000 * (R1, 02S0298 00906000 * R15) UNRSTD; /* @Y30LB50*/ 00907000 * IF RETCODE=0 THEN 02S0299 00908000 SLR @10,@10 02S0299 00909000 CR RETCODE,@10 02S0299 00910000 BNE @RF00299 02S0299 00911000 * DO; /* INITIALIZE & CHAIN BLOCK IF 00912000 * OBTAINED @Y30LB50*/ 00913000 * RFY 02S0301 00914000 * GET0PTR RSTD; /* @Y30LB50*/ 00915000 * GET0PTR=COREADDR; /* SAVE ADDRESS OF BLOCK OBTAINED 00916000 * @Y30LB50*/ 00917000 L GET0PTR,COREADDR(,CVTPTR) 02S0302 00918000 * LASTPTR=FACCMPTR; /* BACKWARD CHAIN IN NEW BLOCK 00919000 * @Y30LB50*/ 00920000 L @04,FACCMPTR(,CSPTR) 02S0303 00921000 ST @04,LASTPTR(,GET0PTR) 02S0303 00922000 * BLOCKID='CSF'; /* BLOCK USER ID @Y30LB50*/ 00923000 MVI BLOCKID+3(GET0PTR),C' ' 02S0304 00924000 MVC BLOCKID(3,GET0PTR),@CC00383 02S0304 00925000 * CSFCNT=0; /* COUNT OF LOGS IN NEW BLOCK 00926000 * @Y30LB50*/ 00927000 STH @10,CSFCNT(,CSPTR) 02S0305 00928000 * NEXTCSF=STARTPTR; /* ADDR TO SAVE FIRST LOG IN 00929000 * BLOCK @Y30LB50*/ 00930000 MVC NEXTCSF(4,CSPTR),STARTPTR(GET0PTR) 02S0306 00931000 * RFY 02S0307 00932000 * ISDAGHDR BASED(FACCMPTR); /* @Y30LB50*/ 00933000 * NEXTPTR=GET0PTR; /* FORWARD CHAIN PREVIOUS BLOCK 00934000 * @Y30LB50*/ 00935000 ST GET0PTR,NEXTPTR(,@04) 02S0308 00936000 * RFY 02S0309 00937000 * ISDAGHDR BASED(GET0PTR); /* @Y30LB50*/ 00938000 * FACCMPTR=GET0PTR; /* NEW CSF BLOCK FOR CS @Y30LB50*/ 00939000 ST GET0PTR,FACCMPTR(,CSPTR) 02S0310 00940000 * RFY 02S0311 00941000 * GET0PTR UNRSTD; /* @Y30LB50*/ 00942000 * END; /* @Y30LB50*/ 00943000 * ELSE 02S0313 00944000 * ; /* @Y30LB50*/ 00945000 @RF00299 DS 0H 02S0314 00946000 * END NEWCSF; 02S0314 00947000 @EL00002 DS 0H 02S0314 00948000 @EF00002 DS 0H 02S0314 00949000 @ER00002 LM @14,@12,@SA00002 02S0314 00950000 BR @14 02S0314 00951000 * 02S0315 00952000 * /*****************************************************************/ 00953000 * /* */ 00954000 * /* CSBSORT IS CALLED TO SORT BUFFERED LOG INPUT AND FORCED LOG */ 00955000 * /* INPUT BY DAY AND TIME. THE LOG RECORDS WILL BE SAVED IN THE */ 00956000 * /* ORDER THEY ARE RECEIVED BUT EACH RECORD WILL CONTAIN A CHAIN */ 00957000 * /* POINTER TO ANOTHER RECORD INDICATING THE ORDER OF RECORDS BY */ 00958000 * /* TIME @Y30LB50*/ 00959000 * /* */ 00960000 * /*****************************************************************/ 00961000 * 02S0315 00962000 *CSBSORT: 02S0315 00963000 * PROC; /* @Y30LB50*/ 00964000 CSBSORT STM @14,@12,12(@13) 02S0315 00965000 * RFY 02S0316 00966000 * LASTREC RSTD; /* @Y30LB50*/ 00967000 * NRECORD=STARTADR; /* POINTER TO EARLIEST RECORD 00968000 * @Y30LB50*/ 00969000 L @10,STARTADR(,LWORKPTR) 02S0317 00970000 ST @10,NRECORD(,LWORKPTR) 02S0317 00971000 * IF NRECORD=CURRADR THEN 02S0318 00972000 L @06,CURRADR(,LWORKPTR) 02S0318 00973000 CR @10,@06 02S0318 00974000 BNE @RF00318 02S0318 00975000 * CURRADR->CHAINPTR=0; /* IF FIRST RECORD FOR THIS CS DO 00976000 * NOT TIME SORT @Y30LB50*/ 00977000 SLR @10,@10 02S0319 00978000 ST @10,CHAINPTR(,@06) 02S0319 00979000 * ELSE 02S0320 00980000 * DO; /* @Y30LB50*/ 00981000 B @RC00318 02S0320 00982000 @RF00318 DS 0H 02S0321 00983000 * PRECORD=LASTREC->CHAINPTR; /* PTR TO REC PREVIOUS RECORD WAS 00984000 * CHAINED TO @Y30LB50*/ 00985000 L @10,CHAINPTR(,LASTREC) 02S0321 00986000 ST @10,PRECORD(,LWORKPTR) 02S0321 00987000 * IF(CURRADR->DAYTIME>LASTREC->DAYTIME)&((PRECORD=0)|(PRECORD-> 00988000 * DAYTIME>CURRADR->DAYTIME)) THEN 02S0322 00989000 L @06,CURRADR(,LWORKPTR) 02S0322 00990000 CLC DAYTIME(8,@06),DAYTIME(LASTREC) 02S0322 00991000 BNH @RF00322 02S0322 00992000 LTR @10,@10 02S0322 00993000 BZ @RT00322 02S0322 00994000 CLC DAYTIME(8,@10),DAYTIME(@06) 02S0322 00995000 BNH @RF00322 02S0322 00996000 @RT00322 DS 0H 02S0323 00997000 * DO; /* IF LAST RECORD SAVED WAS THE 00998000 * LATEST RECORD BY TIME OR IF 00999000 * THE CURRENT RECORD FALLS 02S0323 01000000 * BETWEEN IT AND THE RECORD IT 01001000 * IS CHAINED TO, RECHAIN THE 01002000 * PREVIOUS RECORD TO THE CURRENT 01003000 * RECORD AND THE CURRENT RECORD 01004000 * TO THE ONE THE PREVIOUS RECORD 01005000 * WAS CHAINED TO @Y30LB50*/ 01006000 * CURRADR->CHAINPTR=LASTREC->CHAINPTR;/* @Y30LB50*/ 01007000 L @10,CURRADR(,LWORKPTR) 02S0324 01008000 MVC CHAINPTR(4,@10),CHAINPTR(LASTREC) 02S0324 01009000 * LASTREC->CHAINPTR=CURRADR;/* @Y30LB50*/ 01010000 ST @10,CHAINPTR(,LASTREC) 02S0325 01011000 * END; /* @Y30LB50*/ 01012000 * ELSE 02S0327 01013000 * DO; /* @Y30LB50*/ 01014000 B @RC00322 03S0327 01015000 @RF00322 DS 0H 03S0328 01016000 * DO WHILE(NRECORD->DAYTIME^>CURRADR->DAYTIME)&(NRECORD->CHAINPTR^= 01017000 * 0); /* LOOP UNTIL A RECORD IS FOUND 01018000 * WHOSE TIME IS GREATER THAN THE 01019000 * CURRENT INPUT OR UNTIL ALL 01020000 * RECORDS SAVED HAVE BEEN 03S0328 01021000 * SEARCHED. THE LAST RECORD WILL 01022000 * HAVE A CHAIN POINTER OF 0 01023000 * @Y30LB50*/ 01024000 B @DE00328 03S0328 01025000 @DL00328 DS 0H 03S0329 01026000 * PRECORD=NRECORD; /* SAVE PREVIOUS RECORD POINTER 01027000 * @Y30LB50*/ 01028000 L @10,NRECORD(,LWORKPTR) 03S0329 01029000 ST @10,PRECORD(,LWORKPTR) 03S0329 01030000 * NRECORD=NRECORD->CHAINPTR; /* POINT TO NEXT RECORD BY TIME 01031000 * @Y30LB50*/ 01032000 L @10,CHAINPTR(,@10) 03S0330 01033000 ST @10,NRECORD(,LWORKPTR) 03S0330 01034000 * END; /* @Y30LB50*/ 01035000 @DE00328 L @10,NRECORD(,LWORKPTR) 03S0331 01036000 L @06,CURRADR(,LWORKPTR) 03S0331 01037000 CLC DAYTIME(8,@10),DAYTIME(@06) 03S0331 01038000 BH @DC00328 03S0331 01039000 ICM @06,15,CHAINPTR(@10) 03S0331 01040000 BNZ @DL00328 03S0331 01041000 @DC00328 DS 0H 03S0332 01042000 * IF NRECORD->DAYTIME>CURRADR->DAYTIME THEN 03S0332 01043000 L @10,NRECORD(,LWORKPTR) 03S0332 01044000 L @06,CURRADR(,LWORKPTR) 03S0332 01045000 CLC DAYTIME(8,@10),DAYTIME(@06) 03S0332 01046000 BNH @RF00332 03S0332 01047000 * DO; /* IF A RECORD WAS FOUND WHOSE 01048000 * TIME WAS GREATER THAN THAT OF 01049000 * THE INPUT @Y30LB50*/ 01050000 * IF STARTADR^=NRECORD THEN 03S0334 01051000 C @10,STARTADR(,LWORKPTR) 03S0334 01052000 BE @RF00334 03S0334 01053000 * PRECORD->CHAINPTR=CURRADR;/* IF IT IS NOT THE EARLIEST 01054000 * TIME TAGGED RECORD THEN , 01055000 * UNHOOK THE PREVIOUS CHAIN 01056000 * POINTER TO THAT RECORD AND 01057000 * POINT IT INSTEAD TO THE 03S0335 01058000 * CURRENT INPUT RECORD. @Y30LB50*/ 01059000 L @10,PRECORD(,LWORKPTR) 03S0335 01060000 ST @06,CHAINPTR(,@10) 03S0335 01061000 * ELSE 03S0336 01062000 * STARTADR=CURRADR; /* IF RECORD FOUND IS EARLIEST 01063000 * TIME TAGGED RECORD, RESET THE 01064000 * EARLIEST TIME TAGGED RECORD 01065000 * POINTER TO THE CURRENT RECORD 01066000 * @Y30LB50*/ 01067000 B @RC00334 03S0336 01068000 @RF00334 MVC STARTADR(4,LWORKPTR),CURRADR(LWORKPTR) 03S0336 01069000 * CURRADR->CHAINPTR=NRECORD;/* ALSO, POINT THE CURRENT RECORD 01070000 * TO THE RECORD WITH THE GREATER 01071000 * TIME @Y30LB50*/ 01072000 @RC00334 L @10,CURRADR(,LWORKPTR) 03S0337 01073000 MVC CHAINPTR(4,@10),NRECORD(LWORKPTR) 03S0337 01074000 * END; /* @Y30LB50*/ 01075000 * ELSE 03S0339 01076000 * DO; /* ALL SAVED RECORDS WERE 03S0339 01077000 * SEARCHED AND NO TIME GREATER 01078000 * THAN THE CURRENT INPUT WAS 01079000 * FOUND. POINT THE LAST RECORD 01080000 * SAVED BY TIME TO THE CURRENT 01081000 * INPUT RECORD AND POINT THE 01082000 * CURRENT RECORD TO 0 @Y30LB50*/ 01083000 B @RC00332 03S0339 01084000 @RF00332 DS 0H 03S0340 01085000 * NRECORD->CHAINPTR=CURRADR;/* @Y30LB50*/ 01086000 L @10,NRECORD(,LWORKPTR) 03S0340 01087000 L @06,CURRADR(,LWORKPTR) 03S0340 01088000 ST @06,CHAINPTR(,@10) 03S0340 01089000 * CURRADR->CHAINPTR=0; /* @Y30LB50*/ 01090000 SLR @10,@10 03S0341 01091000 ST @10,CHAINPTR(,@06) 03S0341 01092000 * END; /* @Y30LB50*/ 01093000 * END; /* @Y30LB50*/ 01094000 * END; /* @Y30LB50*/ 01095000 * RFY 02S0345 01096000 * LASTREC UNRSTD; /* @Y30LB50*/ 01097000 * END CSBSORT; /* @Y30LB50*/ 01098000 @EL00003 DS 0H 02S0346 01099000 @EF00003 DS 0H 02S0346 01100000 @ER00003 LM @14,@12,12(@13) 02S0346 01101000 BR @14 02S0346 01102000 * END ISDACSB0 /* @Y30LB50*/ 01103000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. * 01104000 */*%INCLUDE SYSLIB (ISDACVT ) * 01105000 */*%INCLUDE SYSLIB (ISDASOBR) * 01106000 */*%INCLUDE SYSLIB (ISDAMSCS) * 01107000 */*%INCLUDE SYSLIB (ISDAPRMS) * 01108000 */*%INCLUDE SYSLIB (ISDAMSC3) * 01109000 */*%INCLUDE SYSLIB (ISDAGHDR) * 01110000 */*%INCLUDE SYSLIB (ISDACSB5) * 01111000 */*%INCLUDE SYSUT5 (MSCFMT3B) * 01112000 */*%INCLUDE SYSUT5 (CSB0CNST) * 01113000 */*%INCLUDE SYSUT5 (CSBINIT ) * 01114000 */*%INCLUDE SYSUT5 (CSCHK ) * 01115000 */*%INCLUDE SYSUT5 (FIRSTCSB) * 01116000 */*%INCLUDE SYSUT5 (FIRSTCSF) * 01117000 */*%INCLUDE SYSUT5 (BFRLOG ) * 01118000 */*%INCLUDE SYSUT5 (USAGELOG) * 01119000 */*%INCLUDE SYSUT5 (NEWCSB ) * 01120000 */*%INCLUDE SYSUT5 (ERRORLOG) * 01121000 */*%INCLUDE SYSUT5 (FSNSLOG ) * 01122000 */*%INCLUDE SYSUT5 (FREEBLKS) * 01123000 */*%INCLUDE SYSUT5 (NEWCSF ) * 01124000 */*%INCLUDE SYSUT5 (CSBSORT ) * 01125000 */*%INCLUDE SYSUT5 (TIMESORT) * 01126000 *; 01S0347 01127000 @DATA DS 0H 01128000 @CH00107 DC H'4' 01129000 @CH00237 DC H'23' 01130000 @CH00097 DC H'40' 01131000 @CH00400 DC H'44' 01132000 @DATD DSECT 01133000 DS 0F 01134000 @SA00001 DS 18F 01135000 @PC00001 DS 1F 01136000 @SA00002 DS 0F 01137000 DS 15F 01138000 ISDACSB0 CSECT 01139000 DS 0F 01140000 @CF00402 DC F'288' 01141000 @CF00404 DC F'948' 01142000 @CF00406 DC F'1040' 01143000 @DATD DSECT 01144000 DS 0D 01145000 SENSEPTR DS A 01146000 LPARMPTR DS A 01147000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 01148000 @ENDDATD EQU * 01149000 ISDACSB0 CSECT 01150000 NOPR ((@ENDDATD-@DATD)/161*16) 01151000 DS 0F 01152000 @SIZDATD DC AL1(0) 01153000 DC AL3(@ENDDATD-@DATD) 01154000 @CV00368 DC V(ISDAGET0) 01155000 @CV00369 DC V(ISDAGET1) 01156000 @CV00370 DC V(ISDAFREE) 01157000 DS 0D 01158000 @CC00381 DC C'CSB' 01159000 @CC00383 DC C'CSF' 01160000 WORKSPNO DC X'00' 01161000 PATCH DS CL50 01162000 ORG PATCH 01163000 @NM00009 DC 50X'00' 01164000 ORG PATCH+50 01165000 CSMASK DC X'00F0' 01166000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 01167000 @01 EQU 01 01168000 @02 EQU 02 01169000 @03 EQU 03 01170000 @04 EQU 04 01171000 @05 EQU 05 01172000 @06 EQU 06 01173000 @07 EQU 07 01174000 @08 EQU 08 01175000 @09 EQU 09 01176000 @10 EQU 10 01177000 @11 EQU 11 01178000 @12 EQU 12 01179000 @13 EQU 13 01180000 @14 EQU 14 01181000 @15 EQU 15 01182000 CVTPTR EQU @02 01183000 GET0PTR EQU @05 01184000 RETCODE EQU @03 01185000 R15 EQU @15 01186000 R1 EQU @01 01187000 LWORKPTR EQU @09 01188000 CSPTR EQU @08 01189000 LASTREC EQU @07 01190000 R0 EQU @00 01191000 ISDACVT EQU 0 01192000 CVTPTRS0 EQU ISDACVT 01193000 DATAPTR EQU CVTPTRS0 01194000 SDATAPTR EQU CVTPTRS0+4 01195000 PARMPTR EQU CVTPTRS0+8 01196000 CSB00PTR EQU CVTPTRS0+68 01197000 WORKCALL EQU CVTPTRS0+96 01198000 GET0CALL EQU ISDACVT+100 01199000 SPNOLEN EQU GET0CALL 01200000 SPNO EQU SPNOLEN 01201000 CORELEN EQU SPNOLEN+1 01202000 COREADDR EQU GET0CALL+4 01203000 HEXPCALL EQU ISDACVT+108 01204000 PRT0CALL EQU ISDACVT+120 01205000 OUTLINE EQU PRT0CALL 01206000 SDADATD EQU ISDACVT+256 01207000 PRTDATD EQU ISDACVT+416 01208000 OBRMDR EQU 0 01209000 SCW EQU OBRMDR 01210000 SWITCHES EQU OBRMDR+6 01211000 DATETIME EQU OBRMDR+12 01212000 DATE EQU DATETIME 01213000 TIME EQU DATETIME+4 01214000 CPUSERID EQU OBRMDR+21 01215000 ISDAMSCS EQU 0 01216000 SUBSYSID EQU ISDAMSCS+1 01217000 SSID EQU SUBSYSID 01218000 SUBSENSE EQU ISDAMSCS+4 01219000 SUBFMTMG EQU SUBSENSE+7 01220000 ISDAPRMS EQU 0 01221000 CINPUT EQU ISDAPRMS 01222000 CSTART EQU ISDAPRMS+2 01223000 CEND EQU ISDAPRMS+6 01224000 CFSCONLY EQU ISDAPRMS+13 01225000 CSSIDF EQU ISDAPRMS+17 01226000 CSERIAL EQU ISDAPRMS+21 01227000 CREPORTS EQU ISDAPRMS+33 01228000 CCSBCSF EQU CREPORTS+7 01229000 ISDAMSC3 EQU 4 01230000 FSCACC1 EQU ISDAMSC3+4 01231000 FSCACC2 EQU ISDAMSC3+8 01232000 ISDAGHDR EQU 0 01233000 STARTPTR EQU ISDAGHDR 01234000 GET0SPLN EQU ISDAGHDR+8 01235000 NEXTPTR EQU ISDAGHDR+12 01236000 LASTPTR EQU ISDAGHDR+16 01237000 BLOCKID EQU ISDAGHDR+20 01238000 CSTBLS EQU 0 01239000 BFRCNT EQU CSTBLS 01240000 FBFRCNT EQU CSTBLS+2 01241000 ACCUM EQU CSTBLS+4 01242000 ACCMPTR EQU CSTBLS+8 01243000 NEXTCSB EQU CSTBLS+12 01244000 CSBCNT EQU CSTBLS+16 01245000 FRCDLOGS EQU CSTBLS+18 01246000 CSBFIRST EQU CSTBLS+20 01247000 FACCUM EQU CSTBLS+24 01248000 FACCMPTR EQU CSTBLS+28 01249000 NEXTCSF EQU CSTBLS+32 01250000 CSFFIRST EQU CSTBLS+36 01251000 CSFCNT EQU CSTBLS+40 01252000 CSNUMB EQU CSTBLS+42 01253000 CSBDATA EQU 0 01254000 CHAINPTR EQU CSBDATA 01255000 DAYTIME EQU CSBDATA+4 01256000 CSBDAY EQU DAYTIME 01257000 CSBTIME EQU DAYTIME+4 01258000 CSBMSC EQU CSBDATA+12 01259000 CSBREC EQU CSBDATA+16 01260000 CSFDATA EQU 0 01261000 CSFDTIM EQU CSFDATA+4 01262000 CSFDAY EQU CSFDTIM 01263000 CSFTIME EQU CSFDTIM+4 01264000 CSFMSC EQU CSFDATA+12 01265000 CSFREC EQU CSFDATA+16 01266000 CSFSNS2 EQU CSFREC+1 01267000 CSBWORK EQU 0 01268000 LOGPTR EQU CSBWORK 01269000 NRECORD EQU CSBWORK+4 01270000 PRECORD EQU CSBWORK+8 01271000 STARTADR EQU CSBWORK+12 01272000 CURRADR EQU CSBWORK+16 01273000 CSTPTRS EQU CSBWORK+20 01274000 NBRWORK EQU CSBWORK+36 01275000 I EQU CSBWORK+38 01276000 HOLDDBL EQU CSBWORK+86 01277000 HOLD2 EQU HOLDDBL+4 01278000 KWORK EQU CSBWORK+94 01279000 MSCFMT3B EQU 4 01280000 CSSNS0 EQU MSCFMT3B 01281000 ENVIRDAT EQU CSSNS0 01282000 CSSNS1 EQU MSCFMT3B+1 01283000 RECONFIG EQU CSSNS1 01284000 BFRBIT EQU CSSNS1 01285000 USAGECT1 EQU MSCFMT3B+2 01286000 ERROVFL1 EQU USAGECT1 01287000 USAGECT2 EQU MSCFMT3B+13 01288000 WORKPTR EQU 0 01289000 * START UNREFERENCED COMPONENTS 01290000 @NM00010 EQU MSCFMT3B+24 01291000 YSTRIP2 EQU MSCFMT3B+23 01292000 XSTRIP2 EQU MSCFMT3B+22 01293000 XYSTRIP2 EQU MSCFMT3B+21 01294000 SEQCNT2 EQU MSCFMT3B+20 01295000 GAPSWIV2 EQU MSCFMT3B+19 01296000 XDUCER2 EQU MSCFMT3B+18 01297000 ADDRCHK2 EQU MSCFMT3B+17 01298000 TIMEOUT2 EQU MSCFMT3B+16 01299000 SELRST2 EQU MSCFMT3B+15 01300000 UCOUNT2 EQU USAGECT2 01301000 USPARE2 EQU USAGECT2 01302000 YSTRIP1 EQU MSCFMT3B+12 01303000 XSTRIP1 EQU MSCFMT3B+11 01304000 XYSTRIP1 EQU MSCFMT3B+10 01305000 SEQCNT1 EQU MSCFMT3B+9 01306000 GAPSWIV1 EQU MSCFMT3B+8 01307000 XDUCER1 EQU MSCFMT3B+7 01308000 ADDRCHK1 EQU MSCFMT3B+6 01309000 TIMEOUT1 EQU MSCFMT3B+5 01310000 SELRST1 EQU MSCFMT3B+4 01311000 UCOUNT1 EQU USAGECT1 01312000 USPARE EQU USAGECT1 01313000 CSPARE1 EQU CSSNS1 01314000 CSPARE EQU CSSNS1 01315000 CSPARE0 EQU CSSNS0 01316000 FILLXX EQU CSBWORK+110 01317000 M EQU CSBWORK+108 01318000 L EQU CSBWORK+106 01319000 K EQU CSBWORK+104 01320000 J EQU CSBWORK+102 01321000 GINDEX EQU CSBWORK+100 01322000 REMNDR EQU CSBWORK+98 01323000 GROUPS EQU CSBWORK+96 01324000 CWORK EQU KWORK 01325000 HOLD EQU HOLD2+1 01326000 HOLD1 EQU HOLD2 01327000 HOLD0 EQU HOLDDBL 01328000 PAGECNT EQU CSBWORK+84 01329000 ACCTOT EQU CSBWORK+82 01330000 CNTINDX EQU CSBWORK+80 01331000 BRETCODE EQU CSBWORK+78 01332000 FRETCODE EQU CSBWORK+76 01333000 SUMS EQU CSBWORK+52 01334000 SUMY EQU CSBWORK+48 01335000 SUMX EQU CSBWORK+44 01336000 SUMU EQU CSBWORK+40 01337000 CSFBYTES EQU CSFREC+2 01338000 CSFBFRBT EQU CSFSNS2 01339000 CSFBITS EQU CSFSNS2 01340000 CSFSNS1 EQU CSFREC 01341000 CSFCHAIN EQU CSFDATA 01342000 CSB1CNTS EQU CSBREC+2 01343000 CSBSNSBY EQU CSBREC 01344000 CSBHSEC EQU CSBTIME+3 01345000 CSBSEC EQU CSBTIME+2 01346000 CSBMIN EQU CSBTIME+1 01347000 CSBHR EQU CSBTIME 01348000 CSBDATE EQU CSBDAY+2 01349000 CSBYR EQU CSBDAY 01350000 FILL2 EQU CSTBLS+43 01351000 @NM00008 EQU ISDAGHDR+26 01352000 BLOCKCNT EQU ISDAGHDR+24 01353000 GET0LEN EQU GET0SPLN+1 01354000 GET0SPNO EQU GET0SPLN 01355000 ENDPTR EQU ISDAGHDR+4 01356000 @NM00007 EQU ISDAMSC3+16 01357000 IREGS3F3 EQU ISDAMSC3+15 01358000 IREGS2F3 EQU ISDAMSC3+14 01359000 IREGS1F3 EQU ISDAMSC3+13 01360000 MISCF3 EQU ISDAMSC3+12 01361000 SHIFT2F3 EQU FSCACC2+3 01362000 PCHKACC2 EQU FSCACC2+2 01363000 FAULT2F3 EQU FSCACC2+1 01364000 MCHKACC2 EQU FSCACC2 01365000 SHIFT1F3 EQU FSCACC1+3 01366000 PCHKACC1 EQU FSCACC1+2 01367000 FAULT1F3 EQU FSCACC1+1 01368000 MCHKACC1 EQU FSCACC1 01369000 QUEUE3 EQU ISDAMSC3+3 01370000 MOVES12 EQU ISDAMSC3+2 01371000 RECOVER3 EQU ISDAMSC3+1 01372000 STATUS3 EQU ISDAMSC3 01373000 CTRACE EQU ISDAPRMS+48 01374000 CGEN EQU ISDAPRMS+47 01375000 CDETAIL EQU ISDAPRMS+46 01376000 CPERIOD EQU ISDAPRMS+45 01377000 CPWR EQU CREPORTS+11 01378000 CAPRSUU EQU CREPORTS+10 01379000 CDRC EQU CREPORTS+9 01380000 CDAT EQU CREPORTS+8 01381000 CDCKTLX EQU CREPORTS+6 01382000 CEQC EQU CREPORTS+5 01383000 CFSC EQU CREPORTS+4 01384000 CDHEDHU EQU CREPORTS+3 01385000 CSUM EQU CREPORTS+2 01386000 CPAD EQU CREPORTS+1 01387000 CDCS EQU CREPORTS 01388000 CSERNO EQU CSERIAL+4 01389000 @NM00006 EQU CSERIAL+3 01390000 CIBM EQU CSERIAL 01391000 CRATIO EQU ISDAPRMS+19 01392000 CSSID EQU CSSIDF 01393000 @NM00005 EQU CSSIDF 01394000 CFSC34 EQU CFSCONLY+2 01395000 CFSC12 EQU CFSCONLY 01396000 CTYPE EQU ISDAPRMS+11 01397000 CSUMMARY EQU ISDAPRMS+10 01398000 CENDDAY EQU CEND+2 01399000 CENDYEAR EQU CEND 01400000 CSTDAY EQU CSTART+2 01401000 CSTYEAR EQU CSTART 01402000 CHISTIN EQU CINPUT+1 01403000 CLOGIN EQU CINPUT 01404000 SANOMSCD EQU SUBSENSE+27 01405000 RCYLMSCD EQU SUBSENSE+25 01406000 RUAMSCD EQU SUBSENSE+24 01407000 MSCFSC EQU SUBSENSE+22 01408000 @NM00004 EQU SUBSENSE+21 01409000 RUADASD EQU SUBSENSE+20 01410000 DASDFSC EQU SUBSENSE+18 01411000 @NM00003 EQU SUBSENSE+8 01412000 MSGCODEN EQU SUBFMTMG 01413000 SUBFMTNO EQU SUBFMTMG 01414000 SALOWAD2 EQU SUBSENSE+6 01415000 SARETRY EQU SUBSENSE+5 01416000 @NM00002 EQU SUBSENSE+4 01417000 DASDFMTN EQU SUBSENSE+3 01418000 SALOWADD EQU SUBSENSE+2 01419000 SUBSTAT5 EQU SUBSENSE+1 01420000 SUBSTAT4 EQU SUBSENSE 01421000 FORMATNO EQU ISDAMSCS+3 01422000 SSIDDEVT EQU SSID+1 01423000 SSIDLIBN EQU SSID+1 01424000 SSIDTYPE EQU SSID 01425000 SSIDFLAG EQU SUBSYSID 01426000 STATUS EQU ISDAMSCS 01427000 CPUID EQU CPUSERID+3 01428000 CPUSER EQU CPUSERID 01429000 VERNO EQU OBRMDR+20 01430000 TENSHUND EQU TIME+3 01431000 SECOND EQU TIME+2 01432000 MINUTE EQU TIME+1 01433000 HOUR EQU TIME 01434000 DAY EQU DATE+2 01435000 YEAR EQU DATE 01436000 RECENTRY EQU OBRMDR+11 01437000 RCDCNT EQU OBRMDR+10 01438000 SWITCH3 EQU SWITCHES+3 01439000 SWITCH2 EQU SWITCHES+2 01440000 SWITCH1 EQU SWITCHES+1 01441000 SWITCH0 EQU SWITCHES 01442000 SYSREL EQU OBRMDR+5 01443000 CLASRC EQU OBRMDR+4 01444000 @NM00001 EQU SCW+3 01445000 SCODE EQU SCW+2 01446000 SLENGTH EQU SCW 01447000 PRTSA001 EQU PRTDATD 01448000 SDATEMPS EQU SDADATD+136 01449000 SDASA002 EQU SDADATD+76 01450000 SDAPC001 EQU SDADATD+72 01451000 SDASA001 EQU SDADATD 01452000 SDARPTID EQU PRT0CALL+133 01453000 LINE EQU OUTLINE+1 01454000 ANSI EQU OUTLINE 01455000 DUMPIDNO EQU HEXPCALL+8 01456000 DUMPLEN EQU HEXPCALL+4 01457000 DUMPADDR EQU HEXPCALL 01458000 GEN00PTR EQU CVTPTRS0+92 01459000 CNFG0PTR EQU CVTPTRS0+88 01460000 PWR00PTR EQU CVTPTRS0+84 01461000 APR00PTR EQU CVTPTRS0+80 01462000 DRC00PTR EQU CVTPTRS0+76 01463000 DAT00PTR EQU CVTPTRS0+72 01464000 DCK00PTR EQU CVTPTRS0+64 01465000 EQC00PTR EQU CVTPTRS0+60 01466000 FSC00PTR EQU CVTPTRS0+56 01467000 DHE00PTR EQU CVTPTRS0+52 01468000 SUM00PTR EQU CVTPTRS0+48 01469000 PAD00PTR EQU CVTPTRS0+44 01470000 DCS00PTR EQU CVTPTRS0+40 01471000 LOG00PTR EQU CVTPTRS0+36 01472000 HIST0PTR EQU CVTPTRS0+32 01473000 PRT00PTR EQU CVTPTRS0+28 01474000 GET00PTR EQU CVTPTRS0+24 01475000 TYPE0PTR EQU CVTPTRS0+20 01476000 PARM0PTR EQU CVTPTRS0+16 01477000 SDA00PTR EQU CVTPTRS0+12 01478000 * END UNREFERENCED COMPONENTS 01479000 @RC00051 EQU @RC00041 01480000 @RC00134 EQU @RC00132 01481000 @RC00213 EQU @RC00132 01482000 @RC00318 EQU @EL00003 01483000 @RC00322 EQU @EL00003 01484000 @RC00332 EQU @EL00003 01485000 @RC00215 EQU @RC00213 01486000 @ENDDATA EQU * 01487000 END ISDACSB0,(C'PLS2219',0603,75312) 01488000