*DECK DB$SR10                                                            JJJ0106
USETEXT UTMPTTX 
USETEXT MD10CTX 
USETEXT MDBCMTX 
      PROC DB$SR10;          # CLEAR ALL FLAGS  #                        JJJ0106
      BEGIN                                                              JJJ0106
 #                                                                       JJJ0106
  *   DB$SR10 - FREE CMM BLOCKS                  PAGE  1
  *   J. JAN JANIK                               DATE  01/06/76          JJJ0106
  *   J. G. SERPA - MDU 2.3 ENHANCEMENTS         DATE  09/18/80 
  
  DC  PURPOSE                                                            JJJ0106
                                                                         JJJ0106
      CLEAR ENTRIES AND RELEASE CMM BLOCKS PRIOR TO STARTING NEW SET
      OF PARAMETER CARDS. 
                                                                         JJJ0106
  DC  ENTRY CONDITIONS                                                   JJJ0106
                                                                         JJJ0106
      ALL SCHEMA TABLES ARE IN AN UNKNOWN STATE DUE TO ERRORS.
                                                                         JJJ0106
  DC  EXIT CONDITIONS                                                    JJJ0106
                                                                         JJJ0106
      ANY CREATED SCHEMA ENTRY IS CLEARED. MANAGED MEMORY BLOCKS WHICH
      ARE SCHEMA-ORIENTED HAVE BEEN SHRUNK TO ONE WORD.  RETURN TO DB$NO
                                                                         JJJ0106
  DC  CALLING ROUTINES                                                   JJJ0106
                                                                         JJJ0106
      DB$STD - SYNTAX TABLE DRIVER                                       JJJ0106
                                                                         JJJ0106
  DC  CALLED ROUTINES                                                    JJJ0106
#                                                                        JJJ0106
      XREF PROC DB$NO;       # NO SIDE OF TRANSFER SYMBOL, STD         # JJJ0106
      XREF PROC DB$UFRE;     # FREE UP MEMORY BLOCKS                   #
# 
  DC  DESCRIPTION 
 #
      BASED ARRAY MDSCENTRY [0] S;
        BEGIN 
*CALL MDSCDDCLS 
        END 
  
      ITEM I;                # SCRATCH ITEM                            #
      CONTROL EJECT;
                                                                         JJJ0106
 #
      POINT THE SCHEMA DIRECTORY BASED ARRAY TO THE FIRST ENTRY.
 #
      P<MDSCENTRY> = SCDRBP + 1;
 #
      SEE IF THE SCHEMA DIRECTORY WAS CORRECTLY COMPLETED.
 #
      IF MDSCIDNT[SCHDIRP] EQ SCINPRG AND SCINPRG NQ 0 THEN 
        BEGIN 
 #
        REMOVE THE SCHEMA DIRECTORY ENTRY.
 #
          FOR I=0 STEP 1 UNTIL DFMDSCDESIZE - 1 DO
            MDSCWRD[SCHDIRP + I] = 0; 
 #
        RESET SCHEMA DIRECTORY ENTRY COUNTER. 
 #
          SCDRCNT = SCDRCNT - 1;
        END 
                                                                         JJJ0106
      DB$UFRE(LOC(ARDIRBP));
      DB$UFRE(LOC(ARINFOBP)); 
      DB$UFRE (LOC(MDCHKSMBP)); 
      DB$UFRE(LOC(DBPROCBP)); 
      DB$UFRE(LOC(CSTDIRBP)); 
      DB$UFRE(LOC(KEYINFOBP));     # KEY INFORMATION TABLE             #
      DB$UFRE(LOC(VERDIRBP));      # VERSION DIRECTORY TABLE           #
      DB$UFRE(LOC(VERINFBP));      # VERSION INFORMATION TABLE         #
      DB$UFRE(LOC(PITBP));         # PERMANENT FILE INFORMATION TABLE  #
      IF CUTBP NQ 0                # IF CUT HAS BEEN ALLOCATED         #
      THEN
        BEGIN 
        DB$UFRE(LOC(CUTBP));       # FREE IT                           #
        END 
      DB$NO;                                                             JJJ0106
                                                                         JJJ0106
      END                                                                JJJ0106
      TERM                                                               JJJ0106
