Thanks, that fixes that problem. I also had to make sure to use "export" in another file (lzutil.pas) and the .pas variables need to be in exactly the same case as the NASM object's references to them.
I have some new problems now, one in cmdline.pas where it tries reading the DOS application command line using a far pointer (it doesn't get the expected string content):
cmd:=string(ptr(Prefixseg,$80)^);
The other is lots of warning messages that all match, reading "lzexe.pas(558,1) Warning: Encountered an OMF reference to a section, that has been removed by smartlinking: DATA||" which are caused by lzss.o (renamed output of unmodified lzss.nas) it seems. (If I comment out almost all of this file the warnings disappear.)
Should I post about these problems in new threads?