*DECK S$GINPR 
          PROC S$GINPR(RP$,STATUS$);
#**       S$GINPR -  COLLECT RAW PARAM. OF RP$ AND STATUS$             #
#                                                                      #
#     CALLING SEQUENCE-                                                #
#         S$GINPR(RP$,STATUS$):                                        #
#                                                                      #
#     GIVEN-                                                           #
#         RP$ = ARRAY CONTAINING TYPES OF RAW PARAMETERS.              #
#         STATUS = INDICATES WHETH AND WHAT ERROR HAS BEEN FOUND.      #
#                                                                      #
#     DOES-                                                            #
#         SETS RP$ TO NEXT VALUE GOTTEN FROM GETI-IN, GETI-OUT,        #
#         GETI-KEYS, GETI-MISC, OR GETI-NRECS.                         #
  
          BEGIN 
          ITEM  OWNFILE               B = FALSE;    # TRUE IFF CHANGED #
  
  
*CALL A 
  
*CALL RP$ 
  
*CALL STATUS$ 
  
  
*CALL RSFLAGS 
          XREF
              BEGIN 
              PROC  S$ABORT;
              PROC  S$GTIIN;
              PROC  S$GTIOU;
              PROC  S$GTIKD;
              PROC  S$GTIKY;
              PROC  S$GTIMI;
              PROC  S$GTINR;
              END 
  
          SWITCH  SETRPT
               ,  GETIDEF    # TELL USER ABOUT DEFAULT BT, RT AND FL   #
               ,  GETIIN     # FORM SPEC-PART RELATED TO SUPPLYING REC.#
               ,  GETIOUT    # FORM S/P RELATED TO DISPOSING OF S/M REC#
               ,  GETIKEYS   # FORM SPEC-PART RELATED TO KEYS          #
               ,  GETIMISC   # ALL PARAM. NOT IN OUT,IN,KEYS,NRECS     #
               ,  GETINRECS  # ESTIMATED NUM. OR RANGE OF REC. SORTED  #
               ,  GTINPREND  # END S$GINPR                             #
               ;
  
          ITEM  ISW          I=1;      # INDEX TO SWITCH SETRPT        #
  
  
CONTROL DISJOINT; 
  
CONTROL INERT;
  
CONTROL EJECT;
  
  
#      CHECK FLAG, IF FIRST TIME OR RESTART THEN RESET SWITCH          #
  
          IF B<59,1>S$FLAGS EQ 0 THEN 
              BEGIN 
              ISW = 1;                 # RESET SWITCH FOR GINPR        #
              B<59,1>S$FLAGS = 1;      # CHANGE FLAG                   #
              END 
  
          $BEGIN
          IF ISW LS 1 
            OR ISW GR 7 THEN
              S$ABORT("S$GINPR-1"); 
          $END
  
          GOTO SETRPT[ISW]; 
  
# SET RP$ FROM S$GTIKD                                               #
  
GETIDEF:  
          S$GTIKD(RP$); 
          IF RP$TYPE EQ RP$T"$END$" THEN
              BEGIN 
              ISW = ISW + 1;
              GOTO SETRPT[ISW]; 
              END 
#***#     RETURN; 
  
# SET RP$ FROM GETIIN                                                  #
  
GETIIN: 
          S$GTIIN(RP$,OWNFILE); 
          IF RP$TYPE EQ RP$T"$END$"  THEN 
              BEGIN 
              ISW = ISW + 1;
              GOTO SETRPT[ISW]; 
              END 
#***#     RETURN; 
  
# SET RP$ FROM GETI-OUT                                                #
  
GETIOUT:  
          S$GTIOU(RP$,OWNFILE); 
          IF RP$TYPE EQ RP$T"$END$"  THEN 
              BEGIN 
              ISW = ISW + 1;
              GOTO SETRPT[ISW]; 
              END 
#***#     RETURN; 
  
# SET RP$ FROM GETI-KEYS                                               #
  
GETIKEYS: 
          S$GTIKY(RP$); 
          IF RP$TYPE EQ RP$T"$END$"  THEN 
              BEGIN 
              ISW = ISW + 1;
              GOTO SETRPT[ISW]; 
              END 
#***#     RETURN; 
  
# SET RP$ FROM GETI-MISC                                               #
  
GETIMISC: 
          S$GTIMI(RP$,OWNFILE); 
          IF RP$TYPE EQ RP$T"$END$"  THEN 
              BEGIN 
              ISW = ISW + 1;
              GOTO SETRPT[ISW]; 
              END 
#***#     RETURN; 
  
# SET RP$ FROM GETI-NRECS                                              #
  
GETINRECS:  
          S$GTINR(RP$); 
          IF RP$TYPE EQ RP$T"$END$"  THEN 
              BEGIN 
              ISW = ISW + 1;
              GOTO SETRPT[ISW]; 
              END 
#***#     RETURN; 
  
# SET RP$TYPE TO $END$ INDICATING END OF S$GINPR                       #
  
GTINPREND:  
          RP$TYPE = RP$T"$END$";
#***#     RETURN; 
  
          END #S$GINPR# 
          TERM
