Ok here is a shorter, well documented, version of the routine that I posted as "Writing data to a block of addresses using INDF" and it is still giving me hell. I will not write the data to Rx_Buffer + Rx_Num, it always write to Rx_Buffer. =20 RX_INT_HANDLER BANK0 =09 BTFSS RCSTA,OERR ; test if overrun bit is set PCALL RX_1 ; if overrun bit is not set then goto RX_1 BCF RCSTA,CREN ; if overrun bit is set then stop continuios receive=20 BSF RCSTA,CREN ;reset error start continuios receive MOVF RCREG,0 ;dummy read CLRF Rx_Num ;clear Rx_Num MAD NOP RETURN RX_1 BANK0 ;TEST!! MOVLW Rx_Buffer ;Move Address of Rx_Buffer to W =09 ADDWF Rx_Num, W ;Add Rx_Num to W =09 MOVWF FSR ;Place W (Rx_Buffer + Rx_Num) into FSR=09 MOVF RCREG,W ;moves RCREG into W =09 BCF STATUS,IRP ;Clears IRP , Bank0 MOVWF INDF ;copies W into INDF INCF Rx_Num, F ;Adds 1 to Rx_Num MOVF Rx_Num, W ;Moves Rx_Num to W XORLW D'16' ;XOR's W with 16 BTFSS STATUS,Z ;Checks if we are at 16 GOTO RX_1 ;If not keep reading BSF Os_Action,RX_CMD;Set RX_CMD to start RX_CMD Routine GOTO MAD ;Leaves routine Rx_Num is my pointer for the 16 Byte Bank of addresses that starts with Rx_Num. The Bank0 Maacro sets the IRP bit in the STATUS register, but I put it in the code any way and it is still not writing to the proper address. So let me know if you spot anything.=20 Charles K Roberts II ORNL-SNS Project -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu