Hi, Your code looks okay, but what is the radix? If it is decimal, then the code won't work right after it hits the movlw 55. You should say 0x55 just to be sure. p.s you may want to clear intcon,gie bit at the start of you program, not every time the eeprom is being written, since you aren't using interrupts. That's all that I can think of! good luck. -Hamilton >write_eedata > movwf eedata ; data to be written > bsf eecon1, wren ; enable writes to data eeprom > bsf status, rp0 ; bank 1 > bcf intcon, gie ; no interrupts > movlw 55 ; taken directly from databook > movwf eecon2 > movlw h'aa' > movwf eecon2 > bsf eecon1, wr ; start write >; bsf intcon, gie ; enable interrupts >; Commented out because I am not using >; interrupts > bcf eecon1, wren ; disable eedata writes >writing > btfss eecon1, eeif ; wait for write to finish > goto writing > bcf eecon1, eeif ; clear eeprom interrupt flag > > return > >Thanks > Roland > > Hamilton Feltman mailto:hamilton@budhi.com Programmer and Sound Engineer |_ _||_ . _ _ _ _ |_)(_)(_|| )| . (_ (_)( | ) http://www.budhi.com