FSR_INICIAL EQU 0x40 ; Direccion inicial
LARGO_CABECERA EQU 0x03 ; Cantidad de letras cabecera ( RMC )
;En la inicializacion de los datos:
BCF STATUS, IRP
MOVLW FSR_INICIAL
MOVWF FSR
MOVLW 'R'
MOVWF INDF
INCF FSR, F
MOVLW 'M'
MOVWF INDF
INCF FSR, F
MOVLW 'C'
MOVWF INDF
INCF FSR, F
MOVLW FSR_INICIAL
MOVWF FSR
; Rutina de interrupcion
REC_NMEA
BTFSS MODO, 0
GOTO Comparar
Guardado:
MOVF RCREG, W
MOVWF INDF
INCF FSR, F ;Supongo no Overflow y que alcanza la memoria!!
XORLW '*'
BTFSS STATUS, Z
RETURN
BCF MODO, 0
MOVLW FSR_INICIAL
MOVWF FSR
RETURN
Comparar:
MOVF RCREG, W
SUBWF INDF, W
BTFSS STATUS, Z
RETURN
INCF FSR, F
MOVLW (LARGO_CABECERA + FSR_INICIAL)
SUBWF FSR, W
BTFSS STATUS, Z
BSF MODO, 0 ; En caso que llego a la direccion de destino
RETURN