AS1130 First attempt - working

Here's an example of dynamic data change using the internal EEPROM of a PIC18F4550 (256 bytes).
This gives a negative image of each frame.
I've included the reset routine as well. This is easily ported to Arduino code.

/***** Flip every bit in eeprom then write to AS1130 **************************/
void flipData(void)
 {
	printf(usb_cdc_putc, "Flipping Data:\r\n");
	char i,j;
	char data = 0;
	char mask = 0b00000111;
	char flipped;
 	for (i = 0; i <= 253; i+=2)    //size of eeprom
  	{
     	flipped = mask ^ read_eeprom(i);    	
      	write_eeprom(i, flipped);
    }
	i = 254;
	flipped = mask ^ read_eeprom(i);    	
      	write_eeprom(i, flipped);

	mask = 0b11111111;
 	for (i=1; i <=253; i+=2)    //size of eeprom
  	{
      	flipped = mask ^ read_eeprom(i);    	
      	write_eeprom(i, flipped);
    }
	printf(usb_cdc_putc, "Data Flipped:\r\n");           
  	write_frame_data();
	AS1130_reset();
 }
/***** AS1130 Copy Frame Data from EEPROM *************************************/
void write_frame_data(void)
 {
  char i, j, k; 
  char data = 0;
 	for (i=FRAME0; i<=FRAME10; i++)    
  	{
    	for (j=0x00; j<=0x0B; j++)  				// 0x00 to 0x0b are the Current Segments in each frame (CS0-CS11)
    	{
      		as_config(i, 2*j+1, read_eeprom(data));    	// i = frame address, 2*j+1 = CS register address (odd numbers) then second data byte
      		data++;
      		as_config(i, 2*j,   read_eeprom(data));    	// i = frame address, 2*j = CS register address (even numbers) then first data byte
      		data++;      
    	}
  	}
 }
/***** Restart AS1130 with changed settings ***********************************/
void AS1130_reset(void)
 {
	bit_clear(SHUTDOWNOPENSHORT_BYTE, 0);
	bit_clear(SHUTDOWNOPENSHORT_BYTE, 1);
	as_config(CONTROLREGISTER, SHUTDOWNOPENSHORT, SHUTDOWNOPENSHORT_BYTE);	

        as_config(CONTROLREGISTER, MOVIEMODE, MOVIEMODE_BYTE); 
  	as_config(CONTROLREGISTER, DISPLAYOPTION, DISPLAYOPTION_BYTE);
	as_config(CONTROLREGISTER, FRAMETIME, FRAMETIME_BYTE); 	
	as_config(CONTROLREGISTER, PICTURE, PICTURE_BYTE);
  	as_config(CONTROLREGISTER, MOVIE, MOVIE_BYTE); 

	bit_set(SHUTDOWNOPENSHORT_BYTE, 0);
	bit_set(SHUTDOWNOPENSHORT_BYTE, 1);
	as_config(CONTROLREGISTER, SHUTDOWNOPENSHORT, SHUTDOWNOPENSHORT_BYTE);  
 }

I'll upload a video of this later so you can see the speed etc.