Path: utzoo!mnetor!uunet!mcvax!botter!tjalk!ogilvie From: ogilvie@cs.vu.nl (Ogilvie Robert Paul) Newsgroups: comp.sys.ibm.pc Subject: Re: DOS Interrupts 1Eh and 2Eh Message-ID: <971@tjalk.cs.vu.nl> Date: 31 Mar 88 12:17:19 GMT Reply-To: ogilvie@cs.vu.nl (Ogilvie Robert Paul) Organization: VU Informatica, Amsterdam Lines: 27 Keywords: ASM, C, symbols Summary: ASM interfacing to C The best way to see if the modules "find" each other is by inspecting the load map (use /M with link). The later Microsoft linkers also use upper/lowercase. Things to look out for are: * identifier length don't match. Result is different identifiers (12 chars normal in object-files, 8 chars in 'C'-object modules) Thus truncate your identifiers. * Upper and lower case mismatch. Result: different identifiers. Use commandline switches for the linker, or edit your names. * See if C prepends underscores to names, and if then names are 8 or 9 chars. Methodes to check: * link each module separately and suppress library search (switch). The list of "unresolved externals" also shows the exact names expected. * link & study the load map (link/M). By the way, check the segments and their naming-conventions. General C-segment names are TEXT, DATA and BSS plus a STACK (is normally high end of BSS: addr 0= DATA, then BSS (unint'd data), then heap between BSS and stack, then stack (grows down to heap). Good luck, Paul Ogilvie.