MARRAY
The MARRAY macro accesses an array of a specified type in the far memory area (in segmented mode) or in the standard near memory area (in Tiny model or non-segmented mode). You may use this macro in your programs as follows:
#include <absacc.h> /* Include Macro Definitions */
.
.
.
int i;
long l;
l = MARRAY (long, 0x8000)[i];
MARRAY (long, 0x8000)[10] = 0x12345678;
#define DualPortRam MARRAY (int, 0x24000)
DualPortRam [i] = 0x1234;
.
.
.
This macro scales the index by the size of the specified type and adds the result to specified address. The result is the memory address used.
Note
- Objects accessed using this macro may not cross a 64KB segment boundary. For example, you cannot access a long array that starts at address 0x12FFFE.