Hello
I am not sure the attribute zram makes much sense here.
The whole area 0x00..0xFF is full of I/O registers. So you will not be able to place anything else in there.
Anyway if you want to tell the compiler you want to access data using the DIRECT addressing mode, you need to define the variable in a so called SHORT segment.
This is done as follows:
#pragma DATA_SEG __SHORT_SEG MyZeroPageData
int my data;
#pragma DATA_SEG DEFAULT
Then you need to place the section MyZeroPageData in the appropriate memory area in your linker .prm file.
You do not need to specify anything to tell the compiler to use EXTENDED addressing mode to access a variable.
Just define the variable normally. Compiler will use the EXTENDED addressing mode per default.
If you want to prevent the compiler to initialize a variable at startup you need to place them in a memory area (segment) with attribute NO_INIT.
Please search for FAQ-27438 on Freescale web page for more information on how to achieve that.
I hope this helps.
CrasyCat