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