For a simple and correct explanation on how to use 24LC256 and Arduino, please visit [here].
24LC256 EEPROM, available at SparkFun.
// Author is confusing pins A0~2. These are used to set the I2C bus device address for the 24LC256. This EEPROM has 32 kilobytes (256 x 8 bits) of storage space, nor any "blocks". See the data sheet...
Here is how the 24LC256 works: you configure 3 pins on the chip to select what I call a "block", therefore, there are 8 blocks available. Each block is 32kb wide, and you can access the bytes in a block with a 14 bits address (which will be transmitted via I2C bus).
The only thing you've got to deal with is the block you want to use, and the operations (read/write).
First of all, you need to enable I2C communications with TWIPROM.begin(). Then a little configuration of your stuff is necessary:
Blocks are cool, as they are independant. When you use a block, all the others are read/write protected. Therefore, you can assign a block to a special storage task, or make a RAID system by writing the same data to 2 blocks..
If 32kb is enough for your design (or if you're running out of free pins), hard-connect A0,A1 & A2 to ground and use only block 0.
Use an unsigned int for the address. It is 15 bits long, so the maximum addressable byte is 32767.
A write cycle is 5ms long. Which means that writing the whole block using the single byte method is 2.7 seconds long. Be carefull with time-sensitive designs!