// write buffer to eeprom with previous data compare
void eeprom_write_block_chk(void *buf_in, void *buf_out, u16 buf_size) {
u8 data_in;
while (buf_size) {
data_in = *(u8 *) buf_in;
if (data_in != eeprom_read_byte(buf_out)) eeprom_write_byte(buf_out, data_in);
buf_in++;
buf_out++;
buf_size--;
}
}