WR_EEPROM ; write EEPROM (data in RAM 2E+adr in RAM 2E)
movfw wadr,W ; w=adr
movwf EEADR ; EEADR=w
movfw value,W ; w=data
movwf EEDATA ; EEDATA=w
bsf STATUS,RP0 ; Bank 1
bsf EECON1,WREN ; Enable write
bcf INTCON,GIE ; disable interupts
movlw 0x55 ; w=55h
movwf EECON2 ; EECON2=w
movlw 0xAA ; w=AAh
movwf EECON2 ; EECON2=w
bsf EECON1,WR ; EECON1=write
WaitWR btfsc EECON1,WR ; Wait for write to complete
goto WaitWR
bcf EECON1,WREN ;stop spurious writes
bcf STATUS,RP0 ;back to bank 0
; bsf INTCON,GIE ;enable interrupts if used.
return
RD_EEPROM ; address in RAM 2F
movfw wadr,W ; data in RAM 2E
movwf EEADR ; EEADR=w
bsf STATUS,RP0 ; bank 1
bsf EECON1,RD ; set RD bit
bcf STATUS,RP0 ; bank 0
movfw EEDATA,W ; w=data
movwf value ; data=w
return