EEPROM Size and Access Problem

I have an arduino talking to an EEPROM I2C 24LC256 chip:

http://www.alliedelec.com/Images/Products/Datasheets/BM/microchip/383-0038.pdf

Based on the tutorial here:

http://www.arduino.cc/playground/Code/I2CEEPROM

I have two questions which I would really appreciate some help with...

There seams to be no limit to the address at which I can write and read, but the memory is not endless!

i2c_eeprom_write_page(EEPROM_ADDR, 512000, PageData2, 28 );

If it is 256kb chip does that mean that the maximum address in the line above (512000) can be 256*1024 or is it 8 to the power of 16, or something else entirely??? I would really appreciate it if some one could explain what happens here.

I am planning on storing sensor information on the chip and plugging it into the computer once in a while to download data. Is the best way to do this plug the Arduino into the usb port as usual, and on a switch or trigger dump all the info on the serial through the usb to Processing or something similar?

Thanks in advance, Mathew

Regarding dumping the info on the EEPROM, you could make a separate sketch that does only that.
You may also want to create a "header" in EEPORM that stores that address of the last byte written and other info.
This way your "EEPROM dump" sketch would send serial until the last byte written.
The dump sketch could also reset the non-zero bytes to zero after the dump.

Or you can build those functions into your sketch and trigger them with a button push.
(I did it as a separate sketch first, and later combined them.)

I think your maximum address is (256 x 1024) /8 = 32768 (7FFF) since you R/W by bytes.