We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello,
I use a rather old version of A51 (V5.52b) and L51 (V3.52), both MS-DOS executables. Yesterday I got this error from the assembler: A51 FATAL ERROR - ERROR: LIMIT EXCEEDED: TOO MANY EXTERNALS (256) A51 TERMINATED. I write assembly similar to C, putting externals in *.INC files and the implementation in *.A51
When a module includes many include-files the limit of 256 externals can be reached rather soon.
Another thing I don't like in my older version is that when I declare an external symbol but don't use the linker complains about this missing external.
Q: is the actual A51 package still so limited?
- Heinz
http://www.keil.com/support/man/docs/a51/a51_xd.htm says, "Ax51 uses the OMF 251/51MX file format for object files. A51 uses an extended version of the Intel OMF 51 file format. The OMF 51 file format limits the numbers of external symbols and segments to 256 per module. The OMF 251 file format does not have such a limit on the segment and external declarations."
Hello Andy,
so the OBJ-file restriction is one reason but not the only one. The problem is that the A51 also puts unreferenced externals in the OBJ-file! That's the reason why the limit exceeds.
BTW, I was able to reduce the actual number of externals and continue now.
The new tool revisions do not have the 256 PUBLICS limitations anymore. So you should really upgrade your 10 year old toolchain.