DATA 0020H 000BH BIT_ADDR ?BA?XXACT_H BIT 002BH.0 0000H.1 UNIT _BIT_GROUP_ 002BH.1 0000H.7 *** GAP *** IDATA 002CH 000FH UNIT ?ID?XXACT_H 003BH 002DH *** GAP ***
So from what i know Bdata start from 20H and have 16byte of space. I only used 8 bytes in my program however when I want to declare a new bdata
unsigned char bdata test;
the address space overflows.
Checkign the M51 file, it appears that the IDATA is taking up the bdata space??? Is it? Why? How to solve this problem?
The problem is the same as fragmentation on your PC's hard drive - and is common to many computer storage systems:
en.wikipedia.org/.../Fragmentation_(computer)
As an analogy, consider that you have a load of boxes that you want to fit into a storage area: you know that the total volume of the boxes is less than the total volume of the storage area, but the storage area has some pillars at inconvenient locations. The pillars get in the way, and make it impossible to actually arrange the boxes to fit into the area - even though you know that the volume is sufficient!
Your absolutely-located variables are the "pillars" getting in the Linker's way!
GOT IT! thanks once again :) case closed will post if more questions