Information about the base .OBJ format can be found in Intel's document
number #121748-001, {8086 Relocatable Object Module Formats} (not
verified).
Both Microsoft and Borland have extended the .OBJ format, as has IBM for
OS/2; and according to the MS-DOS encyclopedia, Microsoft doesn't
actually use all the listed formats.
Microsoft-specific .OBJ formats:
* A 45-page article can be found in the {MS-DOS Encyclopedia}, ISBN
1-55615-049-0, now out of print.
* "Microsoft Object Module Format (OMF)" Specification, 22 Nov 1991, was
published by the Microsoft Languages Group (not verified).
Borland-specific .OBJ formats:
* Open Architecture Handbook. The Borland Developer's Technical Guide,
1991, no ISBN. Chapter 2, "Object file contents", (pages 27-50) covers
the comment records sent to the object file by Borland C++ version 3.0
and other Borland compilers. The comment records mostly contain
information for the Borland debugger (not verified).
A "tutorial on the .OBJ format" comes with the VAL experimental linker,
downloadable as <ftp://garbo.uwasa.fi/pc/assembler/linker.zoo>.