Hello
Apparently you have a bunch of constant table in the application and these are taking too much room from the C000-FEFF memory area.
I would recommend you to define (declare these constant tables in a user defined constant section defined with attribute PPAGE.
Example:
#pragma CONST_SEG __PPAGE_SEG MybankedConst
int Fruit[636] = {....};
/* Other banked constants */
#pragma CONST_SEG DEFAULT
Declaration should look as follows:
#pragma CONST_SEG __PPAGE_SEG MybankedConst
extern int Fruit[636];
/* Other banked constants */
#pragma CONST_SEG DEFAULT
Then to place the section in banked memory.
In the .prm file change
DEFAULT_ROM INTO PAGE_30,PAGE_31,PAGE_32,PAGE_33,PAGE_34,PAGE_35,PAGE_36,PAGE_37,
PAGE_38,PAGE_39,PAGE_3A,PAGE_3B,PAGE_3C,PAGE_3D;
into
DEFAULT_ROM, MybankedConst INTO PAGE_30,PAGE_31,PAGE_32,PAGE_33,PAGE_34,PAGE_35,PAGE_36,PAGE_37,
PAGE_38,PAGE_39,PAGE_3A,PAGE_3B,PAGE_3C,PAGE_3D;
Make sure to build your application with option -CpPPAGE=RUNTIME.
If the banked constants are used as parameter in library functions, you may have to re-generate the library telling the compiler you are using banked constants.
I hope this helps.
CrasyCat