I've written a few C functions for dealing with external page write eeprom. I have these functions: WriteEepFirstByte(address, data) // sets up address, sends data, increments static address counter, leaves /CS low WriteEepNextByte(data) // sends data, increments static address counter, does page write if incremented to new page, leaves /CS low WriteEepLastByte(data) // sends data, does page write, releases /CS WriteEepOnlyByte(address, data) // writes the specified byte to the specified address. I've generally used SPI eeprom instead of I2C (the bus is faster and, in my opinion, easier to deal with), but similar methods could be used on I2C. Harold -- FCC Rules Updated Daily at http://www.hallikainen.com - Advertising opportunities available! -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist