[comp.os.msdos.programmer] Overlays

bert@neptune.iex.com (Bert Campbell) (07/26/90)

I'm using MSC 5.0 and the linker that is supplied with it (3.61)
to create overlays in a big large-model program.  At first I couldn't
get them to work at all, but we finally figured out that functions in overlays
called via a function pointer wouldn't work with this linker.  Along with
that are other limitations that make a better linker a requirement.

I'm looking for general experiences with other linkers for creating
large "heavily overlayed" programs.  Recommendations for a particular
linker (RTLink? PLink?) with accompanying reasons would be a help.

In partiicular, do any of the "advanced" linkers allow you to put
the same object in more than one overlay?  Other pitfalls to look out for?


Bert Campbell  {uunet|convex}!iex!bert    214 612-2600

roelofs@amelia.nas.nasa.gov (Cave Newt) (07/27/90)

bert@neptune.iex.com (Bert Campbell) writes:

>I'm using MSC 5.0 and the linker that is supplied with it (3.61)
>to create overlays in a big large-model program.  At first I couldn't
>get them to work at all, but we finally figured out that functions in overlays
>called via a function pointer wouldn't work with this linker.  Along with
>that are other limitations that make a better linker a requirement.

I'm assuming that, as an MSC developer, you've recently received an offer
from Pocket Soft to purchase .RTLink at a substantial discount (few weeks
ago?  If not, give them a call).  They do get rid of the function pointer
problem, at least.

>I'm looking for general experiences with other linkers for creating
>large "heavily overlayed" programs.  Recommendations for a particular
>linker (RTLink? PLink?) with accompanying reasons would be a help.
>
>In partiicular, do any of the "advanced" linkers allow you to put
>the same object in more than one overlay?  Other pitfalls to look out for?

I haven't tried .RTLink, but their brochure mentions hierarchical overlays,
which is effectively what you're asking about:  the "same object" goes
in the parent overlay, and the rest of your routines go in two or more
sub-areas.  It's not clear from the documentation whether the nesting is
limited to a total of three levels, or if it's unlimited.  

And if you wait a month or two, you can just use the "virtual memory
linking" of version 4.0, which sounds a bit more flexible.

I've no connection with Pocket Soft, btw; just impressed by the sales
pitch. :)

bright@Data-IO.COM (Walter Bright) (07/28/90)

In article <1990Jul25.211808.29645@iex.uucp> bert@neptune.iex.com (Bert Campbell) writes:
<I'm using MSC 5.0 and the linker that is supplied with it (3.61)
<to create overlays in a big large-model program.  At first I couldn't
<get them to work at all, but we finally figured out that functions in overlays
<called via a function pointer wouldn't work with this linker.  Along with
<that are other limitations that make a better linker a requirement.

Zortech's VCM linker doesn't have this problem.

<I'm looking for general experiences with other linkers for creating
<large "heavily overlayed" programs.  Recommendations for a particular
<linker (RTLink? PLink?) with accompanying reasons would be a help.

Check out Zortech's VCM linker. It enables overlays to work much like
virtual memory, i.e. overlays are loaded on demand and placed anywhere
in memory where there happens to be room. Overlays are removed from
memory when malloc starts running out. There's an article explaining
the mechanics of it in the July C User's Journal.

P.S. I wrote it.

tlspurli@athena.mit.edu (Terry Spurling) (06/27/91)

Anyone know how to combine a bunch of .exe files into a system of
overlays - s.t. both the code and data are overlayed?