Atmel 24C256 showing up at wrong I2C address

Besides, this i2c scanner code might be useful for somebody else, like it's been to me so many times.

That's a good enough reason.

The point is: like the code shows, "something" gives an ACK on address 0xE8, which is the supposed 7-bit address of the EEPROM (0x50) shifted right 1 bit.

And, you've presumably modified your code to write and read using that address, and you had problems. I thought it was that code you wanted help with.