*DECK FCSMRFL 
USETEXT TEXTFCS 
      PROC FCSMRFL (NUM); 
*CALL COPYRITE
# TITLE FCSMRFL - REQUEST FIELD LENGTH CHANGE.                         #
  
      BEGIN                            # FCSMRFL                       #
  
# 
**    FCSMRFL - REQUEST FIELD LENGTH CHANGE.
* 
*     C. J. RAMSAY                     87/11/03 
* 
*     THIS PROCEDURE REQUESTS A FIELD LENGTH CHANGE AND UPDATES THE 
*     AVAILABLE WORDS FOR TABLE EXPANSION.
* 
*     PROC FCSMRFL (NUM)
* 
*     ENTRY    NUM       = NUMBER OF WORDS TO INCREASE FIELD LENGTH.
*              AVAIL     = AVAILABLE WORDS FOR TABLE EXPANSION. 
*              FL        = CURRENT FIELD LENGTH.
*              P<MREQ>   = PTR TO MEMORY REQUEST WORD.
* 
*     EXIT     AVAIL     = AVAILABLE WORDS FOR TABLE EXPANSION. 
*              FL        = CURRENT FIELD LENGTH.
*              DUMMY LAST TABLE POINTER UPDATED.
* 
*     METHOD   IF THE FIELD LENGTH CHANGE WILL RESULT IN THE MAXIMUM
*              FIELD LENGTH BEING EXCEEDED THEN EXIT THE PROGRAM. 
*              REQUEST THE NEW FIELD LENGTH AND MAINTAIN REVELANT 
*              TABLE MANAGEMENT INFORMATION.
* 
# 
  
# 
****  PROC FCSMRFL - XREF LIST
# 
      XREF
        BEGIN 
        PROC ABORT;                    # ABORT JOB                     #
        PROC MEMRY;                    # REQUEST CENTRAL MEMORY        #
        END 
# 
****
# 
      ITEM NUM           I;            # NUMBER OF WORDS TO INCREASE   #
  
      ITEM NEWFL         I;            # NEW FIELD LENGTH              #
      CONTROL EJECT;
# 
*     START MAIN PROCEDURE
# 
      NEWFL = ((FL + NUM + FLMUL - 1) / FLMUL) * FLMUL; 
  
      IF NEWFL GR MAXFL 
      THEN
        BEGIN                          # MAXIMUM FIELD LENGTH EXCEEDED #
        FTPABORT = EMAXFL;             # SET UP ABORT CODE             #
        ABORT;                         # ABORT JOB                     #
        END;
  
      MEMRY (NEWFL, MREQ);             # REQUEST NEW FIELD LENGTH      #
      NEWFL = MREQ$FL[0]; 
      AVAIL = AVAIL + NEWFL - FL;      # UPDATE AVAILABLE WORDS        #
      FL    = NEWFL;                   # UPDATE CURRENT FIELD LENGTH   #
      TEND  = NEWFL - 8;               # UPDATE DUMMY LAST TABLE PTR   #
  
      RETURN;                          # RETURN TO CALLER              #
  
      END                              # FCSMRFL                       #
  
      TERM
