do {
for (k=0; k<StringLength+4; k++){
for (scroll=0; scroll<(8/shift_step); scroll++) {
for (row=0; row<8; row++){
if(UserIP == 1) index = message[k];
else index = default_message[k];
temp = CharData[index-32][row];
Buffer[row][4] = (Buffer[row][4] << Shift_Step) | (Buffer[row][3] >> (8-Shift_Step));
Buffer[row][3] = (Buffer[row][3] << Shift_Step) | (Buffer[row][2] >> (8-Shift_Step));
Buffer[row][2] = (Buffer[row][2] << Shift_Step) | (Buffer[row][1] >> (8-Shift_Step));
Buffer[row][1] = (Buffer[row][1] << Shift_Step) | (Buffer[row][0] >> (8-Shift_Step));
Buffer[row][0] = (Buffer[row][0] << Shift_Step)| (temp >> ((8-shift_step)-scroll*shift_step));
}
speed = 15;
for(l=0; l<speed;l++){
m = 1;
for (i=0; i<8; i++) {
Send_Data(i);
LATB = m;
m = m << 1;
Delay_us(1000);
} // i
} // l
} // scroll
} // k