The compiler silently ignores the bytes 16-23 of array
indexes, as can be seen in the example:
xdata at 0 unsigned char XBYTE[];
int main()
{
XBYTE[0x123456] = 0x55;
}
162 ; test.c:5:
XBYTE[0x123456] = 0x55;
163 ; genPointerSet
003D 90 00 34 56 164 mov dptr,#(_XBYTE + 0x3456)
0041 74 55 165 mov a,#0x55
0043 F0 166 movx @dptr,a
167 ; genLabel
0044 168 00101$:
169 ; genEndFunction
0044 22 170 ret
Logged In: YES
user_id=63512
fixed in src/ds390/gen.c:1.176