;***************************** Librería "RS232MEN.INC"

    CBLOCK
    R232_ApuntaCaracter               ; Apunta al carácter a visualizar.
    R232_ValorCaracter                ; Valor ASCII del carácter a visualizar.
    ENDC

R232_Mensaje
    movwf    R232_ApuntaCaracter      ; Posición del primer carácter del mensaje.
    movlw    Mensajes                  ; Halla la posición relativa del primer carácter
    subwf    R232_ApuntaCaracter,F    ; del mensaje respecto del comienzo de todos los
                                       ; mensajes (identificados mediante la etiqueta
                                       ; "Mensajes").
    decf    R232_ApuntaCaracter,F     ; Para compensar la posición que ocupa la
R232_VisualizaOtroCaracter            ; instrucción "addwf PCL,F".
    movf    R232_ApuntaCaracter,W     ; Apunta al carácter a visualizar.
    call    Mensajes                   ; Obtiene el código ASCII del carácter apuntado.
    movwf    R232_ValorCaracter       ; Guarda el valor de carácter.
    movf    R232_ValorCaracter,F      ; Lo único que hace es posicionar flag Z. En caso
    btfsc    STATUS,Z                  ; que sea "0x00", que es código indicador final   
    goto    R232_FinMensaje           ; de mensaje, sale fuera.
R232_NoUltimoCaracter
    call    R232_EnviaDato            ; Visualiza el carácter ASCII leído.
    incf    R232_ApuntaCaracter,F     ; Apunta a la posición del siguiente carácter
    goto    R232_VisualizaOtroCaracter; dentro del mensaje.
R232_FinMensaje
    return

; Subrutina "RS232_LineasBlanco" ------------------------------------------------
;
; Visualiza unas cuantas líneas en blanco en el monitor del ordenador.

    CBLOCK
    R232_ContadorLineas
    ENDC

R232_LineasBlanco
    movlw    d'10'                     ; Por ejemplo este número de líneas en
    movwf    R232_ContadorLineas      ; blanco.
RL232_LineasBlancoLazo
    movlw    .10                       ; Código del salto de línea
    call    R232_EnviaDato
    decfsz    R232_ContadorLineas,F
    goto    RL232_LineasBlancoLazo
    movlw    .13                       ; Código del retorno de carro.
    call    R232_EnviaDato            ; Finaliza con un retorno de carro.
    return