watkins@hpspkla.HP.COM (Brian D. Watkins) (03/22/89)
I ran into an interesting problem the other night when I tried
to assemble Werner Gunther's Xoper program using the Lattice 5.02
version of asm and Blink.
The program is written to create two code hunks in the object
code. When the program is executed, the second hunk is detached
from the segment list and launched as a new process.
When I tried to execute the program my computer crashed. Using
the Lattice debugger cpr I discovered that the segment being passed
to CreateProc was a data segment, not the second code segment!
The assembler produces an object file that contains four hunks in
the following order:
Hunk # Name Type
------------------------
0 Startup Code
1 Xoper Code
2 blabla Data
3 Packet Data
After Blink is used to satisfy the references to the _LVO symbols
and a few library routines from amiga.lib, the executable file
contains hunks in the following order:
Hunk # Name Type
------------------------
0 Startup Code
1 blabla Data
2 Packet Data
3 Xoper Code
4..11 various code and data hunks from amiga.lib
It seems that Blink is changing the order of the hunks, which really
screws up the Xoper program. If I use the 5.0 version of Blink,
however, everything works fine.
Is this a bug in Blink 5.02, or is it some new feature that I am
unaware of? I do not have access to the Lattice BBS, so I am not sure
if they already know about this problem. If anybody knows of a solution
please clue me in.
Thanks in advance,
==============================
Brian Watkins
watkins%hpspkla@hplabs.hp.com
hplabs.hp.com!hpspkla!watkins