Jason, maybe you can see something in this code. It's for an F877 and comes from a working product ;================================================ ; Initialise RS232 serial comms ;================================================ ; 19200 with BRGH = 1 ; 19200 = 18.432MHz / (16 * (X+1)) ; X = ( (18432000 / 19200) / 16 ) -1 ; X = (960/16)-1 ; X = 59 bank1 movlw .59 ;19200 baud @ 18.43200MHz movwf spbrg movlw b'00100100' ;brgh=1, Asynch, 8-bit, Tx enabled movwf txsta bank0 movlw b'10010000' ;Asynch, 8-bit, Rx enabled movwf rcsta movf rcreg,w ;clear receive buffer and rcif bcf rcsta,cren ;clear any errors bsf rcsta,cren ;initialise comms traffic sendi movlw "I" ;get PC's attention call byte_out call byte_in ;wait for "I" back from PC movlw "I" xorwf temp,w btfss zero goto sendi rest of code ;================================================ ; Transmit byte to PC from W ;================================================ byte_out bank0 movwf txreg bank1 btfss txsta,trmt ;wait for data gone goto $-1 bank0 return ;================================================ ; Receive byte from PC into W ;================================================ byte_in bank0 btfss pir1,rcif ;wait for received data flag goto $-1 movf rcreg,w movwf temp return -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist