home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Shareware - Software Farm 2
/
wosw_2.zip
/
wosw_2
/
CPROG
/
BLTC13A.ZIP
/
BORLAND.ZIP
/
FIX104.TXT
< prev
next >
Wrap
Text File
|
1993-07-22
|
2KB
|
33 lines
22-Jul-93
To fix the problem with Borland C compilers in large memory models
do the following:
1. Create a new directory.
2. Copy BULLET.LIB 1.03 to it
3. Copy this fix's files to it (DOSFNXB.OBJ and MEMCXB.OBJ)
4. Do C>lib bullet.lib -+dosfnxb -memxb +memcxb; (exactly!)
That's it. BULLET.LIB is updated and should run as expected. The memcxb.obj is
written for LARGE memory model, only. With a couple conditionals, MEDIUM could
be used but it's not necessary. The problem with Borland compilers is that
the base their memory management on memory that isn't theirs, so whenever
a DOS INT21/48 call is made, the Borland memory manager crashes. This patch
routes BULLET DOS INT21/48/49 calls to _malloc and _free. This patch is
for LARGE models only. It's not required for MEDIUM.
MEMCXB.ASM is included. Makes for easy programmer changes of this non-
standard module (non-standard in that it requires a C runtime library).
--The reason DOSFNXB.OBJ is removed and replaced (-+dosfnxb) from the .LIB
is that xb$malloc, xb$free, and xb$SetHandleCount are in that module. The new
DOSFNXB.OBJ does not have these. These routines have been put in their own
module, MEMCXB.OBJ, which is added to the library (+memcxb).
BTW, the xb$SetHandleCount no longer works. I'll have to do it manually
(which I had to do in previous code since INT21/67 is available only in DOS
3.3+) but that's no problem. If you call INITXB with IP.jftmode=1, error 1 is
return for invalid function.
chh