Dear friend Microcode used
Now we study moving message on LED dot matrix but did not work.
We have sample in code (CSS) but i not under stand on code need you help to conver c code to basic code.


CodeCSS )
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,PUT,NOLVP
#use delay(CLOCK = 10000000 )

#use fast_io(B)

#bit STROBE = 0x06.0 //PIN_B0
#bit LATCH = 0x06.1 //PIN_B1
#bit CLOCK = 0x06.2 //PIN_B2

#bit SIN3 = 0x06.3 //PIN_B3
#bit SIN2 = 0x06.4 //PIN_B4
#bit SIN1 = 0x06.5 //PIN_B5

//
//
// | | |
// | SIN2 | SIN3 |
// | | |
// | Colum3 | Colum2 | Colum1 | Colum0 |
// | | | | |
// |7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0 ------
// | | | | 1 |
// | | | | 2 |
// | | | | 3 |
// | | | | 4 | ROW0
// | | | | 5 |
// | | | | 6 |
// | | | | 7 |
// |----------------|-----------------|-----------------|----------------------- SIN1
// | | | | 0 |
// | | | | 1 |
// | | | | 2 |
// | | | | 3 |
// | | | | 4 | ROW1
// | | | | 5 |
// | | | | 6 |
// | | | | 7 |
// |----------------|-----------------|-----------------|-----------------|-----
// |


char const font[3][16] =
{
{0x00,0x00,0x00,0x00,0x00,0x7C,0x40,0x40,0x78,0x40 ,0x40,0x7C,0x00,0x00,0x00,0x00}, //E
{0x00,0x00,0x00,0x00,0x00,0x7C,0x10,0x10,0x10,0x10 ,0x10,0x10,0x00,0x00,0x00,0x00} //T
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00} //Space
};

char const ScanRow1[16] =
{
0,0,0,0,0,0,0,0,1,2,4,8,16,32,64,128
};

char const ScanRow0[16] =
{

1,2,4,8,16,32,64,128,0,0,0,0,0,0,0,0
};

int buffer[4][16];

int Colum3,Colum2,Colum1,Colum0,Row1,Row0;
//int CheckClock,ValueBitSIN3,ValueBitSIN2,ValueBitSIN1;
int k,l,m,n,o,p,q;


void SendData16Bit();
void SendDataSIN8BitHighbyte();
void SendDataSIN8BitLowbyte();
void BeginData();
void ClearData();
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$
#INT_TIMER1
void IntTimer1_isr()
{
STROBE = 1; //STROBE OFF

for (k=0;k<8;k++) // Row 0 to 7
{
Colum2 = buffer[2][k];
Colum0 = buffer[0][k];
Row0 = ScanRow0[k];
SendDataSIN8BitLowbyte();

Colum3 = buffer[3][k];
Colum1 = buffer[1][k];
Row1 = ScanRow1[k];
SendDataSIN8BitHighbyte();

LATCH = 0; //LATCH ON
LATCH = 1; //LATCH OFF

STROBE = 0; //STROBE ON
delay_us(50);
STROBE = 1; //STROBE OFF
}

for (k=8;k<16;k++) // Row 8 to 15
{
Colum2 = buffer[2][k];
Colum0 = buffer[0][k];
Row0 = ScanRow0[k];
SendDataSIN8BitLowbyte();

Colum3 = buffer[3][k];
Colum1 = buffer[1][k];
Row1 = ScanRow1[k];
SendDataSIN8BitHighbyte();

LATCH = 0; //LATCH ON
LATCH = 1; //LATCH OFF

STROBE = 0; //STROBE ON
delay_us(50);
STROBE = 1; //STROBE OFF
}

//STROBE = 0; //STROBE ON
//set_timer1(65451); // FF AB interrupt 34uS
set_timer1(65400);
}
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$
//################################################## ############################
void main()
{

//-----------------------------
set_tris_b(0x00);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);
set_timer1(65451); // FF AB interrupt 34uS

//-----------------------------
STROBE = 1; //STROBE OFF
LATCH = 1; //LATCH OFF
CLOCK = 0; //Clock OFF Active High

SIN3 = 0; //S-IN3 OFF
SIN2 = 0; //S-IN3 OFF
SIN1 = 0; //S-IN3 OFF




ClearData();
BeginData();


//LOOP
while(1)
{

for(p=0;p<8;p++)
{

//----------------------------------------
for (n=0;n<16;n++)
{
buffer[3][n] = ((buffer[3][n]) * 2) + (((buffer[2][n]) &0B10000000)/128) ; //colum3
}
//----------------------------------------
//----------------------------------------
for (n=0;n<16;n++)
{
buffer[2][n] = ((buffer[2][n]) * 2) + (((buffer[1][n]) &0B10000000)/128) ; //colum2
}
//----------------------------------------
//----------------------------------------
for (n=0;n<16;n++)
{
buffer[1][n] = ((buffer[1][n]) * 2) + (((buffer[0][n]) &0B10000000)/128) ; //colum1
}
//----------------------------------------
//----------------------------------------
for (n=0;n<16;n++)
{
buffer[0][n] = ((buffer[0][n]) * 2) + (((buffer[3][n]) &0B10000000)/128) ; //colum0
}
//----------------------------------------

delay_us(100);

}



}
}
//################################################## ############################
//================================================== ============================
void SendDataSIN8BitHighbyte()
{
int i;

for(i=0;i<8;i++)
{
SIN3 = bit_test(Colum1,(i));
SIN2 = bit_test(Colum3,(i));
SIN1 = bit_test(Row1,(i));

CLOCK = 1; //Clock ON
CLOCK = 0; //Clock OFF

}
}
//================================================== ============================
//================================================== ============================
void SendDataSIN8BitLowbyte()
{
int i;

for(i=0;i<8;i++)
{
SIN3 = bit_test(Colum0,(i));
SIN2 = bit_test(Colum2,(i));
SIN1 = bit_test(Row0,(i));

CLOCK = 1; //Clock ON
CLOCK = 0; //Clock OFF

}
}
//================================================== ============================
//================================================== ============================
void BeginData()
{
//----------------------------------------
for (n=0;n<16;n++)
{
buffer[0][n] = font[2][n]; // Space
}
//----------------------------------------
//----------------------------------------
for (n=0;n<16;n++)
{
buffer[1][n] = font[1][n]; // T
}
//----------------------------------------
//----------------------------------------
for (n=0;n<16;n++)
{
buffer[2][n] = font[1][n]; // T
}
//----------------------------------------
//----------------------------------------
for (n=0;n<16;n++)
{
buffer[3][n] = font[0][n]; // E
}
//----------------------------------------
//----------------------------------------
//for (n=0;n<16;n++)
//{
// buffer[4][n] = font[2][n]; // Space
//}
//----------------------------------------
}
//================================================== ============================
//================================================== ============================
void ClearData()
{
//========================================
for(l=0;l<4;l++) // clear buffer
{
for (m=0;m<16;m++)
{
buffer[l][m] =0;
}
}
//========================================
}
//================================================== ============================