int main (void)
{
	unsigned int n;		

	InitPorts();		
	InitI2C();			

	ControlByte = 0xA0;
	LowAdd = 0x0C;	
	HighAdd = 0x5A;
	Data = 0xAB;
	Length = 0x05;

	for(n = 0; n < PAGESIZE; n++)
	{
		PageString[n] = n;
	}

	while(1)
	{
		LATAbits.LATA0 = 1;
		LDByteWriteI2C(ControlByte, LowAdd, Data);	
		HDByteWriteI2C(ControlByte, HighAdd, LowAdd, Data);
		HDPageWriteI2C(ControlByte, HighAdd, LowAdd, PageString);
		LDByteReadI2C(ControlByte, LowAdd, &Data, 1);
		HDByteReadI2C(ControlByte, HighAdd, LowAdd, &Data, 1);
		HDSequentialReadI2C(ControlByte, HighAdd, LowAdd, PageString, PAGESIZE);

		Nop();
		LATAbits.LATA0 = 0;
		
	}	
}
/* Write 16 chars to LCD */
void dump_to_lcd()
{
   unsigned short int i;
   unsigned char chr;

   for(i=0; i<16; i++)
   {
     /* Read from EEPROM */
     HDByteReadI2C(0xA0, 0x00, i, &chr, 0x01);
     
     /* Write to LCD */
     refresh_lcd();
     send_to_lcd(chr, 0);
     wait_busy_lcd();
   }
}