I am sending RS232 from PIC to PIC. Transmitter sends 16 characters, “ABCD….OP”. Transmitter output is verified with Tera Term on PC. Both Tx and Rx operates at 96k baud. Receiver stores characters in VAR RxData. RxData is displayed on LCD on my X1 board. On the first pass LCD displays ABABCDEFG….. On the second pass and all passes after the LCD displays OPABCDE….. for 16 characters. I have used different delays on the receiver before and after, hserin 2000,TimeOut , [str Rxdata\16]. I can’t figure out why this is happening. I’m not real sure about the use of STR modifier, can this be a problem? Comments please!

Tx char string ABCDEFGHIJKLMNOP
First pass Rx display ABABCDEFGHIJKLMN
Second pass display OPABCDEFGHIJKLMN
All fallowing pass OPABCDEFGHIJKLMN
--------------------------------------------

RxData var byte [20]

Main:
RxData=0 ;clear RxData
hserin 2000,TimeOut , [str Rxdata\16]

LCDOUT $FE,1,"Rcvd string: " ;display 16 bytes RxData
LCDOUT $FE,$c0
LCDOUT str rxdata\16
pause 3000
goto Main ;Loop forever

TimeOut:
LCDOUT $FE,1,"Fumble,try again"
pause 1000
GOTO main