Si la cadena es muy grande y la "procesas" en la medida que van llegando los datos debes tener en cuenta las siguientes cosas:
1. el tiempo de "procesamiento" del dato no puede superar el tiempo de transmision de 2 bytes (maximo tamaño de buffer del 16F873), de lo contrario corres el riesgo de un overflow.
2. si el tiempo de "procesamiento" de un dato necesariamente es mayor a lo indicado anteriormente, debes usar interrupciones y almacenar todos los datos en un buffer de recepción. (manejar un proceso en background). el proceso principal ira sacando los datos del buffer y los procesara sin temor de perdida de datos.
3. si no conoces o tienes experiencia en interrupciones, aprendelas ¡
o utiliza control de flujo por hardware. sera más lenta la operación conjunta, pero cumplira su cometido.
4. si la cadena de datos es muy grande como para almacenarla en la memoria del PIC, debes pensar la opción de utilizar una memoria auxiliar, ten encuenta que un bloque de memoria (consecutiva) utlizable de un PIC 16F873 tiene un maximo de unos 110 bytes (110h-17F).
Suerte
Oldkami