Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

OMF records (Developers)

posted by Rugxulo(R) Homepage E-mail, USA, 15.02.2012, 23:29

> > compiler circa 1991. So old, in fact, that it was expected to be used
> with
> > MS LINK, which at the time (MS-DOS 4.0?) came bundled with the OS.
> > Unfortunately, it uses at least one problematic ("obsolete") OMF .OBJ
> > record in its output: REGINT. This chokes most linkers.
>
> Have you tried the following LINK/TLINK options?
> Quote: the basic structure of both MS and Borland OBJ formats is based
> on the OMF format so specifying that the linker ignore the extended
> dictionary records (/NOE for LINK, -e for TLINK) will disable this little
> hassle.


16-bit TLINK seems to work fine. So does MS LINK (which the author seemed to prefer). The former is available in various freeware Borland releases (but can't be redistributed). The last MS LINK is actually a 32-bit PharLap .EXE and is publicly hosted on MS' FTP site, but it seems to be mostly a patch to MS VC 1.52 (last with 16-bit support), which is still commercial.

QLINK (recently GPL'd) works if you use /OMF:IGN ("ignore") but needs DPMI 1.0 (aka, DPMIONE), and it apparently doesn't play well with DOSEMU or really big RAM machines (e.g. this 6 GB behemoth).

WLINK doesn't really work, not sure why. For a single file project, it works, but something somewhere goes wrong with multiple .OBJs and it reports incompatibilities ("module out of date" or whatever, bogus def/ref internal hash key clash?).

For testing yesterday, I was actually using CC386's VALX, though it gave a few weird warnings. But it seemed to work, so I didn't complain.

I forget what others I tried. All I know is that it seems ludicrous to have so many linkers not handle the format, esp. when this compiler REALLY needs a linker. While I can see some simple compilers generating code directly, I don't think that would be 100% wise if you want to share code from the outside world. But it's obviously much harder to support a (pre?)"standard" object format (e.g. see FASM's latest postponement of Mach-O support). I naively figured I could just change 70h to 88h and it would work (and apparently did), but then I decided to read up a bit and play it a bit more "safe" just in case.

(There are other Oberon compilers but none that target 16-bit DOS, AFAICT. Color me nostalgic.)

> via
> http://www.faqs.org/faqs/msdos-programmer-faq/part2/
> which just happened to come back when I did a Google related search for
> Simtel OMF as I remembered there were a number of interesting OMF linker
> tools on my Simtel BBS CD's. Sadly the new "improved" simtel.net site is
> near enough useless now days and I couldn't find those utils quickly just
> now but might also be worth checking.
>
> > For various obscure reasons, I very very lightly decided to
> > look into the matter.
> Good enough reason :-)
>
> Hope the above helps.

I'm no linker expert, far from it, similarly for OMF or actually freakin' anything really! I didn't expect anyone to know anything (maybe Japheth, but I didn't presume to directly waste his time either). I just wanted to document my efforts in case anyone cared later on.

 

Complete thread:

Back to the forum
Board view  Mix view
13452 Postings in 1185 Threads, 198 registered users, 14 users online (0 registered, 14 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum