*DECK GTEXTAT 
          FUNC  GTEXTATOM(INDEX)  I;
  
#**       GTEXTATOM -  SPECIFIED GTEXT ATOM 
* 
*         INDEX = ATOM NUMBER OF DESIRED GTEXT ATOM.
*                   (ATOM NUMBERS START AT 0.)
* 
*         ATOM = GTEXTATOM(INDEX) 
* 
* 
*         THE VALUE OF THIS FUNCTION IS THE SPECIFIED GTEXT ATOM. 
# 
  
          BEGIN 
          ITEM  INDEX        I; 
  
  
*CALL M$
  
*CALL TABLETYP
  
# (BELOW IS ALMOST THE SAME AS *COMDECK GTEXT1, EXCEPT FOR GTEXTATOM)  #
          COMMON GTEXTCOMM; 
              BASED ARRAY GTEXT[0:0] S(1);
                  BEGIN 
                  ITEM  GTEXTATOM1   U(0, 0,30);
                  ITEM  GTEXTATOM2   U(0,30,30);
                  END 
  
          XREF  FUNC  VIRTUAL      I;  # INDEX TO VIRTUAL TABLE        #
  
          ITEM  IX           I;        # VIRTUALIZED INDEX TO GTEXT$   #
          ITEM  SAVEINDEX;
          ITEM  SAVEGTEXT;
  
  
  
  
          XDEF PROC INITGTX;
          PROC INITGTX; 
          BEGIN 
          IX = VIRTUAL (TABLETYPE"GTEXT$",0); 
          SAVEGTEXT = GTEXTATOM2[IX]; 
          SAVEINDEX = 0;
          RETURN; 
          END 
  
  
          IF  B<59,1>INDEX EQ 0   #INDEX EVEN#
          THEN
              BEGIN 
              SAVEINDEX = INDEX;
              IX = VIRTUAL (TABLETYPE"GTEXT$",INDEX/2); 
              GTEXTATOM = GTEXTATOM1[IX]; 
              SAVEGTEXT = GTEXTATOM2[IX]; 
              RETURN; 
              END 
          ELSE                     #INDEX ODD#
              IF  SAVEINDEX + 1 EQ INDEX
              THEN
                  BEGIN 
                  GTEXTATOM = SAVEGTEXT;
                  RETURN; 
                  END 
              ELSE
                  BEGIN 
                  IX = VIRTUAL (TABLETYPE"GTEXT$",INDEX/2); 
                  GTEXTATOM = GTEXTATOM2[IX]; 
                  RETURN; 
                  END 
  
          END 
          TERM
