How to effectively tackle long page write in EEPROM
What Wouter van Ooijen has suggested does perfect sense. 

This should work

uint8_t page_counter=0;
uint8_t data_counter=0;
uint8_t last_used_address=0;


while(data_counter&lt;120)  // we want to write 120 bytes
{
  send_eeprom_address(last_used_address);
  while((page_counter++)&lt;64)  // while not end of page
  {
     write_eeprom_byte(y);         
     if (++data_counter==120) break; // exit the loop is 120 bytes have been written
  }
  last_used_address= last_used_address + page_counter;  // update last used location
  if(page_counter==64) page_counter=0;
}


The code is untested, and you obviously need to implement the correct eeprom functions.