Checksum: 42058
Path: utzoo!utgpu!parora
From: parora@gpu.utcs.toronto.edu (Pavneet Arora)
Date: Wed, 1-Jun-88 21:38:52 EDT
Message-ID: <1988Jun1.213852.25238@gpu.utcs.toronto.edu>
Organization: University of Toronto Computing Services
Subject: Mixed language programming question.  Help please!
Newsgroups: comp.sys.ibm.pc
Keywords: MASM 5.1, QuickC 1.0


Hi,

  I have been trying my hand at mixed language programming using MASM 5.1 and
Quick C 1.0, and have been having some problems which I hope that people
on the net can help me with.  

  I wrote a simple assembler routine which takes an EGA card into 35 line
mode.  I know this works because I have a standalone assembler routine which
uses this.  I have also been careful to use uSoft's default segment short
forms; used the medium memory model; preceded my assembler routine name
with '_'; and used the C parameter passing conventions as described in the
documentation.

  I did deviate from the documentation in that I did not use the /MX or /ML
switches when assembling the routine.  BUT, after I had written the 
C mainline (just a single call to the assembler routine) I went into the
make file and took out the '/NOI' switch in the link statement and ran make.
It came back with external references not resolved.  I thought that taking
the '/NOI' switch off should ignore case and make the link work.  What is
more confusing is that if I go into the QuickC environment and do a build
with an existing .obj, the link works. 

  Could someone please tell me what I am doing wrong?  Does the same problem
exist in MS-C 5.x.  

PS.  Yes, I could have used the /MX, /ML switches and everything would work,
but I was trying to simulate a case of an external runtime library where it
is unknown whether or not the library was compilied using these switches.
In this case I would have thought that removing the '/NOI' switch would be
a good way of doing it.

adTHANKSvance

pavneet arora
parora@utgpu.