In your first message, you mentioned 2 different EEPROMs.

24AA512 and 24c01

Which one are you currently having success with?

The 24AA512 is a 64Kx8 device and needs a WORD sized address.
The 24c01 is a 128x8 and only needs a BYTE sized address.

My guess is that you're using the 24c01.

If that's the case, then your test routine loops through 255 address locations, which is double the actual size of the EEPROM. Anything above 127 will loop around and display the first 128 again. Of course, it's just a test routine, but just wanted to let you know.

Best regards,
   Darrel