Memory Allocation

MOVE allocates a heap in conventional memory for overlays in use. MOVE can also allocate a cache in extended and expanded memory. The following sections describe how allocations are performed.

The Overlay Heap

The overlay heap is allocated in available conventional memory at run time. The minimum size of the heap allocated by MOVE is the size of the largest overlay, and the maximum is the sum of the sizes of the three largest overlays. You can change these defaults by rewriting the _moveinit routine so that different values are passed to the _movesetheap routine. These and other MOVE routines are described in the MOVEAPI.TXT file on your distribution disks. The _moveinit routine is provided in the MOVEINIT.C file, and all MOVE routines are defined in the MOVEAPI.H include file.

The Overlay Cache

The cache for discarded overlays is allocated at run time in extended and expanded memory. The amount of memory available in each affects whether the cache is allocated in either extended memory or expanded memory or both. The _moveinit routine calls the _movesetcache routine to set how much of each kind of memory is used. You can rewrite _moveinit to change the values that are passed to _movesetcache.

If your program spawns another program that requires expanded or extended memory, you can use the _movepause and _moveresume routines to release the cache memory temporarily and subsequently restore it.