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.