*DECK TRELTBL 
      PROC TRELTBL; 
      BEGIN 
      CONTROL STEXT;
  
      DEF RT$TBLSIZE #7#;          # SIZE OF RELATION TABLE FIXED PART #
  
      BASED ARRAY  REL$TABLE; 
  
        BEGIN 
        ITEM  RT$PATHBIT    U(00,00,06);    # PATH BIT NUMBER FOR THIS #
                                            # ENTRY                    #
  
        ITEM  RT$ORDINAL    U(00,06,12);    # RELATION ORDINAL IF CDCS #
                                            # ELSE ZERO                #
  
        ITEM  RT$RESDNADDR  I(00,24,18);    # ABSOLUTE ADDRESS OF      #
                                            # RESTRICT DATA NAME TABLE #
  
        ITEM  RT$FORWARD    U(00,42,18);    # FORWARD POINTER TO THE   #
                                            # NEXT ENTRY IN THE STRING #
                                            # IF ZERO THIS IS THE LAST #
                                            # ENTRY IN THE STRING      #
  
        ITEM  RT$FITADDR    I(01,00,18);    # ABSOLUTE POINTER TO TABLE#
                                            # OF FIT ADDRESSES ORDERED #
                                            # BY RANK WITHIN RELATION  #
  
        ITEM  RT$GROUPID    U(01,24,18);    # RELATION GROUP ID        #
  
        ITEM  RT$BACKWARD   U(01,42,18);    # BACKWARD POINTER TO THE  #
                                            # LAST ENTRY OF THE STRING #
  
        ITEM  RT$RELNAME    C(02,00,40);    # RELATION NAME LEFT JUST  #
                                            # WITH BLANK FILL          #
  
        ITEM  RT$NORANKS    U(06,00,06);    # NUMBER OF RANKS          #
  
        ITEM  RT$NOREST     U(06,06,06);    # NUMBER OF RESTRICTS      #
  
        ITEM  RT$RESTPTR    U(06,12,18);    # POINTER TO RESTRICT      #
                                            # CHARACTER STRING(S)      #
  
        ITEM  RT$RESDONE    B(06,30,01);    # TRUE--RESTRICT PROCESSING#
                                            # ALREADY DONE.            #
  
        ITEM RT$NORESTDBI   I(06,42,18);    # NO. OF DATA BASE ITEMS IN#
                                            # RESTRICT DATA NAME TABLE #
  
        ITEM  RT$RANKPOS    U(07,00,60);    # START OF RANK ENTRIES    #
        END 
  
  
      DEF RANKSIZE #3#;            # SIZE OF RANK TABLE ENTRY          #
  
      BASED ARRAY REL$RANKINFO S(RANKSIZE); 
  
        BEGIN 
        ITEM  RR$ITEMWA     U(00,24,18);    # WORD ADD OF ITEM ENTRY   #
  
        ITEM  RR$AREAPTR    U(00,42,18);    # PTR TO AREA TABLE ENTRY  #
  
        ITEM  RR$KEY        B(01,00,01);    # TRUE IF KEY              #
  
        ITEM  RR$ALTKEY     B(01,01,01);    # TRUE IF ALTERNATE KEY    #
  
        ITEM  RR$ALTDUP     B(01,02,01);    # TRUE IF DUPLICATE ALT KEY#
  
        ITEM  RR$ALT1ST     B(01,03,01);    # TRUE IF FIRST ALT KEY    #
  
        ITEM  RR$ANYFLG     B(01,04,01);    # TRUE IF ANY SUBSCRIPT    #
  
        ITEM  RR$PMAJKEY    B(01,05,01);    # TRUE IF MAJ PRIMARY KEY  #
  
        ITEM  RR$AMAJKEY    B(01,06,01);    # TRUE IF MAJ ALTERNATE KEY#
  
        ITEM  RR$AKSUBN     B(01,07,01);    # TRUE IF JOINED ON ITEM(N)#
                                            # OR ITEM(ANY)             #
  
        ITEM  RR$CLASS      U(01,12,06);   # CLASS OF ITEM             #
  
        ITEM  RR$BCP        U(01,18,06);   # BEGIN CHARACTER POSITION  #
  
        ITEM  RR$BWP        U(01,24,18);   # BEGIN WORD POSITION       #
  
        ITEM  RR$LENGTH     U(01,42,18);    # LENGTH OF ITEM IN CHARS  #
  
        ITEM  RR$RESTBLPTR  I(02,00,18);    # ABSOLUTE POINTER TO THE  #
                                            # RESTRICT STACK FOR THIS  #
                                            # AREA, IF THERE IS ONE    #
  
        ITEM  RR$AKBCP      I(02,18,06);    # IF JOIN ON ITEM(N),      #
                                            # BEGINNING CHARACTER      #
                                            # POSITION OF ITEM(1)      #
  
        ITEM  RR$AKBWP      I(02,24,18);    # IF JOIN ON ITEM(N),      #
                                            # BEGINNING WORD POSITION  #
                                            # OF ITEM(1)               #
  
        ITEM  RR$AKSIZE     I(02,42,18);    # IF JOIN ON MAJOR ALT KEY,#
                                            # SIZE OF ALTERNATE KEY    #
  
        END 
  
  
      BASED ARRAY FITADDRTBL;               # LIST OF FIT ADDRESSES    #
                                            # ORDERED BY RANK WITHIN   #
                                            # RELATION AND TERMINATED  #
                                            # BY A WORD OF ZEROES      #
        BEGIN 
  
        ITEM  RELFITES      U(00,00,09);    # ERROR STATUS/READ INDICAT#
                                            # VALUE 777B INDICATES NO  #
                                            # READ OPERATION ON THIS   #
                                            # RANK ON THIS RELATN READ #
  
        ITEM  RELFITWSA     I(00,24,18);    # FIT WSA                  #
  
        ITEM  FITADDR       I(00,42,18);    # ADDRESS OF FIT           #
  
        END 
  
  
      BASED ARRAY RESDNAMETBL  S(4);        # RESTRICT DATANAME TABLE  #
  
        BEGIN 
        ITEM RD$SIGN        B(00,08,01);    # TRUE IF DATABASE ITEM TO #
                                            # WHICH DEFINED ITEM IS    #
                                            # COMPARED HAS A SIGN      #
  
        ITEM RD$DPTLOC      U(00,09,06);    # DECIMAL POINT LOCATION   #
                                            # RELATIVE TO RIGHTMOST    #
                                            # CHARACTER POSITION OF    #
                                            # DATABASE ITEM TO WHICH   #
                                            # DEFINED ITEM IS COMPARED #
                                            # > 0 POINT TO LEFT        #
                                            # < 0 POINT TO RIGHT       #
  
        ITEM RD$DATATYPE    U(00,15,3);     # DATATYPE OF DATABASE ITEM#
                                            # TO WHICH DEFINED ITEM IS #
                                            # COMPARED.                #
                                            # 0 = CHARACTER            #
                                            # 1 = NUMERIC              #
                                            # 2 = INTEGER              #
                                            # 3 = UNNORMALIZED FLOAT PT#
                                            # 4 = NORMALIZED FLOAT PT  #
                                            # 5 = DOUBLE PRECISION     #
                                            # 6 = COMPLEX              #
                                            # 7 = CODED LOGICAL        #
  
        ITEM RD$USESIZE     U(00,18,15);    # USESIZE IN CHARACTERS OF #
                                            # DATABASE ITEM TO WHICH   #
                                            # DEFINED ITEM IS COMPARED #
  
        ITEM RD$NAMELGW     U(00,33,03);    # LENGTH OF DEFINED ITEM   #
                                            # NAME IN WORDS            #
  
        ITEM RD$NAMELGC     U(00,36,06);    # LENGTH OF DEFINED ITEM   #
                                            # NAME IN CHARACTERS       #
  
        ITEM RD$NAME        C(01,00,30);    # DEFINED NAME             #
  
        ITEM RD$NAME1       C(01,00,10);    # 1ST WORD OF DEFINED NAME #
  
        ITEM RD$NAME2       C(02,00,10);    # 2ND WORD OF DEFINED NAME #
  
        ITEM RD$NAME3       C(03,00,10);    # 3RD WORD OF DEFINED NAME #
  
        END 
  
  
      END 
      TERM
