*** THIS MODULE SUPPORTS 3850 DEVICE --- SUPPORT CODE=Y30LPDG ***       00080002
         MACRO                                                          00160002
         BIN   ,                                                        00240002
.*                                 &SYSLIST(&OP,1) - NAME OF LOG ITEM   00320002
.*                                      RECORD DSECT                    00400002
.*                                 $SYSLIST(&OP,2) - NBR OF SPACES      00480002
.*                                      TO SKIP ON MULTIPLE             00560002
.*                                      PRINT OR NBR OF SPACES          00640002
.*                                      TO BACK UP FROM COLUMN FOR      00720002
.*                                      START OF PRINTING. THE LETTER   00800002
.*                                      B PRECEEDS THE NUMBER (B5) IF   00880002
.*                                      THE LATTER IS DESIRED. OMISSION 00960002
.*                                      OF THIS OPERAND FORCES OPTION 2 01040002
.*                                      WITH BACKUP SPACING EQUAL TO    01120002
.*                                 THE NUMBER OF BITS IN THE ITEM       01200002
.*                                 DEFINITION (VIA MACRO 'DSGEN').      01280002
.*                            A LIMIT OF 15 BITS IS IMPOSED FOR THE     01360002
.*                                 TOTAL NUMBER OF BITS TO PRINT.       01440002
         GBLA  &BITS(3000),&DB,&DT,&INITIAL                             01520002
         GBLA  &ITEMITR,&ITEMFST(20),&ITEMNBR,&ITEMMDX                  01600002
         GBLA  &ITEMNDX(3000),&ITEMXPT                                  01680002
         GBLA  &LABELNR,&LASTCC,&LB,&LBLCTR(100),&LPTR,&LT              01760002
         GBLA  &NRENTS,&SHIFT(3000)                                     01840002
         GBLB  &DIAGITF,&DIAGLIN,&DIAGSET,&DIAGTST,&FSW,&TEST           01920002
         GBLC  &CARRCON,&CSECT,&DSECT,&ITEM(3000)                       02000002
         GBLC  &LABELS(3000),&LBL(100),&NRENTSX                         02080002
         LCLB  &B,&SUB                                                  02160002
         LCLA  &IBITS,&ISHIFT,&K                                        02240002
         LCLA  &TEMP,&T,&OP                                             02320002
         LCLC  &S,&ARG                                                  02400002
          ACTR  500000                                                  02480002
         AIF   (&DIAGTST EQ 0).NOMSG                                    02560002
         AIF   (&INITIAL EQ 0).NOMSG                                    02640002
         AIF   (&DIAGLIN EQ 1).NOMSG                                    02720002
         MNOTE '**NO LINE ASSOCIATED WITH THIS DATA**'                  02800002
*****THE FOLLOWING GENERATED FOR TEST PURPOSES*****                     02880002
*        LINE                                                           02960002
         LINE                                                           03040002
.NOMSG   ANOP                                                           03120002
         AIF   (K'&SYSLIST(1) EQ K'&SYSLIST(1,1)).LOOP                  03200002
&SUB     SETB  1                                                        03280002
.LOOP    ANOP                                                           03360002
&OP      SETA  &OP+1                                                    03440002
&ARG     SETC  '&SYSLIST(&OP,1)'                                        03520002
         ITEMFIND &ARG                                                  03600002
         AIF   (&ITEMXPT EQ 0).MEXIT                                    03680002
&ISHIFT  SETA  &SHIFT(&ITEMXPT)                                         03760002
&IBITS   SETA  &BITS(&ITEMXPT)                                          03840002
         AIF   (&SUB EQ 1).SUB00                                        03920002
         AIF   ('&SYSLIST(3)' EQ '').SETT                               04000002
&IBITS   SETA  &SYSLIST(3)                                              04080002
         AGO   .SETT                                                    04160002
.SUB00   AIF   ('&SYSLIST(&OP,3)' EQ '').SETT                           04240002
&IBITS   SETA  &SYSLIST(&OP,3)                                          04320002
.SETT    ANOP                                                           04400002
&T       SETA  &IBITS-1                                                 04480002
&B       SETB  0                                                        04560002
         AIF   (&IBITS GT 0 AND &IBITS LT 16).SUB0                      04640002
         MNOTE '**NO. OF BITS OUTSIDE RANGE OF 1-15**'                  04720002
.MEXIT   MEXIT                                                          04800002
.SUB0    AIF   (&SUB EQ 1).SUBA                                         04880002
         AIF   ('&SYSLIST(2)' EQ '').BACKUP                             04960002
&K       SETA  K'&SYSLIST(2)                                            05040002
&B       SETB  ('&SYSLIST(2)'(1,1) EQ 'B')                              05120002
&S       SETC  '&SYSLIST(2)'(&B+1,&K-&B)                                05200002
         AGO   .SUBB                                                    05280002
.SUBA    ANOP                                                           05360002
         AIF   ('&SYSLIST(&OP,2)' EQ '').BACKUP                         05440002
&K       SETA  K'&SYSLIST(&OP,2)                                        05520002
&B       SETB  ('&SYSLIST(&OP,2)'(1,1) EQ 'B')                          05600002
&S       SETC  '&SYSLIST(&OP,2)'(&B+1,&K-&B)                            05680002
.SUBB    ANOP                                                           05760002
&T       SETA  &S                                                       05840002
.BACKUP  ANOP                                                           05920002
&NRENTS  SETA  &NRENTS+1                                                06000002
         AIF   (&IBITS NE 1 OR &B NE 0).BIN2                            06080002
&TEMP    SETA  &ISHIFT                                                  06160002
         DC    AL.12(&SYSLIST(&OP,1)-&DSECT),XL.4'&TEMP'                06240002
         AGO   .OUT                                                     06320002
         AIF   (&SUB EQ 1).BIN2                                         06400002
         AIF   ('&SYSLIST(2)' NE '').BIN3                               06480002
         AGO   .BIN2A                                                   06560002
.BIN2    AIF   ('&SYSLIST(&OP,2)' NE '').BIN3                           06640002
.BIN2A   ANOP                                                           06720002
&B       SETB  1                                                        06800002
.BIN3    ANOP                                                           06880002
         DC    AL.12(&SYSLIST(&OP,1)-&DSECT),XL.4'C'                    06960002
         DC    BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT'             07040002
.OUT     ANOP                                                           07120002
&ITEMXPT     SETA  0                                                    07200002
         AIF   (&SUB EQ 0).OUTA                                         07280002
         AIF   (&OP LT N'&SYSLIST).LOOP                                 07360002
.OUTA    ANOP                                                           07440002
         MEND                                                           07520002
         MACRO                                                          07600002
&NAME    DSGEN ,                                                        07680002
.*                            THIS MACRO GENERATES ONE DSECT WORD       07760002
.*                                 FORMATTED FOR THE SUBJECT LOG RECORD 07840002
.*                                 EACH OPERAND HAS TWO SUB LISTS. THE  07920002
.*                                 FIRST IS THE NAME OF THE LOG ITEM    08000002
.*                                 WHILE THE SECOND IS THE # OF BITS TO 08080002
.*                                 ALLOCATE FOR THIS ITEM. ITEMS MUST   08160002
.*                                 BE DEFINED CONTIGUOUSLY WITHOUT GAPS 08240002
.*                                 UNUSED BIT GROUPS MUST BE GIVEN      08320002
.*                                 DUMMY NAMES. THE NAMES PROVIDED FOR  08400002
.*                                 THE LOG ITEMS MAY THEN BE USED IN    08480002
.*                                 THE CONVERSION MACRO INSTRUCTIONS.   08560002
         GBLA  &BITS(3000),&DB,&DT,&INITIAL                             08640002
         GBLA  &ITEMITR,&ITEMFST(20),&ITEMNBR,&ITEMMDX                  08720002
         GBLA  &ITEMNDX(3000),&ITEMXPT                                  08800002
         GBLA  &LABELNR,&LASTCC,&LB,&LBLCTR(100),&LPTR,&LT              08880002
         GBLA  &NRENTS,&SHIFT(3000)                                     08960002
         GBLB  &DIAGITF,&DIAGLIN,&DIAGSET,&DIAGTST,&FSW,&TEST           09040002
         GBLC  &CARRCON,&CSECT,&DSECT,&ITEM(3000)                       09120002
         GBLC  &LABELS(3000),&LBL(100),&NRENTSX                         09200002
         LCLB  &ONLY1,&CTIND                                            09280002
         LCLA  &START1,&START2,&END1,&END2                              09360002
         LCLC  &SYMBOL,&EQUSYM                                          09440002
         LCLA  &OP,&COUNT,&BYTE,&EQUCNT                                 09520002
         ACTR  100000                                                   09600002
         AIF   (&ITEMITR EQ 0).START                                    09680002
 MNOTE   20,'DSGEN MACRO OCCURRS AFTER ITEMSORT MACRO HAS BEEN ISSUED.' 09760002
         MEXIT                                                          09840002
.START   AIF   (N'&SYSLIST(&OP+1) LT 3).LOOP                            09920002
         AIF   ('&SYSLIST(&OP+1,3)' EQ 'EQU').LOOP     TEST FOR EQU     10000002
  AIF   ('&SYSLIST(&OP+1,3)' EQ '' OR '&SYSLIST(&OP+1,4)' EQ '').ERR1   10080002
         AIF   ('&SYSLIST(&OP+1,3)' GT '&SYSLIST(&OP+1,4)').ERR3        10160002
&START1  SETA  &SYSLIST(&OP+1,3)        GET START COUNT OF 1            10240002
&START2  SETA  &SYSLIST(&OP+1,4)        GET FIRST END COUNT             10320002
         AGO   .SET2A                   BRANCH AROUND                   10400002
         AIF   ('&SYSLIST(&OP+1,5)' GT '&SYSLIST(&OP+1,6)').ERR3        10480002
.ERR1    MNOTE '**FIRST SYMBOL CONCATENATION INCOMPLETE**'              10560002
         MEXIT                                                          10640002
.SET2A   AIF   ('&SYSLIST(&OP+1,5)' EQ ''AND '&SYSLIST(&OP+1,6)' EQ '' X10720002
               ).SET2                   TEST FOR NO SECOND              10800002
  AIF   ('&SYSLIST(&OP+1,5)' EQ '' OR '&SYSLIST(&OP+1,6)' EQ '').ERR2   10880002
&END1    SETA  &SYSLIST(&OP+1,5)        GET START COUNT OF 2            10960002
&END2    SETA  &SYSLIST(&OP+1,6)        GET END COUNT OF 2              11040002
         AGO   .LOOP                                                    11120002
.SET2    ANOP                                                           11200002
&ONLY1   SETB  1                        INDICATE ONLY ONE CONCATENATION 11280002
         AGO   .LOOP                                                    11360002
.ERR2    MNOTE '**SECOND SYMBOL CONCATENATION INCOMPLETE**'             11440002
         MEXIT                                                          11520002
.ERR3    MNOTE '**START GREATER THAN END CONCATENATION**'               11600002
         MEXIT                                                          11680002
.LOOP    ANOP                                                           11760002
&OP      SETA  &OP+1                                                    11840002
         AIF   (&OP GT N'&SYSLIST).DONE      TEST IF ALL DONE           11920002
&ITEMNBR SETA  &ITEMNBR+1                                               12000002
         AIF   ('&SYSLIST(&OP,2)' NE '').OK1                            12080002
         MNOTE '**NULL BIT COUNT FIELD**'                               12160002
         MEXIT                                                          12240002
.OK1     ANOP                                                           12320002
&SYMBOL  SETC  '&SYSLIST(&OP,1)'                                        12400002
         AIF   ('&SYMBOL' NE '').OK                                     12480002
*              *****     LOG ITEM SYMBOL NOT PROVIDED     *****         12560002
         AIF   ('&SYSLIST(&OP,3)' NE 'EQU').CNT                         12640002
         AGO   .START                   GET NEXT                        12720002
.OK      AIF   (N'&SYSLIST(&OP) LT 3).NO3    TEST FOR OLD FORMAT        12800002
         AIF   ('&SYSLIST(&OP,3)' EQ 'EQU').EQU   TEST FOR EQU          12880002
         AIF   (&ONLY1).OK2             TEST FOR ONLY ONE CONCAT        12960002
&SYMBOL  SETC  '&SYMBOL.&START1.&END1'       GET 1 AND 2 CONCAT         13040002
         AGO   .NO3                     BRANCH AROUND                   13120002
.OK2     ANOP                                                           13200002
&SYMBOL  SETC  '&SYMBOL.&START1'        GET 1 CONCATENATED              13280002
.NO3     ANOP                                                           13360002
&SYMBOL  EQU   *+&BYTE                                                  13440002
&ITEM(&ITEMNBR) SETC '&SYMBOL'          GET LABEL IN GLOBAL             13520002
&BITS(&ITEMNBR) SETA &SYSLIST(&OP,2)                                    13600002
&SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8                                    13680002
.CNT     ANOP                                                           13760002
&CTIND   SETB  1                        SET COUNT INDICATOR             13840002
&COUNT   SETA  &COUNT+&SYSLIST(&OP,2)                                   13920002
&BYTE    SETA  &COUNT/8                                                 14000002
         AIF   (N'&SYSLIST(&OP) LT 3).START  TEST FOR OLD FORMAT        14080002
         AIF   (&ONLY1).TSTST           TEST FOR ONLY ONE CONCAT        14160002
         AIF   (&END1 EQ &END2).TSTST   TEST FOR SECOND END             14240002
&END1    SETA  &END1+1                  INCREMENT COUNT                 14320002
&OP      SETA  &OP-1                    DECREMENT INCREMENT             14400002
         AGO   .LOOP                    GENERATE NEXT                   14480002
.TSTST   ANOP                                                           14560002
         AIF   (&START1 EQ &START2).LPDONE   TEST FOR END               14640002
         AIF   (&ONLY1).NSET1           TEST FOR ONLY ONE CONCAT        14720002
&END1    SETA  &SYSLIST(&OP,5)          RE-INIT SECOND START COUNT      14800002
.NSET1   ANOP                                                           14880002
&OP      SETA  &OP-1                    DECREMENT INDEX                 14960002
&START1  SETA  &START1+1                INCREMENT FIRST COUNT           15040002
         AGO   .LOOP                    GO DO NEXT                      15120002
.LPDONE  ANOP                                                           15200002
&ONLY1   SETB  0                        CLEAR INDICATOR                 15280002
         AGO   .START                   GO TEST FOR MORE SUB-LISTS      15360002
.DONE    AIF   (&COUNT-&COUNT/8*8 NE 0).ERR  TEST FOR MULTIPLE OF EIGHT 15440002
         AIF   (&CTIND EQ 0).END        NO DS IF NO COUNT               15520002
&COUNT   SETA  &COUNT/8                 GET NUMBER OF BYTES             15600002
&NAME    DS    &COUNT.C                                                 15680002
.END     MEXIT                                                          15760002
.ERR     MNOTE '**BIT COUNT FLDS DO NOT TOTAL MULTIPLE OF 8**'          15840002
         MEXIT                                                          15920002
.EQU     AIF   ('&SYSLIST(&OP,4)' NE '').EQU1     TEST FOR NULL LABEL   16000002
.ERR4    MNOTE '**EQU OPERAND OMITTED OR NOT FOUND**'                   16080002
         MEXIT                                                          16160002
.EQU1    AIF   (&SYSLIST(&OP,2) LT 16).EQU2  COUNT OVER FIFTEEN         16240002
*****               THE FOLLOWING STATEMENT                *****        16320002
*****     NUMBER OF BITS EXCEED 15 - DO NOT USE AS BIN     *****        16400002
.EQU2    ANOP                                                           16480002
&EQUCNT  SETA  0                        CLEAR COUNTER                   16560002
&EQUSYM  SETC  '&SYSLIST(&OP,4)'        GET EQU OPERAND                 16640002
.EQULOP  ANOP                                                           16720002
&EQUCNT  SETA  &EQUCNT+1                INCREMENT INDEX                 16800002
         AIF   ('&ITEM(&EQUCNT)' EQ '&EQUSYM').EQUOUT  LABEL FOUND?     16880002
         AIF   (&EQUCNT EQ &ITEMNBR).ERR4    ALL TESTED?                16960002
         AGO   .EQULOP                  NO-GET NEXT                     17040002
.EQUOUT  ANOP                                                           17120002
&ITEM(&ITEMNBR) SETC '&SYMBOL'          GET LABEL NAME                  17200002
&BITS(&ITEMNBR) SETA &SYSLIST(&OP,2)    GET NUMBER OF BITS              17280002
&SHIFT(&ITEMNBR) SETA &SHIFT(&EQUCNT)   GET SHIFT COUNT                 17360002
&SYMBOL  EQU   &EQUSYM                  THIS SYMBOL EQUATED             17440002
         AGO   .START                   RETURN FOR NEXT                 17520002
         MEND                                                           17600002
         MACRO                                                          17680002
         CONVT ,                                                        17760002
         GBLA  &BITS(3000),&DB,&DT,&INITIAL                             17840002
         GBLA  &ITEMITR,&ITEMFST(20),&ITEMNBR,&ITEMMDX                  17920002
         GBLA  &ITEMNDX(3000),&ITEMXPT                                  18000002
         GBLA  &LABELNR,&LASTCC,&LB,&LBLCTR(100),&LPTR,&LT              18080002
         GBLA  &NRENTS,&SHIFT(3000)                                     18160002
         GBLB  &DIAGITF,&DIAGLIN,&DIAGSET,&DIAGTST,&FSW,&TEST           18240002
         GBLC  &CARRCON,&CSECT,&DSECT,&ITEM(3000)                       18320002
         GBLC  &LABELS(3000),&LBL(100),&NRENTSX                         18400002
         LCLB  &SUB                                                     18480002
         LCLA  &OP                                                      18560002
         LCLA  &OFFSET,&OUT,&IN,&IND,&IBITS,&ISHIFT                     18640002
.*                                                                      18720002
.*       CONVERT BINARY TO DECIMAL                                      18800002
.*             &NAME IS THE REFERENCE INTO THE DSECT RECORD             18880002
.*             &OUT    IS THE NUMBER OF CHARS TO BE PUT ONTO PRINT LINE 18960002
.*                                      DEFAULT IS FOUR MAXIMUM IS 8    19040002
.*             &IN       IS THE NUMBER OF BYTES AS INPUT                19120002
.*                                      ERROR DEFAULT IS 2 MAXIMUM IS 4 19200002
.*                                                                      19280002
         AIF   (&DIAGTST EQ 0).NOMSG                                    19360002
         AIF   (&INITIAL EQ 0).NOMSG                                    19440002
         AIF   (&DIAGLIN EQ 1).NOMSG                                    19520002
         MNOTE '**NO LINE ASSOCIATED WITH THIS DATA**'                  19600002
*****THE FOLLOWING GENERATED FOR TEST PURPOSES*****                     19680002
*        LINE                                                           19760002
         LINE                                                           19840002
.NOMSG   ANOP                                                           19920002
         AIF   (K'&SYSLIST(1) EQ K'&SYSLIST(1,1)).LLOP                  20000002
&SUB     SETB  1                                                        20080002
.LLOP    ANOP                                                           20160002
&OP      SETA  &OP+1                                                    20240002
&OUT     SETA  4                        .BR NOT NULL ELSE SET TO 4      20320002
         AIF   (&SUB EQ 1).SUBA                                         20400002
         AIF   ('&SYSLIST(3)' EQ '').B  TEST FOR NULL INPUT             20480002
&OUT     SETA  &SYSLIST(3)             SET &OUT FROM INPUT              20560002
         AGO   .A                                                       20640002
.SUBA    AIF   ('&SYSLIST(&OP,3)' EQ '').B                              20720002
&OUT     SETA  &SYSLIST(&OP,3)          SET &OUT FROM INPUT             20800002
.A       AIF   (&OUT GT 0 AND &OUT LT 9).B   TEST RANGE                 20880002
.AERR    MNOTE '*** BYTES OUT INCORRECTLY SPECIFIED DEFAULT USED ***'   20960002
&OUT     SETA  4                                                        21040002
.B       AIF   (&SUB EQ 1).SUBB                                         21120002
         AIF   ('&SYSLIST(2)' EQ '').LOOP    BRANCH IF NULL             21200002
&IN      SETA  &SYSLIST(2)              .SET &IN FROM INPUT             21280002
         AGO   .BB                                                      21360002
.SUBB    AIF   ('&SYSLIST(&OP,2)' EQ '').LOOP                           21440002
&IN      SETA  &SYSLIST(&OP,2)          .SET &IN FROM INPUT             21520002
.BB      AIF   (&IN GT 0 AND &IN LT 5).D     TEST RANGE                 21600002
.BERR    MNOTE '*** BYTES IN INCORRECTLY SPECIFIED DEFAULT USED ***'    21680002
&IN      SETA  2                                                        21760002
         AGO   .D                                                       21840002
.LOOP    ANOP                           .LOOP TO FIND &NAME IN DSECT    21920002
&IND     SETA  &IND+1                   .SET UP LOOP COUNTER            22000002
         AIF   ('&ITEM(&IND)' EQ '&SYSLIST(&OP,1)').FOUND               22080002
         AIF   (&IND LT &ITEMNBR).LOOP  .TEST FOR END OF DSECT          22160002
         MNOTE '*** LOG ITEM NOT DEFINED ***'                           22240002
         MEXIT                                                          22320002
.FOUND   ANOP                                                           22400002
&IBITS   SETA  &BITS(&IND)              .SET UP NUMBER OF BITS SPEC     22480002
         AIF   (&IBITS-((&IBITS/8)*8) EQ 0).C  .TEST FOR MULTIPLE OF 8  22560002
         MNOTE '*** DATA NOT DEFINED A MULTIPLE OF 8 BITS ***'          22640002
         MEXIT                                                          22720002
.C       ANOP                                                           22800002
&IN      SETA  &IBITS/8                 .COMPUTE NUMBER OF BYTES        22880002
         AIF   (&IN LT 1 OR &IN GT 4).BERR  .TEST RANGE B IF IN ERROR   22960002
&ISHIFT  SETA  &SHIFT(&IND)             .SET UP FOR TEST OF BYTE BNDR   23040002
         AIF   (&ISHIFT EQ 0).D         .TEST FOR BYTE BNDRY            23120002
         MNOTE '*** DATA NOT ALIGNED ON A BYTE BOUNDARY ***'            23200002
         MEXIT                                                          23280002
.*                                                                      23360002
.D       ANOP                                                           23440002
&NRENTS  SETA  &NRENTS+1                                                23520002
         DC    AL.12(&SYSLIST(&OP,1)-&DSECT),AL.4(9)                    23600002
         DC    X'&IN',X'&OUT'                                           23680002
&IND     SETA  0                                                        23760002
         AIF   (&SUB EQ 0).OUTA                                         23840002
         AIF   (&OP LT N'&SYSLIST).LLOP                                 23920002
.OUTA    ANOP                                                           24000002
         MEND                                                           24080002
         MACRO                                                          24160002
         ITEMFIND &ARG,&ITFDIAG=                                        24240002
         GBLA  &BITS(3000),&DB,&DT,&INITIAL                             24320002
         GBLA  &ITEMITR,&ITEMFST(20),&ITEMNBR,&ITEMMDX                  24400002
         GBLA  &ITEMNDX(3000),&ITEMXPT                                  24480002
         GBLA  &LABELNR,&LASTCC,&LB,&LBLCTR(100),&LPTR,&LT              24560002
         GBLA  &NRENTS,&SHIFT(3000)                                     24640002
         GBLB  &DIAGITF,&DIAGLIN,&DIAGSET,&DIAGTST,&FSW,&TEST           24720002
         GBLC  &CARRCON,&CSECT,&DSECT,&ITEM(3000)                       24800002
         GBLC  &LABELS(3000),&LBL(100),&NRENTSX                         24880002
         LCLA  &A,&B,&X,&I                                              24960002
         LCLC  &C1,&C2,&S                                               25040002
         ACTR  100000                                                   25120002
&ITEMXPT SETA  0                  INDICATE ITEM NOT FOUND.              25200002
         AIF   ('&ARG' NE '').NORM                                      25280002
         AIF   ('&ITFDIAG' EQ 'OFF'  OR  '&ITFDIAG' EQ 'ON').DIAGSET    25360002
  MNOTE 0,'ITEMFIND - OPERAND (&ITFDIAG) INVALID FOR ITFDIAG KEYWORD.'  25440002
         MEXIT                                                          25520002
.DIAGSET ANOP                                                           25600002
&DIAGITF SETB  ('&ITFDIAG' EQ 'ON')                                     25680002
         MEXIT                                                          25760002
.NORM    AIF   (&ITEMITR GT 0).SORTED                                   25840002
         ITEMSORT                                                       25920002
.SORTED  ANOP                                                           26000002
&I       SETA  &ITEMITR           COMPUTED ITTERATION COUNT.            26080002
&X       SETA  &ITEMMDX           COMPUTED MAXIMUM INDEX.               26160002
&C1      SETC  '&ARG'             ISOLATE SEARCH ARGUMENT.              26240002
&C1      SETC  '&C1'.'       '(1,8-K'&C1) PAD TO FULL 8 CHARACTERS.     26320002
.SRCHUP  ANOP                                                           26400002
&A       SETA  &A+&X              CURRENT TABLE SUBSCRIPT + INDEX.      26480002
&S       SETC  '+'                                                      26560002
         AIF   (&A  GT &ITEMNBR  AND  NOT &DIAGITF).SRCHDN1             26640002
         AIF   (&A  LE &ITEMNBR).SRCH00                                 26720002
&C2      SETC  '*-OVER-*'                                               26800002
&I       SETA  &I-1               DECREMENT ITTERATION COUNTER.         26880002
&X       SETA  &X/2               HALVE INDEX VALUE.                    26960002
 MNOTE *,'&ARG - &C2   ITRCTR = &I   PTR = &A&S &X'                     27040002
         AIF   (&I GE 0).SRCHDWN  IF ITTERATION COUNT NOT EXPIRED.      27120002
.NOFIND  MNOTE  20,' ITEMFIND FAILED FOR NAME  &C1  '                   27200002
         MEXIT                                                          27280002
.SRCH00  ANOP                                                           27360002
&I       SETA  &I-1               DECREMENT ITTERATION COUNTER.         27440002
         AIF   (&I LT 0).NOFIND   IF COUNT HAS GONE TO ZERO.            27520002
&X       SETA  &X/2               HALVE INDEX VALUE.                    27600002
&B       SETA  &ITEMNDX(&A)       GET SUBSCRIPT FROM INDEX TABLE.       27680002
&C2      SETC  '&ITEM(&B)'.'       '(1,8-K'&ITEM(&B))  PAD COMPARAND.   27760002
         AIF   (NOT &DIAGITF).COMPARE                                   27840002
 MNOTE *,'&ARG - &C2   ITRCTR = &I   PTR = &A&S &X   POS = &B'          27920002
.COMPARE AIF   ('&C1' LT '&C2').SRCHDWN   ARGUMENT LOWER, MOVE DOWN.    28000002
         AIF   ('&C1' GT '&C2').SRCHUP    ARGUMENT HIGHER, MOVE UP.     28080002
&ITEMXPT SETA  &B                 FOUND. SET INDEX POINTER FOR RETURN.  28160002
&ITEMFST(&I+1)  SETA  &ITEMFST(&I+1)+1                                  28240002
         MEXIT                                                          28320002
.SRCHDWN ANOP                                                           28400002
&A       SETA  &A-&X              CURRENT POINTER MINUS INDEX VALUE.    28480002
&S       SETC  '-'                                                      28560002
         AIF   (&A LE &ITEMNBR).SRCH00    IF WITHIN BOUNDS OF TABLE.    28640002
.SRCHDN1 ANOP                                                           28720002
&I       SETA  &I-1               DECREMENT ITTERATION COUNTER.         28800002
&X       SETA  &X/2               HALVE INDEX VALUE.                    28880002
         AIF   (&I GE 0).SRCHDWN  IF ITTERATION COUNT NOT EXPIRED.      28960002
         MNOTE  20,' ITEMFIND FAILED FOR NAME  &C1  '                   29040002
         MEND                                                           29120002
         MACRO                                                          29200002
         ITEMSORT  &DUMMY                                               29280002
         GBLA  &BITS(3000),&DB,&DT,&INITIAL                             29360002
         GBLA  &ITEMITR,&ITEMFST(20),&ITEMNBR,&ITEMMDX                  29440002
         GBLA  &ITEMNDX(3000),&ITEMXPT                                  29520002
         GBLA  &LABELNR,&LASTCC,&LB,&LBLCTR(100),&LPTR,&LT              29600002
         GBLA  &NRENTS,&SHIFT(3000)                                     29680002
         GBLB  &DIAGITF,&DIAGLIN,&DIAGSET,&DIAGTST,&FSW,&TEST           29760002
         GBLC  &CARRCON,&CSECT,&DSECT,&ITEM(3000)                       29840002
         GBLC  &LABELS(3000),&LBL(100),&NRENTSX                         29920002
         LCLA  &R,&ZI,&I,&A1,&A2,&TEMP                                  30000002
         LCLB  &SR,&GOTO,&TB                                            30080002
         LCLB   &SW(4000)                                               30160002
         LCLC  &C1,&C2                                                  30240002
         ACTR   200000                                                  30320002
&A1      SETA  0                                                        30400002
         AIF   (&ITEMITR EQ 0).LOOP0   TEST FOR RE-ENTRY.               30480002
 MNOTE   0,'ITEMSORT MACRO OCCURRS MORE THAN ONCE. TABLE NOT RESORTED.' 30560002
         MEXIT                                                          30640002
.LOOP0   ANOP                                                           30720002
&A1      SETA  &A1+1                                                    30800002
&ITEMNDX(&A1) SETA &A1                                                  30880002
         AIF   (&A1 LT &ITEMNBR).LOOP0                                  30960002
         AIF   (&ITEMNBR LT 2).MEXIT                                    31040002
&A1      SETA  &ITEMNBR/2         HALF OF TOTAL ENTRIES.                31120002
&A2      SETA  0                                                        31200002
.LOOP1   ANOP                                                           31280002
&A2      SETA  &A2+1                                                    31360002
&SW(&A2) SETB  1                  SET FIRST HALF OF SWITCHES TO 1.      31440002
         AIF   (&A2 LT &A1).LOOP1                                       31520002
.LOOP2   ANOP                                                           31600002
&A2      SETA  &A2+1                                                    31680002
&SW(&A2) SETB  0                  SET SECOND HALF TO ZERO.              31760002
         AIF   (&A2 LT &ITEMNBR).LOOP2                                  31840002
&R       SETA  0                  SET R TO FIRST TRIAL ITEM.            31920002
&ZI      SETA  &ITEMNBR-1         SET ZI TO LAST ITEM.                  32000002
&I       SETA  &ZI-1                                                    32080002
.T3      ANOP                                                           32160002
&SR      SETB  (&SW(&R+1))        GET FLAG, WHICH WAY TO GO?            32240002
&R       SETA  (&R*2)+1+&SR       R=2R+(1 OR 2)                         32320002
         AIF   (&R LE &I).T3                                            32400002
.T4      ANOP                                                           32480002
&R       SETA  (&R-1)/2           R=(R-1)/2                             32560002
&SR      SETB  (&SW(&R+1))        GET SUBTREE SELECT FLAG.              32640002
         AIF   (&SR EQ 0).T7                                            32720002
         AIF   (&GOTO EQ 0).T5                                          32800002
.T7      ANOP                                                           32880002
&A1      SETA  &ITEMNDX(&R+1)                                           32960002
&A2      SETA  &ITEMNDX(&ZI+1)                                          33040002
&C1      SETC  '&ITEM(&A1)'.'       '(1,8-K'&ITEM(&A1))                 33120002
&C2      SETC  '&ITEM(&A2)'.'       '(1,8-K'&ITEM(&A2))                 33200002
         AIF   ('&C1' LT '&C2').T8                                      33280002
.T9      ANOP                                                           33360002
&TEMP    SETA  &ITEMNDX(&R+1)     Z(R) TO TEMP.                         33440002
&TB      SETB  (&SW(&R+1))                                              33520002
&ITEMNDX(&R+1) SETA &ITEMNDX(&ZI+1)    Z(I) TO Z(R)                     33600002
&SW(&R+1) SETB (&SW(&ZI+1))                                             33680002
&ITEMNDX(&ZI+1) SETA &TEMP        TEMP TO Z(I)                          33760002
&SW(&ZI+1) SETB (&TB)                                                   33840002
&SR      SETB  (&SR EQ 0)                                               33920002
&SW(&R+1) SETB (&SR)                                                    34000002
.T8      AIF   (&R GT 0).T4                                             34080002
&GOTO    SETB  1                  SET 'GO TO' T7                        34160002
&ZI      SETA  &ZI-1                                                    34240002
&I       SETA  &I-1                                                     34320002
         AIF   (&I GE 0).T3                                             34400002
.MEXIT   ANOP                                                           34480002
&ITEMITR SETA 1                                                         34560002
&ITEMMDX SETA 1                                                         34640002
.ITRLOOP ANOP                                                           34720002
&ITEMITR SETA &ITEMITR+1                                                34800002
&ITEMMDX SETA &ITEMMDX+&ITEMMDX                                         34880002
         AIF  (&ITEMMDX LT &ITEMNBR).ITRLOOP                            34960002
&ITEMITR SETA &ITEMITR-1                                                35040002
&ITEMMDX SETA &ITEMMDX/2                                                35120002
&A1      SETA &ITEMNBR                                                  35200002
&A2      SETA &ITEMMDX                                                  35280002
&TEMP    SETA &ITEMITR                                                  35360002
 MNOTE *,' ITEMS = &A1, MAX INDEX = &A2, ITTERATION COUNT = &TEMP'      35440002
         MEXIT                                                          35520002
.T5      ANOP                                                           35600002
&TEMP    SETA  &ITEMNDX(&R+1)     Z(R) TO TEMP.                         35680002
&TB      SETB  (&SW(&R+1))                                              35760002
&ITEMNDX(&R+1) SETA &ITEMNDX(&ZI+1)    Z(I) TO Z(R)                     35840002
&SW(&R+1) SETB (&SW(&ZI+1))                                             35920002
&ITEMNDX(&ZI+1) SETA &TEMP        TEMP TO Z(I)                          36000002
&SW(&ZI+1) SETB (&TB)                                                   36080002
&SR      SETB  (&SR EQ 0)                                               36160002
&SW(&R+1) SETB (&SR)                                                    36240002
         AGO   .T3                                                      36320002
         MEND                                                           36400002
           MACRO                                                        36480002
&NAME    LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6,        C36560002
               &LABEL7,&LABEL8                                          36640002
.*                                 THIS MACRO ALLOWS LABELS TO          36720002
.*                                 BE SPECIFIED FOR A GIVEN LINE. THE   36800002
.*                                 LABELS SHOULD BE ENCLOSED IN QUOTA-  36880002
.*                                 TION MARKS. THE COLUMN AND LINE END  36960002
.*                                 CONTROLS WILL BE INSERTED BY THE     37040002
.*                                 MACRO. OMITTED OPERANDS MEAN NO      37120002
.*                                 LABEL REQUIRED FOR RESPECTIVE        37200002
.*                                 COLUMN.                              37280002
         GBLA  &BITS(3000),&DB,&DT,&INITIAL                             37360002
         GBLA  &ITEMITR,&ITEMFST(20),&ITEMNBR,&ITEMMDX                  37440002
         GBLA  &ITEMNDX(3000),&ITEMXPT                                  37520002
         GBLA  &LABELNR,&LASTCC,&LB,&LBLCTR(100),&LPTR,&LT              37600002
         GBLA  &NRENTS,&SHIFT(3000)                                     37680002
         GBLB  &DIAGITF,&DIAGLIN,&DIAGSET,&DIAGTST,&FSW,&TEST           37760002
         GBLC  &CARRCON,&CSECT,&DSECT,&ITEM(3000)                       37840002
         GBLC  &LABELS(3000),&LBL(100),&NRENTSX                         37920002
         LCLC  &MARGIN,&TACK                                            38000002
         LCLC  &TEXT                                                    38080002
         LCLA  &OP,&K,&START,&NRCHAR,&REMAIN                            38160002
         AIF   (&INITIAL EQ 0).DIAGCLR                                  38240002
         AIF   (&DIAGTST EQ 0).DIAGCLR                                  38320002
         AIF   (&DIAGLIN EQ 1).DIAGCLR                                  38400002
         MNOTE '**NO LINE ASSOCIATED WITH PREVIOUS LABEL**'             38480002
***** THE FOLLOWING GENERATED FOR TEST PURPOSES *****                   38560002
*        LINE                                                           38640002
         LINE                                                           38720002
.DIAGCLR ANOP                                                           38800002
&DIAGSET SETB  0                                                        38880002
&DIAGLIN SETB  0                                                        38960002
&MARGIN  SETC  '*'                                                      39040002
         AIF   ('&NAME' EQ '').LOOPOUT                                  39120002
&LPTR    SETA  &LPTR+1                                                  39200002
&LBL(&LPTR) SETC '&NAME'                                                39280002
&LBLCTR(&LPTR) SETA &LABELNR+1                                          39360002
.LOOPOUT ANOP                                                           39440002
&OP      SETA  &OP+1                                                    39520002
&K       SETA  K'&SYSLIST(&OP)                                          39600002
         AIF (&K GE 2).NORM                                             39680002
&K       SETA  2                                                        39760002
.NORM    ANOP                                                           39840002
&START   SETA  2                                                        39920002
         AIF (&OP LT N'&SYSLIST).NOTLAST                                40000002
&MARGIN  SETC  '$'                                                      40080002
.NOTLAST ANOP                                                           40160002
&NRCHAR  SETA  8                                                        40240002
&TACK    SETC  ''                                                       40320002
.LOOPIN  ANOP                                                           40400002
&REMAIN  SETA  &K-&START                                                40480002
         AIF (&REMAIN GE 8).MORE                                        40560002
&TACK    SETC  '&MARGIN'                                                40640002
&NRCHAR  SETA  &REMAIN                                                  40720002
.MORE    ANOP                                                           40800002
&TEXT    SETC  ''                                                       40880002
         AIF (&REMAIN EQ 0).ENDTEXT                                     40960002
&TEXT    SETC  '&SYSLIST(&OP)'(&START,&NRCHAR)                          41040002
.ENDTEXT ANOP                                                           41120002
&LABELNR SETA  &LABELNR+1                                               41200002
&LABELS(&LABELNR) SETC '&TEXT'.'&TACK'                                  41280002
&START   SETA  &START+8                                                 41360002
         AIF ('&TACK' EQ '').LOOPIN                                     41440002
         AIF ('&TACK' EQ '*').LOOPOUT                                   41520002
         MEND                                                           41600002
         MACRO                                                          41680002
&NAME    LINE  &DATA,&LABEL,&SKIP=                                      41760002
.*                            THIS MACRO ESTABLISHES THE MARGINS OR     41840002
.*                                 COLUMN SETTINGS FOR EACH LINE. IT    41920002
.*                                 GENERATES NECESSARY CARRIAGE CONTROL 42000002
.*                                 ENTRIES. LASTLY IT DETERMINES THE    42080002
.*                                 NUMBER OF ENTRIES ASSOCIATED WITH    42160002
.*                                 THE PREVIOUS LINE AND STORES THAT #  42240002
.*                                 INTO THE APPROPRIATE BYTE.           42320002
.*                            &DATA(1) - CHARACTER POSITION TO BEGIN    42400002
.*                                 DATA.                                42480002
.*                            &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 42560002
.*                                 DATA COLUMN STARTING CHARACTERS.     42640002
.*                            &LABEL(1) - CHAR. POS. TO BEGIN LABELS.   42720002
.*                            &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 42800002
.*                                 STARTING CHARACTERS.                 42880002
.*                            &SKIP= - # OF LINES TO ADVANCE CARRIAGE   42960002
.*                                 TO BEGIN NEXT PRINTED LINE.          43040002
.*                            NEW ENTRIES ARE GENERATED ONLY WHEN       43120002
.*                                 NECESSARY. OMISSION OF ITEMS MEANS   43200002
.*                                 THEY HAVE NOT CHANGED SINCE PREVIOUS 43280002
.*                                 SETTINGS. A LINE MACRO IS REQUIRED   43360002
.*                                 FOR EACH PRINTED LINE. IF NO SETTING 43440002
.*                                 CHANGES ARE REQUIRED ALL OPERANDS    43520002
.*                                 ARE OMITTED IN WHICH CASE ONLY THE   43600002
.*                                 # OF ENTRIES FOR THE PREVIOUS LINE   43680002
.*                                 IS COMPUTED. THIS MACRO MUST BE THE  43760002
.*                                 FIRST MACRO INSTRUCTION ISSUED FOR   43840002
.*                                 THE SUBJECT LINE                     43920002
         GBLA  &BITS(3000),&DB,&DT,&INITIAL                             44000002
         GBLA  &ITEMITR,&ITEMFST(20),&ITEMNBR,&ITEMMDX                  44080002
         GBLA  &ITEMNDX(3000),&ITEMXPT                                  44160002
         GBLA  &LABELNR,&LASTCC,&LB,&LBLCTR(100),&LPTR,&LT              44240002
         GBLA  &NRENTS,&SHIFT(3000)                                     44320002
         GBLB  &DIAGITF,&DIAGLIN,&DIAGSET,&DIAGTST,&FSW,&TEST           44400002
         GBLC  &CARRCON,&CSECT,&DSECT,&ITEM(3000)                       44480002
         GBLC  &LABELS(3000),&LBL(100),&NRENTSX                         44560002
         LCLA  &S                                                       44640002
         AIF   (&INITIAL EQ 0 OR &DIAGTST EQ 0).DIAGSET                 44720002
         AIF   (&DIAGSET EQ 0).DIAGSET                                  44800002
         MNOTE '**NO LABEL ASSOCIATED WITH LAST SET**'                  44880002
***** THE FOLLOWING GENERATED FOR TEST PURPOSES *****                   44960002
*        LABEL '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'       45040002
               LABEL '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%' 45120002
.DIAGSET ANOP                                                           45200002
&DIAGSET SETB  1                                                        45280002
&DIAGLIN SETB  1                                                        45360002
&NAME    DS    0C                                                       45440002
         AIF   (&INITIAL EQ 0).FIRSTLN                                  45520002
         LINEND                                                         45600002
         AGO   .NTFIRST                                                 45680002
.FIRSTLN ANOP                                                           45760002
&NRENTSX SETC  'N&SYSNDX'                                               45840002
&INITIAL SETA  1                                                        45920002
N&SYSNDX EQU   *                                                        46000002
.NTFIRST ANOP                                                           46080002
         DC    AL1(0)                                                   46160002
         AIF   ('&DATA(1)' EQ '').CKDTABS                               46240002
         AIF   (&DATA(1) EQ &DB).CKDTABS                                46320002
&DB      SETA  &DATA(1)                                                 46400002
         AGO   .AA                                                      46480002
.CKDTABS AIF   ('&DATA(2)' EQ '').NCDATA                                46560002
         AIF   (&DATA(2) EQ &DT).NCDATA                                 46640002
         AGO   .CC                                                      46720002
.AA      AIF   ('&DATA(2)' EQ '').BB                                    46800002
         AIF   (&DATA(2) EQ &DT).BB                                     46880002
.CC      ANOP                                                           46960002
&DT      SETA  &DATA(2)                                                 47040002
.BB      DC    XL2'FFFE'                                                47120002
         DC    FL1'&DB'                                                 47200002
         DC    FL1'&DT'                                                 47280002
&NRENTS  SETA  &NRENTS+1                                                47360002
.NCDATA  ANOP                                                           47440002
         AIF   ('&LABEL(1)' EQ '').CKLTABS                              47520002
         AIF   (&LABEL(1) EQ &LB).CKLTABS                               47600002
&LB      SETA  &LABEL(1)                                                47680002
         AGO   .AAA                                                     47760002
.CKLTABS AIF   ('&LABEL(2)' EQ '').NCLABEL                              47840002
         AIF   (&LABEL(2) EQ &LT).NCLABEL                               47920002
         AGO   .CCC                                                     48000002
.AAA     AIF   ('&LABEL(2)' EQ '').BBB                                  48080002
         AIF   (&LABEL(2) EQ &LT).BBB                                   48160002
.CCC     ANOP                                                           48240002
&LT      SETA  &LABEL(2)                                                48320002
.BBB     DC    XL2'FFFF'                                                48400002
         DC    FL1'&LB'                                                 48480002
         DC    FL1'&LT'                                                 48560002
&NRENTS  SETA  &NRENTS+1                                                48640002
.NCLABEL ANOP                                                           48720002
         AIF   ('&SKIP' NE '').CONT                                     48800002
         AIF   (&TEST EQ 0).NOCHANG                                     48880002
         AGO   .DEFALTA                                                 48960002
.CONT    ANOP                                                           49040002
         AIF   (&TEST EQ 0).AB                                          49120002
         AIF   ('&SKIP' EQ 'E').AB                                      49200002
&S       SETA  &SKIP                                                    49280002
.DEFAULT ANOP                                                           49360002
         AIF   (&SKIP EQ &LASTCC).DEFALTA                               49440002
         ORG   &CARRCON+3                                               49520002
         DC    AL.3(0),AL.2(&S),AL.3(1)                                 49600002
         ORG                                                            49680002
&LASTCC  SETA  &S                                                       49760002
.DEFALTA ANOP                                                           49840002
&TEST    SETB  0                                                        49920002
         AGO   .DD                                                      50000002
.AB      AIF   ('&SKIP' NE 'E').ABB                                     50080002
A&SYSNDX DC    X'FFFB8B00'              EJECT                           50160002
&LASTCC  SETA  184                                                      50240002
&TEST    SETB  1                                                        50320002
         AGO   .ABC                                                     50400002
.ABB     AIF   (&SKIP EQ &LASTCC).NOCHANG                               50480002
A&SYSNDX DC    XL2'FFFB'                                                50560002
         DC    AL.3(0),AL.2(&SKIP),AL.3(1)                              50640002
         DC    AL.3(0),AL.2(&SKIP),AL.3(1)                              50720002
&LASTCC  SETA  &SKIP                                                    50800002
&TEST    SETB  1                                                        50880002
.ABC     ANOP                                                           50960002
&CARRCON SETC  'A&SYSNDX'                                               51040002
&NRENTS  SETA  &NRENTS+1                                                51120002
.DD      ANOP                                                           51200002
.NOCHANG ANOP                                                           51280002
         MEND                                                           51360002
         MACRO                                                          51440002
         LINEND ,                                                       51520002
.*                                 THIS MACRO IS USED ONLY BY THE LINE  51600002
.*                                 MACRO TO SET THE NUMBER OF ENTRIES   51680002
.*                                 ASSOCIATED WITH EACH LINE.           51760002
         GBLA  &BITS(3000),&DB,&DT,&INITIAL                             51840002
         GBLA  &ITEMITR,&ITEMFST(20),&ITEMNBR,&ITEMMDX                  51920002
         GBLA  &ITEMNDX(3000),&ITEMXPT                                  52000002
         GBLA  &LABELNR,&LASTCC,&LB,&LBLCTR(100),&LPTR,&LT              52080002
         GBLA  &NRENTS,&SHIFT(3000)                                     52160002
         GBLB  &DIAGITF,&DIAGLIN,&DIAGSET,&DIAGTST,&FSW,&TEST           52240002
         GBLC  &CARRCON,&CSECT,&DSECT,&ITEM(3000)                       52320002
         GBLC  &LABELS(3000),&LBL(100),&NRENTSX                         52400002
         ORG   &NRENTSX                                                 52480002
         DC    FL1'&NRENTS'                                             52560002
         ORG                                                            52640002
&NRENTS  SETA  0                                                        52720002
B&SYSNDX EQU   *                                                        52800002
&NRENTSX SETC  'B&SYSNDX'                                               52880002
         MEND                                                           52960002
         MACRO                                                          53040002
         LSTART ,                                                       53120002
.*                            THIS MACRO IS ISSUED WHEN THE LABEL AREA  53200002
.*                                 OF THE TABLE IS TO BEGIN.            53280002
         GBLA  &BITS(3000),&DB,&DT,&INITIAL                             53360002
         GBLA  &ITEMITR,&ITEMFST(20),&ITEMNBR,&ITEMMDX                  53440002
         GBLA  &ITEMNDX(3000),&ITEMXPT                                  53520002
         GBLA  &LABELNR,&LASTCC,&LB,&LBLCTR(100),&LPTR,&LT              53600002
         GBLA  &NRENTS,&SHIFT(3000)                                     53680002
         GBLB  &DIAGITF,&DIAGLIN,&DIAGSET,&DIAGTST,&FSW,&TEST           53760002
         GBLC  &CARRCON,&CSECT,&DSECT,&ITEM(3000)                       53840002
         GBLC  &LABELS(3000),&LBL(100),&NRENTSX                         53920002
         LCLA  &NDX,&CTR                                                54000002
         ACTR  500000                                                   54080002
         AIF   (&DIAGTST EQ 0).NODIAG                                   54160002
         AIF   (&DIAGSET EQ 0).NODIAG                                   54240002
         MNOTE '**NO LABEL ASSOCIATED WITH LAST SET**'                  54320002
***** THE FOLLOWING GENERATED FOR TEST PURPOSES *****                   54400002
*        LABEL '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'       54480002
               LABEL '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%' 54560002
.NODIAG  ANOP                                                           54640002
         LINEND                                                         54720002
&CTR     SETA  1                                                        54800002
.LOOP    ANOP                                                           54880002
&NDX     SETA  &NDX+1                                                   54960002
         AIF   (&LBLCTR(&CTR) NE &NDX).NOLBL                            55040002
&LBL(&CTR) DC  C'&LABELS(&NDX)'                                         55120002
&CTR     SETA  &CTR+1                                                   55200002
         AGO   .LOOPCTL                                                 55280002
.NOLBL   ANOP                                                           55360002
         DC    C'&LABELS(&NDX)'                                         55440002
.LOOPCTL AIF   (&NDX LT &LABELNR).LOOP                                  55520002
         MEND                                                           55600002
         MACRO                                                          55680002
&NAME    ROUTINE &LOGITEM,&RNAME                                        55760002
         GBLA  &BITS(3000),&DB,&DT,&INITIAL                             55840002
         GBLA  &ITEMITR,&ITEMFST(20),&ITEMNBR,&ITEMMDX                  55920002
         GBLA  &ITEMNDX(3000),&ITEMXPT                                  56000002
         GBLA  &LABELNR,&LASTCC,&LB,&LBLCTR(100),&LPTR,&LT              56080002
         GBLA  &NRENTS,&SHIFT(3000)                                     56160002
         GBLB  &DIAGITF,&DIAGLIN,&DIAGSET,&DIAGTST,&FSW,&TEST           56240002
         GBLC  &CARRCON,&CSECT,&DSECT,&ITEM(3000)                       56320002
         GBLC  &LABELS(3000),&LBL(100),&NRENTSX                         56400002
         AIF   (&DIAGTST EQ 0).NOMSG                                    56480002
         AIF   (&INITIAL EQ 0).NOMSG                                    56560002
         AIF   (&DIAGLIN EQ 1).NOMSG                                    56640002
         MNOTE '**NO LINE ASSOCIATED WITH THIS ROUTINE**'               56720002
*****THE FOLLOWING GENERATED FOR TEST PURPOSES*****                     56800002
*        LINE                                                           56880002
         LINE                                                           56960002
.NOMSG   ANOP                                                           57040002
&NAME    DC    AL.12(&LOGITEM-&DSECT),XL.4'D'                           57120002
         DC    AL2(&RNAME-&CSECT)                                       57200002
&NRENTS  SETA  &NRENTS+1                                                57280002
         MEND                                                           57360002
         MACRO                                                          57440002
         SPECIAL &ROUTINE,&PARAM,&SPACE=                                57520002
.*                            THIS MACRO GENERATES A SPECIAL ROUTINE    57600002
.*                                 ENTRY TO BE PROCESSED BY THE SUM. M. 57680002
.*                            &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 57760002
.*                            &PARAM - AN 8 BIT BINARY REPRESENTATION   57840002
.*                                 TO OCCUPY THE 'MASK' FIELD BUT TO BE 57920002
.*                                 INTERPRETED AS AN ARGUMENT OF THE    58000002
.*                                 SPECIAL ROUTINE.                     58080002
.*                            &SPACE - THE NUMBER OF 2BYTE COUNTERS TO  58160002
.*                                 ALLOCATE FOR REQUIRED PROCESSING.    58240002
         GBLC  &CSECT                                                   58320002
         GBLA  &COUNTR                                                  58400002
         LCLA  &ADD                                                     58480002
         DC    AL1(128)                                                 58560002
         DC    BL.8'&PARAM'                                             58640002
         DC    AL2(&ROUTINE-&CSECT)                                     58720002
         DC    AL2(&COUNTR)                                             58800002
&ADD     SETA  1                                                        58880002
         AIF   ('&SPACE' EQ '').NORM                                    58960002
&ADD     SETA  &SPACE                                                   59040002
.NORM    ANOP                                                           59120002
&COUNTR  SETA  &COUNTR+&ADD                                             59200002
         MEND                                                           59280002
         MACRO                                                          59360002
         HEX   ,                                                        59440002
.*                            THIS MACRO FACILITATES GENERATION OF THE  59520002
.*                                 TABLE ENTRIES SPECIFYING HEX TYPE    59600002
.*                                 CONVERSIONS.                         59680002
.*                            &SYSLIST(&OP,1) - NAME OF DATA ITEM TO BE 59760002
.*                                 CONVERTED                            59840002
.*                            &SYSLIST(&OP,2) - # OF SPACES TO SKIP ON  59920002
.*                                 MULTIPLE PRINT OR NBR OF SPACES TO   60000002
.*                                 BACK UP FROM COLUMN FOR START OF     60080002
.*                                 PRINTING. THE LETTER B PRECEEDS THE  60160002
.*                                 NUMBER (B8) IF THE LATTER OPTION IS  60240002
.*                                 DESIRED. OMISSION OF THIS OPERAND    60320002
.*                                 FORCES OPTION 2 WITH BACKUP SPACING  60400002
.*                                 EQUAL TO THE NUMBER OF BYTES SPECI-  60480002
.*                                 FIED BY THE NEXT OPERAND (TWICE THIS 60560002
.*                                 NUMBER IF SUFFIX IS EXPLICITLY OR    60640002
.*                                 IMPLICITLY B).                       60720002
.*                            &SYSLIST(&OP,3) - NUMBER OF BYTES TO      60800002
.*                                 PROCESS. THIS NUMBER IS SUFFIXED     60880002
.*                                 WITH AN L,R, OR B TO STIPULATE       60960002
.*                                 PRINTING OF THE LEFT HALF, RIGHT     61040002
.*                                 HALF, OR BOTH HALVES OF THE BYTE     61120002
.*                                 RESPECTIVELY. OMISSION OF THIS       61200002
.*                                 OPERAND DEFAULTS TO B WITH THE NUM-  61280002
.*                                 BER OF BYTES EQUAL TO THE ITEM LNGTH 61360002
.*                            A NEW ENTRY IS GENERATED ONLY WHEN NECES- 61440002
.*                                 SARY. THIS MACRO MUST BE THE FIRST   61520002
.*                                 MACRO INSTRUCTION ISSUED FOR THE     61600002
.*                                 SUBJECT LINE(S).                     61680002
         GBLA  &BITS(3000),&DB,&DT,&INITIAL                             61760002
         GBLA  &ITEMITR,&ITEMFST(20),&ITEMNBR,&ITEMMDX                  61840002
         GBLA  &ITEMNDX(3000),&ITEMXPT                                  61920002
         GBLA  &LABELNR,&LASTCC,&LB,&LBLCTR(100),&LPTR,&LT              62000002
         GBLA  &NRENTS,&SHIFT(3000)                                     62080002
         GBLB  &DIAGITF,&DIAGLIN,&DIAGSET,&DIAGTST,&FSW,&TEST           62160002
         GBLC  &CARRCON,&CSECT,&DSECT,&ITEM(3000)                       62240002
         GBLC  &LABELS(3000),&LBL(100),&NRENTSX                         62320002
         LCLB  &B,&SUB                                                  62400002
         LCLA  &IBITS,&ISHIFT,&K,&T,&CODE,&BYTESP,&OP                   62480002
         LCLC  &S,&LETTER,&ARG                                          62560002
       ACTR  500000                                                     62640002
         AIF   (&DIAGTST EQ 0).NOMSG                                    62720002
         AIF   (&INITIAL EQ 0).NOMSG                                    62800002
         AIF   (&DIAGLIN EQ 1).NOMSG                                    62880002
         MNOTE '**NO LINE ASSOCIATED WITH THIS DATA**'                  62960002
*****THE FOLLOWING GENERATED FOR TEST PURPOSES*****                     63040002
*        LINE                                                           63120002
         LINE                                                           63200002
.NOMSG   ANOP                                                           63280002
         AIF   (K'&SYSLIST(1) EQ K'&SYSLIST(1,1)).LOOP                  63360002
&SUB     SETB  1                                                        63440002
.LOOP    ANOP                                                           63520002
&OP      SETA  &OP+1                                                    63600002
&ARG     SETC  '&SYSLIST(&OP,1)'                                        63680002
         ITEMFIND  &ARG                                                 63760002
         AIF   (&ITEMXPT EQ 0).MEXIT                                    63840002
.FOUND   ANOP                                                           63920002
&ISHIFT  SETA  &SHIFT(&ITEMXPT)                                         64000002
&IBITS   SETA  &BITS(&ITEMXPT)                                          64080002
         AIF   (&ISHIFT EQ 0 OR &ISHIFT EQ 4).ALIGN                     64160002
.ERR     MNOTE '**DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY**'          64240002
.MEXIT   MEXIT                                                          64320002
.ALIGN   ANOP                                                           64400002
&CODE    SETA  1                                                        64480002
         AIF   (&SUB EQ 1).SUBA                                         64560002
&K       SETA  K'&SYSLIST(3)                                            64640002
         AGO   .SUBB                                                    64720002
.SUBA    ANOP                                                           64800002
&K       SETA  K'&SYSLIST(&OP,3)                                        64880002
.SUBB    ANOP                                                           64960002
         AIF   (&K EQ 1).ERR3                                           65040002
         AIF   (&IBITS-(&IBITS/4)*4 EQ 0).OK                            65120002
         MNOTE '**BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL**' 65200002
         MEXIT                                                          65280002
.OK      AIF   (&SUB EQ 1).SUBC                                         65360002
         AIF   ('&SYSLIST(3)' EQ '').USEDEFN                            65440002
&LETTER  SETC  '&SYSLIST(3)'(&K,1)                                      65520002
&S       SETC  '&SYSLIST(3)'(1,&K-1)                                    65600002
         AGO   .SUBD                                                    65680002
.SUBC    ANOP                                                           65760002
         AIF   ('&SYSLIST(&OP,3)' EQ '').USEDEFN                        65840002
&LETTER  SETC  '&SYSLIST(&OP,3)'(&K,1)                                  65920002
&S       SETC  '&SYSLIST(&OP,3)'(1,&K-1)                                66000002
.SUBD    ANOP                                                           66080002
&BYTESP  SETA  &S                                                       66160002
         AIF   ('&LETTER' EQ 'B').BOTH                                  66240002
         AIF   ('&LETTER' EQ 'L').LEFT                                  66320002
         AIF   ('&LETTER' EQ 'R').RIGHT                                 66400002
.ERR3    MNOTE '**PARAMETER 3 INCOMPLETE-DSGEN DEFINITION USED**'       66480002
         AGO   .USEDEFN                                                 66560002
.RIGHT   ANOP                                                           66640002
&CODE    SETA  2                                                        66720002
         AGO   .L                                                       66800002
.LEFT    ANOP                                                           66880002
&CODE    SETA  1                                                        66960002
         AGO   .L                                                       67040002
.USEDEFN ANOP                                                           67120002
&BYTESP  SETA  &IBITS/8                                                 67200002
.BOTH    AIF   (&ISHIFT NE 0).ERR                                       67280002
&CODE    SETA  3                                                        67360002
&T       SETA  &BYTESP*2-1                                              67440002
&S       SETC  '&T'                                                     67520002
.OK2     AIF   (&ISHIFT EQ 0).L                                         67600002
&CODE    SETA  2                                                        67680002
.L       ANOP                                                           67760002
&B       SETB  1                                                        67840002
         AIF   (&SUB EQ 1).SUBE                                         67920002
         AIF   ('&SYSLIST(2)' EQ '').BACKUP                             68000002
&K       SETA  K'&SYSLIST(2)                                            68080002
&B       SETB  ('&SYSLIST(2)'(1,1) EQ 'B')                              68160002
&S       SETC  '&SYSLIST(2)'(&B+1,&K-&B)                                68240002
         AGO   .SUBF                                                    68320002
.SUBE    ANOP                                                           68400002
         AIF   ('&SYSLIST(&OP,2)' EQ '').BACKUP                         68480002
&K       SETA  K'&SYSLIST(&OP,2)                                        68560002
&B       SETB  ('&SYSLIST(&OP,2)'(1,1) EQ 'B')                          68640002
&S       SETC  '&SYSLIST(&OP,2)'(&B+1,&K-&B)                            68720002
.SUBF    ANOP                                                           68800002
.BACKUP  ANOP                                                           68880002
&NRENTS  SETA  &NRENTS+1                                                68960002
         AIF   (&BYTESP GT 0 AND &BYTESP LT 16).SUB0                    69040002
         MNOTE '**NO. OF BYTES OUTSIDE RANGE OF 1-15**'                 69120002
         MEXIT                                                          69200002
.SUB0    AIF   (&SUB EQ 1).SUBG                                         69280002
         DC    AL.12(&SYSLIST(1)-&DSECT),XL.4'A'                        69360002
         AGO   .SUBH                                                    69440002
.SUBG    ANOP                                                           69520002
         DC    AL.12(&SYSLIST(&OP,1)-&DSECT),XL.4'A'                    69600002
.SUBH    ANOP                                                           69680002
         DC    BL.1'&B',FL.7'&S',AL.4(&BYTESP),FL.4'&CODE'              69760002
.OUT     ANOP                                                           69840002
&ITEMXPT     SETA  0                                                    69920002
         AIF   (&SUB EQ 0).OUTA                                         70000002
         AIF   (&OP LT N'&SYSLIST).LOOP                                 70080002
.OUTA    ANOP                                                           70160002
         MEND                                                           70240002
         MACRO                                                          70320002
         SUM   &LOGITEM,&MASK                                           70400002
.*                            THIS MACRO GENERATES A NORMAL EDIT ENTRY  70480002
.*                                 FOR PROCESSING BY THE SUMMARY MODULE 70560002
.*                            &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 70640002
.*                            &MASK - BYTE MASK FOR BITS TO BE TESTED.  70720002
.*                                 THIS OPERAND SHOULD BE OMITTED FOR   70800002
.*                                 SINGLE BIT ITEMS IN WHICH CASE THE   70880002
.*                                 MASK WILL BE SET ACCORDING TO THE    70960002
.*                                 OFF BYTE BIT DISPLACEMENT OF THE     71040002
.*                                 ITEM AS DEFINED BY THE MACRO 'DSGEN' 71120002
         GBLA  &COUNTR,&ITEMNBR,&BITS(3000),&SHIFT(3000)                71200002
         GBLC  &ITEM(3000),&DSECT                                       71280002
         LCLA  &IBITS,&NDX,&ISHIFT,&M,&BITNBR                           71360002
.LOOP    ANOP                                                           71440002
&NDX     SETA  &NDX+1                                                   71520002
         AIF   ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND                      71600002
         AIF   (&NDX LT &ITEMNBR).LOOP                                  71680002
         MNOTE *,'LOGITEM NOT FOUND'                                    71760002
         MEXIT                                                          71840002
.FOUND   ANOP                                                           71920002
&ISHIFT  SETA  &SHIFT(&NDX)                                             72000002
&IBITS   SETA  &BITS(&NDX)                                              72080002
         AIF   (&IBITS EQ 1).FORM1      TEST FOR OLD FORM               72160002
         AIF   ('&MASK' NE '').FORM1    TEST FOR MASK                   72240002
         AIF   (&IBITS+&ISHIFT GT 8).MSG     TEST FOR MORE THAN EIGHT   72320002
         DC    AL.1(0),AL.3(&ISHIFT),AL.4(&IBITS)                       72400002
         DC    AL1(0)                                                   72480002
         AGO   .ITEM                                                    72560002
.MSG     MNOTE '**BITS GREATER THAN 8**'                                72640002
         MEXIT                                                          72720002
.FORM1   ANOP                                                           72800002
         DC    AL1(0)                                                   72880002
         AIF   ('&MASK' EQ '').FORM                                     72960002
         DC    B'&MASK'                                                 73040002
         AGO   .ITEM                                                    73120002
.FORM    ANOP                                                           73200002
&BITNBR  SETA  &ISHIFT-7                                                73280002
&BITNBR  SETA  0-&BITNBR                                                73360002
&M       SETA  1                                                        73440002
.LOOP2   ANOP                                                           73520002
         AIF   (&BITNBR EQ 0).GOTIT                                     73600002
&M       SETA  &M*2                                                     73680002
&BITNBR  SETA  &BITNBR-1                                                73760002
         AGO   .LOOP2                                                   73840002
.GOTIT   ANOP                                                           73920002
         DC    AL1(&M)                                                  74000002
.ITEM    DC    AL2(&LOGITEM-&DSECT)                                     74080002
         DC    AL2(&COUNTR)                                             74160002
&COUNTR  SETA  &COUNTR+1                                                74240002
         MEND                                                           74320002
         GBLC  &DSECT,&CSECT                                            74400002
&CSECT   SETC  'IFCSXXXG'          ALIAS IFCST00E                       74480002
&DSECT   SETC  'RECORD'                                                 74560002
IFCSXXXG CSECT                                                          74640002
RECORD   DSECT                                                          74720002
         DS    0F                  HEADING DSECT FOR OBR & MDR          74800002
         DSGEN (CLASRC,8),              RECORD TYPE                    X74880002
               (SYSREL,8),              SYSTEM & RELEASE LEVEL         X74960002
               (SWITCH,8,0,3),          SWITCHES (4, OF THEM)          X75040002
               (RCDCNT,8),              COUNT & MULTI PART ID          X75120002
               (SPACE1,8),              SPACE (1,BYTE)                 X75200002
               (DATE,32),               DATE                           X75280002
               (TIME,32),               TIME                           X75360002
               (VERNO,8),               MACHINE VERSION                X75440002
               (CPUSER,24),             C P U SERIAL NO.               X75520002
               (CPUID,16),              C P U I.D.                     X75600002
               (MCEL,16)                MAX LGTH OF MACH DEP LOG        75680002
*                            --------------------------                 75760002
*                                  OBR (UNIT CHECK) DSECT               75840002
*                            --------------------------                 75920002
         DSGEN (JOBID,64),              JOB NAME                       X76000002
               (FAILCCW,64),            FAILING CCW                    X76080002
               (CSW,64),                CSW CONTENTS                   X76160002
               (DEVDEPC,8),             DEV DEPNOT DATA COUNT          X76240002
               (SECUA,24),              SECONDARY CHAN & UNIT ADDR     X76320002
               (DEVTYPE,32),            DEVICE TYPE BYTES              X76400002
               (SDRCNT,8),              # OF SDR BYTES IN RCD          X76480002
               (PCUP,24),               PRIMARY CHAN & UNIT ADDR       X76560002
               (IORETRY,16),            # OF I/O RETRY ATTEMPTS        X76640002
               (SENSCNT,16),            # OF SENSE BYTES IN RCD        X76720002
               (SDR,4,0,1,0,9),         SDR WORK AREA                  X76800002
               (SNS,1,0,23,0,7)         SENSE BYTES                     76880002
*                                  MDR DSECT                            76960002
         ORG   JOBID                                                    77040002
         DSGEN (DEVCUA,16),             DEV CHAN & UNIT ADDR           X77120002
               (SPARE,48),              SPACE (6 BYTES)                X77200002
               (SENSE01,64),            SENSE INFO  1                  X77280002
               (SENSE02,64),            SENSE INFO  2                  X77360002
               (SENSE03,64),            SENSE INFO  3                  X77440002
               (SENSE04,64),            SENSE INFO  4                  X77520002
               (SENSE05,64),            SENSE INFO  5                  X77600002
               (SENSE06,64),            SENSE INFO  6                  X77680002
               (SENSE07,64),            SENSE INFO  7                  X77760002
               (SENSE08,64),            SENSE INFO  8                  X77840002
               (SENSE09,64),            SENSE INFO  9                  X77920002
               (SENSE10,64),            SENSE INFO 10                  X78000002
               (SENSE11,64),            SENSE INFO 11                  X78080002
               (SENSE12,64),            SENSE INFO 12                  X78160002
               (SENSE13,64),            SENSE INFO 13                  X78240002
               (SENSE14,64),            SENSE BYTE 14                  X78320002
               (SENSE15,64),            SENSE BYTE 15                  X78400002
               (SENSE16,64),            SENSE BYTE 16                  X78480002
               (CPYCNT,32),             COPY COUNT                     X78560002
               (FORMFLSH,32)          FORMS FLASH COUNT                 78640002
         TITLE 'I F C S X X X G   SUMMARY TABLE FOR 3850 DEVICE'        78720002
         ORG   CSW+5                                                    78800002
         DSGEN (DUMMY,4),                                              X78880002
               (CDCK,1),                CHAN DATA CK                   X78960002
               (CCCK,1),                CHAN CTRL CK                   X79040002
               (IFCK,1),                INTR CTRL CK                   X79120002
               (CHCK,1)                 CHAIN CK                        79200002
         DSGEN (SNS,8,EQU,SNS00)        EQUATE FOR PTR SET-UP           79280002
IFCSXXXG CSECT                                                          79360002
         USING RECORD,R2                                                79440002
         USING *,R9                                                     79520002
         DC    A(ENTRY)                 PTR TO SUM ENTRIES              79600002
         DC    A(PEDIT)                 PTR TO EDIT TABLE               79680002
REG8     DC    F'0'                     PTR TO ACTIVE ENTRY             79760002
SCSIZE   DC    H'318'                   # OF 2 BYTE COUNTERS            79840002
R0       EQU   0                                                        79920002
R1       EQU   1                                                        80000002
R2       EQU   2                                                        80080002
R3       EQU   3                        COUNTER POINTER                 80160002
R4       EQU   4                                                        80240002
R5       EQU   5                                                        80320002
R6       EQU   6                                                        80400002
R7       EQU   7                                                        80480002
R8       EQU   8                                                        80560002
R9       EQU   9                                                        80640002
R10      EQU   10                                                       80720002
R11      EQU   11                                                       80800002
R12      EQU   12                                                       80880002
R13      EQU   13                                                       80960002
R14      EQU   14                                                       81040002
R15      EQU   15                                                       81120002
L0       EQU   0                                                        81200002
L1       EQU   1                                                        81280002
L2       EQU   2                                                        81360002
L3       EQU   3                                                        81440002
L4       EQU   4                                                        81520002
L5       EQU   5                                                        81600002
L6       EQU   6                                                        81680002
L7       EQU   7                                                        81760002
L8       EQU   8                                                        81840002
L9       EQU   9                                                        81920002
L10      EQU   10                                                       82000002
L11      EQU   11                                                       82080002
L12      EQU   12                                                       82160002
L13      EQU   13                                                       82240002
L14      EQU   14                                                       82320002
L15      EQU   15                                                       82400002
L16      EQU   16                                                       82480002
L17      EQU   17                                                       82560002
L18      EQU   18                                                       82640002
L19      EQU   19                                                       82720002
L20      EQU   20                                                       82800002
L21      EQU   21                                                       82880002
L22      EQU   22                                                       82960002
L23      EQU   23                                                       83040002
L28      EQU   28                                                       83120002
REGSAVE  DC    4F'0'                    REG SAVE AREA                   83200002
HW2      DC    H'2'                                                     83280002
HW8      DC    H'8'                     EIGHT                           83360002
HW16     DC    H'16'                    SIXTEEN                         83440002
WORK1    DC    D'0'                     WORK AREA # 1                   83520002
ENTRYNO  DC    H'0'                     ENTRY NUMBER                    83600002
NOCARRY  EQU   12                       COND CODE AFTER'AL'END CARRY    83680002
L46      EQU   46                       FOURTY SIX                      83760002
X20      EQU   X'20'                                                    83840002
X40      EQU   X'40'                                                    83920002
X7F      EQU   X'7F'                                                    84000002
X80      EQU   X'80'                                                    84080002
X90      EQU   X'90'                                                    84160002
X00      DC    2F'0'                                                    84240002
         DS    0F                                                       84320002
RETURN   LM    R5,R8,REGSAVE            RESTORE REGS                    84400002
SKIP     BR    R14                      RETURN                          84480002
MDRCK    EQU   *                                                        84560002
         STM   R5,R8,REGSAVE            SAVE REGS                       84640002
         TM    CLASRC,X90               MDR RECORD ?                    84720002
         BNO   RETURN                   NO, BR TO RETURN                84800002
         XC    ENTRYNO(L2),ENTRYNO      ZERO ENTRY NO. FIELD            84880002
         LR    R5,R3                    GET CTR PTR                     84960002
         BAL   R8,ADDUP                 GO ADD TO MDR CTR               85040002
         B    RETURN                 RETURN                             85120002
ADDUP    EQU   *                                                        85200002
         LH    R6,L0(R5)                LOAD SUM CTR                    85280002
         LA    R6,L1(R6)                ADD ONE TO CTR                  85360002
         STH   R6,L0(R5)                SAVE CTR                        85440002
         LA    R5,L2(R5)                BUMP SUM CTR PTR                85520002
         BR    R8                       RETURN                          85600002
OBRCNT   DS    0H                                                       85680002
         STM   R5,R8,REGSAVE            SAVE REGS                       85760002
         TM    CLASRC,X90               MDR RECORD ?                    85840002
         BO    RETURN                   YES, RETURN                     85920002
         LR    R5,R3                    GET COUNTER PTR                 86000002
         TM    SWITCH1,X20              OBR SHORT RECORD ?              86080002
         BNO   OBRLNG                   NO,BRANCH TO LONG               86160002
         BAL   R8,ADDUP                 YES, BR TO BUMP CTR             86240002
         LA    R5,L2(R5)               BUMP POINTER                     86320002
*        LA    R8,SHORTOBR-L6          GET ADDR FOR SHORT CTR START     86400002
*        ST    R8,REG8                 PUT IT IN THE POINTER            86480002
*        MVC   DEVTYPE(L8),JOBID       GET DEV TYPE,SDR CTR,CUA         86560002
*        MVC   SDR00(L8),FAILCCW       GET SDR INFO                     86640002
*                                      MAKING SHORT RECORD LOOK LONG    86720002
         B     RETURN                   RETURN                          86800002
OBRLNG   DS    0H                                                       86880002
         LA    R5,L2(R5)                BUMP CTR PTR                    86960002
         BAL   R8,ADDUP                 GO ADD TO CTR                   87040002
         B     RETURN                   RETURN                          87120002
XDATE1   DS    0H                                                       87200002
         STM   R5,R8,REGSAVE            SAVE REGS                       87280002
         CLC   DATE(L4),X00             IS DATE 0 ?                     87360002
         BE    RETURN                   YES, BR                         87440002
         CLC   L0(L4,R3),X00            IS LO DATE / ?                  87520002
         BNE   XDATE2                   NO, BR                          87600002
         MVC   L0(L4,R3),DATE           MOVE DATE IN                    87680002
XDATE2   EQU   *                                                        87760002
         CLC   DATE(L4),L0(R3)          CHECK FOR LO DATE               87840002
         BL    SAVELOW                  IT IS LOWER, BRANCH             87920002
         CLC   DATE(L4),L4(R3)          CHECK FOR HI DATE               88000002
         BNH   RETURN                   IT IS IN BETWEEN, BR            88080002
         MVC   L4(L4,R3),DATE           IT IS HIGHER, SAVE IT           88160002
         B     RETURN                   RETURN                          88240002
SAVELOW  EQU   *                                                        88320002
         MVC   L0(L4,R3),DATE           IT IS LO, SAVE IT               88400002
         B     RETURN                   RETURN                          88480002
ENTRY    DS    0F                                                       88560002
         SPECIAL XDATE1,0,SPACE=4                                       88640002
         SPECIAL MDRCK,0,SPACE=2                                        88720002
         SPECIAL OBRCNT,0,SPACE=2                                       88800002
         DC    XL1'FF'                  END OF SUM SECTION              88880002
PEDIT    DS    0F                                                       88960002
&DSECT   SETC  'OAKCTR'                                                 89040002
&CSECT   SETC  'PEDIT'                                                  89120002
         USING *,R9                                                     89200002
         USING OAKCTR,R2                                                89280002
         DC    A(PENTRY)                                                89360002
         DC    C'IFCSXXXG'                                     @Y17BSPM 89440002
YR9PTR   DC    F'0'                                            @Y17BSPM 89520002
YLABEL   DC    F'0'                                            @Y17BSPM 89600002
*                                                                       89680002
*        COUNTER DSECT DEFINITION,MUST BE IN ACCESS SEQUENCE            89760002
*                                                                       89840002
OAKCTR   DSECT                                                          89920002
         DS    3H                                                       90000002
         DSGEN (YDUMA,16),              DUMMY                          X90080002
               (YNOREC,16),             NO. OF RECORDS                 X90160002
               (YTYPE,8),               LAST TYPE ENCOUNTERED          X90240002
               (YCHAN,8),               CHAN ADDR                      X90320002
               (YUNU,8),                UNUSED                 @Y17BSPMX90400002
               (YCUA,16),               CHAN UNIT ADDR         @Y17BSPMX90440002
               (YSER,24),               CPU SERIAL #                   X90480002
               (YCPU,16),               CPU MODEL #                    X90560002
               (YSMSW,16)               SWITCH                          90640002
         DSGEN (LODATE,32),             EARLIEST DATE                  X90720002
               (HIDATE,32)              LATEST DATE                     90800002
         DSGEN (MDRCD,16),              COUNT OF MDR RECORDS           X90880002
               (CULOG,16),              ENTRIES IN ALL MDR RECORDS     X90960002
               (OBRST,16),              COUNT OF OBR SHORT RECORDS     X91040002
               (OBRLG,16)               COUNT OF OBR LONG RECORDS       91120002
IFCSXXXG CSECT                                                          91200002
*                                                                       91440002
*                        SPECIAL ROUTINES FOR SUMMARY                   91520002
*                                                                       91600002
         DS    0F                                                       91680002
RETURN1  LM    R5,R8,REGSAVE1           RESTORE REGS                    91760002
RETURN2  BR    R14                      RETURN TO CALLER                91840002
SETCPUNO EQU   *                                                        91920002
         STM   R5,R8,REGSAVE1           SAVE REGS                       92000002
         SR    R5,R5                    ZERO R5                         92080002
         IC    R5,L0(R4)                PICK UP CPU TYPE                92160002
         SLL   R5,L8                      V                             92240002
         IC    R5,L1(R4)                  V                             92320002
         LTR   R5,R5                    IS IT ZERO ?                    92400002
         BNZ   RETURN1                  NO, BRANCH                      92480002
         LA    R6,L46                   BACK UP POINTER 46 BYTES        92560002
         SR    R3,R6                     TO PUT IN NEW INFO             92640002
         MVC   L0(L6,R3),SHARED         SAY MODEL = SHARED     @Z427VLS 92720002
         B     RETURN1                  RETURN                          92880002
SETDATE  EQU   *                                                        92960002
         UNPK  WORK(L8),L0(L4,R4)       UNPACK A DATE                   93040002
         MVZ   WORK+L7(L1),WORK         MOVE IN ZONE BITS               93120002
         MVC   L0(L3,R3),WORK+L5        MOVE DAY TO PRINT BUFF          93200002
         MVC   L5(L2,R3),WORK+L3        MOVE YEAR TO RPINT BUFF         93280002
         BR    R14                      RETURN                          93360002
SPACE20  EQU   *                                                        93440002
         LA    R3,L19(R3)               BUMP POINTER TO BUFF            93520002
         BR    R14                      RETURN                          93600002
THEND    EQU   *                                                        93680002
         STM   R14,R12,L12(R13)         SAVE REGS                       93760002
         LR    R12,R13                  LOAD SAVE AREA ADDR             93840002
         LA    R13,FSAVE                LOAD MY SAVE AREA ADDR          93920002
         ST    R12,L4(R13)              SAVE CALLERS SAVE AREA ADDR     94000002
         ST    R13,L8(R12)              SAVE MY SAVE AREA ADDR @Y17BSPM 94080002
         L     R3,L4(R2)                LOAD ADDR OF NEXT CTR           94130002
         ST    R3,L28(R12)              SAVE POINTER           @Y17BSPM 94180002
         ST    R3,L28(R12)     SAVE ADDR OF NEXT COUNTER       @X060CHW 94200002
         LH    R0,SIZE                  LOAD SIZE OF CTRS               94240002
         LR    R1,R2                    LOAD ADDR OF CTRS               94320002
         FREEMAIN R,LV=(0),A=(1)        FREE CTR STORAGE                94400002
         LTR   R3,R3                    ARE THERE MORE CTRS ?           94480002
         BZ    RETURNF                  NO,RETURN                       94560002
         LR    R2,R3                    LOAD POINTER                    94640002
         LA    R5,PENTRY+L10            LOAD EDIT TBL ADDR              94720002
         ST    R5,YR9PTR                STORE IT FOR EREP CTL           94800002
         LA    R5,LABELS-L1             LOAD LABEL ADDR                 94880002
         ST    R5,YLABEL                STORE IT FOR EREP CTL           94960002
RETURNF  EQU   *                                                        95040002
         L     R13,L4(R13)              LOAD CALLERS SAVE AREA ADDR     95120002
         LM    R14,R12,L12(R13)         RESTORE REGS                    95200002
         BR    R14                      RETURN                          95280002
FSAVE    DC    18F'0'                                                   95360002
SIZE     DC    H'638'                   BYTES OF COUNTERS + 22          95440002
REGSAVE1 DC    4F'0'                    REG SAVE AREA                   95520002
SHARED   DC    C'SHARED'                                       @Z427VLS 95680002
WORK     DC    D'0'                     WORK AREA                       95760002
HW0      DC    H'0'                     ZERO FOR CTR COMPARE            95840002
PENTRY   DS    0F                                                       95920002
         DC   X'00010001'                                               96000002
         DC   X'00010001'                                               96080002
         DC    A(LABELS)                                                96160002
         DC    H'0'                                                     96240002
         DC    X'01'                                                    96320002
         DC    X'000B8B00'                                              96400002
         LABEL ''                                                       96480002
         LINE  (97,18),(1,103),SKIP=2                                   96560002
         HEX   YCPU,0,2B                                                96640002
         HEX   YSER,0,3B                                                96720002
         ROUTINE YCPU,SETCPUNO                                          96800002
         LABEL 'SUMMARY OF I/O RECORDS  TYPE - OBR/MDR      SOURCE - OUX96880002
               TBOARD/MISC    DEVICE TYPE 3850    MODEL-','SERIAL NO.'  96960002
         LINE  ,(13),SKIP=1                                             97040002
         LABEL 'DAY YEAR    DAY YEAR'                                   97120002
         LINE  (13,12),(1,20),SKIP=1                                    97200002
         ROUTINE LODATE,SETDATE                                         97280002
         ROUTINE HIDATE,SETDATE                                         97360002
         LABEL 'DATE RANGE','TO'                                        97440002
         LINE  (75),(50),SKIP=1                                         97520002
         CONVT OBRLG,2,4                                                97600002
         LABEL 'NO. OBR LONG RECORDS'                                   97680002
         LINE                                                           97760002
         CONVT MDRCD,2,4                                                97840002
         LABEL 'NO. MDR RECORDS'                                        97920002
         LINE  ,(74),SKIP=1                                             98000002
         LABEL '------'                                                 98080002
         LINE  (31,44),(9,41),SKIP=2                                    98160002
         HEX   YCUA,0,2B                                       @Y17BSPM 98240002
         CONVT YNOREC,2,4                                               98320002
         LABEL ' CHANNEL UNIT ADDRESS','TOTAL NUMBER OF RECORDS'        98400002
         LINE                                                           98480002
         ROUTINE YDUMA,THEND                                            98560002
         LABEL ''                                                       98640002
         DC    X'FF'                                                    98720002
         DC    X'0000'                                         @Y17BSPM 98800002
         DC    X'0000'                                         @Y17BSPM 98880002
         DC    X'0000'                                         @Y17BSPM 98960002
         DC    X'FF'                                                    99040002
         DC    XL2'0000'                                                99120002
         DC    XL2'0000'                                       @Y17BSPM 99200002
         DC    XL2'0000'                                                99280002
         DC    C'$'                                                     99360002
LABELS   EQU   *                                                        99440002
         LSTART                                                         99520002
         END                                                            99600002
