*DECK S$ANSYN 
          PROC S$ANSYN(QUERY$,YES); 
#**       S$ANSYN -  GET YES NO ANSWER FOR QUERY.                      #
#                                                                      #
#     CALLING SEQUENCE-                                                #
#         S$ANSYN(QUERY$,YES):                                         #
#                                                                      #
#     GIVEN-                                                           #
#         QUERY$ = ARRAY CONTAINING ONE OR MORE LINES OF A QUESTION    #
#                  TO BE ANSWERED  YES OR NO.                          #
#         YES = BOOLEAN VALUE SET TO TRUE IF ANSWER TO QUESTION IS YES.#
#     DOES-                                                            #
#         ASKS A YES OR NO QUESTION AND SETS -YES- ACCORDINGLY.        #
  
          BEGIN 
          ITEM  YES          B;        # INDICATES RESPONSE TO S$ANSYN #
  
*CALL A 
  
*CALL LINE$ 
  
*CALL QUERY$
  
          XREF
              BEGIN 
              PROC  S$AHELP;           # DETERMINES IF I/U WANTS HELP. #
              PROC  S$GTANS;           # TRIES TO GET ANSWER FROM I/U. #
              PROC  S$PUTLN;           # PUTS LINE OUT TO I/USER.      #
              END 
  
          ITEM  ERRCOUNT     I;        # ERROR COUNT                   #
          ITEM  I            I;        # SCRATCH VARIABLE              #
          ITEM  REASKQ       B;        # REASK QUESTION                #
  
CONTROL DISJOINT; 
  
CONTROL INERT;
  
CONTROL EJECT;
  
  
          ERRCOUNT = 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 
  
          S$GTANS(LINE$,REASKQ);
  
          IF REASKQ  THEN 
              GOTO  PUTLINE;
          IF LINE$LINE EQ "YES" 
           OR LINE$LINE EQ "Y"  THEN
              BEGIN 
              YES = TRUE; 
#***#         RETURN; 
              END 
          IF LINE$LINE EQ "NO"
           OR LINE$LINE EQ "N"  THEN
              BEGIN 
              YES = FALSE;
#***#         RETURN; 
              END 
          ERRCOUNT = ERRCOUNT + 1;
          IF ERRCOUNT EQ 2  THEN
              BEGIN 
              S$AHELP;
              ERRCOUNT = 0; 
              END 
          GOTO PUTLINE; 
  
          END # S$ANSYN # 
          TERM
