; original File = C:\Users\Admin7\Desktop\Timer_12F629\1-30.hex

    processor 12F629
    #include <P12F629.INC>
    __config 0x3F84
;   _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF 
;   & _INTRC_OSC_NOCLKOUT 
;   __idlocs 0xFF, 0xFF, 0xFF, 0xFF

;   EEPROM-Data
    Org 0x2100
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........
    DE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   ;  ........

; RAM-Variable
LRAM_0x20 equ 0x20
LRAM_0x21 equ 0x21
LRAM_0x22 equ 0x22
LRAM_0x23 equ 0x23
LRAM_0x38 equ 0x38
LRAM_0x39 equ 0x39
LRAM_0x3A equ 0x3A

; Program

    Org 0x0000

;   Reset-Vector
    GOTO LADR_0x0028
LADR_0x0001
    CLRF LRAM_0x23
LADR_0x0002
    MOVWF LRAM_0x22
LADR_0x0003
    MOVLW 0xFF           ;   b'11111111'  d'255'
;   Interrupt-Vector
    ADDWF LRAM_0x22,F
    BTFSS STATUS,C
    ADDWF LRAM_0x23,F
    BTFSS STATUS,C
    GOTO LADR_0x0023
    MOVLW 0x03           ;   b'00000011'  d'003'
    MOVWF LRAM_0x21
    MOVLW 0xDF           ;   b'11011111'  d'223'
    CALL LADR_0x000F
    GOTO LADR_0x0003
    CLRF LRAM_0x21
LADR_0x000F
    ADDLW 0xE8           ;   b'11101000'  d'232'
    MOVWF LRAM_0x20
    COMF LRAM_0x21,F
    MOVLW 0xFC           ;   b'11111100'  d'252'
    BTFSS STATUS,C
    GOTO LADR_0x0018
LADR_0x0015
    ADDWF LRAM_0x20,F
    BTFSC STATUS,C
    GOTO LADR_0x0015
LADR_0x0018
    ADDWF LRAM_0x20,F
    CLRWDT
    INCFSZ LRAM_0x21,F
    GOTO LADR_0x0015
    BTFSC LRAM_0x20,0
    GOTO LADR_0x001E
LADR_0x001E
    BTFSS LRAM_0x20,1
    GOTO LADR_0x0022
    NOP
    GOTO LADR_0x0022
LADR_0x0022
    RETURN
LADR_0x0023
    BCF STATUS,IRP
    BCF STATUS,RP1       ; !!Bank Register-Bank(2/3)-Select
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CLRWDT
    RETURN
LADR_0x0028
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0xDB           ;   b'11011011'  d'219'
    MOVWF GPIO           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0x16           ;   b'00010110'  d'022'
    MOVWF CMCON          ; !!Bank!! CMCON - VRCON
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0xAD           ;   b'10101101'  d'173'
    MOVWF CMCON          ; !!Bank!! CMCON - VRCON
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,5           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,5           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CLRF LRAM_0x38
    CLRF LRAM_0x39
    MOVLW 0x03           ;   b'00000011'  d'003'
    MOVWF LRAM_0x23
    MOVLW 0xE8           ;   b'11101000'  d'232'
    CALL LADR_0x0002
    CLRWDT
    BTFSC GPIO,3         ; !!Bank!! GPIO - TRISIO
    GOTO LADR_0x0045
    CLRF LRAM_0x3A
    GOTO LADR_0x0047
LADR_0x0045
    CALL LADR_0x00CA
    GOTO LADR_0x0092
LADR_0x0047
    CLRWDT
    BTFSC GPIO,3         ; !!Bank!! GPIO - TRISIO
    GOTO LADR_0x0092
    INCF LRAM_0x3A,F
    CLRWDT
    MOVLW 0x1F           ;   b'00011111'  d'031'
    SUBWF LRAM_0x3A,W
    BTFSS STATUS,C
    GOTO LADR_0x007E
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    MOVLW 0xC8           ;   b'11001000'  d'200'
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CALL LADR_0x0001
    BSF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    MOVLW 0xC8           ;   b'11001000'  d'200'
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CALL LADR_0x0001
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    MOVLW 0xC8           ;   b'11001000'  d'200'
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CALL LADR_0x0001
    BSF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    MOVLW 0xC8           ;   b'11001000'  d'200'
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CALL LADR_0x0001
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    MOVLW 0xC8           ;   b'11001000'  d'200'
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CALL LADR_0x0001
    BSF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    MOVLW 0xC8           ;   b'11001000'  d'200'
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CALL LADR_0x0001
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CLRF LRAM_0x3A
    GOTO LADR_0x0047
LADR_0x007E
    CALL LADR_0x00D2
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BSF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0x01           ;   b'00000001'  d'001'
    MOVWF LRAM_0x23
    MOVLW 0xF4           ;   b'11110100'  d'244'
    CALL LADR_0x0002
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BSF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0x01           ;   b'00000001'  d'001'
    MOVWF LRAM_0x23
    MOVLW 0xF4           ;   b'11110100'  d'244'
    CALL LADR_0x0002
    GOTO LADR_0x0047
LADR_0x0092
    MOVF LRAM_0x3A,W
    MOVWF LRAM_0x38
    CLRF LRAM_0x39
LADR_0x0095
    BCF CMCON,3          ; !!Bank!! CMCON - VRCON
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    MOVLW 0x14           ;   b'00010100'  d'020'
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CALL LADR_0x0001
LADR_0x009F
    CLRWDT
    BTFSC CMCON,6        ; !!Bank!! CMCON - VRCON
    GOTO LADR_0x00AC
    BSF GPIO,5           ; !!Bank!! GPIO - TRISIO
    NOP
    NOP
    NOP
    NOP
    NOP
    BCF GPIO,5           ; !!Bank!! GPIO - TRISIO
    NOP
    NOP
    GOTO LADR_0x009F
LADR_0x00AC
    BSF CMCON,3          ; !!Bank!! CMCON - VRCON
    BSF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,4           ; !!Bank!! GPIO - TRISIO
    MOVLW 0x14           ;   b'00010100'  d'020'
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CALL LADR_0x0001
LADR_0x00B3
    CLRWDT
    BTFSS CMCON,6        ; !!Bank!! CMCON - VRCON
    GOTO LADR_0x0095
    CLRWDT
    BTFSC GPIO,3         ; !!Bank!! GPIO - TRISIO
    GOTO LADR_0x00BA
    CALL LADR_0x00BB
LADR_0x00BA
    GOTO LADR_0x00B3
LADR_0x00BB
    BSF GPIO,2           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVF LRAM_0x39,W
    MOVWF LRAM_0x23
    MOVF LRAM_0x38,W
    CALL LADR_0x0002
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
    MOVLW 0x14           ;   b'00010100'  d'020'
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CALL LADR_0x0001
    RETURN
LADR_0x00CA
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0x0A           ;   b'00001010'  d'010'
    MOVWF EEADR          ; !!Bank!! Unimplemented - EEADR
    BSF EECON1,0         ; !!Bank!! Unimplemented - EECON1
    MOVF EEDATA,W        ; !!Bank!! Unimplemented - EEDATA
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVWF LRAM_0x3A
    RETURN
LADR_0x00D2
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0x0A           ;   b'00001010'  d'010'
    MOVWF EEADR          ; !!Bank!! Unimplemented - EEADR
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVF LRAM_0x3A,W
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVWF EEDATA         ; !!Bank!! Unimplemented - EEDATA
    BSF EECON1,2         ; !!Bank!! Unimplemented - EECON1
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0x80           ;   b'10000000'  d'128'
    MOVWF INTCON
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0x55           ;   b'01010101'  d'085'  "U"
    MOVWF EECON2         ; !!Bank!! Unimplemented - EECON2
    MOVLW 0xAA           ;   b'10101010'  d'170'
    MOVWF EECON2         ; !!Bank!! Unimplemented - EECON2
    BSF EECON1,1         ; !!Bank!! Unimplemented - EECON1
    BCF EECON1,2         ; !!Bank!! Unimplemented - EECON1
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
LADR_0x00E5
    CLRWDT
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF STATUS,DC
    BTFSC EECON1,1       ; !!Bank!! Unimplemented - EECON1
    BSF STATUS,DC
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BTFSC STATUS,DC
    GOTO LADR_0x00E5
    RETURN
LADR_0x00EE
    SLEEP
    GOTO LADR_0x00EE

    End
