krist@stsci.EDU (John Krist) (10/03/90)
Greetings:
I have been having some problems developing overlays and hope someone
out there in NetLand can help me.
I'm writing graphics device drivers which are loaded in as overlays
using the DOS 21h interupt EXEC overlay function. I'm using Turbo C
(actually Turbo C++), but I am not using their (Borland's) overlays.
I set aside memory with the allocmem function and load in the overlay
using an intdosx call. The overlay is of the form:
CSEG blah blah blah 'code'
initov proc far
(Returns the offsets of the other routines, calling program
sets up the segment)
initov endp
firstproc proc far
blah blah blah
firstproc endp
...
lastproc proc far
blah blah blah
lastproc endp
CSEG ends
END
Standard type of stuff. It works fine, until I added just one more
procedure. After I did that, any routine in the overlay would execute
properly, but would hang the system when it returned. I tossed out
various procedures, and it would still hang as long as there were a certain
number of procedures (or the code was above a certain size, perhaps).
The exe size of the working code is about 2000, and the non-working code is
about 2500 bytes. There is plenty of memory and stack allocated for the
thing to use.
This is driving me nuts. Any help would be appreciated.
John Krist
krist@stsci.edu
Space Telescope Science Institute
Baltimore, Md