;============================================================================
; 				-1  PIC 16F873
;============================================================================

		LIST p=16F873			;  
		RADIX HEX			;   
		INCLUDE "P16F873.INC"		;    
		__CONFIG b'11111101110001'
;    		= 11
;   		= 1
;  10 					= 1
;    			= 1
; CPD -     .		= 1
; LVP -   .	= 0
; BODEN -    U . .	= 1
;    		= 11
; PWRTE -    .	= 0
; WDTE -    		= 0
;  - 				= 01
;============================================================================
	ORG	0x00			;  
	CBLOCK	20H			;   
		U_H			;   
		U_L			;   
		T_TEMP			;       1
		TEMP			;   
		TEMP_i
		INDIK			;    - 
		HL1			; ,  
		HL2			; 
		HL3			; 
		HL4			; 
		HL5
		HL6
		HL7
		HL8
		HLD			;   
		THLD
		T_HL1			; ,  
		T_HL2			; 
		T_HL3			; 
		T_HL4			; 
		T_HL5
		T_HL6
		T_HL7
		T_HL8
		POZ			;     0
		T_POZ			;     
		POZ1			;     1
		W_TEMP			;   
		STATUS_TEMP		;   
	ENDC				;   
		GOTO	SETUP		;    
	ORG	0x04
;============================================================================
;       T1
;============================================================================
int_handler1	;     :   -  
		BCF	INTCON,GIE	;  
 		MOVWF	W_TEMP      	;     W
		MOVF	STATUS,W       	;     STATUS   W
		MOVWF	STATUS_TEMP	;     STATUS
		MOVLW	0xFD		;   
		MOVWF	TMR1H		;   
		MOVLW	0x00		;  1 - 
		MOVWF	TMR1L		;     
		MOVLW	0x86		;   TRISB
		MOVWF	FSR		;  ,    
		MOVLW	0X3C		;     (  2-5)
		IORWF	PORTB,F		;  
		MOVLW	0xFF		;   
		MOVWF	INDF		; 
		INCF	FSR,F		;   TRISC
		MOVLW	0x03		;  7
		MOVWF	INDF		; 
		BCF	PORTC,7		;  7
		MOVF	PORTB,W		;      
		MOVWF	SKAN_KEY	;    
		BSF	PORTC,7		;  7
		MOVLW	0x83		;  7
		MOVWF	INDF		; ,   
		DECF	FSR,F		;   TRISB
		CLRF	INDF		;    - 
		BTFSS	HLD,3		; ,
		MOVF	HL1,W		;  
		BTFSS	HLD,2		;  
		MOVF	HL2,W		;  
		BTFSS	HLD,1		;  
		MOVF	HL3,W		;  
		BTFSS	HLD,0		;  
		MOVF	HL4,W		;  
		MOVWF	INDIK		; 
ZADVIG		MOVLW	0X08		;    ,  
		MOVWF	T_TEMP		;    
		RRF	INDIK,F		;    (   )
		BSF	PORTB,0		;  0  
		SKPC			;  
		BCF	PORTB,0		;  1
		BSF	PORTB,1		;      1
		BCF	PORTB,1		;   
		CLRC			;  ,    
		DECFSZ	T_TEMP,F	;   1 
		GOTO	$-08		;    		
		MOVF	HLD,W		;   
		CLRC			;   ,   ""
		MOVWF	TEMP		;   
		RLF	TEMP,F		;    
		RLF	TEMP,W		;   ,  -  
		ANDWF	PORTB,F		;  ""   
		BSF	STATUS,C	;    ""
		RRF	HLD,F		;   
		SKPNC			; ,    "0"  
		GOTO	$+3		;   3 
		MOVLW	0XF7		;     -1
		MOVWF	HLD		;   
	;----------------------------------------------------------------------------		
EXIT_T1		INCF	POZ1,F		;     
		MOVF	POZ1,W		;     
		SUBLW	0X04		;  4 -   
		SKPNZ			; ,   
		CLRF	POZ1		;   4 -  POZ1
		BCF	PIR1,0		;      1
		MOVF	STATUS_TEMP,W 	;     STATUS
		MOVWF	STATUS          ;    STATUS,    
		SWAPF	W_TEMP,F	;      
		SWAPF	W_TEMP,W      	;    W,    
		BSF	INTCON,GIE	;  
		CLRWDT
		RETFIE			;    

;============================================================================
;   
;============================================================================	
SETUP		
		CLRF	PORTA		;  ,    
		CLRF	PORTB		;  ,    
		CLRF	PORTC		;  ,    C
		MOVLW	0x9F		;    ADCON1
		MOVWF	FSR		;  
		MOVLW	0X04		;  
		MOVWF	INDF		;   : 0, 1, 2 - ,  - ,   
		MOVLW	0x41		;    
		MOVWF	ADCON0		;  ,  0, Fosc/8  4 
		MOVLW	0x85		;     TRISA
		MOVWF	FSR		;   TRISA
		MOVLW	0x3F		;    
		MOVWF	INDF		;     - 
		MOVLW	0X86		;     TRISB
		MOVWF	FSR		;   TRISB
		MOVLW	0X00		;     
		MOVWF	INDF		;    - 
		MOVLW	0X87		;     TRISC
		MOVWF	FSR		;   TRISC
		MOVLW	0X83		;     
		MOVWF	INDF		;   C1 - 0,1,7 - 		
		MOVLW	0X81		;   OPTION
		MOVWF	FSR		;   
		MOVLW	0XCF		;  "1100111"   OPTION
		MOVWF	INDF		; PUL_UP=Off,   WDT = 1:128
		MOVLW	0X31		;   T1CON -  , ,  8:1,  
		MOVWF	T1CON		;  
		MOVLW	0X8C		;    PIE1
		MOVWF	FSR		;  
		BSF	INDF,TMR1IE	;     1
		CLRF	RCSTA		;   USART
		CLRF	T2CON		;   TMR2
		CLRF	CCP1CON		;   CCP
		MOVLW	0XA0		;   B'10100000'  INTCON:   ,
		MOVWF	INTCON		;    :   TM0
		MOVLW	0x07		;    
		MOVWF	BRES_HI		;    
		MOVLW	0xA1 +1		;     (,      1)
		MOVWF	BRES_MID	;    
		MOVLW	0x20		;    
		MOVWF	BRES_LO		;    
		MOVLW	0XF0		;  4    
		MOVWF	VIDRABOT	;    
		MOVLW	0XF7		;   
		MOVLW	0xFD		;   
		MOVWF	TMR1H		;     
		MOVLW	0xDC		;    :   1,    - 0, B5 - 0
		MOVWF	HLD		;   (  ) - 0  
		BSF	ACP,4		; 
		BSF	TEMP_i,2	;


;============================================================================
;			   
;============================================================================		
START_0
		CALL	R_EEPROM	;    (  0xFF)
		INCF	VIDRABOT,W	;  1  " ",    -   -  "0"
		BTFSS	STATUS,Z	;   0,     
		GOTO	START		;   -    
		GOTO	ZAVOD_SET	;     , "" 
START		MOVF	ZONA,W		;   
		ADDWF	U_USTAV1,W	;       
		MOVWF	U_USTAV1H	;      
		MOVF	ZONA,W		;  
		SUBWF	U_USTAV1,W	;  
		MOVWF	U_USTAV1L	;  
		MOVF	ZONA,W		; 
		ADDWF	U_USTAV2,W	;    
		MOVWF	U_USTAV2H	;  
		MOVF	ZONA,W		;  
		SUBWF	U_USTAV2,W	; 
		MOVWF	U_USTAV2L	; 
		BTFSC	VIDRABOT,0	;    
		GOTO	OTKL		;  
		BTFSC	VIDRABOT,1	;   
		GOTO	RUCHN		; 
		BTFSC	VIDRABOT,2	;  
		GOTO	AVTOMAT		;
		GOTO	ZAVOD_SET	;   -   
		
;============================================================================
;			 " "
;============================================================================		
OTKL		
		BCF	VIDRABOT,1	;   
		BCF	VIDRABOT,2	;   
		MOVLW	0xF1		;     
		IORWF	VIDRABOT	;  ,   ""
		MOVLW	0X28		;   
		MOVWF	HL1		;  "O"
		MOVLW	0X74
		MOVWF	HL2		; "F"
		MOVLW	0X74
		MOVWF	HL3		; "F"
		MOVLW	0X28
		MOVWF	HL4		; "0"
		CALL	SBROS_VREMY	;  
		CALL	W_EEPROM	;    
		BTFSS	POZ,0		; 
		GOTO	$-1		;     
POWT_OFF	MOVFW	SKAN_KEY 	;    
		SUBLW	0XB4		;   -      
		SKPNZ			; , ,   
		GOTO	ZAVOD_SET	;    -   
		BTFSS	SKAN_KEY,5	;    
		GOTO	RUCHN		;  -   "" 
		BTFSS	POZ,0		;   /     
		GOTO	$+5
		MOVLW	0xFF
		MOVWF	HL1
		MOVLW	0x28
		MOVWF	HL4
		BTFSC	POZ,0		
		GOTO	$+5		;
		MOVLW	0xFF
		MOVWF	HL4
		MOVLW	0x28
		MOVWF	HL1
		GOTO	POWT_OFF	; ,     

;============================================================================
;			 ""
;============================================================================
RUCHN
		CALL	SBROS_VREMY	;  
		BSF	PORTB,6		;  
		BSF	PORTB,7		;   
		MOVLW	0xFF		;  
		MOVWF	HL2
		MOVWF	HL3
		MOVWF	HL4
		BCF	VIDRABOT,0	;    . 
		BCF	VIDRABOT,2	;  
		BSF	VIDRABOT,1	;  " "
		CALL	W_EEPROM	;    
		MOVLW	0x70
		MOVWF	HL1		;    ""
		BTFSS	POZ,0
		GOTO	$-1		;  
		MOVLW	0xA1
		MOVWF	HL2		;   - ""
		BTFSC	POZ,0
		GOTO	$-1		;  
		MOVLW	0xE1
		MOVWF	HL3		;   - ""
		BTFSS	POZ,0
		GOTO	$-1
		MOVLW	0x61		;   - ""
		MOVWF	HL4
		BTFSC	POZ,0
		GOTO	$-1
POVT_R		MOVLW	0X50		;    
		MOVWF	HL1		;  "P",    
		BTFSS	SKAN_KEY,7	;     - 
		GOTO	OTKL		;    
		BTFSS	SKAN_KEY,5	;     - 
		GOTO	AVTOMAT		;    
		BTFSS	SKAN_KEY,6	;     - 
		GOTO	PRIBAV_R	;     
		BTFSS	SKAN_KEY,3	;     - 
		GOTO	UBAV_R		;     
		BTFSS	SKAN_KEY,4	;     - 
		CALL	W_EEPROM	;  
		BTFSS	SKAN_KEY,4	; ,      
		GOTO	$-1		; ,   .
		CALL	PREOBR		;    
		MOVFW	U_IZM		;    
		MOVWF	T_IND_UST	;    
		SUBLW	0X3C		;  60()
		BTFSS	STATUS,C	;    60  GUT_R
		GOTO	GUT_R		;    
		CALL	U_MEN60		;   . 
		GOTO	POVT_R		;    
GUT_R		BCF	PORTC,2		;   U<60
		CALL	IND_UST		;  
		BTFSS	PORTA,2		; ,   
		GOTO	OBR_UST2_R	;   -    
OBR_UST1_R	BSF	HL4,5		;  
		MOVFW	U_USTAV1H	;      
		MOVWF	U_H		;     
		MOVFW	U_USTAV1L	;   
		MOVWF	U_L		;  
		GOTO	$+6		;  N 
OBR_UST2_R	BCF	HL4,5		;  
		MOVFW	U_USTAV2H	;      
		MOVWF	U_H		;     
		MOVFW	U_USTAV2L	;   
		MOVWF	U_L		;  
					; if RAMx < RAMy /* obsolete */ -    
		MOVF	U_H		;    
  		SUBWF	U_IZM,W		;     
  		SKPNZ			;    -  
  		GOTO	V_ZONE_R	;  
  		SKPC			;     
		GOTO	$+4		;    
		BSF	PORTB,6 
  		BCF	PORTB,7		;   ""
		GOTO	POVT_R		;    
  		MOVF	U_IZM,W		;     
  		SUBWF	U_L,W		;     
  		SKPNZ			;    -  
  		GOTO	V_ZONE_R	;  
  		SKPC			;     
		GOTO	V_ZONE_R	;   " "
  		BCF	PORTB,6		;   ""
  		BSF	PORTB,7
		GOTO	POVT_R		;    
V_ZONE_R	BSF	PORTB,6		;  
		BSF	PORTB,7		;   
		GOTO	POVT_R		;    

;============================================================================
;			""  
;============================================================================
UBAV_R
		BTFSC	PORTA,5		;   ""
		GOTO	$+7		;   -  N  
		BCF	PORTC,6		;   "" -  
		MOVLW	0xBF
		MOVWF	HL1		;   
		BTFSS	SKAN_KEY,3	;    ""
		GOTO	UBAV_R		;    
		GOTO	POVT_R		; ,     
		MOVLW	0x81
		MOVWF	HL1		;  ""
		BSF	PORTC,6		;   ""
		CALL	PREOBR		;  
		MOVFW	U_IZM		;
		MOVWF	T_IND_UST	;   
		CALL	IND_UST		;  
		BTFSS	SKAN_KEY,3	;    ""
		GOTO	$+3		;  ?      
		BCF	PORTC,6		;   ""
		GOTO	POVT_R		;      
		GOTO	UBAV_R		; ,          ""
;============================================================================
;			""  
;============================================================================
PRIBAV_R
		BTFSC	PORTC,0		;   ""
		GOTO	$+7		;   -  N  
		BCF	PORTC,5		;   "" -  
		MOVLW	0xFE
		MOVWF	HL1		;   
		BTFSS	SKAN_KEY,6	;    ""
		GOTO	PRIBAV_R	;    
		GOTO	POVT_R		; ,     
		MOVLW	0x48
		MOVWF	HL1		;  ""
		BSF	PORTC,5		;   ""
		CALL	PREOBR		;  
		MOVFW	U_IZM
		MOVWF	T_IND_UST	;     
		CALL	IND_UST		;  
		BTFSS	SKAN_KEY,6	;    ""
		GOTO	$+3		;  ?      
		BCF	PORTC,5		;   ""
		GOTO	POVT_R		;      
		GOTO	PRIBAV_R	; ,          ""

;============================================================================
;			 ""
;============================================================================
AVTOMAT		
		CALL	SBROS_VREMY	;  
		BSF	PORTB,6		;  
		BSF	PORTB,7		;   
		MOVLW	0xFF		;  
		MOVWF	HL2
		MOVWF	HL3
		MOVWF	HL4
		BCF	VIDRABOT,0	;    . 
		BCF	VIDRABOT,1	;  
		BSF	VIDRABOT,2	;  " "
		CALL	W_EEPROM	;    
		MOVLW	0x60
		MOVWF	HL1		;    ""
		BTFSS	POZ,0
		GOTO	$-1		;  
		MOVLW	0x29
		MOVWF	HL2		;   - ""
		BTFSC	POZ,0
		GOTO	$-1		;  
		MOVLW	0x35
		MOVWF	HL3		;   - ""
		BTFSS	POZ,0
		GOTO	$-1
		MOVLW	0x28		;   - ""
		MOVWF	HL4
		BTFSC	POZ,0
		GOTO	$-1
		MOVLW	0X01		;     1
		MOVWF	T_UB		;    
		MOVWF	T_PR		;   
;============================================================================		
RET_0
		MOVLW	0X40		;   A    
		MOVWF	HL1		;    .
		BCF	PORTC,5		;   
		BCF	PORTC,6		;    - ,  .
		CALL	PREOBR		;   ,   U-IZM  ...
		MOVFW	U_IZM		;
		MOVWF	T_IND_UST	;  ,  
		BTFSS	SKAN_KEY,6	;    
		GOTO	OBR_UST1	;     1
		BTFSS	SKAN_KEY,3	;    
		GOTO	OBR_KP1		;     1
		BTFSS	SKAN_KEY,5	;    
		GOTO	SET_ZONA	;       
		BTFSS	SKAN_KEY,7	;    
		GOTO	RUCHN		;   
		BTFSS	SKAN_KEY,4	;    
		CALL	W_EEPROM	;    
		BTFSS	SKAN_KEY,4	;    
		GOTO	$-1		;  
		MOVF	T_IND_UST,W	;   
		SUBLW	0X3C		;  60()
		BTFSC	STATUS,C	;    60
		CALL	U_MEN60		;   . 
		MOVF	T_IND_UST	;     
		SUBLW	0X3C		; 60 ()
		BTFSC	STATUS,C	;  
		GOTO	RET_0		;     
		BCF	PORTC,2		;   U<60
		CALL	IND_UST		; ,  
		BTFSS	PORTA,2		; ,   
		GOTO	$+7		;   -    
		BSF	HL4,5		;     -   4 
		MOVF	U_USTAV1H,W	;    
		MOVWF	U_H		;     
		MOVF	U_USTAV1L,W	;  	
		MOVWF	U_L		; ...
		GOTO	$+6		;   
		BCF	HL4,5		;    
		MOVF	U_USTAV2H,W	;    
		MOVWF	U_H		;     
		MOVF	U_USTAV2L,W	;  	
		MOVWF	U_L		; ...
		MOVF	U_H,W		;      
  		SUBWF	U_IZM,W		;     
  		SKPNZ			;    -  
  		GOTO	V_ZONE		;  
  		SKPNC			;     
  		GOTO	UB_AVT		;  
  		MOVF	U_IZM,W		;      -   
  		SUBWF	U_L,W		;      
  		SKPNZ			;    -  
  		GOTO	V_ZONE		;  
  		SKPNC			;     
  		GOTO	PR_AVT		;  
V_ZONE		BSF	PORTB,6		;  
		BSF	PORTB,7		;   
		MOVF	POZ,W		; ,   
		SUBWF	T_TP,w		;    
		SKPNZ			; ,   "0"
		GOTO	RET_0		;     -    
		DECF	T_UB,F		;  
		SKPNZ			; ,  "0"  ?
		INCF	T_UB,F		;  0,
		DECF	T_PR,F		;  1
		SKPNZ			;    
		INCF	T_PR,F		;  
		DECF	POZ,F		;   
		SKPNZ			;  :
		INCF	POZ,F		;   , 
		DECF	POZ,F		;   
		SKPNZ			;  :
		INCF	POZ,F		;   ,   ,   -  1
		MOVF	POZ,W		;   
		MOVWF	T_TP		;    ,     
		GOTO	RET_0		;    -  5    
		
;============================================================================
;			   
;============================================================================
UB_AVT		
		MOVF	POZ,W		;  
		MOVWF	T_POZ		;  
		BCF	PORTB,7		;   ""
		BSF	PORTB,6		;  "" ( )
		BTFSC	PORTA,5		; ,     (0  A5)
		GOTO	$+3		;  ,    -  ,    
		CALL	ZAPRET_UBAV	;  
		GOTO	RET_0		;       .
		MOVF	VREMY,W		;    
		ADDWF	VREMY,W		;  ,   0,5  
		SUBWF	POZ,W		;    
		BTFSS	STATUS,Z	; ,  ?
		GOTO	RET_0		;     - 
		BTFSS	PORTC,1		;    - 
		GOTO	UBAV_NEPR	;    
		BTFSC	VIDRABOT,3	; ,  
		GOTO	UBAV_NEPR	;   
		CALL	UBAV		;    
		MOVF	POZ,W		;   
		MOVWF	TEMP		;   
		CALL	SBROS_VREMY	;   ( )
		MOVF	TEMP,W		;   
		MOVWF	POZ		;  
		BSF	PORTC,3		;   
		CALL	INDIK_PERE	;  ""
		BTFSS	POZ,0		;  1 ...
		SKPNZ			;    
		GOTO	$-2		;   
		BTFSC	PORTA,4		; ,     
		GOTO	BLOK		;   -  
		MOVLW	0X1F		;  30
		ADDWF	TEMP,F		;   
		CALL	INDIK_PERE	;   ""
		BSF	PORTC,3		;   
		BTFSC	PORTA,4		;    ""
		GOTO	EXIT_UB		;   -   
		MOVF	TEMP,W		;   
		SUBWF	POZ,W		;   
		SKPZ			;    -   
		GOTO	$-6		; 
		GOTO	BLOK		; 
EXIT_UB		MOVLW	0X03		;  -     3
		SUBWF	T_POZ,W		;   
		MOVWF	POZ		;    
		BCF	PORTC,3		;   
		GOTO	RET_0		;   
						
;============================================================================
;			   
;============================================================================
PR_AVT		
		MOVF	POZ,W		;  
		MOVWF	T_POZ		;  
		BCF	PORTB,6		;   ""
		BSF	PORTB,7		;  "" ( )
		BTFSC	PORTC,0		; ,     (0  C0)
		GOTO	$+3		;  ,    -  ,    
		CALL	ZAPRET_PRIB	;  
		GOTO	RET_0		;       .
		MOVF	VREMY,W		;    
		ADDWF	VREMY,W		;  
		SUBWF	POZ,W		;    
		BTFSS	STATUS,Z	; ,  ?
		GOTO	RET_0		;     - 
		BTFSS	PORTC,1		;    - 
		GOTO	PRIB_NEPR	;    
		BTFSC	VIDRABOT,3	; ,  
		GOTO	PRIB_NEPR	;   
		CALL	PRIBAV		;    - 
		MOVF	POZ,W		;   
		MOVWF	TEMP		;   
		CALL	SBROS_VREMY	;   ( )
		MOVF	TEMP,W		;   
		MOVWF	POZ		;  
		BSF	PORTC,3		;   
		CALL	INDIK_PERE	;  ""
		BTFSS	POZ,1
		SKPNZ			; 
		GOTO	$-2		;  
		BTFSC	PORTA,4		;    ""
		GOTO	BLOK		;    - 
		MOVLW	0X1F		;  30
		ADDWF	TEMP,F		;   
		BSF	PORTC,3		;   
		CALL	INDIK_PERE	;   ""
		BTFSC	PORTA,4		;    ""
		GOTO	EXIT_UB		;   -   
		MOVF	TEMP,W		;   
		SUBWF	POZ,W		;   
		SKPZ			;    -   
		GOTO	$-6		; 
		GOTO	BLOK		; 
EXIT_PR		MOVLW	0X03		;  -     3
		SUBWF	T_POZ,W		;   
		MOVWF	POZ		;    
		BCF	PORTC,3		;   
		GOTO	RET_0		;   
		
;============================================================================
;			    
;============================================================================

UBAV_NEPR	BCF	HL3,5		;  
		BTFSS	PORTA,5		;   
		CALL	ZAPRET_UBAV	;     
		BTFSC	PORTA,5		; ,   0
		GOTO	$+3		;   ,   0
		BCF	PORTC,6		;   
		GOTO	RET_0		;     
		CALL	SBROS_VREMY	;  
		BSF	PORTC,6		;   
		BTFSC	SKAN_KEY,4	;    
		GOTO	$+3		;   ,   
		BCF	PORTC,6		;   
		GOTO	RET_0		;     .
		BTFSS	PORTC,1		;     (0 - )
		GOTO	$+5		;  ,  5 
		BTFSC	VIDRABOT,3	;    (1 - ) 
		GOTO	$+3		;   -  3 
		BCF	PORTC,6		;   
		GOTO	RET_0		;    
		MOVLW	0X81		;   
		MOVWF	HL1		;  ""
		CALL	PREOBR		;   
		MOVFW	U_IZM		;
		MOVWF	T_IND_UST	;     
		CALL	IND_UST		; 
		MOVF	U_H,W		;    
		SUBWF	U_IZM,W		;   U
		SKPNC			; ,  
		GOTO	UBAV_NEPR	;   
		BCF	PORTC,6		;   
		GOTO	RET_0		;  
		
PRIB_NEPR	BCF	HL3,5		;  
		BTFSS	PORTC,0		;   
		CALL	ZAPRET_PRIB	;     
		BTFSC	PORTC,0		; ,   0
		GOTO	$+3		;   ,   0
		BCF	PORTC,5		;   
		GOTO	RET_0		;     
		CALL	SBROS_VREMY	;  
		BSF	PORTC,5		;   
		BTFSC	SKAN_KEY,4	;    
		GOTO	$+3		;   ,   
		BCF	PORTC,5		;   
		GOTO	RET_0		;     .
		BTFSS	PORTC,1		;     (0 - )
		GOTO	$+5		;  ,  7 
		BTFSC	VIDRABOT,3	;    (1 - ) 
		GOTO	$+3		;   -  3 
		BCF	PORTC,5		;   
		GOTO	RET_0		;    
		MOVLW	0X48		;   
		MOVWF	HL1		;  ""
		CALL	PREOBR		;   
		MOVFW	U_IZM		;
		MOVWF	T_IND_UST	;     
		CALL	IND_UST		; 
		MOVF	U_IZM,W		;    
		SUBWF	U_L,W		;   U
		SKPNC			; ,  
		GOTO	PRIB_NEPR	;   
		BCF	PORTC,5		;   
		GOTO	RET_0		;  		
;============================================================================
;			   
;============================================================================
OBR_UST1	
		CALL	US_1		;   "-1"  
		CALL	SBROS_VREMY	;  
		MOVF	POZ,W		;   0 
		BTFSC	STATUS,Z	;    
		GOTO	$-2		; 
SKAN_KEY1	BTFSC	SKAN_KEY,6	;    ? 
		GOTO	$+5		; ,    
		BTFSS	SKAN_KEY,6	;   
		GOTO	$-1		; 
		INCF	U_USTAV1,F	;    1
		CALL	SBROS_VREMY	;   
		BTFSC	SKAN_KEY,3	;    
		GOTO	$+5		; ,    
		BTFSS	SKAN_KEY,3	;   
		GOTO	$-1		; 
		DECF	U_USTAV1,F	;   1
		CALL	SBROS_VREMY	;   
		BTFSS	SKAN_KEY,5	;    
		GOTO	NA_UST2		;       
		BTFSS	SKAN_KEY,4	;    
		CALL	W_EEPROM	;   -  
		BTFSC	POZ,0		;   
		GOTO	$+5		;  1 -  . 
		MOVF	U_USTAV1,W	;    
		MOVWF	T_IND_UST	;     
		CALL	IND_UST		;  
		GOTO	$+2		;     "-1"
		CALL	US_1		;   "-1"
		MOVLW	0X0A		;    10
		XORWF	POZ,W		;    
		BTFSC	STATUS,Z	;   10  -
		GOTO	START		;    
		GOTO	SKAN_KEY1	;    
NA_UST2		CALL	W_EEPROM	;    
		GOTO	OBR_UST2	;      
US_1		MOVLW	0XA1		;   
		MOVWF	HL1		;  ""
		MOVLW	0X3C		;   
		MOVWF	HL2		; ""
		MOVLW	0XF7		;  
		MOVWF	HL3		; "-"
		MOVLW	0XEB		;  
		MOVWF	HL4		; "1"
		RETURN
;============================================================================
;			   
;============================================================================
OBR_UST2	
		CALL	US_2		;   "-2"  
		CALL	SBROS_VREMY	;  
		MOVF	POZ,W		;   0 
		BTFSC	STATUS,Z	;    
		GOTO	$-2		; 
SKAN_KEY2	BTFSC	SKAN_KEY,6	;    ? 
		GOTO	$+5		; ,    
		BTFSS	SKAN_KEY,6	;   
		GOTO	$-1		; 
		INCF	U_USTAV2,F	;    2
		CALL	SBROS_VREMY	;   
		BTFSC	SKAN_KEY,3	;    
		GOTO	$+5		; ,    
		BTFSS	SKAN_KEY,3	;   
		GOTO	$-1		; 
		DECF	U_USTAV2,F	;   1
		CALL	SBROS_VREMY	;   
		BTFSS	SKAN_KEY,7	;    
		GOTO	NA_UST1		;       
		BTFSS	SKAN_KEY,4	;    
		CALL	W_EEPROM	;   -  
		BTFSC	POZ,0		;   
		GOTO	$+5		;  1 -  . 
		MOVF	U_USTAV2,W	;    
		MOVWF	T_IND_UST	;     
		CALL	IND_UST		;  
		GOTO	$+2		;     "-1"
		CALL	US_2		;   "-2"
		MOVLW	0X0A		;    10
		XORWF	POZ,W		;    
		BTFSC	STATUS,Z	;   10  -
		GOTO	START		;    
		GOTO	SKAN_KEY2	;    
NA_UST1		CALL	W_EEPROM	;    
		GOTO	OBR_UST1	;      
US_2		MOVLW	0XA1		;   
		MOVWF	HL1		;  ""
		MOVLW	0X3C		;   
		MOVWF	HL2		; ""
		MOVLW	0XF7		;  
		MOVWF	HL3		; "-"
		MOVLW	0X32		;  
		MOVWF	HL4		; "2"
		RETURN

;============================================================================
;			 
;============================================================================
OBR_KP1		
		CALL	POGR1		;  "-1"
		CALL	SBROS_VREMY
		BTFSS	POZ,1
		GOTO	$-1
RET_KP1		CALL	SBROS_VREMY		
SK_KEY_KP1	BTFSS	SKAN_KEY,5	; 
		GOTO	OBR_KP2
		BTFSS	SKAN_KEY,6	; 
		GOTO	PLUS_KP1
		BTFSS	SKAN_KEY,3	; 
		GOTO	MINUS_KP1
		BTFSC	POZ,3		;   ?
		GOTO	AVTOMAT		;    -  
		MOVFW	Z_KP1		;  ?
		MOVWF	T_IND_UST
		BTFSC	POZ,0
		GOTO	$+4
		MOVLW	0X5C		; "."
		MOVWF	HL1
		CALL	IND_UST
		BTFSC	POZ,0
		CALL	POGR1
		GOTO	SK_KEY_KP1
PLUS_KP1	BTFSS	SKAN_KEY,6
		GOTO	$-1
		INCF	Z_KP1,F
		MOVFW	Z_KP1
		SUBLW	0X14		; >20?
		SKPNC	
		GOTO	$+3
		MOVLW	0X14
		MOVWF	Z_KP1
		GOTO	RET_KP1
MINUS_KP1	BTFSS	SKAN_KEY,3
		GOTO	$-1
		TSTF	Z_KP1
		SKPNZ	
		GOTO	RET_KP1
		DECF	Z_KP1
		GOTO	RET_KP1
POGR1		MOVLW	0X68
		MOVWF	HL1
		MOVLW	0X7C
		MOVWF	HL2
		MOVLW	0XF7
		MOVWF	HL3
		MOVLW	0XEB
		MOVWF	HL4
		RETURN
;-------------------------------------------------------------------
OBR_KP2
		CALL	POGR2		;  "-1"
		CALL	SBROS_VREMY
		BTFSS	POZ,1
		GOTO	$-1
RET_KP2		CALL	SBROS_VREMY		
SK_KEY_KP2	BTFSS	SKAN_KEY,7	; 
		GOTO	OBR_KP1
		BTFSS	SKAN_KEY,6	; 
		GOTO	PLUS_KP2
		BTFSS	SKAN_KEY,3	; 
		GOTO	MINUS_KP2
		BTFSC	POZ,3		;   ?
		GOTO	AVTOMAT		;    -  
		MOVFW	Z_KP2		;  ?
		MOVWF	T_IND_UST
		BTFSC	POZ,0
		GOTO	$+4
		MOVLW	0X5C		; "."
		MOVWF	HL1
		CALL	IND_UST
		BTFSC	POZ,0
		CALL	POGR2
		GOTO	SK_KEY_KP2
PLUS_KP2	BTFSS	SKAN_KEY,6
		GOTO	$-1
		INCF	Z_KP2,F
		MOVFW	Z_KP2
		SUBLW	0X14		; >20?
		SKPNC	
		GOTO	$+3
		MOVLW	0X14
		MOVWF	Z_KP2
		GOTO	RET_KP2
MINUS_KP2	BTFSS	SKAN_KEY,3
		GOTO	$-1
		TSTF	Z_KP2
		SKPNZ	
		GOTO	RET_KP2
		DECF	Z_KP2
		GOTO	RET_KP2
POGR2		MOVLW	0X68
		MOVWF	HL1
		MOVLW	0X7C
		MOVWF	HL2
		MOVLW	0XF7
		MOVWF	HL3
		MOVLW	0X32
		MOVWF	HL4
		RETURN
		
;============================================================================
;			  
;============================================================================
REZ_AVT	
		CALL	IND_SPOS	;  ""
		CALL	SBROS_VREMY	;  
		MOVF	POZ,W		;   0 
		BTFSC	STATUS,Z	;    
		GOTO	$-2		; 
		CALL	SBROS_VREMY	;   
SK_KEY_REZ	BTFSS	SKAN_KEY,6	;     
		BSF	VIDRABOT,3	;   
		BTFSS	SKAN_KEY,3	;    
		BCF	VIDRABOT,3	;   
		BTFSS	SKAN_KEY,4	;     
		CALL	W_EEPROM	;    
		BTFSS	SKAN_KEY,7	;    
		GOTO	NA_PAUSU	;     
		BTFSS	VIDRABOT,3	; ,   
		CALL	PRERIV		; 
		BTFSC	VIDRABOT,3	;  
		CALL	NEPRERIV	; 
		BTFSC	POZ,3		; ,     7 
		GOTO	AVTOMAT		;    
		GOTO	SK_KEY_REZ	;  ,     ,    7 
NA_PAUSU	CALL	W_EEPROM	;  
		GOTO	SET_VREMY	;   
IND_SPOS	MOVLW	0X3C		;   
		MOVWF	HL1		;  "C"
		MOVLW	0X68		;   
		MOVWF	HL2		; ""
		MOVLW	0X28		;  
		MOVWF	HL3		; "0"
		MOVLW	0X3C		;  
		MOVWF	HL4		; ""
		RETURN		
PRERIV		MOVLW	0X68		;   
		MOVWF	HL1		;  ""
		MOVLW	0X70		;   
		MOVWF	HL2		; ""
		MOVLW	0X34		;  
		MOVWF	HL3		; ""
		MOVLW	0X70		;  
		MOVWF	HL4		; ""
		RETURN
NEPRERIV	MOVLW	0X61		;   
		MOVWF	HL1		;  ""
		MOVLW	0X34		;   
		MOVWF	HL2		; ""
		MOVLW	0X68		;  
		MOVWF	HL3		; ""
		MOVLW	0X70		;  
		MOVWF	HL4		; ""
		RETURN
;============================================================================
;			 
;============================================================================
SET_ZONA
		MOVLW	0XA2		;   
		MOVWF	HL1		;  "3"
		MOVLW	0X28		;   
		MOVWF	HL2		; "0"
		MOVLW	0X61		;  
		MOVWF	HL3		; "H"
		MOVLW	0X60		;  
		MOVWF	HL4		; "A"
		CALL	SBROS_VREMY	;  
		MOVF	POZ,W		;   0 
		BTFSC	STATUS,Z	;    
		GOTO	$-2		; 
		CALL	SBROS_VREMY	;   
SKAN_KEY4	BTFSS	SKAN_KEY,6	;    
		INCF	ZONA,F		;   1
		BTFSS	SKAN_KEY,6	;      
		GOTO	$-1		; ,  
		MOVLW	0X15		;    20 ()
		SUBWF	ZONA,W		;    -   
		BTFSC	STATUS,Z	;   0
		DECF	ZONA,F		;    21 -  20:   
		BTFSS	SKAN_KEY,3	;    
		DECF	ZONA,F		;   1
		BTFSS	SKAN_KEY,3	;   ,
		GOTO	$-1		; ,  
		BTFSC	STATUS,Z	; ,   0  ?
		INCF	ZONA,F		;  0 -   .
		BTFSS	SKAN_KEY,5	;    
		GOTO	SET_VREMY	;    
		BTFSS	SKAN_KEY,4	;    
		CALL	W_EEPROM	;   -  
		MOVF	ZONA,W		;   
		MOVWF	T_IND_UST	;     
		CALL	IND_UST		;  
		MOVLW	0X05		;    10
		XORWF	POZ,W		;    
		BTFSC	STATUS,Z	;   10  -
		GOTO	START		;   ,   
		BTFSS	SKAN_KEY,6	; ,
		CALL	SBROS_VREMY	;   
		BTFSS	SKAN_KEY,3	;   ,
		CALL	SBROS_VREMY	;   
		GOTO	SKAN_KEY4	;    		

;============================================================================
;			  
;============================================================================
SET_VREMY
		CALL	IND_PAUS	;  ""
		CALL	SBROS_VREMY	;  
		MOVF	POZ,W		;   0 
		BTFSC	STATUS,Z	;    
		GOTO	$-2		; 
		CALL	SBROS_VREMY	;   
SKAN_KEY3	BTFSC	SKAN_KEY,6	;    ? 
		GOTO	NO_KEY_UP	;   ,   
		INCF	VREMY,F		;   1		
UP_PO10		CALL	SBROS_VREMY	;   
		BTFSC	POZ,1		;  ? 
		GOTO	$+3		;   ,   
		BTFSS	SKAN_KEY,6	;   ?  ,  
		GOTO	$-3		;   ,    -   (   )
		BTFSC	SKAN_KEY,6	;  ,   ?
		GOTO	NO_KEY_UP	;    - 
		MOVLW	0X0A		;    10
		ADDWF	VREMY,F		;    10
		MOVF	VREMY,W		;   
		MOVWF	T_IND_UST	;     
		CALL	IND_UST		;   
		MOVF	VREMY,W		;     (  )
		SUBLW	0XF1		;  240
		SKPNC			; ,    ?
		GOTO	UP_PO10		;   - 
		MOVLW	0XF0		;    -  240:   
		MOVWF	VREMY		;   
NO_KEY_UP	BTFSC	SKAN_KEY,3	;    ? 
		GOTO	NO_KEY_DOWN	;   ,   
		DECF	VREMY,F		;   1		
DOWN_PO10	CALL	SBROS_VREMY	;   
		BTFSC	POZ,1		;  ? 
		GOTO	$+3		;   ,   
		BTFSS	SKAN_KEY,3	;   ?  ,  
		GOTO	$-3		;   ,    -   (   )
		BTFSC	SKAN_KEY,3	;  ,   ?
		GOTO	NO_KEY_DOWN	;    - 
		MOVLW	0x0F		;  15
		SUBWF	VREMY,W		;   
		SKPC			; ,    ?
		GOTO	NO_KEY_DOWN	; 
		MOVLW	0X0A		;    10
		SUBWF	VREMY,F		;    10
		MOVF	VREMY,W		;   
		MOVWF	T_IND_UST	;     
		CALL	IND_UST		;   
		GOTO	DOWN_PO10	;   - 
		MOVLW	0X05		;    -  5:   
		MOVWF	VREMY		;   
NO_KEY_DOWN	MOVF	VREMY,W		;     (  )
		SUBLW	0XF0		;  240
		SKPNC			; ,    ?
		GOTO	$+3		;   
		MOVLW	0XF0		;    -  240:   
		MOVWF	VREMY		;   
		MOVF	VREMY,W		;   
		SUBLW	0x05		;  5
		SKPC			; ,    ?
		GOTO	$+3		;   - 
		MOVLW	0X05		;    -  5:   
		MOVWF	VREMY		;   
		BTFSS	SKAN_KEY,7	;    
		GOTO	SET_ZONA	;    
		BTFSS	SKAN_KEY,5	;    
		GOTO	ExREZ_AVT	;        
		BTFSS	SKAN_KEY,4	;    
		CALL	W_EEPROM	;   -  
		BTFSS	SKAN_KEY,4	;  
		GOTO	$-1		; 
		MOVF	VREMY,W		;   
		MOVWF	T_IND_UST	;     
		CALL	IND_UST		; 
		MOVLW	0X05		;    10
		XORWF	POZ,W		;    
		BTFSC	STATUS,Z	;   10  -
		GOTO	START		;   ,   
		BTFSS	SKAN_KEY,6	; ,
		CALL	SBROS_VREMY	;   
		BTFSS	SKAN_KEY,3	;   ,
		CALL	SBROS_VREMY	;   
		GOTO	SKAN_KEY3	;    
ExREZ_AVT	CALL	W_EEPROM	;    
		GOTO	REZ_AVT		;   
IND_PAUS	MOVLW	0X68		;   
		MOVWF	HL1		;  ""
		MOVLW	0X60		;   
		MOVWF	HL2		; ""
		MOVLW	0XA1		;  
		MOVWF	HL3		; ""
		MOVLW	0XA2		;  
		MOVWF	HL4		; "3"
		RETURN

;============================================================================
;			  
;============================================================================		
PREOBR		
		BCF	INTCON,GIE	;  
		MOVFW	PCLATH
		MOVWF	T_TEMP
		MOVLW	0XC7		;    
		ANDWF	ADCON0,F	;  5-3 ,  , 0		
		BSF	ADCON0,0	;  
		CALL	PAUZ_ACP	;   
		BSF	ADCON0,2	;   
		BTFSC	ADCON0,2	; ,  
		GOTO	$-1		;  , 
		MOVF	ADRESH,W	;     ,   
		MOVWF	U_IZM		;  
		BSF	ADCON0,3	;      - 1
		BCF	ADCON0,4
		BCF	ADCON0,5
		BSF	ADCON0,0	;  
		CALL	PAUZ_ACP	;    
		BSF	ADCON0,2	;   
		BTFSC	ADCON0,2	; ,  
		GOTO	$-1		;  , 
		MOVF	ADRESH,W	;     ,   
		MOVWF	U_KP1		;  
		BSF	ADCON0,3
		BSF	ADCON0,4	;      - 3
		BCF	ADCON0,5
		BSF	ADCON0,0	;  
		CALL	PAUZ_ACP	;   
		BSF	ADCON0,2	;   
		BTFSC	ADCON0,2	; ,  
		GOTO	$-1		;  , 
		MOVF	ADRESH,W	;     ,   
		MOVWF	U_KP2		;  
		MOVLW	0xF0	
		ANDWF	U_KP1,F
		ANDWF	U_KP2,F
		SWAPF	U_KP1,F
		SWAPF	U_KP2,F
E_KP1		TSTF	Z_KP1		;   0
		SKPNZ			;   1
		GOTO	E_KP2		;   0 -     
		TSTF	U_KP1		;  
		SKPNZ			;   
		GOTO	E_KP2		;  0     
		MOVFW	Z_KP1		;   
		MOVWF	T_TEMP		;   
		CLRW			;  
		ADDWF	U_KP1,W		;    
		DECF	T_TEMP,F	;  ,  
		SKPZ			;   
		GOTO	$-3		;     - 
		MOVWF	U_KP1		;   : ,   16    
E_KP2		TSTF	Z_KP2		;   0
		SKPNZ			;   2
		GOTO	E_KP1_KP2	;   0 -   
		TSTF	U_KP2		;  
		SKPNZ			;   
		GOTO	E_KP1_KP2	;  0   
		MOVFW	Z_KP2		;   
		MOVWF	T_TEMP		;   
		CLRW			;  
		ADDWF	U_KP2,W		;    
		DECF	T_TEMP,F	;  ,  
		SKPZ			;   
		GOTO	$-3		;     - 
		MOVWF	U_KP2		;   : ,   16    
	
;----------------------------------------------------------------------------------------
E_KP1_KP2	MOVFW	U_KP1
		SUBWF	U_IZM,F
		MOVFW	U_KP2
		SUBWF	U_IZM,F
		TSTF	U_IZM
		SKPNZ		
		GOTO	MEN_60		;   0,     59 
;		MOVF	ADRESH,W	;  
		MOVFW	U_IZM
		SUBLW	0X51		;   59 
		SKPNC			;   60  
		GOTO	MEN_60		;  ,   59
		MOVLW	0X51		;  60 
		SUBWF	U_IZM,W		;  
		MOVWF	TEMP		;   
		CALL	DESHIFR		;    
		MOVWF	U_IZM		;    
		MOVFW	T_TEMP
		MOVWF	PCLATH
		
		BCF	ADCON0,0	;  
		BSF	INTCON,GIE	;  
		RETURN
MEN_60		MOVLW	0X3B		;  59
		MOVWF	U_IZM		;    59
		BSF	INTCON,GIE	;  
		RETURN			;
PAUZ_ACP	MOVLW	0xFC
		MOVWF	TEMP
		INCF	TEMP,F
		SKPZ
		GOTO	$-2
		Return
;============================================================================
;			 ""
;============================================================================
PRIBAV	
		MOVLW	0X01		;  1  
		BTFSS	PORTC,0		; ,      
		CALL	ZAPRET_PRIB	;    -    
		XORLW	0X00		;    
		BTFSC	STATUS,Z	;  0
		RETURN			; ,  
		MOVF	HL1,W		;  
		MOVWF	T_HL1		;  
		MOVF	HL2,W		; 
		MOVWF	T_HL2		;  
		MOVF	HL3,W		; 
		MOVWF	T_HL3		;  
		MOVF	HL4,W		; 
		MOVWF	T_HL4		;
		MOVLW	0X68		; 
		MOVWF	HL1		;  
		MOVLW	0X70		; 
		MOVWF	HL2		; "U"
		MOVLW	0X29		;  
		MOVWF	HL3		;  
		MOVLW	0X24		; 
		MOVWF	HL4		;
		BSF	PORTC,5		;   ""
		MOVF	POZ,W		;     
		MOVWF	TEMP		;   
		CALL	SBROS_VREMY	;
		MOVF	TEMP,W		;   
		MOVWF	POZ		;   
		BTFSS	POZ,0
		GOTO	$-1
		MOVF	T_HL1,W		;  
		MOVWF	HL1		;  
		MOVF	T_HL2,W		;   
		MOVWF	HL2		;  
		MOVF	T_HL3,W		; 
		MOVWF	HL3		;
		MOVF	T_HL4,W		;
		MOVWF	HL4		;
		BCF	PORTC,5		;   ""
		RETURN			;  , .

;============================================================================
;			 ""
;============================================================================
UBAV	
		MOVLW	0X01		;  1  
		BTFSS	PORTA,5		; ,      
		CALL	ZAPRET_UBAV	;    -    
		XORLW	0X00		;    
		BTFSC	STATUS,Z	;  0
		RETURN			;   , .
		MOVF	HL1,W		;  
		MOVWF	T_HL1		;  
		MOVF	HL2,W		; 
		MOVWF	T_HL2		;  
		MOVF	HL3,W		; 
		MOVWF	T_HL3		;  
		MOVF	HL4,W		; 
		MOVWF	T_HL4		;
		MOVLW	0XA1		; 
		MOVWF	HL1		;  
		MOVLW	0X24		; 
		MOVWF	HL2		; ""
		MOVLW	0X60		;  
		MOVWF	HL3		;  
		MOVLW	0X20		; 
		MOVWF	HL4		;
		BSF	PORTC,6		;   ""
		MOVF	POZ,W		;    
		MOVWF	TEMP		;   
		CALL	SBROS_VREMY	;
		MOVF	TEMP,W		;   
		MOVWF	POZ		;   
		BTFSS	POZ,0
		GOTO	$-1
		MOVF	T_HL1,W		;  
		MOVWF	HL1		;  
		MOVF	T_HL2,W		;   
		MOVWF	HL2		;  
		MOVF	T_HL3,W		; 
		MOVWF	HL3		;
		MOVF	T_HL4,W		;
		MOVWF	HL4		;
		BCF	PORTC,6		;   ""
		RETURN

;============================================================================
;			  
;============================================================================
ZAPRET_PRIB
		BTFSC	PORTC,0		;    
		RETURN			;    - 
		MOVLW	0XFE		; 
		MOVWF	HL1		;      ( )
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;    ""
		GOTO	$-1		; 
		CLRW
		RETURN			;  

;============================================================================
;			  
;============================================================================
ZAPRET_UBAV	
		BTFSC	PORTA,5		;    
		RETURN			;    - 
		MOVLW	0XBF		; 
		MOVWF	HL1		;      ( )
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;    ""
		GOTO	$-1		; 
		CLRW
		RETURN

;============================================================================
;			U   60
;============================================================================
U_MEN60
		BSF	PORTC,2		;   U<60v
		MOVLW	0XF7		; 
		MOVWF	HL2		; "-60"
		MOVLW	0X24		;  
		MOVWF	HL3		;  
		MOVLW	0X28		;  
		MOVWF	HL4		; 
		;BCF	PORTC,5		;  
		CALL	SBROS_VREMY	;   -  
		RETURN			;

;============================================================================
;			
;============================================================================	
BLOK		
		MOVLW	0X25		; 
		MOVWF	HL1		;  
		MOVLW	0X3D		; 
		MOVWF	HL2		; "bloc"
		MOVLW	0X28		;  
		MOVWF	HL3		;  
		MOVLW	0X3C		; 
		MOVWF	HL4		;
		BCF	PORTC,3		;   
		BSF	PORTC,4		;   
		BTFSS	SKAN_KEY,4	;    
		GOTO	EXIT_B		;  -   
		GOTO	$-2		;  ,   
EXIT_B		BCF	PORTC,4		;   
		CALL	SBROS_VREMY	;  
		GOTO	RET_0		; 

;============================================================================
;			  
;============================================================================	
IND_UST		
		BCF	INTCON,GIE	;  
		CLRF	T_HL2		;   
		CLRF	T_HL3		;  
		CLRF	T_HL4		;   
		MOVLW	0XC8		;    200 ()
		SUBWF	T_IND_UST,W	;     (  )
		BTFSS	STATUS,C	;  
		GOTO	MEN200		;    200
		MOVLW	0X02		;    2
		MOVWF	T_HL2		;      
		MOVLW	0XC8		;  200 ()
		SUBWF	T_IND_UST,F	;    
MEN200		MOVLW	0X64		;    100 ()
		SUBWF	T_IND_UST,F	;     
		BTFSS	STATUS,C	;  
		GOTO	MEN100		;  100? 
		MOVLW	0X01		;   -   = 1
		MOVWF	T_HL2		;   1
		MOVLW	0X64		;   100
		SUBWF	T_IND_UST,F	;  
MEN100		MOVLW	0X64		;   100
		ADDWF	T_IND_UST,F	;  
		MOVLW	0X0A		;    
NE_WSE_0	SUBWF	T_IND_UST,1	;       
		BTFSS	STATUS,C	;  , 
		GOTO	MEN10		;   ,  ,   
		INCF	T_HL3,1		;   -   
		GOTO	NE_WSE_0	;   
MEN10		MOVLW	0X0A		;    10
		ADDWF	T_IND_UST,F	;   
		SUBWF	T_HL3,W		; ,    10 ?
		BTFSC	STATUS,Z	;   -
		CLRF	T_HL3		; 
		MOVF	T_IND_UST,W	;   
		MOVWF	T_HL4		;    
		;BCF	INTCON,GIE	;  
		MOVF	T_HL2,W		;   ,
		MOVWF	TEMP
		CALL	DESH_ZN
		MOVWF	HL2		;      
		MOVF	T_HL3,W		;      
		MOVWF	TEMP
		CALL	DESH_ZN
		MOVWF	HL3		;   
		MOVF	T_HL4,W		;  
		MOVWF	TEMP
		CALL	DESH_ZN
		MOVWF	HL4		; 
		BSF	INTCON,GIE	;  
		RETURN		 	;  !
		
;============================================================================
;			 
;============================================================================
INDIK_PERE
		MOVLW	0X68		; 
		MOVWF	HL1		;  
		MOVLW	0X34		; 
		MOVWF	HL2		; ""
		MOVLW	0X70		;  
		MOVWF	HL3		;  
		MOVLW	0X34		; 
		MOVWF	HL4		;
		RETURN

;============================================================================
;			  "" 
;============================================================================
ZAVOD_SET	;  = 100,  = "..",  = 5.,  = 1.,   = "",  - 0
		MOVLW	0X28		;   
		MOVWF	HL1		;  "O"
		MOVLW	0X24		;   
		MOVWF	HL2		; ""
		MOVLW	0X61		;  
		MOVWF	HL3		; ""
		MOVLW	0XA1		;  
		MOVWF	HL4		; ""
		BCF	PORTB,7
		BCF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  ""
		GOTO	$-1		;  
		MOVLW	0XF1		;     
		MOVWF	VIDRABOT	;    - .
		MOVLW	0X64		;    100 ()
		MOVWF	U_USTAV1	;   1 
		MOVWF	U_USTAV2	;    
		CLRF	ZONA		;  
		INCF	ZONA,F		;   = 1
		MOVLW	0X05		;    5 -  
		MOVWF	VREMY		;   = 5: 
		CLRF	Z_KP1		;  
		CLRF	Z_KP2		;    
		CALL	W_EEPROM	;    
		MOVLW	0XA1		;
		MOVWF	HL1		;  ""
		MOVLW	0X3C		;   
		MOVWF	HL2		; ""
		MOVLW	0XF7		;  
		MOVWF	HL3		; "-"
		MOVLW	0XEB		;  
		MOVWF	HL4		; "1"
		BSF	PORTB,7
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "-1"
		GOTO	$-1		;  
		MOVLW	0X28		;
		MOVWF	HL1		;  "0"
		MOVLW	0XEB		;   
		MOVWF	HL2		; "1"
		MOVLW	0X28		;  
		MOVWF	HL3		; "0"
		MOVLW	0X28		;  
		MOVWF	HL4		; "0"
		BCF	PORTB,7
		BSF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "0100"
		GOTO	$-1		;  
		MOVLW	0XA1		;
		MOVWF	HL1		;  ""
		MOVLW	0X3C		;   
		MOVWF	HL2		; ""
		MOVLW	0XF7		;  
		MOVWF	HL3		; "-"
		MOVLW	0X32		;  
		MOVWF	HL4		; "2"
		BSF	PORTB,7
		BCF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "-2"
		GOTO	$-1		;  
		MOVLW	0X28		;
		MOVWF	HL1		;  "0"
		MOVLW	0XEB		;   
		MOVWF	HL2		; "1"
		MOVLW	0X28		;  
		MOVWF	HL3		; "0"
		MOVLW	0X28		;  
		MOVWF	HL4		; "0"
		BCF	PORTB,7
		BSF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "0100"
		GOTO	$-1		;  
		MOVLW	0XA2		;
		MOVWF	HL1		;  "3"
		MOVLW	0X28		;   
		MOVWF	HL2		; "0"
		MOVLW	0X61		;  
		MOVWF	HL3		; ""
		MOVLW	0X60		;  
		MOVWF	HL4		; ""
		BSF	PORTB,7
		BCF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "30HA"
		GOTO	$-1		;  
		MOVLW	0X28		;
		MOVWF	HL1		;  "0"
		MOVLW	0X28		;   
		MOVWF	HL2		; "0"
		MOVLW	0X28		;  
		MOVWF	HL3		; "0"
		MOVLW	0XEB		;  
		MOVWF	HL4		; "1"
		BCF	PORTB,7
		BSF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "0001"
		GOTO	$-1		;  
		MOVLW	0X68		;
		MOVWF	HL1		;  ""
		MOVLW	0X60		;   
		MOVWF	HL2		; ""
		MOVLW	0XA1		;  
		MOVWF	HL3		; ""
		MOVLW	0XA2		;  
		MOVWF	HL4		; "3"
		BSF	PORTB,7
		BCF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  ""
		GOTO	$-1		;  
		MOVLW	0X28		;
		MOVWF	HL1		;  "0"
		MOVLW	0X28		;   
		MOVWF	HL2		; "0"
		MOVLW	0X28		;  
		MOVWF	HL3		; "0"
		MOVLW	0XA4		;  
		MOVWF	HL4		; "5"
		BCF	PORTB,7
		BSF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "0001"
		GOTO	$-1		;  
		MOVLW	0XA1		;
		MOVWF	HL1		;  ""
		MOVLW	0X68		;   
		MOVWF	HL2		; ""
		MOVLW	0X70		;  
		MOVWF	HL3		; ""
		MOVLW	0X60		;  
		MOVWF	HL4		; ""
		BSF	PORTB,7
		BCF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  ""
		GOTO	$-1		;  
		MOVLW	0X68		;
		MOVWF	HL1		;  ""
		MOVLW	0X70		;   
		MOVWF	HL2		; ""
		MOVLW	0X34		;  
		MOVWF	HL3		; ""
		MOVLW	0X70		;  
		MOVWF	HL4		; ""
		BCF	PORTB,7
		BSF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "-1"
		GOTO	$-1		;  
		MOVLW	0X68		;
		MOVWF	HL1		;  ""
		MOVLW	0X28		;   
		MOVWF	HL2		; ""
		MOVLW	0X7C		;  
		MOVWF	HL3		; ""
		MOVLW	0XEB		;  
		MOVWF	HL4		; "1"
		BSF	PORTB,7
		BCF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "-1"
		GOTO	$-1		;  
		MOVLW	0X28		;
		MOVWF	HL1		;  "0"
		MOVLW	0X28		;   
		MOVWF	HL2		; "0"
		MOVLW	0X28		;  
		MOVWF	HL3		; "0"
		MOVLW	0X28		;  
		MOVWF	HL4		; "0"
		BCF	PORTB,7
		BSF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "-1"
		GOTO	$-1		;  
		MOVLW	0X68		;
		MOVWF	HL1		;  ""
		MOVLW	0X28		;   
		MOVWF	HL2		; "O"
		MOVLW	0X7C		;  
		MOVWF	HL3		; ""
		MOVLW	0X32		;  
		MOVWF	HL4		; "2"
		BSF	PORTB,7
		BCF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "-1"
		GOTO	$-1		;  
		MOVLW	0X28		;
		MOVWF	HL1		;  "0"
		MOVLW	0X28		;   
		MOVWF	HL2		; "0"
		MOVLW	0X28		;  
		MOVWF	HL3		; "0"
		MOVLW	0X28		;  
		MOVWF	HL4		; "0"
		BCF	PORTB,7
		BSF	PORTB,6
		CALL	SBROS_VREMY	;   
		BTFSS	POZ,0		;  "-1"
		GOTO	$-1		;  
		BSF	PORTB,7		;  
		BSF	PORTB,6		;   
		GOTO	START		;    

;============================================================================
;		  
;============================================================================
R_EEPROM	
		BCF	INTCON,GIE	;  
		CLRF	TEMP		;  
		MOVF	TEMP,W		;
		CALL	POVTOR_R	;
		MOVWF	VIDRABOT	;      
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	POVTOR_R	;
		MOVWF	U_USTAV1	;
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	POVTOR_R	;
		MOVWF	U_USTAV2	;
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	POVTOR_R	;
		MOVWF	ZONA		;
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	POVTOR_R	;
		MOVWF	VREMY		;
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	POVTOR_R	;
		MOVWF	Z_KP1		;
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	POVTOR_R	;
		MOVWF	Z_KP2		;
		RETURN			;
POVTOR_R	BSF	STATUS,RP1	;  
		BCF	STATUS,RP0	;  
		MOVWF	EEADR		;     
		BSF	STATUS,RP0	;   
		BCF	EECON1,EEPGD	;   
		BSF	EECON1,RD	;  
		BCF	STATUS,RP0	;   2
		MOVF	EEDATA,W	;     
		BCF	STATUS,RP1	;   
		BSF	INTCON,GIE	;  
		RETURN			;
		
;============================================================================
;		  
;============================================================================
W_EEPROM	
		BCF	INTCON,GIE	;  
		CLRF	TEMP		;
		MOVF	TEMP,W		;
		CALL	S_ADREE		;
		MOVF	VIDRABOT,W	;
		CALL	S_DATAEE	;
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	S_ADREE		;
		MOVF	U_USTAV1,W	;
		CALL	S_DATAEE	;
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	S_ADREE		;
		MOVF	U_USTAV2,W	;
		CALL	S_DATAEE	;
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	S_ADREE		;
		MOVF	ZONA,W	;
		CALL	S_DATAEE	;
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	S_ADREE		;
		MOVF	VREMY,W	;
		CALL	S_DATAEE	;
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	S_ADREE		;
		MOVF	Z_KP1,W	;
		CALL	S_DATAEE	;
		INCF	TEMP,F		;
		MOVF	TEMP,W		;
		CALL	S_ADREE		;
		MOVF	Z_KP2,W	;
		CALL	S_DATAEE	;
		BSF	INTCON,GIE	;  
		RETURN			;
S_ADREE		BSF	STATUS,RP1	;
		BSF	STATUS,RP0	;
		BTFSC	EECON1,WR	;
		GOTO	$-1		;
		BCF	STATUS,RP0	;
		MOVF	TEMP,W		;
		MOVWF	EEADR		;
		BCF	STATUS,RP0	;
		BCF	STATUS,RP1	;
		RETURN			;
S_DATAEE	BSF	STATUS,RP1	;
		MOVWF	EEDATA		;
		BSF	STATUS,RP0	;
		BCF	EECON1,EEPGD	;
		BSF	EECON1,WREN	;
		;BCF	INTCON,GIE	;
		MOVLW	0X55		;
		MOVWF	EECON2		;
		MOVLW	0XAA		;
		MOVWF	EECON2		;
		BSF	EECON1,WR	;
		;BSF	INTCON,GIE	;
		BSF	EECON1,WREN	;
		BCF	STATUS,RP0	;
		BCF	STATUS,RP1	;
		RETURN			;

;============================================================================
;		  
;============================================================================
SBROS_VREMY	
		MOVLW	0x07		;    
		MOVWF	BRES_HI		;    
		MOVLW	0xA1 +1		;     (,      1)
		MOVWF	BRES_MID	;    
		MOVLW	0x20		;    
		MOVWF	BRES_LO		;    
		BCF	INTCON,T0IF	;   
		CLRF	POZ		;   
		RETURN

;============================================================================
;		 
;============================================================================
DESH_ZN		ORG	0x6FD
		MOVLW	0x07
		MOVWF	PCLATH
		MOVF	TEMP,W
		ADDWF	PCL,F
		RETLW	0X28
		RETLW	0XEB
		RETLW	0X32
		RETLW	0XA2
		RETLW	0XE1
		RETLW	0XA4
		RETLW	0X24
		RETLW	0XEA
		RETLW	0X20
		RETLW	0XA0	; 0,1,2,3,4,5,6,7,8,9
		RETLW	0X60
		RETLW	0X25
		RETLW	0X3C
		RETLW	0X34
		RETLW	0X61
		RETLW	0X35
		RETLW	0X74
		RETLW	0X70
		RETLW	0X29
		RETLW	0X3D	; A,b,C,E,H,t,F,P,U,L
		RETLW	0X24
		RETLW	0X28
		RETLW	0X68
		RETLW	0XA1
		RETLW	0XA2
		RETLW	0X7C
		RETLW	0XE1
		RETLW	0XF7
		RETLW	0XBF
		RETLW	0XFE	; ,,,,,,,-,_,~
		RETLW	0XFF	; 

;============================================================================
;		 
;============================================================================
DESHIFR		ORG 0X7FD		;    ,      600h
		MOVLW	0X08		;    
		MOVWF	PCLATH		;   
		MOVF	TEMP,W		;       60 
		ADDWF	PCL,F		;     
		RETLW	D'60'
		RETLW	D'60'
		RETLW	D'61'
		RETLW	D'62'
		RETLW	D'62'
		RETLW	D'63'
		RETLW	D'63'
		RETLW	D'64'
		RETLW	D'64'
		RETLW	D'65'
		RETLW	D'65'
		RETLW	D'66'
		RETLW	D'66'
		RETLW	D'67'
		RETLW	D'67'
		RETLW	D'68'
		RETLW	D'68'
		RETLW	D'69'
		RETLW	D'69'
		RETLW	D'70'
		RETLW	D'70'
		RETLW	D'71'
		RETLW	D'72'
		RETLW	D'72'
		RETLW	D'73'
		RETLW	D'73'
		RETLW	D'74'
		RETLW	D'74'
		RETLW	D'75'
		RETLW	D'75'
		RETLW	D'76'
		RETLW	D'76'
		RETLW	D'77'
		RETLW	D'77'
		RETLW	D'78'
		RETLW	D'78'
		RETLW	D'79'
		RETLW	D'79'
		RETLW	D'80'
		RETLW	D'81'
		RETLW	D'81'
		RETLW	D'82'
		RETLW	D'82'
		RETLW	D'83'
		RETLW	D'83'
		RETLW	D'84'
		RETLW	D'84'
		RETLW	D'85'
		RETLW	D'85'
		RETLW	D'86'
		RETLW	D'86'
		RETLW	D'87'
		RETLW	D'87'
		RETLW	D'88'
		RETLW	D'88'
		RETLW	D'89'
		RETLW	D'90'
		RETLW	D'90'
		RETLW	D'91'
		RETLW	D'91'
		RETLW	D'92'
		RETLW	D'92'
		RETLW	D'93'
		RETLW	D'93'
		RETLW	D'94'
		RETLW	D'94'
		RETLW	D'95'
		RETLW	D'95'
		RETLW	D'96'
		RETLW	D'96'
		RETLW	D'97'
		RETLW	D'97'
		RETLW	D'98'
		RETLW	D'99'
		RETLW	D'99'
		RETLW	D'100'
		RETLW	D'100'
		RETLW	D'101'
		RETLW	D'101'
		RETLW	D'102'
		RETLW	D'102'
		RETLW	D'103'
		RETLW	D'103'
		RETLW	D'104'
		RETLW	D'104'
		RETLW	D'105'
		RETLW	D'105'
		RETLW	D'106'
		RETLW	D'106'
		RETLW	D'107'
		RETLW	D'108'
		RETLW	D'108'
		RETLW	D'109'
		RETLW	D'109'
		RETLW	D'110'
		RETLW	D'110'
		RETLW	D'111'
		RETLW	D'111'
		RETLW	D'112'
		RETLW	D'112'
		RETLW	D'113'
		RETLW	D'113'
		RETLW	D'114'
		RETLW	D'114'
		RETLW	D'115'
		RETLW	D'115'
		RETLW	D'116'
		RETLW	D'117'
		RETLW	D'117'
		RETLW	D'118'
		RETLW	D'118'
		RETLW	D'119'
		RETLW	D'119'
		RETLW	D'120'
		RETLW	D'120'
		RETLW	D'121'
		RETLW	D'121'
		RETLW	D'122'
		RETLW	D'122'
		RETLW	D'123'
		RETLW	D'123'
		RETLW	D'124'
		RETLW	D'124'
		RETLW	D'125'
		RETLW	D'126'
		RETLW	D'126'
		RETLW	D'127'
		RETLW	D'127'
		RETLW	D'128'
		RETLW	D'128'
		RETLW	D'129'
		RETLW	D'129'
		RETLW	D'130'
		RETLW	D'130'
		RETLW	D'131'
		RETLW	D'131'
		RETLW	D'132'
		RETLW	D'132'
		RETLW	D'133'
		RETLW	D'133'
		RETLW	D'134'
		RETLW	D'135'
		RETLW	D'135'
		RETLW	D'136'
		RETLW	D'136'
		RETLW	D'137'
		RETLW	D'137'
		RETLW	D'138'
		RETLW	D'138'
		RETLW	D'139'
		RETLW	D'139'
		RETLW	D'140'
		RETLW	D'140'
		RETLW	D'141'
		RETLW	D'141'
		RETLW	D'142'
		RETLW	D'142'
		RETLW	D'143'
		RETLW	D'144'
		RETLW	D'144'
		RETLW	D'145'
		RETLW	D'145'
		RETLW	D'146'
		RETLW	D'146'
		RETLW	D'147'
		RETLW	D'147'
		RETLW	D'148'
		RETLW	D'148'
		RETLW	D'149'
		RETLW	D'149'
		RETLW	D'150'
		RETLW	D'150'
		RETLW	D'151'


	End	

