Andy,

The records you posted are extended linear address records.  Each one 
specifies the upper 16 bits of the address, creating a full 32 bit address.

Each address prefix will last until a new prefix is declared.

:020000040000FA
:02  - Bytes in record
0000 - address field - always 0 for this type of record.
04   - Record type Extended Linear Address
0000 - Upper 16 bits of the address
FA   - Checksum

All following records prepend 0000 to their address values:  248F 
becomes 0000248F

:020000040001F9 
:02  - Bytes in record
0000 - address field - always 0 for this type of record.
04   - Record type Extended Linear Address
0001 - Upper 16 bits of the address
FA   - Checksum


All following records prepend 0001 to their address values:  address 
248F becomes 0001248F

Keil has a nice page with good descriptions of Intel hex files.  
http://www.keil.com/support/docs/1584.htm

I hope this helps.

--Mark

Andy Green wrote:
> Thanks a lot Maarten,
>
> I've made sense of the extended address record. However one thing still
> confuses me. If I build a small app that all fits in the common area,
> the output.ihx still contains two extended address records, along the
> lines of:-
>
> :020000040000FA     // I guess this means bank0?
> ..
>   <some data records>
> ..
> :020000040001F9     // I guess this means bank1?
> ..
>   <more data records>
> ..
> :0400000500000000F7
> :00000001FF
>
> I guess the linker must think the banked area starts at a lower address.
> How do I set the banked area? 
> (or have I misunderstood completely?!)
>
> Thanks in advance,
> Andy
>
>   


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to