*COMDECK COMPOVR
          CTEXT  COMPOVR - DEFINES PRODUCT OVERLAY OVERFLOW MACRO 
  
***       COMPOVR - DEFINES PRODUCT OVERLAY OVERFLOW MACRO
* 
*         D. J. JOHNSON      09/23/82.
  
          COMMENT            COPYRIGHT CONTROL DATA CORPORATION.  1982. 
  
          SPACE  4,10 
***       THIS COMMON DECK DEFINES THE MACRO OVRFLW.  IT IS USED TO 
*         DETERMINE WHETHER A MALET PRODUCT OVERLAY CAN BE LOADED 
*         WITHOUT CAUSING PP WRAP-AROUND.  ADDITIONALLY, IT PROVIDES
*         A COUNT OF HOW MANY BYTES (12-BIT) CAN BE ADDED BEFORE
*         THAT CONDITION EXISTS.
* 
*         THE TEST IS PREDICATED ON THE FACT THAT NOS LOADS OVERLAYS
*         IN MULTIPLES OF 500B BYTES WITH 12B BYTES OF THE TOTAL
*         LENGTH LOST TO OVERHEAD (NON-EXECUTABLE), AND NOS/BE LOADS
*         OVERLAYS IN MULTIPLES OF 5 BYTE CENTRAL MEMORY WORDS. 
          SPACE  4,10 
**        OVRFLW - CHECK FOR PP MEMORY OVERFLOW 
* 
*         OVRFLW  MACRO  LOAD,OVFL
* 
*         LOAD = LOAD ADDRESS OF PRODUCT OVERLAY
* 
*         OVFL = FIRST ADDRESS WHICH CANNOT BE DESTROYED BY A LOAD
* 
          PURGMAC  OVRFLW 
 OVRFLW   MACRO  LOAD,OVFL
          IFEQ   NOS,1
          LIST   M
 .1       SET    LOAD 
 .2       SET    OVFL 
 .3       SET    *-.1+5+4+500B  CURRENT BINARY LENGTH + 1 SECTOR
 .4       SET    .2-.1+5-1      MAXIMUM AVAILABLE SPACE 
          ERRNG  .2-.1+5-.3/500B*500B-1  BYTES LEFT AFTER LAST SECTOR 
          ERRNG  .3/500B*500B-5-*+.1-5   BYTES LEFT IN LAST SECTOR
          ERRNG  .4/500B*500B-5-*+.1-5   BYTES AVAILABLE TO OVERLAY 
          LIST   *
          ENDIF 
  
          IFEQ   NOSBE,1
          LIST   M
 .1       SET    LOAD 
 .2       SET    OVFL 
 .3       SET    .2-.1       TOTAL BYTES AVAILABLE FOR OVERLAY
 .4       SET    .3-.3/5*5   UNLOADABLE BYTES 
          ERRNG  .2-.4-*     BYTES AVAILABLE TO OVERLAY 
          LIST   *
          ENDIF 
          ENDM
  
          ENDX
