; original File = C:\Users\US\Desktop\pic16f628 200уі.HEX

    processor 16F84
    #include <P16F84.INC>
    __config _CP_ON & _PWRTE_ON & _WDT_ON & _HS_OSC ; 0x3F06

; RAM-Variable
LRAM_0x20 equ 0x20
LRAM_0x21 equ 0x21
LRAM_0x22 equ 0x22
LRAM_0x23 equ 0x23
LRAM_0x24 equ 0x24
LRAM_0x25 equ 0x25
LRAM_0x26 equ 0x26
LRAM_0x27 equ 0x27
LRAM_0x28 equ 0x28
LRAM_0x29 equ 0x29
LRAM_0x2A equ 0x2A
LRAM_0x2B equ 0x2B
LRAM_0x2C equ 0x2C
LRAM_0x2D equ 0x2D
LRAM_0x2E equ 0x2E
LRAM_0x2F equ 0x2F
LRAM_0x30 equ 0x30
LRAM_0x31 equ 0x31
LRAM_0x32 equ 0x32
LRAM_0x33 equ 0x33
LRAM_0x34 equ 0x34
LRAM_0x35 equ 0x35
LRAM_0x36 equ 0x36

; Program

    Org 0x0000

;   Reset-Vector
    GOTO LADR_0x00B0
    ADDLW 0xFF           ;   b'11111111'  d'255'
    ADDLW 0xFF           ;   b'11111111'  d'255'
    ADDLW 0xFF           ;   b'11111111'  d'255'
;   Interrupt-Vector
    MOVWF LRAM_0x7F
    SWAPF STATUS,W
    CLRF STATUS
    MOVWF LRAM_0x34
    MOVF FSR,W
    MOVWF LRAM_0x33
    MOVF PCLATH,W        ; !!Bank Program-Page-Select
    MOVWF LRAM_0x35
    CLRF PCLATH          ; !!Bank Program-Page-Select
    MOVF LRAM_0x70,W
    MOVWF LRAM_0x36
    MOVF LRAM_0x20,W
    MOVWF TMR0           ; !!Bank!! TMR0 - OPTION_REG
    MOVF LRAM_0x21,W
    XORWF LRAM_0x22,W
    BTFSS STATUS,Z
    GOTO LADR_0x0016
    BSF PORTB,0          ; !!Bank!! PORTB - TRISB
LADR_0x0016
    MOVF LRAM_0x21,W
    XORWF LRAM_0x23,W
    BTFSS STATUS,Z
    GOTO LADR_0x001B
    BCF PORTB,0          ; !!Bank!! PORTB - TRISB
LADR_0x001B
    MOVF LRAM_0x21,W
    XORWF LRAM_0x24,W
    BTFSS STATUS,Z
    GOTO LADR_0x0020
    BSF PORTB,2          ; !!Bank!! PORTB - TRISB
LADR_0x0020
    MOVF LRAM_0x21,W
    XORWF LRAM_0x25,W
    BTFSS STATUS,Z
    GOTO LADR_0x0025
    BCF PORTB,2          ; !!Bank!! PORTB - TRISB
LADR_0x0025
    MOVF LRAM_0x21,W
    XORWF LRAM_0x26,W
    BTFSS STATUS,Z
    GOTO LADR_0x002A
    BSF PORTB,4          ; !!Bank!! PORTB - TRISB
LADR_0x002A
    MOVF LRAM_0x21,W
    XORWF LRAM_0x27,W
    BTFSS STATUS,Z
    GOTO LADR_0x002F
    BCF PORTB,4          ; !!Bank!! PORTB - TRISB
LADR_0x002F
    MOVF LRAM_0x21,W
    XORWF LRAM_0x28,W
    BTFSS STATUS,Z
    GOTO LADR_0x0034
    BSF PORTB,1          ; !!Bank!! PORTB - TRISB
LADR_0x0034
    MOVF LRAM_0x21,W
    XORWF LRAM_0x29,W
    BTFSS STATUS,Z
    GOTO LADR_0x0039
    BCF PORTB,1          ; !!Bank!! PORTB - TRISB
LADR_0x0039
    MOVF LRAM_0x21,W
    XORWF LRAM_0x2A,W
    BTFSS STATUS,Z
    GOTO LADR_0x003E
    BSF PORTB,3          ; !!Bank!! PORTB - TRISB
LADR_0x003E
    MOVF LRAM_0x21,W
    XORWF LRAM_0x2B,W
    BTFSS STATUS,Z
    GOTO LADR_0x0043
    BCF PORTB,3          ; !!Bank!! PORTB - TRISB
LADR_0x0043
    MOVF LRAM_0x21,W
    XORWF LRAM_0x2C,W
    BTFSS STATUS,Z
    GOTO LADR_0x0048
    BSF PORTB,5          ; !!Bank!! PORTB - TRISB
LADR_0x0048
    MOVF LRAM_0x21,W
    XORWF LRAM_0x2D,W
    BTFSS STATUS,Z
    GOTO LADR_0x004D
    BCF PORTB,5          ; !!Bank!! PORTB - TRISB
LADR_0x004D
    INCF LRAM_0x21,F
    MOVF LRAM_0x21,W
    XORLW 0x78           ;   b'01111000'  d'120'  "x"
    BTFSS STATUS,Z
    GOTO LADR_0x0053
    CLRF LRAM_0x21
LADR_0x0053
    BCF INTCON,T0IF
    CLRWDT
    MOVF LRAM_0x36,W
    MOVWF LRAM_0x70
    MOVF LRAM_0x35,W
    MOVWF PCLATH         ; !!Bank Program-Page-Select
    MOVF LRAM_0x33,W
    MOVWF FSR
    SWAPF LRAM_0x34,W
    MOVWF STATUS
    SWAPF LRAM_0x7F,F
    SWAPF LRAM_0x7F,W
    RETFIE
LADR_0x0060
    BCF STATUS,RP1       ; !!Bank Register-Bank(2/3)-Select
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVF LRAM_0x30,W
    MOVWF PCLATH         ; !!Bank Program-Page-Select
    MOVF LRAM_0x2E,W
    MOVWF PCL            ; !!Program-Counter-Modification
    RETURN
LADR_0x0067
    MOVLW 0x10           ;   b'00010000'  d'016'
    BCF STATUS,RP1       ; !!Bank Register-Bank(2/3)-Select
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVWF LRAM_0x72
    MOVLW 0x02           ;   b'00000010'  d'002'
    MOVWF LRAM_0x73
    MOVF LRAM_0x31,W
    MOVWF LRAM_0x70
    CLRF LRAM_0x71
    MOVF LRAM_0x72,W
    ADDWF LRAM_0x70,F
    MOVF LRAM_0x73,W
    BTFSC STATUS,C
    ADDLW 0x01           ;   b'00000001'  d'001'
    ADDWF LRAM_0x71,F
    MOVF LRAM_0x70,W
    MOVWF LRAM_0x2E
    MOVF LRAM_0x71,W
    MOVWF LRAM_0x30
    MOVF PCLATH,W        ; !!Bank Program-Page-Select
    MOVWF LRAM_0x2F
    CALL LADR_0x0060
    MOVWF LRAM_0x70
    MOVF LRAM_0x2F,W
    MOVWF PCLATH         ; !!Bank Program-Page-Select
    MOVF LRAM_0x22,W
    ADDWF LRAM_0x70,F
    MOVF LRAM_0x70,W
    MOVWF LRAM_0x23
    MOVF LRAM_0x70,W
    ADDWF LRAM_0x28,W
    MOVWF LRAM_0x29
    MOVLW 0x28           ;   b'00101000'  d'040'  "("
    ADDWF LRAM_0x70,W
    MOVWF LRAM_0x25
LADR_0x008A
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x25,W
    BTFSS STATUS,C
    GOTO LADR_0x0091
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x25,F
    GOTO LADR_0x008A
LADR_0x0091
    MOVLW 0x28           ;   b'00101000'  d'040'  "("
    ADDWF LRAM_0x29,W
    MOVWF LRAM_0x2B
LADR_0x0094
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x2B,W
    BTFSS STATUS,C
    GOTO LADR_0x009B
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x2B,F
    GOTO LADR_0x0094
LADR_0x009B
    MOVLW 0x28           ;   b'00101000'  d'040'  "("
    ADDWF LRAM_0x25,W
    MOVWF LRAM_0x27
LADR_0x009E
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x27,W
    BTFSS STATUS,C
    GOTO LADR_0x00A5
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x27,F
    GOTO LADR_0x009E
LADR_0x00A5
    MOVLW 0x28           ;   b'00101000'  d'040'  "("
    ADDWF LRAM_0x2B,W
    MOVWF LRAM_0x2D
LADR_0x00A8
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x2D,W
    BTFSS STATUS,C
    GOTO LADR_0x00AF
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x2D,F
    GOTO LADR_0x00A8
LADR_0x00AF
    RETURN
LADR_0x00B0
    MOVLW 0x04           ;   b'00000100'  d'004'
    BCF STATUS,RP1       ; !!Bank Register-Bank(2/3)-Select
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVWF LRAM_0x21
    MOVLW 0x10           ;   b'00010000'  d'016'
    MOVWF LRAM_0x70
    MOVLW 0x02           ;   b'00000010'  d'002'
    MOVWF LRAM_0x71
    MOVLW 0x04           ;   b'00000100'  d'004'
    ADDWF LRAM_0x70,F
    MOVLW 0x00           ;   b'00000000'  d'000'
    BTFSC STATUS,C
    ADDLW 0x01           ;   b'00000001'  d'001'
    ADDWF LRAM_0x71,F
    MOVF LRAM_0x70,W
    MOVWF LRAM_0x2E
    MOVF LRAM_0x71,W
    MOVWF LRAM_0x30
    MOVF PCLATH,W        ; !!Bank Program-Page-Select
    MOVWF LRAM_0x2F
    CALL LADR_0x0060
    MOVWF LRAM_0x70
    MOVF LRAM_0x2F,W
    MOVWF PCLATH         ; !!Bank Program-Page-Select
    MOVF LRAM_0x70,W
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVWF TMR0           ; !!Bank!! TMR0 - OPTION_REG
    MOVLW 0xC0           ;   b'11000000'  d'192'
    MOVWF PORTB          ; !!Bank!! PORTB - TRISB
    MOVLW 0x00           ;   b'00000000'  d'000'
    MOVWF LRAM_0x70
    MOVLW 0x02           ;   b'00000010'  d'002'
    MOVWF LRAM_0x71
    MOVLW 0x04           ;   b'00000100'  d'004'
    ADDWF LRAM_0x70,F
    MOVLW 0x00           ;   b'00000000'  d'000'
    BTFSC STATUS,C
    ADDLW 0x01           ;   b'00000001'  d'001'
    ADDWF LRAM_0x71,F
    MOVF LRAM_0x70,W
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVWF LRAM_0x2E
    MOVF LRAM_0x71,W
    MOVWF LRAM_0x30
    MOVF PCLATH,W        ; !!Bank Program-Page-Select
    MOVWF LRAM_0x2F
    CALL LADR_0x0060
    MOVWF LRAM_0x70
    MOVF LRAM_0x2F,W
    MOVWF PCLATH         ; !!Bank Program-Page-Select
    MOVF LRAM_0x70,W
    MOVWF PORTB          ; !!Bank!! PORTB - TRISB
    BSF INTCON,T0IE
    CLRF LRAM_0x21
    MOVLW 0x04           ;   b'00000100'  d'004'
    MOVWF LRAM_0x32
    CLRF LRAM_0x22
    MOVLW 0x3C           ;   b'00111100'  d'060'  "<"
    MOVWF LRAM_0x28
    MOVLW 0x28           ;   b'00101000'  d'040'  "("
    MOVWF LRAM_0x24
LADR_0x00ED
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x24,W
    BTFSS STATUS,C
    GOTO LADR_0x00F4
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x24,F
    GOTO LADR_0x00ED
LADR_0x00F4
    MOVLW 0x28           ;   b'00101000'  d'040'  "("
    ADDWF LRAM_0x28,W
    MOVWF LRAM_0x2A
LADR_0x00F7
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x2A,W
    BTFSS STATUS,C
    GOTO LADR_0x00FE
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x2A,F
    GOTO LADR_0x00F7
LADR_0x00FE
    MOVLW 0x28           ;   b'00101000'  d'040'  "("
    ADDWF LRAM_0x24,W
    MOVWF LRAM_0x26
LADR_0x0101
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x26,W
    BTFSS STATUS,C
    GOTO LADR_0x0108
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x26,F
    GOTO LADR_0x0101
LADR_0x0108
    MOVLW 0x28           ;   b'00101000'  d'040'  "("
    ADDWF LRAM_0x2A,W
    MOVWF LRAM_0x2C
LADR_0x010B
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x2C,W
    BTFSS STATUS,C
    GOTO LADR_0x0112
    MOVLW 0x78           ;   b'01111000'  d'120'  "x"
    SUBWF LRAM_0x2C,F
    GOTO LADR_0x010B
LADR_0x0112
    MOVLW 0x06           ;   b'00000110'  d'006'
    MOVWF LRAM_0x72
    MOVF PORTB,W         ; !!Bank!! PORTB - TRISB
    MOVWF LRAM_0x70
    MOVF LRAM_0x72,W
LADR_0x0117
    BTFSC STATUS,Z
    GOTO LADR_0x011D
    RRF LRAM_0x70,F
    BCF LRAM_0x70,7
    ADDLW 0xFF           ;   b'11111111'  d'255'
    GOTO LADR_0x0117
LADR_0x011D
    MOVLW 0x03           ;   b'00000011'  d'003'
    ANDWF LRAM_0x70,W
    MOVWF LRAM_0x72
    MOVF LRAM_0x72,W
    MOVWF LRAM_0x31
    MOVF LRAM_0x72,W
    XORWF LRAM_0x32,W
    BTFSC STATUS,Z
    GOTO LADR_0x0144
    BCF INTCON,GIE
    MOVLW 0x00           ;   b'00000000'  d'000'
    MOVWF LRAM_0x72
    MOVLW 0x02           ;   b'00000010'  d'002'
    MOVWF LRAM_0x73
    MOVF LRAM_0x31,W
    MOVWF LRAM_0x70
    CLRF LRAM_0x71
    MOVF LRAM_0x72,W
    ADDWF LRAM_0x70,F
    MOVF LRAM_0x73,W
    BTFSC STATUS,C
    ADDLW 0x01           ;   b'00000001'  d'001'
    ADDWF LRAM_0x71,F
    MOVF LRAM_0x70,W
    MOVWF LRAM_0x2E
    MOVF LRAM_0x71,W
    MOVWF LRAM_0x30
    MOVF PCLATH,W        ; !!Bank Program-Page-Select
    MOVWF LRAM_0x2F
    CALL LADR_0x0060
    MOVWF LRAM_0x70
    MOVF LRAM_0x2F,W
    MOVWF PCLATH         ; !!Bank Program-Page-Select
    MOVF LRAM_0x70,W
    MOVWF LRAM_0x20
    CALL LADR_0x0067
    BSF INTCON,GIE
    MOVF LRAM_0x31,W
    MOVWF LRAM_0x32
LADR_0x0144
    GOTO LADR_0x0112
LADR_0x0145
    GOTO LADR_0x0145
    ADDLW 0xFF           ;   b'11111111'  d'255'
    ADDLW 0xFF           ;   b'11111111'  d'255'

    Org 0x0200

    RETLW 0xEA           ;   b'11101010'  d'234'
    RETLW 0xEA           ;   b'11101010'  d'234'
    RETLW 0xEA           ;   b'11101010'  d'234'
    RETLW 0xEA           ;   b'11101010'  d'234'
    RETLW 0x00           ;   b'00000000'  d'000'

    Org 0x0210

    RETLW 0x3B           ;   b'00111011'  d'059'  ";"
    RETLW 0x3B           ;   b'00111011'  d'059'  ";"
    RETLW 0x3B           ;   b'00111011'  d'059'  ";"
    RETLW 0x3B           ;   b'00111011'  d'059'  ";"
    RETLW 0x01           ;   b'00000001'  d'001'

    End
