list      p=16F627             ; list directive to define processor
    #include <P16f627.inc>      ; processor specific variable definitions
    errorlevel -302
    __CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC

   
;--------- CONSTANTS DEFINITIONS---------------------------------------
    #define     RAM_Start       0x20
    #define     TIME0           D'30'
    #define     TIME1           D'30'
    #define     TIME2           D'30'
;--------- VARIABLE DEFINITIONS ---------------------------------------
    CBLOCK  RAM_Start
TMP0
TMP1
TMP2
    ENDC
;----------------------------------------------------------------------
        ORG     0x000           ; Processor reset vector
reset   nop
        goto init               ; Go to beginning of program
        ORG     0x004           ; interrupt vector location
        nop
;--------------------------------------------------------------

init	MOVLW	07h
	MOVWF	CMCON	; Comparator OFF
        BSF STATUS,RP0
        MOVLW B'00000000'
        MOVWF TRISA
        MOVLW B'00000000'
        MOVWF TRISB
        BCF STATUS,RP0
;------------------------------
        call delay
FIRST   MOVLW B'00000100'   
        MOVWF PORTB
        call delay
        MOVLW B'00000000'   
        MOVWF PORTB
        call delay
        GOTO FIRST
;------------------------------
delay
        MOVLW TIME2
        MOVWF TMP2
del2    MOVLW TIME1
        MOVWF TMP1
del1    MOVLW TIME0
        MOVWF TMP0
del0    DECFSZ TMP0,F
        GOTO del0
        DECFSZ TMP1,F
        GOTO del1
        DECFSZ TMP2,F
        GOTO del2
        return
;
    END