#include <p16F690.inc>
     __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)

cblock 0x20
  W_Save
  STATUS_Save
  byte
endc


org 0
 nop
 goto        Start
 nop
 nop
 nop
 nop
Start:
 bsf       STATUS,RP0     ; select Register Page 1
 clrf      TRISA
 clrf	   TRISB      
 clrf	   TRISC         
 bcf       STATUS,RP0     ; back to Register Page 0

 BANKSEL    ANSELH
 clrf		ANSELH
 
 BANKSEL	SPBRG
 movlw		d'25'
 movwf		SPBRG

 BANKSEL	TXSTA
 movlw		b'00100100'
 movwf		TXSTA

 BANKSEL	RCSTA
 movlw		b'10010000'
 movwf		RCSTA

 BANKSEL	PORTC
 clrf		PORTC

Loop:
banksel	TXREG
 movlw 'A' ;load 'A'
 movwf TXREG ;into TXREG
 nop
 btfss PIR1,TXIF ;test if TXREG empty
 goto $-1 ;wait until TXREG empty

 movlw 'B' ;load 'B'
 movwf TXREG ;into TXREG
 nop
 btfss PIR1,TXIF ;test if TXREG empty - will skip
 goto $-1 ;wait until TXREG empty

 movlw 'C' ;load 'C'
 movwf TXREG ;into TXREG
 nop
 btfss PIR1,TXIF ;test if TXREG empty
 goto $-1 ;wait until TXREG empty

 banksel	RCSTA
 btfss		RCSTA,OERR
 goto		$+3
 bcf		RCSTA,CREN
 btfss		PIR1,RCIF
 goto		$-1
 BANKSEL	RCREG
 movf		RCREG,w
 BANKSEL	PORTC
 movwf		PORTC

goto Loop
end