I tried this with my MCF51CN128 and CodeWarrior:
const int b@0x123;
and this works fine.
That kind of syntax is supported AFAIK in the pre-eclipse compiler too.
So I still think that this is because of your option settings: could you check that you do *not* have things set like
ANSI Strict: -strict on
ANSI keywords only: -stdkeywords on
in the compiler language settings?
Apart of that: have you 'byte' declared? Maybe try to change your line of code to
const unsigned char NVPROT_INIT @0x0000040D = 0xFB;
Hope this helps.