COUNT EQU 0x0B BUFRAM EQU 0x20 MOVLW D'8' MOVWF COUNT MOVLW high (BUFRAM) MOVWF FSR0H MOVLW low (BUFRAM) MOVWF FSR0L MOVLW upper (CODE_DATA) MOVWF TBLPTRU MOVLW high (CODE_DATA) MOVWF TBLPTRH MOVLW low (CODE_DATA) MOVWF TBLPTRL READ_BLOCK TBLRD*+ MOVF TABLAT, W MOVWF POSTINC0 DECFSZ COUNT BRA READ_BLOCK MOVLW upper (NEW_DATA) MOVWF TBLPTRU MOVLW high (NEW_DATA) MOVWF TBLPTRH MOVLW low (NEW_DATA) MOVWF TBLPTRL MOVLW high (BUFRAM) MOVWF FSR0H MOVLW low (BUFRAM) MOVWF FSR0L MOVLW 8 MOVWF COUNT WRITE_BACK MOVF POSTINC0, W MOVWF TABLAT TBLWT*+ DECFSZ COUNT BRA WRITE_BACK MOVLW upper (NEW_DATA) MOVWF TBLPTRU MOVLW high (NEW_DATA) MOVWF TBLPTRH MOVLW low (NEW_DATA) MOVWF TBLPTRL BSF EECON1, EEPGD BCF EECON1, CFGS BSF EECON1, WREN BCF INTCON, GIE MOVLW 55h MOVWF EECON2 MOVLW 0AAh MOVWF EECON2 BSF EECON1, WR NOP BSF INTCON, GIE BCF EECON1, WREN BSF TRISD,7 MOVLW 0x20 MOVWF TXSTA BCF PIR1,TXIF MOVLW D'15' MOVWF SPBRG BCF TRISC, TX BSF RCSTA, SPEN MOVLW 8 MOVWF COUNT MOVLW upper (NEW_DATA) MOVWF TBLPTRU MOVLW high (NEW_DATA) MOVWF TBLPTRH MOVLW low (NEW_DATA) MOVWF TBLPTRL CLRF TRISB MOVLW 0x8 MOVWF COUNT LN TBLRD*+ MOVF TABLAT,W R1 BTFSS PIR1, TXIF BRA R1 MOVWF TXREG DECFSZ COUNT BRA LN