         TITLE 'IFCSVOL0  MES DATA SUMMARY BY VOLUME'                   00100002
         MACRO                                                          00200002
&NAME    DSGEN                                                          00300002
.*                            THIS MACRO GENERATES ONE DSECT WORD       00400002
.*                                 FORMATTED FOR THE SUBJECT LOG RECORD 00500002
.*                                 EACH OPERAND HAS TWO SUB LISTS. THE  00600002
.*                                 FIRST IS THE NAME OF THE LOG ITEM    00700002
.*                                 WHILE THE SECOND IS THE # OF BITS TO 00800002
.*                                 ALLOCATE FOR THIS ITEM. ITEMS MUST   00900002
.*                                 BE DEFINED CONTIGUOUSLY WITHOUT GAPS 01000002
.*                                 UNUSED BIT GROUPS MUST BE GIVEN      01100002
.*                                 DUMMY NAMES. THE NAMES PROVIDED FOR  01200002
.*                                 THE LOG ITEMS MAY THEN BE USED IN    01300002
.*                                 THE CONVERSION MACRO INSTRUCTIONS.   01400002
         GBLC &ITEM(1000)                                               01500002
         GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000)                         01600002
         LCLB  &ONLY1,&CTIND                                            01700002
         LCLA  &START1,&START2,&END1,&END2                              01800002
         LCLC  &SYMBOL,&EQUSYM                                          01900002
         LCLA  &OP,&COUNT,&BYTE,&EQUCNT                                 02000002
         ACTR  100000                                                   02100002
.START   AIF   (N'&SYSLIST(&OP+1) LT 3).LOOP                            02200002
         AIF   ('&SYSLIST(&OP+1,3)' EQ 'EQU').LOOP     TEST FOR EQU     02300002
  AIF   ('&SYSLIST(&OP+1,3)' EQ '' AND '&SYSLIST(&OP+1,4)' EQ '').ERR1  02400002
  AIF   ('&SYSLIST(&OP+1,3)' EQ '' OR '&SYSLIST(&OP+1,4)' EQ '').ERR1   02500002
         AIF   ('&SYSLIST(&OP+1,3)' GT '&SYSLIST(&OP+1,4)').ERR3        02600002
&START1  SETA  &SYSLIST(&OP+1,3)        GET START COUNT OF 1            02700002
&START2  SETA  &SYSLIST(&OP+1,4)        GET FIRST END COUNT             02800002
         AGO   .SET2A                   BRANCH AROUND                   02900002
.ERR1    MNOTE '**FIRST SYMBOL CONCATENATION INCOMPLETE**'              03000002
         MEXIT                                                          03100002
.SET2A   AIF   ('&SYSLIST(&OP+1,5)' EQ ''AND '&SYSLIST(&OP+1,6)' EQ '' X03200002
               ).SET2                   TEST FOR NO SECOND              03300002
  AIF   ('&SYSLIST(&OP+1,5)' EQ '' OR '&SYSLIST(&OP+1,6)' EQ '').ERR2   03400002
         AIF   ('&SYSLIST(&OP+1,5)' GT '&SYSLIST(&OP+1,6)').ERR3        03500002
&END1    SETA  &SYSLIST(&OP+1,5)        GET START COUNT OF 2            03600002
&END2    SETA  &SYSLIST(&OP+1,6)        GET END COUNT OF 2              03700002
         AGO   .LOOP                                                    03800002
.SET2    ANOP                                                           03900002
&ONLY1   SETB  1                        INDICATE ONLY ONE CONCATENATION 04000002
         AGO   .LOOP                                                    04100002
.ERR2    MNOTE '**SECOND SYMBOL CONCATENATION INCOMPLETE**'             04200002
         MEXIT                                                          04300002
.ERR3    MNOTE '**START GREATER THAN END CONCATENATION**'               04400002
         MEXIT                                                          04500002
.LOOP    ANOP                                                           04600002
&OP      SETA  &OP+1                                                    04700002
         AIF   (&OP GT N'&SYSLIST).DONE      TEST IF ALL DONE           04800002
&ITEMNBR SETA  &ITEMNBR+1                                               04900002
         AIF   ('&SYSLIST(&OP,2)' NE '').OK1                            05000002
         MNOTE '**NULL BIT COUNT FIELD**'                               05100002
         MEXIT                                                          05200002
.OK1     ANOP                                                           05300002
&SYMBOL  SETC  '&SYSLIST(&OP,1)'                                        05400002
         AIF   ('&SYMBOL' NE '').OK                                     05500002
*              *****     LOG ITEM SYMBOL NOT PROVIDED     *****         05600002
         AIF   ('&SYSLIST(&OP,3)' NE 'EQU').CNT                         05700002
         AGO   .START                   GET NEXT                        05800002
.OK      AIF   (N'&SYSLIST(&OP) LT 3).NO3    TEST FOR OLD FORMAT        05900002
         AIF   ('&SYSLIST(&OP,3)' EQ 'EQU').EQU   TEST FOR EQU          06000002
         AIF   (&ONLY1).OK2             TEST FOR ONLY ONE CONCAT        06100002
&SYMBOL  SETC  '&SYMBOL.&START1.&END1'       GET 1 AND 2 CONCAT         06200002
         AGO   .NO3                     BRANCH AROUND                   06300002
.OK2     ANOP                                                           06400002
&SYMBOL  SETC  '&SYMBOL.&START1'        GET 1 CONCATENATED              06500002
.NO3     ANOP                                                           06600002
&SYMBOL  EQU   *+&BYTE                                                  06700002
&ITEM(&ITEMNBR) SETC '&SYMBOL'          GET LABEL IN GLOBAL             06800002
&BITS(&ITEMNBR) SETA &SYSLIST(&OP,2)                                    06900002
&SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8                                    07000002
.CNT     ANOP                                                           07100002
&CTIND   SETB  1                        SET COUNT INDICATOR             07200002
&COUNT   SETA  &COUNT+&SYSLIST(&OP,2)                                   07300002
&BYTE    SETA  &COUNT/8                                                 07400002
         AIF   (N'&SYSLIST(&OP) LT 3).START  TEST FOR OLD FORMAT        07500002
         AIF   (&ONLY1).TSTST           TEST FOR ONLY ONE CONCAT        07600002
         AIF   (&END1 EQ &END2).TSTST   TEST FOR SECOND END             07700002
&END1    SETA  &END1+1                  INCREMENT COUNT                 07800002
&OP      SETA  &OP-1                    DECREMENT INCREMENT             07900002
         AGO   .LOOP                    GENERATE NEXT                   08000002
.TSTST   ANOP                                                           08100002
         AIF   (&START1 EQ &START2).LPDONE   TEST FOR END               08200002
         AIF   (&ONLY1).NSET1           TEST FOR ONLY ONE CONCAT        08300002
&END1    SETA  &SYSLIST(&OP,5)          RE-INIT SECOND START COUNT      08400002
.NSET1   ANOP                                                           08500002
&OP      SETA  &OP-1                    DECREMENT INDEX                 08600002
&START1  SETA  &START1+1                INCREMENT FIRST COUNT           08700002
         AGO   .LOOP                    GO DO NEXT                      08800002
.LPDONE  ANOP                                                           08900002
&ONLY1   SETB  0                        CLEAR INDICATOR                 09000002
         AGO   .START                   GO TEST FOR MORE SUB-LISTS      09100002
.DONE    AIF   (&COUNT-&COUNT/8*8 NE 0).ERR  TEST FOR MULTIPLE OF EIGHT 09200002
         AIF   (&CTIND EQ 0).END        NO DS IF NO COUNT               09300002
&COUNT   SETA  &COUNT/8                 GET NUMBER OF BYTES             09400002
&NAME    DS    &COUNT.C                                                 09500002
.END     MEXIT                                                          09600002
.ERR     MNOTE '**BIT COUNT FLDS DO NOT TOTAL MULTIPLE OF 8**'          09700002
         MEXIT                                                          09800002
.EQU     AIF   ('&SYSLIST(&OP,4)' NE '').EQU1     TEST FOR NULL LABEL   09900002
.ERR4    MNOTE '**EQU OPERAND OMITTED OR NOT FOUND**'                   10000002
         MEXIT                                                          10100002
.EQU1    AIF   (&SYSLIST(&OP,2) LT 16).EQU2  COUNT OVER FIFTEEN         10200002
*****               THE FOLLOWING STATEMENT                *****        10300002
*****     NUMBER OF BITS EXCEED 15 - DO NOT USE AS BIN     *****        10400002
.EQU2    ANOP                                                           10500002
&EQUCNT  SETA  0                        CLEAR COUNTER                   10600002
&EQUSYM  SETC  '&SYSLIST(&OP,4)'        GET EQU OPERAND                 10700002
.EQULOP  ANOP                                                           10800002
&EQUCNT  SETA  &EQUCNT+1                INCREMENT INDEX                 10900002
         AIF   ('&ITEM(&EQUCNT)' EQ '&EQUSYM').EQUOUT  LABEL FOUND?     11000002
         AIF   (&EQUCNT EQ &ITEMNBR).ERR3    ALL TESTED?                11100002
         AGO   .EQULOP                  NO-GET NEXT                     11200002
.EQUOUT  ANOP                                                           11300002
&ITEM(&ITEMNBR) SETC '&SYMBOL'          GET LABEL NAME                  11400002
&BITS(&ITEMNBR) SETA &SYSLIST(&OP,2)    GET NUMBER OF BITS              11500002
&SHIFT(&ITEMNBR) SETA &SHIFT(&EQUCNT)   GET SHIFT COUNT                 11600002
&SYMBOL  EQU   &EQUSYM                  THIS SYMBOL EQUATED             11700002
         AGO   .START                   RETURN FOR NEXT                 11800002
         MEND                                                           11900002
*  LINE MACRO     LINE MACRO     LINE MACRO     LINE MACRO            * 12000002
         SPACE 2                                                        12100002
         MACRO                                                          12200002
&NAME    LINE  &DATA,&LABEL,&SKIP=                                      12300002
.*                            THIS MACRO ESTABLISHES THE MARGINS OR     12400002
.*                                 COLUMN SETTINGS FOR EACH LINE. IT    12500002
.*                                 GENERATES NECESSARY CARRIAGE CONTROL 12600002
.*                                 ENTRIES. LASTLY IT DETERMINES THE    12700002
.*                                 NUMBER OF ENTRIES ASSOCIATED WITH    12800002
.*                                 THE PREVIOUS LINE AND STORES THAT #  12900002
.*                                 INTO THE APPROPRIATE BYTE.           13000002
.*                            &DATA(1) - CHARACTER POSITION TO BEGIN    13100002
.*                                 DATA.                                13200002
.*                            &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 13300002
.*                                 DATA COLUMN STARTING CHARACTERS.     13400002
.*                            &LABEL(1) - CHAR. POS. TO BEGIN LABELS.   13500002
.*                            &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 13600002
.*                                 STARTING CHARACTERS.                 13700002
.*                            &SKIP= - # OF LINES TO ADVANCE CARRIAGE   13800002
.*                                 TO BEGIN NEXT PRINTED LINE.          13900002
.*                            NEW ENTRIES ARE GENERATED ONLY WHEN       14000002
.*                                 NECESSARY. OMISSION OF ITEMS MEANS   14100002
.*                                 THEY HAVE NOT CHANGED SINCE PREVIOUS 14200002
.*                                 SETTINGS. A LINE MACRO IS REQUIRED   14300002
.*                                 FOR EACH PRINTED LINE. IF NO SETTING 14400002
.*                                 CHANGES ARE REQUIRED ALL OPERANDS    14500002
.*                                 ARE OMITTED IN WHICH CASE ONLY THE   14600002
.*                                 # OF ENTRIES FOR THE PREVIOUS LINE   14700002
.*                                 IS COMPUTED. THIS MACRO MUST BE THE  14800002
.*                                 FIRST MACRO INSTRUCTION ISSUED FOR   14900002
.*                                 THE SUBJECT LINE                     15000002
         GBLA  &DB,&DT,&LB,&LT,&NRENTS                                  15100002
         GBLA  &LASTCC,&INITIAL                                         15200002
         GBLC  &NRENTSX                                                 15300002
         GBLC  &CARRCON                                                 15400002
         GBLB  &TEST                                                    15500002
         LCLA  &S                                                       15600002
&NAME    DS    0C                                                       15700002
         AIF   (&INITIAL EQ 0).FIRSTLN                                  15800002
         LINEND                                                         15900002
         AGO   .NTFIRST                                                 16000002
.FIRSTLN ANOP                                                           16100002
&NRENTSX SETC  'N&SYSNDX'                                               16200002
&INITIAL SETA  1                                                        16300002
N&SYSNDX EQU   *                                                        16400002
.NTFIRST ANOP                                                           16500002
         DC    AL1(0)                                                   16600002
         AIF   ('&DATA(1)' EQ '').CKDTABS                               16700002
         AIF   (&DATA(1) EQ &DB).CKDTABS                                16800002
&DB      SETA  &DATA(1)                                                 16900002
         AGO   .AA                                                      17000002
.CKDTABS AIF   ('&DATA(2)' EQ '').NCDATA                                17100002
         AIF   (&DATA(2) EQ &DT).NCDATA                                 17200002
         AGO   .CC                                                      17300002
.AA      AIF   ('&DATA(2)' EQ '').BB                                    17400002
         AIF   (&DATA(2) EQ &DT).BB                                     17500002
.CC      ANOP                                                           17600002
&DT      SETA  &DATA(2)                                                 17700002
.BB      DC    XL2'FFFE'                                                17800002
         DC    FL1'&DB'                                                 17900002
         DC    FL1'&DT'                                                 18000002
&NRENTS  SETA  &NRENTS+1                                                18100002
.NCDATA  ANOP                                                           18200002
         AIF   ('&LABEL(1)' EQ '').CKLTABS                              18300002
         AIF   (&LABEL(1) EQ &LB).CKLTABS                               18400002
&LB      SETA  &LABEL(1)                                                18500002
         AGO   .AAA                                                     18600002
.CKLTABS AIF   ('&LABEL(2)' EQ '').NCLABEL                              18700002
         AIF   (&LABEL(2) EQ &LT).NCLABEL                               18800002
         AGO   .CCC                                                     18900002
.AAA     AIF   ('&LABEL(2)' EQ '').BBB                                  19000002
         AIF   (&LABEL(2) EQ &LT).BBB                                   19100002
.CCC     ANOP                                                           19200002
&LT      SETA  &LABEL(2)                                                19300002
.BBB     DC    XL2'FFFF'                                                19400002
         DC    FL1'&LB'                                                 19500002
         DC    FL1'&LT'                                                 19600002
&NRENTS  SETA  &NRENTS+1                                                19700002
.NCLABEL ANOP                                                           19800002
         AIF   ('&SKIP' NE '').CONT                                     19900002
         AIF   (&TEST EQ 0).NOCHANG                                     20000002
&S       SETA  &LASTCC                                                  20100002
         AGO   .DEFAULT                                                 20200002
.CONT    ANOP                                                           20300002
         AIF   (&TEST EQ 0).AB                                          20400002
&S       SETA  &SKIP                                                    20500002
.DEFAULT ANOP                                                           20600002
         ORG   &CARRCON+3                                               20700002
         DC    AL.3(0),AL.2(&S),AL.3(1)                                 20800002
         ORG                                                            20900002
&LASTCC  SETA  &S                                                       21000002
&TEST    SETB  0                                                        21100002
         AGO   .DD                                                      21200002
.AB      AIF   (&SKIP EQ &LASTCC).NOCHANG                               21300002
A&SYSNDX DC    XL2'FFFB'                                                21400002
         DC    AL.3(0),AL.2(&SKIP),AL.3(1)                              21500002
         DC    FL1'9'                                                   21600002
&LASTCC  SETA  &SKIP                                                    21700002
&TEST    SETB  1                                                        21800002
&CARRCON SETC  'A&SYSNDX'                                               21900002
&NRENTS  SETA  &NRENTS+1                                                22000002
.DD      ANOP                                                           22100002
.NOCHANG ANOP                                                           22200002
         MEND                                                           22300002
         EJECT                                                          22400002
*  BIN MACRO     BIN MACRO     BIN MACRO     BIN MACRO     BIN MACRO  * 22500002
         SPACE 2                                                        22600002
         MACRO                                                          22700002
         BIN   &LOGITEM,&SKIP$OR                                        22800002
.*                                 &LOGITEM - NAME OF ITEM IN LOG       22900002
.*                                      RECORD DSECT                    23000002
.*                                 &SKIP$OR - NBR OF SPACES TO SKIP ON  23100002
.*                                 MULTIPLE PRINT OR NBR OF SPACES      23200002
.*                                      TO BACK UP FROM COLUMN FOR      23300002
.*                                      START OF PRINTING. THE LETTER   23400002
.*                                      B PRECEEDS THE NUMBER (B5) IF   23500002
.*                                      THE LATTER IS DESIRED. OMISSION 23600002
.*                                      OF THIS OPERAND FORCES OPTION 2 23700002
.*                                      WITH BACKUP SPACING EQUAL TO    23800002
.*                                 THE NUMBER OF BITS IN THE ITEM       23900002
.*                                 DEFINITION (VIA MACRO 'DSGEN').      24000002
.*                            A LIMIT OF 15 BITS IS IMPOSED FOR THE     24100002
.*                                 TOTAL NUMBER OF BITS TO PRINT.       24200002
         GBLC &ITEM(1000)                                               24300002
         GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS                 24400002
         GBLC  &DSECT                                                   24500002
         LCLB  &B                                                       24600002
         LCLA  &IBITS,&NDX,&ISHIFT,&K                                   24700002
         LCLA  &TEMP,&T                                                 24800002
         LCLC  &S                                                       24900002
.LOOP    ANOP                                                           25000002
&NDX     SETA  &NDX+1                                                   25100002
         AIF   ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND                      25200002
         AIF   (&NDX LT &ITEMNBR).LOOP                                  25300002
         MNOTE *,'YOU BLEW IT'                                          25400002
         ROUTINE DUM,SKIPPER                                            25500002
         MEXIT                                                          25600002
.FOUND   ANOP                                                           25700002
&ISHIFT  SETA  &SHIFT(&NDX)                                             25800002
&IBITS   SETA  &BITS(&NDX)                                              25900002
&T       SETA  &IBITS-1                                                 26000002
&B       SETB  0                                                        26100002
         AIF   ('&SKIP$OR' EQ '').BACKUP                                26200002
&K       SETA  K'&SKIP$OR                                               26300002
&B       SETB  ('&SKIP$OR'(1,1) EQ 'B')                                 26400002
&S       SETC  '&SKIP$OR'(&B+1,&K-&B)                                   26500002
&T       SETA  &S                                                       26600002
.BACKUP  ANOP                                                           26700002
&NRENTS  SETA  &NRENTS+1                                                26800002
&TEMP    SETA  &ISHIFT                                                  26900002
A&SYSNDX DC    AL.12(&LOGITEM-&DSECT),XL.4'&TEMP'                       27000002
         AIF (&IBITS EQ 1 AND &B EQ 0).OUT                              27100002
         ORG   A&SYSNDX                                                 27200002
&B       SETB  1                                                        27300002
         DC    AL.12(&LOGITEM-&DSECT),XL.4'C'                           27400002
         DC    BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT'             27500002
.OUT     ANOP                                                           27600002
         MEND                                                           27700002
         EJECT                                                          27800002
*  HEX MACRO     HEX MACRO     HEX MACRO    HEXN MACRO     HEX MACRO  * 27900002
         SPACE 2                                                        28000002
         MACRO                                                          28100002
         HEX   &LOGITEM,&SKIP$OR,&BYTES                                 28200002
.*                            THIS MACRO FACILITATES GENERATION OF THE  28300002
.*                                 TABLE ENTRIES SPECIFYING HEX TYPE    28400002
.*                                 CONVERSIONS.                         28500002
.*                            &LOGITEM - NAME OF DATA ITEM TO BE        28600002
.*                                 CONVERTED                            28700002
.*                            &SKIP$OR - NUMBER OF SPACES TO SKIP ON    28800002
.*                                 MULTIPLE PRINT OR NBR OF SPACES TO   28900002
.*                                 BACK UP FROM COLUMN FOR START OF     29000002
.*                                 PRINTING. THE LETTER B PRECEEDS THE  29100002
.*                                 NUMBER (B8) IF THE LATTER OPTION IS  29200002
.*                                 DESIRED. OMISSION OF THIS OPERAND    29300002
.*                                 FORCES OPTION 2 WITH BACKUP SPACING  29400002
.*                                 EQUAL TO THE NUMBER OF BYTES SPECI-  29500002
.*                                 FIED BY THE NEXT OPERAND (TWICE THIS 29600002
.*                                 NUMBER IF SUFFIX IS EXPLICITLY OR    29700002
.*                                 IMPLICITLY B).                       29800002
.*                            &BYTES - NUMBER OF TOTAL INPUT BYTES TO   29900002
.*                                 PROCESS. THIS NUMBER IS SUFFIXED     30000002
.*                                 WITH AN L,R, OR B TO STIPULATE       30100002
.*                                 PRINTING OF THE LEFT HALF, RIGHT     30200002
.*                                 HALF, OR BOTH HALVES OF THE BYTE     30300002
.*                                 RESPECTIVELY. OMISSION OF THIS       30400002
.*                                 OPERAND DEFAULTS TO B WITH THE NUM-  30500002
.*                                 BER OF BYTES EQUAL TO THE ITEM LNGTH 30600002
.*                            A NEW ENTRY IS GENERATED ONLY WHEN NECES- 30700002
.*                                 SARY. THIS MACRO MUST BE THE FIRST   30800002
.*                                 MACRO INSTRUCTION ISSUED FOR THE     30900002
.*                                 SUBJECT LINE(S).                     31000002
         GBLC &ITEM(1000),&DSECT                                        31100002
         GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS                 31200002
         LCLB  &B                                                       31300002
         LCLA  &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP                  31400002
         LCLC  &S,&LETTER                                               31500002
.LOOP    ANOP                                                           31600002
&NDX     SETA  &NDX+1                                                   31700002
         AIF   ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND                      31800002
         AIF   (&NDX LT &ITEMNBR).LOOP                                  31900002
         MNOTE *,'LOG ITEM NOT DEFINED'                                 32000002
         MEXIT                                                          32100002
.FOUND   ANOP                                                           32200002
&ISHIFT  SETA  &SHIFT(&NDX)                                             32300002
&IBITS   SETA  &BITS(&NDX)                                              32400002
&CODE    SETA  1                                                        32500002
&K       SETA  K'&BYTES                                                 32600002
         AIF   (&IBITS-(&IBITS/4)*4 EQ 0).OK                            32700002
         MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL'   32800002
         MEXIT                                                          32900002
.OK      AIF   ('&BYTES' EQ '').USEDEFN                                 33000002
&LETTER  SETC  '&BYTES'(&K,1)                                           33100002
&S       SETC  '&BYTES'(1,&K-1)                                         33200002
&BYTESP  SETA  &S                                                       33300002
         AIF   ('&LETTER' EQ 'B').BOTH                                  33400002
         AIF   (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2                       33500002
.ERR     MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY'            33600002
         MEXIT                                                          33700002
.USEDEFN ANOP                                                           33800002
&BYTESP  SETA  &IBITS/8                                                 33900002
.BOTH    AIF   (&ISHIFT NE 0).ERR                                       34000002
&CODE    SETA  3                                                        34100002
&T       SETA  &BYTESP*2-1                                              34200002
&S       SETC  '&T'                                                     34300002
.OK2     AIF   (&ISHIFT EQ 0).L                                         34400002
&CODE    SETA  2                                                        34500002
.L       ANOP                                                           34600002
&B       SETB  1                                                        34700002
         AIF   ('&SKIP$OR' EQ '').BACKUP                                34800002
&K       SETA  K'&SKIP$OR                                               34900002
&B       SETB  ('&SKIP$OR'(1,1) EQ 'B')                                 35000002
&S       SETC  '&SKIP$OR'(&B+1,&K-&B)                                   35100002
.BACKUP  ANOP                                                           35200002
&NRENTS  SETA  &NRENTS+1                                                35300002
         DC    AL.12(&LOGITEM-&DSECT),XL.4'A'                           35400002
         DC    BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE'              35500002
.OUT     ANOP                                                           35600002
         MEND                                                           35700002
         SPACE 2                                                        35800002
*  ROUTINE MACRO     ROUTINE MACRO     ROUTINE MACRO     ROUTINE MACRO* 35900002
         SPACE 2                                                        36000002
         MACRO                                                          36100002
&NAME    ROUTINE &LOGITEM,&RNAME                                        36200002
         GBLC  &DSECT,&CSECT                                            36300002
         GBLC  &ITEM(1000)                                              36400002
         GBLA  &SHIFT(1000),&ITEMNBR                                    36500002
         GBLA  &NRENTS                                                  36600002
         LCLA  &ISHIFT,&NDX                                             36700002
.LOOP    ANOP                                                           36800002
&NDX     SETA  &NDX+1                                                   36900002
         AIF   ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND                      37000002
         AIF   (&NDX LT &ITEMNBR).LOOP                                  37100002
         MNOTE *,'LOG ITEM NOT DEFINED'                                 37200002
         MEXIT                                                          37300002
.FOUND   ANOP                                                           37400002
&ISHIFT  SETA  &SHIFT(&NDX)                                             37500002
&NAME    DC    AL.12(&LOGITEM-&DSECT),XL.4'D'                           37600002
         DC    AL.4(&ISHIFT),AL.12(&RNAME-&CSECT)                       37700002
&NRENTS  SETA  &NRENTS+1                                                37800002
         MEND                                                           37900002
         EJECT                                                          38000002
*  LABEL MACRO     LABEL MACRO     LABEL MACRO     LABEL MACRO        * 38100002
         SPACE 2                                                        38200002
         MACRO                                                          38300002
&NAME    LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6,        C38400002
               &LABEL7,&LABEL8                                          38500002
.*                            THIS MACRO ALLOWS UP TO ACHT LABELS TO    38600002
.*                                 BE SPECIFIED FOR A GIVEN LINE. THE   38700002
.*                                 LABELS SHOULD BE ENCLOSED IN QUOTA-  38800002
.*                                 TION MARKS. THE COLUMN AND LINE END  38900002
.*                                 CONTROLS WILL BE INSERTED BY THE     39000002
.*                                 MACRO. OMITTED OPERANDS MEAN NO      39100002
.*                                 LABEL REQUIRED FOR RESPECTIVE        39200002
.*                                 COLUMN. THIS MACRO WILL ALSO ALERT   39300002
.*                                 THE PROGRAMMER TO EXACTLY WHERE THE  39400002
.*                                 TABLE MUST BE BROKEN IF NECESSARY    39500002
.*                                 TO AVOID EXCEEDING THE MAXIMUM LIMIT 39600002
         GBLC &LABELS(2000)                                             39700002
         GBLC  &LBL(100)                                                39800002
         GBLA  &LBLCTR(100)                                             39900002
         GBLA  &LABELNR                                                 40000002
         GBLA  &NRENTS,&LPTR                                            40100002
         LCLC  &MARGIN,&TACK                                            40200002
         LCLC  &TEXT                                                    40300002
         LCLA  &OP,&K,&START,&NRCHAR,&REMAIN                            40400002
&MARGIN  SETC  '*'                                                      40500002
         AIF   ('&NAME' EQ '').LOOPOUT                                  40600002
&LPTR    SETA  &LPTR+1                                                  40700002
&LBL(&LPTR) SETC '&NAME'                                                40800002
&LBLCTR(&LPTR) SETA &LABELNR+1                                          40900002
.LOOPOUT ANOP                                                           41000002
&OP      SETA  &OP+1                                                    41100002
&K       SETA  K'&SYSLIST(&OP)                                          41200002
         AIF (&K GE 2).NORM                                             41300002
&K       SETA  2                                                        41400002
.NORM    ANOP                                                           41500002
&START   SETA  2                                                        41600002
         AIF (&OP LT N'&SYSLIST).NOTLAST                                41700002
&MARGIN  SETC  '$'                                                      41800002
.NOTLAST ANOP                                                           41900002
&NRCHAR  SETA  8                                                        42000002
&TACK    SETC  ''                                                       42100002
.LOOPIN  ANOP                                                           42200002
&REMAIN  SETA  &K-&START                                                42300002
         AIF (&REMAIN GE 8).MORE                                        42400002
&TACK    SETC  '&MARGIN'                                                42500002
&NRCHAR  SETA  &REMAIN                                                  42600002
.MORE    ANOP                                                           42700002
&TEXT    SETC  ''                                                       42800002
         AIF (&REMAIN EQ 0).ENDTEXT                                     42900002
&TEXT    SETC  '&SYSLIST(&OP)'(&START,&NRCHAR)                          43000002
.ENDTEXT ANOP                                                           43100002
&LABELNR SETA  &LABELNR+1                                               43200002
&LABELS(&LABELNR) SETC '&TEXT'.'&TACK'                                  43300002
&START   SETA  &START+8                                                 43400002
         AIF ('&TACK' EQ '').LOOPIN                                     43500002
         AIF ('&TACK' EQ '*').LOOPOUT                                   43600002
         MEND                                                           43700002
         SPACE 2                                                        43800002
         MACRO                                                          43900002
         LSTART                                                         44000002
.*                            THIS MACRO IS ISSUED WHEN THE LABEL AREA  44100002
.*                                 OF THE TABLE IS TO BEGIN.            44200002
         GBLC &LABELS(2000)                                             44300002
         GBLA  &LABELNR                                                 44400002
         GBLC  &LBL(100)                                                44500002
         GBLA  &LBLCTR(100)                                             44600002
         LCLA  &NDX,&CTR                                                44700002
         LINEND                                                         44800002
&CTR     SETA  1                                                        44900002
.LOOP    ANOP                                                           45000002
&NDX     SETA  &NDX+1                                                   45100002
         AIF   (&LBLCTR(&CTR) NE &NDX).NOLBL                            45200002
&LBL(&CTR) DC  C'&LABELS(&NDX)'                                         45300002
&CTR     SETA  &CTR+1                                                   45400002
         AGO   .LOOPCTL                                                 45500002
.NOLBL   ANOP                                                           45600002
         DC    C'&LABELS(&NDX)'                                         45700002
.LOOPCTL AIF   (&NDX LT &LABELNR).LOOP                                  45800002
         MEND                                                           45900002
         SPACE 2                                                        46000002
         MACRO                                                          46100002
         LINEND                                                         46200002
.*                            THIS MACRO IS USED ONLY BY THE LINE       46300002
.*                                 MACRO TO SET THE NUMBER OF ENTRIES   46400002
.*                                 ASSOCIATED WITH EACH LINE.           46500002
         GBLA  &NRENTS                                                  46600002
         GBLC &NRENTSX                                                  46700002
         ORG   &NRENTSX                                                 46800002
         DC    FL1'&NRENTS'                                             46900002
         ORG                                                            47000002
&NRENTS  SETA  0                                                        47100002
B&SYSNDX EQU   *                                                        47200002
&NRENTSX SETC  'B&SYSNDX'                                               47300002
         MEND                                                           47400002
         MACRO                                                          47500002
         SPECIAL  &ROUTINE,&PARAM,&SPACE=                               47600002
.*                            THIS MACRO GENERATES A SPECIAL ROUTINE    47700002
.*                                 ENTRY TO BE PROCESSED BY THE SUM. M. 47800002
.*                            &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 47900002
.*                            &PARAM - AN 8 BIT BINARY REPRESENTATION   48000002
.*                                 TO OCCUPY THE 'MASK' FIELD BUT TO BE 48100002
.*                                 INTERPRETED AS AN ARGUMENT OF THE    48200002
.*                                 SPECIAL ROUTINE.                     48300002
.*                            &SPACE - THE NUMBER OF 2BYTE COUNTERS TO  48400002
.*                                 ALLOCATE FOR REQUIRED PROCESSING.    48500002
         GBLC  &CSECT                                                   48600002
         GBLA  &COUNTR                                                  48700002
         LCLA  &ADD                                                     48800002
         DC    AL1(128)                                                 48900002
         DC    BL.8'&PARAM'                                             49000002
         DC    AL2(&ROUTINE-&CSECT)                                     49100002
         DC    AL2(&COUNTR)                                             49200002
&ADD     SETA  1                                                        49300002
         AIF   ('&SPACE' EQ '').NORM                                    49400002
&ADD     SETA  &SPACE                                                   49500002
.NORM    ANOP                                                           49600002
&COUNTR  SETA  &COUNTR+&ADD                                             49700002
         MEND                                                           49800002
         MACRO                                                          49900002
         SUM   &LOGITEM,&MASK                                           50000002
.*                            THIS MACRO GENERATES A NORMAL EDIT ENTRY  50100002
.*                                 FOR PROCESSING BY THE SUMMARY MODULE 50200002
.*                            &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 50300002
.*                            &MASK - BYTE MASK FOR BITS TO BE TESTED.  50400002
.*                                 THIS OPERAND SHOULD BE OMITTED FOR   50500002
.*                                 SINGLE BIT ITEMS IN WHICH CASE THE   50600002
.*                                 MASK WILL BE SET ACCORDING TO THE    50700002
.*                                 OFF BYTE BIT DISPLACEMENT OF THE     50800002
.*                                ITEM AS DEFINED BY THE MACRO 'DSGEN'  50900002
         GBLA  &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000)                51000002
         GBLC  &ITEM(1000),&DSECT                                       51100002
         LCLA  &IBITS,&NDX,&ISHIFT,&M,&BITNBR                           51200002
.LOOP    ANOP                                                           51300002
&NDX     SETA  &NDX+1                                                   51400002
         AIF   ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND                      51500002
         AIF   (&NDX LT &ITEMNBR).LOOP                                  51600002
         MNOTE *,'LOGITEM NOT FOUND'                                    51700002
         MEXIT                                                          51800002
.FOUND   ANOP                                                           51900002
         DC    AL1(0)                                                   52000002
&ISHIFT  SETA  &SHIFT(&NDX)                                             52100002
&IBITS   SETA  &BITS(&NDX)                                              52200002
         AIF   ('&MASK' EQ '').FORM                                     52300002
         DC    B'&MASK'                                                 52400002
         AGO   .ITEM                                                    52500002
.FORM    ANOP                                                           52600002
&BITNBR  SETA  &ISHIFT-7                                                52700002
&BITNBR  SETA  0-&BITNBR                                                52800002
&M       SETA  1                                                        52900002
.LOOP2   ANOP                                                           53000002
         AIF   (&BITNBR EQ 0).GOTIT                                     53100002
&M       SETA  &M*2                                                     53200002
&BITNBR  SETA  &BITNBR-1                                                53300002
         AGO   .LOOP2                                                   53400002
.GOTIT   ANOP                                                           53500002
         DC    AL1(&M)                                                  53600002
.ITEM    DC    AL2(&LOGITEM-&DSECT)                                     53700002
         DC    AL2(&COUNTR)                                             53800002
&COUNTR  SETA  &COUNTR+1                                                53900002
         MEND                                                           54000002
         GBLC  &DSECT,&CSECT                                            54100002
IFCSVOL0 CSECT                                                          54200002
&CSECT   SETC   'IFCSVOL0'                                              54300002
&DSECT   SETC  'M3420'                                                  54400002
M3420    DSECT                                                          54500002
         DSGEN (CLASSRC,8),(SYSREL,8),(SWITCHES,16),                   C54600002
               (SPARES,32)                                              54700002
         DSGEN (DATE,32),(TIME,32)                                      54800002
         DSGEN (DUM2,8),(CPUSER,24),(CPUID,16),(DUM3,16)                54900002
         DSGEN (,264)                                                   55000002
         DSGEN (PRIMCUA,8,0,2),(IORETRY,16),(,16)                       55100002
         DSGEN (VOLID,48),(BLKLENG,16),(,32),(TEMPRDS,8),(TEMPWRTS,8), C55200002
               (SIOCNT,16),(PERMRDS,8),(PERMWRTS,8),(NOISEBLK,8),      C55300002
               (,8),(ERASEGPS,16),(CLNRACTS,16)                         55400002
         DSGEN (SPAR,8),(NOISE,8),(RWVRC,8),(MTELRCR,8)                 55500002
         DSGEN (EDCCRC,8),(ENVCKVRC,8),(OVERRUN,4),(SKEWCHK,4),        C55600002
               (CCOMPARE,4),(WRTTRVRC,4)                                55700002
         DSGEN (PEIDCHK,1),(MASKEXP,6),(PARITY,1),(TRKINERR,8),        C55800002
               (WRTTMCHK,4),(STRDCHK,4),(PARTREC,4),(EXCPAMB,4)         55900002
         DSGEN  (ORDROP,4),(FEEDTHRU,4),(EXP,4),(EARLBGRD,4),          C56000002
               (EARLNDRD,4),(SLBGRD,4),(SLWNDRD,4),(VELRETRY,4),       C56100002
               (EXP2,4),(VELCHNG,4),(EXP3A,4),(EXP3,4),(BACKWARD,8),   ,56200002
               (BUSOCHK,4),(ALUHRDER,4)                                 56300002
         DSGEN (SNB,1,0,23,0,7)                                         56400002
         DSGEN (TUSERIAL,16,EQU,SNB150)                                 56500002
IFCSVOL0 CSECT                                                          56600002
         USING M3420,R2                                                 56700002
         USING *,R9                                                     56800002
         DC    A(ENTRIES)                                               56900002
         DC    A(EDIT)                                                  57000002
REG8     DC    F'0'                                                     57100002
SCSIZE   DC    H'18'                                                    57200002
R2       EQU   2                                                        57300002
R3       EQU   3                                                        57400002
R4       EQU   4                                                        57500002
R5       EQU   5                                                        57600002
R6       EQU   6                                                        57700002
R7       EQU   7                                                        57800002
R9       EQU   9                                                        57900002
R14      EQU   14                                                       58000002
R15      EQU   15                                                       58100002
L0       EQU   0                                                        58200002
L1       EQU   1                                                        58300002
L2       EQU   2                                                        58400002
L3       EQU   3                                                        58500002
L4       EQU   4                                                        58600002
L5       EQU   5                                                        58700002
L6       EQU   6                                                        58800002
L8       EQU   8                                                        59000002
L28      EQU   28                                                       59200002
L73      EQU   73                                                       59300002
DISMOUNT EQU   X'84'                                                    59400002
F0       EQU   X'F0'                                                    59500002
FF       EQU   X'FF'                                                    59600002
*                                                                     * 59700002
* THIS ROUTINE WILL PUT A HIGH AND LOW DATE INTO THE COUNTER AREA.    * 59800002
* THE FIRST TIME IT PUTS THE SAME DATE IN BOTH AREAS.  WITH EACH NEW  * 59900002
* RECORD A COMPARE IS DONE FOR A LOWER AND HIGHER DATE.               * 60000002
*                                                                     * 60100002
SETDATES CLC   L0(L4,R3),ZEROES   IS DATE IN COUNTER AREAS ZEROES       60200002
         ST    R5,SAVE5                SAVE REGISTER                    60300002
         BNE   CHKLO                                                    60400002
         MVC   L0(L4,R3),DATE     MOVE DATE TO LO AREA                  60500002
         MVC   L4(L4,R3),DATE     MOVE DATE TO HI AREA                  60600002
         B     RETURN                                                   60700002
CHKLO    CLC   L0(L4,R3),DATE     IS LOW DATE LOWER THAN RECORD DATE    60800002
         BL    CHKHI              YES CHECK HIGH                        60900002
         MVC   L0(L4,R3),DATE     NO - MOVE IN RECORD DATE              61000002
CHKHI    CLC   L4(L4,R3),DATE     IS HIGH DATE HIGHER THAN RECORD DATE  61100002
         BH    RETURN             YES- RETURN                           61200002
         MVC   L4(L4,R3),DATE     NO- MOVE IN RECORD DATE               61300002
RETURN   BR    R14                RETURN                                61400002
*                                                                     * 61500002
* THIS ROUTINE WILL CHECK THE MODEL BITS IN THE LAST HALF OF BYTE SIX * 61600002
* AND PUT THE EBCDIC VALUE ON THE PRINT BUFFER.                       * 61700002
*        3410 MODEL BITS           3420 MODEL BITS                    * 61800002
*        0000  MODEL 1             0011  MODEL 3                      * 61900002
*        0001  MODEL 2             0100  MODEL 5                      * 62000002
*        0010  MODEL 3             0101  MODEL 7                      * 62100002
*                                  1011  MODEL 4                 S99223 62200002
*                                  1100  MODEL 6                 S99223 62220002
*                                  1101  MODEL 8                 S99223 62240002
*                                                                S99223 62260002
MODEL    TM    SWITCHES+L1,DISMOUNT IS THIS DISMOUNT RECORD      XM9111 62300002
         BCR   4,R14              IF YES NO SENSE INFO           XM9111 62330002
         STM   R6,R7,STOREREG+L4  SAVE REGISTERS                 XM9111 62360002
         SR    R7,R7              CLEAR REGISTER                        62400002
         IC    R7,SNB60           GET THE MODEL BITS                    62500002
         SLL   R7,L28             SHIFT OUT UNNEEDED BITS               62600002
         SRL   R7,L28             MOVE BACK INTO POSITION               62700002
         LA    R6,MODNO(R7)       GET THE ADDRESS OF EBCDIC NUMBER      62800002
         MVC   L0(L1,R3),L0(R6)   MOVE THE DIGIT TO THE PRINT BUFFER    62900002
         LM    R6,R7,STOREREG+L4  GET SAVED REGISTERS                   63000002
         BR    R14                RETURN CONTROL                        63100002
MODNO    DC    X'F1F2F3F3F5F76060606060F4F6F8'                   S99223 63200002
CPUIDENT MVC   L0(L5,R3),CPUSER   MOVE CPU INFO TO SAVE AREA            63300002
         BR    R14                RETURN CONTROL                        63400002
* THE NEXT ROUTINES WILL TAKE THE COUNTERS FROM THE RECORD AND        * 63500002
* ADD THEM TO THE COUNTER AREAS.  HALF BYTE COUNTERS ARE ISOLATED AND * 63600002
* THEM ADDED. DEVICE DEPENDENT COUNTERS ARE ADDED ONLY FOR DISMOUNT   * 63700002
* RECORDS.                                                            * 63800002
*                                                                     * 63900002
DENS16   EQU   X'04'                                                    64000002
NOISERTN SR    R5,R5              CLEAR REGISTER                        64100002
         TM    SNB30,DENS16            IS THIS A 1600 BPI DRIVE         64200002
         BZ    GOON                    IF NOT ADD COUNTER               64300002
         MVI   L0(R3),X'7C'            MOVE IN NOT VALID INDICATOR      64400002
         BR    R14                                                      64500002
GOON     IC    R5,NOISE           GET QUANTITY TO BE ADDED              64600002
ADD      AH    R5,L0(R3)          ADD HALFWORD COUNTER TO IT            64700002
         STH   R5,L0(R3)          STORE SUM BACK IN COUNTER AREA        64800002
         L     R5,SAVE5           RELOAD REGISTER FIVE                  64900002
         BR    R14                RETURN                                65000002
TRDSRTN  TM    SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD           65100002
         BCR   8,R14              NO-DO NOT ADD TO COUNTER              65200002
         SR    R5,R5              CLEAR REGISTER                        65300002
         IC    R5,TEMPRDS         GET NUMBER OF TEMP READ ERRORS        65400002
         B     ADD                GO TO ADD TO COUNTER                  65500002
TWRTSRTN TM    SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD           65600002
         BCR   8,R14              NO-DO NOT ADD TO COUNTER              65700002
         SR    R5,R5              CLEAR REGISTER                        65800002
         IC    R5,TEMPWRTS        GET NUMBER OF TEMPORARY WRITE ERRORS  65900002
         B     ADD                GO TO ADD THEM TO COUNTER             66000002
PRDSRTN  TM    SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD           66100002
         BCR   8,R14              NO-DO NOT ADD TO COUNTER              66200002
         SR    R5,R5              CLEAR REGISTER                        66300002
         IC    R5,PERMRDS         GET NUMBER OF PERM READ ERRORS        66400002
         B     ADD                GO TO ADD TO COUNTER                  66500002
PWRTSRTN TM    SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD           66600002
         BCR   8,R14              NO-DO NOT ADD TO COUNTER              66700002
         SR    R5,R5              CLEAR REGISTER                        66800002
         IC    R5,PERMWRTS        GET NUMBER OF PERMANENT WRITE ERRORS  66900002
         B     ADD                GO TO ADD THEM TO COUNTER             67000002
CLNRRTN  TM    SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD           67100002
         BCR   8,R14              NO-DO NOT ADD TO COUNTER              67200002
         MVC   STOREREG+L2(L2),CLNRACTS GET COUNT FROM RECORD           67300002
         L     R5,STOREREG        PUT IT IN REGISTER                    67350002
         B     ADD                RETURN                                67400002
ERASERTN TM    SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD           67500002
         BCR   8,R14              NO-DO NOT ADD COUNTERS                67600002
         MVC   STOREREG+L2(L2),ERASEGPS GET COUNT FROM RECORD           67700002
         L     R5,STOREREG                                              67750002
         B     ADD                GO TO ADD TO COUNTER                  67800002
SIORTN   STM   R5,R6,STOREREG+4   SAVE REGISTERS                        67900002
         TM    SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD           68000002
         BCR   8,R14              NO-DO NO ADD TO COUNTER               68100002
         MVC   STOREREG+L2(L2),SIOCNT GET THE SIO COUNT FROM THE RECORD 68200002
         L     R5,STOREREG        PUT IT INTO A REGISTER                68280002
         MVC   STOREREG(L4),L0(R3) GET COUNTER ON BOUNDARY              68360002
         L     R6,STOREREG        PUT IT INTO A REGISTER                68440002
         AR    R5,R6              ADD THE COUNTS                        68520002
         ST    R5,STOREREG        PUT COUNTER BACK ON BOUNDARY          68600002
         MVC   L0(L4,R3),STOREREG PUT IT BACK IN COUNTER AREA           68680002
         XC    STOREREG(4),STOREREG     CLEAR WORK AREA         YM8389P 68740002
         LM    R5,R6,STOREREG+4   RELOAD REGISTERS                      68800002
         BR    R14                RETURN                                68900002
STOREREG DC    3F'0'                                                    69000002
SAVE5    DC    F'0'                                                     69100002
ZEROES   DC   4X'00'                                                    69400002
ENTRIES  DS    0F                                                       69500002
         SPECIAL SETDATES,0,SPACE=4                                     69600002
         SPECIAL PRDSRTN,0,SPACE=1                                      69700002
         SPECIAL PWRTSRTN,0,SPACE=1                                     69800002
         SPECIAL TRDSRTN,0,SPACE=1                                      69900002
         SPECIAL TWRTSRTN,0,SPACE=1                                     70000002
         SPECIAL SIORTN,0,SPACE=2                                       70100002
         SPECIAL NOISERTN,0,SPACE=1                                     70200002
         SPECIAL CPUIDENT,0,SPACE=3                                     70300002
         SPECIAL MODEL,0,SPACE=1                                        70400002
         SPECIAL ERASERTN,0,SPACE=1                                     70500002
         SPECIAL CLNRRTN,0,SPACE=1                                      70600002
         DC    X'FF'                                                    70700002
EDIT     DS    0F                                                       70800002
&DSECT   SETC   'CNTRAREA'                                              70900002
&CSECT   SETC  'EDIT'                                                   71000002
         USING *,R9                                                     71100002
         USING CNTRAREA,R2                                              71200002
         DC    A(SUMEDIT)                                               71300002
         DC    CL8'IFCSVOL0'                                            71400002
NINE     DC    F'0'                                                     71500002
LABELPTR DC    F'0'                                                     71600002
CNTRAREA DSECT                                                          71700002
         DS    2H                                                       71800002
         DSGEN (VOLIDA,48),(,96)                                        71900002
         DSGEN (LOWDATE,32),(HIDATE,32)                                 72000002
         DSGEN (PRDSCTR,16),(PWRTSCTR,16),(TRDSCTR,16),(TWRTSCTR,16)    72100002
         DSGEN (SIOCTR,32),(NOISECTR,16),(SERIAL,24),(ID,24),          C72200002
               (TAPEMOD,16)                                             72300002
         DSGEN (ERASECTR,16),(CLNRCTR,16)                               72400002
IFCSVOL0 CSECT                                                          72500002
*                                                                     * 72600002
* THE CONVERT ROUTINES WILL TAKE A COUNTER AND CONVERT IT TO          * 72700002
* PRINTABLE EBCDIC CHARACTERS. THEY ALL CONVERT INTO A DIFFERENT      * 72800002
* NUMBER OF DIGITS.                                                   * 72900002
* CONVERT-3 DIGITS  CONVERT1-4 DIGITS  CONVERT2-5 DIGITS              * 73000002
* CONVERT3-6 DIGITS                                                   * 73100002
*                                                                     * 73200002
*                                                                     * 73300002
CONVERT1 ST    R5,SAVE            SAVE REGISTER                         73400002
         LH    R5,L0(R4)           LOAD COUNTER TO BE CONVERTED         73500002
         CVD   R5,DECAREA          CONVERT THE COUNTER                  73600002
         UNPK  L0(L4,R3),DECAREA(L8) UNPACK AND PLACE IN PRINT BUFFER   73700002
         OI    L3(R3),F0           MAKE LAST DIGIT PRINTABLE            73800002
         L     R5,SAVE            RESTORE REGISTER                      73900002
ADD4     LA    R3,4(R3)           CHANGE PRINT BUFFER POINTER    S99223 73950002
DONOTHNG BR    R14                 RETURN                               74000002
CONVERT2 ST    R5,SAVE            SAVE REGISTER                         74100002
         LH    R5,L0(R4)          GET COUNTER TO BE CONVERTED           74200002
         CVD   R5,DECAREA          CONVERT THE COUNTER                  74300002
         UNPK  L0(L5,R3),DECAREA(L8) UNPACK INTO PRINT BUFFER           74400002
         OI    L4(R3),F0           MAKE LAST DIGIT PRINTABLE            74500002
         L     R5,SAVE            RESTORE REGISTER                      74600002
         LA    R3,6(R3)            CHANGE PRINT BUFFER POINTER   S99223 74650002
         BR    R14                 RETURN                               74700002
CONVERT3 ST    R5,SAVE            SAVE THE REGISTER                     74800002
         MVC   DECAREA(4),L0(R4)   MOVE NUMBER TO INTEGRAL BOUNDARY     74900002
         L     R5,DECAREA          PUT NUMBER IN A REGISTER             75000002
         CVD   R5,DECAREA         CONVERT COUNTER TO DECIMAL            75100002
         UNPK  L0(L6,R3),DECAREA(L8) UNPACK THE COUNTER                 75200002
         OI    L5(R3),F0          MAKE LAST DIGIT PRINTABLE             75300002
         L     R5,SAVE            RESTORE THE REFISTER                  75400002
ADD6     LA    R3,6(R3)           UPDATE PRINT BUFFER PTR       S99223  75450002
         BR    R14                  RETURN                              75500002
MOVEVOL  MVC   L0(L6,R3),L0(R4)   MOVE VOLID TO PRINT BUFFER            75600002
         CLI   TAPEMOD,X'00'      IS TAPE MODEL AVAILABLE        XM9111 75700002
         BNE   PUTMOD             PUT MODEL NBR IN PRINT BUFFER  XM9111 75710002
         MVC   L72(L3,R3),NA      MOVE N/A TO PRINT BUFFER       XM9111 75720002
         B     UPDATE              GO TO PUT OUT DATE            S99223 75730002
L72      EQU   72                                                       75740002
PUTMOD   MVC   L73(L1,R3),TAPEMOD PUT IN TAPE MODEL NBR          XM9111 75750002
UPDATE   LA    R3,12(R3)           CHANGE PRINT BUFFER POINTER   S99223 75800002
         LA    R4,LOWDATE          GET ADDRESS OF LOW DATE       S99223 75850002
*                                                                     * 75900002
* THIS ROUTINE WILL TAKE THE DATES FROM THE HIGH AND LOW DATE ARES    * 76000002
* AND PUT THEM INTO THE PRINT BUFFER IN UNPACKED FORMAT.              * 76100002
*                                                                     * 76200002
GETDATE  UNPK  DECAREA(L5),L1(L3,R4) UNPACK THE DATE                    76300002
         OI    DECAREA+L4,F0       MAKE LAST DIGIT PRINTABLE            76400002
         MVC   L0(L3,R3),DECAREA+L2 MOVE DAY TO PRINT LINE              76500002
         MVC   L4(L2,R3),DECAREA   MOVE YEAR TO PRINT LINE              76600002
         LA    R3,6(R3)            CHANGE PRINT BUFFER POINTER   S99223 76650002
         BR    R14                 RETURN                               76700002
*                                                                     * 76800002
FIRSTIME ST    R7,SAVE                 SAVE REGISTER                    76900002
         TM    FIRST,FF                IS THIS FIRST TIME THRU CODE     77000002
         MVI   FIRST,FF                MOVE FF TO FIRST TIME SWITCH     77100002
         BCR   8,R14                   FIRST TIME GO TO SKIP LABELS     77200002
         LA    R7,CNTLAB               GET ADDRESS TO UPDATE            77300002
         ST    R7,LABELPTR             STORE ADDRESS                    77400002
         LA    R7,CNTENT-4             GET ADDRESS                      77500002
         ST    R7,NINE                 STORE THE POINTER                77600002
         L     R7,SAVE                 RESTORE SAVED REGISTER           77700002
         SR    R15,R15                                                  77800002
         BR    R14                                                      77900002
CHKNRZI  CLI   L0(R4),X'7C'            IS THIS A PE DRIVE               78000002
         BNE   CONVERT1                NO IT IS NRZI                    78100002
PUTNA    MVC   L1(L3,R3),NA            MOVE N/A TO PRINT BUFFER         78200002
         LA    R3,4(R3)            CHANGE PRINT BUFFER POINTER   S99223 78250002
         BR    R14                                                      78300002
NA       DC    C'N/A'                                                   78400002
FIRST    DC    X'00'                                                    78500002
*                                                                     * 78600002
*                                                                     * 78700002
*                                                                     * 78800002
*                                                                     * 78900002
ADD3     LA    R3,3(R3)            CHANGE PRINT BUFFER POINTER   S99223 78920002
         BR    R14                 RETURN                        S99223 78940002
ADD14    LA    R3,14(R3)           CHANGE PRINT BUFFER POINTER   S99223 78960002
         BR    R14                 RETURN                        S99223 78980002
*                                                                     * 79000002
*                                                                     * 79100002
*                                                                     * 79200002
DECAREA  DC    D'0'                                                     79300002
SAVE     DC    F'0'                                                     79400002
SUMEDIT  DS    0F                                                       79500002
         DC    X'00010001'                                              79600002
         DC    X'00010001'                                              79700002
         DC    A(LABELS)                                                79800002
         DC    H'0'                                                     79900002
         LINE  ,,SKIP=1                                                 80000002
         ROUTINE VOLIDA,FIRSTIME                                        80100002
         LABEL ''                                                       80200002
         DC    X'01000B8B00'                                            80300002
         LABEL ''                                                       80400002
         LINE  ,(35,),SKIP=1                                            80500002
         ROUTINE VOLIDA,DONOTHNG                                        80600002
         LABEL 'SUMMARY--MAGNETIC TAPE ERROR STATISTICS BY VOLUME'      80700002
         LINE  ,(1,53)                                                  80800002
         ROUTINE VOLIDA,DONOTHNG                                        80900002
         LABEL 'VOLUME  DATE-FROM-  -TO-  --PERM--  --TEMP--  SIO',    C81000002
               'NRZI  --- CPU ---  MOD     ERASE  CLEANER'              81100002
         LINE  ,(1,53)                                                  81200002
         ROUTINE VOLIDA,DONOTHNG                                        81300002
CNTLAB   LABEL 'SERIAL      DAY YR DAY YR RDS  WRTS RDS  WRTS COUNT',  C81400002
               'NOISE  ID  NUMBER  NO      GAPS   ACTIONS'              81500002
CNTENT   LINE  (1,1),,SKIP=2                                     S99223 81600002
         ROUTINE VOLIDA,MOVEVOL                                  S99223 81900002
         ROUTINE HIDATE,GETDATE                                  S99223 82200002
         ROUTINE PRDSCTR,CONVERT1                                       82500002
         ROUTINE PWRTSCTR,CONVERT1                                      82600002
         ROUTINE TRDSCTR,CONVERT1                                       82700002
         ROUTINE TWRTSCTR,CONVERT1                                      82800002
         ROUTINE SIOCTR,CONVERT3                                        82900002
         ROUTINE NOISECTR,CHKNRZI                                S99223 83000002
         ROUTINE ID,DONOTHNG                                     S99223 83100002
         HEX   ID,0,2B                                           S99223 83200002
         ROUTINE ID,ADD3                                         S99223 83300002
         HEX   SERIAL,0,3B                                       S99223 83400002
         ROUTINE ID,ADD14                                        S99223 83500002
         ROUTINE ERASECTR,CONVERT2                               S99223 83600002
         ROUTINE CLNRCTR,CONVERT2                                S99223 83700002
         LABEL ''                                                       83800002
         DC    X'FF'                                                    83900002
         DC    6X'00'                                                   84000002
         DC    C'$'                                                     84100002
LABELS   EQU   *                                                        84200002
         LSTART                                                         84300002
         END                                                            84400002
