I am trying out an application for the MX51 and I need HUGE code generation but it generates a combination of both. As an example, in my routines it generates the proper ECALL and ERET but if I call a library function such as LSTXDATA, that library routine has RET instead of ERET which of course does not work. My MAP file says the LX51 used CPU MODE: PHILIPS 80C51MX (64KB CODE) instead of HUGE code. I have gone through the MX51 examples and they work fine. I have checked all my settings (everything is set HUGE), memory mapping, etc etc and I just cannot find the solution. Even set my memory mapping just like the "c linear rom" sample and still the problem exists. What should I try next?
Solved it. I had an A51 file at the beginning of the list and it looks like the linker uses the first file to decide what code size to use. I replaced the first file with a C program that had the ROM HUGE setting and the rest of the code followed the HUGE setting.