#include p16f690.inc
    
    __CONFIG _FOSC_INTRCIO & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_ON & _IESO_ON & _FCMEN_ON

; DELAY	EQU 0x83
DELAY	EQU 0x20
	
    UDATA
CTR_HI  RES    1
CTR_LO  RES    1

RES_VECT  CODE    0x0000
    GOTO    START

MAIN_PROG CODE

START 
    banksel 0x0
    ; Stop Timer1, disable interrupts, clear interrupt flags
    CLRF    T1CON
    CLRF    INTCON
    CLRF    PIR1
    ; Setting PORTC and PORTB
    CLRF    PORTC
    CLRF    PORTB
    
    banksel 0x100
    ; ALl digital on PORTC
    CLRF    ANSEL
    
    banksel 0x80
    ; All outputs on PORTC
    CLRF    TRISC
    ; Set PORTB, 7 as output
    BCF	    TRISB, 7
    ; Setting Timer0
    MOVLW   0xF8
    MOVWF   OPTION_REG
    ; Setting Timer1
    CLRF    PIE1
  
    banksel 0x0
    ; External Clock source, no prescaler, no sync
    MOVLW 0x07
    MOVWF T1CON
    
CLEAR_TIMERS
    CLRF    TMR0
    CLRF    TMR1L
    CLRF    TMR1H
LOOP
    MOVLW   DELAY
    MOVWF   CTR_HI
    CLRF    CTR_LO
TIME0
    DECFSZ  CTR_LO, F
    GOTO    TIME0
    DECFSZ  CTR_HI, F
    GOTO    TIME0
    MOVF    TMR0, W
    MOVWF   PORTC
    CLRF    TMR0
    BCF	    PORTB, 7
    
    MOVLW   DELAY
    MOVWF   CTR_HI
    CLRF    CTR_LO
TIME1
    DECFSZ  CTR_LO, F
    GOTO    TIME1
    DECFSZ  CTR_HI, F
    GOTO    TIME1
    MOVF    TMR1L, W
    MOVWF   PORTC
    CLRF    TMR1L
    CLRF    TMR1H	; not actually necessary but good form
    BSF	    PORTB, 7
    GOTO    LOOP
    
    END
