*DECK CATCHK
      PROC CATCHK ((FNC), FIT, CDCSMODE); 
  
#----------------------------------------------------------------------#
#     P A R A M E T E R S                                              #
  
      BASED ARRAY FIT;;            # FILE INFO TABLE OF THE CATALOG    #
      ITEM CDCSMODE  B;            # TRUE IF IN CDCS CATALOG MODE      #
      ITEM FNC  I;                 # CODE NUMBER OF FUNCTION TO PERFORM#
  
#----------------------------------------------------------------------#
#     X R E F S                                                        #
  
      XREF PROC CDCSREQ;           # PERFORMS CDCS ROUTINES            #
      XREF PROC CLOSEM;            # CRM CLOSE FILE                    #
      XREF PROC DLTE;              # CRM DELETE RECORD                 #
      XREF PROC GET;               # CRM RANDOM READ ON AREA           #
      XREF PROC GETN;              # CRM SEQUENTIAL READ ON AREA       #
      XREF PROC OPENM;             # CRM OPEN FILE                     #
      XREF PROC PUT;               # CRM RANDOM WRITE                  #
      XREF PROC REWND;             # CRM REWIND FILE                   #
      XREF PROC SKIPB1;            # SKIP BACK ONE RECORD              #
      XREF PROC STARTM;            # CRM START AT GIVEN KEY            #
  
      XREF ITEM RA0;               # END OF CRM ARGUMENT LIST          #
  
#----------------------------------------------------------------------#
#     S W I T C H E S                                                  #
  
      SWITCH CRMFUNC CGET,CGETN,CPUT,CDEL,CSTART,COPEN,CCLOSE,CREW,CSKB;
  
  
#----------------------------------------------------------------------#
#                                                                      #
#     C A T C H K                                                      #
#                                                                      #
#     *CATCHK* IS CALLED FROM THE SYNTAX OVERLAYS ACCESSING THE        #
#     CATALOG FILE.  IT CHECKS THE FLAG *CDCSCAT* TO DECIDE WHETHER IN #
#     CDCS OR CRM CATALOG MODE AND CALLS *CDCSREQ* TO PERFORM CDCS     #
#     ROUTINES OR CALLS THE ROUTINE INDICATED BY THE PARAMETER *FNC*.  #
#                                                                      #
#----------------------------------------------------------------------#
  
      BEGIN 
      IF CDCSMODE                  # IF IN CDCS CATALOG MODE           #
      THEN
        BEGIN 
        CDCSREQ ((FNC), FIT);      # DO REQUESTED CDCS ROUTINE         #
        RETURN; 
        END 
  
      ELSE                         # IF IN CRM CATALOG MODE            #
        BEGIN 
        GOTO CRMFUNC[FNC];         # DO REQUESTED CRM FUNCTION         #
CGET:                              # RANDOM READ                       #
        GET (FIT, RA0); 
        RETURN; 
CGETN:                             # SEQUENTIAL READ                   #
        GETN (FIT, RA0);
        RETURN; 
CPUT:                              # RANDOM WRITE                      #
        PUT (FIT, RA0); 
        RETURN; 
CDEL:                              # DELETE RECORD                     #
        DLTE (FIT, RA0);
        RETURN; 
CSTART:                            # POSITION TO INDICATED RECORD      #
        STARTM (FIT, RA0);
        RETURN; 
COPEN:                             # OPEN FILE                         #
        OPENM (FIT, RA0); 
        RETURN; 
CCLOSE:                            # CLOSE FILE                        #
        CLOSEM (FIT, RA0);
        RETURN; 
CREW:                              # REWIND FILE                       #
        REWND (FIT, RA0); 
        RETURN; 
CSKB:                              # SKIP BACK ONE RECORD              #
        SKIPB1 (FIT, RA0);
        RETURN; 
        END 
      END 
      TERM
