[comp.sys.ibm.pc] QuickBasic USERLIB

paulb@tekigm2.UUCP (05/15/87)

I support a large (~170 routine) library of signal processing and display
routines for Tektronix.  We want these routines to be able to be accessed
via QuickBasic. They are already available via IBM compiled BASIC v1.0 but
that compiler is no longer available.  

The routines are written in C (there are Microsoft and Lattice C bindings
available too) so to make them available to BASIC, we implemented a series
of interface functions that translate the BASIC parameters to the equivalent
C types. These interface functions do a number of other kinds of front end
checking and housekeeping  chores (like heap management) too.  

To link to BASIC correctly, the interface library and the signal processing
and graphics libraries have undergone "swizzling", a process that re-aligns
segment and group names to be acceptable to BASIC.  This all seems to work. 

Now the fun begins.  I can link QuickBasic 2.0, 2.1, and 3.0 programs to the
library AS LONG AS I USE AN IBM DOS LINKER AND NOT A MICROSOFT QUICKBASIC 
LINKER!!. If I use the QuickBasic linker I am told there are "too many segments"
even if the /SEGMENTS flag is det to the max.

The same problem occurs when trying to build a user library using the Quick-
Basic BUILDLIB program (notoriously under-documented).

Microsoft says the problem is that the interface isn't written in assembler
but why I can successfully use the IBM linker they don't say. They run fine
when linked this way but I want to provide support for the interactive
QuickBasic environment if possible.

So, I come to you, fellow-netters for some technical hints or even 
solutions. 

					THANKS IN ADVANCE

					Paul Blattner