> bcf INTCON,GIE ;debug ;interrupts off > movf EEPROM_ADD,w ;save address in w > bsf STATUS,RP1 ;Bank2 > movwf EEADR ^ 0x100 ;load EEPROM_Address > bsf STATUS,RP0 ;Bank3 > clrf EECON1 ^ 0x180 ;point to data memory and clr WREN > bsf EECON1 ^ 0x180,RD ;activate read > bcf STATUS,RP0 ;Bank2 > movf EEDATA ^ 0x100,w ;save data in w > bsf STATUS,RP0 > clrf EECON1 ^ 0x180 ;debug ;drop read bit > bcf STATUS,RP0 > bcf STATUS,RP1 > bsf INTCON,GIE ;debug ;ints off > call LCD_Data ;debug ;Display > return My read routine is very similar to yours and works OK. I don't do anything to GIE or with EECON1 after getting what I want Are you sure there's no fault between reading the EEPROM and putting it up on the LCD ? Other indexing problem ? bank0 movf eea,w ;address bank2 movwf eeadr bank3 bcf eecon1,eepgd bsf eecon1,rd bank2 movf eedata,w ;data bank0 return using these macros BTW bank0 macro bcf status,rp0 bcf status,rp1 bcf status,irp endm bank1 macro bsf status,rp0 bcf status,rp1 bcf status,irp endm bank2 macro bcf status,rp0 bsf status,rp1 bcf status,irp endm bank3 macro bsf status,rp0 bsf status,rp1 bcf status,irp endm -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu