//KIMUA JOB CLASS=F,MSGCLASS=0,NOTIFY=KIMU,TIME=1440 //* ----------------------------------------------------------- //* //* DISK BENCHMARK TEST - CACHE ANALYZER PROGRAM. //* //* This program gets cache information before and after the //* BENCHMARK test of the disk. //* and, a report during the BENCHMARK. //* //* *** APF REQUIRED. *** //* //* -- EXPLANATION OF STEP -- //* A : ASSEMBLE //* L : LKED //* DEL : WORK DATASET SCRATCH //* G1 : COLLECT CACHE INFORMATION BEFORE NEXT TEST. //* LISTD1 : DEBUG... //* TEST : ANY BENCHMARK TEST PROGRAM //* SORT : DEBUG... //* LISTD2 : DEBUG... //* G2 : CACHE REPORT ( LAST TEST ) //* G3 : CACHE REPORT ( ALL TEST ) //* ALTER : OUTPUT FILE RENAME. //* //* ----------------------------------------------------------- //JOBCAT DD DSN=USER.CATALOG,DISP=SHR //A EXEC PGM=ASMA90,PARM='OBJECT',REGION=2000K //SYSIN DD * START DC C'<< LISTDATA : Cache analyzer >> ' VER DC CL6'v0r0m0' PRINT NOGEN * ----------------------------------------------------------------- * ----------------------------------------------------------------- @LISTD CSECT SAVE (14,12),T,* BALR R03,0 USING *,R03,R04 Base Reg. R03 LA R04,2048(R03) LA R04,2048(R04) 2ND BASE REG. R04 ST R13,SAVEAREA+4 Save A(OLD SaveArea) LR R12,R13 LA R13,SAVEAREA ST R13,8(R12) Save A(NEW SaveArea) * *--- initialize --- MVI PARMWA,X'40' space clear MVC PARMWA+1(L'PARMWA-1),PARMWA MVI PARMVOL,X'40' MVC PARMVOL+1(L'PARMVOL-1),PARMVOL * L R01,0(R01) LH R02,0(R01) LTR R02,R02 BZ PRM_EXIT BCTR R02,0 *--> PARMMVC MVC PARMWA(0),2(R01) EX R02,PARMMVC * MVI PROCFLAG,X'F0' DEFAULT ALL PROCESS * EXTRACT ANSWERA,FIELDS=(ASID) * L R01,CVTPTR CVT USING CVTMAP,R01 L R01,CVTASVT ASVT USING ASVT,R01 LA R02,ASVTFRST LH R15,ASID SLL R15,2 LA R02,0(R02,R15) L R01,0(R02) ASCB USING ASCB,R01 L R01,ASCBJBNI LTR R01,R01 BZ INITSKP1 MVC OUTJOB(8),0(R01) INITSKP1 EQU * DROP R01 *--- parameter --- LA R01,PARMWA LA R02,L'PARMWA PRM_LOP1 EQU * CLC 0(04,R01),=CL04'VOL(' BNE PRM_SKP1 LA R15,PARMVOL LA R01,4(R01) B PRM_LOP2 PRM_SKP1 EQU * CLC 0(09,R01),=CL09'NOHISTORY' NOHISTORY BNE PRM_SKP2 NI PROCFLAG,X'FF'-PROCHIST LA R01,9(R01) B PRM_LOPN PRM_SKP2 EQU * CLC 0(08,R01),=CL08'NOREPORT' NOREPORT,NOINTERVAL BNE PRM_SKP3 NI PROCFLAG,X'FF'-PROCREPT-PROCINTV LA R01,8(R01) B PRM_LOPN PRM_SKP3 EQU * CLC 0(10,R01),=CL10'NOINTERVAL' NOINTERVAL BNE PRM_SKP4 NI PROCFLAG,X'FF'-PROCINTV LA R01,10(R01) B PRM_LOPN PRM_SKP4 EQU * PRM_LOPN EQU * LA R01,1(R01) BCT R02,PRM_LOP1 B PRM_EXIT * PRM_LOP2 EQU * CLI 0(R01),C')' BE PRM_SKP20 MVC 0(1,R15),0(R01) LA R15,1(R15) LA R01,1(R01) BCT R02,PRM_LOP2 B PRM_EXIT PRM_SKP20 EQU * LA R01,1(R01) BCT R02,PRM_LOP1 B PRM_EXIT * PRM_EXIT EQU * * --- Parameter Check --- PCHK EQU * L R01,=A(PARMVOL) PCHKLOP1 EQU * CLI 0(R01),C' ' BE PCHKLOP1Q LA R01,1(R01) B PCHKLOP1 PCHKLOP1Q EQU * S R01,=A(PARMVOL) CL R01,=F'6' BNH PCHKLOP1X WTO 'LISTD : PARM ERROR.' B TERMCODE1 PCHKLOP1X EQU * MVC MSG#0000(14),=CL14'LISTD : VOL =' MVC MSG#0000+14(06),PARMVOL TM PROCFLAG,PROCHIST BO PCHKSKP11 MVC MSG#0000+21(09),=CL09'NOHISTORY' B PCHKSKP12 PCHKSKP11 EQU * MVC MSG#0000+21(09),=CL09' HISTORY' PCHKSKP12 EQU * TM PROCFLAG,PROCREPT BO PCHKSKP21 MVC MSG#0000+31(08),=CL08'NOREPORT' B PCHKSKP22 PCHKSKP21 EQU * MVC MSG#0000+31(08),=CL08' REPORT' PCHKSKP22 EQU * TM PROCFLAG,PROCINTV BO PCHKSKP31 MVC MSG#0000+40(10),=CL10'NOINTERVAL' B PCHKSKP32 PCHKSKP31 EQU * MVC MSG#0000+40(10),=CL10' INTERVAL' PCHKSKP32 EQU * WTO TEXT=MSG#A000,MF=(E,WTOINFO) * --- MAIN LOOP ------------------------------------------------------ * * +---------+ * | ucb chk | * +---------+ * | ? VOLSER match * +---------+ * |listdata | * +---------+ * | ? no report * +---------+ * |matching | * | history| * +---------+ * | ? match ?no interval * +---------+ * | report | * +---------+ * | ? no history * +---------+ * | write | * | history| * +---------+ * * --- Loop Initial --- OPEN (HISTDCBI,(INPUT)) TM PROCFLAG,PROCHIST BNO OPENSKP0 OPEN (HISTDCBO,(OUTPUT)) OPENSKP0 EQU * TM PROCFLAG,PROCREPT BNO OPENSKP1 OPEN (REPDCB,(OUTPUT)) PUT REPDCB,REPHEAD OPENSKP1 EQU * XC UCBAREA,UCBAREA XC USCNWORK,USCNWORK * GET HISTDCBI,INAREA NEXTUCB EQU * UCBSCAN COPY,WORKAREA=USCNWORK,UCBAREA=UCBAREA, * DEVCLASS=DASD,RANGE=ALL LTR R15,R15 BZ UCB_OK B ENDOFUCB * WTO 'LISTD : VOLUME NOT FOUND ??' * B TERMCODE1 UCB_OK EQU * USING UCBOB,R12 LA R12,UCBAREA * TM UCBSTAT,UCBONLI BNO NEXTUCB * LA R01,PARMVOL LA R02,UCBVOLI LA R14,6 VOLUMECHK EQU * CLI 0(R01),C'*' BE VC_X CLI 0(R01),C'%' BE VC_N CLI 0(R01),C'+' BE VC_N CLC 0(R01,1),0(R02) BNE NEXTUCB VC_N EQU * LA R01,1(R01) LA R02,1(R02) BCT R14,VOLUMECHK VC_X EQU * MVC @U_SER,UCBVOLI VOLSER MVC @U_TYP,UCBTYP DEVICE TYPE MVC @U_ADR,UCBCHAN UNIT ADDRESS ( BIN ) DROP R12 * --- LISTDATA Parm Set ( status ) --- MVI LD#BUFF,X'00' Clear LISTDATA Buffer LA R00,LD#BUFF LA R01,LLD#BUFF-1 LA R14,LD#BUFF+1 MVCL R00,R14 XC SSGARGL(SSGARGLL),SSGARGL Clear SSGARGL LA R01,@U_SER Copy Volume Serial ST R01,SSGAVOL MVC SSGUNIT,@U_TYP Copy Unit Type LA R01,LLD#BUFF Copy Buffer Length ST R01,SSGOLN LA R01,LD#BUFF Copy Buffer Address ST R01,SSGOADR XR R01,R01 IC R01,=BL1'01000000' Option Set * IC R01,=BL1'10000000' * '01000000'b = STATUS * '10000000'b = COUNTS STC R01,SSGOPT1 XC SSGOPT2,SSGOPT2 Clear SSGOPT2 XC SSGMDLID,SSGMDLID SSGMDLID XC SSGRCIOS,SSGRCIOS SSGRCIOS * --- LISTDATA Execute --- LA R01,LDPARM LINK EP=IDCSS01 * --- LISTDATA Edit --- LA R01,LD#BUFF R11 <- SSGDA Base Reg. USING SSGDA,R01 * LA R12,SSGDADA * USING SSGDASS,R12 R12 <- SSGDASS Base Reg. MVC OUTSTATS(80),SSGDADA DROP R01 * --- LISTDATA Parm Set ( counts ) --- MVI LD#BUFF,X'00' Clear LISTDATA Buffer LA R00,LD#BUFF LA R01,LLD#BUFF-1 LA R14,LD#BUFF+1 MVCL R00,R14 XC SSGARGL(SSGARGLL),SSGARGL Clear SSGARGL LA R01,@U_SER Copy Volume Serial ST R01,SSGAVOL MVC SSGUNIT,@U_TYP Copy Unit Type LA R01,LLD#BUFF Copy Buffer Length ST R01,SSGOLN LA R01,LD#BUFF Copy Buffer Address ST R01,SSGOADR XR R01,R01 * IC R01,=BL1'01000000' Option Set IC R01,=BL1'10000000' * '01000000'b = STATUS * '10000000'b = COUNTS STC R01,SSGOPT1 XC SSGOPT2,SSGOPT2 Clear SSGOPT2 XC SSGMDLID,SSGMDLID SSGMDLID XC SSGRCIOS,SSGRCIOS SSGRCIOS * --- LISTDATA Execute --- LA R01,LDPARM LINK EP=IDCSS01 * --- LISTDATA Edit --- LA R01,LD#BUFF R11 <- SSGDA Base Reg. USING SSGDA,R01 * LA R12,SSGDADA * USING SSGDASS,R12 R12 <- SSGDASS Base Reg. MVC OUTCOUNT(96),SSGDADA MVC OUTADR(2),@U_ADR MVC OUTSER(6),@U_SER * ----------------------------------------------------------------- TIME DEC,TIMERSLT,DATETYPE=YYYYMMDD,LINKAGE=SYSTEM MVC OUTTIME,TIMERSLT * ----------------------------------------------------------------- XC CPTIME,CPTIME XC CPTIME2,CPTIME2 READLOP1 EQU * TM PROCFLAG,EOFHIST BO R_GREAT CLC INADR,OUTADR BE R_MATCH BL R_LESS B R_GREAT R_GREAT EQU * TM PROCFLAG,PROCREPT if no report ? BNO R_GREAT3 TM PROCFLAG,PROCINTV if Interval ? BO R_GREAT2 CLC CPADR,OUTADR if compare area address equal BNE R_GREAT2 LA R11,CPAREA old area LA R12,OUTAREA new area BAL R10,RPTPROC report process B R_GREAT3 R_GREAT2 EQU * CLC CPTIME,=XL16'0' if compare area active BE R_GREAT3 LA R11,CPAREA old area LA R12,OUTAREA new area BAL R10,RPTPROC report process R_GREAT3 EQU * TM PROCFLAG,PROCHIST if no history ? BNO R_GREAT4 PUT HISTDCBO,OUTAREA write new record R_GREAT4 EQU * B NEXTUCB R_MATCH EQU * TM PROCFLAG,PROCREPT if no report ? BNO R_MATCH3 TM PROCFLAG,PROCINTV if no interval ? BNO R_MATCH2 CLC CPTIME,=XL16'0' if first ? BE R_MATCH1 MVC CPAREA2,CPAREA copy old compare area MVC CPAREA,INAREA copy compare area LA R11,CPAREA2 old area LA R12,CPAREA new area BAL R10,RPTPROC report process B R_MATCH3 R_MATCH1 EQU * MVC CPAREA,INAREA B R_MATCH3 R_MATCH2 EQU * * +++ * MVC MSG#0000(80),=CL80'DEBUG :' * UNPK EDWORK(9),CPTIME+8(5) * TR EDWORK(8),=C'0123456789ABCDEF'-X'F0' * MVC MSG#0000+8(8),EDWORK * UNPK EDWORK(9),CPTIME(5) * TR EDWORK(8),=C'0123456789ABCDEF'-X'F0' * MVC MSG#0000+17(8),EDWORK * UNPK EDWORK(9),INTIME+8(5) * TR EDWORK(8),=C'0123456789ABCDEF'-X'F0' * MVC MSG#0000+30(8),EDWORK * UNPK EDWORK(9),INTIME(5) * TR EDWORK(8),=C'0123456789ABCDEF'-X'F0' * MVC MSG#0000+39(8),EDWORK * WTO TEXT=MSG#A000,MF=(E,WTOINFO) * +++ CLC CPTIME+8(4),INTIME+8 BH R_MATCH3 BL R_MATCH21 CLC CPTIME(8),INTIME BNL R_MATCH3 R_MATCH21 EQU * MVC CPAREA,INAREA R_MATCH3 EQU * TM PROCFLAG,PROCHIST if no history ? BNO R_MATCH4 PUT HISTDCBO,INAREA R_MATCH4 EQU * GET HISTDCBI,INAREA B READLOP1 R_LESS EQU * TM PROCFLAG,PROCHIST if no history ? BNO R_LESS1 PUT HISTDCBO,INAREA R_LESS1 EQU * GET HISTDCBI,INAREA B READLOP1 EOF EQU * OI PROCFLAG,EOFHIST TM PROCFLAG,ENDUCBF BO BYE B READLOP1 * ----------------------------------------------------------------- * ----------------------------------------------------------------- * ----------------------------------------------------------------- * --- REPORT PROCESS ( RETURN : R10 )------------------------------ RPTPROC EQU * * LA R11,CPCOUNT old area * LA R12,OUTCOUNT new area * --- volume serial ----------------------------------------------- CLC OAJOB(8,R11),=XL8'0' BE JOBSKP1 MVC REPJOB(8),OAJOB(R11) B JOBSKP2 JOBSKP1 EQU * MVC REPJOB(8),=CL8'-NONE-' JOBSKP2 EQU * * --- address ----------------------------------------------------- UNPK EDWORK(5),OAADR(3,R11) TR EDWORK(4),=C'0123456789ABCDEF'-X'F0' MVC REPADR(4),EDWORK * --- volume serial ----------------------------------------------- MVC REPVOL(6),OASER(R11) * --- start date -------------------------------------------------- UNPK EDWORK(9),OATIME+8(5,R11) TR EDWORK(8),=C'0123456789ABCDEF'-X'F0' MVC REPSDATE+0(4),EDWORK+0 MVI REPSDATE+4,C'/' MVC REPSDATE+5(2),EDWORK+4 MVI REPSDATE+7,C'/' MVC REPSDATE+8(2),EDWORK+6 * --- start time -------------------------------------------------- UNPK EDWORK(9),OATIME(5,R11) TR EDWORK(8),=C'0123456789ABCDEF'-X'F0' MVC REPSTIME+0(2),EDWORK+0 MVI REPSTIME+2,C':' MVC REPSTIME+3(2),EDWORK+2 MVI REPSTIME+5,C':' MVC REPSTIME+6(2),EDWORK+4 * --- interval time ----------------------------------------------- XR R06,R06 date CLC OATIME+8(4,R12),OATIME+8(R11) BE IVT_SKP1 L R06,=A(60*60*24) IVT_SKP1 EQU * XR R01,R01 hh XR R02,R02 IC R01,OATIME+0(R11) * * ST R01,REPADR * SLL R01,4 O R01,=X'0000000F' XC PK_AREA,PK_AREA ST R01,PK_AREA+4 CVB R01,PK_AREA IC R02,OATIME+0(R12) SLL R02,4 O R02,=X'0000000F' XC PK_AREA,PK_AREA ST R02,PK_AREA+4 CVB R02,PK_AREA SR R02,R01 MH R02,=AL2(60*60) LA R06,0(R02,R06) XR R01,R01 mm XR R02,R02 IC R01,OATIME+1(R11) SLL R01,4 O R01,=X'0000000F' XC PK_AREA,PK_AREA ST R01,PK_AREA+4 CVB R01,PK_AREA IC R02,OATIME+1(R12) SLL R02,4 O R02,=X'0000000F' XC PK_AREA,PK_AREA ST R02,PK_AREA+4 CVB R02,PK_AREA SR R02,R01 MH R02,=AL2(60) LA R06,0(R02,R06) XR R01,R01 ss XR R02,R02 IC R01,OATIME+2(R11) SLL R01,4 O R01,=X'0000000F' XC PK_AREA,PK_AREA ST R01,PK_AREA+4 CVB R01,PK_AREA IC R02,OATIME+2(R12) SLL R02,4 O R02,=X'0000000F' XC PK_AREA,PK_AREA ST R02,PK_AREA+4 CVB R02,PK_AREA SR R02,R01 LA R06,0(R02,R06) * SRDA R06,32 D R06,=F'60' R07 <- 1min = 1s * 60 CVD R06,PK_AREA UNPK UPK_AREA(8),PK_AREA(8) OI UPK_AREA+7,X'F0' MVI REPINTV+5,C':' MVC REPINTV+6(2),UPK_AREA+6 LR R06,R07 SRDA R06,32 D R06,=F'60' R07 <- 1hor = 1min * 60 CVD R07,PK_AREA UNPK UPK_AREA(8),PK_AREA(8) OI UPK_AREA+7,X'F0' MVC REPINTV(2),UPK_AREA+6 CVD R06,PK_AREA UNPK UPK_AREA(8),PK_AREA(8) OI UPK_AREA+7,X'F0' MVI REPINTV+2,C':' MVC REPINTV+3(2),UPK_AREA+6 * --- Count ------------------------------------------------------- LA R11,OACOUNT(R11) LA R12,OACOUNT(R12) * WTO 'COUNT' * --- Search or Read normal I/O requests -------------------------- L R01,4(R12) L R01,APFNSRH(R12) S R01,APFNSRH(R11) ST R01,NRTOTAL CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPRNOR(10),EDWORK+6 Read normal * --- Search or Read normal request hits -------------------------- L R01,APFNSRHH(R12) S R01,APFNSRHH(R11) ST R01,NRCACHE CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPRNORC(10),EDWORK+6 Read normal from cache * --- Write normal I/O requests ----------------------------------- L R01,APFNWRI(R12) S R01,APFNWRI(R11) ST R01,NWTOTAL CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPWNOR(10),EDWORK+6 Write normal * --- Dasd fast write I/O request hits ---------------------------- L R01,APFNDFWH(R12) S R01,APFNDFWH(R11) ST R01,NWCACHE CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPWNORC(10),EDWORK+6 Write normal to cache * --- Search or Read sequential I/O requests ---------------------- L R01,APFSSRH(R12) S R01,APFSSRH(R11) ST R01,SRTOTAL CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPRSEQ(10),EDWORK+6 Read sequential * --- Search or Read sequential I/O request hits ------------------ L R01,APFSSRHH(R12) S R01,APFSSRHH(R11) ST R01,SRCACHE CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPRSEQC(10),EDWORK+6 Read sequential from cache * --- Write sequential I/O requests ------------------------------- L R01,APFSWRI(R12) S R01,APFSWRI(R11) ST R01,SWTOTAL CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPWSEQ(10),EDWORK+6 Write sequential * --- Dasd fast write sequential request hits --------------------- L R01,APFSDFWH(R12) S R01,APFSDFWH(R11) ST R01,SWCACHE CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPWSEQC(10),EDWORK+6 Write sequential to cache * --- Search or Read cache fast write I/O requests ---------------- L R01,APFRCFW(R12) S R01,APFRCFW(R11) ST R01,CRTOTAL CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPRCFW(10),EDWORK+6 read CFW * --- Search or Read cache fast write I/O request hits ------------ L R01,APFRCFWH(R12) S R01,APFRCFWH(R11) ST R01,CRCACHE CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPRCFWC(10),EDWORK+6 read CFW from cache * --- Cache fast write I/O requests ------------------------------- L R01,APFCFW(R12) S R01,APFCFW(R11) ST R01,CWTOTAL CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPWCFW(10),EDWORK+6 Write CFW * --- Cache fast write I/O request hits --------------------------- L R01,APFCFWH(R12) S R01,APFCFWH(R11) ST R01,CWCACHE CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPWCFWC(10),EDWORK+6 Write CFW to cache * --- Inhibit cache loading I/O requests -------------------------- L R01,APFINH(R12) S R01,APFINH(R11) ST R01,INHIBIT CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPINH(10),EDWORK+6 * --- Bypass cache I/O requests ----------------------------------- L R01,APFBYP(R12) S R01,APFBYP(R11) ST R01,BYPASS CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPBYP(10),EDWORK+6 * --- DFW operation forced ---------------------------------------- L R01,APFRETRY(R12) S R01,APFRETRY(R11) ST R01,RETRIES CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPRTY(10),EDWORK+6 * --- DFW normal write operation counts --------------------------- L R01,APFNDFW(R12) S R01,APFNDFW(R11) ST R01,NWDFW CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPWNORD(10),EDWORK+6 * --- DFW sequential write operation counts ----------------------- L R01,APFSDFW(R12) S R01,APFSDFW(R11) ST R01,SWDFW CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPWSEQD(10),EDWORK+6 * --- sequential DASD to cache transfer operations ---------------- L R01,APFSDTOC(R12) S R01,APFSDTOC(R11) CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPSDTOC(10),EDWORK+6 * --- DASD to cache transfer operations --------------------------- L R01,APFNDTOC(R12) S R01,APFNDTOC(R11) CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPNDTOC(10),EDWORK+6 * --- cache to DASD transfer operations --------------------------- L R01,APFNCTOD(R12) S R01,APFNCTOD(R11) CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPNCTOD(10),EDWORK+6 * --- Read Total -------------------------------------------------- L R01,NRTOTAL A R01,SRTOTAL A R01,CRTOTAL CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPRTTL(10),EDWORK+6 * --- Read Cache read --------------------------------------------- L R01,NRCACHE A R01,SRCACHE A R01,CRCACHE CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPRTTLC(10),EDWORK+6 * --- Write Total ------------------------------------------------- L R01,NWTOTAL A R01,SWTOTAL A R01,CWTOTAL CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPWTTL(10),EDWORK+6 * --- Write DFW --------------------------------------------------- L R01,NWDFW A R01,SWDFW CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPWDFW(10),EDWORK+6 * --- Write Cache write ------------------------------------------- L R01,NWCACHE A R01,SWCACHE A R01,CWCACHE CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPWTTLC(10),EDWORK+6 * --- total i/o --------------------------------------------------- L R01,NRTOTAL A R01,SRTOTAL A R01,CRTOTAL A R01,NWTOTAL A R01,SWTOTAL A R01,CWTOTAL CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC REPTTLIO(10),EDWORK+6 * --- read% ------------------------------------------------------- L R01,NRTOTAL total i/o A R01,SRTOTAL A R01,CRTOTAL A R01,NWTOTAL A R01,SWTOTAL A R01,CWTOTAL LTR R01,R01 BZ P_READSKP1 L R07,NRTOTAL read total A R07,SRTOTAL A R07,CRTOTAL XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_READSKP2 P_READSKP1 EQU * XR R07,R07 P_READSKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPREADP(10),EDWORK+6 * --- write% ------------------------------------------------------ L R01,NRTOTAL total i/o A R01,SRTOTAL A R01,CRTOTAL A R01,NWTOTAL A R01,SWTOTAL A R01,CWTOTAL LTR R01,R01 BZ P_WRITSKP1 L R07,NWTOTAL write total A R07,SWTOTAL A R07,CWTOTAL XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_WRITSKP2 P_WRITSKP1 EQU * XR R07,R07 P_WRITSKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPWRITP(10),EDWORK+6 * --- inhibit% ---------------------------------------------------- L R01,NRTOTAL total i/o A R01,SRTOTAL A R01,CRTOTAL A R01,NWTOTAL A R01,SWTOTAL A R01,CWTOTAL LTR R01,R01 BZ P_INHISKP1 L R07,INHIBIT inhibit XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_INHISKP2 P_INHISKP1 EQU * XR R07,R07 P_INHISKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPINHP(10),EDWORK+6 * --- bypass% ----------------------------------------------------- L R01,NRTOTAL total i/o A R01,SRTOTAL A R01,CRTOTAL A R01,NWTOTAL A R01,SWTOTAL A R01,CWTOTAL LTR R01,R01 BZ P_BYPASKP1 L R07,BYPASS bypass XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_BYPASKP2 P_BYPASKP1 EQU * XR R07,R07 P_BYPASKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPBYPP(10),EDWORK+6 * --- cache hit% -------------------------------------------------- L R01,NRTOTAL total i/o A R01,SRTOTAL A R01,CRTOTAL A R01,NWTOTAL A R01,SWTOTAL A R01,CWTOTAL LTR R01,R01 BZ P_CHSKP1 L R07,NWCACHE cache write A R07,SWCACHE A R07,CWCACHE A R07,NRCACHE cache read A R07,SRCACHE A R07,CRCACHE XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_CHSKP2 P_CHSKP1 EQU * XR R07,R07 P_CHSKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPHITP(10),EDWORK+6 * --- read hit% --------------------------------------------------- L R01,NRTOTAL read total A R01,SRTOTAL A R01,CRTOTAL LTR R01,R01 BZ P_RHSKP1 L R07,NRCACHE cache read A R07,SRCACHE A R07,CRCACHE XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_RHSKP2 P_RHSKP1 EQU * XR R07,R07 P_RHSKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPRHITP(10),EDWORK+6 * --- normal cache read% ------------------------------------------ L R01,NRCACHE cache read A R01,SRCACHE A R01,CRCACHE LTR R01,R01 BZ P_NCRSKP1 L R07,NRCACHE normal cache read XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_NCRSKP2 P_NCRSKP1 EQU * XR R07,R07 P_NCRSKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPRNOTP(10),EDWORK+6 * --- sequential cache read% -------------------------------------- L R01,NRCACHE cache read A R01,SRCACHE A R01,CRCACHE LTR R01,R01 BZ P_SCRSKP1 L R07,SRCACHE sequential cache read XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_SCRSKP2 P_SCRSKP1 EQU * XR R07,R07 P_SCRSKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPRSEQP(10),EDWORK+6 * --- CFW cache read% --------------------------------------------- L R01,NRCACHE cache read A R01,SRCACHE A R01,CRCACHE LTR R01,R01 BZ P_CCRSKP1 L R07,CRCACHE CFW cache read XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_CCRSKP2 P_CCRSKP1 EQU * XR R07,R07 P_CCRSKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPRCFWP(10),EDWORK+6 * --- write hit% -------------------------------------------------- L R01,NWTOTAL write total A R01,SWTOTAL A R01,CWTOTAL LTR R01,R01 BZ P_WHSKP1 L R07,NWCACHE cache read A R07,SWCACHE A R07,CWCACHE XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_WHSKP2 P_WHSKP1 EQU * XR R07,R07 P_WHSKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPWHITP(10),EDWORK+6 * --- normal cache write% ----------------------------------------- L R01,NWCACHE cache write A R01,SWCACHE A R01,CWCACHE LTR R01,R01 BZ P_NCWSKP1 L R07,NWCACHE normal cache write XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_NCWSKP2 P_NCWSKP1 EQU * XR R07,R07 P_NCWSKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPWNORP(10),EDWORK+6 * --- sequential cache write% ------------------------------------- L R01,NWCACHE cache write A R01,SWCACHE A R01,CWCACHE LTR R01,R01 BZ P_SCWSKP1 L R07,SWCACHE sequential cache write XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_SCWSKP2 P_SCWSKP1 EQU * XR R07,R07 P_SCWSKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPWSEQP(10),EDWORK+6 * --- CFW cache write% -------------------------------------------- L R01,NWCACHE cache write A R01,SWCACHE A R01,CWCACHE LTR R01,R01 BZ P_CCWSKP1 L R07,CWCACHE CFW cache write XR R06,R06 M R06,=F'1000000000' * 0.000001% DR R06,R01 B P_CCWSKP2 P_CCWSKP1 EQU * XR R07,R07 P_CCWSKP2 EQU * CVD R07,PK_AREA MVC EDWORK,EDMASK2 ED EDWORK,PK_AREA MVC REPWCFWP(10),EDWORK+6 * ----------------------------------------------------------------- * WTO 'DONE' PUT REPDCB,REPAREA BR R10 * ----------------------------------------------------------------- * ----------------------------------------------------------------- * ----------------------------------------------------------------- ENDOFUCB EQU * TM PROCFLAG,EOFHIST BO BYE TM PROCFLAG,PROCHIST if no history ? BNO BYE OI PROCFLAG,ENDUCBF WRITEALL EQU * PUT HISTDCBO,INAREA GET HISTDCBI,INAREA B WRITEALL BYE EQU * L R13,SAVEAREA+4 RETURN (14,12),RC=0 * ----------------------------------------------------------------- TERMCODE1 EQU * L R13,SAVEAREA+4 RETURN (14,12),RC=1 * ----------------------------------------------------------------- HISTDCBI DCB DSORG=PS,MACRF=(GM),DDNAME=HISTIN,RECFM=F, ** LRECL=250,BLKSIZE=0,EODAD=EOF HISTDCBO DCB DSORG=PS,MACRF=(PM),DDNAME=HISTOUT,RECFM=F, ** LRECL=250,BLKSIZE=0 REPDCB DCB DSORG=PS,MACRF=(PM),DDNAME=REPORT,RECFM=FB, ** LRECL=512,BLKSIZE=0 @U_SER DS CL6'VOLSER' @U_TYP DS XL4'3010200F' @U_ADR DS XL2 IOCHECK DS XL1 PROCFLAG DS XL1 PROCHIST EQU X'80' X'80' : MAKE HISTORY PROCREPT EQU X'40' X'40' : MAKE REPORT PROCINTV EQU X'20' X'20' : ALL INTERVAL EOFHIST EQU X'01' X'01' : END OF HISTORY FILE ENDUCBF EQU X'02' X'02' : END OF UCB SCAN * DS 0F TIMERSLT DS XL16 WK#F DS F ANSWERA DS 0F DS H ASID DS H * --- MVC --- PARMMVC MVC PARMWA(0),2(R01) * --- parameter --- PARMWA DS CL100 PARMVOL DS CL100 * --- WTO messages --- WTOINFO WTO TEXT=, WTO parameter list X DESC=(6), descriptor code 6 is Job Status X MF=L MSG#A000 DC AL2(L'MSG#0000) MSG#0000 DC CL80'R74EDIT PARM:' * DS 0D SAVEAREA DS 18F Reg. Save Area PK_AREA DS PL16 pack work area PK_AREA2 DS PL16 UPK_AREA DS XL16 * 1 * 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 EDMASK DC XL16'40202020202020202020202020202120' EDMASK2 DC XL16'4020202020202021204B202020202020' EDWORK DS XL16 * --- UCB area ---------------------------------------------------- UCBAREA DS XL48 USCNWORK DS XL100 * --- OUTPUT AREA ------------------------------------------------- OUTAREA DS 0XL250 OATIME EQU *-OUTAREA OUTTIME DS XL16 OAJOB EQU *-OUTAREA OUTJOB DS CL8 OAADR EQU *-OUTAREA OUTADR DS XL2 OASER EQU *-OUTAREA OUTSER DS CL6 OASTATS EQU *-OUTAREA OUTSTATS DS CL80 OACOUNT EQU *-OUTAREA OUTCOUNT DS CL96 DC CL42' ' * --- INPUT AREA -------------------------------------------------- INAREA DS 0XL250 INTIME DS XL16 INJOB DS CL8 INADR DS XL2 INSER DS CL6 INSTATS DS CL80 INCOUNT DS CL96 DC CL42' ' * --- COMPARE AREA ------------------------------------------------ CPAREA DS 0XL250 CPTIME DS XL16 CPJOB DS CL8 CPADR DS XL2 CPSER DS CL6 CPSTATS DS CL80 CPCOUNT DS CL96 DC CL42' ' * --- COMPARE AREA ------------------------------------------------ CPAREA2 DS 0XL250 CPTIME2 DS XL16 CPJOB2 DS CL8 CPADR2 DS XL2 CPSER2 DS CL6 CPSTATS2 DS CL80 CPCOUNT2 DS CL96 DC CL42' ' * --- REPORT HEAD ------------------------------------------------- REPHEAD DS 0CL512 DC CL1' ' HEPJOB DC CL08'JOBNAME' DC CL1' ' HEPADR DC CL04'ADDR' DC CL1' ' HEPVOL DC CL06'VOLSER' DC CL1' ' HEPSDATE DC CL10'YYYY/MM/DD' DC CL1' ' HEPSTIME DC CL08'HH:MM:SS' DC CL1' ' HEPINTV DC CL08'HH:MM:SS' DC CL1' ' HEPTTLIO DC CL10'TOTAL_I/O ' DC CL1' ' HEPREAD DC CL10' READ% ' DC CL1' ' HEPWRITE DC CL10' WRITE% ' DC CL1' ' HEPINHP DC CL10' INHIBIT% ' DC CL1' ' HEPBYPP DC CL10' BYPASS% ' DC CL1' ' HEPHITP DC CL10'CACHE_HIT%' DC CL1' ' HEPRHITP DC CL10'READ_HIT% ' DC CL1' ' HEPRNOTP DC CL10'READ_NOR% ' DC CL1' ' HEPRSEQP DC CL10'READ_SEQ% ' DC CL1' ' HEPRCFWP DC CL10'READ_CFW% ' DC CL1' ' HEPWHITP DC CL10'WRITE_HIT%' DC CL1' ' HEPWNORP DC CL10'WRITE_NOR%' DC CL1' ' HEPWSEQP DC CL10'WRITE_SEQ%' DC CL1' ' HEPWCFWP DC CL10'WRITE_CFW%' DC CL1' ' HEPRNOR DC CL10' READ_NOR ' * DC CL1' ' HEPRNORC DC CL10'READ_NORC ' * DC CL1' ' HEPRSEQ DC CL10' READ_SEQ ' * DC CL1' ' HEPRSEQC DC CL10'READ_SEQC ' * DC CL1' ' HEPRCFW DC CL10' READ_CFW ' * DC CL1' ' HEPRCFWC DC CL10'READ_CFWC ' * DC CL1' ' HEPRTTL DC CL10'READ_TOTAL' DC CL1' ' HEPRTTLC DC CL10'READ_TOT_C' DC CL1' ' HEPWNOR DC CL10'WRITE_NOR ' * DC CL1' ' HEPWNORD DC CL10'WRITE_NORD' * DC CL1' ' HEPWNORC DC CL10'WRITE_NORC' * DC CL1' ' HEPWSEQ DC CL10'WRITE_SEQ ' * DC CL1' ' HEPWSEQD DC CL10'WRITE_SEQD' * DC CL1' ' HEPWSEQC DC CL10'WRITE_SEQC' * DC CL1' ' HEPWCFW DC CL10'WRITE_CFW ' * DC CL1' ' HEPWCFWC DC CL10'WRITE_CFWC' * DC CL1' ' HEPWTOT DC CL10'WRITE_TOT ' DC CL1' ' HEPWDFW DC CL10'WRITE_DFW ' DC CL1' ' HEPWCAC DC CL10'WRITE_CACH' DC CL1' ' HEPINH DC CL10' INHIBIT ' * DC CL1' ' HEPBYP DC CL10' BYPASS ' * DC CL1' ' HEPRTY DC CL10' CACHE_RTY' * DC CL1' ' HEPNDTOC DC CL10'NOR_D_TO_C' * DC CL1' ' HEPNCTOD DC CL10'SEQ_C_TO_D' * DC CL1' ' HEPSDTOC DC CL10'SEQ_D_TO_C' * DC CL250' ' * --- REPORT ------------------------------------------------------ REPAREA DS 0CL512 CRLF DC CL1' ' REPJOB DS CL08 DC CL1' ' REPADR DS XL04 DC CL1' ' REPVOL DS CL06 DC CL1' ' REPSDATE DS CL10'YYYY/MM/DD' DC CL1' ' REPSTIME DS CL08'HH:MM:SS' DC CL1' ' REPINTV DS CL08'HH:MM:SS' DC CL1' ' REPTTLIO DS CL10'1000000000' DC CL1' ' REPREADP DS CL10'100.000000' DC CL1' ' REPWRITP DS CL10'100.000000' DC CL1' ' REPINHP DS CL10'100.000000' DC CL1' ' REPBYPP DS CL10'100.000000' DC CL1' ' REPHITP DS CL10'100.000000' DC CL1' ' REPRHITP DS CL10'100.000000' DC CL1' ' REPRNOTP DS CL10'100.000000' DC CL1' ' REPRSEQP DS CL10'100.000000' DC CL1' ' REPRCFWP DS CL10'100.000000' DC CL1' ' REPWHITP DS CL10'100.000000' DC CL1' ' REPWNORP DS CL10'100.000000' DC CL1' ' REPWSEQP DS CL10'100.000000' DC CL1' ' REPWCFWP DS CL10'100.000000' DC CL1' ' REPRNOR DS CL10'1000000000' * Read normal total DC CL1' ' REPRNORC DS CL10'1000000000' * read normal cache read DC CL1' ' REPRSEQ DS CL10'1000000000' * read sequential total DC CL1' ' REPRSEQC DS CL10'1000000000' * read sequential cache read DC CL1' ' REPRCFW DS CL10'1000000000' * read cache fast write total DC CL1' ' REPRCFWC DS CL10'1000000000' * read cache fast write cache read DC CL1' ' REPRTTL DS CL10'1000000000' read total total DC CL1' ' REPRTTLC DS CL10'1000000000' read total cache read DC CL1' ' REPWNOR DS CL10'1000000000' * write normal total DC CL1' ' REPWNORD DS CL10'1000000000' * write normal DFW DC CL1' ' REPWNORC DS CL10'1000000000' * write normal cache write DC CL1' ' REPWSEQ DS CL10'1000000000' * write sequential total DC CL1' ' REPWSEQD DS CL10'1000000000' * write sequential DFW DC CL1' ' REPWSEQC DS CL10'1000000000' * write sequential cache write DC CL1' ' REPWCFW DS CL10'1000000000' * write CFW total DC CL1' ' REPWCFWC DS CL10'1000000000' * write CFW cache write DC CL1' ' REPWTTL DS CL10'1000000000' write total DC CL1' ' REPWDFW DS CL10'1000000000' write total DFW DC CL1' ' REPWTTLC DS CL10'1000000000' write total cache write DC CL1' ' REPINH DS CL10'1000000000' * DC CL1' ' REPBYP DS CL10'1000000000' * DC CL1' ' REPRTY DS CL10'1000000000' * DC CL1' ' REPNDTOC DS CL10'1000000000' * DC CL1' ' REPNCTOD DS CL10'1000000000' * DC CL1' ' REPSDTOC DS CL10'1000000000' * DC CL250' ' * --- WORK -------------------------------------------------------- RTOTAL DS F RCACHE DS F WTOTAL DS F WDFW DS F WCACHE DS F INHIBIT DS F BYPASS DS F RETRIES DS F NRTOTAL DS F SRTOTAL DS F CRTOTAL DS F NWTOTAL DS F SWTOTAL DS F CWTOTAL DS F NRCACHE DS F SRCACHE DS F CRCACHE DS F NWCACHE DS F SWCACHE DS F CWCACHE DS F NWDFW DS F SWDFW DS F * --- SSGARAL ----------------------------------------------------- SSGARGLA DC A(SSGARGL) SSGARGL DS 0F SSGHEAD DS CL8 c'SSGARGL' SSGADDN DS A dd name address SSGAVOL DS A volser address SSGUNIT DS XL4 unit type ( ucbtyp ) SSGOLN DS F buffer length SSGOADR DS A buffer address SSGOPT DS 0XL2 option SSGOPT1 DS XL1 option 1 * x'80' : subsystem count * x'40' : subsystem status * x'20' : * x'10' : * x'08' : all same subsystem cnt * x'04' : a subsystem count * x'02' : a device count * x'01' : 3880 pointer SSGOPT2 DS XL1 SSGMDLID DS XL1 ssid SSGRCIOS DS XL1 ios return code SSGARGLL EQU *-SSGARGL * --- listdata parameter list ------------------------------------- LDPARM DS 0D DC A(0) DC A(SSGARGLA) DC A(LD#RC) * --- listdata work area ------------------------------------------ LD#RC DS H DS 0D * --- Error messgae ----------------------------------------------- * --- message ----------------------------------------------------- * 0....+....1....+....2....+....3....+....4....+....5 LTORG DS 0D LD#BUFF DS 4000XL1 LLD#BUFF EQU *-LD#BUFF * --- SSGARAL BUFFER AREA ----------------------------------------- SSGDA DSECT SSGDAVOL DS CL6 Volume Serial DS XL2 Reserved SSGDAUA1 DS CL3 Unit Address SSGDAUA2 DS CL3 Second Address SSGDALN DS H Data Length SSGDADA DS 0X Data Area * --- SSGARAL DATA AREA ( 3880-11,13 3990-3 MODEL SUBSYSTEM STATUS ) DS 0D SSGDASS DSECT DS XL1 0 Reserved SSGDACCA DS XL1 1 Unit Address ( for Channel Prog ) SSGDANUM DS XL1 2 Number of Unit SSGDASNO DS XL1 3 Statistics Set Number SSGDACST DS BL1 4 Cache Status * ooo o oo o o * - Cache Fast Write ( 1:OFF ) * - IML non used . * -- Reserved * - Customize ( Do'nt Use Cache ) * --- Cache Status * 000 : Cache On * 001 : Online Processing * 010 : Hard Error ( Cache Off ) * 100 : Cache Off * 110 : Offine Processing (Destageing) * 111 : Destage Error SSGDANST DS XL1 5 NVS Status * oo o o o ooo * --- Reserved * - Hard Error * - Costomize ( Do'nt Use ) * - Reserved * -- NVS Status * 00 : NVS On * 01 : Hard Error * 10 : NVS Off or Hard Error * 11 : Destageing or Error * DS XL4 6-9 Reserved SSGDACSZ DS FL4 10-13 Cache Size SSGDAUSZ DS FL4 14-17 Useable Size SSGDAPSZ DS FL4 18-21 PIN Data Size SSGDAFSZ DS FL4 22-25 Offline Size SSGDAUST DS XL2 26,27 Unit Status * oo oo o o oo * -- Dual Copy Status * 00 : Dual Copy Ready * 01 : Dual Copy ( Processing ) * 10 : Dual Stop ( NO-Swicth ) * 11 : Dual Stop ( Switched ) * - Dual Copy ( Second Units ) * - Dual Copy ( First Units ) * -- DFW Status * 00 : DFW On * 01 : Reserved * 10 : DFW Error * 11 : DFW Off * -- Device Status * 00 : Device On * 01 : Reserved * 10 : Device Error * 11 : Deivce Off * oo oooooo * ------ Dual Copy Either Address * -- PIN Data Status * 00 : PIN Not Found * 01 : PIN Found ( DFW On ) * 10 : Reserved * 11 : PIN Found ( DFW Off ) SSGDANSZ DS FL4 28-31 NVS Size SSGDANPS DS FL4 32-35 PINNED Size ( NVS ) DS XL1 36 Unit Status ( Group 2 ) DS XL1 37 Reserved SSGDASSI DS XL2 38-39 Subsystem-ID * ------------------------------------------------------------------- SSGDAXPF DSECT APFFLAG EQU *-SSGDAXPF XPFFLAG DS XL1 0 x'80':Cache not available APFADR EQU *-SSGDAXPF XPFADR DS XL1 1 Device unit address APFSTATS EQU *-SSGDAXPF XPFSTATS DS XL2 2- 3 Device status APFNSRH EQU *-SSGDAXPF XPFNSRH DS XL4 4- 7 Search or Read normal I/O requests APFNSRHH EQU *-SSGDAXPF XPFNSRHH DS XL4 8-11 Search or Read normal I/O requests hits APFNWRI EQU *-SSGDAXPF XPFNWRI DS XL4 12-15 Write normal I/O request APFNDFWH EQU *-SSGDAXPF XPFNDFWH DS XL4 16-19 Dasd First Write I/O request hits APFSSRH EQU *-SSGDAXPF XPFSSRH DS XL4 20-23 Search or Read sequential I/O requests APFSSRHH EQU *-SSGDAXPF XPFSSRHH DS XL4 24-27 Search or Read sequential I/O req Hits APFSWRI EQU *-SSGDAXPF XPFSWRI DS XL4 28-31 Write sequential I/O requests APFSDFWH EQU *-SSGDAXPF XPFSDFWH DS XL4 32-35 Dasd First Write sequential req hits APFRCFW EQU *-SSGDAXPF XPFRCFW DS XL4 36-39 Search or Read cache fast write I/O req APFRCFWH EQU *-SSGDAXPF XPFRCFWH DS XL4 40-43 Search or Read cache fast write req hit APFCFW EQU *-SSGDAXPF XPFCFW DS XL4 44-47 Cache fast write I/O requests APFCFWH EQU *-SSGDAXPF XPFCFWH DS XL4 48-51 Cache fast write I/O request hits APFINH EQU *-SSGDAXPF XPFINH DS XL4 52-55 Inhibit cache loading I/O requests APFBYP EQU *-SSGDAXPF XPFBYP DS XL4 56-59 Bypass cache I/O requests APFSDTOC EQU *-SSGDAXPF XPFSDTOC DS XL4 60-63 Sequential DASD to Cache Transfer OP APFNDTOC EQU *-SSGDAXPF XPFNDTOC DS XL4 64-67 DASD to Cache transfer operation APFNCTOD EQU *-SSGDAXPF XPFNCTOD DS XL4 68-71 Cache to DASD transfer operation APFRETRY EQU *-SSGDAXPF access DASD directory. XPFRETRY DS XL4 72-75 Dasd fast write operations forced to * because of NVS storage constraiton APFNDFW EQU *-SSGDAXPF XPFNDFW DS XL4 76-79 DASD fast write operation counts APFSDFW EQU *-SSGDAXPF XPFSDFW DS XL4 80-83 Dasd fast write sequential write OP cnt DS XL4 84-87 reservcd DS XL1 88 device status - group 2 DS XL5 89-93 reserved APFSSID EQU *-SSGDAXPF XPFSSID DS XL2 94-95 SSID DSECT IEFUCBOB LIST=YES PRINT NOGEN CVT DSECT=YES,LIST=YES PSA DSECT IHAPSA LIST=NO ASVT DSECT IHAASVT ASCB DSECT IHAASCB R00 EQU 00 R01 EQU 01 R02 EQU 02 R03 EQU 03 R04 EQU 04 R05 EQU 05 R06 EQU 06 R07 EQU 07 R08 EQU 08 R09 EQU 09 R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 R15 EQU 15 END @LISTD /* //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.AMODGEN,DISP=SHR //SYSUT1 DD UNIT=(SYSDA,SEP=SYSLIB),SPACE=(CYL,(10,5)),DSN=&SYSUT1 //SYSPUNCH DD DUMMY //SYSPRINT DD SYSOUT=*,DCB=(BLKSIZE=3509), // UNIT=(,SEP=(SYSUT1,SYSPUNCH)) //SYSLIN DD DSN=TEST.OBJLIB(@LISTD),DISP=OLD //L EXEC PGM=IEWL,PARM='MAP,LET,LIST,NCAL,AC=1', // REGION=1M,COND=(8,LT,A) //SYSLIN DD DSN=*.A.SYSLIN,DISP=(SHR,PASS) // DD DDNAME=SYSIN //SYSLMOD DD DSN=TEST.LOADLIB(@LISTD),DISP=SHR //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(3,2)),DSN=&SYSUT1 //SYSPRINT DD SYSOUT=*,DCB=(RECFM=FB,BLKSIZE=3509) //* ---------------------------------------------------------------- //DEL EXEC PGM=IEFBR14 //DD1 DD DSN=KIMU.TEST.NEW,DISP=(OLD,DELETE), // UNIT=SYSALLDA,VOL=SER=VOLSER //DD2 DD DSN=KIMU.TEST.SORT,DISP=(OLD,DELETE), // UNIT=SYSALLDA,VOL=SER=VOLSER //* ---------------------------------------------------------------- //DESTAGE EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * SETCACHE VOLUME(TRGVOL) UNIT(3390) DESTAGE /* //* ---------------------------------------------------------------- //G1 EXEC PGM=*.L.SYSLMOD,COND=((8,LT,A),(4,LT,L)), // PARM='VOL(TRGVOL),NOREPORT' //HISTIN DD DSN=KIMU.TEST.OUT,DISP=(OLD,KEEP), // UNIT=SYSALLDA,VOL=SER=VOLSER //HISTOUT DD DSN=KIMU.TEST.NEW,DISP=(,CATLG), // UNIT=SYSALLDA,VOL=SER=VOLSER,SPACE=(CYL,(10,10)) //REPORT DD SYSOUT=* //* ---------------------------------------------------------------- //LISTD1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * LISTDATA COUNTS VOLUME(TRGVOL) UNIT(3390) DEVICE /* //* ================================================================ //TEST EXEC PGM=IEBDG //OUTDD1 DD DSN=&&TEST,DISP=(,DELETE),UNIT=SYSALLDA, // VOL=SER=TRGVOL,SPACE=(CYL,(10,10)), // DCB=(RECFM=FB,LRECL=1000,BLKSIZE=0) //SYSPRINT DD SYSOUT=* //SYSIN DD * DSD OUTPUT=(OUTDD1) FD NAME=FLD1,LENGTH=1000,STARTLOC=001,FORMAT=AN,ACTION=RP CREATE QUANTITY=1000,NAME=(FLD1) //* ================================================================ //SORT EXEC PGM=ICEMAN //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SORTIN DD DSN=KIMU.TEST.NEW,DISP=(OLD,KEEP) //SORTOUT DD DSN=KIMU.TEST.SORT,DISP=(,CATLG), // UNIT=SYSALLDA,VOL=SER=VOLSER,SPACE=(CYL,(10,10)) //SYSIN DD * SORT FIELDS=(25,2,BI,A,9,4,BI,A,1,8,BI,A) /* //* ---------------------------------------------------------------- //LISTD2 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * LISTDATA COUNTS VOLUME(TRGVOL) UNIT(3390) DEVICE /* //* ---------------------------------------------------------------- //G2 EXEC PGM=*.L.SYSLMOD,COND=((8,LT,A),(4,LT,L)), // PARM='VOL(TRGVOL),NOHISTORY,NOINTERVAL' //HISTIN DD DSN=KIMU.TEST.SORT,DISP=(OLD,KEEP), // UNIT=SYSALLDA,VOL=SER=VOLSER //REPORT DD SYSOUT=* //* ---------------------------------------------------------------- //G3 EXEC PGM=*.L.SYSLMOD,COND=((8,LT,A),(4,LT,L)), // PARM='VOL(TRGVOL),NOHISTORY,INTERVAL' //HISTIN DD DSN=KIMU.TEST.SORT,DISP=(OLD,KEEP), // UNIT=SYSALLDA,VOL=SER=VOLSER //REPORT DD SYSOUT=* //* ---------------------------------------------------------------- //ALTER EXEC PGM=IDCAMS,COND=((8,LT,A),(4,LT,L)) //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE KIMU.TEST.OUT PURGE DELETE KIMU.TEST.NEW PURGE SET LASTCC = 00 ALTER KIMU.TEST.SORT NEWNAME(KIMU.TEST.OUT)