> I know how to use the RES directive to allocate > GPL variables in the normal RAM > > Now, is the same method usable to allocate EEPROM > storage locations ? Not exactly, but you can have the linker allocate EEPROM for you. EEPROM is mapped to program memory space in the HEX file, so you have to use directives that allocate program memory. Another complication is that the DE directive for defining an initial EEPROM value reserves the equivalent of one program memory instruction in the HEX file. This is one address on the 16 family and two addresses on the 18 family. This means labels get a little wierd in a .eedata section. Here is a snippet of 18F252 code where I dealt with that: .eedata code ee_start ee_adr0 ;label for first EEPROM address ee_id de h'10' ;transmitter unique ID, low byte de h'32' ;transmitter unique ID de h'54' ;transmitter unique ID de h'76' ;transmitter unique ID, high byte .mesg code ; ;*********************************************************************** ; ; String substitution macro EE_ADDRESS (label) ; ; Returns the EEPROM address given a label in the .EEDATA section. ; #define ee_address(label) ((label - ee_adr0) >> 1) ; ;*********************************************************************** ; ... prom_get ee_address(ee_id) + 0 ;get trasmitter ID low byte ***************************************************************** 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