The target options:contiguous mode:512KB program,off-chip code memory(0x0000:0xfc00),off-chip xdata memory(0x20000:0x10000).
extern code struct font_t font[]; void main(void) { unsigned char count; unsigned int i = 67; count = font[i].count; count = font[i-16].count; }
...... mov R7,#43; i value mov B,#0x42; sizeof(struct font_t) = 0x42 mov A,R7 mov DPTR,#0x10787; ??? ACALL C?OFFXADD(C:000702);get DPTR clr A movc A,@A+DPTR; count ......
Yes, this is a compiler problem (but only in Dallas 390 contigious mode). Avoid for the moment negative indexing in arrays, by using the following work-around:
void main(void) { unsigned char count; unsigned int i = 67, h; count = font[i].count; h = i-16; count = font[h].count; }