LINK Help (linkx.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Restrictions on Overlays
                                             Up Contents Index Back
─────Restrictions on Overlays───────────────────────────────────────────────
 
     Not all programs can use overlays. You will probably need to
     reorganize the code to accommodate the limitations explained
     below. Even after reorganization, some programs might not be
     convertible to overlay form or might not show a significant
     reduction in the amount of memory needed to execute them.
 
        ■ You can use overlays only in programs with multiple code
          segments because separate segment names are needed for
          overlays. Only code is overlaid, not data. The data becomes
          part of the root of the program that is always in memory.
 
        ■ Only 255 overlays can be specified. The program can define
          only 255 logical segments (segments with different names).
          This limits an overlaid program to 16 megabytes.
 
        ■ You must structure your program so that only one overlay
          needs to be in memory at any time (in addition to the root).
 
        ■ Duplicate names for different overlays are not supported;
          each module can appear only once in a program.
 
        ■ You must use far call/return instructions to transfer control
          between overlaid files. You cannot overlay files containing
          near routines if other overlays call those routines.
 
        ■ You cannot jump out of or into overlaid files using the
          longjmp C-library function. (However, you can use long jumps
          within an overlaid file.)
 
        ■ You cannot call routines using function pointers out of or
          into overlaid files. (However, you can call a routine using
          a function pointer within an overlaid file.)
 
        ■ You cannot use the same public name in different overlays.
 
        ■ The code required to manage overlays adds about 2K to 3K to
          the size of the root.
                                    -♦-