www.pudn.com > tea5767hn.rar > TEA5767HN.ASM


 
 
FMRUH		EQU	3AH;	5K 
FMRUL		EQU	020H 
FMRDH		EQU	38H 
FMRDL		EQU	0E0H 
 
;FMRUH		EQU	3AH;	4K 
;FMRUL		EQU	00H 
;FMRDH		EQU	39H 
;FMRDL		EQU	00H 
 
 
;FMRUH		EQU	39H;	3K 
;FMRUL		EQU	0E0H 
;FMRDH		EQU	39H 
;FMRDL		EQU	20H 
 
;FMRUH		EQU	39H;	2K 
;FMRUL		EQU	0C0H 
;FMRDH		EQU	39H 
;FMRDL		EQU	40H 
 
 
;FMRUH		EQU	39H;	1K 
;FMRUL		EQU	0A0H 
;FMRDH		EQU	39H 
;FMRDL		EQU	60H 
 
 
;AMRUH		EQU	0EH;	3K 
;AMRUL		EQU	28H 
;AMRDH		EQU	0DH 
;AMRDL		EQU	0F8H 
 
 
;AMRUH		EQU	71H	;13-3K 
;AMRUL		EQU	40H 
;AMRDH		EQU	6FH 
;AMRDL		EQU	0C0H 
 
;AMRUH		EQU	71H	;13-2K 
;AMRUL		EQU	00H 
;AMRDH		EQU	70H 
;AMRDL		EQU	00H 
 
;AMRUH		EQU	3CH	;12-3K 
;AMRUL		EQU	00H 
;AMRDH		EQU	34H 
;AMRDL		EQU	80H 
 
AMRUH		EQU	3CH	;12-3K 
AMRUL		EQU	000H 
AMRDH		EQU	34H 
AMRDL		EQU	80H 
 
;AMRUH		EQU	38H;	3K 
;AMRUL		EQU	0A0H 
;AMRDH		EQU	037H 
;AMRDL		EQU	0D0H 
 
 
;AMRUH		EQU	0EH;	2K 
;AMRUL		EQU	20H 
;AMRDH		EQU	0EH 
;AMRDL		EQU	00H 
 
MEMCHADD	EQU     10H 
FM_MEMCH_ADDR	EQU	 20H     ;(20H+20X2) 
AM_MEMCH_ADDR   EQU     50H     ;(40H+20X2) 
;NO_TUNER:       DW      ZCHN,CHO,SPH,CHT,CHU,CHN,CHE,ZCHR 
 
CHECK_TEST_TUNER: 
	CALL	DELAY_100MS 
	JMP	PRO_RACH_I_CMD 
 
 
;**************************************************************** 
;Multiply 
;USE A,R,Z,FC STACK=0	 
;**************************************************************** 
MUL_BYTE: 
	MOV	Z,A 
	JNZ	MUL_BYTE1 
	CLR	R 
	RET 
MUL_BYTE1: 
	MOV	A,R 
	BTS0	FZ 
	RET 
MUL_BYTE2: 
	MOVMM	Y,R 
	MOV	A,Z 
	CLR	Z 
	CLR	R 
MUL_BYTE3: 
	ADD	Z,A 
	BTS0	FC 
	INCMS	R 
	DJNZ	Y,MUL_BYTE3 
	MOV	A,Z 
	RET 
 
 
PRO_NOTUNER_CMD: 
;	MOV_YZP NO_TUNER 
	RET     
 
PRO_TUNER_CMD: 
	JB	B_BAND,PRO_AM_CMD 
PRO_FM_CMD: 
PTUNERC1: 
	BSET	B_BAND 
	MOV    	A,S_FM_MEMCH 
	JMP	PTUNERC3 
PRO_AM_CMD: 
PTUNERC2: 
	BCLR	B_BAND 
	MOV	A,S_AM_MEMCH		 
PTUNERC3: 
	MOV	S_TU_MEMCH,A 
	MOVMV	S_DB_INPUT,#STUNER 
	JMP	SET_INPUT 
 
	 
CHECK_TUMUTE: 
	JB      B_MUTE,END_CHECK_TUMUTE 
	JB	B_STANDBY,END_CHECK_TUMUTE 
	MOV	A,S_TUMUTE_T 
	JNZ     END_CHECK_TUMUTE 
	JNB     B_TUMUTE,CHECK_TUMUTE2 
	BCLR     B_TUMUTE 
	MOVMV   S_TUMUTE_T,#05 
	JNB     B_TUNER,CHECK_TUMUTE2 
	JMP     FM_SEND 
CHECK_TUMUTE2: 
	MOV	A,S_TUMUTE_T 
	JNZ	END_CHECK_TUMUTE 
	JNB     B_MUTE_MUSIC,END_CHECK_TUMUTE 
	BCLR    B_MUTE_MUSIC 
	JMP	SET_MUSIC_VOL 
END_CHECK_TUMUTE: 
	RET 
 
/*VOL_STEP_UP: 
MV_STEP_UP: 
	MOVMM	S_VOL_BAK,S_DB_VOL 
	CLR	S_DB_VOL 
MV_STEP_UP1: 
     	CALL    SET_MUSIC_MV 
	MOV     A,S_DB_VOL 
	CJNE	A,S_VOL_BAK,MV_STEP_UP2 
	JMP   	END_MV_STEP_UP 
MV_STEP_UP2: 
	INCMS	S_DB_VOL 
	JMP     MV_STEP_UP1 
END_MV_STEP_UP: 
	RET*/ 
 
CHECK_AUTO: 
	JNB     B_AUTO,END_CHECK_AUTO 
	MOV	A,S_WORK_CODE 
	JNB     B_WORK,CHECK_AUTO5 
	JB      B_AUTO_UP,CHECK_AUTO3 
CHECK_AUTO1: 
	CJNE	A,#SMENU_D,CHECK_AUTO2 
	JMP	CHECK_AUTO5 
CHECK_AUTO2: 
	CJNE	A,#SRACH_D,CHECK_AUTO9 
	JMP	CHECK_AUTO5 
CHECK_AUTO3: 
	CJNE	A,#SMENU_I,CHECK_AUTO4 
	JMP	CHECK_AUTO5 
CHECK_AUTO4: 
	CJNE	A,#SRACH_I,CHECK_AUTO9 
CHECK_AUTO5: 
	BCLR    B_WORK 
	MOVMV	S_WORK_CODE,#NO_WORK 
	JNB     B_TUNED,CHECK_AUTO7 
	MOV     A,S_TUNED_COUNT 
	ADD	A,#01 
	CJNE    A,#04H,CHECK_AUTO6 
	CLR	S_TUNED_COUNT 
	BCLR    B_AUTO 
	BSET    B_EEPROM 
	MOVMV	S_EEPROM_T,#10 
	CLR	S_EEPROM_ST 
	JMP    	END_CHECK_AUTO 
CHECK_AUTO6: 
	MOV     S_TUNED_COUNT,A 
	JMP     SET_TUNER 
CHECK_AUTO7: 
	CLR	S_TUNED_COUNT 
	JNB     B_AUTO_UP,CHECK_AUTO8 
	JMP	PRO_RACH_I_CMD 
CHECK_AUTO8: 
	JMP     PRO_RACH_D_CMD 
CHECK_AUTO9: 
	BCLR	B_AUTO 
	CLR	S_KCON_T 
	CLR	S_KCON_ST 
	CLR	S_TUNED_COUNT 
END_CHECK_AUTO: 
	RET 
 
 
CHECK_SCAN: 
	JB	B_WORK,END_CHECK_SCAN 
	JNB	B_TUNER,END_CHECK_SCAN 
	JNB	B_SCAN,END_CHECK_SCAN 
	JNB     B_TUNED,CHECK_SCAN2 
	MOV     A,S_TUNED_COUNT 
	ADD	A,#01 
	CJNE    A,#04H,CHECK_SCAN1 
	CLR	S_TUNED_COUNT 
	CALL    DELAY_20MS 
	CALL    PTUMEMC1 
	INCMS	S_TU_MEMCH 
	MOV     A,S_TU_MEMCH 
	CJNE    A,#MAX_TU_MEMCH+1,CHECK_SCAN2 
	JMP     CHECK_SCAN3 
CHECK_SCAN1: 
	MOV     S_TUNED_COUNT,A 
	JMP     SET_TUNER 
CHECK_SCAN2: 
	CLR	S_TUNED_COUNT 
	CALL	PRO_RACH_I_CMD 
	JNB	B_RACH_MAX,END_CHECK_SCAN 
	JNB	B_TUNED,CHECK_SCAN3 
	CALL    PTUMEMC1 
CHECK_SCAN3: 
	BCLR    B_SCAN 
	CALL	PSCANC4 
END_CHECK_SCAN: 
	RET 
 
 
 
SET_TUNER: 
	BSET	B_BAND 
	BSET	B_TUNER 
TUNER_FM: 
	JMP	PFMRACH_IC1 
 
PRO_BAND_CMD: 
	JNB	B_TUNER,PRO_NOTUNER_CMD 
	JB	B_BAND,PBANDC2 
PBANDC1: 
	BSET	B_BAND 
	MOV    	A,S_FM_MEMCH 
	JMP	PBANDC3 
PBANDC2: 
	BCLR	B_BAND 
	MOV	A,S_AM_MEMCH	 
	MOV	S_TU_MEMCH,A 
PBANDC3: 
	BSET	B_TUMUTE 
	CALL	SET_TUNER 
	BCLR	B_TUMUTE 
	JMP	SET_TUNER 
 
 
PRO_TUSTEREO_CMD: 
	JNB	B_TUNER,PRO_NOTUNER_CMD 
	JB	B_TUSTEREO,PTUSTEREOC2 
PTUSTEREOC1: 
	BSET	B_TUSTEREO 
	JMP	PTUSTEREOC3	 
PTUSTEREOC2: 
	BCLR	B_TUSTEREO 
PTUSTEREOC3: 
	CALL	SET_TUNER 
	MOV_YZP	STEREO 
	JB	B_TUSTEREO,PTUSTEREOC4 
	MOV_YZP	MONO 
PTUSTEREOC4: 
	JMP	GET_VFD_CHARS 
 
PRO_SCAN_CMD: 
	JNB	B_TUNER,PRO_NOTUNER_CMD 
PSCANC1: 
	JB	B_SCAN,PSCANC4 
	CALL	MUTE_MUSIC 
	BSET	B_MUTE_MUSIC 
	BSET	B_SCAN 
	BSET    B_MEM_MODE 
 	BSET    B_TUNED 
	CLR	S_TU_MEMCH 
	CLR     S_TUNED_COUNT 
	JNB     B_BAND,PSCANC2	 
	CLR     S_FM_CHL 
	CLR	S_FM_CHH 
	JMP    	END_PSCANC 
PSCANC2: 
	CLR	S_AM_CHL 
	CLR	S_AM_CHH 
	JMP	END_PSCANC 
PSCANC4: 
	BCLR	B_SCAN 
	MOV	A,#00 
	CALL	PMEMCH_IC1 
END_PSCANC: 
	RET 
 
PRO_TUMEM_CMD: 
	JNB     B_TUNER,PRO_NOTUNER_CMD 
	BSET    B_MEM_MODE 
	JNB	B_TUMEM,PTUMEMC4 
PTUMEMC1: 
	BCLR	B_TUMEM 
	BCLR	FC 
	MOV	A,S_TU_MEMCH	 
	JNB     B_BAND,PTUMEMC2 
	MOV	S_FM_MEMCH,A 
	BCLR	FC	 
	RLC	S_FM_MEMCH 
	ADD	A,#FM_MEMCH_ADDR 
	MOV	R,A 
	MOVMM	R3,S_FM_CHL 
	MOVMM	R4,S_FM_CHH 
	JMP     PTUMEMC3 
PTUMEMC2: 
	MOV	S_AM_MEMCH,A 
	BCLR	FC 
	RLC	S_AM_MEMCH 
	ADD     A,#AM_MEMCH_ADDR 
	MOV	R,A 
	MOVMM	R3,S_AM_CHL 
	MOVMM	R4,S_AM_CHH 
 PTUMEMC3: 
	CALL	DELAY_20MS 
	MOVMM	R2,R 
	CALL	WR_EEPROM_TWO_BYTE 
	JMP	SET_TUNER 
PTUMEMC4: 
	BSET	B_TUMEM 
	CALL	DIS_TUCH 
	MOVMV	S_CHAR_T,#255 
	RET 
 
 
READ_MEMCH: 
	BCLR	FC 
	RLC	S_TU_MEMCH 
	JNB     B_BAND,READ_MEMCH1 
	ADD     A,#FM_MEMCH_ADDR 
	JMP    	READ_MEMCH2 
READ_MEMCH1: 
	ADD     A,#AM_MEMCH_ADDR 
READ_MEMCH2: 
	MOV	R2,A 
	CALL	RD_EEPROM_A_BYTE 
	MOV	R3,A 
	CALL	RD_EEPROM_A_BYTE 
	MOV	R4,A 
READ_MEMCH3: 
	JB	B_BAND,READ_MEMCH4 
	CALL    CHECK_AM_ERR 
	MOVMM	S_AM_CHL,R3 
	MOVMM	S_AM_CHH,R4 
	JMP    	READ_MEMCH5 
READ_MEMCH4: 
	CALL    CHECK_FM_ERR 
	MOVMM	S_FM_CHL,R3 
	MOVMM	S_FM_CHH,R4 
READ_MEMCH5: 
	JMP	SET_TUNER 
 
CHECK_FM_ERR: 
	MOV	A,R4 
	BTS0	FZ 
	JMP	END_CHECK_FM_ERR 
CHECK_FM_ERR1: 
	CJNE	A,#01H,CHECK_FM_ERR2 
	MOV	A,R3 
	SUB	A,#9BH 
	JNC	END_CHECK_FM_ERR 
CHECK_FM_ERR2:	 
	CLR	R4 
	CLR	R3 
END_CHECK_FM_ERR: 
	BCLR	R3.0 
	RET 
 
CHECK_AM_ERR: 
	CLR	R4 
	MOV	A,R3 
	SUB	A,#7CH+1 
	BTS0	FC 
	CLR	R3 
END_CHECK_AM_ERR: 
	RET 
 
PRO_TUMEM_ADDA_CMD: 
	JNB	B_TUNER,PRO_NOTUNER_CMD 
	JB	B_TUMEM_ADDA,PTUMEM_ADDAC1 
	BSET	B_TUMEM_ADDA 
	CLR	S_TUMEM_ADDA 
PTUMEM_ADDAC1: 
	INCS	S_TUMEM_ADDA 
	CJNE	A,#02,PTUMEM_ADDAC2 
	MOV	A,#00 
PTUMEM_ADDAC2: 
	MOV	S_TUMEM_ADDA,A 
PTUMEM_ADDAC3: 
	MOV_YZP	TUCH 
	CALL    GET_VFD_CHARS 
	MOVMV	S_VFD_CH2,#ZHH 
	MOVMM   S_VFD_CH1,S_TUMEM_ADDA 
	CLR     S_VFD_CH0 
	RET 
 
PRO_MEMCH0_CMD: 
	MOV	A,#00 
PMEMCH01: 
	JNB	B_TUNER,PRO_NOTUNER_CMD 
	MOV	R1,A 
	MOV	A,S_TUMEM_ADDA 
	B0MOV	R,#10 
	CALL	MUL_BYTE 
	ADD	A,R1 
SET_TUMEM_ADDA: 
	BCLR	B_TUMEM_ADDA 
	CLR	S_TUMEM_ADDA	 
	JMP	PMEMCH_IC1 
 
PRO_MEMCH1_CMD: 
	MOV	A,#01 
	JMP	PMEMCH01 
 
PRO_MEMCH2_CMD: 
	MOV	A,#02 
	JMP	PMEMCH01 
 
PRO_MEMCH3_CMD: 
	MOV	A,#03 
	JMP	PMEMCH01 
 
PRO_MEMCH4_CMD: 
	MOV	A,#04 
	JMP	PMEMCH01 
 
PRO_MEMCH5_CMD: 
	MOV	A,#05 
	JMP	PMEMCH01 
 
PRO_MEMCH6_CMD: 
	MOV	A,#06 
	JMP	PMEMCH01 
 
PRO_MEMCH7_CMD: 
	MOV	A,#07 
	JMP	PMEMCH01 
 
PRO_MEMCH8_CMD: 
	MOV	A,#08 
	JMP	PMEMCH01 
 
PRO_MEMCH9_CMD: 
	MOV	A,#09 
	JMP	PMEMCH01 
 
 
 
 
 
PRO_MEMCH_I_CMD: 
	JNB	B_TUNER,PRO_NOTUNER_CMD 
        MOV	A,S_TU_MEMCH 
	B0MOV	R,#MAX_TU_MEMCH 
	CALL	PARAMETER_ADJUST 
PMEMCH_IC1: 
        MOV     S_TU_MEMCH,A 
	JNB     B_BAND,PMEMCH_IC3  
	CJNE    A,S_FM_MEMCH,PMEMCH_IC2 
	JMP     PMEMCH_IC6 
PMEMCH_IC2: 
	MOV	S_FM_MEMCH,A 
	JB	B_TUMEM,PMEMCH_IC6 
	JMP    	PMEMCH_IC5 
PMEMCH_IC3: 
	CJNE    A,S_AM_MEMCH,PMEMCH_IC4 
	JMP     PMEMCH_IC6 
PMEMCH_IC4: 
	MOV	S_AM_MEMCH,A 
 
	JB	B_TUMEM,PMEMCH_IC6 
PMEMCH_IC5: 
	CALL    DELAY_20MS	 
	CALL	READ_MEMCH 
PMEMCH_IC6: 
	CALL	CLR_MENU_BIT 
	BSET	B_MENU_MEMCH 
        JMP	DIS_TUCH 
	 
	 
 
 
PRO_MEMCH_D_CMD: 
        JNB	B_TUNER,PRO_NOTUNER_CMD 
        MOV	A,S_TU_MEMCH 
	SUB	A,#01 
	CJNE	A,#0FFH,PMEMCH_DC2 
	MOV	A,#MAX_TU_MEMCH 
PMEMCH_DC2: 
        JMP	PMEMCH_IC1 
 
 
 
PRO_RACH_I_CMD: 
        JNB	B_TUNER,PRO_NOTUNER_CMD 
        JB	B_SCAN,PRACH_IC1 
	CALL	CHECK_KEY_AUTO 
        BSET    B_AUTO_UP 
PRACH_IC1: 
	JMP	PRO_FMRACH_I_CMD 
	 
PRO_RACH_D_CMD: 
        JNB	B_TUNER,PRO_NOTUNER_CMD 
        JB	B_SCAN,PRACH_DC1 
	CALL	CHECK_KEY_AUTO 
        BCLR    B_AUTO_UP 
PRACH_DC1: 
	JMP	PRO_FMRACH_D_CMD 
 
KEY_CON_T	EQU	23 
 
CHECK_KEY_AUTO: 
	MOV	A,S_KCON_T 
	JNZ	CHECK_KEY_AUTO1 
	MOVMV	S_KCON_T,#KEY_CON_T 
	CLR	S_KCON_ST 
	JMP	END_CHECK_KEY_AUTO 
CHECK_KEY_AUTO1: 
        BCLR    B_MEM_MODE 
        INCMS	S_KCON_ST 
	MOV	A,S_KCON_ST 
	SUB	A,#02 
	JNC	END_CHECK_KEY_AUTO 
	BSET	B_AUTO 
END_CHECK_KEY_AUTO: 
	RET 
 
 
 
PRO_FMRACH_I_CMD: 
        BCLR	B_RACH_MAX 
	MOV	A,S_FM_CHL 
	ADD	A,#01H 
	MOV	S_FM_CHL,A 
	MOV	A,#00 
	ADC	A,S_FM_CHH 
	MOV	S_FM_CHH,A 
;	CJNE	A,#01H,PFMRACH_IC1 
;	MOV	A,S_FM_CHL 
;	CJNE	A,#9CH,PFMRACH_IC1 
;	CLR	S_FM_CHL 
;	CLR	S_FM_CHH 
	BSET	B_RACH_MAX 
PFMRACH_IC1: 
;        BSET	B_TUMUTE 
	CALL	FM_SEND 
;	BCLR	B_TUNED 
;        JB	B_SCAN,PFMRACH_IC2 
;        JB      B_AUTO,PFMRACH_IC2 
;        JMP     PFMRACH_IC3 
;PFMRACH_IC2: 
;        BSET	B_TUMUTE 
;	MOVMV	S_TUMUTE_T,#10 
	JMP	DIS_TUNER 
PFMRACH_IC3: 
        MOVMV   S_TUMUTE_T,#15 
	BSET	B_MUTE_MUSIC 
	CALL    MUTE_MUSIC 
	BCLR    B_AUTO 
	BCLR	B_TUMUTE 
        CALL	FM_SEND 
        CALL	FM_SEND 
        JMP     DIS_TUNER                      ;display  sub 
;**************************************** 
PRO_FMRACH_D_CMD: 
	BCLR	B_RACH_MAX 
	MOV	A,S_FM_CHL 
	SUB	A,#02H 
	MOV	S_FM_CHL,A 
	MOV	A,S_FM_CHH 
	BTS1	FC 
	SUB	A,#01 
	MOV	S_FM_CHH,A 
	CJNE	A,#0FFH,PFMRACH_DC1 
	MOVMV	S_FM_CHH,#01H 
	MOVMV	S_FM_CHL,#9AH 
PFMRACH_DC1: 
        JMP	PFMRACH_IC1 
 
 
DIS_TUNER: 
	CALL    CLR_MENU_BIT 
	BCLR	B_MENU_MEMCH 
	BSET    B_MENU_RACH 
DIS_TUNER1: 
	JNB	B_BAND,AM_DIS 
FMDIS:	 
	MOV_YZP	FM 
	CALL    GET_VFD_CHARS 
	BSET    B_VFD_DP 
;	MOV	A,S_FM_CHL 
;	B0MOV	R,#05H 
;	CALL	MUL_BYTE 
;	MOV	R4,A 
;	MOVMM	R5,R 
;	MOV	A,S_FM_CHH 
;	AND	A,#7FH 
;	B0MOV	R,#05H 
;	CALL	MUL_BYTE 
;	ADD	R5,A 
;	MOV	A,#2EH 
;	ADD	R4,A 
;	MOV	A,#22H 
;	ADC	R5,A	 
;	CALL	HB2 
;	MOV	A,#01H 
;	BTS1	R3.0 
;	MOV	A,#SPH 
;	MOV	S_VFD_CH4,A 
;	MOV	A,R2 
;	CALL	ONE_TWO 
;	MOV	S_VFD_CH3,A 
;	MOVMM	S_VFD_CH2,R 
;	MOV	A,R1 
;	CALL	ONE_TWO 
;	MOV	S_VFD_CH0,A 
;	MOVMV	S_VFD_CH1,#DP 
	MOV	A,S_FM_CHH 
	CALL	ONE_TWO 
	MOV	S_VFD_CH3,A 
	MOVMM	S_VFD_CH2,R	 
	MOV	A,S_FM_CHL 
	CALL	ONE_TWO 
	MOV	S_VFD_CH1,A 
	MOVMM	S_VFD_CH0,R	 
	JMP     DIS_TUNER2 
 
AM_DIS: 
        MOV_YZP	AM 
        CALL    GET_VFD_CHARS 
	MOV	A,S_AM_CHL 
	B0MOV	R,#09H 
	CALL	MUL_BYTE 
	ADD	A,#0AH 
	MOV	R4,A 
	MOV	A,#02H 
	ADC	A,R	 
	MOV	R5,A 
	CALL	HB2 
	MOV	A,R2 
	CALL	ONE_TWO 
	XCH	A,R 
	MOV	S_VFD_CH2,A 
	MOV	A,#01 
	BTS1	R.0 
	MOV	A,#SPH 
	MOV	S_VFD_CH3,A 
	MOV	A,R1 
	CALL	ONE_TWO 
	MOV	S_VFD_CH1,A 
	MOVMM	S_VFD_CH0,R 
DIS_TUNER2: 
	RET 
 
 
HB2: 
      	BCLR	FC 
	CLR	R1 
	CLR	R2 
	CLR	R3 
      	B0MOV 	Z,#10H 
HB3: 
	RLCM	R4 
	RLCM	R5 
      	MOV 	A,R1 
      	ADC 	A,R1 
	CALL	TUNE_DA 
      	MOV 	R1,A 
      	MOV 	A,R2 
      	ADC 	A,R2 
	CALL	TUNE_DA 
      	MOV 	R2,A 
      	MOV 	A,R3 
      	ADC 	A,R3 
      	MOV 	R3,A 
      	DJNZ 	Z,HB3 
      	RET 
 
TUNE_DA: 
	MOVBB	B_BAK_FC,FC 
	MOV	R,A 
	JNB	FDC,TUNE_DA1 
	ADD	A,#06H 
	JMP	TUNE_DA2 
TUNE_DA1: 
	AND	A,#0FH 
	CMPRS	A,#0AH 
	NOP 
	MOV	A,R 
	JNB	FC,TUNE_DA2 
	ADD	A,#06 
TUNE_DA2: 
	MOV	R,A 
	ORBB	FC,B_BAK_FC	 
	JNB	FC,TUNE_DA3 
	ADD	A,#60H 
	JMP	TUNE_DA4 
TUNE_DA3: 
	AND	A,#0F0H 
	CMPRS	A,#0A0H 
	NOP 
	MOV	A,R 
	JNB	FC,TUNE_DA4 
	ADD	A,#60H 
TUNE_DA4: 
	ORBB	FC,B_BAK_FC 
	RET 
 
 
ONE_TWO: 
        MOV	R,A 
	SWAPM	R 
	AND	A,#0FH 
	XCH	A,R 
	AND	A,#0FH 
	RET 
 
DIS_TUCH: 
        CALL    CLR_MENU_BIT 
	BCLR	B_MENU_RACH 
        BSET    B_MENU_MEMCH 
        BSET    B_TUMENU_ONE 
        MOV_YZP	TUCH 
        CALL    GET_VFD_CHARS 
	JB	B_TUMEM,$+3 
        MOVMV   S_CHAR_T,#50 
	INCS	S_TU_MEMCH 
        B0MOV   R,#10 
	CALL	DIV_BYTE 
        MOV     S_VFD_CH1,A 
        MOVMV   S_VFD_CH0,R 
        RET 
 
 
ADDR_TEA5767HN_WRITE	EQU	0C0H 
ADDR_TEA5767HN_READ	EQU	0C1H 
 
FM_SEND: 
	MOVMV	R2,S_FM_CHH 
	MOVMV	R3,S_FM_CHL 
	MOVMV	R4,#11010000B 
	MOVMV	R5,#00010001B 
	MOVMV	R6,#00000000B 
;	MOVMV	R6,#01000000B 
;	MOVMV	R6,#10000000B 
;	MOVMV	R6,#11000000B 
WRITE_TEA5767HN: 
	BCLR	P_TEA5767HN_DATA 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	BCLR	P_TEA5767HN_CLK 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	MOV	A,#ADDR_TEA5767HN_WRITE 
	CALL	WRITE_TEA5767HN_A_BYTE 
	MOV	A,R2 
	CALL	WRITE_TEA5767HN_A_BYTE 
	MOV	A,R3 
	CALL	WRITE_TEA5767HN_A_BYTE 
	MOV	A,R4 
	CALL	WRITE_TEA5767HN_A_BYTE 
	MOV	A,R5 
	CALL	WRITE_TEA5767HN_A_BYTE 
	MOV	A,R6 
	CALL	WRITE_TEA5767HN_A_BYTE 
	BSET	P_TEA5767HN_CLK 
	NOP 
	NOP 
	NOP 
	NOP 
	BSET	P_TEA5767HN_DATA 
	RET 
 
WRITE_TEA5767HN_A_BYTE: 
	MOV	R1,A 
	MOVMV	R,#08H 
WRITE_TEA5767HN_A_BYTE1: 
	RLCM    R1               ;MSB FIRST SO RLC D7->C 
	JB	FC,WRITE_TEA5767HN_A_BYTE2 
	BCLR	P_TEA5767HN_DATA 
	JMP	WRITE_TEA5767HN_A_BYTE3 
WRITE_TEA5767HN_A_BYTE2: 
	BSET	P_TEA5767HN_DATA 
WRITE_TEA5767HN_A_BYTE3: 
	NOP	     		;SEND DATA TO MV 
	NOP                     ;>250nS SETUP TIME OF DATA 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	BSET    P_TEA5767HN_CLK       ;__|~~~ CLK WRITE A BIT 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	BCLR    P_TEA5767HN_CLK       ;~~~|__ CLK 
	DJNZ    R,WRITE_TEA5767HN_A_BYTE1 	;ALL 8 BITS HAVE SEND? 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	BSET    P_TEA5767HN_CLK       ;___|~~~ CLK 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	BCLR	P_TEA5767HN_CLK	;ACK 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
  	BCLR	P_TEA5767HN_DATA 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
   	RET 
;****************************************************************