thank you @chicken
i encountered a problem.
In PIC16f877a, the data bank memory only 96 byte.
but in your fifo.c, you set the fifo array buffer for 128 byte and and 256 byte with fifo packet 8 byte.
I have looked for the AIS signal and it only consist of 256 bit or 32 byte. Is it possible to use PIC16f877a with only 96 byte to fifo buffer? thank you once again.