*DECK S$GTEQU 
          PROC S$GTEQU(QUERY$,EQARRAY); 
#**       S$GTEQU -  COLLECT EQUATE SEQUENCE ELEMENTS.                 #
#                                                                      #
#     CALLING SEQUENCE-                                                #
#         S$GTEQU(QUERY$,EQARRAY):                                     #
#                                                                      #
#     GIVEN-                                                           #
#         QUERY$ = QUERY AS TO THE NAME OF OWN SUBROUTINE              #
#         EQARRAY = ARRAY OF EQUATE SEQUENCE ELEMENTS.                 #
#                                                                      #
#     DOES-                                                            #
#         ASKS A QUESTION AND COLLECT THE EQUATE SEQUENCE              #
#         ELEMENTS IN EQARRAY TERMINATED WITH A -1.                    #
  
          BEGIN 
  
*CALL A 
  
*CALL LINE$ 
  
*CALL QUERY$
  
          XREF
              BEGIN 
              PROC  S$GTANS;
              PROC  S$PUTLN;
  
              ITEM  S$HLP  I;    # DETERMINES WHAT HELP IS GIVEN       #
              END 
  
          ARRAY EQARRAY  [0:256]; 
              ITEM  EQELMT  I(0,0,60); # CHARACTER, OCTAL VALUE OR -1  #
  
          ITEM  NUM1         I; 
          ITEM  EQINDEX      I;        # INDEX TO EQARRAY              #
          ITEM  I            I;        # SCRATCH VARIABLE              #
          ITEM  REASKQ       B;        # REASK QUESTION                #
          ITEM  CHAR1        C(1);
          ITEM  CHAR2        C(1);
  
CONTROL DISJOINT; 
  
CONTROL INERT;
  
CONTROL EJECT;
  
          EQINDEX = 0;
PUTLINE:  
  
          FOR I=1 STEP 1 UNTIL QUERY$NLINES  DO 
              BEGIN 
              LINE$LINE = QUERY$LINE[I];
              LINE$LENGTH = QUERY$LLINE[I]; 
              S$PUTLN(LINE$); 
              END 
  
NEXTLINE: 
          S$HLP = 175;
          S$GTANS(LINE$,REASKQ);
  
          IF REASKQ  THEN 
              GOTO PUTLINE; 
  
          FOR I = 0 STEP 1
            WHILE C<I,2>LINE$LINE NQ "  " DO
              BEGIN 
              CHAR1 = C<I,1>LINE$LINE;
              IF CHAR1 NQ "," THEN
                  BEGIN 
                  NUM1 = B<0,6>CHAR1; 
                  IF CHAR1 GQ "0" AND CHAR1 LQ "9" THEN 
                      BEGIN 
                      CHAR2 = C<I+1,1>LINE$LINE;
                      IF CHAR2 GQ "0" AND CHAR2 LQ "9" THEN 
                          BEGIN  # GET OCTAL VALUE #
                          EQELMT[EQINDEX] = 8*(NUM1-O"33")
                                            +(B<0,6>CHAR2-O"33"); 
                          I = I + 1;    # SKIP 2ND DIGIT #
                          EQINDEX = EQINDEX + 1;
                          IF TRUE THEN TEST; # SKIP REST OF FOR LOOP #
                          END 
                      END 
                  EQELMT[EQINDEX] = NUM1; 
                  EQINDEX = EQINDEX + 1;
                  END 
              END 
  
          EQELMT[EQINDEX] = -1;        # TERMINATE ARRAY WITH A -1 #
  
          END # S$GTEQU # 
          TERM
