Thanks again..those who pointed out some errors. Now, I did read the app= notes about reads/writes and followed the example but I could never get i= t to work. The other problem is, since I could not get it to work, I tried to= copy other code snippets, but being from a diff processor, it was not exactly = the same. So live and learn.. What I did find was I had to set the page bits back to 00 else it would g= o off to never never land. Strange the notes didnt mention it. So for those who care, this is the routine that works. Next I will go ba= ck to the writes...so stay tuned for more HELP ME posts! testread: movlw _minutes ; points to location in EEPROM movwf EEPROM_ADR ; and store to variable call TESTRD movf EEPROM_DATA,W ; get EEPROM data and store to W movwf MINUTES TESTRD: movf EEPROM_ADR,W ;0x00 bcf STATUS,RP0 ; change to page 2 bsf STATUS,RP1 ; change to page 2 movwf EEADR ; set up eeprom address from W bsf STATUS,RP0 ; change to page 3 bcf EECON1,EEPGD ; Be sure to read from EEPROM bsf EECON1,RD ; set the read bit bcf STATUS,RP0 ; back to page 2 movf EEDATA,W ; return value in W movwf EEPROM_DATA ; and store bcf STATUS,RP0 ; change to page 0 bcf STATUS,RP1 ; change to page 0 return ____________________________________________________________________ Get free email and a permanent address at http://www.netaddress.com/?N=3D= 1 -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.