**************************************************************** * THIS PROGRAM WAS WRITTEN BY ANOTHER IDMS SHOP AND MODIFIED BY * DATA BASE ADMINISTRATION TO SUPPORT MULTILE INDEX SETS PER * AREA AND ALL PAGE SIZES. THE PROGRAM CAN ONLY PROCESS SYSTEM * OWNED INDEXES AND CAN ONLY PROCESS ONE INDEX SET PER EXECUTION. * THE PROGRAM READS EACH PAGE IN AN INDEX AREA AND GATHERS * STATISTICS ABOUT THE INDEX RECORDS. OUTPUT IS A 1 PAGE REPORT * OF STATS FOR EACH INDEX. * * THREE INPUT PARAMETERS ARE NECESSARY IN THE JCL AND MUST BE THE * LENGTHS SPECIFIED STARTING IN COL 1: SUBSCHEMA-NAME(8), SPACE, * SET-NAME(16), SPACE, AND PAGE SIZE(5). * * PROGRAM WAS FURTHER CHANGED TO USE A DATE ROUTINE INCLUDED * IN UCL CONTRIBUTION #31. THUS TRDATCNE MUST FIRST BE ASSEMLED * AFTER MAKING THE MACROS AVAILABLE. WHEN LINKING THIS * PROGRAM, SYSLIB SHOULD CONTAIN THE TRDATCNE LOAD MODULE. * * R 12.X+ VERSION. RUN-UNIT BOUND IN AMODE 31. MACRO $BSM NEEDED. * IT APPEARS NON-SMS SHOPS CAN'T RUN THE QSAM GET MACRO IN AMODE 31. * THIS PROGRAM CAN BE ASSEMBLED WITHOUT USE OF THE DMLA PRE-PROCESSOR. * * R17 COMPATABILITY VERSION. AMODE 31 NEEDED FOR IDMSCALC NOW. 4Oct11 * * Enhance program so that it will handle extended areas. 12 Oct, 2011 * * Too many bytes free causing problems in calculations. 19 Dec, 2011 **************************************************************** * SAVE REGISTERS AND SET BASE REGISTERS **************************************************************** PRINT NOGEN DBAB0911 CSECT DBAB0911 AMODE 24 DBAB0911 RMODE 24 LR R12,R15 USING DBAB0911,R12,R11 STM R14,R12,12(R13) STANDARD ENTRY TO PROGRAM LA R11,4095(R12) 2ND BASE ADDR LA R11,1(R11) ST R13,SAVEAREA+4 LA R13,SAVEAREA B MAINLINE @MODE MODE=BATCH,DEBUG=YES @SSCTRL USING RECSTRT,R10 R10 DSECT BASE USING ENDINFO1,R9 R9 DSECT BASE *********************************** * MAINLINE PROCESSING *********************************** * BRANCH TO ROUTINES FOR SOME INITIAL WORK. * DETERMINE THE PAGE SIZE BY COMPARING THE FIRST * 4 BYTES ON THE PAGE WITH THE LAST 4 BYTES ON THE * PAGE - THIS IS THE PAGE NUMBER AND THE 2 VALUES * SHOULD BE EQUAL. *********************************** MAINLINE EQU * BAL R2,OPENFILS OPEN I/O FILES BAL R2,INITIAL INITIAL HOUSEKEEPING BAL R2,GETSUBS LOAD IN SUBSCHEMA MOD BAL R2,GETSR7PG GET SR7 PAGE NUM BAL R2,CHKDSPLC COMPUTE DISPLACEMENT ANOTHER1 EQU * BAL R2,READREC READ A RECORD INTO I/P BUF CVB R4,PAGEBUMP CONVERT PAGE BUMP TO BINARY LR R9,R10 R10 POINTS BEGIN DB PAGE AR R9,R4 BUMP R9 TO POINT LAST 16 PAGE CLC PAGNUM,ENDPGENO VALID PAGE SIZE ENTERED BE PROCESS B SIZERR PAGESIZE NOT HANDLED *********************************** * PROCESS PAGE. * WE NOW KNOW THE PAGE SIZE SO WE CAN PROCESS INFORMATION * ON THE PAGE. WHEN DONE PROCESSING PAGE WE READ THE NEXT * PAGE AND PROCESS IT. *********************************** PROCESS EQU * BAL R2,INOROUT SEE IF IN OR OUT OF DISPLAC LA R4,SR1LNIX1 ADDRESS OF LINE INDEX 0 (SR1) LA R5,PAGNUM ADDRESS OF BEGINNING OF PAGE SR R6,R6 ZERO OUT R6 FOR DIVIDE MVC SPCNTWRK+2(2),SPCCNT1 PUT LINE SPACE COUNT IN 4 BYTES L R7,SPCNTWRK PUT LINE SPACE COUNT IN REG SH R7,=H'16' SUBTRACT OUT FOOTER LENGTH D R6,=F'8' # OF RECS ON PAGE OTHER THAN SR1 C R7,=F'0' NO RECS ON PAGE? BNE GOON1 IF THERE IS GO ON BAL R2,EXCEPTNS ELSE PERFORM EXCEPTIONS ROUTINE B ANOTHER1 GOON1 BAL R2,CHCKREC PROCESS REC B ANOTHER1 *********************************** * END OF JOB PROCESSING *********************************** FINISH EQU * EOJ BAL R2,CALCULAT OUTPUT CALCULATIONS BAL R2,PRTHEADS PRT HEADERS BAL R2,PRTDETLS PRT DETAILS B FINNY ENDONERR EQU * EXIT WITH AN ERROR BAL R2,PRTERR PRT ERROR MESSAGE OI SWABEND,X'80' SET ABEND SWITCH MVC ABENDCD,=F'8' FOR RETURN CODE FINNY EQU * BAL R2,CLOSFILS CLOSE FILES SR R15,R15 CLEAR R15 TM SWABEND,X'80' WAS THERE A PROBLEM? BZ NOPROB NO, GO ON L R15,ABENDCD YES, PUT RETURN CODE OUT NOPROB EQU * L R13,SAVEAREA+4 STANDARD EXIT FROM PROGRAM L R14,12(R13) LM R0,R12,20(R13) R15 HAS RETURN CODE IN IT BR R14 EXIT *********************************** * OPEN FILES *********************************** OPENFILS EQU * OPEN (INPFILE,(INPUT)) OPEN DISK INPUT FILE OPEN (IN2FILE,(INPUT)) OPEN CARD INPUT FILE OPEN (OUTFILE,(OUTPUT)) OPEN PRINT OUTPUT FILE BR R2 *********************************** * GET DATE & TIME & INIT PAGE COUNT *********************************** INITIAL EQU * LA R1,DATPARMS CALL TRDATCNE AP PAGECNT,=P'1' O/P PAGE CNTR BR R2 ********************************** * GET SUBSCHEMA LOAD MOD AND INITIATE A BIND TO OBTAIN THE PAGE RANGE * FOR THE SET AND THE DISPLACEMENT VALUE FOR LOWER LEVEL SR8'S. *********************************** GETSUBS EQU * GET IN2FILE,IN2AREA READ CARD I/P PARMS PACK INPACKPG,INPGESZE PACK PAGE SIZE OF INDEX AREA ZAP WRKPAGSZ,INPACKPG SAVE IN PGE SIZE FOR SPACE CALC ZAP PAGEBUMP,INPACKPG SAVE IN PG SIZE TO FIND END PAGE SP PAGEBUMP,=P'16' BUMP AMT POINTS TO LAST 16 BYTES MVC OPPAGSIZ,INPGESZE SAVE INPUT PAGE SIZE FOR RPT $BSM 31 AMODE 31 NEEDED FOR BIND @BIND SUBSCH=SUBSNAME,SCB=SSCTRL,PGMNAME='DBIXRPTS' CLC ERRSTAT,=C'0000' BNE NOSUBERR DMCLLD L R3,SSCTRL+192 SSCTRL+192 IS THE ADDR OF THE VIB USING VIB,R3 SET ADDRESSIBILITY TO VIB L R1,VIBVSEA LOAD BASE OF VARIABLE SR51 AC56... ST R1,VSABASE SAVE THIS ADDRESS ITS USED OFTEN L R3,VIBDM58A LOAD THE ADDRESS OF THE DMCL ST R3,DMCLENT SAVE THIS ADDRESS ITS USED OFTEN DROP R3 USING DMC,R3 MVC DMCLNAME(8),DMCNAME GET DMCLNAME FROM IB50 DROP R3 L R3,SSCTRL+192 SSCTRL+192 IS THE ADDR OF THE VIB USING VIB,R3 SET ADDRESSIBILITY TO VIB L R3,VIBFIBA USING FIB,R3 IB50 DSECT BASE L R4,FIBSRN 1ST SR51 IN IB-SR CHAIN USING FSR,R4 SR51 DSECT BASE TRYAGN EQU * CLC FSRNAME(3),=C'SR7' IS THE SR51 FOR THE SR7 REC? BE GETSET L R4,FSRIBN NO, PNT TO NEXT SR51 OF IB-SR B TRYAGN GETSET EQU * L R5,FSRORN PNT AT NEXT OR52 OF SR-OR USING FOR,R5 SRCOMP EQU * CLC FOR52,=C'SR51' BE SETNMERR SETNAME NOT IN SUBSCHEMA CLC FORNAME(16),SETNAME IS IT THE OR52 FOR OUR SET? BE GETDISP YES, GET DISPLACEMENT L R5,FORSRN NO, PNT TO NEXT OR52 OF SR-OR USING FOR,R5 OR52 DSECT BASE B SRCOMP GETDISP EQU * L R1,VSABASE A R1,FORDYNPG C R1,VSABASE BE NEXTVAR USING VSA,R1 L R4,VSALOPG SAVE LOW PAGE INDEX SET ST R4,SETLOPG L R4,VSAHIPGC SAVE HIGH PAGE calc SET ST R4,HIPAGNUM L R4,VSAHIPG SAVE HIGH PAGEINDEX SET ST R4,SETHIPG DROP R1 NEXTVAR L R1,VSABASE A R1,FORDYNIX C R1,VSABASE BNE FRMVAR MVC DISPHOLD+2(2),FORIXDSP YES, GET DISPLACEMENT B GETAMN FRMVAR MVC DISPHOLD+2(2),2(R1) YES, GET DISPLACEMENT GETAMN L R3,FORAMN AM57 DSECT BASE USING FAM,R3 AM57 DSECT BASE L R3,FAMACO AC56 DSECT BASE USING FAC,R3 AM57 DSECT BASE MVC AREANAM,FACNAME SAVE INDEX AREA NAME L R3,FACSAN LOAD ADDRESS AM57 BLOCK USING FSA,R3 AM57 DSECT BASE LVSA L R5,VSABASE LOAD ADDRESS AM57 BLOCK CLC FSATYPE,=H'0009' LOAD ADDRESS AM57 BLOCK BL LOOKNEXT LOAD ADDRESS AM57 BLOCK A R5,FSADYN SET ADDRESS FOR VSA DSPL DROP R5 DROP R5 AS BASE REG USING VSA,R5 SET ADDRESS FOR VSA DSPL L R4,VSALOPG SAVE LOW PAGE INDEX SET ST R4,SETLOPG L R4,VSAHIPGC SAVE HIGH PAGE calc SET ST R4,HIPAGNUM L R4,VSAHIPG SAVE HIGH PAGEINDEX SET ST R4,SETHIPG LOOKNEXT L R3,FSASAN CLC FSA73,=C'AC56' BNE LVSA @FINISH $BSM 24 BACK TO AMODE 24 BR R2 *********************************** * GET SR7 PAGE NUM FROM IDMSCALC *********************************** GETSR7PG EQU * MVC HICALC,HIPAGNUM HI PAGE OF calc SET MVC LOCALC,SETLOPG LO PAGE OF SET MVC LNGCALC,=H'16' CALC KEY LNGTH MVC KEYCALC(16),SETNAME $BSM 31 AMODE 31 NEEDED FOR CALC LOAD EP=IDMSCALC FETCH A(IDMSCALC) LR R15,R0 ADDR OF IDMSCALC LA R1,=A(PAGECALC,HICALC,LOCALC,LNGCALC,KEYCALC) BALR R14,R15 MVC SR7PAGNM,PAGECALC PAGE WITH SR7 ON IT DELETE EP=IDMSCALC DELETE MOD FROM CORE $BSM 24 BACK TO AMODE 24 BR R2 *********************************** * COMPUTE DISPLACEMENT *********************************** CHKDSPLC EQU * L R4,SR7PAGNM SR7 PAGE NUMB CLC DISPHOLD,=F'0' NO DISPLACEMENT BE REGDIS A R4,DISPHOLD ADD DISPLAC PAGES SH R4,=H'1' PNT AT LAST DISPLAC PAGE C R4,SETHIPG DOES DISPLAC WRAP AROUND? BH RAPPIN REGDIS EQU * ST R4,REGDSEND NO, GET END OF REG DISPLAC B BAKTOIT RAPPIN EQU * OI SWWRAP,X'80' SET DISPLAC WRAP AROUND SWTCH S R4,SETHIPG # OF WRAP AROUND PAGES A R4,SETLOPG ADD TO LOW PAGE NUMBER SH R4,=H'1' PNT AT LAST DISPLAC PAGE ST R4,RAPDSEND END OF WRAP DISPLAC BAKTOIT EQU * BR R2 *********************************** * READ I/P RECS *********************************** READREC EQU * GET INPFILE LR R10,R1 EST ADDR OF REC READ L R4,PAGNUM PAGE NUM JUST READ C R4,SETLOPG ------------------------ BL READREC - IS PAGE IN RANGE OF - C R4,SETHIPG - SET BEING PROCESSED - BH FINISH ------------------------ * If you encounter S0CB abends, this can result from having multiple * index areas in a single file, with the page ranges of the areas not * in the same sequence as the blocks within the file. If this is the * case, you can allow the program to run in exchange for some loss of * efficiency. Comment the BH instruction above, and uncomment the one * below and reassemble the program and you should be OK. - J.F. * BH READREC ------------------------ AP TOTRECCT,=P'1' TOTAL REC COUNT BR R2 *********************************** * CHECK IF PAGE IS IN OR OUT OF DISPLAC *********************************** INOROUT EQU * TM SWWRAP,X'80' DOES DISPLAC WRAP AROUND BO RAPPER L R4,PAGNUM PAGE NUM YOU'RE PROCESSING C R4,SR7PAGNM HIGHER OR LOWER THAN SR7 PAGE? BL OUTSIDE BH CHKAGAIN CLC DISPHOLD,=F'0' BE OUTSIDE CHKAGAIN EQU * C R4,REGDSEND BH OUTSIDE INSIDE EQU * PAGE IS IN DISPLACEMENT NI SWOUT,X'00' AP INRECCT,=P'1' B TRANSFER OUTSIDE EQU * PAGE IS OUT OF DISPLAC OI SWOUT,X'80' AP OUTRECCT,=P'1' B TRANSFER RAPPER EQU * DISPLAC WRAPS AROUND L R4,PAGNUM C R4,RAPDSEND BNH INSIDE2 C R4,SR7PAGNM BNL INSIDE2 OUTSIDE2 EQU * OI SWOUT,X'80' AP OUTRECCT,=P'1' B TRANSFER INSIDE2 EQU * NI SWOUT,X'00' AP INRECCT,=P'1' TRANSFER EQU * BR R2 *********************************** * SMP AND EMPTY PAGE PROCESSING *********************************** EXCEPTNS EQU * CLC SPCAVAL,=H'0' NO SPACE AVAILABLE ON PAGE? BE SMP IS SO, BRANCH L R8,SPCAVLCT AH R8,SPCAVAL * ST R8,SPCAVLCT CVD R8,SPACAVLP EMPTY BYTES--PACKED AP SPACAVCT,SPACAVLP ADD AP TOT0SR8,=P'1' IT'S AN EMPTY PAGE TM SWOUT,X'80' BO OUT1 AP IN0SR8,=P'1' B RETURN OUT1 EQU * AP OUT0SR8,=P'1' B RETURN SMP EQU * AP TOTSMPCT,=P'1' IT'S A SMP TM SWOUT,X'80' BO OUT2 AP INSMPCT,=P'1' B RETURN OUT2 EQU * AP OUTSMPCT,=P'1' RETURN EQU * BR R2 *********************************** * RECORD PROCESSING *********************************** CHCKREC EQU * S R4,=F'8' POINT TO SR8 OR SR7 LINE INDEX CLC 0(2,R4),=H'8' IS IT AN SR8? BNE SR7CHK NO, SEE IF IT'S A SR7 BAL R3,PROCSR8 YES, PROCESS THE SR8 B BUMP SR7CHK EQU * CLC 0(2,R4),=H'7' IS IT AN SR7? BNE DELTCHK NO, SEE IF IT'S A DELETED REC BAL R3,PROCSR7 YES, PROCESS THE SR7 B BUMP DELTCHK EQU * CLC 0(2,R4),=H'0' IS IT A DELETED REC? BNE RECERR NO, --WHAT IS IT? BUMP EQU * BCT R7,CHCKREC R7 CONTAINS # OF RECS ON PAGE L R8,SPCAVLCT AH R8,SPCAVAL * ST R8,SPCAVLCT CVD R8,SPACAVLP EMPTY BYTES--PACKED AP SPACAVCT,SPACAVLP ADD BAL R8,CNTRS2 PERFORM PAGE CNTR ROUTINE ZAP SR8ONPAG,=P'0' ZERO SR8-ON-PAGE CNTR BR R2 DONE WITH PAGE *********************************** * SR7 PROCESSING *********************************** PROCSR7 EQU * MVC DISPLAC(2),2(R4) DISPLACEMENT OF SR7 ON PAGE LR R6,R5 BEGINNING OF PAGE ADDR INTO R6 AH R6,DISPLAC POINT AT REC ON PAGE MVC SETNMOP(16),16(R6) GET SET NAME FROM SR7 REC BR R3 *********************************** * SR8 PROCESSING *********************************** PROCSR8 EQU * CLC 4(2,R4),=H'32' IS IT AN ORPHAN ONLY SR8 BNE DISPL NO, CONTINUE AP TOTORPHO,=P'1' BUMP COUNTER OF ORPHAN ONLY DISPL MVC DISPLAC(2),2(R4) DISPLACEMENT OF SR8 ON PAGE LR R6,R5 BEGINNING OF PAGE ADDR INTO R6 AH R6,DISPLAC POINT AT REC ON PAGE MVC PRFLNGTH(2),6(R4) PREFIX LENGTH AH R6,PRFLNGTH GET PAST PREFIX OF REC ST R7,REG7 SAVE CONTENTS OF R7 L R7,4(R6) CURRENT NUMB OF ORPHANS CVD R7,BCD CONVERT TO PACKED AP TOTORPH,BCD INCR TOT # ORPHANS L R7,REG7 RESTORE CONTENTS OF R7 MVC NUMBENTR+2(2),8(R6) CURRENT NUMBER OF ENTRIES LA R6,17(R6) POINT TO LEVEL NUMBER OF SR8 BAL R8,CNTRS PERFORM SR8 LVL CNTR ROUTINE BAL R8,ENTRIES PERFORM DOWN POINTER CALCS BR R3 *********************************** * SR8 COUNTERS *********************************** CNTRS EQU * AP SR8ONPAG,=P'1' INCREMENT SR8 ON PAGE CNTR AP TOTSR8CT,=P'1' INCREMENT TOTAL SR8 CNTR TM SWOUT,X'80' BO OUT3 AP INSR8CT,=P'1' B DOREST OUT3 EQU * AP OUTSR8CT,=P'1' DOREST EQU * CLI 0(R6),X'00' IS IT A LEVEL 0? (BOTTOM LEVEL) BE LEVEL0 CLI 0(R6),X'01' IS IT A LEVEL 1? BE LEVEL1 CLI 0(R6),X'02' IS IT A LEVEL 2? BE LEVEL2 CLI 0(R6),X'03' IS IT A LEVEL 3? BE LEVEL3 CLI 0(R6),X'04' IS IT A LEVEL 4? BE LEVEL4 CLI 0(R6),X'05' IS IT A LEVEL 5? BE LEVEL5 B CNTRERR LEVEL IS NOT 0-5 LEVEL0 EQU * AP TOTLVL0,=P'1' LVL 0 SR8 CNTR CLC 4(2,R4),=H'32' IS THIS ORPHAN ONLY SR8? BE L0INOUT YES BRANCH AP TOTSR8L0,=P'1' LVL 0 SR8 CNTR-NON ORPHAN L0INOUT EQU * TM SWOUT,X'80' BO OUT4 AP INLVL0,=P'1' B GOHOME OUT4 EQU * AP OUTLVL0,=P'1' B GOHOME LEVEL1 EQU * AP TOTLVL1,=P'1' LVL 1 SR8 CNTR TM SWOUT,X'80' BO OUT5 AP INLVL1,=P'1' B GOHOME OUT5 EQU * AP OUTLVL1,=P'1' B GOHOME LEVEL2 EQU * AP TOTLVL2,=P'1' LVL 2 SR8 CNTR TM SWOUT,X'80' BO OUT6 AP INLVL2,=P'1' B GOHOME OUT6 EQU * AP OUTLVL2,=P'1' B GOHOME LEVEL3 EQU * AP TOTLVL3,=P'1' LVL 3 SR8 CNTR TM SWOUT,X'80' BO OUT7 AP INLVL3,=P'1' B GOHOME OUT7 EQU * AP OUTLVL3,=P'1' B GOHOME LEVEL4 EQU * AP TOTLVL4,=P'1' LVL 4 SR8 CNTR TM SWOUT,X'80' BO OUT8 AP INLVL4,=P'1' B GOHOME OUT8 EQU * AP OUTLVL4,=P'1' B GOHOME LEVEL5 EQU * AP TOTLVL5,=P'1' LVL 5 SR8 CNTR TM SWOUT,X'80' BO OUT9 AP INLVL5,=P'1' B GOHOME OUT9 EQU * AP OUTLVL5,=P'1' GOHOME EQU * BR R8 *********************************** * PAGE COUNTERS *********************************** CNTRS2 EQU * CP SR8ONPAG,=P'0' NO SR8S ON PAGE BE NONE CP SR8ONPAG,=P'1' 1 SR8S ON PAGE BE ONE CP SR8ONPAG,=P'2' 2 SR8S ON PAGE BE TWO CP SR8ONPAG,=P'3' 3 SR8S ON PAGE BE THREE CP SR8ONPAG,=P'4' 4 SR8S ON PAGE BE FOUR CP SR8ONPAG,=P'5' 5 SR8S ON PAGE BE FIVE B GRTR5 MORE THAN 5 SR8S ON PAGE NONE EQU * AP TOT0SR8,=P'1' 0 SR8 ON PAGE CNTR TM SWOUT,X'80' BO OUTA AP IN0SR8,=P'1' B DONE OUTA EQU * AP OUT0SR8,=P'1' B DONE ONE EQU * AP TOT1SR8,=P'1' 1 SR8 ON PAGE CNTR TM SWOUT,X'80' BO OUTB AP IN1SR8,=P'1' B DONE OUTB EQU * AP OUT1SR8,=P'1' B DONE TWO EQU * AP TOT2SR8,=P'1' 2 SR8 ON PAGE CNTR TM SWOUT,X'80' BO OUTC AP IN2SR8,=P'1' B DONE OUTC EQU * AP OUT2SR8,=P'1' B DONE THREE EQU * AP TOT3SR8,=P'1' 3 SR8 ON PAGE CNTR TM SWOUT,X'80' BO OUTD AP IN3SR8,=P'1' B DONE OUTD EQU * AP OUT3SR8,=P'1' B DONE FOUR EQU * AP TOT4SR8,=P'1' 4 SR8 ON PAGE CNTR TM SWOUT,X'80' BO OUTE AP IN4SR8,=P'1' B DONE OUTE EQU * AP OUT4SR8,=P'1' B DONE FIVE EQU * AP TOT5SR8,=P'1' 5 SR8 ON PAGE CNTR TM SWOUT,X'80' BO OUTF AP IN5SR8,=P'1' B DONE OUTF EQU * AP OUT5SR8,=P'1' B DONE GRTR5 EQU * AP TOTGRTR5,=P'1' GRTR THAN 5 SR8 ON PAGE CNTR TM SWOUT,X'80' BO OUTG AP INGRTR5,=P'1' B DONE OUTG EQU * AP OUTGRTR5,=P'1' DONE EQU * BR R8 *********************************** * DOWN POINTER CHECK *********************************** ENTRIES EQU * CLI 0(R6),X'00' IS IT A BOT LVL SR8? BNE BRANCH NO, GO BACK L R6,NUMBENTR CURRENT NUMB OF ENTRIES CVD R6,BCD CONVERT TO PACKED AP TOTENTR(8),BCD TOT BOT LVL DOWN PNTRS BRANCH EQU * BR R8 *********************************** * OUTPUT CALCULATIONS *********************************** CALCULAT EQU * CP TOTENTR,=P'0' ANY SR'S IN AREA? BE CALCSPAC NO, SKIP CALCULATION MVC DIVIDWRK+8(8),TOTENTR TOT BOT LVL SR8 ENTRIES SRP DIVIDWRK,1,0 SHIFT LEFT 1 DIGIT DP DIVIDWRK(16),TOTSR8L0 COMPUTE AVRG BOT LVL SR8 * ENTRIES - NON ORPHAN SRP DIVIDWRK(12),64-1,5 SHIFT RIGHT 1 DIGIT AND ROUND MVC AVGENTR(8),DIVIDWRK+4 12 BYTE QUOTIENT, 4 BYTE REMAIN CALCSPAC EQU * * MVC WRKRECCT(4),TOTRECCT ZAP WRKRECCT,TOTRECCT SP WRKRECCT,TOTSMPCT ACTUAL DATA PAGES (WITHOUT SMP) * MVC WRKFIELD+4(4),WRKRECCT ZAP WRKFIELD,WRKRECCT MP WRKFIELD(8),WRKPAGSZ(4) TOTAL DATA BYTES IN AREA * MVC TOTCHARS(8),WRKFIELD ZAP TOTCHARS,WRKFIELD * L R4,SPCAVLCT TOTAL EMPTY BYTES * CVD R4,SPACAVCT TOT EMPTY BYTES--PACKED SP WRKFIELD,SPACAVCT TOT BYTES USED IN AREA MVC WKSPCUSE+8(8),WRKFIELD SRP WKSPCUSE,3,0 SHIFT LEFT 3 DIGITS DP WKSPCUSE(16),TOTCHARS COMPUTE FILE UTILIZATION SRP WKSPCUSE(8),64-1,5 SHIFT RIGHT 1 DIGIT AND ROUND BR R2 *********************************** * PRINT HEADERS *********************************** PRTHEADS EQU * ED PATTERN2(4),PAGECNT EDIT PAGE COUNT FOR O/P MVC PAGEOP(3),PATTERN2+1 MVC PATTERN2,PAT3 RESET PATTERN MVC OUTAREA(116),HEADER1 BAL R3,WRITEREC WRITE HEADER REC1 MVC OPAREANM,AREANAM MVC OUTAREA(87),HEADER2 BAL R3,WRITEREC WRITE HEADER REC2 L R6,SETLOPG LOW PAGE OF SET FOR RPT HDR CVD R6,BCD UNPK OPLOPAG,BCD OI OPLOPAG+9,X'F0' L R6,SETHIPG HIGH PAGE OF SET FOR RPT HDR CVD R6,BCD UNPK OPHIPAG,BCD OI OPHIPAG+9,X'F0' L R6,SR7PAGNM CVD R6,BCD UNPK OPSR7PAG,BCD OI OPSR7PAG+9,X'F0' L R6,DISPHOLD CVD R6,BCD UNPK OPDSPPAG,BCD OI OPDSPPAG+9,X'F0' MVC OUTAREA(115),HEADER3 BAL R3,WRITEREC ED PATTERN3(16),WRKFIELD MVC OPSPCUSD(10),PATTERN3+6 MVC PATTERN3,PAT4 RESET PATTERN ED PATTERN3(16),TOTCHARS MVC OPTOTSPC(10),PATTERN3+6 MVC PATTERN3,PAT4 RESET PATTERN ED PATTERN3(16),SPACAVCT MVC OPSPCEMP(10),PATTERN3+6 MVC PATTERN3,PAT4 RESET PATTERN ED PATTERN3(16),WKSPCUSE MVC OPFILUTL(10),PATTERN3+6 MVC PATTERN3,PAT4 RESET PATTERN MVC OUTAREA(132),HEADER4 BAL R3,WRITEREC BR R2 *********************************** * PRINT DETAILS *********************************** PRTDETLS EQU * ED PATTERN(8),TOTSR8CT MVC OPSR8CT(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),INSR8CT MVC OP2SR8CT(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUTSR8CT MVC OP3SR8CT(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL1 BAL R3,WRITEREC ED PATTERN(8),TOTLVL0 MVC OPLVL0(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),INLVL0 MVC OP2LVL0(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUTLVL0 MVC OP3LVL0(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL2 BAL R3,WRITEREC ED PATTERN(8),TOTLVL1 MVC OPLVL1(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),INLVL1 MVC OP2LVL1(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUTLVL1 MVC OP3LVL1(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL3 BAL R3,WRITEREC ED PATTERN(8),TOTLVL2 MVC OPLVL2(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),INLVL2 MVC OP2LVL2(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUTLVL2 MVC OP3LVL2(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL4 BAL R3,WRITEREC ED PATTERN(8),TOTLVL3 MVC OPLVL3(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),INLVL3 MVC OP2LVL3(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUTLVL3 MVC OP3LVL3(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL5 BAL R3,WRITEREC ED PATTERN(8),TOTLVL4 MVC OPLVL4(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),INLVL4 MVC OP2LVL4(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUTLVL4 MVC OP3LVL4(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL6 BAL R3,WRITEREC ED PATTERN(8),TOTLVL5 MVC OPLVL5(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),INLVL5 MVC OP2LVL5(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUTLVL5 MVC OP3LVL5(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL7 BAL R3,WRITEREC ED PATTERN(8),TOTRECCT MVC OPRECCT(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),INRECCT MVC OP2RECCT(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUTRECCT MVC OP3RECCT(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL8 BAL R3,WRITEREC ED PATTERN(8),TOTSMPCT MVC OPSMPCT(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),INSMPCT MVC OP2SMPCT(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUTSMPCT MVC OP3SMPCT(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL9 BAL R3,WRITEREC ED PATTERN(8),TOT0SR8 MVC OP0SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),IN0SR8 MVC OP20SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUT0SR8 MVC OP30SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL10 BAL R3,WRITEREC ED PATTERN(8),TOT1SR8 MVC OP1SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),IN1SR8 MVC OP21SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUT1SR8 MVC OP31SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL11 BAL R3,WRITEREC ED PATTERN(8),TOT2SR8 MVC OP2SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),IN2SR8 MVC OP22SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUT2SR8 MVC OP32SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL12 BAL R3,WRITEREC ED PATTERN(8),TOT3SR8 MVC OP3SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),IN3SR8 MVC OP23SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUT3SR8 MVC OP33SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL13 BAL R3,WRITEREC ED PATTERN(8),TOT4SR8 MVC OP4SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),IN4SR8 MVC OP24SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUT4SR8 MVC OP34SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL14 BAL R3,WRITEREC ED PATTERN(8),TOT5SR8 MVC OP5SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),IN5SR8 MVC OP25SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUT5SR8 MVC OP35SR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL15 BAL R3,WRITEREC ED PATTERN(8),TOTGRTR5 MVC OPGRTR5(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),INGRTR5 MVC OP2GRTR5(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN ED PATTERN(8),OUTGRTR5 MVC OP3GRTR5(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(124),DETAIL16 BAL R3,WRITEREC ED PATTERN3(16),TOTENTR MVC OPTOTDP(15),PATTERN3+1 MVC PATTERN3,PAT4 RESET PATTERN MVC OUTAREA(53),DETAIL17 BAL R3,WRITEREC ED PATTERN(8),TOTSR8L0 MVC OPNOSR8(7),PATTERN+1 MVC PATTERN,PAT2 RESET PATTERN MVC OUTAREA(53),DETAIL18 BAL R3,WRITEREC ED PATTERN3(16),AVGENTR MVC OPAVGDP(15),PATTERN3+1 MVC PATTERN3,PAT4 RESET PATTERN MVC OUTAREA(53),DETAIL19 BAL R3,WRITEREC ED PATTERN3(16),TOTORPH MVC OPORPH(15),PATTERN3+1 MVC PATTERN3,PAT4 RESET PATTERN MVC OUTAREA(53),DETAIL20 BAL R3,WRITEREC ED PATTERN3(16),TOTORPHO MVC OPORPHO(15),PATTERN3+1 MVC PATTERN3,PAT4 RESET PATTERN MVC OUTAREA(53),DETAIL21 BAL R3,WRITEREC BR R2 *********************************** * PRINT ERROR DETAIL *********************************** PRTERR EQU * MVC OUTAREA(76),ERRDET1 BAL R3,WRITEREC BR R2 *********************************** * WRITE O/P RECORD *********************************** WRITEREC EQU * PUT OUTFILE,OUTAREA MVI OUTAREA,C' ' CLEAR OUTAREA MVC OUTAREA+1(131),OUTAREA BR R3 *********************************** * CLOSE I/O FILES *********************************** CLOSFILS EQU * CLOSE (INPFILE) CLOSE (IN2FILE) CLOSE (OUTFILE) BR R2 *********************************** * PAGE SIZE ERROR ROUTINE *********************************** NOSUBERR EQU * MVC ERRMESG(26),=C'SUBSCHEMA NOT FOUND ON BIND' B ENDONERR SIZERR EQU * MVC ERRMESG(15),=C'PAGE SIZE ERROR' B ENDONERR *********************************** * SR8 COUNTER ERROR ROUTINE *********************************** CNTRERR EQU * MVC ERRMESG(21),=C'ERROR SR8 LVL ON PAGE' L R6,PAGNUM CVD R6,BCD UNPK ERRVARBL,BCD OI ERRVARBL+9,X'F0' B ENDONERR *********************************** * RECORD ID ERROR ROUTINE *********************************** RECERR EQU * MVC ERRMESG(20),=C'REC ID ERROR ON PAGE' L R6,PAGNUM CVD R6,BCD UNPK ERRVARBL,BCD OI ERRVARBL+9,X'F0' B ENDONERR *********************************** * SET NAME ERROR ROUTINE *********************************** SETNMERR EQU * MVC ERRMESG(16),SETNAME MVC ERRVARBL(7),=C'SETNAME' B ENDONERR *********************************** * IN2FILE ERROR ROUTINE *********************************** IN2ERR EQU * MVC ERRMESG(20),=C'NO I/P PARAMS RECORD' B ENDONERR EJECT ***************************************************************** * THIS AREA DEFINES THE INPUT AND OUTPUT FILES ***************************************************************** INPFILE DCB DSORG=PS,MACRF=GL,DDNAME=INFILE,EODAD=FINISH * IN2FILE DCB DSORG=PS,MACRF=GM,DDNAME=INFIL2,EODAD=IN2ERR, * LRECL=80,BLKSIZE=80,RECFM=FB OUTFILE DCB DSORG=PS,MACRF=PM,DDNAME=OUTFILE,RECFM=FBA, * LRECL=133,BLKSIZE=133 ***************************************************************** * THIS AREA IS FOR WORKING STORAGE ***************************************************************** * REGISTER NAME ASSIGNMENTS ***************************************************************** R0 EQU 0 IOCS R1 EQU 1 IOCS R2 EQU 2 LINK R3 EQU 3 LINK R4 EQU 4 WORK R5 EQU 5 WORK R6 EQU 6 WORK R7 EQU 7 WORK R8 EQU 8 LINK R9 EQU 9 BASE REG R10 EQU 10 BASE REG R11 EQU 11 BASE REG R12 EQU 12 BASE REG R13 EQU 13 SAVE AREA POINTER R14 EQU 14 IOCS R15 EQU 15 IOCS,RETURN CODE ***************************************************************** * REGISTER SAVE AREA ***************************************************************** SAVEAREA DS 18F ***************************************************************** * REPORT HEADERS ***************************************************************** HEADER1 DS 0CL116 DC CL1'1' DC C'DATE = ' PRNTDATE DC XL9'00' PRESET FOR TRDATCNE TO GET RUNDATE DC CL33' ' DC C'IDMS INDEXING --- SET PAGE REPORT' DC CL25' ' DC C'PAGE ' PAGEOP DS CL3 HEADER2 DS 0CL87 DC CL1'-' DC C'SETNAME = ' SETNMOP DS CL16 DC CL8' ' DC C'AREANAM = ' OPAREANM DS CL16 DC CL8' ' DC C'PAGESIZE = ' OPPAGSIZ DS CL6 HEADER3 DS 0CL115 DC CL1' ' DC C'LOPAGE = ' OPLOPAG DS CL10 DS CL10 DC C'HIPAGE = ' OPHIPAG DS CL10 DS CL10 DC C'SR7PAGE = ' OPSR7PAG DS CL10 DS CL10 DC C'DISPLAC PAGES = ' OPDSPPAG DS CL10 HEADER4 DS 0CL132 DC CL1' ' DC C'TOT BYTES OTHER THAN SMPS = ' OPTOTSPC DS CL10 DC CL3' ' DC C'TOT BYTES USED = ' OPSPCUSD DS CL10 DC CL3' ' DC C'TOT BYTES EMPTY = ' OPSPCEMP DS CL10 DC CL3' ' DC C'FILE UTILIZATION = ' OPFILUTL DS CL10 ***************************************************************** * REPORT DETAIL LINES ***************************************************************** DETAIL1 DS 0CL124 DC CL1'-' DC C'TOTAL NUMBER OF SR8S = ' OPSR8CT DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP2SR8CT DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP3SR8CT DS CL7 DETAIL2 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF LVL 0 SR8S (BOT LVL) = ' OPLVL0 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP2LVL0 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP3LVL0 DS CL7 DETAIL3 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF LVL 1 SR8S = ' OPLVL1 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP2LVL1 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP3LVL1 DS CL7 DETAIL4 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF LVL 2 SR8S = ' OPLVL2 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP2LVL2 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP3LVL2 DS CL7 DETAIL5 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF LVL 3 SR8S = ' OPLVL3 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP2LVL3 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP3LVL3 DS CL7 DETAIL6 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF LVL 4 SR8S = ' OPLVL4 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP2LVL4 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP3LVL4 DS CL7 DETAIL7 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF LVL 5 SR8S = ' OPLVL5 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP2LVL5 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP3LVL5 DS CL7 DETAIL8 DS 0CL124 DC CL1'-' DC C'TOTAL NUMBER OF PAGES IN SET = ' OPRECCT DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP2RECCT DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP3RECCT DS CL7 DETAIL9 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF SPACE MGT PAGES = ' OPSMPCT DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP2SMPCT DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP3SMPCT DS CL7 DETAIL10 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF PAGES WITH NO SR8S = ' OP0SR8 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP20SR8 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP30SR8 DS CL7 DETAIL11 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF PAGES WITH 1 SR8S = ' OP1SR8 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP21SR8 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP31SR8 DS CL7 DETAIL12 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF PAGES WITH 2 SR8S = ' OP2SR8 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP22SR8 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP32SR8 DS CL7 DETAIL13 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF PAGES WITH 3 SR8S = ' OP3SR8 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP23SR8 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP33SR8 DS CL7 DETAIL14 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF PAGES WITH 4 SR8S = ' OP4SR8 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP24SR8 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP34SR8 DS CL7 DETAIL15 DS 0CL124 DC CL1'0' DC C'TOT NUMBER OF PAGES WITH 5 SR8S = ' OP5SR8 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP25SR8 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP35SR8 DS CL7 DETAIL16 DS 0CL124 DC CL1'0' DC C'TOT PAGES WITH GREATER THAN 5 SR8S = ' OPGRTR5 DS CL7 DS CL10 DC C'WITHIN DISPLACEMENT = ' OP2GRTR5 DS CL7 DS CL10 DC C'OUTSIDE DISPLACEMENT = ' OP3GRTR5 DS CL7 DETAIL17 DS 0CL53 DC CL1'-' DC C'TOTAL NUMBER OF RECORDS INDEXED = ' OPTOTDP DS CL15 DETAIL18 DS 0CL53 DC CL1' ' DC C'TOT NBR NON ORPHAN ONLY SR8S LVL 0 = ' DC CL8' ' OPNOSR8 DS CL7 DETAIL19 DS 0CL53 DC CL1' ' DC C'AVG # ENTRY(NON ORPHAN ONLY)SR8 L0 = ' OPAVGDP DS CL15 DETAIL20 DS 0CL53 DC CL1'-' DC C'TOTAL ORPHAN COUNT = ' OPORPH DS CL15 DETAIL21 DS 0CL53 DC CL1' ' DC C'TOTAL # ORPHAN ONLY SR8S = ' OPORPHO DS CL15 ***************************************************************** * ERROR DETAIL LINE ***************************************************************** ERRDET1 DS 0CL76 DC CL1'1' DC C'********************' ERRMESG DS CL25 ERRVARBL DS CL10 DC C'********************' ***************************************************************** * COUNTERS ***************************************************************** TOTRECCT DC PL4'0' TOTSMPCT DC PL4'0' TOT0SR8 DC PL4'0' TOT1SR8 DC PL4'0' TOT2SR8 DC PL4'0' TOT3SR8 DC PL4'0' TOT4SR8 DC PL4'0' TOT5SR8 DC PL4'0' TOTGRTR5 DC PL4'0' TOTSR8CT DC PL4'0' TOTSR8L0 DC PL4'0' TOTLVL0 DC PL4'0' TOTLVL1 DC PL4'0' TOTLVL2 DC PL4'0' TOTLVL3 DC PL4'0' TOTLVL4 DC PL4'0' TOTLVL5 DC PL4'0' INRECCT DC PL4'0' INSMPCT DC PL4'0' IN0SR8 DC PL4'0' IN1SR8 DC PL4'0' IN2SR8 DC PL4'0' IN3SR8 DC PL4'0' IN4SR8 DC PL4'0' IN5SR8 DC PL4'0' INGRTR5 DC PL4'0' INSR8CT DC PL4'0' INLVL0 DC PL4'0' INLVL1 DC PL4'0' INLVL2 DC PL4'0' INLVL3 DC PL4'0' INLVL4 DC PL4'0' INLVL5 DC PL4'0' OUTRECCT DC PL4'0' OUTSMPCT DC PL4'0' OUT0SR8 DC PL4'0' OUT1SR8 DC PL4'0' OUT2SR8 DC PL4'0' OUT3SR8 DC PL4'0' OUT4SR8 DC PL4'0' OUT5SR8 DC PL4'0' OUTGRTR5 DC PL4'0' OUTSR8CT DC PL4'0' OUTLVL0 DC PL4'0' OUTLVL1 DC PL4'0' OUTLVL2 DC PL4'0' OUTLVL3 DC PL4'0' OUTLVL4 DC PL4'0' OUTLVL5 DC PL4'0' SR8ONPAG DC PL2'0' PAGECNT DC PL2'0' TOTENTR DC PL8'0' AVGENTR DC PL8'0' TOTORPHO DC PL8'0' TOTORPH DC PL8'0' ***************************************************************** * WORK FIELDS ***************************************************************** DS 0F FULL WORD ALIGNMENT DISPHOLD DC F'0' ABENDCD DS F DISPLAC DS CL2 PRFLNGTH DS CL2 SPCNTWRK DC F'0' NUMBENTR DC F'0' DUMDATE DC XL4'00' DUMMY INPUT DATE FOR TRDATCNE DIVIDWRK DC PL16'0' LOPAGNUM DS F REG7 DS F HIPAGNUM DS F . Not being used, store hicalc SR7PAGNM DS F REGDSEND DS F RAPDSEND DS F INPACKPG DC PL4'0' WRKPAGSZ DC PL4'0' WRKRECCT DC PL4'0' WRKFIELD DC PL8'0' TOTCHARS DC PL8'0' DS 0D SPACAVCT DC PL8'0' SPACAVLP DC PL8'0' PAGEBUMP DC PL8'0' SPCAVLCT DC F'0' WKSPCUSE DC PL16'0' DMCLNAME DS CL8 DMCLENT DS F VSABASE DS F SETLOPG DS F SETHIPG DS F AREANAM DC CL16' ' DATPARMS DC A(DUMDATE) DC A(PRNTDATE) ***************************************************************** * SWITCHES ***************************************************************** SWABEND DC X'00' SWWRAP DC X'00' SWOUT DC X'00' ***************************************************************** * ARGS FOR CALL TO IDMSCALC ***************************************************************** CALCREC DS 0F PAGECALC DS F HICALC DS F LOCALC DS F LNGCALC DS H KEYCALC DC CL16' ' HC DS F LC DS F LNC DS H KC DC CL16' ' ***************************************************************** * FOR INTERMEDIATE BCD REPRESENTATION ***************************************************************** BCD DS D ***************************************************************** * PATTERN TO EDIT O/P FIELDS ***************************************************************** PATTERN DC X'4021202020202020' PAT2 DC X'4021202020202020' PATTERN2 DC X'40202120' PAT3 DC X'40202120' PATTERN3 DC X'40212020202020202020202020202020' PAT4 DC X'40212020202020202020202020202020' ***************************************************************** * ASSEMBLED LITERAL CONSTANTS ***************************************************************** LTORG ***************************************************************** * INPUT AND OUTPUT AREAS ***************************************************************** OUTAREA DS CL133 DS 0F SET ON FULLWORD IN2AREA DS 0CL80 SUBSNAME DS CL8 DS CL1 SETNAME DS CL16 DS CL1 INPGESZE DS CL5 DS 0F FULL WORD ALIGNMENT INAREA DS 0CL11476 RECPART1 DS CL16 RECSTRT DSECT PAGNUM DS CL4 SYSPNTR DS CL8 SPCAVAL DS CL2 DS CL2 ENDINFO1 DSECT DS CL16 ENDINFO ORG ENDINFO1 SR1LNIX1 DS CL8 SPCCNT1 DS CL2 UPDCNT1 DS CL2 ENDPGENO DS CL4 #FIBDS #FSRDS #FORDS #FAMDS #FACDS #FSADS VARS=YES #DMCLDS TYPE=DMCDS COPY #VIBDS END