Hola, de los 256 bytes de memoria que tiene el SH04, 128 los accede en forma directa o Zero Page y los otros 128 en forma extendida ( modo de direccionamiento ). Tenes estas posibles soluciones:
Podes forzar la alocacion de una variable para que este en Z_PAGE con este pragma:
#pragma DATA_SEG _DATA_ZEROPAGE
int Pepe;
#pragma DATA_SEG DEFAULT
int Juan;
Pepe se alocara en el area correspondiente a zero page, 0x80-0xFF y Juan en el area 0x100-0x180.
La otra manera es directamente modificar el archivo linker de esta manera,
RAM = READ_WRITE 0x0080 TO 0x017F;
ROM = READ_ONLY 0xF000 TO 0xFFAD;
En la segura manera, no necesitas ningun prgama pero el compilador no hara uso del direccionaminto directo. Espero te sirva
Saludos !