int main()
{
volatile char *dir;
dir = 0x30;
*dir = 0xFF;
dir = 0x107;
*dir = 0XFF;
volatile unsigned char *green;
green = 0x31;
volatile unsigned char *blue;
blue = 0x108;
while(1)
{
unsigned char w[8] = {0X82,0x82,0x82,0x92,0xAA,0xC6,0x82,0x00};
unsigned char e[8] = {0X00,0x00,0x3C,0x42,0x7C,0x42,0x3C,0x00};
unsigned char l[8] = {0x10,0x10,0x10,0x10,0x10,0x14,0x18,0x00};
unsigned char c[8] = {0x00,0x00,0x3C,0x42,0x40,0x42,0x3C,0x00};
unsigned char o[8] = {0x00,0x00,0x3C,0x42,0x42,0x42,0x3C,0x00};
unsigned char m[8] = {0x00,0x00,0x52,0x6D,0x49,0x49,0x49,0x00};
unsigned char* string_display[7]= {w,e,l,c,o,m,e};
char start = 7;
char _end = 0;
char row;
char row_start;
for(char t = 0;t<7;t++) //for characters
{
start = 7;
while(start>=0)
{
for(volatile long o = 0;o<175;o++) //to make each frame last longer
{
row = 0;
for(char j = start;j<8;j++)
{
*blue = ~(0x80 >> (row++));
*green = string_display[t][j];
for(volatile long i=0;i<100;i++);
*green = 0x00;
}
}
start--;
}
_end = 7;
row_start = 1;
while(_end>=0)
{
for(volatile long o = 0;o<175;o++)
{
row = row_start;
for(char j = 0;j<=_end;j++)
{
*blue = ~(0x80>>(row++));
*green = string_display[t][j];
for(volatile long i=0;i<100;i++);
*green = 0x00;
}
}
_end--;
row_start++;
}
}
}
}