Hello to all forum. First of all I apologize for my English.
I am programming in assembly
I have a problem using a memory segment. Below is my configuration:
In the .prm file...
SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */
Z_RAM = READ_WRITE 0x0080 TO 0x00EF;
Z_RAM2 = READ_WRITE 0x00F0 TO 0x00FF;
RAM = READ_WRITE 0x0100 TO 0x06FF;
RAM2 = READ_WRITE 0x0700 TO 0x083F;
STACK = READ_WRITE 0x0840 TO 0x087F;
ROM = READ_ONLY 0x8000 TO 0xFFAD;
/* INTVECTS = READ_ONLY 0xFFC0 TO 0xFFFF; Reserved for Interrupt Vectors */
END
PLACEMENT /* Here all predefined and user segments are placed into the SEGMENTS defined above. */
_DATA_ZEROPAGE, /* zero page variables */
MY_ZEROPAGE INTO Z_RAM;
Z_PAGE INTO Z_RAM2;
DEFAULT_RAM INTO RAM;
HIGHPAGE INTO RAM2;
SSTACK INTO STACK;
_PRESTART, /* startup code */
STARTUP, /* startup data structures */
ROM_VAR, /* constant variables */
STRINGS, /* string literals */
VIRTUAL_TABLE_SEGMENT, /* C++ virtual table segment */
DEFAULT_ROM,
COPY /* copy down information: how to initialize variables */
INTO ROM;
END
Then in my code, I add ...
; import symbols
XREF __SEG_END_SSTACK, __SEG_END_DEFAULT_RAM
When compiling, I take the following values:
LDHX #__SEG_END_SSTACK takes LDHX #0x0880 (correct)
TXS
...
and
LDX #__SEG_END_DEFAULT_RAM takes LDHX #0x0000 instead of #0x0700
What should I do?
Tanks to all