         TITLE 'IFCEVOL0  MES DATA EDIT BY VOLUME'                      00100042
         MACRO                                                          00200042
&NAME    DSGEN                                                          00300042
.*                            THIS MACRO GENERATES ONE DSECT WORD       00400042
.*                                 FORMATTED FOR THE SUBJECT LOG RECORD 00500042
.*                                 EACH OPERAND HAS TWO SUB LISTS. THE  00600042
.*                                 FIRST IS THE NAME OF THE LOG ITEM    00700042
.*                                 WHILE THE SECOND IS THE # OF BITS TO 00800042
.*                                 ALLOCATE FOR THIS ITEM. ITEMS MUST   00900042
.*                                 BE DEFINED CONTIGUOUSLY WITHOUT GAPS 01000042
.*                                 UNUSED BIT GROUPS MUST BE GIVEN      01100042
.*                                 DUMMY NAMES. THE NAMES PROVIDED FOR  01200042
.*                                 THE LOG ITEMS MAY THEN BE USED IN    01300042
.*                                 THE CONVERSION MACRO INSTRUCTIONS.   01400042
         GBLC &ITEM(1000)                                               01500042
         GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000)                         01600042
         LCLB  &ONLY1,&CTIND                                            01700042
         LCLA  &START1,&START2,&END1,&END2                              01800042
         LCLC  &SYMBOL,&EQUSYM                                          01900042
         LCLA  &OP,&COUNT,&BYTE,&EQUCNT                                 02000042
         ACTR  100000                                                   02100042
.START   AIF   (N'&SYSLIST(&OP+1) LT 3).LOOP                            02200042
         AIF   ('&SYSLIST(&OP+1,3)' EQ 'EQU').LOOP     TEST FOR EQU     02300042
  AIF   ('&SYSLIST(&OP+1,3)' EQ '' AND '&SYSLIST(&OP+1,4)' EQ '').ERR1  02400042
  AIF   ('&SYSLIST(&OP+1,3)' EQ '' OR '&SYSLIST(&OP+1,4)' EQ '').ERR1   02500042
         AIF   ('&SYSLIST(&OP+1,3)' GT '&SYSLIST(&OP+1,4)').ERR3        02600042
&START1  SETA  &SYSLIST(&OP+1,3)        GET START COUNT OF 1            02700042
&START2  SETA  &SYSLIST(&OP+1,4)        GET FIRST END COUNT             02800042
         AGO   .SET2A                   BRANCH AROUND                   02900042
.ERR1    MNOTE '**FIRST SYMBOL CONCATENATION INCOMPLETE**'              03000042
         MEXIT                                                          03100042
.SET2A   AIF   ('&SYSLIST(&OP+1,5)' EQ ''AND '&SYSLIST(&OP+1,6)' EQ '' X03200042
               ).SET2                   TEST FOR NO SECOND              03300042
  AIF   ('&SYSLIST(&OP+1,5)' EQ '' OR '&SYSLIST(&OP+1,6)' EQ '').ERR2   03400042
         AIF   ('&SYSLIST(&OP+1,5)' GT '&SYSLIST(&OP+1,6)').ERR3        03500042
&END1    SETA  &SYSLIST(&OP+1,5)        GET START COUNT OF 2            03600042
&END2    SETA  &SYSLIST(&OP+1,6)        GET END COUNT OF 2              03700042
         AGO   .LOOP                                                    03800042
.SET2    ANOP                                                           03900042
&ONLY1   SETB  1                        INDICATE ONLY ONE CONCATENATION 04000042
         AGO   .LOOP                                                    04100042
.ERR2    MNOTE '**SECOND SYMBOL CONCATENATION INCOMPLETE**'             04200042
         MEXIT                                                          04300042
.ERR3    MNOTE '**START GREATER THAN END CONCATENATION**'               04400042
         MEXIT                                                          04500042
.LOOP    ANOP                                                           04600042
&OP      SETA  &OP+1                                                    04700042
         AIF   (&OP GT N'&SYSLIST).DONE      TEST IF ALL DONE           04800042
&ITEMNBR SETA  &ITEMNBR+1                                               04900042
         AIF   ('&SYSLIST(&OP,2)' NE '').OK1                            05000042
         MNOTE '**NULL BIT COUNT FIELD**'                               05100042
         MEXIT                                                          05200042
.OK1     ANOP                                                           05300042
&SYMBOL  SETC  '&SYSLIST(&OP,1)'                                        05400042
         AIF   ('&SYMBOL' NE '').OK                                     05500042
*              *****     LOG ITEM SYMBOL NOT PROVIDED     *****         05600042
         AIF   ('&SYSLIST(&OP,3)' NE 'EQU').CNT                         05700042
         AGO   .START                   GET NEXT                        05800042
.OK      AIF   (N'&SYSLIST(&OP) LT 3).NO3    TEST FOR OLD FORMAT        05900042
         AIF   ('&SYSLIST(&OP,3)' EQ 'EQU').EQU   TEST FOR EQU          06000042
         AIF   (&ONLY1).OK2             TEST FOR ONLY ONE CONCAT        06100042
&SYMBOL  SETC  '&SYMBOL.&START1.&END1'       GET 1 AND 2 CONCAT         06200042
         AGO   .NO3                     BRANCH AROUND                   06300042
.OK2     ANOP                                                           06400042
&SYMBOL  SETC  '&SYMBOL.&START1'        GET 1 CONCATENATED              06500042
.NO3     ANOP                                                           06600042
&SYMBOL  EQU   *+&BYTE                                                  06700042
&ITEM(&ITEMNBR) SETC '&SYMBOL'          GET LABEL IN GLOBAL             06800042
&BITS(&ITEMNBR) SETA &SYSLIST(&OP,2)                                    06900042
&SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8                                    07000042
.CNT     ANOP                                                           07100042
&CTIND   SETB  1                        SET COUNT INDICATOR             07200042
&COUNT   SETA  &COUNT+&SYSLIST(&OP,2)                                   07300042
&BYTE    SETA  &COUNT/8                                                 07400042
         AIF   (N'&SYSLIST(&OP) LT 3).START  TEST FOR OLD FORMAT        07500042
         AIF   (&ONLY1).TSTST           TEST FOR ONLY ONE CONCAT        07600042
         AIF   (&END1 EQ &END2).TSTST   TEST FOR SECOND END             07700042
&END1    SETA  &END1+1                  INCREMENT COUNT                 07800042
&OP      SETA  &OP-1                    DECREMENT INCREMENT             07900042
         AGO   .LOOP                    GENERATE NEXT                   08000042
.TSTST   ANOP                                                           08100042
         AIF   (&START1 EQ &START2).LPDONE   TEST FOR END               08200042
         AIF   (&ONLY1).NSET1           TEST FOR ONLY ONE CONCAT        08300042
&END1    SETA  &SYSLIST(&OP,5)          RE-INIT SECOND START COUNT      08400042
.NSET1   ANOP                                                           08500042
&OP      SETA  &OP-1                    DECREMENT INDEX                 08600042
&START1  SETA  &START1+1                INCREMENT FIRST COUNT           08700042
         AGO   .LOOP                    GO DO NEXT                      08800042
.LPDONE  ANOP                                                           08900042
&ONLY1   SETB  0                        CLEAR INDICATOR                 09000042
         AGO   .START                   GO TEST FOR MORE SUB-LISTS      09100042
.DONE    AIF   (&COUNT-&COUNT/8*8 NE 0).ERR  TEST FOR MULTIPLE OF EIGHT 09200042
         AIF   (&CTIND EQ 0).END        NO DS IF NO COUNT               09300042
&COUNT   SETA  &COUNT/8                 GET NUMBER OF BYTES             09400042
&NAME    DS    &COUNT.C                                                 09500042
.END     MEXIT                                                          09600042
.ERR     MNOTE '**BIT COUNT FLDS DO NOT TOTAL MULTIPLE OF 8**'          09700042
         MEXIT                                                          09800042
.EQU     AIF   ('&SYSLIST(&OP,4)' NE '').EQU1     TEST FOR NULL LABEL   09900042
.ERR4    MNOTE '**EQU OPERAND OMITTED OR NOT FOUND**'                   10000042
         MEXIT                                                          10100042
.EQU1    AIF   (&SYSLIST(&OP,2) LT 16).EQU2  COUNT OVER FIFTEEN         10200042
*****               THE FOLLOWING STATEMENT                *****        10300042
*****     NUMBER OF BITS EXCEED 15 - DO NOT USE AS BIN     *****        10400042
.EQU2    ANOP                                                           10500042
&EQUCNT  SETA  0                        CLEAR COUNTER                   10600042
&EQUSYM  SETC  '&SYSLIST(&OP,4)'        GET EQU OPERAND                 10700042
.EQULOP  ANOP                                                           10800042
&EQUCNT  SETA  &EQUCNT+1                INCREMENT INDEX                 10900042
         AIF   ('&ITEM(&EQUCNT)' EQ '&EQUSYM').EQUOUT  LABEL FOUND?     11000042
         AIF   (&EQUCNT EQ &ITEMNBR).ERR3    ALL TESTED?                11100042
         AGO   .EQULOP                  NO-GET NEXT                     11200042
.EQUOUT  ANOP                                                           11300042
&ITEM(&ITEMNBR) SETC '&SYMBOL'          GET LABEL NAME                  11400042
&BITS(&ITEMNBR) SETA &SYSLIST(&OP,2)    GET NUMBER OF BITS              11500042
&SHIFT(&ITEMNBR) SETA &SHIFT(&EQUCNT)   GET SHIFT COUNT                 11600042
&SYMBOL  EQU   &EQUSYM                  THIS SYMBOL EQUATED             11700042
         AGO   .START                   RETURN FOR NEXT                 11800042
         MEND                                                           11900042
*  LINE MACRO     LINE MACRO     LINE MACRO     LINE MACRO            * 12000042
         SPACE 2                                                        12100042
         MACRO                                                          12200042
&NAME    LINE  &DATA,&LABEL,&SKIP=                                      12300042
.*                            THIS MACRO ESTABLISHES THE MARGINS OR     12400042
.*                                 COLUMN SETTINGS FOR EACH LINE. IT    12500042
.*                                 GENERATES NECESSARY CARRIAGE CONTROL 12600042
.*                                 ENTRIES. LASTLY IT DETERMINES THE    12700042
.*                                 NUMBER OF ENTRIES ASSOCIATED WITH    12800042
.*                                 THE PREVIOUS LINE AND STORES THAT #  12900042
.*                                 INTO THE APPROPRIATE BYTE.           13000042
.*                            &DATA(1) - CHARACTER POSITION TO BEGIN    13100042
.*                                 DATA.                                13200042
.*                            &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 13300042
.*                                 DATA COLUMN STARTING CHARACTERS.     13400042
.*                            &LABEL(1) - CHAR. POS. TO BEGIN LABELS.   13500042
.*                            &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 13600042
.*                                 STARTING CHARACTERS.                 13700042
.*                            &SKIP= - # OF LINES TO ADVANCE CARRIAGE   13800042
.*                                 TO BEGIN NEXT PRINTED LINE.          13900042
.*                            NEW ENTRIES ARE GENERATED ONLY WHEN       14000042
.*                                 NECESSARY. OMISSION OF ITEMS MEANS   14100042
.*                                 THEY HAVE NOT CHANGED SINCE PREVIOUS 14200042
.*                                 SETTINGS. A LINE MACRO IS REQUIRED   14300042
.*                                 FOR EACH PRINTED LINE. IF NO SETTING 14400042
.*                                 CHANGES ARE REQUIRED ALL OPERANDS    14500042
.*                                 ARE OMITTED IN WHICH CASE ONLY THE   14600042
.*                                 # OF ENTRIES FOR THE PREVIOUS LINE   14700042
.*                                 IS COMPUTED. THIS MACRO MUST BE THE  14800042
.*                                 FIRST MACRO INSTRUCTION ISSUED FOR   14900042
.*                                 THE SUBJECT LINE                     15000042
         GBLA  &DB,&DT,&LB,&LT,&NRENTS                                  15100042
         GBLA  &LASTCC,&INITIAL                                         15200042
         GBLC  &NRENTSX                                                 15300042
         GBLC  &CARRCON                                                 15400042
         GBLB  &TEST                                                    15500042
         LCLA  &S                                                       15600042
&NAME    DS    0C                                                       15700042
         AIF   (&INITIAL EQ 0).FIRSTLN                                  15800042
         LINEND                                                         15900042
         AGO   .NTFIRST                                                 16000042
.FIRSTLN ANOP                                                           16100042
&NRENTSX SETC  'N&SYSNDX'                                               16200042
&INITIAL SETA  1                                                        16300042
N&SYSNDX EQU   *                                                        16400042
.NTFIRST ANOP                                                           16500042
         DC    AL1(0)                                                   16600042
         AIF   ('&DATA(1)' EQ '').CKDTABS                               16700042
         AIF   (&DATA(1) EQ &DB).CKDTABS                                16800042
&DB      SETA  &DATA(1)                                                 16900042
         AGO   .AA                                                      17000042
.CKDTABS AIF   ('&DATA(2)' EQ '').NCDATA                                17100042
         AIF   (&DATA(2) EQ &DT).NCDATA                                 17200042
         AGO   .CC                                                      17300042
.AA      AIF   ('&DATA(2)' EQ '').BB                                    17400042
         AIF   (&DATA(2) EQ &DT).BB                                     17500042
.CC      ANOP                                                           17600042
&DT      SETA  &DATA(2)                                                 17700042
.BB      DC    XL2'FFFE'                                                17800042
         DC    FL1'&DB'                                                 17900042
         DC    FL1'&DT'                                                 18000042
&NRENTS  SETA  &NRENTS+1                                                18100042
.NCDATA  ANOP                                                           18200042
         AIF   ('&LABEL(1)' EQ '').CKLTABS                              18300042
         AIF   (&LABEL(1) EQ &LB).CKLTABS                               18400042
&LB      SETA  &LABEL(1)                                                18500042
         AGO   .AAA                                                     18600042
.CKLTABS AIF   ('&LABEL(2)' EQ '').NCLABEL                              18700042
         AIF   (&LABEL(2) EQ &LT).NCLABEL                               18800042
         AGO   .CCC                                                     18900042
.AAA     AIF   ('&LABEL(2)' EQ '').BBB                                  19000042
         AIF   (&LABEL(2) EQ &LT).BBB                                   19100042
.CCC     ANOP                                                           19200042
&LT      SETA  &LABEL(2)                                                19300042
.BBB     DC    XL2'FFFF'                                                19400042
         DC    FL1'&LB'                                                 19500042
         DC    FL1'&LT'                                                 19600042
&NRENTS  SETA  &NRENTS+1                                                19700042
.NCLABEL ANOP                                                           19800042
         AIF   ('&SKIP' NE '').CONT                                     19900042
         AIF   (&TEST EQ 0).NOCHANG                                     20000042
&S       SETA  &LASTCC                                                  20100042
         AGO   .DEFAULT                                                 20200042
.CONT    ANOP                                                           20300042
         AIF   (&TEST EQ 0).AB                                          20400042
&S       SETA  &SKIP                                                    20500042
.DEFAULT ANOP                                                           20600042
         ORG   &CARRCON+3                                               20700042
         DC    AL.3(0),AL.2(&S),AL.3(1)                                 20800042
         ORG                                                            20900042
&LASTCC  SETA  &S                                                       21000042
&TEST    SETB  0                                                        21100042
         AGO   .DD                                                      21200042
.AB      AIF   (&SKIP EQ &LASTCC).NOCHANG                               21300042
A&SYSNDX DC    XL2'FFFB'                                                21400042
         DC    AL.3(0),AL.2(&SKIP),AL.3(1)                              21500042
         DC    FL1'9'                                                   21600042
&LASTCC  SETA  &SKIP                                                    21700042
&TEST    SETB  1                                                        21800042
&CARRCON SETC  'A&SYSNDX'                                               21900042
&NRENTS  SETA  &NRENTS+1                                                22000042
.DD      ANOP                                                           22100042
.NOCHANG ANOP                                                           22200042
         MEND                                                           22300042
         EJECT                                                          22400042
*  BIN MACRO     BIN MACRO     BIN MACRO     BIN MACRO     BIN MACRO  * 22500042
         SPACE 2                                                        22600042
         MACRO                                                          22700042
         BIN   &LOGITEM,&SKIP$OR                                        22800042
.*                                 &LOGITEM - NAME OF ITEM IN LOG       22900042
.*                                      RECORD DSECT                    23000042
.*                                 &SKIP$OR - NBR OF SPACES TO SKIP ON  23100042
.*                                 MULTIPLE PRINT OR NBR OF SPACES      23200042
.*                                      TO BACK UP FROM COLUMN FOR      23300042
.*                                      START OF PRINTING. THE LETTER   23400042
.*                                      B PRECEEDS THE NUMBER (B5) IF   23500042
.*                                      THE LATTER IS DESIRED. OMISSION 23600042
.*                                      OF THIS OPERAND FORCES OPTION 2 23700042
.*                                      WITH BACKUP SPACING EQUAL TO    23800042
.*                                 THE NUMBER OF BITS IN THE ITEM       23900042
.*                                 DEFINITION (VIA MACRO 'DSGEN').      24000042
.*                            A LIMIT OF 15 BITS IS IMPOSED FOR THE     24100042
.*                                 TOTAL NUMBER OF BITS TO PRINT.       24200042
         GBLC &ITEM(1000)                                               24300042
         GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS                 24400042
         GBLC  &DSECT                                                   24500042
         LCLB  &B                                                       24600042
         LCLA  &IBITS,&NDX,&ISHIFT,&K                                   24700042
         LCLA  &TEMP,&T                                                 24800042
         LCLC  &S                                                       24900042
.LOOP    ANOP                                                           25000042
&NDX     SETA  &NDX+1                                                   25100042
         AIF   ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND                      25200042
         AIF   (&NDX LT &ITEMNBR).LOOP                                  25300042
         MNOTE *,'YOU BLEW IT'                                          25400042
         ROUTINE DUM,SKIPPER                                            25500042
         MEXIT                                                          25600042
.FOUND   ANOP                                                           25700042
&ISHIFT  SETA  &SHIFT(&NDX)                                             25800042
&IBITS   SETA  &BITS(&NDX)                                              25900042
&T       SETA  &IBITS-1                                                 26000042
&B       SETB  0                                                        26100042
         AIF   ('&SKIP$OR' EQ '').BACKUP                                26200042
&K       SETA  K'&SKIP$OR                                               26300042
&B       SETB  ('&SKIP$OR'(1,1) EQ 'B')                                 26400042
&S       SETC  '&SKIP$OR'(&B+1,&K-&B)                                   26500042
&T       SETA  &S                                                       26600042
.BACKUP  ANOP                                                           26700042
&NRENTS  SETA  &NRENTS+1                                                26800042
&TEMP    SETA  &ISHIFT                                                  26900042
A&SYSNDX DC    AL.12(&LOGITEM-&DSECT),XL.4'&TEMP'                       27000042
         AIF (&IBITS EQ 1 AND &B EQ 0).OUT                              27100042
         ORG   A&SYSNDX                                                 27200042
&B       SETB  1                                                        27300042
         DC    AL.12(&LOGITEM-&DSECT),XL.4'C'                           27400042
         DC    BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT'             27500042
.OUT     ANOP                                                           27600042
         MEND                                                           27700042
         EJECT                                                          27800042
*  HEX MACRO     HEX MACRO     HEX MACRO    HEXN MACRO     HEX MACRO  * 27900042
         SPACE 2                                                        28000042
         MACRO                                                          28100042
         HEX   &LOGITEM,&SKIP$OR,&BYTES                                 28200042
.*                            THIS MACRO FACILITATES GENERATION OF THE  28300042
.*                                 TABLE ENTRIES SPECIFYING HEX TYPE    28400042
.*                                 CONVERSIONS.                         28500042
.*                            &LOGITEM - NAME OF DATA ITEM TO BE        28600042
.*                                 CONVERTED                            28700042
.*                            &SKIP$OR - NUMBER OF SPACES TO SKIP ON    28800042
.*                                 MULTIPLE PRINT OR NBR OF SPACES TO   28900042
.*                                 BACK UP FROM COLUMN FOR START OF     29000042
.*                                 PRINTING. THE LETTER B PRECEEDS THE  29100042
.*                                 NUMBER (B8) IF THE LATTER OPTION IS  29200042
.*                                 DESIRED. OMISSION OF THIS OPERAND    29300042
.*                                 FORCES OPTION 2 WITH BACKUP SPACING  29400042
.*                                 EQUAL TO THE NUMBER OF BYTES SPECI-  29500042
.*                                 FIED BY THE NEXT OPERAND (TWICE THIS 29600042
.*                                 NUMBER IF SUFFIX IS EXPLICITLY OR    29700042
.*                                 IMPLICITLY B).                       29800042
.*                            &BYTES - NUMBER OF TOTAL INPUT BYTES TO   29900042
.*                                 PROCESS. THIS NUMBER IS SUFFIXED     30000042
.*                                 WITH AN L,R, OR B TO STIPULATE       30100042
.*                                 PRINTING OF THE LEFT HALF, RIGHT     30200042
.*                                 HALF, OR BOTH HALVES OF THE BYTE     30300042
.*                                 RESPECTIVELY. OMISSION OF THIS       30400042
.*                                 OPERAND DEFAULTS TO B WITH THE NUM-  30500042
.*                                 BER OF BYTES EQUAL TO THE ITEM LNGTH 30600042
.*                            A NEW ENTRY IS GENERATED ONLY WHEN NECES- 30700042
.*                                 SARY. THIS MACRO MUST BE THE FIRST   30800042
.*                                 MACRO INSTRUCTION ISSUED FOR THE     30900042
.*                                 SUBJECT LINE(S).                     31000042
         GBLC &ITEM(1000),&DSECT                                        31100042
         GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS                 31200042
         LCLB  &B                                                       31300042
         LCLA  &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP                  31400042
         LCLC  &S,&LETTER                                               31500042
.LOOP    ANOP                                                           31600042
&NDX     SETA  &NDX+1                                                   31700042
         AIF   ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND                      31800042
         AIF   (&NDX LT &ITEMNBR).LOOP                                  31900042
         MNOTE *,'LOG ITEM NOT DEFINED'                                 32000042
         MEXIT                                                          32100042
.FOUND   ANOP                                                           32200042
&ISHIFT  SETA  &SHIFT(&NDX)                                             32300042
&IBITS   SETA  &BITS(&NDX)                                              32400042
&CODE    SETA  1                                                        32500042
&K       SETA  K'&BYTES                                                 32600042
         AIF   (&IBITS-(&IBITS/4)*4 EQ 0).OK                            32700042
         MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL'   32800042
         MEXIT                                                          32900042
.OK      AIF   ('&BYTES' EQ '').USEDEFN                                 33000042
&LETTER  SETC  '&BYTES'(&K,1)                                           33100042
&S       SETC  '&BYTES'(1,&K-1)                                         33200042
&BYTESP  SETA  &S                                                       33300042
         AIF   ('&LETTER' EQ 'B').BOTH                                  33400042
         AIF   (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2                       33500042
.ERR     MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY'            33600042
         MEXIT                                                          33700042
.USEDEFN ANOP                                                           33800042
&BYTESP  SETA  &IBITS/8                                                 33900042
.BOTH    AIF   (&ISHIFT NE 0).ERR                                       34000042
&CODE    SETA  3                                                        34100042
&T       SETA  &BYTESP*2-1                                              34200042
&S       SETC  '&T'                                                     34300042
.OK2     AIF   (&ISHIFT EQ 0).L                                         34400042
&CODE    SETA  2                                                        34500042
.L       ANOP                                                           34600042
&B       SETB  1                                                        34700042
         AIF   ('&SKIP$OR' EQ '').BACKUP                                34800042
&K       SETA  K'&SKIP$OR                                               34900042
&B       SETB  ('&SKIP$OR'(1,1) EQ 'B')                                 35000042
&S       SETC  '&SKIP$OR'(&B+1,&K-&B)                                   35100042
.BACKUP  ANOP                                                           35200042
&NRENTS  SETA  &NRENTS+1                                                35300042
         DC    AL.12(&LOGITEM-&DSECT),XL.4'A'                           35400042
         DC    BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE'              35500042
.OUT     ANOP                                                           35600042
         MEND                                                           35700042
         SPACE 2                                                        35800042
*  ROUTINE MACRO     ROUTINE MACRO     ROUTINE MACRO     ROUTINE MACRO* 35900042
         SPACE 2                                                        36000042
         MACRO                                                          36100042
&NAME    ROUTINE &LOGITEM,&RNAME                                        36200042
         GBLC  &DSECT,&CSECT                                            36300042
         GBLC  &ITEM(1000)                                              36400042
         GBLA  &SHIFT(1000),&ITEMNBR                                    36500042
         GBLA  &NRENTS                                                  36600042
         LCLA  &ISHIFT,&NDX                                             36700042
.LOOP    ANOP                                                           36800042
&NDX     SETA  &NDX+1                                                   36900042
         AIF   ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND                      37000042
         AIF   (&NDX LT &ITEMNBR).LOOP                                  37100042
         MNOTE *,'LOG ITEM NOT DEFINED'                                 37200042
         MEXIT                                                          37300042
.FOUND   ANOP                                                           37400042
&ISHIFT  SETA  &SHIFT(&NDX)                                             37500042
&NAME    DC    AL.12(&LOGITEM-&DSECT),XL.4'D'                           37600042
         DC    AL.4(&ISHIFT),AL.12(&RNAME-&CSECT)                       37700042
&NRENTS  SETA  &NRENTS+1                                                37800042
         MEND                                                           37900042
         EJECT                                                          38000042
*  LABEL MACRO     LABEL MACRO     LABEL MACRO     LABEL MACRO        * 38100042
         SPACE 2                                                        38200042
         MACRO                                                          38300042
&NAME    LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6,        C38400042
               &LABEL7,&LABEL8                                          38500042
.*                            THIS MACRO ALLOWS UP TO ACHT LABELS TO    38600042
.*                                 BE SPECIFIED FOR A GIVEN LINE. THE   38700042
.*                                 LABELS SHOULD BE ENCLOSED IN QUOTA-  38800042
.*                                 TION MARKS. THE COLUMN AND LINE END  38900042
.*                                 CONTROLS WILL BE INSERTED BY THE     39000042
.*                                 MACRO. OMITTED OPERANDS MEAN NO      39100042
.*                                 LABEL REQUIRED FOR RESPECTIVE        39200042
.*                                 COLUMN. THIS MACRO WILL ALSO ALERT   39300042
.*                                 THE PROGRAMMER TO EXACTLY WHERE THE  39400042
.*                                 TABLE MUST BE BROKEN IF NECESSARY    39500042
.*                                 TO AVOID EXCEEDING THE MAXIMUM LIMIT 39600042
         GBLC &LABELS(2000)                                             39700042
         GBLC  &LBL(100)                                                39800042
         GBLA  &LBLCTR(100)                                             39900042
         GBLA  &LABELNR                                                 40000042
         GBLA  &NRENTS,&LPTR                                            40100042
         LCLC  &MARGIN,&TACK                                            40200042
         LCLC  &TEXT                                                    40300042
         LCLA  &OP,&K,&START,&NRCHAR,&REMAIN                            40400042
&MARGIN  SETC  '*'                                                      40500042
         AIF   ('&NAME' EQ '').LOOPOUT                                  40600042
&LPTR    SETA  &LPTR+1                                                  40700042
&LBL(&LPTR) SETC '&NAME'                                                40800042
&LBLCTR(&LPTR) SETA &LABELNR+1                                          40900042
.LOOPOUT ANOP                                                           41000042
&OP      SETA  &OP+1                                                    41100042
&K       SETA  K'&SYSLIST(&OP)                                          41200042
         AIF (&K GE 2).NORM                                             41300042
&K       SETA  2                                                        41400042
.NORM    ANOP                                                           41500042
&START   SETA  2                                                        41600042
         AIF (&OP LT N'&SYSLIST).NOTLAST                                41700042
&MARGIN  SETC  '$'                                                      41800042
.NOTLAST ANOP                                                           41900042
&NRCHAR  SETA  8                                                        42000042
&TACK    SETC  ''                                                       42100042
.LOOPIN  ANOP                                                           42200042
&REMAIN  SETA  &K-&START                                                42300042
         AIF (&REMAIN GE 8).MORE                                        42400042
&TACK    SETC  '&MARGIN'                                                42500042
&NRCHAR  SETA  &REMAIN                                                  42600042
.MORE    ANOP                                                           42700042
&TEXT    SETC  ''                                                       42800042
         AIF (&REMAIN EQ 0).ENDTEXT                                     42900042
&TEXT    SETC  '&SYSLIST(&OP)'(&START,&NRCHAR)                          43000042
.ENDTEXT ANOP                                                           43100042
&LABELNR SETA  &LABELNR+1                                               43200042
&LABELS(&LABELNR) SETC '&TEXT'.'&TACK'                                  43300042
&START   SETA  &START+8                                                 43400042
         AIF ('&TACK' EQ '').LOOPIN                                     43500042
         AIF ('&TACK' EQ '*').LOOPOUT                                   43600042
         MEND                                                           43700042
         SPACE 2                                                        43800042
         MACRO                                                          43900042
         LSTART                                                         44000042
.*                            THIS MACRO IS ISSUED WHEN THE LABEL AREA  44100042
.*                                 OF THE TABLE IS TO BEGIN.            44200042
         GBLC &LABELS(2000)                                             44300042
         GBLA  &LABELNR                                                 44400042
         GBLC  &LBL(100)                                                44500042
         GBLA  &LBLCTR(100)                                             44600042
         LCLA  &NDX,&CTR                                                44700042
         LINEND                                                         44800042
&CTR     SETA  1                                                        44900042
.LOOP    ANOP                                                           45000042
&NDX     SETA  &NDX+1                                                   45100042
         AIF   (&LBLCTR(&CTR) NE &NDX).NOLBL                            45200042
&LBL(&CTR) DC  C'&LABELS(&NDX)'                                         45300042
&CTR     SETA  &CTR+1                                                   45400042
         AGO   .LOOPCTL                                                 45500042
.NOLBL   ANOP                                                           45600042
         DC    C'&LABELS(&NDX)'                                         45700042
.LOOPCTL AIF   (&NDX LT &LABELNR).LOOP                                  45800042
         MEND                                                           45900042
         SPACE 2                                                        46000042
         MACRO                                                          46100042
         LINEND                                                         46200042
.*                            THIS MACRO IS USED ONLY BY THE LINE       46300042
.*                                 MACRO TO SET THE NUMBER OF ENTRIES   46400042
.*                                 ASSOCIATED WITH EACH LINE.           46500042
         GBLA  &NRENTS                                                  46600042
         GBLC &NRENTSX                                                  46700042
         ORG   &NRENTSX                                                 46800042
         DC    FL1'&NRENTS'                                             46900042
         ORG                                                            47000042
&NRENTS  SETA  0                                                        47100042
B&SYSNDX EQU   *                                                        47200042
&NRENTSX SETC  'B&SYSNDX'                                               47300042
         MEND                                                           47400042
         GBLC  &DSECT,&CSECT                                            47500042
IFCEVOL0 CSECT                                                          47600042
&CSECT   SETC  'IFCEVOL0'                                               47700042
&DSECT   SETC  'M3420'                                                  47800042
M3420    DSECT                                                          47900042
         DSGEN (CLASSRC,8),(SYSREL,8),(SWITCHES,16),                   C48000042
               (SPARES,32)                                              48100042
         DSGEN (DUM1,8),(YEAR,8),(DAY,16),(TIME,32)                     48200042
         DSGEN (DUM2,8),(CPUSER,24),(CPUID,16),(DUM3,16)                48300042
         DSGEN (JOBNAME,64),(,200)                                      48400042
         DSGEN (PRIMCUA,24),(IORETRY,16),(SNSCNT,16)                    48500042
         DSGEN (VOLID,48),(BLKLENG,16),(HDRSER,16),(,16),        S99223C48600042
               (TEMPRDS,8),(TEMPWRTS,8),(SIOCNT,16),(PERMRDS,8), S99223C48670042
               (PERMWRTS,8),(NOISEBLK,8),(,8),(ERASEGPS,16),     S99223C48740042
               (CLNRACTS,16)                                     S99223 48810042
         DSGEN (SPAR,8),(NOISE,8),(RWVRC,8),(MTELRCR,8)                 48900042
         DSGEN (EDCCRC,8),(ENVCKVRC,8),(OVERRUN,4),(SKEWCHK,4),        C49000042
               (CCOMPARE,4),(WRTTRVRC,4)                                49100042
         DSGEN (PEIDCHK,1),(MASKEXP,6),(PARITY,1),(TRKINERR,8),        C49200042
               (WRTTMCHK,4),(STRDCHK,4),(PARTREC,4),(EXCPAMB,4)         49300042
         DSGEN  (ORDROP,4),(FEEDTHRU,4),(EXP,4),(EARLBGRD,4),          C49400042
               (EARLNDRD,4),(SLBGRD,4),(SLWNDRD,4),(VELRETRY,4),       C49500042
               (EXP2,4),(VELCHNG,4),(EXP3A,4),(EXP3,4),(BACKWARD,8),   ,49600042
               (BUSOCHK,4),(ALUHRDER,4)                                 49700042
         DSGEN (SNB,1,0,23,0,7)                                         49800042
         DSGEN (TUSERIAL,16,EQU,SNB150)                                 49900042
IFCEVOL0 CSECT                                                          50000042
         USING *,R9                                                     50100042
         USING M3420,R2                                                 50200042
         DC    A(ENTRIES)                                               50300042
         DC    CL8'IFCEVOL0'                                            50400042
NINE     DC    F'0'                                                     50500042
LABELPTR DC    F'0'                                                     50600042
RETHRE   DC    XL3'000000'         THESE TWO FIELDS MUST BE    @Z40NIVS 50620042
WRTHRE   DC    XL3'000000'         CONTIGUOUS DEC 20 FROM BEGIN@Z40NIVS 50640042
RETHREH  DC    XL3'000000'         HEX READ THRESHOLD          @Z40NIVS 50660042
WRTHREH  DC    XL3'000000'         HEX WRITE THRESHOLD         @Z40NIVS 50680042
L0       EQU   0                                                        50700042
L1       EQU   1                                                        50800042
L2       EQU   2                                                        50900042
L3       EQU   3                                                        51000042
L4       EQU   4                                                        51100042
L6       EQU   6                                                        51200042
L8       EQU   8                                                        51300042
L28      EQU   28                                                       51500042
L49      EQU   49                                                       51600042
L72      EQU   72                                              @Z427VLS 51700042
L75      EQU   75                                              @Z427VLS 51800042
R2       EQU   2                                                        51900042
R3       EQU   3                                                        52000042
R4       EQU   4                                                        52100042
R5       EQU   5                                                        52200042
R6       EQU   6                                                        52300042
R7       EQU   7                                                        52400042
R8       EQU   8                                                        52500042
R9       EQU   9                                                        52600042
R14      EQU   14                                                       52700042
R15      EQU   15                                                       52800042
CHAR0    EQU   X'F0'                                                    52900042
DENS16   EQU   X'04'                                                    53100042
BIRCH    EQU   X'08'                                             S99223 53150042
DISMOUNT EQU   X'84'                                                    53200042
LONG     EQU   X'40'                                                    53300042
SHORT    EQU   X'30'                                                    53400042
WRITE    EQU   X'04'                                                    53500042
L5       EQU   5                                               @Z40NIVS 53510042
FOXES    EQU   X'FF'                                           @Z40NIVS 53520042
ONE      EQU   1                                               @Z40NIVS 53530042
FOXEASY  EQU   X'FE'                                           @Z40NIVS 53540042
C4       EQU   X'C4'                                           @Z40NIVS 53550042
HEX40    EQU   X'40'                                           @Z40NIVS 53560042
FIRSTI   EQU   X'0F'                                           @Z40NIVS 53570042
FOUR     EQU   4                                               @Z40NIVS 53580042
ZERO     DC    X'0000'                                         @Z427VLS 53590042
MOVENAME MVC   L6(L8,R3),L0(R4)   MOVE NAME TO PRINT BUFFER      S99223 53600042
         LA    R3,14(R3)          CHANGE PRINT BUFFER PTR        S99223 53650042
         BR    R14                     RETURN CONTROL                   53700042
ADD49    LA    R3,L49(R3)              INCREMENT PRINT BUFFER           53800042
         BR    R14                                                      53900042
SUB7     SH    R3,SEVEN                CHANGE PRINT BUFFER POINTER      54000042
         BR    R14                     RETURN CONTROL                   54100042
SUB11    SH    R3,ELEVEN               CHANGE PRINT BUFFER POINTER      54200042
         BR    R14                     RETURN CONTROL                   54300042
MOVESER  MVC   L0(L6,R3),VOLID         MOVE VOLUME NAME TO BUFFER       54400042
         BR    R14                                                      54500042
RDORWR   TM    SWITCHES+L1,DISMOUNT    DISMOUNT RECORD?          XM9111 54600042
         BZ    PUTR                SENSE IS VALID                       54610042
         LR    R7,R3               GET PRINT BUFFER PTR                 54618042
         BCTR  R7,L0               REDUCE PRINT BUFFER PTR              54626042
         MVC   L0(L3,R7),BLANKS    MOVE IN BLANKS                       54634042
         B     MODEL               GO CHECK MODEL NUMBER                54642042
PUTR     MVI   L0(R3),C'E'         PUT IN EQUIP CHECK                   54650042
         TM    L0(R4),X'10'        IS IT EQUIP CHECK?                   54690042
         BO    MODEL               YES, EXIT                            54730042
         MVI   L0(R3),C'W'         PUT IN WRITE STATUS                  54770042
         TM    L1(R4),WRITE        IS WRITE STATUS ON                   54810042
         BO    MODEL               YES, EXIT                            54850042
         MVI   L0(R3),C'R'         PUT IN READ STATUS                   54890042
*                                                                     * 55000042
* THIS ROUTINE WILL CHECK THE MODEL BITS IN THE LAST HALF OF BYTE SIX * 55100042
* AND PUT THE EBCDIC VALUE ON THE PRINT BUFFER.                       * 55200042
*        3410 MODEL BITS           3420 MODEL BITS                    * 55300042
*        0000  MODEL 1             0011  MODEL 3                      * 55400042
*        0001  MODEL 2             0100  MODEL 5                      * 55500042
*        0010  MODEL 3             0101  MODEL 7                      * 55600042
*                                  1011  MODEL 4                 S99223 55700042
*                                  1100  MODEL 6                 S99223 55720042
*                                  1101  MODEL 8                 S99223 55740042
*                                                                S99223 55760042
MODEL    CLC   TUSERIAL(L2),ZERO   IF ZERO, IT IS OLD STYLE    @Z427VLS 55800042
         BH    GETMOD              GO TO GET MODEL NUMBER      @Z427VLS 55810042
         MVC   L71(L3,R3),NA       NO SENSE - PUT IN N/A       @Z427VLS 55820042
         LA    R3,2(R3)           INCREMENT PRINT BUFFER PTR     S99223 55825042
         B     WHATDENS                GO TO GET DENSITY         XM9111 55830042
L71      EQU   71                                              @Z427VLS 55840042
GETMOD   STM   R6,R7,STOREREG          SAVE THE REGISTERS        XM9111 55850042
         SR    R7,R7              CLEAR REGISTER                        55900042
         IC    R7,SNB60           GET THE MODEL BITS                    56000042
         SLL   R7,L28             SHIFT OUT UNNEEDED BITS               56100042
         SRL   R7,L28             MOVE BACK INTO POSITION               56200042
         LA    R6,MODNO(R7)       GET THE ADDRESS OF EBCDIC NUMBER      56300042
         MVC   L72(L1,R3),L0(R6)   MOVE THE DIGIT TO THE PRINT BUFFER   56400042
         LM    R6,R7,STOREREG     GET THE PREVIOUSLY SAVED REGISTERS    56500042
         LA    R3,2(R3)           CHANGE PRINT BUFFER PTR        S99223 56550042
         B     WHATDENS           GO PUT OUT DENSITY                    56600042
MODNO    DC    X'F1F2F3F3F5F76060606060F4F6F8'                   S99223 56700042
WHATDENS CLC   TUSERIAL(L2),ZERO   IF ZERO, IT IS OLD STYLE    @Z427VLS 56800042
         BH    CHKDENS             SENSE VALID - CHK DENSITY   @Z427VLS 56810042
         MVC   L75(L3,R3),NA       MOVE NA TO BUFFER           @Z427VLS 56820042
         BR    R14                     RETURN CONTROL            XM9111 56830042
L68      EQU   68                                                XM9111 56840042
CHKDENS  TM    SNB30,DENS16            1600 BITS PER INCH        S99223 56850042
         BO    PUT1600                 YES                       S99223 56940042
         TM    SNB60,BIRCH             IS THIS A NEW TYPE DRIVE  S99223 57030042
         BO    PUT6250                 YES - PUT IN 6250         S99223 57120042
         MVC   L75(L3,R3),BPI800   PUT 800 BPI IN BUFFER       @Z427VLS 57210042
         BR    R14                     RETURN                    S99223 57300042
PUT1600  MVC   L75(L4,R3),BPI1600  PUT 1600 BPI IN BUFFER      @Z427VLS 57390042
         BR    R14                     RETURN CONTROL            S99223 57480042
PUT6250  MVC   L75(L4,R3),BPI6250  PUT 6250 BPI IN BUFFER      @Z427VLS 57570042
         BR    R14                     RETURN CONTROL            S99223 57660042
BPI800   DC    CL3'800'                                                 57900042
BPI1600  DC    CL4'1600'                                                58000042
BPI6250  DC    CL4'6250'                                         S99223 58050042
BLANKS   DC    CL3' '                                                   58070042
ELEVEN   DC    H'11'                                                    58100042
SEVEN    DC    H'7'                                                     58200042
DECBYTES DC    D'0'                                                     58400042
DECAREA  EQU   DECBYTES                                        @Z40NIVS 58450042
STOREREG DC    6F'0'                                                    58500042
HIDATE   DS    F                                               @Z40NIVS 58530042
LODATE   DS    F                                               @Z40NIVS 58560042
FULLCNTR EQU   STOREREG+20                                              58600042
HALFCNTR EQU   STOREREG+22                                              58700042
NA       DC    CL3'N/A'                                                 58800042
SWIND    DC    X'00'                                                    58900042
*                                                                     * 59000042
DEVICE   LA    R3,6(R3)            CHANGE PRINT BUFFER POINTER @Z427VLS 59100042
         CLC   TUSERIAL(L2),ZERO   IF ZERO, IT IS OLD STYLE    @Z427VLS 59200042
         BNH   NOTAPP                                          @Z427VLS 59300042
         CLC   SNSCNT(L2),NINER        MORE THAN 9 SNS BYTES?   SA55024 59500042
         BC    2,TWOBYTES         IF GREATER IT HAS A SERIAL NBR        59800042
         B     NOTAPP             IF NOT IT IS NOT APPLICABLE           59900042
SERHDR   CLC   HDRSER(L2),ZERO     CHECK IS SERIAL NO IN HDR2  @Z427VLS 59910042
         BH    TWOBYTES            YES - GO CONVERT IT         @Z427VLS 59920042
         B     NOTAPP              NO - PUT IN NA              @Z427VLS 59930042
NINER    DC    H'9'                                                     59950042
*                                                                     * 60000042
*THIS ROUTINE WILL TAKE A ONE BYTE COUNTER FROM THE LOGREC ENTRY AND  * 60100042
* CONVERT IT TO EBCDIC AND PUT IT INTO THE PRINT BUFFER               * 60200042
* IT IS ALSO USED TO CONVERT WHATEVER BINARY VALUE THAT IS IN R4 TO   * 60300042
* A PRINTABLE FORM.R6 MUST BE SET TO THE LENGTH OF THE RECEIVING FIELD* 60400042
* FOR THE EXECUTE INSTRUCTION                                         * 60500042
*                                                                     * 60600042
ONEBYTE  STM   R5,R8,STOREREG     STORE REGISTERS                       60700042
         SR    R5,R5              CLEAR REGISTER5                       60800042
         IC    R5,L0(R4)          GET THE BYTE TO BE CONVERTED          60900042
PROCDEC  LA    R8,INLINE          LOAD THE RETURN ADDRESS               61000042
         LA    R6,SHORT           GET LENGTH FOR EXECUTE INSTRUCTION    61100042
CONVERT  CVD   R5,DECBYTES        CONVERT TO DECIMAL                    61200042
         EX    R6,UNPACK          UNPACK INTO THE PRINT BUFFER          61300042
         BR    R8                 RETURN TO INLINE PROCESSING           61400042
INLINE   OI    L3(R3),CHAR0       MAKE THE LAST CHAR A PRINTABLE NBR    61500042
         LM    R5,R8,STOREREG     RELOAD REGISTERS                      61600042
ADD4     LA    R3,4(R3)           CHANGE PRINT BUFFER PTR        S99223 61650042
         BR    R14                RETURN                                61700042
UNPACK   UNPK  L0(L1,R3),DECBYTES(8) UNPACK NUMBER5 TO PRINT LINE       61800042
*                                                                     * 61900042
* THIS ROUTINE IS USED TO ISOLATE THE RIGHT HALF OF A BYTE AND GOES   * 62000042
* TO HAVE IT CONVERTED TO PRINTABLE FORM                              * 62100042
*                                                                     * 62200042
RGHTHALF STM   R5,R8,STOREREG     STORE REGISTERS                       62300042
         SR    R5,R5              CLEAR REGISTER                        62400042
         IC    R5,L0(R4)          GET A BYTE FROM RECORD                62500042
         SLL   R5,L28             GET RID OF LOW ORDER BITS             62600042
         SRL   R5,L28             MOVE BACK                             62700042
         B     PROCDEC            GO TO CONVERT IT                      62800042
*                                                                     * 62900042
NOTAPP   MVC   L1(L3,R3),NA       MOVE N/A TO PRINT BUFFER       S99223 63000042
         BR    R14                     COUNTER IS NOT VALID             63100042
WHERETO  STM   R5,R6,STOREREG          SAVE REGISTERS                   63200042
         TM    RETHRE+2,FOXES      WAS THRESHOLD SPECIFIED     @Z40NIVS 63230042
         BZ    NOTHRES             NOT,  GO CHECK FOR DUMMY    @Z40NIVS 63260042
         TM    SWIND,CHAR0             IS THIS FIRST TIME HERE          63300042
         BC    R8,CONVTHR          GO CONVERT THRESHOLD TO HEX @Z40NIVS 63400042
NOTHRES  BAL   R5,CHKDUM           CHECK FOR DUMMY RECORD      @Z40NIVS 63500042
         LA    R5,ONLYENT-4            GO TO PRINT OUT INFORMATION      63600042
         ST    R5,NINE                 STORE ADDRESS                    63700042
         LA    R5,NOLAB-ONE        GET NEW LABEL ADDRESS       @Z40NIVS 63800042
         ST    R5,LABELPTR             STORE NEW LABEL ADDRESS          63900042
         LM    R5,R6,STOREREG      RESTORE THE REGS            @Z40NIVS 63930042
         B     NOPRINT             RETURN WITHOUT PRINTING     @Z40NIVS 63960042
DONOTHNG BR       R14                  RETURN CONTROL                   64000042
NOPRINT  SR    R15,R15            CLEAR REGISTER FOR NO PRINT           64100042
         BR    R14                RETURN CONTROL                        64200042
CHKDUM   CLI   L4(R2),FOXES        IS THIS DUMMY RECORD?       @Z40NIVS 64300042
         BE    DUMREC              YES, BRANCH                 @Z40NIVS 64302042
         CLI   L4(R2),FOXEASY      DUMMY BREAK RECORD?         @Z40NIVS 64304042
         BE    GETEND              YES, SKIP THIS ONE.         @Z40NIVS 64306042
FIRST    B     FIRSTIME            GO SET HI AND LO DATE       @Z40NIVS 64308042
         CLC   L8(L4,R2),HIDATE    NEW HIGHER THAN OLD HI      @Z40NIVS 64310042
         BH    UPHI                YES, GO CHANGE HIDATE       @Z40NIVS 64312042
         CLC   L8(L4,R2),LODATE    NEW LOWER THAN OLD LO?      @Z40NIVS 64314042
         BL    UPLO                YES, GO CHANGE LODATE       @Z40NIVS 64316042
CHKTHR   TM    L3(R2),C4           IS THIS A DISMOUNT,         @Z40NIVS 64318042
*                                  OVERFLOW, OR EOD RECORD?    @Z40NIVS 64320042
         BZ    OK2PRINT            NO, MUST BE PERMANENT ERROR @Z40NIVS 64322042
         TM    L3(R2),HEX40        IS THIS OVERFLOW?           @Z40NIVS 64324042
         BO    GETEND              YES, THEN SKIP IT           @Z40NIVS 64326042
         CLC   RETHREH+L2(L1),TEMPRDS RDS EXCEED THRESHOLD?    @Z40NIVS 64328042
         BNH   OK2PRINT            YES, PRINT THIS RECORD      @Z40NIVS 64330042
         CLC   WRTHREH+L2(L1),TEMPWRTS WRTS EXCEED THRESH?     @Z40NIVS 64332042
         BNH   OK2PRINT            YES, PRINT THIS RECORD      @Z40NIVS 64334042
         B     GETEND              ELSE DONT PRINT THIS  REC   @Z40NIVS 64336042
FIRSTIME NI    FIRST+1,FIRSTI      SET OFF FIRST TIME SW       @Z40NIVS 64338042
         OI    SWIND,CHAR0         SET FIRST TIME SWITCH       @Z40NIVS 64340042
         MVC   HIDATE,L8(R2)       SET NEW HIDATE              @Z40NIVS 64342042
UPLO     MVC   LODATE,L8(R2)       SET NEW LODATE              @Z40NIVS 64344042
         B     CHKTHR              GO CHECK THRESHOLD          @Z40NIVS 64346042
UPHI     MVC   HIDATE,L8(R2)       SET NEW HIDATE              @Z40NIVS 64348042
         B     CHKTHR              GO CHECK THRESHOLD          @Z40NIVS 64350042
OK2PRINT TM    SWIND,FIRSTI        ANY PRINTED YET             @Z40NIVS 64352042
         BOR   R5                  YES, RETURN                 @Z40NIVS 64354042
         OI    SWIND,FIRSTI        TURN ON ONE PRINTED SWITCH  @Z40NIVS 64356042
         TM    RETHRE+L2,FOXES     THRESHOLD SPECIFIED?        @Z40NIVS 64358042
         BZ    GOSKIP              NO, GO SET UP FOR PAGE      @Z40NIVS 64360042
         LA    R5,HEADLINE-FOUR    GET ADDRESS OF HEADER LINE  @Z40NIVS 64362042
         LA    R6,HEADLABL-ONE     AND HEADER LABEL            @Z40NIVS 64364042
         STM   R5,R6,NINE          MAKE THEM CURRENT           @Z40NIVS 64366042
         LM    R5,R6,STOREREG      RESTORE THE REGS            @Z40NIVS 64368042
         B     NOPRINT             RETURN WITHOUT PRINTING     @Z40NIVS 64370042
GOSKIP   LA    R5,HEADSKLI-FOUR    GET SKIP LINE               @Z40NIVS 64372042
         LA    R6,HEADSKLA-ONE     AND LABEL                   @Z40NIVS 64374042
         STM   R5,R6,NINE          MAKE THEM CURRENT           @Z40NIVS 64376042
         B     NOPRINT             RETURN WITHOUT PRINTING     @Z40NIVS 64378042
GETENDNT STM   R5,R6,STOREREG      SAVE THE REGS               @Z40NIVS 64380042
GETEND   LA    R5,ENDLINE-FOUR     GET FF LINE                 @Z40NIVS 64382042
         LA    R6,ENDLABEL-ONE     GET END LABEL               @Z40NIVS 64384042
         STM   R5,R6,NINE          MAKE THEM CURRENT           @Z40NIVS 64386042
         LM    R5,R6,STOREREG      RESTORE THE REGS            @Z40NIVS 64388042
         B     NOPRINT             RETURN WITHOUT PRINT        @Z40NIVS 64390042
DUMREC   TM    SWIND,FIRSTI        AT LEAST ONE PRINTED?       @Z40NIVS 64392042
         MVI   SWIND,X'00'         RESET ALL SWITCHES          @Z427VLS 64394042
         BO    GETEND              YES, EXIT                   @Z40NIVS 64396042
         MVC   CLASSRC(L8),HIDATE  MOVE DATES FOR LATER TRANS  @Z40NIVS 64398042
         LA    R5,NONELINE-FOUR    MGET 'NONE' MESSAGE         @Z40NIVS 64400042
         LA    R6,NONELABL-ONE     GET LABEL FOR SAME          @Z40NIVS 64402042
         STM   R5,R6,NINE          MAKE THEM CURRENT           @Z40NIVS 64404042
         LM    R5,R6,STOREREG      RESTORE THE REGS            @Z40NIVS 64406042
         B     NOPRINT             RETURN WITHOUT PRINT        @Z40NIVS 64408042
CONVTHR  OI    SWIND,CHAR0         SET FIRST TIME SWITCH       @Z40NIVS 64410042
         PACK  DECBYTES+L6(L2),RETHRE(L3) PACK THRESHOLD       @Z40NIVS 64412042
         CVB   R5,DECBYTES         CONVERT TO HEX              @Z40NIVS 64414042
         ST    R5,DECBYTES         STORE FOR MOVE              @Z40NIVS 64416042
         MVC   RETHREH(L3),DECBYTES+L1 MOVE TO HEX FIELD       @Z40NIVS 64418042
         XC    DECBYTES(L8),DECBYTES CLEAR FOR NEXT OP         @Z40NIVS 64420042
         PACK  DECBYTES+L6(L2),WRTHRE(L3) PACK THRESHOLD       @Z40NIVS 64422042
         CVB   R5,DECBYTES         CONVERT TO HEX              @Z40NIVS 64424042
         ST    R5,DECBYTES         STORE FOR MOVE              @Z40NIVS 64426042
         MVC   WRTHREH(L3),DECBYTES+L1 MOVE TO HEX FIELD       @Z40NIVS 64428042
         XC    DECBYTES(L8),DECBYTES                           @Z40NIVS 64430042
         LA    R5,THRLINE-FOUR     GET THRESHOLD LINE          @Z40NIVS 64432042
         LA    R6,THRLABEL-ONE     AND LABEL                   @Z40NIVS 64434042
         STM   R5,R6,NINE          MAKE THEM CURRENT           @Z40NIVS 64436042
         LM    R5,R6,STOREREG      RESTORE THE REGS            @Z40NIVS 64438042
         B     NOPRINT             RETURN WITHOUT PRINT        @Z40NIVS 64440042
MVDATE   UNPK  DECAREA(L5),L1(L3,R4)  UNPACK THE DATE          @Z40NIVS 64442042
         MVC   L0(L5,R3),DECAREA   MOVE IT TO PRINT LINE       @Z40NIVS 64444042
         BR    R14                 RETURN                      @Z40NIVS 64446042
MVTHRR   MVC   L0(L3,R3),RETHRE    MOVE RD THRESHOLD TO LINE   @Z40NIVS 64448042
         BR    R14                 RETURN                      @Z40NIVS 64450042
MVTHRW   MVC   L0(L3,R3),WRTHRE    MOVE WRT THRESHOLD TO LINE  @Z40NIVS 64452042
         BR    R14                 RETURN                      @Z40NIVS 64454042
*                                  *                           @Z40NIVS 64456042
* USED TO GET A HALFWORD COUNTER FROM THE RECORD AND GOES TO HAVE IT  * 64458042
* CONVERTED TO PRINTABLE FORM.RETURNS TO HAVE THE ZONE CHANGED BECAUSE* 64500042
* THIS WILL BE REPRESENTED AS A FIVE DIGIT NUMERAL RATHER THAN A FOUR * 64600042
* DIGIT AS THE SINGLE AND HALF BYTE COUNTERS.                         * 64700042
*                                                                     * 64800042
TWOBYTES STM   R5,R8,STOREREG     STORE REGISTERS                       64900042
         MVC   HALFCNTR(L2),L0(R4) MOVE THE COUNTER TO STORAGE          65000042
         L     R5,FULLCNTR        PUT THE COUNTER INTO A REGISTER       65100042
         LA    R6,LONG            GET LENGTH FOR EXECUTE INSTRUCTION    65200042
         BAL   R8,CONVERT         GO TO CONVERT THE NUMBER TO EBCDIC    65300042
         OI    L4(R3),CHAR0       MAKE LAST CHARACTER PRINTABLE         65400042
         LM    R5,R8,STOREREG     RESTORE REGISTERS                     65500042
         BR    R14                RETURN                                65600042
*                                                                     * 65700042
* THIS CODE WILL TAKE THE DATE FROM THE RECORD UNPACK IT AND PUT IT   * 65800042
* IN THE PRINT BUFFER.                                                * 65900042
*                                                                     * 66000042
SETDATE  UNPK  DECBYTES(5),L0(L3,R4) UNPACK THE DATE                    66100042
         LA    R3,6(R3)           INCREMENT PRINT POSITION PTR   S99223 66150042
         MVC   L0(L3,R3),DECBYTES+L2 MOVE DAY TO PRINT BUFFER           66200042
         OI    L2(R3),CHAR0       MAKE LAST DIGIT PRINTABLE             66300042
         MVC   L4(L2,R3),DECBYTES MOVE YEAR TO PRINT BUFFER             66400042
ADD7     LA    R3,7(R3)           INCREMENT PRINT POSITION PTR   S99223 66450042
         BR    R14                  RETURN                              66500042
*                                                                     * 66600042
*                                                                     * 66700042
* ROUTINES TO CHANGE PRINT BUFFER POINTER                        S99223 66710042
*                                                                S99223 66720042
ADD3     LA    R3,3(R3)           CHANGE PRINT BUFFER PTR        S99223 66730042
         BR    R14                RETURN                         S99223 66740042
ADD11    LA    R3,11(R3)          CHANGE PRINT BUFFER PTR        S99223 66750042
         BR    R14                RETURN                         S99223 66760042
ADD19    LA    R3,19(R3)          CHANGE PRINT BUFFER PTR        S99223 66770042
         BR    R14                RETURN                         S99223 66780042
ENTRIES  DS    0F                                                       66800042
         DC    XL4'00'                                                  66900042
         DC    XL4'00'                                                  67000042
         DC    A(LABELS)                                                67100042
         DC    H'0'                                                     67200042
         LINE                                                           67300042
         ROUTINE DUM1,WHERETO                                           67400042
         LABEL  ''                                                      67500042
THRLINE  DC    X'01'                                           @Z40NIVS 67600042
         DC    X'000B8B00'                                     @Z40NIVS 67650042
THRLABEL LABEL ''                                              @Z40NIVS 67700042
         LINE  (41,29),(3,14),SKIP=1                           @Z40NIVS 67750042
         ROUTINE SPARES,MVTHRR                                 @Z40NIVS 67800042
         ROUTINE SPARES,MVTHRW                                 @Z40NIVS 67850042
         LABEL 'VOLUME STATIST','ICS - VOLUMES ',              @Z40NIVSX67900042
               'EXCEEDING','TEMPORARY READ',' ERRORS OR',      @Z427VLSX67950042
               ' TEMPORARY WRI','TE ERRORS OR P','ERM ERRORS'  @Z40NIVS 68000042
         LINE  (41,29),(3,14),SKIP=1                           @Z40NIVS 68050042
         ROUTINE DUM1,WHERETO                                  @Z40NIVS 68100042
         LABEL ''                                              @Z40NIVS 68150042
HEADSKLI DC    X'01'                                           @Z40NIVS 68200042
         DC    X'000B8B00'                                     @Z40NIVS 68250042
HEADSKLA LABEL ''                                              @Z40NIVS 68300042
HEADLINE LINE  ,(1,18),SKIP=1                                  @Z40NIVS 68350042
         ROUTINE DUM1,DONOTHNG                                 @Z40NIVS 68400042
HEADLABL LABEL 'VOLUME  DATE','TIME','TU     RD/ --PERM--  --TEMP--  CLC68450042
               NER ERASE  SIO  BLOCK  PROGRAM  ----CPU----   MOD   DEN-C68480042
                  HDR'                                         @Z427VLS 68510042
         LINE  ,(1,),SKIP=1                                    @Z40NIVS 68550042
         ROUTINE DUM1,DONOTHNG                                 @Z40NIVS 68600042
         LABEL 'SERIAL DAY YR  HH MM SS TH   CUA   SERIAL  WRT RDS  WRTC68650042
               S RDS  WRTS ACTNS GAPS  COUNT LENGTH   ID      ID  SERIAC68700042
               L  NUMBER SITY   SER'                           @Z427VLS 68750042
         LINE                                                           68800042
         ROUTINE  DUM1,DONOTHNG                                         68900042
NOLAB    LABEL ''                                                       69000042
ONLYENT  LINE  (1,1),,SKIP=1                                     S99223 69100042
         ROUTINE VOLID,MOVESER                                   S99223 69300042
         ROUTINE YEAR,SETDATE                                    S99223 69500042
         HEX   TIME,1,4B                                         S99223 69700042
         ROUTINE DUM1,ADD11                                      S99223 69900042
         HEX   PRIMCUA,0,3B                                             70100042
         ROUTINE TUSERIAL,DEVICE                                 S99223 70300042
         ROUTINE DUM1,ADD7                                       S99223 70500042
         ROUTINE SNB00,RDORWR                                  @Z40NIVS 70700042
         ROUTINE PERMRDS,ONEBYTE                                        71300042
         ROUTINE PERMWRTS,ONEBYTE                                       71400042
         ROUTINE TEMPRDS,ONEBYTE                                        71500042
         ROUTINE TEMPWRTS,ONEBYTE                                       71600042
         ROUTINE CLNRACTS,TWOBYTES                             @Z427VLS 71620042
         ROUTINE CLNRACTS,ADD4                                 @Z427VLS 71640042
         ROUTINE ERASEGPS,TWOBYTES                             @Z427VLS 71660042
         ROUTINE ERASEGPS,ADD4                                 @Z427VLS 71680042
         ROUTINE SIOCNT,TWOBYTES                                        71700042
         ROUTINE BLKLENG,ADD4                                    S99223 71800042
         ROUTINE BLKLENG,TWOBYTES                                S99223 71810042
         ROUTINE JOBNAME,MOVENAME                                S99223 71820042
         HEX   CPUID,0,2B                                        S99223 71830042
         ROUTINE DUM1,ADD3                                       S99223 71840042
         HEX   CPUSER,0,3B                                       S99223 71850042
         ROUTINE DUM1,ADD19                                      S99223 71860042
         ROUTINE HDRSER,SERHDR                                 @Z427VLS 71870042
ENDLABEL LABEL ''                                              @Z40NIVS 71880042
ENDLINE  DC    X'FF'                                           @Z40NIVS 71940042
         DC    XL2'00'                                                  72000042
         DC    XL2'00'                                                  72100042
         DC    XL2'00'                                                  72200042
NONELINE LINE  (71,9),(40,37),SKIP=1                           @Z40NIVS 72210042
         ROUTINE SPARES,MVDATE                                 @Z40NIVS 72220042
         ROUTINE CLASSRC,MVDATE                                @Z40NIVS 72230042
NONELABL LABEL 'NO VOLUMES EXCEEDED THRESHOLD:','TO'           @Z40NIVS 72240042
         LINE  (71,9),(40,37),SKIP=1                           @Z40NIVS 72250042
         ROUTINE DUM1,GETENDNT                                 @Z40NIVS 72260042
         LABEL ''                                              @Z40NIVS 72270042
LABELS   DS    0F                                                       72300042
         LSTART                                                         72400042
         END                                                            72500042
