*DECK S$GTIOU 
          PROC S$GTIOU(RP$,OWNFILE);
#**       S$GTIOU -  COLLECT RAW PARAM. OF RP$ TO FORM SPEC-PARTS.     #
#                                                                      #
#     CALLING SEQUENCE-                                                #
#         S$GTIOU(RP$,OWNFL):                                          #
#                                                                      #
#     GIVEN-                                                           #
#         RP$ = ARRAY CONTAINING TYPES OF RAW PARAMETERS.              #
#         OWNFL = TRUE IFF OWN FILE NAME ALREADY GIVEN.                #
#     DOES-                                                            #
#         INTERACTIVELY QUERIES USER TO FORM SPEC-PARTS RELATED TO     #
#         DISPOSING OF SORTED (OR MERGED) RECORDS.                     #
#         ASKED ABOUT OUT POSSIBLE OUTPUT FILE AND USER OWN3,OWN4,     #
#         AND OWN5 ROUTINES.                                           #
  
  
          BEGIN 
          ITEM  OWNFILE      B; 
  
*CALL A 
  
*CALL QUERY$
  
*CALL RP$ 
  
*CALL RSFLAGS 
          XREF
              BEGIN 
              PROC  S$ABORT;
              PROC  S$ANSEP;           # GETS ENTRY POINT NAME FROM I/U#
              PROC  S$ANSFI;           # GETS FILE NAME FROM I/U       #
              PROC  S$PUTLI;           # PUTS LINE OUT TO INTERACTIVE/U#
              PROC  S$ANSNM;           # GETS NON-NEGATIVE INTEGER     #
              PROC  S$ANSYN;           # GETS Y/N ANSWER FROM I/U      #
  
              ITEM S$HLP   I;    #DETERMINE WHAT HELP IS WANTED        #
              END 
  
          SWITCH  GOUTLOC 
               ,  OWN3FN
               ,  OWN3NA
               ,  OWN4NA
               ,  OUTFNA
               ,  GTFILNA 
               ,  GTIOUEND
               ;
  
          ITEM GOSW          I=1;      # INDEX TO SWITCH GOUTLOC       #
          ITEM EPOINTN       C(7);     # NAME OF ENTRY POINT OF OWN SUB#
          ITEM FILENA        C(7);     # FILE NAME CONTAINING OWNCODE  #
          ITEM NUM           I;        # NUMBER RETURNED FROM ANS-NUM  #
          ITEM YES           B;        # TRUE IFF OWN FILE NAME GIVEN  #
  
CONTROL DISJOINT; 
  
CONTROL INERT;
  
CONTROL EJECT;
  
#      CHECK FLAG, IF FIRST TIME OR RESTART THEN RESET SWITCH          #
  
          IF B<4,1>S$FLAGS EQ 0 THEN
              BEGIN 
              GOSW = 1;                # RESET SWITCH FOR GTIOU        #
              B<4,1>S$FLAGS = 1;       # CHANGE FLAG                   #
              END 
  
          $BEGIN
          IF GOSW LS 1
           OR GOSW GR 6  THEN 
              S$ABORT("S$GINPR-1"); 
          $END
  
          GOTO GOUTLOC[GOSW]; 
  
# QUERY AS TO WHETHER THERE IS AN OWN3 OR OWN4 SUBROUTINE              #
  
OWN3FN: 
          QUERY$LINE[1] = "DO YOU HAVE ANY OWN3 OR OWN4 SUBROUTINES"; 
          QUERY$LLINE[1] = 41;
          QUERY$NLINES = 1; 
          S$HLP = 200;
          S$ANSYN(QUERY$,YES);
          IF YES  THEN
              BEGIN 
  
# GET NAME OF FILE CONTAINING OWNCODE SUBROUTINE IF NOT ALREADY GIVEN. #
  
              IF NOT OWNFILE  THEN
                  BEGIN 
                  QUERY$LINE[1] = 
  "WHAT IS THE NAME OF THE FILE CONTAINING YOUR OWNCODE SUBROUTINE(S) ";
                  QUERY$LLINE[1] = 67;
                  QUERY$NLINES = 1; 
                  S$HLP = 210;
                  S$ANSFI(QUERY$,FILENA); 
                  RP$TYPE = RP$T"OWNFILE";
                  RP$VALUEC = FILENA; 
                  GOSW = GOSW + 1;
                  OWNFILE = TRUE; 
#***#             RETURN; 
                  END 
              ELSE
                  BEGIN 
                  GOSW = GOSW + 1;
  
# QUERY AS TO WHETHER THERE IS AN OWN3 SUBROUTINE                      #
  
OWN3NA: 
                  QUERY$LINE[1] =     "DO YOU HAVE AN OWN3 SUBROUTINE ";
                  QUERY$LLINE[1] = 31;
                  QUERY$NLINES = 1; 
                  S$HLP = 203;
                  S$ANSYN(QUERY$,YES);
                  IF YES  THEN
                      BEGIN 
  
# GET NAME OF OWN3 SUBROUTINE                                          #
  
                      QUERY$LINE[1] = 
                "WHAT IS THE ENTRY POINT NAME OF YOUR OWN3 SUBROUTINE ";
                      QUERY$LLINE[1] = 53;
                      QUERY$NLINES = 1; 
                      S$HLP = 203;
                      S$ANSEP(QUERY$,EPOINTN);
                      RP$TYPE = RP$T"OWN3NAME"; 
                      RP$VALUEC = EPOINTN;
                      GOSW = GOSW + 1;
#***#                 RETURN; 
                      END 
                  ELSE
                      BEGIN 
                      GOSW = GOSW + 1;
  
# QUERY AS TO WHETHER THERE IS AN OWN4 SUBROUTINE                      #
  
OWN4NA: 
                      QUERY$LINE[1] = "DO YOU HAVE AN OWN4 SUBROUTINE ";
                      QUERY$LLINE[1] = 31;
                      QUERY$NLINES = 1; 
                      S$HLP = 204;
                      S$ANSYN(QUERY$,YES);
                      IF YES  THEN
                          BEGIN 
  
# GET NAME OF OWN4 SUBROUTINE.                                         #
  
                          QUERY$LINE[1] = 
                "WHAT IS THE ENTRY POINT NAME OF YOUR OWN4 SUBROUTINE ";
                          QUERY$LLINE[1] = 53;
                          QUERY$NLINES = 1; 
                          S$HLP = 204;
                          S$ANSEP(QUERY$,EPOINTN);
                          RP$TYPE = RP$T"OWN4NAME"; 
                          RP$VALUEC = EPOINTN;
                          GOSW = GOSW + 1;
#***#                     RETURN; 
                          END 
                      ELSE
                          BEGIN 
                          GOSW = GOSW + 1;
  
# QUERY AS TO WHETHER THERE IS AN OUTPUT FILE                          #
  
OUTFNA: 
                          QUERY$LINE[1] = "DO YOU HAVE AN OUTPUT FILE ";
                          QUERY$LLINE[1] = 27;
                          QUERY$NLINES = 1; 
                          S$HLP = 250;
                          S$ANSYN(QUERY$,YES);
                          IF YES  THEN
                              BEGIN 
                              GOSW = GOSW + 1;
                              GOTO GTFILNA; 
                              END 
                          ELSE
                              BEGIN 
                              GOSW = GOSW +2; 
                              GOTO GOUTLOC[GOSW]; 
                              END 
                          END 
                      END 
                  END 
              END 
          ELSE
              BEGIN 
              GOSW = GOSW + 4;
  
# GET NAME OF OUTPUT FILE.                                             #
  
GTFILNA:  
              QUERY$LINE[1] = 
                                "WHAT IS THE NAME OF YOUR OUTPUT FILE ";
              QUERY$LLINE[1] = 37;
              QUERY$NLINES = 1; 
              S$HLP = 250;
              S$ANSFI(QUERY$,FILENA); 
              RP$TYPE = RP$T"OUTFILE";
              RP$VALUEC = FILENA; 
              GOSW = GOSW + 1;
#***#         RETURN; 
              END 
  
# SET RP$TYPE TO $END$ INDICATING END OF S$GTIOU                       #
  
GTIOUEND: 
          RP$TYPE = RP$T"$END$";
#***#     RETURN; 
  
          END # S$GTIOU # 
          TERM
