LINK Help (linker.hlp) (
Table of Contents;
Topic list)
MOVE Limits and Requirements
◄Up► ◄Contents► ◄Index► ◄Back►
─────LINK───────────────────────────────────────────────────────────────────
The following requirements and restrictions must be observed when
you create an overlaid program with MOVE:
Compatibility
MOVE overlaid programs require DOS version 3.0 or later.
Expanded memory must conform to the Lotus/Intel/Microsoft (LIM)
EMS (Expanded Memory Specification) version 4.0 or later. Extended
memory must conform to the XMS (Extended Memory Specification)
provided in a memory manager such as HIMEM.SYS.
The Microsoft CodeView debugger version 4.0 is compatible with
overlaid programs created with MOVE.
Space Restrictions
An overlaid program takes up more space on disk than the same
program created without overlays.
The required amount of conventional memory is the sum of:
■ The size of the root. To determine this size, run EXEHDR on
the program and read the value in the Memory needed: field.
See: ◄EXEHDR►
■ The size of the overlay heap. The minimum heap allocated by
MOVE is equal to the size of the largest overlay.
The Overlaid Program
Only programs with multiple code segments can be overlaid. Far
call and return instructions are required between overlays.
Up to 2047 overlays can be specified. The program can define up to
16,383 logical segments (segments with different names).
The entry point to the program must be in the root. Do not place
MOVE.LIB into an overlay.
Only code segments are overlaid. Data segments become part of the
root. Code from the run-time libraries is placed in the root.
An Individual Overlay
An overlay size is limited to 64K. The optimal size is around 4K.
An overlay can contain one or more segments.
Programming Considerations
You cannot jump between overlays using setjmp and longjmp. You can
use long jumps from an overlay to the root. It is possible but not
recommended to use long jumps within an overlay.
You cannot use the same public name in different overlays.
The interrupt number used by MOVE is 63 (3F hexadecimal). You can
use LINK's /OV option to change the interrupt number.
See: ◄/OV Option►
-♦-