Hi
Thanks to aw27's hint I found the problem. I reduced the sequence of commands/options/etc. from those files to the following code:
POINTER typedef DWORD ;Anonymous pointer
option casemap:none ;Case sensible
option dotname ;Enable dot names
.686p ;Use 686 protected mode
.xmm ;Enable xmm instructions
.model flat, stdcall ;Memory model = flat, use StdCall as default calling convention
NULL equ 0
ALIGN_CODE = 8
.code
externdef pFirstObject:POINTER
OPTION PROLOGUE:NONE
OPTION EPILOGUE:NONE
align ALIGN_CODE
GetObjectTemplate proc dObjectID:DWORD
...
GetObjectTemplate endp
OPTION PROLOGUE:PrologueDef
OPTION EPILOGUE:EpilogueDef
end
Now, if you move the .686p directive to the first line, all is smooth again. The problem is the POINTER typedef.
it seems that the .686p directive in UASM erases all previous definitions while ML remembers them!
Biterider