         MACRO                                                          00050002
         SGIEF016      &ID                                     @G64QPSJ 00100064
.* CHANGE LEVEL = 07/12/74                                     @Z30ANSF 00110003
.*              = 12/01/76                                     @ZA15758 00111064
.*              = 08/01/78 MVS SYSTEM CONTROL PROGRAM 2        @G64QPSJ 00113064
.*                                                                      00116064
.*A000000-999999                                                 Y02670 00120002
         COPY  SGIEF020                                                 00150002
         LCLA  &I,&J,&K,&L,&D,&GRP,&GLT(1917)                  @ZA15758 00160064
         LCLB  &P                                                       00250002
         LCLC  &HEX                                                     00300002
         ACTR  1000000                                                  00350002
.********************************************************************** 00400002
.*       EDTTAB  SUPPORT  MACRO                                         00450002
.*                                                                      00500002
.*  GENERATES HEADER SECTION,DEVICE LIST SECTION,AND GROUP              00550002
.*  DESCRIPTOR SECTION OF EDTTAB.                                       00600002
.*                                                                      00650002
.*   (MACRO HAS NO PARAMETERS)                                          00700002
.*                                                                      00750002
.*  INPUTS ARE GBL VARS 'GPFXT','DGR','DGE','DUL','DAD'.                00800002
.*  OUTPUT IS VARIABLE 'GXT' IN ADDITION TO TABLES.                     00850002
.*                                                                      00900002
.*  DEVICE LIST GENERATION CONSISTS OF SELECTING GENERIC TYPES          00950002
.*  IN THE ORDER OF THEIR CODES IN GPFXT, SCANNING DGE FOR ALL          01000002
.*  OCCURRENCES OF EACH GENERIC SELECTED, AND GENERATING A TABLE ENTRY  01050002
.*  CONTAINING THE DUL VALUE ASSOCIATED WITH EACH SELECTED DGE ENTRY.   01100002
.*  (ALL DEVICES IN A GROUP ARE CONSECUTIVE IN THE D.. VARIABLES AND    01150002
.*  ALL GROUPS IN A GENERIC TYPE ARE ALSO CONSECUTIVE.)                 01200002
.*  THE ENTRY INDEX OF EACH GROUP START IS SAVED IN LOCAL GLT FOR       01250002
.*  PHASE THAT GENS GROUP DESCRIPTORS. THE GROUP IDS ARE SAVED IN GXT   01300002
.*  IN THE ORDER PROCESSED.                                             01350002
.*                                                                      01400002
.*  GROUP DESCRIPTOR ENTRIES ARE PRODUCED DIRECTLY FROM GLT. THE ITH    01450002
.*  ENTRY OF GLT CONTAINS THE INDEX OF THE FIRST DEVICE LIST ENTRY      01500002
.*  FOR THE ITH GROUP.  THIS IS CONVERTED TO AN ADCON RELATIVE TO       01550002
.*  DEVICE LIST START..  COUNTS ARE OBTAINED AS DIFFERENCES BETWEEN     01600002
.*  CONSECUTIVE GLT ENTRIES.                                            01620064
.********************************************************************** 01700002
         TITLE 'EDTTAB  -  GENERAL HEADER'                              01750002
EDTTAB   CSECT                                                          01800002
         DC    A(NMTAB)                                                 01850002
         DC    A(GENTAB)                                                01900002
         DC    A(GDTAB)                                                 01950002
         DC    A(DLIST)                                                 02000002
         DC    A(MASKTAB)                                               02050002
         DC    A(GRPTAB)                                                02100002
         DC    A(PREFTAB)                                               02150002
         DC    CL8'&ID'               EDT ID                   @G64QPSJ 02160064
         DC    CL8'&SYSDATE'          DATE OF STAGE II         @G64QPSJ 02168064
         DC    CL5'&SYSTIME'          TIME OF STAGE II         @G64QPSJ 02176064
         DC    3XL1'00'               RESERVED                 @G64QPSJ 02184064
         AGO   .M1            INCLUDE DEVICE LIST                       02200002
.MAIN2   AGO   .R1            INCLUDE GROUP DESCRIPTORS                 02250002
.MAIN3   MEXIT                                                          02300002
.*  PROCEDURE -                                                         02350002
.*          GRP=1                                                       02400002
.*         (GEN TABLE START)                                            02450002
.*          DO I-1 BY 1 WHILE GPFXT(I) NE 0;                            02500002
.*              P=TRUE;                                                 02550002
.*              DO J=1 BY 1 WHILE DGR(J) NE 0 AND ((WHERE CLAUSE TRUE)  02600002
.*                                OR P) WHERE GPFXT(I) EQ DGE(J);       02650002
.*                  P=FALSE;                                            02700002
.*                  D=D+1;                            COUNT DEVICES     02750002
.*                  IF GXT(GRP) NE DGR(J);             TST 1'ST IN GRP  02800002
.*                      IF D GT 1;                      TST FIRST EVBR  02850002
.*                         GRP=GRP+1                                    02900002
.*                      GXT(GRP)=DGR(J);         SAVE OLD GRP ID        02950002
.*                      GLT(GRP)=D;              AND PTR TO 1ST IN GRP. 03000002
.*                 (GEN DLIST ENTRY WITH COMMENTARY)                    03050002
.*              END;                                                    03100002
.*          END.                                                        03150002
.*         (GEN TABLE ENDING)                                           03200002
.*          RETURN;                                                     03250002
.*                                                                      03300002
.********************************************************************** 03350002
.*                                                                      03400002
.*  IMPLEMENTATION -                                                    03450002
.M1      ANOP                                                           03500002
&GRP     SETA  1                                                        03550002
         TITLE 'EDTTAB - UCB LOOKUP VALUE SECTION'                      03600002
DLIST    DC    A(DLENTS)  HEADER                                        03650002
         DC    A(DLELEN)  SEGMENT                                       03700002
DLSTRT   DS    0A                                                       03750002
&I       SETA  0                        INIT DO INDEX                   03800002
.M100    ANOP                           TOP OF OUTER DO                 03850002
&I       SETA  &I+1                                                     03900002
         AIF   (&GPFXT(&I) EQ 0).M300       WHILE CLAUSE                03950002
         AIF   (&GPFXT(&I) GT 256).M300                                 04000002
&P       SETB  1                        INITIALIZE SWITCH FOR INNER DO  04050002
&J       SETA  0                        INIT DO INDEX                   04100002
.M200    ANOP                           TOP OF INNER DO                 04150002
&J       SETA  &J+1                                                     04200002
         AIF  (&DGR(&J)  EQ   0).M100     WHILE CLAUSE                  04250002
         AIF   (&GPFXT(&I) NE  &DGE(&J)).M202        WHILE/WHERE TEST.  04300002
&P       SETB  0     ** INDICATE GENERIC FOUND IN SYSLIST **            04350002
&D       SETA  &D+1                     COUNT DEVICE ENTRIES.           04400002
         AIF  (&GXT(&GRP) EQ &DGR(&J)).M201        TST FOR GRP START.   04450002
         AIF   (&D EQ 1).M2001                                          04500002
&GRP     SETA  &GRP+1                      (AT GRP STRT SAVE VALUES     04550002
.M2001   ANOP                                                           04600002
&GXT(&GRP) SETA &DGR(&J)                    FOR LATER TABLE GENS)       04650002
&GLT(&GRP) SETA &D                                                      04700002
.M201    ANOP                                                           04750002
.*   GEN AN ENTRY FOR DLIST                                             04800002
.*                                                                      04850002
.*  CONVERT ADDRESS TO HEX                                              04900002
.*                                                                      04950002
&HEX     SETC  ''                                                       05000002
&K       SETA  &DAD(&J)                                                 05050002
.M201A   ANOP                                                           05100002
&HEX     SETC  '0123456789ABCDEF'(1+&K-&K/16*16,1).'&HEX'               05150002
&K       SETA  &K/16                                                    05200002
         AIF   (&K NE 0).M201A                                          05250002
.*   INSURE  3-BYTE LENGTH OF ADDRESS OF DEVICE                         05300002
&HEX     SETC  '00'.'&HEX'                                              05350002
&K       SETA  K'&HEX                                                   05400002
&HEX     SETC  '&HEX'(&K-2,3)                                           05450002
*********************************************************************** 05500002
 MNOTE *,' THIS IS UCB LOOKUP FOR      &NAME(&GPFXT(&I)),GROUP=&GRP'    05550002
 MNOTE *,'                             ADDR=&HEX'                       05600002
         DC    H'&DUL(&J)'                                              05650002
         AGO   .M200         (LOOP ON INNER DO)                         05700002
.M202    AIF   (&P).M200     (WHERE FAILED,BUT WHILE STILL OK)          05750002
         AGO   .M100                                                    05800002
.M300    ANOP                                                           05850002
DLENTS   EQU   &D                                                       05900002
DLELEN   EQU   (*-DLSTRT)/DLENTS                                        05950002
&GLT(&GRP+1) SETA &D+1                                                  06000002
*********************************************************************** 06050002
*  END OF TABLE                                                         06100002
*********************************************************************** 06150002
         AGO   .MAIN2                                                   06200002
.********************************************************************** 06250002
.*  GDTMAKER                                                            06300002
.********************************************************************** 06350002
.*                                                                      06400002
.*  COMMENT -                                                           06450002
.*                                                                      06500002
.*        THIS SECTION USES INFORMATION STORED BY DLISTMAKER IN'GLT'    06550002
.*        TO PRODUCE THE GROUP DESCRIPTOR TABLE (GDT).                  06600002
.*                                                                      06650002
.********************************************************************** 06700002
.*                                                                      06750002
.*  PROCEDURE -                                                         06800002
.*                                                                      06850002
.*          GEN GDT HEADER                                              06900002
.*          DO I=1 BY 1 WHILE GLT(I) NE 0;                              06950002
.*             (GEN I'TH ENTRY FOR GDT)                                 07000002
.*          END;                                                        07050002
.*         (GEN TABLE CLEANUP)                                          07100002
.*          RETURN                                                      07150002
.*                                                                      07200002
.********************************************************************** 07250002
.*                                                                      07300002
.*  IMPLEMENTATION -                                                    07350002
.*                                                                      07400002
.R1      ANOP                                                           07450002
         TITLE 'EDTTAB  -  GROUP DESCRIPTOR SECTION'                    07500002
GDTAB    DC    A(GDTENT)                                                07550002
         DC    A(GDTLEN)                                                07600002
GDTSTRT  DS    0A                                                       07650002
******************************  BEGIN TABLE BODY  ********************* 07700002
*                                                                       07750002
&I       SETA  1                                                        07800002
&K       SETA  0                                                        07850002
.R101    ANOP                                                           07900002
*                                                                       07950002
 MNOTE *,'***** GROUP &I DESCRIPTOR *****'                              08000002
*                                                                       08050002
 DC  F'&I'     GROUP ID                                                 08100002
&K       SETA  &GLT(&I+1)-&GLT(&I)                                      08110002
         DC    F'&K'         COUNT OF DEVICES IN THE GROUP              08120002
&L       SETA  &GLT(&I)-1                                               08150002
 DC  A(DLSTRT+DLELEN*&L)  POINTER TO FIRST DEVICE IN GROUP              08200002
&I       SETA  &I+1                                                     08250002
         AIF   (&GLT(&I+1) NE 0).R101                                   08400002
.*                                                                      08450002
.*  TABLE CLEANUP                                                       08500002
.*                                                                      08550002
&I       SETA  &I-1                                                     08600002
GDTENT   EQU   &I                                                       08650002
GDTLEN   EQU  (*-GDTSTRT)/GDTENT                                        08700002
         AGO   .MAIN3                                                   08750002
.********************************************************************** 08800002
.*                                                                      08850002
         MEND                                                           08900002
