dougm@pnet51.cts.com (Doug Mcintyre) (03/22/89)
Actually using the advanced linker and APW C, you can have any size of varraibles you want. Arrays are no problem, but you have to be careful that some programs only use malloc which has a 64k limit, and assume that two large blocks they allocate will be contigous, which they are practically assured that they will not be. (ie. the MM will try to allign blocks in some weird demonic manor..). Of course auto varriables are regulated to less than 64k since they are allocated on the stack, and that stack can probably only resonably be about 32k max.. Globals can be put in many different load segments with the advanced linker (much easier than using the segment command). But there is one gotcha using the alinker, the APW C library is totally messed up now, you have to do about 4 passes at least to drag all the library stuff into your load segments. If anybody needs help with this, I use a standard alinker script that does the job, and is minimal. If you are working with more than 5 files, the APW C segment specifier is too much of a pain to use.. Orca/C compiles and links much faster (I've timed it to be about 1/3 faster compiling and linking. Can't run through big enough programs to test compiling speed yet) Mike reports that the small model on Orca/C runs up to about 25% faster than APW C does because it only uses 16-bit relative addressing instead of all 24-bit absolute addressing APW C produces.. Also if you are into size, an Orca/C basic program that drags printf into the load segments ends up being only 3k, while the same program under APW C is close to almost 10 times that.. Not quite but close enough with those large numbers.. UUCP: {rosevax, crash}!orbit!pnet51!dougm Compuserve: 70611,2215 ARPA: crash!orbit!pnet51!dougm@nosc.mil ALPE: DougMac INET: dougm@pnet51.cts.com