Templates for Keil C51 and/or Intel MCS51 (8051) LIB files?

Have any of you ever played around with ARM Keil’s C51 compiler, which supports a variety of chips based on Intel’s MCS-51 instruction set architecture (the Intel 8051 microprocessor)?

If so, do you have templates for their object file formats?

The Keil toolchain uses an object library format that is an extension of an Intel format called OMF-51, which is documented in an Intel document no. 481984 from 1982, titled EXTERNAL PRODUCT SPECIFICATION FOR THE MCS-51 OBJECT MODULE FORMAT. (Available from Keil at www.keil.com/download/files/omf51.zip)

Object libraries in this format traditionally use the file extension .LIB.

Working from the Intel document, I’ve put together a template for these LIB files that handles a lot of the details of the original Intel parts of the format.

Keil adds a number of record types to those defined in the Intel specification, but it doesn’t publicly document them, considering the details proprietary. (They do say that these are available to accredited developers.)

(There’s also a plugin for Midnight Commander that understands OMF-51, and maybe even some aspects of Keil’s extensions, but it is closed-source.)

I’d really like to be able to extend my template just enough to give meaningful names to the Keil-specific record types. The inner details of such records are of less interest to me.

No, we don’t have any experience here with the Keil C51 compiler or their object file formats. Hopefully some other users of the forum could have some insights. Cheers!

Graeme Sweet
SweetScape Software

Oops. Where I said Midnight Commander I actually meant Total Commander