This test case is based on the revision in https://hg.pushbx.org/ecm/edrdos/rev/8d01d7fe3cc1
This is the source of the test case, which is a part of drbio/init.asm plus all the files it includes: https://hg.pushbx.org/ecm/testjwas/file/5e082442d4c4
This is the resulting listing file: https://pushbx.org/ecm/test/20230814/repo/init.lst
The error is that the orgabs macro should detect that offset 171h is above 16Ch and therefore the org was directive should be run. However, it appears that the directive is not run, as the devno variable ends up at 16Ch.
This works correctly on MASM 6.11, and for JWasm the same macro does work in several other spots but not in this one.
Output:
$ jwasm -c -Zm -Flinit.lst init.asm
JWasm v2.18, Aug 14 2023, Masm-compatible assembler.
Portions Copyright (c) 1992-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
init.asm: 378 lines, 3 passes, 2 ms, 0 warnings, 0 errors
$ grep -E "orgabs\s+MACRO" -A11 init.asm
orgabs MACRO address
local was,is
was = offset $
org address
is = offset $
if was GT is
; if2
; %OUT ERROR - absolute data overwritten !! moving it
; endif
org was
endif
ENDM
$ grep oldxbda,newxbda -A12 init.lst
Public oldxbda,newxbda,xbdalen,oldmemtop
0169 0000 oldxbda dw 0 ; old XBDA segment address
016B 0000 newxbda dw 0 ; new XBDA segment address
016D 0000 xbdalen dw 0 ; length of XBDA in words
016F 0000 oldmemtop dw 0 ; old conventional mem limit
orgabs 16ch ; PRN:/AUX: the device number
00000171 = 171 1 ??0006 = offset $
1 org 16ch
0000016C = 16C 1 ??0007 = offset $
016C 0000 devno db 0,0 ;** fixed location **
$
This test case is based on the revision in https://hg.pushbx.org/ecm/edrdos/rev/8d01d7fe3cc1
This is the source of the test case, which is a part of drbio/init.asm plus all the files it includes: https://hg.pushbx.org/ecm/testjwas/file/5e082442d4c4
This is the resulting listing file: https://pushbx.org/ecm/test/20230814/repo/init.lst
The error is that the
orgabsmacro should detect that offset 171h is above 16Ch and therefore theorg wasdirective should be run. However, it appears that the directive is not run, as thedevnovariable ends up at 16Ch.This works correctly on MASM 6.11, and for JWasm the same macro does work in several other spots but not in this one.
Output: