There is something wrong or incompatible with WLINK and the OFFSET operator
in both ALP and WASM. The results are the same whether you use ALP or WASM
to assemble the assembler module. The problem appears to be in WLINK.

According to the ALP docs:

The OFFSET operator returns the offset portion of its operand. For relocatable
values, this is the offset into the segment or group to which the expression is relative.

So, given

_DATA16 segment use16
Var dw 0
_DATA16 ends

_TEXT segment use32
    mov eax, offset _DATA16:Var ; the _DATA16: prefix is not really necessary
_TEXT ends

When linked with WLINK, eax gets a flat offset, which is wrong. When linked with ILINK,
eax gets the correct offset relative to _DATA16.

The test sample contains:
  afunc.asm - which has 2 functions. 1 to return the offeset of a variable in a 32 bit
              segment, and 1 to return the offset of a variable in a 16 bit segment.
  test.c    - which calls the 2 assembler functions and prints the result.
  makefile  - builds testw.exe linked with wlink, and testi.exe linked with ilink.

The result of running testi and testw are shown below. testi produces the correct
results, testw produces incorrect results. Both testi and tesw *should* produce the
exact same result.

[F:\src\os2\owtest\fixupbug]testi
GetVar16Offset()=0
GetVar32Offset()=480

[F:\src\os2\owtest\fixupbug]testw
GetVar16Offset()=10000
GetVar32Offset()=40480



