*DECK DB$M20M 
USETEXT MDBCMTX 
  PROC DB$M20M; 
    BEGIN 
 #
  *   DB$M20M - WRITES NEW MD                    PAGE  1
  *   M D SAXE                                   DATE  04/6/76
  
  DC  PURPOSE 
  
      CONTROLING ROUTINE THAT CALLS THE VARIOUS PROCEDURES THAT WRITES
      THE NEW MD ENTRIES. 
  
  DC  ENTRY CONDITIONS
  
      1. FOR CREATION RUN, ADD SCHEMA OR MODIFY SCHEMA. THE SCHEMA INFO,
        AREA DIR. AREA INFO, PROC LIST AND SUB-SCHEMA MUST RESIDE IN
        CORE. 
      2  NEWSCH MUST INDICATE IF THERE IS MD SCHEMA TABLES IN CORE. 
         1 = THERE IS MD IN CORE ,  0 = NO MD IN CORE.
      3  FINFLAG MUST INDICATE IF ALL SOURCE INPUT HAS BEEN PROCESSED.
  
  DC  EXIT CONDITIONS 
  
      A NEW MASTER DIRECTORY IS WRITEN TO DISK
  
  DC  CALLING ROUTINES
  
      DBMSTRD - MAIN CONTROLLING ROUTINE. 
  
  DC  CALLED ROUTINES 
  
 #
      XREF
        BEGIN 
 #                                                                     #
      PROC DB$MDTR;          # TRANSFER ENTRIES FROM OLD TO NEW MD     #
      PROC DB$MDWD;          # WRITE SCHEMA FROM CORE TO THE NEW MD    #
      PROC DB$MDWU;          # WRITE THE CONTROL WORDS TO THE NEW MD   #
 #                                                                     #
        END 
 #
  
  DC  DESCRIPTION 
  
 #
  
 #
      CHECK FOR SCHEMA ERROR CONDITIONS. IF ANY, RETURN TO THE (0,0)
      OVERLAY.
 #
      IF SCFATAL GR 0 THEN
        RETURN; 
 #
      CHECK IF THERE IS AN MD IN CORE READY TO BE STORED INTO THE NEW 
      MD. IF SO MOVE IT TO DISK.
 #
      IF NEWSCH GR 0 THEN 
        DB$MDWD;
 #
      CHECK IF ALL THE SOURCE INPUT HAS BEEN PROCESSED. 
 #
      IF FINFLAG EQ 0 THEN
 #
      RETURN TO THE MAIN OVERLAY WHICH WILL RELOAD THE (1,0) OVERLAY
      TO PROCESS THE REMANING SOURCE INPUT. 
 #
        RETURN; 
      IF ERRCNT GR 0 THEN 
        RETURN; 
 #
      TRANSFER THE OLD MD ENTRIES TO THE NEW MD. IF CREATION RUN, 
      DB$MDTR WILL TURN OFF THE SCHEMA WRITTEN FLAG.
 #
      DB$MDTR;
 #
      CALL DB$MDWU TO WRITE OUT THE PERMANENT FILE TABLE, SCHEMA
      DIRECTORY TABLE AND THE MD CONTROL WORDS. 
      JLT AND PFN TABLE.
 #
      DB$MDWU;
      RETURN; 
    END 
    TERM; 
