[comp.databases] Linking MASM .OBJ file with PLINK86

lily@haydn.kulesat.uucp (05/24/89)

Hello.

Could someone out there help me with the following problem ?

  I wrote a routine in assembler to call interrupt 17H.
  When I assemble it (with MASM v3.00), and EXE2BIN it,
  it can be LOADed with dBaseIII+.  CALLing it in dBase
  works fine , but when I try to link the  .OBJ version 
  with the  PLINK86 linker,  the undefined symbol error
  occurs. What did I do wrong ? Or, how to solve this ?
  
  This is how the  .ASM-file looks like ( I ommited the 
  actual code.) :
  
  
  ;
  ; WINDOWUP-routine
  ;
  TITLE     windowup
  ;
            ORG     0
  _prog     SEGMENT BYTE
            ASSUME  CS:_prog
  ;
  windowup  PROC FAR
            ;
            ;
            ;
            RET
  windowup  ENDP
  ;
  _prog     ENDS
            END
            

Thanks in advance.

any help will be collected at this address :

kulesat!lily (UUCP)   or  lily%kulesat.uucp@blekul60  (BITNET)

awd@dbase.UUCP (Alastair Dallas) (05/27/89)

I am sorry to post this, but we're having trouble with email (possibly
caused by my stupidity).  The subject line should warn away the uninterested.

When dBASE loads a binary file, it just does a JUMP to the start of the
file and starts executing, so the questioner's INT 17H program works.  In
a Clipper environment, however, the linker needs a label to identify where
to JUMP to.  Labels in a MASM program are not visible to the linker unless
they are first declared with the PUBLIC directive, as in:

	PUBLIC	Start


Start	Proc	Far
	....

Now, PLINK will know about Start and when Clipper calls Start, you'll get
to the same place.  Note, however, that parameter-passing conventions are
somewhat different.

/alastair/