> Another thing (yes, this is my first try with the EEPROM !), > I'v seen in the HEX file that each other byte (?) is "00". > That is, when I create the data with DE directive, they seems to > be either 16-bit values, or there is something "going on" > with the addresses in the hex file. *And* the addresses > in the HEX file are actualy h'4002' when I expected h'2001'. There are two different things going on, depending on which PIC you are using. On the 16 family, each program memory address is a 14 bit word. Intel HEX files are inherently byte oriented, so microchip uses two addresses in the HEX file for each PIC program memory address. The HEX file addresses are therefore double the PIC program memory addresses. On the 18 family, each program memory address is an 8 bit byte so these map to HEX file addresses directly. However, the DE directive always allocates an entire instruction word for each data byte, so we're back to two addresses per EEPROM byte in the HEX file, but for different reasons. This is also a pain in the source code because not only are all the EEPROM addresses offset by where in the HEX file they decided to map the separate EEPROM address space to (PICs actually have 3 completely independent address spaces: data RAM, program memory, and EEPROM), but the offsets within the EEPROM address range are doubled. Yes, I think this sucks too. EEPROM should really be dealt with natively in the assembler and linker. ***************************************************************** Embed Inc, embedded system specialists in Littleton Massachusetts (978) 742-9014, http://www.embedinc.com -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics