test$ for bar in 0 1 2 3 4 8 16 32 64 128 256 512 1024 2048 4096 8192; do echo -ne "$bar: " && nasm -DBAR=$bar test.asm -f obj && ~/proj/omfdump/omfdump test.obj | grep PUBLIC | tail -n1; ~/proj/msdos4.hg/hg/warplink.sh /mx test.obj,test.exe,test.map\; > /dev/null && cat test.map | perl -pe 's/\s+TEST.ASM\s+TEST.OBJ//' | grep PUBLIC | grep FOO; done 0: test.asm:5: error: invalid alignment value 0 test.asm:6: error: segment alignment `0' is not power of two test.asm:6: error: division by zero 1: BYTE (A1) PUBLIC (C2) USE16 size 0001 FOO 0000:0001 0001h BYTE PUBLIC FOO 2: WORD (A2) PUBLIC (C2) USE16 size 0001 FOO 0000:0002 0001h WORD PUBLIC FOO 3: test.asm:5: error: invalid alignment value 3 test.asm:6: error: segment alignment `3' is not power of two 4: DWORD (A5) PUBLIC (C2) USE16 size 0001 FOO 0000:0001 0001h PAGE PUBLIC FOO 8: PARA (A3) PUBLIC (C2) USE16 size 0001 FOO 0001:0000 0001h PARA PUBLIC FOO 16: PARA (A3) PUBLIC (C2) USE16 size 0001 FOO 0001:0000 0001h PARA PUBLIC FOO 32: PAGE (A4) PUBLIC (C2) USE16 size 0001 FOO 0010:0000 0001h PAGE PUBLIC FOO 64: PAGE (A4) PUBLIC (C2) USE16 size 0001 FOO 0010:0000 0001h PAGE PUBLIC FOO 128: PAGE (A4) PUBLIC (C2) USE16 size 0001 FOO 0010:0000 0001h PAGE PUBLIC FOO 256: PAGE (A4) PUBLIC (C2) USE16 size 0001 FOO 0010:0000 0001h PAGE PUBLIC FOO 512: LTL (A6) PUBLIC (C2) USE16 size 0001 FOO 0000:0001 0001h PAGE PUBLIC FOO 1024: LTL (A6) PUBLIC (C2) USE16 size 0001 FOO 0000:0001 0001h PAGE PUBLIC FOO 2048: LTL (A6) PUBLIC (C2) USE16 size 0001 FOO 0000:0001 0001h PAGE PUBLIC FOO 4096: LTL (A6) PUBLIC (C2) USE16 size 0001 FOO 0000:0001 0001h PAGE PUBLIC FOO 8192: test.asm:5: error: invalid alignment value 8192 test$