;-------RDA----------------------------------
TUNE_En		EQU			4					;
;-------Порты-LCD----------------------------
#DEFINE		rset		PORTB,7				;	reset
#DEFINE		enab		PORTB,6				;	ce
#DEFINE		dorc		PORTB,5				;	dc
#DEFINE		sdta		PORTB,4				;	din
#DEFINE		sclk		PORTB,3				;	clk
;-------КНОПКИ-------------------------------
#DEFINE		VOL_P		PORTA,0				;
#DEFINE		VOL_M		PORTA,1				;
#DEFINE		FREQ_P		PORTA,2				;
#DEFINE		AVTO_S		PORTA,5				;
;--------------------------------------------
WRITE_ADDR			equ		0x20			;
WRITE_ADDR_FREQ		equ		0x22			;
READ_ADDR_avtoscan	equ		0x23			;
WRITE_ADDR1	equ		b'10100001'				;
;--------------------------------------------
SCL			equ		3		;	Broche 'Serial CLock' du bus I2C.
SDA			equ		4		;	Broche 'Serial DAta' du bus I2C.
;;; BOOLEEN :
I2CACK		equ		0		;	le bit '0' de l'adresse BOOLEEN, qui sert a
;==регистры=нуливого==банка==================================
			Cblock		0x23				;
;---------------------------------------------
DebutRAM			
BOOLEEN 			; 	8 bits = 8 variables booleennes.
I2C_data			;	Octet de donnee.
I2C_adrHIGH		;	Adresse : octet de poids faible.
I2C_adrLOW		;	Adresse : octet de poids fort.
VAR1			;	3 variables temporaires :
VAR2			;	sauvegarde de W, compteurs, etc.
LSB							;
MSB							;
Taim										;
Taim_1										;
;---Регистры-LCD-----------------------------
count1										;
count2										;
count3										;
count4										;
afisaj										;
xini										;
Temp_ind									;
;---Регистры*EEPROM--------------------------
Temp_ADDR									;
Temp_EEDAT									;
;--------------------------------------------
Frequency									;
Freq1										;
Freq_H_ind									;
Freq_L_ind									;
;---регистры 2/10 преобразования-------------
BSDH										;
BSDL										;
Thou										;
Hund										;
TenK										;
Tens										;
Ones										;
;--------------------------------------------
TEMP										;
;--------------------------------------------
REG_2H										;
REG_2L										;
REG_3H										;
REG_3L										;
REG_4H										;
REG_4L										;
REG_5H										;
REG_5L										;
BUFFER8										;

REG_10H
REG_10L
REG_11H
REG_11L
;--------------------------------------------
			endc							;
;----регистры контекста прерываний-----------
w_temp		EQU	0x20						; переменная, используемая для сохранения контекста
w_temp1		EQU	0xA0						; Резерв Bank1 эквивалент w_temp 
status_temp	EQU	0x21						; переменная, используемая для сохранения контекста
pclath_temp	EQU	0x22						; переменная, используемая для сохранения контекста
;------------------------------------------------------------
			list		p=16f873A			;
			#include	<p16f873A.inc>		;
			__config _XT_OSC & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _WRT_HALF & _DEBUG_OFF & _CP_OFF	;
			org	2100h						; Начальные установки;
			DE	0xD2,0x05,0x23,0x10,0x02,0x00,0x84,0xA8; (REG_2H,REG_2L,REG_3H,REG_3L,REG_4H,REG_4L,REG_5H,REG_5L)
			DE	0x00,0x8c					; (REG_6H,Частота) 
											;    
			ORG		0h						; Начать выполнение программы с 0-го адреса PC.
			goto		START				;
			;org		04h					; Вектор прерываания
;************************************************************
Privet_text									;
			addwf		PCL,f				;
			dt	0x7F,0x01,0x01,0x01,0x7F,0x00 	; П
			dt	0x7F,0x09,0x09,0x09,0x06,0x00	; Р
			dt	0x7F,0x10,0x08,0x04,0x7F,0x00 	; И
			dt	0x7F,0x49,0x49,0x49,0x36,0x00	; В
			dt	0x7F,0x49,0x49,0x49,0x49,0x00	; Е
			dt	0x01,0x01,0x7F,0x01,0x01,0x00	; Т 
;--------------------------------------------
FM_Text										;
			addwf		PCL,f				;
			DT	0x7F,0x09,0x09,0x09,0x01,0x00	; F
			DT	0x7F,0x02,0x0C,0x02,0x7F,0x00	; M
;--------------------------------------------
FM_Radio									;
			addwf		PCL,f      			;
			DT	0x7F,0x09,0x09,0x09,0x01,0x00	; F
			DT	0x7F,0x02,0x0C,0x02,0x7F,0x00	; M
			DT	0x00,0x00,0x00,0x00,0x00,0x00	; 
			DT	0x7F,0x09,0x09,0x09,0x06,0x00	; Р
			DT	0x20,0x54,0x54,0x54,0x78,0x00	; а
			DT	0x60,0x3C,0x24,0x3C,0x60,0x00	; д
			DT	0x7C,0x20,0x10,0x08,0x7C,0x00	; и
			DT	0x38,0x44,0x44,0x44,0x38,0x00	; о
;--------------------------------------------
Vol											;
			addwf		PCL,f				;
			DT	0x1f,0x20,0x40,0x20,0x1f,0x00	; V
			DT	0x38,0x44,0x44,0x44,0x38,0x00	; o
			DT	0x00,0x41,0x7f,0x40,0x00,0x00	; l
			DT	0x00,0x60,0x60,0x00,0x00,0x00	; .
;--------------------------------------------
Seg_ant										;
			addwf		PCL,f				;
			DT	0x40,0x00,0x60,0x00,0x70,0x00,0x78,0x00,0x7C,0x00,0x7E,0x00,0x7F ;
;--------------------------------------------
POK_antena									;
			addwf		PCL,f				;
			DT	0x02,0x06,0x0A,0x7E,0x0A,0x06,0x02,0x00;
;************************************************************
START										;
			clrf		PORTA				; Производим очистку порто и регистров
			clrf		PORTB				;
			clrf		PORTC				;
			clrf		STATUS				;
			clrf		Temp_ADDR			;
;--------------------------------------------
			bsf			STATUS,RP0			; Переходим в 1-й банк.
			movlw		b'00000111'			; Отключаем
			movwf		CMCON				; компораторы.
			movlw		b'00000110'			; Наставиаем порты PORTA как цифровые входо/выходы
			movwf		ADCON1				;
			movlw		b'00100111'			;
			movwf		TRISA				; Остальные на выход
			movlw		b'00000000'			;
			movwf		TRISB				;
			movlw		b'00000000'			;
			movwf		TRISC				;
			movlw		b'10000000' 		; Отключаем подтягивающие резисторы, 
			movwf		OPTION_REG			; Коэффициент предделителя Tmr0 1:2
			movlw		b'00000000'			; Разрешаем 
			movwf		INTCON				; прерывания  
			bcf			STATUS,RP0			; Переходим в 0-й банк.
;--------------------------------------------
			BSF			PORTA,SCL			;
			BSF			PORTA,SDA			;
			CLRF		BOOLEEN				;
			movlw		b'00110000'			; Включаем
			movwf		T1CON				; таймер 1
;-------Считываем*данные*из*EEprom----------
			call		EERED				; Считываем данные из EEPROM
			movwf		REG_2H				;
			incf		Temp_ADDR,f			;
			call		EERED				; Считываем данные из EEPROM
			movwf		REG_2L				;
			incf		Temp_ADDR,f			;
			call		EERED				; Считываем данные из EEPROM
			movwf		REG_3H				;
			incf		Temp_ADDR,f			;
			call		EERED				; Считываем данные из EEPROM
			movwf		REG_3L				;
			incf		Temp_ADDR,f			;
			call		EERED				; Считываем данные из EEPROM
			movwf		REG_4H				;
			incf		Temp_ADDR,f			;
			call		EERED				; Считываем данные из EEPROM
			movwf		REG_4L				;
			incf		Temp_ADDR,f			;
			call		EERED				; Считываем данные из EEPROM
			movwf		REG_5H				;
			incf		Temp_ADDR,f			;
			call		EERED				; Считываем данные из EEPROM
			movwf		REG_5L				;
			incf		Temp_ADDR,f			;
			call		EERED				; Считываем данные из EEPROM
			movwf		BUFFER8				;
			incf		Temp_ADDR,f			;
			call		EERED				; Считываем данные из EEPROM
			movwf		Frequency			; Частота
;--------------------------------------------
			call		LCD_INIT			;
;--------------------------------------------
			call		PRIVETSTVIE			;
											;
			call		Eresh_LCD			;
											;
			call		WRIT_RDA5807		;
;--------------------------------------------
			call		lin1				;
			call		poz0				;
											;
			movlw		.8					;
			movwf		Temp_ind			;
 			movf		Temp_ind,W			; для SIM_antena 
			sublw		.8					;
			call		POK_antena			;
			call		lcdta				;
			decfsz		Temp_ind,F			;
			goto		$-5					;
											;
			call		lin1				;
			call		poz6				;
											;
			movlw		.24					;
			movwf		Temp_ind			;
			movf		Temp_ind,W			; для Vol 
			sublw		.24					;
			call		Vol					;
			call		lcdta				;
			decfsz		Temp_ind,F			;
			goto		$-5					;
											;
			call		lin2				;
			call		poz3				;
											;
			movlw		.48					;
			movwf		Temp_ind			;
			movf		Temp_ind,W			; для FM_Radio 
			sublw		.48					;
			call		FM_Radio			;
			call		lcdta				;
			decfsz		Temp_ind,F			;
			goto		$-5					;
											;
			call		lin4				;
			call		poz13				;
											;
			movlw		.12					;
			movwf		Temp_ind			;
			movf		Temp_ind,W			; для FM_Text 
			sublw		.12					;
			call		FM_Text				;
			call		lcdta				;
			decfsz		Temp_ind,F			;
			goto		$-5					;
;--------------------------------------------
			call		lin1				;
			movlw		0x87				; punct
			call		lccmd				;
											;
			movlw		.13					;
			movwf		Temp_ind			;
			movf		Temp_ind,W			; для Seg_ant 
			sublw		.13					;
			call		Seg_ant				;
			call		lcdta				;
			decfsz		Temp_ind,F			;
			goto		$-5					;
											;
			call		POK_GROM			;
			call		INDIK_FREQ_med		;
;--------------------------------------------
MAIN										;
			btfss		VOL_P				;
			call		VOL_PLUS			;
			btfss		VOL_M				;
			call		VOL_MINUS			;
			btfss		FREQ_P				;
			call		FREQ_PLUS			;
			btfss		AVTO_S				;
			call		AVTO_SCAN			;
											;
			goto		MAIN				;
;-----------АВТО*СКАНИРОВАНИЕ--------------------------------
AVTO_SCAN									;
			btfss		AVTO_S				;
			goto		$-1					;
START_avtoscan
											;
			CALL		I2CSTART			;
											;
			movlw		0x20				; Передаем Адрес
			CALL		WtoI2C				;
			CALL		I2CgetACK			; 
											;
			movlw		0xD3				;
			CALL		WtoI2C				;
			CALL		I2CgetACK			;
											;
			movlw		0x85				;
			CALL		WtoI2C				;
			CALL		I2CgetACK			;

			movfw		REG_3H				;
			CALL		WtoI2C				;
			CALL		I2CgetACK			;

			movfw		REG_3L				;
			CALL		WtoI2C				;
			CALL		I2CgetACK			;
											;
			CALL		I2CSTOP				;
R_A											;
			call		delay_500ms			;

			CALL		I2CSTART			;
											;
		;	bcf			STATUS,RP0			; Select Bank 00
		;	movlw		0x10			; Передаем Адрес
		;	movwf		datao				; 
		;	call		TX					; 
											;
		;	bcf			STATUS,RP0			;
		;	movlw		0x0A				;
		;	movwf		datao				;
		;	call		TX					;

		;	call		BSTOP				;
											;
		;	call		BRESTART			; Generate Start condition
											;
		
			movlw		0x21				; Передаем Адрес
			CALL		WtoI2C				;
			CALL		I2CgetACK			;
											;
			CALL		I2CtoW				;
			MOVWF		I2C_data			;
			movwf		REG_10H				;
			CALL		I2CsetACK 			;
											;
			CALL		I2CtoW				;
			MOVWF		I2C_data			;
			movwf		REG_10L				;
			CALL		I2CsetACK 			;
											;
			CALL		I2CtoW				;
			MOVWF		I2C_data			;
			movwf		REG_11H				;
			CALL		I2CsetACK 			;
											;
			CALL		I2CtoW				;
			MOVWF		I2C_data			;
			movwf		REG_11L				;
			CALL		I2CsetNoACK			;
											;
			CALL		I2CSTOP

			
			btfss		REG_10H,6
			goto		R_A

			movf		REG_10L,w
			sublw		0xD2
			btfsc		STATUS,Z
			clrf		REG_10L

			movfw		REG_10L
			movwf		Frequency			;
			movwf		REG_3H				;
			clrf		REG_3L				;
											;
			bcf			STATUS,C			;
											;
			rrf			REG_3H,f			;
			rrf			REG_3L,f			;
			rrf			REG_3H,f			;
			rrf			REG_3L,f			;
											;
			bsf			REG_3L,TUNE_En		;

			call		INDIK_FREQ_med		;

			btfss		REG_11H,0
			goto		START_avtoscan

			movfw		REG_10H
			movwf		BSDL
			clrf		BSDH

			call		BINToBCD16_5

			call		lin5				;
			call		poz0				;
		
			clrf		PCLATH				;
			movlw		.6					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra			;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.6					;
			movwf		TEMP				;
			movf		Hund,w				;
			call		Cifra			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;

			clrf		PCLATH				;
			movlw		.6					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra			;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.6					;
			movwf		TEMP				;
			movf		Tens,w				;
			call		Cifra			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;

			clrf		PCLATH				;
			movlw		.6					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra			;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.6					;
			movwf		TEMP				;
			movf		Ones,w				;
			call		Cifra			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;


			movfw		REG_10L
			movwf		BSDL
			clrf		BSDH

			call		BINToBCD16_5

			call		lin5				;
			call		poz5				;
		
			clrf		PCLATH				;
			movlw		.6					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra			;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.6					;
			movwf		TEMP				;
			movf		Hund,w				;
			call		Cifra			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;

			clrf		PCLATH				;
			movlw		.6					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra			;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.6					;
			movwf		TEMP				;
			movf		Tens,w				;
			call		Cifra			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;

			clrf		PCLATH				;
			movlw		.6					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra			;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.6					;
			movwf		TEMP				;
			movf		Ones,w				;
			call		Cifra			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;

			movfw		REG_11H
			movwf		BSDL
			clrf		BSDH

			call		BINToBCD16_5

			call		lin5				;
			call		poz10				;
		
			clrf		PCLATH				;
			movlw		.6					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra			;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.6					;
			movwf		TEMP				;
			movf		Hund,w				;
			call		Cifra			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;

			clrf		PCLATH				;
			movlw		.6					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra			;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.6					;
			movwf		TEMP				;
			movf		Tens,w				;
			call		Cifra			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;

			clrf		PCLATH				;
			movlw		.6					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra			;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.6					;
			movwf		TEMP				;
			movf		Ones,w				;
			call		Cifra			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;

			

			movfw		REG_10L
			movwf		Frequency			;
			movwf		REG_3H				;
			clrf		REG_3L				;
											;
			bcf			STATUS,C			;
											;
			rrf			REG_3H,f			;
			rrf			REG_3L,f			;
			rrf			REG_3H,f			;
			rrf			REG_3L,f			;
											;
			bsf			REG_3L,TUNE_En		;

			call		INDIK_FREQ_med		;
			
			return

;-----------РАБОТА*С*ЧАСТОТОЙ--------------------------------
FREQ_PLUS									;			
			incf		Frequency,f			;
			movf		Frequency,w			;
			sublw		0xD3				;
			btfsc		STATUS,Z			;
			clrf		Frequency			;
			call		preob_FREQ			;
			call		WRIT_FREQ			;
			call		INDIK_FREQ_med		;
			call		delay_100ms			;
			call		delay_100ms			;
			return							;
;-----------РАБОТА*С*ГРОМКОСТЬЮ------------------------------
;-----------ГРОМКОСТЬ*ПЛЮС-------------------
VOL_PLUS									;
			movf		REG_5L,w			;
			andlw		b'00001111'			;
			movwf		TEMP				;
			incf		TEMP,F				;
			movf		TEMP,w				;
			sublw		0x10				;
			btfsc		STATUS,Z			;	
			decf		TEMP,f				;
			movf		TEMP,w				;
			xorlw		b'10100000'			;
			movwf		REG_5L				;
			call		WRIT_VOL			;
			call		POK_GROM			;
			btfss		VOL_P				;
			goto		$-1					;
			return							;
;-----------ГРОМКОСТЬ*МИНУС------------------
VOL_MINUS									;
			movf		REG_5L,w			;
			andlw		b'00001111'			;
			movwf		TEMP				;
			decf		TEMP,F				;
			movf		TEMP,w				;
			sublw		0xFF				;
			btfsc		STATUS,Z			;
			clrf		TEMP				;
			movf		TEMP,w				;
			xorlw		b'10100000'			;
			movwf		REG_5L				;
			call		WRIT_VOL			;
			call		POK_GROM			;
			btfss		VOL_M				;
			goto		$-1					;
			return							;
;----------Показываем*уровень*громкости------
POK_GROM									;
			call		lin1				;
			call		poz11				;
											;
			movf		REG_5L,w			;
			andlw		b'00001111'			;
			movwf		Temp_ind			;
			movlw		.15					;
			movwf		TEMP				;
											;
			movlw		0x7E				;
			call		lcdta				;
											;
			movf		Temp_ind,W			; 
			btfsc		STATUS,Z			;
			goto		POK_GROM_1			;
											;
			movlw		0x7E				;
			call		lcdta				;
			decf		TEMP,f				;
			decfsz		Temp_ind,F			;
			goto		$-4					;
POK_GROM_1									;
			movf		TEMP,W				; 
			btfsc		STATUS,Z			;
			return							;
			movlw		0x42				;
			call		lcdta				;
			decfsz		TEMP,F				;
			goto		$-3					;
			movlw		0x7E				;
			call		lcdta				;
			return							;
;---------преобразование*частоты-------------
preob_FREQ									;
			movfw		Frequency			;
			movwf		REG_3H				;
			clrf		REG_3L				;
											;
			bcf			STATUS,C			;
											;
			rrf			REG_3H,f			;
			rrf			REG_3L,f			;
			rrf			REG_3H,f			;
			rrf			REG_3L,f			;
											;
			bsf			REG_3L,TUNE_En		;
			return							;
;---------Преобразовываем*данные*в*частоту---
POD_IND_Freq								;
			clrf		Freq1				;
			movlw		0x03				;
			movwf		Freq_H_ind			;
			movlw		0x66				;
			movwf		Freq_L_ind			;
											;
			movf		Frequency,W			;
			addwf		Freq_L_ind,F		;
			btfsc		STATUS,C			;
			incf		Freq_H_ind,F		;
			movf		Freq1,W				;
			addwf		Freq_H_ind,F		;
			return							;
;--------------------------------------------
INDIK_FREQ_med								;
			call		POD_IND_Freq		;											;
			movfw		Freq_H_ind			;
			movwf		BSDH				;
			movfw 		Freq_L_ind			;
			movwf		BSDL				;
											;
			call		BINToBCD16_5		;
;------------------------
			call		lin3				;
			call		poz1				;
											;
			movf 		Thou,w				; проверяем первую цифру на ноль
			btfss		STATUS,Z			;
			goto		POK_Thou_med		; если не ноль показываем цифру
											;
			movlw		.12 				;
			movwf		Temp_ind			;
			movlw		0x00				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-3					;
											;
			call		lin4				;
			call		poz1				;
											;
			movlw		.12					;
			movwf		Temp_ind			;
			movlw		0x00				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-3					;
			goto		POK_Hund_med		;
POK_Thou_med								;
			clrf		PCLATH				;
			movlw		.12					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra_med		;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.12					;
			movwf		TEMP				;
			movf		Thou,w				;
			call		Cifra_med			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;
											;
			call		lin4				;
			call		poz1				;
											;
			movlw		.12					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra_med		;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.24					;
			movwf		TEMP				;
 			movf		Thou,w				;
			call		Cifra_med			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;
;------------------------
POK_Hund_med								;
			call		lin3				;
			call		poz3				;
											;
			clrf		PCLATH				;
			movlw		.12					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra_med		;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.12					;
			movwf		TEMP				;
			movf 		Hund,w				;
			call		Cifra_med			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;
											;
			call		lin4				;
			call		poz3				;
											;
			movlw		.12					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra_med		;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.24					;
			movwf		TEMP				;
			movf		Hund,w				;
			call		Cifra_med			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;
;------------------------
			call		lin3				;
			call		poz5				;
											;
			clrf		PCLATH				;
			movlw		.12					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra_med		;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.12					;
			movwf		TEMP				;
			movf		Tens,w				;
			call		Cifra_med			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;
											;
			call		lin4				;
			call		poz5				;
											;
			movlw		.12					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra_med		;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.24					;
			movwf		TEMP				;
			movf		Tens,w				;
			call		Cifra_med			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;
;------------------------
			call		lin3				;
			call		poz8				;
											;
			clrf		PCLATH				;
			movlw		.12					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra_med 		;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.12					;
			movwf		TEMP				;
			movlw		.10					;
			call		Cifra_med			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;
											;
			call		lin4				;
			call		poz8				;
											;
			movlw		.12					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra_med		;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.24					;
			movwf		TEMP				;
			movlw		.10					;
			call		Cifra_med			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;
;------------------------
			call		lin3				;
			call		poz10				;
											;
			clrf		PCLATH				;
			movlw		.12					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra_med		;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.12					;
			movwf		TEMP				;
			movf		Ones,w				;
			call		Cifra_med			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;
											;
			call		lin4				;
			call		poz10				;
											;
			movlw		.12					;
			movwf		Temp_ind			;
			movlw		HIGH Cifra_med		;
			movwf		PCLATH				;
			movf		Temp_ind,w			;
			sublw		.24					;
			movwf		TEMP				;
			movf		Ones,w				;
			call		Cifra_med			;
			clrf		PCLATH				;
			call		lcdta				;
			decfsz		Temp_ind,f			;
			goto		$-.10				;
			return							;
;--------------------------------------------
PRIVETSTVIE									;
			call		lin1				;
			call		poz4				;
											;
			call		Privet				;
											;
			call		delay_500ms			;
			call		delay_500ms			;
											;
			call		lin3				;
			call		poz4				;
											;
			call		Privet				;
											;
			call		delay_500ms			;
			call		delay_500ms			;
											;
			call		lin5				;
			call		poz4				;
											;
			call		Privet				;
											;
			call		delay_500ms			;
			call		delay_500ms			;
											;
			return							;
;--------------------------------------------
Privet										;
			movlw		.35					;
			movwf		Temp_ind			;
			movf		Temp_ind,W			; для Privet 
			sublw		.35					;
			call		Privet_text			;
			call		lcdta				;
			decfsz		Temp_ind,F			;
			goto		$-5					;
			return							;
;-----------ПЕРЕДАЧА*УРОВНЯ*ГРОМКОСТИ--------
WRIT_VOL									;
			CALL		I2CSTART			;
											;
			movlw		WRITE_ADDR_FREQ		; Передаем Адрес
			CALL		WtoI2C				;
			CALL		I2CgetACK			; 
											;
			movlw		0x05				;
			CALL		WtoI2C				;
			CALL		I2CgetACK			;
											;
			movfw		REG_5H				;
			CALL		WtoI2C				;
			CALL		I2CgetACK			;
											;
			movfw		REG_5L				;
			CALL		WtoI2C				;
			CALL		I2CgetACK			;
											;
			CALL		I2CSTOP				;
			return							;
;-----------ПЕредача*частоты*****************
;--------ПЕРЕДАЧА*ДАННЫХ*В*RDA5807-----------
WRIT_FREQ									;
			CALL		I2CSTART			;
											;
			movlw		WRITE_ADDR_FREQ		; Передаем Адрес
			CALL		WtoI2C				;
			CALL		I2CgetACK			;
			;BTFSS		BOOLEEN,I2CACK		;
			;GOTO		MemNonDispo1		; 
											;
			movlw		0x03				;
			CALL		WtoI2C				;
 			CALL		I2CgetACK			;
											;
			movfw		REG_3H				;
			CALL		WtoI2C				;
 			CALL		I2CgetACK			;
											;
			movfw		REG_3L				;
			CALL		WtoI2C				;
 			CALL		I2CgetACK			;
											;
			CALL		I2CSTOP				;
			return							;
;--------ПЕРЕДАЧА*ДАННЫХ*В*RDA5807-----------
WRIT_RDA5807								;
			CALL		I2CSTART			;
											;
			movlw		WRITE_ADDR			; Передаем Адрес
			CALL 		WtoI2C				; 
			CALL		I2CgetACK			; 
											;
			movfw		REG_2H				;
			CALL 		WtoI2C				; 
			CALL		I2CgetACK			;
											;
			movfw		REG_2L				;
			CALL 		WtoI2C				; 
			CALL		I2CgetACK			;
											;
			movfw		REG_3H				;
			CALL 		WtoI2C				; 
			CALL		I2CgetACK			;
											;
			movfw		REG_3L				;
			CALL 		WtoI2C				; 
			CALL		I2CgetACK			;
											;
			movfw		REG_4H				;
			CALL 		WtoI2C				; 
			CALL		I2CgetACK			;
											;
			movfw		REG_4L				;
			CALL 		WtoI2C				; 
			CALL		I2CgetACK			;
											;
			movfw		REG_5H				;
			CALL 		WtoI2C				; 
			CALL		I2CgetACK			;
											;
			movfw		REG_5L				;
			CALL 		WtoI2C				; 
			CALL		I2CgetACK			;
											;
			
			movfw		BUFFER8				;
			CALL 		WtoI2C				; 
			CALL		I2CgetACK			;
											;
			CALL		I2CSTOP				;
			return							;
;:::::::::::::::ПРЕОБРАЗОВАНИЕ::2/10:::::::::::::::::::::::::
BINToBCD16_5								;
			swapf		BSDH,w				;w  = A2*16+A3
			andlw		0x0F				;w  = A3		*** PERSONALLY, I'D REPLACE THESE 2
			addlw		0xF0				;w  = A3-16	*** LINES WITH "IORLW b'11110000B' " -AW
			movwf		Thou				;B3 = A3-16
			addwf		Thou,f				;B3 = 2*(A3-16) = 2A3 - 32
			addlw		.226				;w  = A3-16 - 30 = A3-46
			movwf		Hund				;B2 = A3-46
			addlw		.50					;w  = A3-46 + 50 = A3+4
			movwf		Ones				;B0 = A3+4
											;
			movf		BSDH,w				;w  = A3*16+A2
			andlw		0x0F				;w  = A2
			addwf		Hund,f				;B2 = A3-46 + A2 = A3+A2-46
			addwf		Hund,f				;B2 = A3+A2-46  + A2 = A3+2A2-46
			addwf		Ones,f				;B0 = A3+4 + A2 = A3+A2+4
			addlw		.233				;w  = A2 - 23
			movwf		Tens				;B1 = A2-23
			addwf		Tens,f				;B1 = 2*(A2-23)
			addwf		Tens,f				;B1 = 3*(A2-23) = 3A2-69 (Doh! thanks NG)
											;
			swapf		BSDL,w				;w  = A0*16+A1
			andlw		0x0F				;w  = A1
			addwf		Tens,f				;B1 = 3A2-69 + A1 = 3A2+A1-69 range -69...-9
			addwf		Ones,f				;B0 = A3+A2+4 + A1 = A3+A2+A1+4 and Carry = 0 (thanks NG)
											;
			rlf			Tens,f				;B1 = 2*(3A2+A1-69) + C = 6A2+2A1-138 and Carry is now 1 as tens register had to be negitive
			rlf			Ones,f				;B0 = 2*(A3+A2+A1+4) + C = 2A3+2A2+2A1+9 (+9 not +8 due to the carry from prev line, Thanks NG)
			comf		Ones,f				;B0 = ~(2A3+2A2+2A1+9) = -2A3-2A2-2A1-10 (ones complement plus 1 is twos complement. Thanks SD)
											;
			rlf			Ones,f				;B0 = 2*(-2A3-2A2-2A1-10) = -4A3-4A2-4A1-20
											;
			movf		BSDL,w				;w  = A1*16+A0
			andlw		0x0F				;w  = A0
			addwf		Ones,f				;B0 = -4A3-4A2-4A1-20 + A0 = A0-4(A3+A2+A1)-20 range -215...-5 Carry=0
			rlf			Thou,f				;B3 = 2*(2A3 - 32) = 4A3 - 64
											;
			movlw		0x07				;w  = 7
			movwf		TenK				;B4 = 7
											;
			movlw		.10					;w  = 10
Lb1:										;do
			addwf		Ones,f				; B0 += 10
			decf		Tens,f				; B1 -= 1
			btfss		3,0					;
						 					;skip no carry
			goto		Lb1					; while B0 < 0
											;jmp carry
Lb2:										;do
			addwf		Tens,f				; B1 += 10
			decf		Hund,f				; B2 -= 1
			btfss		3,0					;
			goto		Lb2					; while B1 < 0
Lb3:										;do
			addwf		Hund,f				; B2 += 10
			decf		Thou,f				; B3 -= 1
			btfss		3,0					;
			goto		Lb3					; while B2 < 0
Lb4:										;do
			addwf		Thou,f				; B3 += 10
			decf		TenK,f				; B4 -= 1
			btfss		3,0					;
			goto		Lb4					; while B3 < 0 
											;
			RETURN							;
;***********РАБОТА*С*LCD*NOKIA*5110**************************
;-----------ИНИЦИАЛИЗАЦИЯ**LCD---------------
LCD_INIT									;
			bsf			dorc				;
			bsf			enab				;
			call		lcres				; reset for 250 ms
			movlw		0x21				; extended set command
			call		lccmd				;
			movlw		0xC2				;Vop 
			call		lccmd				;
			movlw		0x06				;bias loop
			call		lccmd				;
			movlw		0x13				;vertical mode and normal set command
			call		lccmd				;
			movlw		0x20				;vertical mode and normal set command
			call		lccmd				;
			movlw		0x0C				;vertical mode and normal set command
			call		lccmd				;
			call		Eresh_LCD			;erase lcd
			call		pause				;
			movlw		0x80				;mod control normal 
			call		lccmd				;
			movlw		0x40				;x ini 
			call		lccmd				;
			return							;
;--------------------------------------------
pct											;
			movlw		0x98				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
lin1										;
			movlw		0x40				; linia 1
			call		lccmd				;
			return							;
;--------------------------------------------
lin2										;
			movlw		0x41				; linia 2
			call		lccmd				;
			return							;
;--------------------------------------------
lin3										;
			movlw		0x42				; linia 3
			call		lccmd				;
			return							;
;--------------------------------------------
lin4										;
			movlw		0x43				; linia 4
			call		lccmd				;
			return							;
;--------------------------------------------
lin5										;
			movlw		0x44				; linia 5
			call		lccmd				;
			return							;
;--------------------------------------------
lin6										;
			movlw		0x45				; linia 6
			call		lccmd				;
			return							;
;--------------------------------------------
poz0										;
			movlw		0x80				; punct
			call		lccmd				;
			return 							;
;--------------------------------------------
poz1										;
			movlw		0x85				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz2										;
			movlw		0x8B				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz3										;
			movlw		0x91				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz4										;
			movlw		0x97				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz5										;
			movlw		0x9D				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz6										;
			movlw		0xA3				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz7										;
			movlw		0xAF				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz8										;
			movlw		0xA9				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz9										;
			movlw		0xAF				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz10										;
			movlw		0xB5				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz11										;
			movlw		0xBB				; punct
			call		lccmd 				;
			return							;
;--------------------------------------------
poz12										;
			movlw		0xC1				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz13										;
			movlw		0xC7				; punct
			call		lccmd				;
			return							;
;--------------------------------------------
poz14										;
			movlw		0xCD				; punct
			call		lccmd				;
			return							;
;-----------Передача*данных*в*LCD------------
lcdta										;
			bsf			dorc				; lcd data
			bcf			enab				; lcd enable
			call		varsa				;
			bsf			enab				;
			return							;
;-----------Передача*команд*в*LCD------------
lccmd										;
			bcf			dorc				; lcd command
			bcf			enab				; lcd enable
			call		varsa				;
			bsf			enab				;
			return							;
;-----------Перезагрузка*LCD-----------------
lcres										;
			bcf			rset				; reset
			call		pause				;
			bsf			rset				; dezactivare reset
			return							;
;-----------Передача*информации*в*LCD--------
varsa										;
			movwf		afisaj				;
			movlw		0x08				;
			movwf		count4				;
vbit										;
			bcf			sclk				;
			btfsc		afisaj,7			;bit0
			bsf			sdta				;
			btfss		afisaj,7			;
			bcf			sdta				;
			nop								;
			nop								;
			nop								;
			bsf			sclk				;
			nop								;
			nop								;
			nop								;
			rlf			afisaj,1			;
			decfsz		count4,F			;
			goto		vbit				;
			return							;
;-----------Очистка*LCD----------------------
Eresh_LCD									;
			bcf			sdta				; data it is null for clearing
			movlw		0x06				; 6 lines
			movwf		count3				;
c3											;
			movlw		0x54				; 84 coloane
			movwf		count1				;
c1											;
			movlw		0x08				; one bytes it is send with 8 clock pulse
			movwf		count2				;
			bsf			dorc				;
			bcf			enab				;
c2											;
			bcf			sclk				;
			nop								;
			nop								;
			bsf			sclk				;
			decfsz		count2,F			;
			goto		c2					;
			bsf			enab				;
			decfsz		count1,F			;
			goto		c1					;
			decfsz		count3,F			;
			goto		c3					;
			return							;
;*********Рабоа*с*I2C****************************************
;--------------------------------------------
I2CSTART									;
			BSF			PORTA,SCL			;
			BSF			PORTA,SDA			;
			CALL		Tempo5us			;
			BCF			PORTA,SDA			;
			CALL		Tempo5us			;
			BCF			PORTA,SCL			;
			CALL		Tempo5us			;
			BSF			PORTA,SDA			;
			RETURN							;
;--------------------------------------------
I2CSTOP										;
			BCF			PORTA,SCL			;
			BCF			PORTA,SDA			;
			CALL		Tempo5us			;
			BSF			PORTA,SCL			;
			CALL		Tempo5us			;
			BSF			PORTA,SDA			;
			CALL		Tempo5us			;
			RETURN							;
;--------------------------------------------
WtoI2C										;
			MOVWF		VAR1				;
			MOVLW		8					;
			MOVWF		VAR2				;
NextBitI2Cout								;
			BCF			PORTA,SCL			;
			BTFSS		VAR1,7				;
			BCF			PORTA,SDA			;
			BTFSC		VAR1,7				;
			BSF			PORTA,SDA			;
			CALL		Tempo5us			;
			BSF			PORTA,SCL			;
			CALL		Tempo5us			;
			BCF			PORTA,SCL			;
			RLF			VAR1,F				;
			DECFSZ		VAR2,F				;
			GOTO		NextBitI2Cout		;
			BSF			PORTA,SDA			;
			RETURN							;
;--------------------------------------------
I2CtoW										;
			MOVLW		8					;
			MOVWF		VAR2				;
			CLRF		VAR1				;
NextBitI2Cin								;
			BCF			PORTA,SCL			;
			BSF			PORTA,SDA			;
			CALL		Tempo5us			;
			BSF			PORTA,SCL			;
			CALL		Tempo5us			;
			RLF			VAR1,F				;
			BCF			VAR1,0				;
			BTFSC		PORTA,SDA			;
			BSF			VAR1,0				;
			DECFSZ		VAR2,F				;
			GOTO		NextBitI2Cin		;
			BCF			PORTA,SCL			;
			MOVF		VAR1,W				;
			RETURN							;
;--------------------------------------------
I2CgetACK									;
			BSF			PORTA,SDA			;
			BCF			PORTA,SCL			;
			CALL		Tempo5us			;
			BSF			PORTA,SCL			;
			CALL		Tempo5us			;
			BCF			BOOLEEN,I2CACK		;
			BTFSS		PORTA,SDA			;
			BSF			BOOLEEN,I2CACK		;
			BCF			PORTA,SCL			;
			RETURN							;
;--------------------------------------------
I2CsetACK									;
			BCF			PORTA,SCL			;
			BCF			PORTA,SDA			;
			CALL		Tempo5us			;
			BSF			PORTA,SCL			;
			CALL		Tempo5us			;
			BCF			PORTA,SCL			;
			BSF			PORTA,SDA			;
			RETURN							;
;--------------------------------------------
I2CsetNoACK									;
			BCF			PORTA,SCL			;
			BSF			PORTA,SDA			;
			CALL		Tempo5us			;
			BSF			PORTA,SCL			;
			CALL		Tempo5us			;
			BCF			PORTA,SCL			;
			RETURN							;
;*******РАБОТА*С*EEPROM**************************************
;--------ЧТЕНИЕ*ИЗ*EEPROM--------------------
EERED										;
			banksel		EEADR				; Заходим во 2-й банк.
			movf		Temp_ADDR,w 		; Выбор ячейки EEPROM
			movwf		EEADR				; с адресом
			banksel		EECON1				; Переход в 3-й банк.
			bsf			EECON1,0			; Инициализация чтения.
			banksel		EEDATA				; Переход во 2-й банк.
			movf		EEDATA,W			; Считывание байта, из выбранной ячейки
			banksel		0					; Пререходим в 0-й банк
			return							; Выходим
;--------запись*в*EEPROM---------------------
WRITE_ERR									;
			banksel		EEADR				; Переход во 2-й банк.
			movf		Temp_ADDR,w			; Выбор ячейки EEPROM
			movwf		EEADR				; с адресом 00h.
			movf		Temp_EEDAT,W		; Подготавливаем данные 
			movwf		EEDATA				; для записи в -> EEData.
			banksel		EECON1				; Переход в 3-й банк.
			bcf			EECON1,7			; Работа с EEPROM.
			bsf			EECON1,2			; Разрешение записи.
			movlw		0x55				; Обязательная
			movwf		EECON2				; последовательность
			movlw		0xAA				; команд
			movwf		EECON2				; записи.
			bsf			EECON1,1			; Инициализация записи.
			bcf			EECON1,2			; Разрещение записи.
			btfsc		EECON1,1			; Запись завершена или нет ?
			goto		$-1					; Если не завершена, то "плавающая" задержка.
			banksel		0 					; Если завершена, то   переход в 0-й банк.
			return							; Выходим
;***********Задержки*****************************************
;-----------ЗАДЕРЖКА 500 ms------------------
delay_500ms									;
			btfsc		PIR1,0				;
			bcf			PIR1,0				; 
			movlw		0x0B				;
			movwf		TMR1H				;
			movlw		0xDD				;
			movwf		TMR1L				;
			bsf			T1CON,0				;
			btfss		PIR1,0				;
			goto		$-1					;
			bcf			PIR1,0				;
			return							; Выход
;-----------ЗАДЕРЖКА 100 ms------------------
delay_100ms									;
			btfsc		PIR1,0				;
			bcf			PIR1,0				; 
			movlw		0xCF				;
			movwf		TMR1H				;
			movlw		0x2D				;
			movwf		TMR1L				;
			bsf			T1CON,0				;
			btfss		PIR1,0				;
			goto		$-1					;
			bcf			PIR1,0				;
			return							; Выход
;-----------Задержка*35ms--------------------
delay_50ms									;
			btfsc		PIR1,0				;
			bcf			PIR1,0				; 
			movlw		0xE7				;
			movwf		TMR1H				;
			movlw		0x97				;
			movwf		TMR1L				;
			bsf			T1CON,0				;
			btfss		PIR1,0				;
			goto		$-1					;
			bcf			PIR1,0				;
			return							; Выход
;-----------Задержка*5ms---------------------
delay_5ms									;
			movlw		.125				;
			movwf		Taim				;
			movlw		.7					; 
			 movwf		Taim_1				;
			decfsz		Taim,F				;
			goto		$-1					;
			decfsz		Taim_1,F			;
			goto		$-3					;
			return							;
;--------------------------------------------
pause										;
			movlw		0x07				;
			movwf		count3				;
d3											;
			movlw		0x32				;
			movwf		count1				;
d1											;
			movlw		0xFA				;
			movwf		count2				;
d2											;
			decfsz		count2,F			;
			goto		d2					;
			decfsz		count1,F			;
			goto		d1					;
			decfsz		count3,F			;
			goto		d3					;
			return							;
;--------------------------------------------
Tempo5us									;
			NOP								;
			NOP								;
			NOP								;
			NOP								;
			NOP								;
			RETURN	
;************************************************************
			org			800h				; первый блок 2 страницы
;--------------------------------------------
Cifra_med									;
			addwf		PCL,f				;
			goto		CIF_0_med			;
			goto		CIF_1_med			;
			goto		CIF_2_med			;
			goto		CIF_3_med			;
			goto		CIF_4_med			;
			goto		CIF_5_med			;
			goto		CIF_6_med			;
			goto		CIF_7_med			;
			goto		CIF_8_med			;
			goto		CIF_9_med			;
			goto		TOCHKA_med			;
;--------------------------------------------
CIF_0_med									;
			movf		TEMP,W				; 
			addwf		PCL,F				;
			DT	0x00,0xfc,0x7a,0x06,0x06,0x06,0x06,0x06,0x06,0x7a,0xfc,0x00,0x00,0x7e,0xbc,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xbc,0x7e,0x00 ; 0
;-------------------------------------------
CIF_1_med									;
			movf		TEMP,W				; 
			addwf		PCL,F				;
 			DT	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x7e,0x00 ; 1
;--------------------------------------------
CIF_2_med									;
			movf		TEMP,W				; 
			addwf		PCL,F				;
			DT	0x00,0x00,0x02,0x86,0x86,0x86,0x86,0x86,0x86,0x7a,0xfc,0x00,0x00,0x7e,0xbd,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x81,0x00, 0x00 ; 2
;--------------------------------------------
CIF_3_med									;
			movf		TEMP,W				; 
			addwf		PCL,F				;
			DT	0x00,0x00,0x02,0x86,0x86,0x86,0x86,0x86,0x86, 0x7a,0xfc,0x00,0x00,0x00,0x81,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xbd,0x7e,0x00 ; 3
;--------------------------------------------
CIF_4_med									;
			movf		TEMP,W				; 
			addwf		PCL,F				;
			DT	0x00,0xfc,0x78,0x80,0x80,0x80,0x80,0x80,0x80,0x78,0xfc,0x00,0x00,0x00,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x3d,0x7e,0x00 ; 4
;--------------------------------------------
CIF_5_med									;
			movf		TEMP,W				; 
			addwf		PCL,F				;
			DT	0x00,0xfc,0x7a,0x86,0x86,0x86,0x86,0x86,0x86,0x02,0x00,0x00,0x00,0x00,0x81,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xbd,0x7e,0x00 ; 5
;--------------------------------------------
CIF_6_med									;
			movf		TEMP,W				;
			addwf		PCL,F				;
			DT	0x00,0xfc,0x7a,0x86,0x86,0x86,0x86,0x86,0x86,0x02,0x00,0x00,0x00,0x7e,0xbd,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xbd,0x7e,0x00 ; 6
;--------------------------------------------
CIF_7_med									;
			movf		TEMP,W				; 
			addwf		PCL,F				;
			DT	0x00,0x00,0x02,0x06,0x06,0x06,0x06,0x06,0x06,0x7a,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x7e,0x00 ; 7
;--------------------------------------------
CIF_8_med									;
			movf		TEMP,W				; 
			addwf		PCL,F				;
			DT	0x00,0xfc,0x7a,0x86,0x86,0x86,0x86,0x86,0x86,0x7a,0xfc,0x00,0x00,0x7e,0xbd,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xbd,0x7e,0x00 ; 8
;--------------------------------------------
			ORG			900H				; Второй Блок Второй Страницы
;--------------------------------------------
CIF_9_med									;
			movlw		HIGH CIF_9_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
			DT	0x00,0xfc,0x7a,0x86,0x86,0x86,0x86,0x86,0x86,0x7a,0xfc,0x00,0x00,0x00,0x81,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xbd,0x7e,0x00 ; 9
;--------------------------------------------
TOCHKA_med									;
			movlw		HIGH TOCHKA_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
			DT	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xc0,0x00,0x00,0x00,0x00,0x00 ; .
;--------------------------------------------
Cifra										;
			addwf		PCL,f				;
			goto		CIF_0			;
			goto		CIF_1			;
			goto		CIF_2			;
			goto		CIF_3			;
			goto		CIF_4			;
			goto		CIF_5			;
			goto		CIF_6			;
			goto		CIF_7			;
			goto		CIF_8			;
			goto		CIF_9			;
;--------------------------------------------
CIF_0
			movlw		HIGH TOCHKA_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
			DT 0x3E, 0x51, 0x49, 0x45, 0x3E,0x00 ;
;--------------------------------------------
CIF_1
			movlw		HIGH TOCHKA_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
  			 DT 0x00, 0x42, 0x7F, 0x40, 0x00,0x00 ;
;--------------------------------------------
CIF_2
			movlw		HIGH TOCHKA_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
 		  DT 0x42, 0x61, 0x51, 0x49, 0x46,0x00 ;
;-------------------------------------------
CIF_3
			movlw		HIGH TOCHKA_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
   DT 0x21, 0x41, 0x45, 0x4B, 0x31,0x00 ;
;-------------------------------------------
CIF_4
			movlw		HIGH TOCHKA_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
   DT 0x18, 0x14, 0x12, 0x7F, 0x10,0x00 ;
;--------------------------------------------
CIF_5
			movlw		HIGH TOCHKA_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
  	 DT 0x27, 0x45, 0x45, 0x45, 0x39,0x00 ;
;--------------------------------------------
CIF_6
			movlw		HIGH TOCHKA_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
   DT 0x3C, 0x4A, 0x49, 0x49, 0x30,0x00 ;
;--------------------------------------------
CIF_7
			movlw		HIGH TOCHKA_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
   DT 0x01, 0x71, 0x09, 0x05, 0x03,0x00 ;
;--------------------------------------------
CIF_8
			movlw		HIGH TOCHKA_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
   DT	 0x36, 0x49, 0x49, 0x49, 0x36,0x00 ;
;--------------------------------------------
CIF_9
			movlw		HIGH TOCHKA_med		;
			movwf		PCLATH				;
			movf		TEMP,W				; 
			addwf		PCL,F				;
   DT 0x06, 0x49, 0x49, 0x29, 0x1E,0x00 ;

;************************************************************
			END								;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
