ha...sabia que era algo no tan dificil gracias BrunoF y camhos1 el link es bueno pero no entiendo que diferencia hay entre usar las interrupciones y no usarlas???... bueno la cuestion continua... algo que no comprendia bien era la utilizacion del fputs la funcion manda un cr y lf al final lo que me probocaba un salto de linea no deseado bueno a lo que entinedo... a si que comense a trabajar en el problema y estoy atorado en esto:
#include <18f4550.h>
#FUSES INTHS,MCLR,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT, CPUDIV1, PLL1
#use delay(internal=4MHZ)
#include <stdio.h>
#use rs232(baud=9600,xmit=pin_c6, rcv=pin_c7,stream=PC1)
#use rs232(baud=9600,xmit=pin_b1, rcv=pin_b0,stream=PC2)
char cpc1[100],cpc2[100];
char contPC1,contPC2;
int longitudPC1,longitudPC2;
void main ()
{
while (true)
{
if (kbhit(PC1) )
{
fgets(cpc1,PC1);
longitudPC1=strlen(cpc1);
for (contPC1=0;contPC1<=(longitudPC1-1)

{
fputc(cpc1[contPC1],PC2);
contPC1++;
}
}
if (kbhit(PC2) )
{
fgets(cpc2,PC2);
longitudPC2=strlen(cpc2);
for (contPC2=0;contPC2<=(longitudPC2)

{
fputc(cpc2[contPC2],PC1);
contPC2++;
}
}
}
}
ahora bien... de PC1 hacia PC2 la comunicacion es correcta ya no tengo el cl y lf agregados y mi comunicacion es esperada... pero en caso contrario de PC2 a PC1 no lo hace bien ahora no me manda el lf solo un cr y si cominezo con CP1 lo hace bien pero luego ya no reaciona PC2 no se que ocurra...me he buelto atorar en lo mismo

desculpen las molestias y espero puedan ayudarme. muy agradecido...