There's a few more comments in the code posted in this post:
http://arduino.cc/forum/index.php/topic,123071.0.htmlIf I understand your question correctly (!?*) The code I posted is not supposed to show how do do tight efficient programming, it's laid out in what I hope is a logical and understandable way to show, step by step, how to get some action on a screen of LEDs using the AS1130.
Having said that, when I do the defines etc. I always have in mind how I intend to develop the code in the future.
Hard coding bits and settings in a programme is bad practice unless it is never going to change, but using variables defined elsewhere also adds some confusion to someone trying to learn how the process works.
Also...there is no way I would normally handle such a large amount of data as shown in the example. In my ongoing experiments with this chip (which have been with a USB enabled PIC18F4550 and a C# application on the PC) there is no data defined in the code, it is uploaded from a file and then fed to the AS1130 by the MCU. I have written the MCU code to respond to ascii characters sent over the USB from any source eg. the MCU receives 's' and then reads the status register of the AS1130 and sends it back to the terminal program on the PC... or it receives a 'u' which tells the AS1130 to go faster.
Here's the main loop:
while (TRUE)
{
usb_task();
if(usb_cdc_kbhit())
{
inByte = toupper(usb_cdc_getc());
if(inByte == 'A') {AS1130_decrease_brightness();}
if(inByte == 'B') {AS1130_increase_brightness();}
if(inByte == 'D') {AS1130_speedDown();}
if(inByte == 'F') {AS1130_fadeToggle();}
if(inByte == 'L') {AS1130_Scroll_left();}
if(inByte == 'M') {AS1130_scrollToggle();}
if(inByte == 'N') {flipData();}
if(inByte == 'P') {AS1130_Next_page();}
if(inByte == 'Q') {AS1130_Prev_page();}
if(inByte == 'R') {AS1130_Scroll_right();}
if(inByte == 'S') {AS1130_status();}
if(inByte == 'U') {AS1130_speedUp();}
if(inByte == 'Y') {write_new_EEPROM_Data();}
}
}
I am also sending the commands using a TV remote control...but THAT'S another story

Anyway,
//12x11 rectangle <---this tells you what the code displays
0b00000111, 0b11111111, //CS0 Frame 0 <---these are the 2 data bytes for Current Segment 0 and this is the start of the first frame's data
0b00000100, 0b00000001, //CS1
0b00000100, 0b00000001, //CS2 The 1's mean an LED is on the 0's off
0b00000100, 0b00000001, //CS3 The data is arranged so that it is graphically meaningful ie. if you look at the frame datas' 1's you can actually see a 12x11 rectangle (on its side)
0b00000100, 0b00000001, //CS4
0b00000100, 0b00000001, //CS5 The data is in binary format and follows the convention that the rightmost bit of the 2 bytes is LED 0 and bit 2 of the first byte is the LED 0A
0b00000100, 0b00000001, //CS6 (see datasheet Table 9 page 15)
0b00000100, 0b00000001, //CS7
0b00000100, 0b00000001, //CS8 The 3 MSB of the first byte tell the AS1130 which PWM set to use (0-7)
0b00000100, 0b00000001, //CS9
0b00000100, 0b00000001, //CS10
0b00000111, 0b11111111, //CS11 <---these are the 2 data bytes for Current Segment 11 and this is the end of the first frame's data
The reason that everything is done in the setup is that it reads more sequencially and also to fire up the AS1130 initially it needs some data and all it's commands.
You need to think of the AS1130 as a seperate entity that does as it's told and the MCU as the boss chip that gives the orders.
Once the AS1130 has it's orders, it gets on with it with no more intervention from the MCU.
So... the main loop is where the programmer decides what to do next and the setup has already issued the correct instructions and data to get the ball rolling.
In short, the example programme is to give you ideas and inspiration (I hope) but is not a programming tutorial...that bit is up to the user...

Hope that's a bit clearer now mate.