*DECK DB$MDPR 
USETEXT MDBCMTX 
USETEXT MDDEFTX 
USETEXT UTMPTTX 
      PROC DB$MDPR ((OLDPFN),(OLDID),(OLDPAK),
                                (NEWPFN),(NEWID),(NEWPAK)); 
      BEGIN 
 #
* *   DB$MDPR - REPLACE PFN/ID/PACK IN PFN TABLE  PAGE  1 
* *   G. F. KENDALL                              DATE  08/07/79 
* *   J. G. SERPA - MDU 2.3 ENHANCEMENTS         DATE  07/16/80 
* *   R. L. MCALLESTER - TABLE SEGMENTATION      DATE  05/30/84 
* 
* DC  PURPOSE 
* 
*     REPLACE OLDPFN, OLDID AND OLDPAK (IN PFN TABLE) WITH NEWPFN,
*     NEWID AND NEWPAK. 
* 
* DC  ENTRY CONDITIONS
* 
*     PARAMETERS
* 
# 
      ITEM OLDPFN U;         # PFN IN (OLD MD) PFN TABLE ENTRY         #
      ITEM OLDID  U;         # ID/UN IN (OLD MD) PFN TABLE ENTRY       #
      ITEM OLDPAK U;         # PACK/SET/FAMILY NAME AND FLAGS IN OLD MD#
      ITEM NEWPFN U;         # PFN FOR NEW MD                          #
      ITEM NEWID  U;         # ID/UN FOR NEW MD                        #
      ITEM NEWPAK U;         # PACK/SET/FAMILY NAME AND FLAGS IN NEW MD#
# 
* 
*     ASSUMPTIONS 
* 
*     PFUNCBBP - ADDRESS OF BLOCK HEADER WORD OF PFN TABLE
*     PFUNCNT - NUMBER OF ENTRIES IN PFN TABLE
* 
* DC  EXIT CONDITIONS 
* 
*     IF OLD PF INFO IS FOUND, IT IS REPLACED WITH THE NEW PF INFO, 
*     AND RETURN TO CALLER. 
*     IF THE NEW PF INFO IS NOT UNIQUE, DIAGNOSTIC 137 IS ISSUED, AND 
*     EXIT IS TO DB$NO (NOT TO CALLER). 
*     IF THE OLD PFN ENTRY IS NOT FOUND IN THE PFN TABLE, DB$MDDF 
*     ABORTS BY CALLING DB$MABT.
* 
* DC  CALLING ROUTINES
* 
*     DB$SR63 - REPLACES TRANSACTION RECOVERY PERMANENT FILE
*     DB$SR69 - REPLACES DB PROC LIB PF INFO
*     DB$SR71 - REPLACES AREA PF INFO 
*     DB$SR72 - REPLACES INDEX PF INFO
*     DB$SR90 - REPLACES RESTART, BASIC, QUICK AND JOURNAL PERM FILE
* 
* DC  CALLED ROUTINES 
* 
# 
      XREF PROC DB$DIAG;     # ISSUE DIAGNOSTIC MESSAGE                #
      XREF PROC DB$MDDF;     # DELETE A PFN ENTRY                      #
      XREF FUNC DB$MDPF B;   # INSERT A PFN ENTRY                      #
      XREF PROC DB$NO;       # SYNTAX TABLE DRIVER NO RETURN           #
# 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
* 
*     NONE
* 
* 
* DC  DESCRIPTION 
* 
*     REPLACE A PFN, ID AND PACK IN THE PFN TABLE AS A RESULT OF
*     -CHANGE- PROCESSING.
* 
*     CALL DB$MDDF TO DELETE THE OLD ENTRY. 
*     IF THE OLD ENTRY IS NOT FOUND, DB$MDDF EXITS TO DB$MABT.
* 
*     CALL DB$MDPF TO INSERT THE NEW ENTRY. 
*     IF A DUPLICATE EXISTS, ISSUE DIAGNOSTIC 137 AND EXIT TO DB$NO.
 #
#     THE FOLLOWING COMDECKS ARE UNLISTED: MDABTDCLS                   #
      CONTROL NOLIST; 
*CALL MDABTDCLS 
      CONTROL LIST; 
  
  
  
  
#     B E G I N   D B $ M D P R   E X E C U T A B L E   C O D E .      #
  
  
      DB$MDDF(OLDPFN,OLDID,OLDPAK);    # DELETE THE OLD ENTRY          #
  
      IF NOT DB$MDPF(NEWPFN,NEWID,NEWPAK) 
      THEN
  
        BEGIN 
        DB$DIAG(137,NEWPFN);
        DB$NO;
        END 
  
      END  # DB$MDPR #
  
      TERM
