*DECK DB$SR63 
USETEXT CUGBATX 
USETEXT MD10CTX 
USETEXT UTMPTTX 
USETEXT MDBCMTX 
      PROC DB$SR63; 
      BEGIN 
 #
* *   DB$SR63 - CHANGE TRF INFORMATION           PAGE  1
* *   J. G. SERPA                                DATE  09/05/80 
* 
* DC  PURPOSE 
* 
*     REPLACE TRANSACTION RECOVERY FILE (TRF) INFORMATION.
* 
* DC  ENTRY CONDITIONS
* 
*     CURFILTYP - INDICATES CURRENT FILE IS TRANSACTION 
*     MDPFINFO  - PERMANENT FILE INFORMATION FOR TRF
*     UNITLIM   - TEMPORARY CELL CONTAINING UNIT LIMIT
*     UPDLIM    - TEMPORARY CELL CONTAINING UPDATE LIMIT
*     SCINBP    - ADDRESS OF BLOCK FOR SCHEMA INFORMATION TABLE 
* 
* DC  EXIT CONDITIONS 
* 
*     PERMANENT FILE INFORMATION, UNIT LIMIT, AND/OR UPDATE LIMIT 
*     ARE REPLACED IN THE SIT.
* 
* DC  CALLING ROUTINES
* 
*     DB$SNTX - SYNTAX CRACKER (SYNGEN) 
* 
* DC  CALLED ROUTINES 
* 
# 
      XREF PROC DB$DIAG;           # ISSUE DIAGNOSTICS                 #
      XREF PROC DB$MDPR;           # REPLACE PF INFO IN PFN TABLE      #
      XREF PROC DB$NO;             # SYNTAX TABLE DRIVER -NO- RETURN   #
# 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*     CHECK IF TRANSACTION RECOVERY INFORMATION HAD BEEN SPECIFIED IN 
*     THE OLDMD. THIS IS DONE BY CHECKING THE OFFSET POINTER MDSITRFP 
*     IN THE SCHEMA INFORMATION TABLE. IF THIS FIELD IS ZERO, DIAGNOSTIC
*     138 IS ISSUED, AND EXIT TO DB$NO IS TAKEN.
*     IF UPDLIM IS NON-ZERO, STORE IT INTO MDSIUPDL.
*     IF UNITLIM IS NON-ZERO, STORE IT INTO MDSIUNIL. 
*     BASED ARRAY PITPF IS USED HERE JUST AS A DUMMY ARRAY TO PICK UP 
*     PERMANENT FILE INFORMATION FROM THE SCHEMA INFORMATION TABLE. IT
*     HAS NOTHING TO DO WITH THE PERMANENT FILE INFORMATION TABLE 
*     SINCE SCHEMA-TYPE PERMANENT FILES DO NOT HAVE INFORMATION IN THE
*     PERMANENT FILE INFORMATION TABLE. 
*     IF ARRAY MDPFINFO CONTAINS PERMANENT FILE INFORMATION FOR THE 
*     TRANSACTION RECOVERY FILE, APPEND "1" TO THE PERMANENT FILE NAME
*     IN BOTH THE SCHEMA INFORMATION TABLE AND MDPFINFO, THEN CALL
*     DB$MDPR TO REPLACE THE PERMANENT FILE INFORMATION IN THE PFN
*     TABLE. IF THE PFN IS NOT UNIQUE, DB$MDPR EXITS DIRECTLY TO DB$NO. 
*     IF DB$MDPR RETURNS, REMOVE THE "1" FROM THE PERMANENT FILE NAME,
*     AND REPLACE THE PERMANENT FILE INFORMATION IN THE SCHEMA
*     INFORMATION TABLE.
*     EXIT IS TO DB$NO. 
* 
 #
  
  
      ITEM I;                      # DUMMY INDEX VARIABLE              #
      CONTROL EJECT;
      IF MDSITRFP[0] EQ 0          # IF NO TRF IN OLD MD               #
      THEN
        BEGIN 
        DB$DIAG(138,SCHNAME);      # ISSUE DIAGNOSTIC                  #
        DB$NO;                     # EXIT TO STD                       #
  
        END 
      IF UPDLIM NQ 0               # IF UPDATE LIMIT MODIFIED          #
      THEN
        BEGIN 
        MDSIUPDL[0] = UPDLIM;      # CHANGE UPDATE LIMIT               #
        END 
      IF UNITLIM NQ 0              # IF UNIT LIMIT MODIFIED            #
      THEN
        BEGIN 
        MDSIUNIL[0] =UNITLIM;      # CHANGE UNIT LIMIT                 #
        END 
      IF MDPFWORD[CURFILTYP] NQ 0  # IF TRF PF INFO MODIFIED           #
      THEN
        BEGIN 
        P<PITPF> = LOC(MDSICW[MDSITRFP[0]]);
        C<6,1>MDPITNAME[0] = "1";  # APPEND 1 TO PFN                   #
        C<6,1>MDPFINAME[CURFILTYP] = "1"; 
        DB$MDPR(MDPITNAME[0],MDPITUNID[0],MDPITSNPN[0], 
          MDPFINAME[CURFILTYP],MDPFUNID[CURFILTYP],MDPFSNPN[CURFILTYP]);
        C<6,1>MDPFINAME[CURFILTYP] = " ";  # REMOVE NUMBER FROM PFN    #
        P<GETENTRY> = LOC(MDPFWORD[CURFILTYP]); 
        P<PUTENTRY> = LOC(MDSICW[MDSITRFP[0]]); 
        FOR I = 0 STEP 1           # REPLACE PF INFO IN SIT            #
          UNTIL DFPFENTLEN - 1
        DO
          BEGIN 
          PUTINT[I] = GETINT[I];
          END 
        END 
      DB$NO;                       # EXIT TO STD                       #
  
      END 
      TERM
