*COMDECK FREETAB
  
   DEF    BUFLV1#5120#;      # NAM BUFFER LEVEL 1 (MAXFL-12000B)       #
   DEF    BUFLV2#7168#;      # NAM BUFFER LEVEL 2 (MAXFL-16000B)       #
   DEF    BUFLV3#10240#;     # NAM BUFFER LEVEL 3 (MAXFL-24000B)       #
   DEF    HRLV0#0#;          # NAM BUFFER REGULATION LEVEL 0,BELOW 5K  #
   DEF    HRLV1#1#;          # NAM BUFFER REGULATION LEVEL 1,BELOW 7K  #
   DEF    HRLV2#2#;          # NAM BUFFER REGULATION LEVEL 2,BELOW 10K #
   DEF    HRLV3#3#;          # NAM BUFFER REGULATION LEVEL 3,ABOVE 10K #
  
  COMMON FREETAB; 
                             BEGIN
                                                                       #
* FREETAB IS USED TO CONTROL THE FREE CHAIN 
* IT IS A THREE WORD ENTRY IN LABEL COMMON AREA 
                                                                       #
   ARRAY FRTB P(1);              # MARKS POSITION OF COMDECK IN DUMP   #
                             BEGIN
      ITEM FRTBM#C,0,0,7#                                              #
*#                           C(0,0,7)=["FREETAB"];
      ITEM FRTB7#U,0,42,18#                                            #
*#                           U(0,42,18)=[O"777777"];
                             END
                                                                       #
          BSS    1
                                                                       #
   ARRAY FRETAB   P(3); 
                                                                       #
          BSS    3
                                                                       #
                             BEGIN
   ITEM FREMFL#B,0,0,1#      B(0,0,1);      # NIPLWA REACHES MAXNIP FLG#
   ITEM FREFBBP#I,0,24,AL#   I(0,24,AL);    # FREE BUF BACKWARD POINTER#
   ITEM FREFBFP#I,0,42,AL#   I(0,42,AL);    # FREE BUF FORWARD POINTER #
   ITEM FRENOFB#I,1,0,WL#    I(1,0,WL);     # NUMBER OF FREE BUFFERS   #
   ITEM FRESFB#I,2,0,WL#     I(2,0,WL);     # TOTAL SIZE OF FREETAB WD.#
   ITEM FRE1#U,0,0,WL#       U(0,0,WL)=[0]; # PRESET FIRST WORD TO 0   #
   ITEM FRE2#U,1,0,WL#       U(1,0,WL)=[0]; # PRESET SECOND WORD TO 0  #
   ITEM FRE3#U,2,0,WL#       U(2,0,WL)=[0]; # PRESET THIRD WORD TO 0   #
                             END
   ITEM MAXFL;               # MAXIMUN ALLOWABLE PROGRAM LENGTH        #
   ITEM CTLSFWA;             # FWA OF DYNAMICALLY CONTROLLED STORAGE   #
   ITEM CTLSLWA;             # LWA OF DYNAMICALLY CONTROLLED STORAGE   #
   ITEM MCUR;                # CURRENT FREE BUF LOCATION-MGBGCLT       #
   ITEM MCHG;                # LOC OF BUF BEING MOVED BY MGBGCLT       #
   ITEM MOLD;                # FWA OF ORIGINAL BLOCK                   #
   ITEM MNEW;                # FWA OF NEW AREA                         #
   ITEM MSIZE;               # SIZE OF BLOCK MOVED BY MGBGCLT          #
   ITEM HRL;                 # CURRENT NAM BUFFER REGULATION LEVEL     #
   ITEM LASTHRL;             # LAST NAM BUFFER REGULATION LEVEL        #
   ITEM COUNTER I = 0 ; 
   ITEM REDUCEFL;            # NONZERO IF CALL MGBGCLT TO REDUCE FL    #
                             END
                                                                       #
*     THE ADDRESS (MAXNIP-MODSIZE) IS THE THRESOLD TO TRIGGER DATA
*     MOVING FROM OUTBOUND BUFFERS TO BUFFERS AT LOWER ADDRESSES
*     WHENEVER POSSIBLE TO REDUCE MEMORY FRAGMENTATION IN NIP.
                                                                       #
   DEF    MODSIZE#3000#;
                                                                       #
          USE   * 
                                                                       #
                                                                       #
* #BASED ARRAY FREEBUF P(1);
                             BEGIN
   ITEM FRBMV#B,0,0,1#       B(0,0,1);      # NON-MOVABLE FLAG         #
   ITEM FRBID#U,0,0,6#       U(0,0,6);      # BLOCK ID                 #
   ITEM FRBBS#U,0,6,18#      U(0,6,18);     # BLOCK SIZE IN 18 BIT FLD #
   ITEM FRBFBBP#I,0,24,AL#   I(0,24,AL);    # FREE BLOCK BACKWARD PTR  #
   ITEM FRBFBFP#I,0,42,AL#   I(0,42,AL);    # FREE BLOCK FORWARD PTR   #
   ITEM FRBWD#U,0,0,WL#      U(0,0,WL);     # ONE WORD IN FREE BUFFER  #
                             END
  
  
