;--------------------------------------------------------
; File Created by ChiponCC : aolisn inc.
; Version 3.0.4#6752 (Jul  6 2017 15:09:47) (MSVC)
; This file was generated Tue Apr 03 20:26:56 2018
;--------------------------------------------------------
; chipon port for the 16-bit core
;--------------------------------------------------------
;	.file	"../kf8s_touch_g_lib.c"
	.radix dec
	.include "KF8S1011.inc"
;--------------------------------------------------------
; external declarations
;--------------------------------------------------------
	.extern	_init_mcu
	.extern	__R2PCL
	.extern	_TOUCH_DEBUG_TRS_DEAL
	.extern	_TOUCH_DEBUG_SEND_OUT
	.extern	_delay_ms
	.extern	_delay_us
	.extern	_PSW_bits
	.extern	_P0_bits
	.extern	_P2_bits
	.extern	_P1_bits
	.extern	_P3_bits
	.extern	_P4_bits
	.extern	_INTCTL_bits
	.extern	_EIF1_bits
	.extern	_EIF2_bits
	.extern	_T1CTL_bits
	.extern	_PWMCTL_bits
	.extern	_CMCTL1_bits
	.extern	_ANSEH_bits
	.extern	_ADCCTL0_bits
	.extern	_OPTR_bits
	.extern	_TR0_bits
	.extern	_TR2_bits
	.extern	_TR1_bits
	.extern	_TR3_bits
	.extern	_TR4_bits
	.extern	_EIE1_bits
	.extern	_EIE2_bits
	.extern	_PCTL_bits
	.extern	_OSCCTL_bits
	.extern	_ANSEL_bits
	.extern	_PUR_bits
	.extern	_IOCL_bits
	.extern	_ADCCTL1_bits
	.extern	_T3L_bits
	.extern	_CTCTL_bits
	.extern	_RSCTL_bits
	.extern	_OSCLDOCAL_bits
	.extern	_BRCTL_bits
	.extern	_TSCTL_bits
	.extern	_EUBRGL_bits
	.extern	_EUBRGH_bits
	.extern	_sentbuf1
	.extern	_sentbuf2
	.extern	_sentbuf3
	.extern	_sentbuf4
	.extern	__KF8_LIBi_channel_flag_
	.extern	__KF8_LIBc_channel_
	.extern	__KF8_LIBc_channel_Buf
	.extern	__KF8_LIBi_Date_Change_
	.extern	__KF8_LIBc_baseline_count_
	.extern	__KF8_LIBi_buff_hit_
	.extern	__KF8_LIBi_buff_baseline_
	.extern	__KF8_LIBc_touch_count_
	.extern	_CHS_AMOUNT
	.extern	_TCS_AMOUNT
	.extern	__KF8_Disturb_Protect_Circle_
	.extern	__KF8_DoubleKey_Compages_Limitable_Circle_
	.extern	__KF8_Key_Max_Pressed_Limitable_Circle_
	.extern	__KF8_BaseLine_Update_Circle_Count_For_UP_
	.extern	__KF8_BaseLine_Update_Circle_Count_For_Down_
	.extern	__KF8_Define_Disturb_Channels_Amount_
	.extern	__KF8_BasicLine_UP_Noise_Threshold_
	.extern	__KF8_BasicLine_Down_Noise_Threshold_
	.extern	__KF8_Data_Steady_Threshold_Set_
	.extern	__KF8_Inside_Reference_Channel_Disturb_Threshold_Set_
	.extern	__KF8_Inside_Reference_Channel_Declare_
	.extern	__KF8_Config_Finger_Threshold
	.extern	__KF8_TOUCH_CH_EN
	.extern	_T0
	.extern	_PCL
	.extern	_PSW
	.extern	_P0
	.extern	_P2
	.extern	_P1
	.extern	_P3
	.extern	_P4
	.extern	_PCH
	.extern	_INTCTL
	.extern	_EIF1
	.extern	_EIF2
	.extern	_T1L
	.extern	_T1H
	.extern	_T1CTL
	.extern	_PWMCTL
	.extern	_CMCTL1
	.extern	_VRECAL
	.extern	_ANSEH
	.extern	_ADCDATAH
	.extern	_ADCCTL0
	.extern	_OPTR
	.extern	_TR0
	.extern	_TR2
	.extern	_TR1
	.extern	_TR3
	.extern	_TR4
	.extern	_EIE1
	.extern	_EIE2
	.extern	_PCTL
	.extern	_OSCCTL
	.extern	_OSCCAL0
	.extern	_ANSEL
	.extern	_PUR
	.extern	_IOCL
	.extern	_OSCCAL1
	.extern	_BADDRH
	.extern	_BADDRL
	.extern	_EECTL1
	.extern	_EECTL2
	.extern	_ADCDATAL
	.extern	_ADCCTL1
	.extern	_T3L
	.extern	_CTCTL
	.extern	_RSCTL
	.extern	_TXSDR
	.extern	_RXSDR
	.extern	_OSCLDOCAL
	.extern	_T1U
	.extern	_BRCTL
	.extern	_TSCTL
	.extern	_EUBRGL
	.extern	_EUBRGH

	.extern STK12
	.extern STK11
	.extern STK10
	.extern STK09
	.extern STK08
	.extern STK07
	.extern STK06
	.extern STK05
	.extern STK04
	.extern STK03
	.extern STK02
	.extern STK01
	.extern STK00
;--------------------------------------------------------
; global declarations
;--------------------------------------------------------
	.global	__KF8S_Get_Ver_General_
	.global	__KF8S_Touch_TEST_General_
	.global	__KF8S_Touch_Process_General_
	.global	__KF8S_Init_Touch_General_
	.global	__KF8S_Lib_Set_General_Parameter
	.global	__KF8_lib_Wave_Protect_Time_Count_S_T_
	.global	__KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_
	.global	__KF8_lib_Key_Double_Timer_Protect_S_T_
	.global	__KF8_lib_Key_Down_Count_S_T_
	.global	__KF8_LIBc_finger_OUT_First_S_T_
	.global	__KF8_LIBc_finger_OUT_Second_S_T_
	.global	__KF8_lib_Finded_MAX_I_S_T_
	.global	__KF8_lib_Finded_MAX_J_S_T_
	.global	__KF8_lib_CH_No_WA_Change_Flag_S_T_
	.global	__KF8_lib_CH_DW_Change_Count_S_T_
	.global	__KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	.global	__KF8_lib_bahualvtemportemp_S_T_
	.global	__KF8_lib_Date_Uchar_Temp_S_T_
	.global	_change_buf_KF8_Lib_S_T_
	.global	_i_KF8_lib_S_T_
	.global	_result_temp_KF8_Lib_S_T_
	.global	_Addr_Copy_Int_KF8_Lib_S_T_
	.global	__KF8_LIBi_Touch_New_Date_S_T_
	.global	__KF8_Temp_Cur_A_S_T_
	.global	__KF8_Temp_Cur_B_S_T_
	.global	__KF8S_Data_Steady_Flag_
	.global	__KF8_LIBt_buff_bit_S_T_

;--------------------------------------------------------
; global definitions
;--------------------------------------------------------
UD_kf8s_touch_g_lib_0	.udata
__KF8_lib_Wave_Protect_Time_Count_S_T_	.res	1

UD_kf8s_touch_g_lib_1	.udata
__KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_	.res	2

UD_kf8s_touch_g_lib_2	.udata
__KF8_lib_Key_Double_Timer_Protect_S_T_	.res	2

UD_kf8s_touch_g_lib_3	.udata
__KF8_lib_Touch_Bits_	.res	1

UD_kf8s_touch_g_lib_4	.udata
__KF8_lib_Key_Down_Count_S_T_	.res	1

UD_kf8s_touch_g_lib_5	.udata
__KF8_LIBc_finger_OUT_First_S_T_	.res	1

UD_kf8s_touch_g_lib_6	.udata
__KF8_LIBc_finger_OUT_Second_S_T_	.res	1

UD_kf8s_touch_g_lib_7	.udata
__KF8_lib_Finded_MAX_I_S_T_	.res	1

UD_kf8s_touch_g_lib_8	.udata
__KF8_lib_Finded_MAX_J_S_T_	.res	1

UD_kf8s_touch_g_lib_9	.udata
__KF8_lib_CH_No_WA_Change_Flag_S_T_	.res	2

UD_kf8s_touch_g_lib_10	.udata
__KF8_lib_CH_DW_Change_Count_S_T_	.res	1

UD_kf8s_touch_g_lib_11	.udata
__KF8_lib_CH_DW_Change_Dealed_Flag_S_T_	.res	2

UD_kf8s_touch_g_lib_12	.udata
__KF8_lib_bahualvtemportemp_S_T_	.res	1

UD_kf8s_touch_g_lib_13	.udata
__KF8_lib_Date_Uchar_Temp_S_T_	.res	1

UD_kf8s_touch_g_lib_14	.udata
_change_buf_KF8_Lib_S_T_	.res	1

UD_kf8s_touch_g_lib_15	.udata
_i_KF8_lib_S_T_	.res	1

UD_kf8s_touch_g_lib_16	.udata
_result_temp_KF8_Lib_S_T_	.res	2

UD_kf8s_touch_g_lib_17	.udata
_Addr_Copy_Int_KF8_Lib_S_T_	.res	1

UD_kf8s_touch_g_lib_18	.udata
__KF8_LIBi_Touch_New_Date_S_T_	.res	2

UD_kf8s_touch_g_lib_19	.udata
__KF8_Temp_Cur_A_S_T_	.res	2

UD_kf8s_touch_g_lib_20	.udata
__KF8_Temp_Cur_B_S_T_	.res	2

UD_kf8s_touch_g_lib_21	.udata
__KF8S_Data_Steady_Flag_	.res	2

;--------------------------------------------------------
; absolute symbol definitions
;--------------------------------------------------------
;--------------------------------------------------------
; compiler-defined variables
;--------------------------------------------------------
UDL_kf8s_touch_g_lib_0	.udata
r0x1031	.res	1
UDL_kf8s_touch_g_lib_1	.udata
r0x102A	.res	1
UDL_kf8s_touch_g_lib_2	.udata
r0x102B	.res	1
UDL_kf8s_touch_g_lib_3	.udata
r0x102D	.res	1
UDL_kf8s_touch_g_lib_4	.udata
r0x102E	.res	1
UDL_kf8s_touch_g_lib_5	.udata
r0x102F	.res	1
UDL_kf8s_touch_g_lib_6	.udata
r0x1030	.res	1
UDL_kf8s_touch_g_lib_7	.udata
r0x102C	.res	1
;--------------------------------------------------------
; initialized data
;--------------------------------------------------------

ID_kf8s_touch_g_lib_0	.code
__KF8_LIBt_buff_bit_S_T_
	RRET R0, #0x01
	RRET R0, #0x00
	RRET R0, #0x02
	RRET R0, #0x00
	RRET R0, #0x04
	RRET R0, #0x00
	RRET R0, #0x08
	RRET R0, #0x00
	RRET R0, #0x10
	RRET R0, #0x00
	RRET R0, #0x20
	RRET R0, #0x00
	RRET R0, #0x40
	RRET R0, #0x00
	RRET R0, #0x80
	RRET R0, #0x00
	RRET R0, #0x00
	RRET R0, #0x01
	RRET R0, #0x00
	RRET R0, #0x02
	RRET R0, #0x00
	RRET R0, #0x04
	RRET R0, #0x00
	RRET R0, #0x08
	RRET R0, #0x00
	RRET R0, #0x10
	RRET R0, #0x00
	RRET R0, #0x20
	RRET R0, #0x00
	RRET R0, #0x40
	RRET R0, #0x00
	RRET R0, #0x80

;--------------------------------------------------------
; overlayable items in internal ram 
;--------------------------------------------------------
;	.udata_ovr


func.__KF8S_Get_Ver_General_	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  __KF8S_Get_Ver_General_	;Function start
; 2 exit points
;has an exit
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
__KF8S_Get_Ver_General_	;Function start
; 2 exit points
;	op : RETURN
;	.line	2827; "../kf8s_touch_g_lib.c"	return Ver_S_G;
	MOV	R0,# 0x15
;	op : LABEL
;	op : ENDFUNCTION
	CRET	
; exit point of __KF8S_Get_Ver_General_



func.__KF8S_Touch_TEST_General_	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  __KF8S_Touch_TEST_General_	;Function start
; 2 exit points
;has an exit
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
__KF8S_Touch_TEST_General_	;Function start
; 2 exit points
;	op : INLINEASM
	CLR PSW,0
	BANKSEL __KF8_LIBc_channel_
	RLCR __KF8_LIBc_channel_
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV _Addr_Copy_Int_KF8_Lib_S_T_,R0
	
;	op : INLINEASM
	;;
	BANKSEL _CTCTL
	JB _CTCTL,4
	JMP USE_T1_DATE_IN
USE_T13_DATE_IN1:
	BANKSEL T1U
	MOV R1,T1U
	BANKSEL __KF8_lib_Touch_Bits_
	JNB __KF8_lib_Touch_Bits_,7 ;
	JMP USE_16bit_END1
	CLR PSW,0
	RRC R1
USE_16bit_END1:
	BANKSEL T3L
	MOV R0,T3L
	JMP DATE_READ_IN_VAR1
USE_T1_DATE_IN1:
	BANKSEL T1H
	MOV R1,T1H
	BANKSEL T1L
	MOV R0,T1L
DATE_READ_IN_VAR1:
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	MOV __KF8_LIBi_Touch_New_Date_S_T_+1,R1
	MOV __KF8_LIBi_Touch_New_Date_S_T_,R0
	CLR PSW,0
	RRC __KF8_LIBi_Touch_New_Date_S_T_+1
	RRC __KF8_LIBi_Touch_New_Date_S_T_
	;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_ ;;偏移量
	ADD R0,# (__KF8_LIBi_buff_hit_ + 1)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	CLR PSW,0
	RRC R1
	ST [R0],R1
	DEC R0
	LD R1,[R0]
	RRC R1
	ST [R0],R1
	;;
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	ADD __KF8_LIBi_Touch_New_Date_S_T_,R1
	INC R0
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	JNB PSW,0
	INC R1
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	ADD R1,__KF8_LIBi_Touch_New_Date_S_T_+1
	BANKSEL __KF8_LIBi_buff_hit_
	ST [R0],R1
	DEC R0
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	MOV R1,__KF8_LIBi_Touch_New_Date_S_T_
	BANKSEL __KF8_LIBi_buff_hit_
	ST [R0],R1
	
;	op : GET_VALUE_AT_ADDRESS
;	.line	2673; "../kf8s_touch_g_lib.c"	if(!_KF8_lib_Touch_Bits_._KF8_Touch_Work_Flag)
	BANKSEL	__KF8_lib_Touch_Bits_
	JNB	__KF8_lib_Touch_Bits_, 0
	JMP	_00147_DS_
;	op : INLINEASM
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_ ;;
	ADD R0, #(__KF8_LIBi_buff_hit_)
	BANKSEL __KF8_LIBi_buff_hit_ ;;_KF8_LIBi_buff_hit_ low
	LD R1,[R0]
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_ ;;
	ADD R0, #(__KF8_LIBi_buff_baseline_)
	BANKSEL __KF8_LIBi_buff_baseline_ ;;_KF8_LIBi_buff_baseline_ low
	ST [R0],R1
	;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_ ;;
	ADD R0, #(__KF8_LIBi_buff_hit_+1)
	BANKSEL __KF8_LIBi_buff_hit_ ;; _KF8_LIBi_buff_hit_ high
	LD R1,[R0]
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_ ;;
	ADD R0, #(__KF8_LIBi_buff_baseline_+1)
	BANKSEL __KF8_LIBi_buff_baseline_ ;;_KF8_LIBi_buff_baseline_ high
	ST [R0],R1
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBc_channel_
	MOV R0, __KF8_LIBc_channel_ ;;
	ADD R0, #(__KF8_LIBc_touch_count_)
	MOV R1,#0x00
	BANKSEL __KF8_LIBc_touch_count_
	ST [R0],R1
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBc_channel_
	MOV R0, __KF8_LIBc_channel_
	ADD R0, #(__KF8_LIBc_baseline_count_)
	MOV R1,#0x00
	BANKSEL __KF8_LIBc_baseline_count_
	ST [R0],R1
	
;	op : IFX
;	.line	2721; "../kf8s_touch_g_lib.c"	if(_KF8_LIBc_channel_==0)
	MOV	R0,# 0x00
	BANKSEL	__KF8_LIBc_channel_
	ORL	R0, __KF8_LIBc_channel_
	JB	PSW, 2
	JMP	_00147_DS_
;	op : +
;	.line	2723; "../kf8s_touch_g_lib.c"	_KF8_lib_Date_Uchar_Temp_S_T_++;
	BANKSEL	__KF8_lib_Date_Uchar_Temp_S_T_
	INC	__KF8_lib_Date_Uchar_Temp_S_T_
;	op : >
;swapping arguments (AOP_TYPEs 1/3)
;unsigned compare: left >= lit(0x81=129), size=1
;	.line	2724; "../kf8s_touch_g_lib.c"	if(_KF8_lib_Date_Uchar_Temp_S_T_>128) //不按整圈了，从0算起，省代码
	MOV	R0,# 0x81
	BANKSEL	__KF8_lib_Date_Uchar_Temp_S_T_
	SUB	R0, __KF8_lib_Date_Uchar_Temp_S_T_
;comparing bytes at offset 0
	JB	PSW, 0
	JMP	_00147_DS_
;	op : =
;	.line	2726; "../kf8s_touch_g_lib.c"	_KF8_lib_Touch_Bits_._KF8_Touch_Work_Flag=1;  //进入工作状态
	BANKSEL	__KF8_lib_Touch_Bits_
	SET	__KF8_lib_Touch_Bits_, 0
;	op : LABEL
;	op : INLINEASM
_00147_DS_
	MOV R1,# high (_CHS_AMOUNT+0)
	MOV R0,# low (_CHS_AMOUNT+0)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	BANKSEL __KF8_LIBc_channel_
	INC __KF8_LIBc_channel_
	XOR R0,__KF8_LIBc_channel_
	JNB PSW,2
	CLR __KF8_LIBc_channel_
	
;	op : INLINEASM
	BANKSEL _CTCTL
	JNB _CTCTL,4
	JMP USE_T3L_COUNT_FLAG1
	CLR _T1L
	CLR _T1H
	CLR _EIF1,_T1IF
	JMP START_CT_DO1
USE_T3L_COUNT_FLAG1:
	CLR _T3L
START_CT_DO1:
	CLR _PSW,0
	BANKSEL __KF8_LIBc_channel_
	MOV R0, __KF8_LIBc_channel_
	ADD R0, # low (__KF8_TOUCH_CH_EN+0)
	MOV R1, # high (__KF8_TOUCH_CH_EN+0)
	JNB _PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	MOV R1,#0xF0
	BANKSEL _CTCTL
	AND _CTCTL,R1 ;
	ORL _CTCTL,R0
	MOV R0,#0x01
	DECJZ R0
	JMP $-1
	SET _CTCTL,6 ;
	NOP
	JB _CTCTL,6
	JMP $-3
START_CT_END_DO1:
	BANKSEL _CTCTL
	JNB _CTCTL,4
	CLR _T1U
	SET _EIE1,7 ;
	CLR _EIF1,7 ;
	
;	op : LABEL
;	op : ENDFUNCTION
	CRET	
; exit point of __KF8S_Touch_TEST_General_



func.__KF8S_Touch_Process_General_	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  __KF8S_Touch_Process_General_	;Function start
; 2 exit points
;has an exit
;functions called:
;   __KF8_LIBf_scan_channel_
;   __KF8_LiBf_KEY_Deal_AND_BaseLine_Up
;   __KF8_LIBf_scan_channel_
;   __KF8_LiBf_KEY_Deal_AND_BaseLine_Up
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
__KF8S_Touch_Process_General_	;Function start
; 2 exit points
;	op : INLINEASM
	CLR PSW,0
	BANKSEL __KF8_LIBc_channel_
	RLCR __KF8_LIBc_channel_
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV _Addr_Copy_Int_KF8_Lib_S_T_,R0
	
;	op : INLINEASM
	BANKSEL _CTCTL
	JB _CTCTL,4
	JMP USE_T1_DATE_IN
USE_T13_DATE_IN:
	BANKSEL T1U
	MOV R1,T1U
	BANKSEL __KF8_lib_Touch_Bits_
	JNB __KF8_lib_Touch_Bits_,7 ;
	JMP USE_16bit_END
	CLR PSW,0
	RRC R1
USE_16bit_END:
	BANKSEL T3L
	MOV R0,T3L
	JMP DATE_READ_IN_VAR
USE_T1_DATE_IN:
	BANKSEL T1H
	MOV R1,T1H
	BANKSEL T1L
	MOV R0,T1L
DATE_READ_IN_VAR:
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	MOV __KF8_LIBi_Touch_New_Date_S_T_+1,R1
	MOV __KF8_LIBi_Touch_New_Date_S_T_,R0
	
;	op : INLINEASM
	;;---------------------------------
	;;==
	MOV R0,#(2)
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	ADD __KF8_LIBi_Touch_New_Date_S_T_,R0
	JNB PSW,0
	INC __KF8_LIBi_Touch_New_Date_S_T_+1
	;;==;
	MOV R0,#2
	INC R0
	JMP IIR_Deal_NEXT_1
IIR_Deal_DO_1:
	CLR PSW,0
	RRC __KF8_LIBi_Touch_New_Date_S_T_+1
	RRC __KF8_LIBi_Touch_New_Date_S_T_
IIR_Deal_NEXT_1:
	DECJZ R0
	JMP IIR_Deal_DO_1
	;;-----------------------------------
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0,#(__KF8_LIBi_buff_hit_+0)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	BANKSEL __KF8_Temp_Cur_A_S_T_
	MOV __KF8_Temp_Cur_A_S_T_,R1
	INC R0
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	BANKSEL __KF8_Temp_Cur_A_S_T_
	MOV __KF8_Temp_Cur_A_S_T_+1,R1 ;
	BANKSEL __KF8_Temp_Cur_A_S_T_
	MOV R0,__KF8_Temp_Cur_A_S_T_
	BANKSEL __KF8_Temp_Cur_B_S_T_
	MOV __KF8_Temp_Cur_B_S_T_,R0
	MOV __KF8_Temp_Cur_B_S_T_+1,R1 ;
	;;==
	MOV R0,#(2)
	BANKSEL __KF8_Temp_Cur_B_S_T_
	ADD __KF8_Temp_Cur_B_S_T_,R0
	JNB PSW,0
	INC __KF8_Temp_Cur_B_S_T_+1
	;;==;
	MOV R0,#2
	INC R0
	JMP IIR_Deal_NEXT_2
IIR_Deal_DO_2:
	CLR PSW,0
	RRC __KF8_Temp_Cur_B_S_T_+1
	RRC __KF8_Temp_Cur_B_S_T_
IIR_Deal_NEXT_2:
	DECJZ R0
	JMP IIR_Deal_DO_2 ;
	MOV R0,__KF8_Temp_Cur_B_S_T_
	MOV R1,__KF8_Temp_Cur_B_S_T_+1
	BANKSEL __KF8_Temp_Cur_A_S_T_
	SUB __KF8_Temp_Cur_A_S_T_,R0
	JB PSW,0
	DEC __KF8_Temp_Cur_A_S_T_+1
	SUB __KF8_Temp_Cur_A_S_T_+1,R1
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	MOV R1,__KF8_LIBi_Touch_New_Date_S_T_+1
	MOV R0,__KF8_LIBi_Touch_New_Date_S_T_
	BANKSEL __KF8_Temp_Cur_A_S_T_
	ADD __KF8_Temp_Cur_A_S_T_,R0
	JNB PSW,0
	INC R1
	ADD __KF8_Temp_Cur_A_S_T_+1,R1 ;
	MOV R1,__KF8_Temp_Cur_A_S_T_
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0,#(__KF8_LIBi_buff_hit_+0)
	BANKSEL __KF8_LIBi_buff_hit_
	ST[R0],R1
	BANKSEL __KF8_Temp_Cur_A_S_T_
	MOV R1,__KF8_Temp_Cur_A_S_T_+1
	INC R0
	BANKSEL __KF8_LIBi_buff_hit_
	ST[R0],R1
	;;-----------------------------------
	
;	op : GET_VALUE_AT_ADDRESS
;	.line	2413; "../kf8s_touch_g_lib.c"	if(!_KF8_lib_Touch_Bits_._KF8_Touch_Work_Flag)
	BANKSEL	__KF8_lib_Touch_Bits_
	JNB	__KF8_lib_Touch_Bits_, 0
	JMP	_00135_DS_
;	op : INLINEASM
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_ ;;
	ADD R0, #(__KF8_LIBi_buff_hit_)
	BANKSEL __KF8_LIBi_buff_hit_ ;;_KF8_LIBi_buff_hit_ low
	LD R1,[R0]
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_ ;;
	ADD R0, #(__KF8_LIBi_buff_baseline_)
	BANKSEL __KF8_LIBi_buff_baseline_ ;;_KF8_LIBi_buff_baseline_ low
	ST [R0],R1
	;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_ ;;
	ADD R0, #(__KF8_LIBi_buff_hit_+1)
	BANKSEL __KF8_LIBi_buff_hit_ ;; _KF8_LIBi_buff_hit_ high
	LD R1,[R0]
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_ ;;
	ADD R0, #(__KF8_LIBi_buff_baseline_+1)
	BANKSEL __KF8_LIBi_buff_baseline_ ;;
	ST [R0],R1
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBc_channel_
	MOV R0, __KF8_LIBc_channel_ ;;
	ADD R0, #(__KF8_LIBc_touch_count_)
	MOV R1,#0x00
	BANKSEL __KF8_LIBc_touch_count_
	ST [R0],R1
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBc_channel_
	MOV R0, __KF8_LIBc_channel_
	ADD R0, #(__KF8_LIBc_baseline_count_)
	MOV R1,#0x00
	BANKSEL __KF8_LIBc_baseline_count_
	ST [R0],R1
	
;	op : IFX
;	.line	2464; "../kf8s_touch_g_lib.c"	if(_KF8_LIBc_channel_==0)
	MOV	R0,# 0x00
	BANKSEL	__KF8_LIBc_channel_
	ORL	R0, __KF8_LIBc_channel_
	JB	PSW, 2
	JMP	_00136_DS_
;	op : INLINEASM
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	INC __KF8_lib_Date_Uchar_Temp_S_T_
	MOV R0, #0X24
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	SUB R0, __KF8_lib_Date_Uchar_Temp_S_T_
	JB PSW, 0
	JMP label_over
	BANKSEL __KF8_lib_Touch_Bits_
	SET __KF8_lib_Touch_Bits_, 0
label_over:
	
;	op : GOTO
	JMP	_00136_DS_
;	op : LABEL
;	op : CALL
_00135_DS_
;	.line	2491; "../kf8s_touch_g_lib.c"	_KF8_LIBf_scan_channel_(); //扫描AD通道,计算变化率，做变化统计
	PAGESEL	__KF8_LIBf_scan_channel_
	CALL	__KF8_LIBf_scan_channel_
	PAGESEL	$
;	op : IFX
;	.line	2493; "../kf8s_touch_g_lib.c"	if(_KF8_LIBc_channel_==0)
	MOV	R0,# 0x00
	BANKSEL	__KF8_LIBc_channel_
	ORL	R0, __KF8_LIBc_channel_
	JB	PSW, 2
	JMP	_00136_DS_
;	op : CALL
;	.line	2495; "../kf8s_touch_g_lib.c"	_KF8_LiBf_KEY_Deal_AND_BaseLine_Up();
	PAGESEL	__KF8_LiBf_KEY_Deal_AND_BaseLine_Up
	CALL	__KF8_LiBf_KEY_Deal_AND_BaseLine_Up
	PAGESEL	$
;	op : LABEL
;	op : INLINEASM
_00136_DS_
	MOV R1,# high (_CHS_AMOUNT+0)
	MOV R0,# low (_CHS_AMOUNT+0)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	BANKSEL __KF8_LIBc_channel_
	INC __KF8_LIBc_channel_
	XOR R0,__KF8_LIBc_channel_
	JNB PSW,2
	CLR __KF8_LIBc_channel_
	
;	op : INLINEASM
	BANKSEL _CTCTL
	JNB _CTCTL,4
	JMP USE_T3L_COUNT_FLAG
	CLR _T1L
	CLR _T1H
	CLR _EIF1,_T1IF
	JMP START_CT_DO
USE_T3L_COUNT_FLAG:
	CLR _T3L
START_CT_DO:
	CLR _PSW,0
	BANKSEL __KF8_LIBc_channel_
	MOV R0, __KF8_LIBc_channel_
	ADD R0, # low (__KF8_TOUCH_CH_EN+0)
	MOV R1, # high (__KF8_TOUCH_CH_EN+0)
	JNB _PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	MOV R1,#0xF0
	BANKSEL _CTCTL
	AND _CTCTL,R1 ;
	ORL _CTCTL,R0
	MOV R0,#0x01
	DECJZ R0
	JMP $-1
	SET _CTCTL,6 ;
	NOP
	JB _CTCTL,6
	JMP $-3
START_CT_END_DO:
	BANKSEL _CTCTL
	JNB _CTCTL,4
	CLR _T1U
	SET _EIE1,7 ;
	CLR _EIF1,7 ;
	
;	op : LABEL
;	op : ENDFUNCTION
	CRET	
; exit point of __KF8S_Touch_Process_General_



func.__KF8_LIBf_scan_channel_	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  __KF8_LIBf_scan_channel_	;Function start
; 2 exit points
;has an exit
;functions called:
;   __KF8_lib_Baihualv_get_
;   __R2PCL
;   __R2PCL
;   __KF8_lib_Baihualv_get_
;   __R2PCL
;   __R2PCL
;5 compiler assigned registers:
;   r0x102A
;   r0x102B
;   r0x102C
;   r0x102D
;   r0x102E
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
__KF8_LIBf_scan_channel_	;Function start
; 2 exit points
;	op : INLINEASM
	CLR PSW,0
	BANKSEL __KF8_LIBc_channel_
	RLCR __KF8_LIBc_channel_
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV _Addr_Copy_Int_KF8_Lib_S_T_,R0
	
;	op : INLINEASM
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	MOV R0,#0x01
	MOV __KF8_LIBi_Touch_New_Date_S_T_,R0
	CLR (__KF8_LIBi_Touch_New_Date_S_T_+1)
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBc_channel_
	MOV R0,__KF8_LIBc_channel_
	INC R0
	JMP RLCSel
RLCDeal:
	CLR PSW,0
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	RLC __KF8_LIBi_Touch_New_Date_S_T_
	RLC (__KF8_LIBi_Touch_New_Date_S_T_+1)
RLCSel:
	DECJZ R0
	JMP RLCDeal
	
;	op : INLINEASM
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R1,_Addr_Copy_Int_KF8_Lib_S_T_
	ADD R1,#(__KF8_LIBi_buff_hit_+0)
	;;;;
	BANKSEL __KF8_LIBi_buff_hit_
	LD R0,[R1]
	BANKSEL __KF8_Temp_Cur_A_S_T_
	MOV __KF8_Temp_Cur_A_S_T_, R0
	;;;;
	INC R1
	BANKSEL __KF8_LIBi_buff_hit_
	LD R0,[R1]
	BANKSEL __KF8_Temp_Cur_A_S_T_
	MOV (__KF8_Temp_Cur_A_S_T_+1), R0
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R1,_Addr_Copy_Int_KF8_Lib_S_T_
	ADD R1,#(__KF8_LIBi_buff_baseline_+0)
	;;;;
	BANKSEL __KF8_LIBi_buff_baseline_
	LD R0,[R1]
	BANKSEL __KF8_Temp_Cur_B_S_T_
	MOV __KF8_Temp_Cur_B_S_T_, R0
	;;;;
	INC R1
	BANKSEL __KF8_LIBi_buff_baseline_
	LD R0,[R1]
	BANKSEL __KF8_Temp_Cur_B_S_T_
	MOV (__KF8_Temp_Cur_B_S_T_+1), R0
	
;	op : CALL
;	.line	1766; "../kf8s_touch_g_lib.c"	_KF8_lib_Baihualv_get_();
	PAGESEL	__KF8_lib_Baihualv_get_
	CALL	__KF8_lib_Baihualv_get_
	PAGESEL	$
;	op : INLINEASM
	MOV R1,# high(__KF8_BasicLine_Down_Noise_Threshold_+0)
	MOV R0,# low(__KF8_BasicLine_Down_Noise_Threshold_+0)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	ADD R0,#0X80
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	MOV R1,#0X80
	ADD R1,__KF8_lib_bahualvtemportemp_S_T_
	SUB R0, R1
	JB PSW,0
	JMP lable_count_incover
	BANKSEL __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	MOV R0, __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	AND R0, __KF8_LIBi_Touch_New_Date_S_T_
	JB PSW,2
	JMP lable_count_incover
	BANKSEL __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	MOV R0, (__KF8_lib_CH_DW_Change_Dealed_Flag_S_T_+1)
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	AND R0, (__KF8_LIBi_Touch_New_Date_S_T_+1)
	JB PSW,2
	JMP lable_count_incover
	;;;;;;;;;
	BANKSEL __KF8_lib_CH_DW_Change_Count_S_T_
	INC __KF8_lib_CH_DW_Change_Count_S_T_
lable_count_incover:
	
;	op : INLINEASM
	BANKSEL __KF8_LIBc_channel_
	MOV R1,__KF8_LIBc_channel_
	ADD R1,#(__KF8_LIBi_Date_Change_+0)
	;;;;
	BANKSEL __KF8_LIBi_Date_Change_
	LD R0,[R1]
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	MOV R1, __KF8_lib_bahualvtemportemp_S_T_
	BANKSEL _change_buf_KF8_Lib_S_T_
	MOV _change_buf_KF8_Lib_S_T_, R1
	SUB _change_buf_KF8_Lib_S_T_, R0
	
;	op : <
;signed compare: left < lit(0x0=0), size=1, mask=ff
;	.line	1832; "../kf8s_touch_g_lib.c"	if(change_buf_KF8_Lib_S_T_<0)
	SET	PSW, 0
	BANKSEL	_change_buf_KF8_Lib_S_T_
	JB	_change_buf_KF8_Lib_S_T_, 7
	CLR	PSW, 0
	JB	PSW, 0
	JMP	_00105_DS_
;	op : UNARYMINUS
;	.line	1833; "../kf8s_touch_g_lib.c"	change_buf_KF8_Lib_S_T_=change_buf_KF8_Lib_S_T_*(-1);
	BANKSEL	_change_buf_KF8_Lib_S_T_
	CPL	_change_buf_KF8_Lib_S_T_
	BANKSEL	_change_buf_KF8_Lib_S_T_
	INC	_change_buf_KF8_Lib_S_T_
;	op : LABEL
;	op : =
;gen_assign from CODESPACE
_00105_DS_
;	.line	1834; "../kf8s_touch_g_lib.c"	if(change_buf_KF8_Lib_S_T_>_KF8_Data_Steady_Threshold_Set_)
	MOV	R1,# high (__KF8_Data_Steady_Threshold_Set_+0)
	MOV	R0,# low (__KF8_Data_Steady_Threshold_Set_+0)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : >
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	ADD	R0,# 0x80
	BANKSEL	r0x102B
	MOV	r0x102B, R0
	BANKSEL	_change_buf_KF8_Lib_S_T_
	MOVZ	R0, _change_buf_KF8_Lib_S_T_
	ADD	R0,# 0x80
	BANKSEL	r0x102B
	SUB	R0, r0x102B
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00107_DS_
;	op : +
;	.line	1836; "../kf8s_touch_g_lib.c"	_KF8_LIBc_baseline_count_[_KF8_LIBc_channel_]=0;
	BANKSEL	__KF8_LIBc_channel_
	MOV	R0, __KF8_LIBc_channel_
	ADD	R0,# (__KF8_LIBc_baseline_count_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : =
	MOV	R0,# 0x00
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBc_baseline_count_
	ST	[R1], R0
;	op : LEFT_OP
;	.line	1837; "../kf8s_touch_g_lib.c"	_KF8S_Data_Steady_Flag_ &= ~(1<<_KF8_LIBc_channel_);//Ethan 2018-2-1添加采样值稳定性判断
	MOV	R0,# 0x01
	BANKSEL	r0x102A
	MOV	r0x102A, R0
	MOV	R0,# 0x00
	BANKSEL	r0x102C
	MOV	r0x102C, R0
	BANKSEL	__KF8_LIBc_channel_
	MOVZ	R0, __KF8_LIBc_channel_
	INC	R0
	JMP	_00125_DS_
_00124_DS_
	CLR	PSW, 0
	BANKSEL	r0x102A
	RLC	r0x102A
	BANKSEL	r0x102C
	RLC	r0x102C
_00125_DS_
	DECJZ	R0
	JMP	_00124_DS_
;	op : ~
	BANKSEL	r0x102A
	CPL	r0x102A
	BANKSEL	r0x102C
	CPL	r0x102C
;;108	MOVZ	R0, r0x102A
;;110	MOVZ	R0, r0x102C
;	op : BITWISEAND
;;107	MOVZ	R0, r0x102D
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	r0x102D
	MOV	r0x102D, R0
	BANKSEL	__KF8S_Data_Steady_Flag_
	AND	__KF8S_Data_Steady_Flag_, R0
;;109	MOVZ	R0, r0x102E
	BANKSEL	r0x102C
	MOVZ	R0, r0x102C
	BANKSEL	r0x102E
	MOV	r0x102E, R0
	BANKSEL	__KF8S_Data_Steady_Flag_
	AND	(__KF8S_Data_Steady_Flag_ + 1), R0
;	op : GOTO
	JMP	_00108_DS_
;	op : LABEL
;	op : LEFT_OP
_00107_DS_
;	.line	1841; "../kf8s_touch_g_lib.c"	_KF8S_Data_Steady_Flag_ |= 1<<_KF8_LIBc_channel_;
	MOV	R0,# 0x01
	BANKSEL	r0x102A
	MOV	r0x102A, R0
	MOV	R0,# 0x00
	BANKSEL	r0x102C
	MOV	r0x102C, R0
	BANKSEL	__KF8_LIBc_channel_
	MOVZ	R0, __KF8_LIBc_channel_
	INC	R0
	JMP	_00127_DS_
_00126_DS_
	CLR	PSW, 0
	BANKSEL	r0x102A
	RLC	r0x102A
	BANKSEL	r0x102C
	RLC	r0x102C
_00127_DS_
	DECJZ	R0
	JMP	_00126_DS_
;	op : CAST
;;104	MOVZ	R0, r0x102A
;;106	MOVZ	R0, r0x102C
;	op : |
;;103	MOVZ	R0, r0x102D
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	r0x102D
	MOV	r0x102D, R0
	BANKSEL	__KF8S_Data_Steady_Flag_
	ORL	__KF8S_Data_Steady_Flag_, R0
;;105	MOVZ	R0, r0x102E
	BANKSEL	r0x102C
	MOVZ	R0, r0x102C
	BANKSEL	r0x102E
	MOV	r0x102E, R0
	BANKSEL	__KF8S_Data_Steady_Flag_
	ORL	(__KF8S_Data_Steady_Flag_ + 1), R0
;	op : LABEL
;	op : +
_00108_DS_
;	.line	1874; "../kf8s_touch_g_lib.c"	_KF8_LIBi_Date_Change_[_KF8_LIBc_channel_]=_KF8_lib_bahualvtemportemp_S_T_;
	BANKSEL	__KF8_LIBc_channel_
	MOV	R0, __KF8_LIBc_channel_
	ADD	R0,# (__KF8_LIBi_Date_Change_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : =
	BANKSEL	__KF8_lib_bahualvtemportemp_S_T_
	MOVZ	R0, __KF8_lib_bahualvtemportemp_S_T_
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBi_Date_Change_
	ST	[R1], R0
;	op : INLINEASM
	BANKSEL __KF8_LIBc_channel_
	MOV R0, __KF8_LIBc_channel_
	XOR R0, #0X01
	JB PSW,2
	JMP lable_channbig
	BANKSEL __KF8_LIBi_Date_Change_
	MOV R0, (__KF8_LIBi_Date_Change_+0)
	MOV R1, (__KF8_LIBi_Date_Change_+1)
	ADD R0,#0X80
	ADD R1,#0X80
	SUB R1, R0
	JB PSW,0
	JMP lable_chann1
	BANKSEL __KF8_lib_Finded_MAX_J_S_T_
	MOV R0, #0X01
	MOV __KF8_lib_Finded_MAX_J_S_T_ , R0
	BANKSEL __KF8_lib_Finded_MAX_I_S_T_
	CLR __KF8_lib_Finded_MAX_I_S_T_
	JMP lable_channbig
lable_chann1:
	BANKSEL __KF8_lib_Finded_MAX_I_S_T_
	MOV R0, #0X01
	MOV __KF8_lib_Finded_MAX_I_S_T_ , R0
	BANKSEL __KF8_lib_Finded_MAX_J_S_T_
	CLR __KF8_lib_Finded_MAX_J_S_T_
lable_channbig:
	
;	op : INLINEASM
	BANKSEL __KF8_LIBc_channel_
	MOV R0, #0X02
	SUB R0, __KF8_LIBc_channel_
	JB PSW,0
	JMP lable_channover
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	MOV R1, __KF8_LIBc_channel_
	ADD R1, #(__KF8_LIBi_Date_Change_)
	BANKSEL __KF8_LIBi_Date_Change_
	LD R0,[R1]
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	ADD R0, #0X80
	MOV __KF8_lib_bahualvtemportemp_S_T_, R0
	;;;;;;;;;;;;
	BANKSEL __KF8_lib_Finded_MAX_J_S_T_
	MOV R1, __KF8_lib_Finded_MAX_J_S_T_
	ADD R1, #(__KF8_LIBi_Date_Change_)
	BANKSEL __KF8_LIBi_Date_Change_
	LD R0,[R1]
	ADD R0,#0X80
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	SUB R0, __KF8_lib_bahualvtemportemp_S_T_
	JB PSW,0
	JMP lable_channover
	;;;;;;;;;;;;
	BANKSEL __KF8_lib_Finded_MAX_I_S_T_
	MOV R1, __KF8_lib_Finded_MAX_I_S_T_
	ADD R1, #(__KF8_LIBi_Date_Change_)
	BANKSEL __KF8_LIBi_Date_Change_
	LD R0,[R1]
	ADD R0, #0X80
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	SUB R0, __KF8_lib_bahualvtemportemp_S_T_
	JNB PSW,0
	JMP lable_chann2
	BANKSEL __KF8_LIBc_channel_
	MOV R0, __KF8_LIBc_channel_
	BANKSEL __KF8_lib_Finded_MAX_J_S_T_
	MOV __KF8_lib_Finded_MAX_J_S_T_,R0
	JMP lable_channover
lable_chann2:
	BANKSEL __KF8_lib_Finded_MAX_I_S_T_
	MOV R0, __KF8_lib_Finded_MAX_I_S_T_
	BANKSEL __KF8_lib_Finded_MAX_J_S_T_
	MOV __KF8_lib_Finded_MAX_J_S_T_,R0
	BANKSEL __KF8_LIBc_channel_
	MOV R0, __KF8_LIBc_channel_
	BANKSEL __KF8_lib_Finded_MAX_I_S_T_
	MOV __KF8_lib_Finded_MAX_I_S_T_,R0
lable_channover:
	
;	op : GET_VALUE_AT_ADDRESS
;	.line	1999; "../kf8s_touch_g_lib.c"	if(!_KF8_lib_Touch_Bits_._KF8_Touch_Protect_Flag)
	BANKSEL	__KF8_lib_Touch_Bits_
	JNB	__KF8_lib_Touch_Bits_, 1
	JMP	_00116_DS_
;	op : INLINEASM
	BANKSEL __KF8_LIBc_channel_
	MOV R0, __KF8_LIBc_channel_
	ADD R0, #low (__KF8_Config_Finger_Threshold)
	MOV R1, #high (__KF8_Config_Finger_Threshold)
	JNB PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	MOV __KF8_lib_bahualvtemportemp_S_T_, R0
	MOV R0, #(6)
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	SUB __KF8_lib_bahualvtemportemp_S_T_, R0
	
;	op : +
;	.line	2026; "../kf8s_touch_g_lib.c"	if(_KF8_LIBi_Date_Change_[_KF8_LIBc_channel_]<_KF8_lib_bahualvtemportemp_S_T_)
	BANKSEL	__KF8_LIBc_channel_
	MOV	R0, __KF8_LIBc_channel_
	ADD	R0,# (__KF8_LIBi_Date_Change_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBi_Date_Change_
	LD	R0, [R1]
	BANKSEL	r0x102D
	MOV	r0x102D, R0
;	op : <
	BANKSEL	r0x102D
	MOVZ	R0, r0x102D
	ADD	R0,# 0x80
	BANKSEL	r0x102B
	MOV	r0x102B, R0
	BANKSEL	__KF8_lib_bahualvtemportemp_S_T_
	MOVZ	R0, __KF8_lib_bahualvtemportemp_S_T_
	ADD	R0,# 0x80
	BANKSEL	r0x102B
	SUB	R0, r0x102B
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00112_DS_
;	op : +
;	.line	2029; "../kf8s_touch_g_lib.c"	if(_KF8_LIBc_touch_count_[_KF8_LIBc_channel_]>TCS_AMOUNT) //被按下标记
	BANKSEL	__KF8_LIBc_channel_
	MOV	R0, __KF8_LIBc_channel_
	ADD	R0,# (__KF8_LIBc_touch_count_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBc_touch_count_
	LD	R0, [R1]
	BANKSEL	r0x102D
	MOV	r0x102D, R0
;	op : =
;gen_assign from CODESPACE
	MOV	R1,# high (_TCS_AMOUNT+0)
	MOV	R0,# low (_TCS_AMOUNT+0)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : >
	BANKSEL	r0x102D
	MOVZ	R0, r0x102D
	BANKSEL	r0x102A
	SUB	R0, r0x102A
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00116_DS_
;	op : INLINEASM
	MOV R1,# high (_TCS_AMOUNT+0)
	MOV R0,# low (_TCS_AMOUNT+0)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	CLR PSW,0
	RLC R0
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV __KF8_lib_Date_Uchar_Temp_S_T_,R0
	
;	op : INLINEASM
	BANKSEL __KF8_LIBc_channel_
	MOV R1, __KF8_LIBc_channel_
	ADD R1, #(__KF8_LIBc_touch_count_)
	BANKSEL __KF8_LIBc_touch_count_
	LD R0,[R1]
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	SUB R0, __KF8_lib_Date_Uchar_Temp_S_T_
	JB PSW, 0
	JMP lable_010101
	BANKSEL __KF8_LIBc_touch_count_
	LD R0,[R1]
	INC R0
	ST [R1],R0
	JMP lable_020202
lable_010101:
	BANKSEL __KF8_LIBc_touch_count_
	CLR R0
	ST [R1], R0
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBc_channel_
	MOV R0, __KF8_LIBc_channel_
	ADD R0, #low (__KF8_TOUCH_CH_EN)
	MOV R1, #high (__KF8_TOUCH_CH_EN)
	JNB PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;;;;;;;;
	CLR PSW,0
	RLC R0
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV __KF8_lib_Date_Uchar_Temp_S_T_ , R0
	;;;;;;;;;;;;;;;;;;;;
	ADD R0,#low(__KF8_LIBt_buff_bit_S_T_)
	MOV R1,#high(__KF8_LIBt_buff_bit_S_T_)
	JNB PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	CPL R0
	BANKSEL __KF8_LIBi_channel_flag_
	AND __KF8_LIBi_channel_flag_, R0
	;;;;
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV R0, __KF8_lib_Date_Uchar_Temp_S_T_
	INC R0
	ADD R0,#low(__KF8_LIBt_buff_bit_S_T_)
	MOV R1,#high(__KF8_LIBt_buff_bit_S_T_)
	JNB PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	CPL R0
	BANKSEL __KF8_LIBi_channel_flag_
	AND (__KF8_LIBi_channel_flag_+1), R0
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;;;;;;;
	MOV R0, #0X00
	BANKSEL __KF8_lib_Key_Down_Count_S_T_
	ORL R0, __KF8_lib_Key_Down_Count_S_T_
	JB PSW, 2
	DEC __KF8_lib_Key_Down_Count_S_T_
	;;;;;;;;;;;;;;;;;
	MOV R0,#0X00
	ORL R0, __KF8_lib_Key_Down_Count_S_T_
	JNB PSW, 2
	JMP lable_030303
	;;;
	BANKSEL __KF8_LIBc_finger_OUT_First_S_T_
	MOV R0, __KF8_LIBc_finger_OUT_First_S_T_
	BANKSEL __KF8_LIBc_channel_
	XOR R0, __KF8_LIBc_channel_
	JB PSW, 2
	JMP lable_050505
	;;;;;;;
	BANKSEL __KF8_LIBc_finger_OUT_Second_S_T_
	MOV R0, __KF8_LIBc_finger_OUT_Second_S_T_
	BANKSEL __KF8_LIBc_finger_OUT_First_S_T_
	XOR R0, __KF8_LIBc_finger_OUT_First_S_T_
	JB PSW, 2
	JMP lable_040404
	MOV R0,#0XFF
	MOV __KF8_LIBc_finger_OUT_First_S_T_ , R0
	MOV R0,#0X00
	BANKSEL __KF8_lib_Key_Down_Count_S_T_
	MOV __KF8_lib_Key_Down_Count_S_T_ ,R0
	JMP lable_050505
	;;;;;;;;;
lable_040404:
	BANKSEL __KF8_LIBc_finger_OUT_Second_S_T_
	MOV R0, __KF8_LIBc_finger_OUT_Second_S_T_
	BANKSEL __KF8_LIBc_finger_OUT_First_S_T_
	MOV __KF8_LIBc_finger_OUT_First_S_T_ ,R0
	JMP lable_050505
lable_030303:
	BANKSEL __KF8_LIBc_finger_OUT_First_S_T_
	MOV R0, #0XFF
	MOV __KF8_LIBc_finger_OUT_First_S_T_, R0
lable_050505:
	BANKSEL __KF8_LIBc_finger_OUT_Second_S_T_
	MOV R0,#0XFF
	MOV __KF8_LIBc_finger_OUT_Second_S_T_,R0
	MOV R0,#0X00
	BANKSEL __KF8_lib_Key_Double_Timer_Protect_S_T_
	MOV __KF8_lib_Key_Double_Timer_Protect_S_T_, R0
	MOV (__KF8_lib_Key_Double_Timer_Protect_S_T_+1), R0
	BANKSEL __KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_
	MOV __KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_, R0
	MOV (__KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_+1), R0
lable_020202:
	
;	op : GOTO
	JMP	_00116_DS_
;	op : LABEL
;	op : INLINEASM
_00112_DS_
	MOV R1,# high (_TCS_AMOUNT+0)
	MOV R0,# low (_TCS_AMOUNT+0)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	INC R0
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV __KF8_lib_Date_Uchar_Temp_S_T_,R0
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBc_channel_
	MOV R1,__KF8_LIBc_channel_
	ADD R1,#(__KF8_LIBc_touch_count_+0)
	BANKSEL __KF8_LIBc_touch_count_
	LD R0,[R1]
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	SUB R0,__KF8_lib_Date_Uchar_Temp_S_T_
	JNB PSW,0 ;;
	JMP label_18_18_18
	BANKSEL __KF8_LIBc_touch_count_
	LD R0,[R1]
	DEC R0
	ST [R1],R0
label_18_18_18:
	
;	op : LABEL
;	op : ENDFUNCTION
_00116_DS_
	CRET	
; exit point of __KF8_LIBf_scan_channel_



func.__KF8_LiBf_KEY_Deal_AND_BaseLine_Up	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  __KF8_LiBf_KEY_Deal_AND_BaseLine_Up	;Function start
; 2 exit points
;has an exit
;functions called:
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;   __R2PCL
;7 compiler assigned registers:
;   r0x102A
;   r0x102B
;   r0x102C
;   r0x102D
;   r0x102E
;   r0x102F
;   r0x1030
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
__KF8_LiBf_KEY_Deal_AND_BaseLine_Up	;Function start
; 2 exit points
;	op : =
;	.line	509; "../kf8s_touch_g_lib.c"	_KF8_LIBi_Touch_New_Date_S_T_=0x0001;
	MOV	R0,# 0x01
	BANKSEL	__KF8_LIBi_Touch_New_Date_S_T_
	MOV	__KF8_LIBi_Touch_New_Date_S_T_, R0
	BANKSEL	__KF8_LIBi_Touch_New_Date_S_T_
	CLR	(__KF8_LIBi_Touch_New_Date_S_T_ + 1)
;	op : =
;	.line	511; "../kf8s_touch_g_lib.c"	for(i_KF8_lib_S_T_=0;i_KF8_lib_S_T_<CHS_AMOUNT;i_KF8_lib_S_T_++)
	BANKSEL	_i_KF8_lib_S_T_
	CLR	_i_KF8_lib_S_T_
;	op : LABEL
;	op : =
;gen_assign from CODESPACE
_00067_DS_
	MOV	R1,# high (_CHS_AMOUNT+0)
	MOV	R0,# low (_CHS_AMOUNT+0)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : <
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	_i_KF8_lib_S_T_
	SUB	R0, _i_KF8_lib_S_T_
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00070_DS_
;	op : INLINEASM
	CLR PSW,0
	BANKSEL _i_KF8_lib_S_T_
	RLCR _i_KF8_lib_S_T_
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV _Addr_Copy_Int_KF8_Lib_S_T_,R0
	
;	op : INLINEASM
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0, #low (__KF8_TOUCH_CH_EN)
	MOV R1, #high (__KF8_TOUCH_CH_EN)
	JNB PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV __KF8_lib_Date_Uchar_Temp_S_T_ ,R0
	;;;;;;;
	MOV R0, #low (__KF8_Inside_Reference_Channel_Declare_)
	MOV R1, #high (__KF8_Inside_Reference_Channel_Declare_)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	XOR R0, __KF8_lib_Date_Uchar_Temp_S_T_
	JB PSW, 2
	JMP lable_612118
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	MOV R0, #low (__KF8_Inside_Reference_Channel_Disturb_Threshold_Set_)
	MOV R1, #high (__KF8_Inside_Reference_Channel_Disturb_Threshold_Set_)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	MOV __KF8_lib_bahualvtemportemp_S_T_ ,R0
	;;;;;;;;;;;;;;;;;;;;;
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0, #(__KF8_LIBi_Date_Change_)
	;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBi_Date_Change_
	LD R1, [R0]
	JB R1,7
	JMP lable_6121205
	CPL R1
	INC R1
lable_6121205:
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	SUB R1,__KF8_lib_bahualvtemportemp_S_T_
	JNB PSW ,0 ;;
	JMP lable_612118
lable_6121207:
	BANKSEL __KF8_lib_Touch_Bits_
	SET __KF8_lib_Touch_Bits_, 1
	BANKSEL __KF8_lib_Wave_Protect_Time_Count_S_T_
	CLR __KF8_lib_Wave_Protect_Time_Count_S_T_
lable_612118:
	
;	op : +
;	.line	599; "../kf8s_touch_g_lib.c"	if(_KF8_LIBi_Date_Change_[i_KF8_lib_S_T_]<_KF8_BasicLine_UP_Noise_Threshold_)
	BANKSEL	_i_KF8_lib_S_T_
	MOV	R0, _i_KF8_lib_S_T_
	ADD	R0,# (__KF8_LIBi_Date_Change_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBi_Date_Change_
	LD	R0, [R1]
	BANKSEL	r0x102B
	MOV	r0x102B, R0
;	op : =
;gen_assign from CODESPACE
	MOV	R1,# high (__KF8_BasicLine_UP_Noise_Threshold_+0)
	MOV	R0,# low (__KF8_BasicLine_UP_Noise_Threshold_+0)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : <
	BANKSEL	r0x102B
	MOVZ	R0, r0x102B
	ADD	R0,# 0x80
	BANKSEL	r0x102C
	MOV	r0x102C, R0
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	ADD	R0,# 0x80
	BANKSEL	r0x102C
	SUB	R0, r0x102C
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00031_DS_
;	op : INLINEASM
Do_Baseline_Up_Deal:
	
;	op : INLINEASM
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,#(__KF8_LIBc_baseline_count_)
	BANKSEL __KF8_LIBc_baseline_count_
	LD R1, [R0]
	MOV R0, #(100)
	XOR R1, R0
	JB PSW ,2
	JMP lable_06121629
	;;;;;;;;;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_hit_)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	;;;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_baseline_)
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0], R1
	;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_hit_+1)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_baseline_+1)
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0], R1
	;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0, #(__KF8_LIBc_touch_count_)
	BANKSEL __KF8_LIBc_touch_count_
	LD R1, [R0]
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV __KF8_lib_Date_Uchar_Temp_S_T_, R1
	;;;;;;;;;;;;;;;;;;;;;;;;;;;
	MOV R0, #low(_TCS_AMOUNT)
	MOV R1, #high(_TCS_AMOUNT)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;;;;;;;
	SUB R0, __KF8_lib_Date_Uchar_Temp_S_T_
	JNB PSW, 0
	JMP lable_06121629
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0, #(__KF8_LIBc_touch_count_)
	BANKSEL __KF8_LIBc_touch_count_
	MOV R1, #0X00
	ST [R0], R1
lable_06121629:
	
;	op : GOTO
	JMP	_00032_DS_
;	op : LABEL
;	op : +
_00031_DS_
;	.line	687; "../kf8s_touch_g_lib.c"	else if(_KF8_LIBi_Date_Change_[i_KF8_lib_S_T_]>_KF8_BasicLine_Down_Noise_Threshold_)
	BANKSEL	_i_KF8_lib_S_T_
	MOV	R0, _i_KF8_lib_S_T_
	ADD	R0,# (__KF8_LIBi_Date_Change_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBi_Date_Change_
	LD	R0, [R1]
	BANKSEL	r0x102D
	MOV	r0x102D, R0
;	op : =
;gen_assign from CODESPACE
	MOV	R1,# high (__KF8_BasicLine_Down_Noise_Threshold_+0)
	MOV	R0,# low (__KF8_BasicLine_Down_Noise_Threshold_+0)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : >
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	ADD	R0,# 0x80
	BANKSEL	r0x102C
	MOV	r0x102C, R0
	BANKSEL	r0x102D
	MOVZ	R0, r0x102D
	ADD	R0,# 0x80
	BANKSEL	r0x102C
	SUB	R0, r0x102C
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00028_DS_
;	op : INLINEASM
Do_Baseline_Down_Deal:
	
;	op : INLINEASM
	MOV R0, #low(__KF8_Define_Disturb_Channels_Amount_)
	MOV R1, #high(__KF8_Define_Disturb_Channels_Amount_)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_CH_DW_Change_Count_S_T_
	SUB R0, __KF8_lib_CH_DW_Change_Count_S_T_
	JB PSW, 0
	JMP lable_06151019
	BANKSEL __KF8_lib_Touch_Bits_
	SET __KF8_lib_Touch_Bits_, 1
	BANKSEL __KF8_lib_Wave_Protect_Time_Count_S_T_
	CLR __KF8_lib_Wave_Protect_Time_Count_S_T_
	;;;;;;;;;;;;;;;;;;;;;;;
lable_06151019:
	
;	op : GET_VALUE_AT_ADDRESS
;	.line	722; "../kf8s_touch_g_lib.c"	if(_KF8_lib_Touch_Bits_._KF8_Touch_Protect_Flag)
	BANKSEL	__KF8_lib_Touch_Bits_
	JB	__KF8_lib_Touch_Bits_, 1
	JMP	_00025_DS_
;	op : INLINEASM
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,#(__KF8_LIBc_baseline_count_)
	BANKSEL __KF8_LIBc_baseline_count_
	LD R1, [R0]
	XOR R1, #Low(-20)
	JNB PSW, 2
	JMP lable_06151032
	;;;;;;;;
	MOV R0,#low(__KF8_Disturb_Protect_Circle_)
	MOV R1,#high(__KF8_Disturb_Protect_Circle_)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Wave_Protect_Time_Count_S_T_
	XOR R0, __KF8_lib_Wave_Protect_Time_Count_S_T_
	JB PSW, 2
	JMP lable_06151055
	;;;;;;;;;;;;;;;;;;;
lable_06151032:
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_hit_)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	;;;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_baseline_)
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0], R1
	;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_hit_+1)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_baseline_+1)
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0], R1
	;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	MOV R0, __KF8_LIBi_Touch_New_Date_S_T_
	BANKSEL __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	ORL __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_, R0
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	MOV R0, (__KF8_LIBi_Touch_New_Date_S_T_ + 1)
	BANKSEL __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	ORL (__KF8_lib_CH_DW_Change_Dealed_Flag_S_T_ + 1), R0
	;;;;;;;;;;;;;;;;;
lable_06151055:
	
;	op : GOTO
	JMP	_00032_DS_
;	op : LABEL
;	op : INLINEASM
_00025_DS_
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,# (__KF8_LIBc_baseline_count_ + 0)
	BANKSEL __KF8_LIBc_baseline_count_
	LD R1, [R0]
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	MOV __KF8_lib_bahualvtemportemp_S_T_, R1
	;;;;;;;;;;;;;;;;;;;;;;;;
	MOV R1,# high (__KF8_BaseLine_Update_Circle_Count_For_Down_+0)
	MOV R0,# low (__KF8_BaseLine_Update_Circle_Count_For_Down_+0)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	XOR R0, __KF8_lib_bahualvtemportemp_S_T_
	JB PSW, 2
	JMP lable_06160853
	;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,# (__KF8_LIBc_touch_count_ + 0)
	BANKSEL __KF8_LIBc_touch_count_
	LD R1, [R0]
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV __KF8_lib_Date_Uchar_Temp_S_T_, R1
	;;;;;;;;;;;;;;;;;;;;;;;
	MOV R0,# low (_TCS_AMOUNT+0)
	MOV R1,# high (_TCS_AMOUNT+0)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	SUB R0, __KF8_lib_Date_Uchar_Temp_S_T_
	JNB PSW, 0
	JMP lable_06151118
	;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Key_Down_Count_S_T_
	MOV R0, __KF8_lib_Key_Down_Count_S_T_
	XOR R0,# 0x02
	JB PSW, 2
	JMP lable_06151125
	;;;;;;;;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_hit_)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	;;;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_baseline_)
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0], R1
	;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_hit_+1)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_baseline_+1)
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0], R1
	JMP lable_06151133
lable_06151125:
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0, #(__KF8_LIBi_buff_baseline_)
	BANKSEL __KF8_LIBi_buff_baseline_
	LD R1,[R0]
	ADD R1,#0XFF
	ST [R0],R1
	JNB PSW, 0
	JMP lable_06151133
	INC R0
	LD R1,[R0]
	DEC R1
	ST [R0],R1
	JMP lable_06151133
lable_06151118:
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	MOV R0, __KF8_LIBi_Touch_New_Date_S_T_
	BANKSEL __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	ORL __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_, R0
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	MOV R0, (__KF8_LIBi_Touch_New_Date_S_T_ + 1)
	BANKSEL __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	ORL (__KF8_lib_CH_DW_Change_Dealed_Flag_S_T_ + 1), R0
	;;;;;;;;;;;;;;;;;;;;;;;;
lable_06151133:
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,# (__KF8_LIBc_baseline_count_ + 0)
	BANKSEL __KF8_LIBc_baseline_count_
	MOV R1,#0X00
	ST [R0], R1
lable_06160853:
	
;	op : GOTO
	JMP	_00032_DS_
;	op : LABEL
;	op : INLINEASM
_00028_DS_
	BANKSEL __KF8_lib_Touch_Bits_
	JNB __KF8_lib_Touch_Bits_, 1
	JMP lable_06151543
	;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	CPLR __KF8_LIBi_Touch_New_Date_S_T_
	BANKSEL __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	AND __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_, R0
	;;;;;;;;
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	CPLR (__KF8_LIBi_Touch_New_Date_S_T_+1)
	BANKSEL __KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	AND (__KF8_lib_CH_DW_Change_Dealed_Flag_S_T_ + 1), R0
lable_06151543:
	
;	op : INLINEASM
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,# (__KF8_LIBc_baseline_count_ + 0)
	BANKSEL __KF8_LIBc_baseline_count_
	LD R1,[R0]
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	MOV __KF8_lib_bahualvtemportemp_S_T_, R1
	;;;;;;;;;;;;;;;;;
	MOV R0,# low (__KF8_BaseLine_Update_Circle_Count_For_Down_+0)
	MOV R1,# high (__KF8_BaseLine_Update_Circle_Count_For_Down_+0)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	XOR R0, __KF8_lib_bahualvtemportemp_S_T_
	JNB PSW, 2
	JMP lable_06151621
	;;;;;;;;;;;;;;;;;;
	MOV R1,# high (__KF8_BaseLine_Update_Circle_Count_For_UP_+0)
	MOV R0,# low (__KF8_BaseLine_Update_Circle_Count_For_UP_+0)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	XOR R0, __KF8_lib_bahualvtemportemp_S_T_
	JB PSW, 2
	JMP lable_06151626
	;;;;;;;;;;;;;;;;;;;;
lable_06151621:
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,# (__KF8_LIBc_baseline_count_ + 0)
	BANKSEL __KF8_LIBc_baseline_count_
	MOV R1,#0X00
	ST [R0],R1
	;;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0,#(__KF8_LIBi_buff_baseline_+0)
	BANKSEL __KF8_LIBi_buff_baseline_
	LD R1,[R0]
	BANKSEL __KF8_Temp_Cur_A_S_T_
	MOV __KF8_Temp_Cur_A_S_T_,R1
	INC R0
	BANKSEL __KF8_LIBi_buff_baseline_
	LD R1,[R0]
	BANKSEL __KF8_Temp_Cur_A_S_T_
	MOV __KF8_Temp_Cur_A_S_T_+1,R1
	;;;
	MOV R1,#0x01
_KF8_lib_DW_UP_Basic_IIR_Normal_Get_DS_0001:
	CLR PSW,0
	BANKSEL __KF8_Temp_Cur_A_S_T_
	RRC __KF8_Temp_Cur_A_S_T_+1
	RRC __KF8_Temp_Cur_A_S_T_
	CLR PSW,0
	RLC R1
	MOV R0,R1
	XOR R0,#(8)
	PAGESEL _KF8_lib_DW_UP_Basic_IIR_Normal_Get_DS_0001
	JB PSW,2
	JMP _KF8_lib_DW_UP_Basic_IIR_Normal_Get_DS_0001
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0,#(__KF8_LIBi_buff_hit_+0)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	BANKSEL __KF8_Temp_Cur_B_S_T_
	MOV __KF8_Temp_Cur_B_S_T_,R1
	INC R0
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	BANKSEL __KF8_Temp_Cur_B_S_T_
	MOV __KF8_Temp_Cur_B_S_T_+1,R1
	;;;
	MOV R1,#0x01
_KF8_lib_DW_UP_Basic_IIR_Normal_Get_DS_0002:
	CLR PSW,0
	BANKSEL __KF8_Temp_Cur_B_S_T_
	RRC __KF8_Temp_Cur_B_S_T_+1
	RRC __KF8_Temp_Cur_B_S_T_
	CLR PSW,0
	RLC R1
	MOV R0,R1
	XOR R0,#(8)
	PAGESEL _KF8_lib_DW_UP_Basic_IIR_Normal_Get_DS_0002
	JB PSW,2
	JMP _KF8_lib_DW_UP_Basic_IIR_Normal_Get_DS_0002
	;;;
	;;;;
	BANKSEL __KF8_Temp_Cur_A_S_T_
	MOV R1,__KF8_Temp_Cur_A_S_T_
	BANKSEL __KF8_Temp_Cur_B_S_T_
	SUB __KF8_Temp_Cur_B_S_T_,R1
	BANKSEL __KF8_Temp_Cur_A_S_T_
	MOV R1,__KF8_Temp_Cur_A_S_T_+1
	JB PSW,0
	INC R1
	BANKSEL __KF8_Temp_Cur_B_S_T_
	SUB __KF8_Temp_Cur_B_S_T_+1,R1
	;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0,_Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0,#(__KF8_LIBi_buff_baseline_+0)
	BANKSEL __KF8_LIBi_buff_baseline_
	LD R1,[R0]
	BANKSEL __KF8_Temp_Cur_B_S_T_
	ADD R1, __KF8_Temp_Cur_B_S_T_
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0],R1
	;;;
	INC R0
	LD R1,[R0]
	JNB PSW,0
	INC R1
	BANKSEL __KF8_Temp_Cur_B_S_T_
	ADD R1,__KF8_Temp_Cur_B_S_T_+1
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0],R1
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,# (__KF8_LIBi_Date_Change_ + 0)
	BANKSEL __KF8_LIBi_Date_Change_
	LD R1, [R0]
	JNB R1, 7
	JMP lable_06151740
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0,#(__KF8_LIBi_buff_baseline_)
	BANKSEL __KF8_LIBi_buff_baseline_
	LD R1, [R0]
	ADD R1, #0XFF
	ST [R0],R1
	JNB PSW,0
	JMP lable_06151626
	INC R0
	LD R1,[R0]
	DEC R1
	ST [R0],R1
	JMP lable_06151626
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
lable_06151740:
	BANKSEL _Addr_Copy_Int_KF8_Lib_S_T_
	MOV R0, _Addr_Copy_Int_KF8_Lib_S_T_
	ADD R0,#(__KF8_LIBi_buff_baseline_)
	BANKSEL __KF8_LIBi_buff_baseline_
	LD R1, [R0]
	ADD R1,#0X01
	ST [R0],R1
	JB PSW,0
	JMP lable_06151626
	INC R0
	LD R1,[R0]
	INC R1
	ST [R0],R1
	;;;;;;;;;;;;;;;;;;;
lable_06151626:
	
;	op : LABEL
;	op : INLINEASM
_00032_DS_
	BANKSEL __KF8_lib_Touch_Bits_
	JB __KF8_lib_Touch_Bits_, 1
	JMP lable_06161004
	;;;;;;;;;;;;;;;;;;;
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,#(__KF8_LIBc_touch_count_)
	BANKSEL __KF8_LIBc_touch_count_
	LD R1,[R0]
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV __KF8_lib_Date_Uchar_Temp_S_T_,R1
	;;;;;;;;;;;;;;;;;;;;;;;
	MOV R1,# high (_TCS_AMOUNT+0)
	MOV R0,# low (_TCS_AMOUNT+0)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	SUB __KF8_lib_Date_Uchar_Temp_S_T_,R0
	JNB PSW,0
	JMP lable_06161004
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,#(__KF8_LIBc_touch_count_)
	MOV R1,#0X00
	BANKSEL __KF8_LIBc_touch_count_
	ST [R0],R1
lable_06161004:
	
;	op : +
;	.line	1194; "../kf8s_touch_g_lib.c"	if(_KF8_LIBi_Date_Change_[i_KF8_lib_S_T_]>=0)
	BANKSEL	_i_KF8_lib_S_T_
	MOV	R0, _i_KF8_lib_S_T_
	ADD	R0,# (__KF8_LIBi_Date_Change_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBi_Date_Change_
	LD	R0, [R1]
	BANKSEL	r0x102E
	MOV	r0x102E, R0
;	op : <
;signed compare: left < lit(0x0=0), size=1, mask=ff
	SET	PSW, 0
	BANKSEL	r0x102E
	JB	r0x102E, 7
	CLR	PSW, 0
	JNB	PSW, 0
	JMP	_00034_DS_
;	op : INLINEASM
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,#(__KF8_LIBc_baseline_count_)
	BANKSEL __KF8_LIBc_baseline_count_
	LD R1, [R0]
	DEC R1
	ST [R0],R1
	
;	op : GOTO
	JMP	_00035_DS_
;	op : LABEL
;	op : INLINEASM
_00034_DS_
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0,#(__KF8_LIBc_baseline_count_)
	BANKSEL __KF8_LIBc_baseline_count_
	LD R1, [R0]
	INC R1
	ST [R0],R1
	
;	op : LABEL
;	op : GET_VALUE_AT_ADDRESS
_00035_DS_
;	.line	1230; "../kf8s_touch_g_lib.c"	if(!_KF8_lib_Touch_Bits_._KF8_Touch_Protect_Flag)
	BANKSEL	__KF8_lib_Touch_Bits_
	JNB	__KF8_lib_Touch_Bits_, 1
	JMP	_00060_DS_
;	op : EQ_OP
;	.line	1232; "../kf8s_touch_g_lib.c"	if(	((i_KF8_lib_S_T_==_KF8_lib_Finded_MAX_I_S_T_)	||	(i_KF8_lib_S_T_==_KF8_lib_Finded_MAX_J_S_T_) )&& _KF8_LIBi_Date_Change_[i_KF8_lib_S_T_]>_KF8_Config_Finger_Threshold[i_KF8_lib_S_T_]	)
	BANKSEL	__KF8_lib_Finded_MAX_I_S_T_
	MOVZ	R0, __KF8_lib_Finded_MAX_I_S_T_
	BANKSEL	_i_KF8_lib_S_T_
	XOR	R0, _i_KF8_lib_S_T_
	JNB	PSW, 2
	JMP	_00058_DS_
	BANKSEL	__KF8_lib_Finded_MAX_J_S_T_
	MOVZ	R0, __KF8_lib_Finded_MAX_J_S_T_
	BANKSEL	_i_KF8_lib_S_T_
	XOR	R0, _i_KF8_lib_S_T_
	JB	PSW, 2
	JMP	_00055_DS_
;	op : LABEL
;	op : +
_00058_DS_
	BANKSEL	_i_KF8_lib_S_T_
	MOV	R0, _i_KF8_lib_S_T_
	ADD	R0,# (__KF8_LIBi_Date_Change_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBi_Date_Change_
	LD	R0, [R1]
	BANKSEL	r0x102E
	MOV	r0x102E, R0
;	op : +
	MOV	R0,# (__KF8_Config_Finger_Threshold + 0)
	BANKSEL	_i_KF8_lib_S_T_
	ADD	R0, _i_KF8_lib_S_T_
	BANKSEL	r0x102A
	MOV	r0x102A, R0
	MOV	R0,# high (__KF8_Config_Finger_Threshold + 0)
	BANKSEL	r0x102D
	MOV	r0x102D, R0
	CLR	R0
	JNB	PSW, 0
	INC	R0
	JNB	PSW, 2
	JMP	_00156_DS_
	BANKSEL	r0x102D
	ADD	r0x102D, R0
;	op : GET_VALUE_AT_ADDRESS
_00156_DS_
	BANKSEL	r0x102D
	MOV	R1, r0x102D
	BANKSEL	r0x102A
	MOV	R0, r0x102A
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102F
	MOV	r0x102F, R0
;	op : >
	BANKSEL	r0x102F
	MOVZ	R0, r0x102F
	ADD	R0,# 0x80
	BANKSEL	r0x102C
	MOV	r0x102C, R0
	BANKSEL	r0x102E
	MOVZ	R0, r0x102E
	ADD	R0,# 0x80
	BANKSEL	r0x102C
	SUB	R0, r0x102C
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00055_DS_
;	op : LEFT_OP
;	.line	1235; "../kf8s_touch_g_lib.c"	if(_KF8S_Data_Steady_Flag_&(1<<i_KF8_lib_S_T_))//Etan2018-2-1;只有在采样值稳定的时候才认为有按键触发
	MOV	R0,# 0x01
	BANKSEL	r0x102A
	MOV	r0x102A, R0
	MOV	R0,# 0x00
	BANKSEL	r0x102D
	MOV	r0x102D, R0
	BANKSEL	_i_KF8_lib_S_T_
	MOVZ	R0, _i_KF8_lib_S_T_
	INC	R0
	JMP	_00100_DS_
_00099_DS_
	CLR	PSW, 0
	BANKSEL	r0x102A
	RLC	r0x102A
	BANKSEL	r0x102D
	RLC	r0x102D
_00100_DS_
	DECJZ	R0
	JMP	_00099_DS_
;	op : CAST
;;100	MOVZ	R0, r0x102A
;;102	MOVZ	R0, r0x102D
;	op : BITWISEAND
;;99	MOVZ	R0, r0x102E
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	r0x102E
	MOV	r0x102E, R0
	BANKSEL	__KF8S_Data_Steady_Flag_
	AND	R0, __KF8S_Data_Steady_Flag_
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;;101	MOVZ	R0, r0x102F
	BANKSEL	r0x102D
	MOVZ	R0, r0x102D
	BANKSEL	r0x102F
	MOV	r0x102F, R0
	BANKSEL	__KF8S_Data_Steady_Flag_
	AND	R0, (__KF8S_Data_Steady_Flag_ + 1)
	BANKSEL	r0x102D
	MOV	r0x102D, R0
;	op : IFX
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	r0x102D
	ORL	R0, r0x102D
	JNB	PSW, 2
	JMP	_00039_DS_
;	op : +
;	.line	1238; "../kf8s_touch_g_lib.c"	if(_KF8_LIBc_touch_count_[i_KF8_lib_S_T_]<TCS_AMOUNT)
	BANKSEL	_i_KF8_lib_S_T_
	MOV	R0, _i_KF8_lib_S_T_
	ADD	R0,# (__KF8_LIBc_touch_count_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBc_touch_count_
	LD	R0, [R1]
	BANKSEL	r0x102E
	MOV	r0x102E, R0
;	op : =
;gen_assign from CODESPACE
	MOV	R1,# high (_TCS_AMOUNT+0)
	MOV	R0,# low (_TCS_AMOUNT+0)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : <
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	r0x102E
	SUB	R0, r0x102E
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00039_DS_
;	op : +
;	.line	1240; "../kf8s_touch_g_lib.c"	_KF8_LIBc_touch_count_[i_KF8_lib_S_T_]++;
	BANKSEL	_i_KF8_lib_S_T_
	MOV	R0, _i_KF8_lib_S_T_
	ADD	R0,# (__KF8_LIBc_touch_count_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBc_touch_count_
	LD	R0, [R1]
	BANKSEL	r0x102F
	MOV	r0x102F, R0
;	op : +
	BANKSEL	r0x102F
	INC	r0x102F
;	op : =
	BANKSEL	r0x102F
	MOVZ	R0, r0x102F
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBc_touch_count_
	ST	[R1], R0
;	op : LABEL
;	op : =
;gen_assign from CODESPACE
_00039_DS_
;	.line	1273; "../kf8s_touch_g_lib.c"	if(_KF8_DoubleKey_Compages_Limitable_Circle_)  // ！=0的判断
	MOV	R1,# high (__KF8_DoubleKey_Compages_Limitable_Circle_+0)
	MOV	R0,# low (__KF8_DoubleKey_Compages_Limitable_Circle_+0)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102A
	MOV	r0x102A, R0
	MOV	R1,# high (__KF8_DoubleKey_Compages_Limitable_Circle_+1)
	MOV	R0,# low (__KF8_DoubleKey_Compages_Limitable_Circle_+1)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102E
	MOV	r0x102E, R0
;	op : IFX
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	r0x102E
	ORL	R0, r0x102E
	JNB	PSW, 2
	JMP	_00046_DS_
;	op : EQ_OP
;	.line	1275; "../kf8s_touch_g_lib.c"	if(_KF8_lib_Key_Down_Count_S_T_==1&&_KF8_lib_Key_Double_Timer_Protect_S_T_<_KF8_DoubleKey_Compages_Limitable_Circle_)
	BANKSEL	__KF8_lib_Key_Down_Count_S_T_
	MOVZ	R0, __KF8_lib_Key_Down_Count_S_T_
	XOR	R0,# 0x01
	JB	PSW, 2
	JMP	_00046_DS_
;	op : <
	BANKSEL	r0x102E
	MOVZ	R0, r0x102E
	BANKSEL	__KF8_lib_Key_Double_Timer_Protect_S_T_
	SUB	R0, (__KF8_lib_Key_Double_Timer_Protect_S_T_ + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00102_DS_
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	__KF8_lib_Key_Double_Timer_Protect_S_T_
	SUB	R0, __KF8_lib_Key_Double_Timer_Protect_S_T_
_00102_DS_
	JNB	PSW, 0
	JMP	_00046_DS_
;	op : +
;	.line	1277; "../kf8s_touch_g_lib.c"	_KF8_lib_Key_Double_Timer_Protect_S_T_++;
	BANKSEL	__KF8_lib_Key_Double_Timer_Protect_S_T_
	INC	__KF8_lib_Key_Double_Timer_Protect_S_T_
	JB	PSW, 2
	JMP	_00157_DS_
	BANKSEL	__KF8_lib_Key_Double_Timer_Protect_S_T_
	INC	(__KF8_lib_Key_Double_Timer_Protect_S_T_ + 1)
;	op : EQ_OP
_00157_DS_
;	.line	1278; "../kf8s_touch_g_lib.c"	if(_KF8_lib_Key_Double_Timer_Protect_S_T_==_KF8_DoubleKey_Compages_Limitable_Circle_)
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	__KF8_lib_Key_Double_Timer_Protect_S_T_
	XOR	R0, __KF8_lib_Key_Double_Timer_Protect_S_T_
	JB	PSW, 2
	JMP	_00046_DS_
	BANKSEL	r0x102E
	MOVZ	R0, r0x102E
	BANKSEL	__KF8_lib_Key_Double_Timer_Protect_S_T_
	XOR	R0, (__KF8_lib_Key_Double_Timer_Protect_S_T_ + 1)
	JB	PSW, 2
	JMP	_00046_DS_
;	op : =
;	.line	1280; "../kf8s_touch_g_lib.c"	_KF8_lib_Key_Down_Count_S_T_=2;
	MOV	R0,# 0x02
	BANKSEL	__KF8_lib_Key_Down_Count_S_T_
	MOV	__KF8_lib_Key_Down_Count_S_T_, R0
;	op : =
;	.line	1281; "../kf8s_touch_g_lib.c"	_KF8_LIBc_finger_OUT_Second_S_T_=_KF8_LIBc_finger_OUT_First_S_T_;
	BANKSEL	__KF8_LIBc_finger_OUT_First_S_T_
	MOVZ	R0, __KF8_LIBc_finger_OUT_First_S_T_
	BANKSEL	__KF8_LIBc_finger_OUT_Second_S_T_
	MOV	__KF8_LIBc_finger_OUT_Second_S_T_, R0
;	op : LABEL
;	op : +
_00046_DS_
;	.line	1286; "../kf8s_touch_g_lib.c"	if(_KF8_LIBc_touch_count_[i_KF8_lib_S_T_]==TCS_AMOUNT )
	BANKSEL	_i_KF8_lib_S_T_
	MOV	R0, _i_KF8_lib_S_T_
	ADD	R0,# (__KF8_LIBc_touch_count_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBc_touch_count_
	LD	R0, [R1]
	BANKSEL	r0x102F
	MOV	r0x102F, R0
;	op : =
;gen_assign from CODESPACE
	MOV	R1,# high (_TCS_AMOUNT+0)
	MOV	R0,# low (_TCS_AMOUNT+0)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : EQ_OP
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	r0x102F
	XOR	R0, r0x102F
	JB	PSW, 2
	JMP	_00060_DS_
;	op : IFX
;	.line	1291; "../kf8s_touch_g_lib.c"	if(_KF8_LIBi_channel_flag_)
	BANKSEL	__KF8_LIBi_channel_flag_
	MOVZ	R0, __KF8_LIBi_channel_flag_
	BANKSEL	__KF8_LIBi_channel_flag_
	ORL	R0, (__KF8_LIBi_channel_flag_ + 1)
	JNB	PSW, 2
	JMP	_00048_DS_
;	op : INLINEASM
	BANKSEL __KF8_lib_Key_Down_Count_S_T_
	MOV R0, __KF8_lib_Key_Down_Count_S_T_
	XOR R0,# 0x01
	JB PSW, 2
	JMP lable_06161201
	;;;;;;;;;;;;;
	MOV R0,# 0x02
	BANKSEL __KF8_lib_Key_Down_Count_S_T_
	MOV __KF8_lib_Key_Down_Count_S_T_, R0
	;;;;;;;;;;;;;
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	BANKSEL __KF8_LIBc_finger_OUT_Second_S_T_
	MOV __KF8_LIBc_finger_OUT_Second_S_T_, R0
	;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0, #low (__KF8_TOUCH_CH_EN)
	MOV R1, #high (__KF8_TOUCH_CH_EN)
	JNB PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	CLR PSW,0
	RLC R0
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV __KF8_lib_Date_Uchar_Temp_S_T_ , R0
	;;;;;;;;;;;;;;;;;;;;
	ADD R0,#low(__KF8_LIBt_buff_bit_S_T_)
	MOV R1,#high(__KF8_LIBt_buff_bit_S_T_)
	JNB PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBi_channel_flag_
	ORL __KF8_LIBi_channel_flag_,R0
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV R0, __KF8_lib_Date_Uchar_Temp_S_T_
	INC R0
	ADD R0,#low(__KF8_LIBt_buff_bit_S_T_)
	MOV R1,#high(__KF8_LIBt_buff_bit_S_T_)
	JNB PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBi_channel_flag_
	ORL (__KF8_LIBi_channel_flag_+1), R0
	JMP lable_06161420
	;;;;;;
lable_06161201:
	BANKSEL _i_KF8_lib_S_T_
	MOV R0,_i_KF8_lib_S_T_
	ADD R0,#(__KF8_LIBc_touch_count_)
	MOV R1,#0X00
	BANKSEL __KF8_LIBc_touch_count_
	ST [R0], R1
lable_06161420:
	
;	op : GOTO
	JMP	_00049_DS_
;	op : LABEL
;	op : INLINEASM
_00048_DS_
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	ADD R0, #low (__KF8_TOUCH_CH_EN)
	MOV R1, #high (__KF8_TOUCH_CH_EN)
	JNB PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	CLR PSW,0
	RLC R0
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV __KF8_lib_Date_Uchar_Temp_S_T_ , R0
	;;;;;;;;;;;;;;;;;;;;
	ADD R0,#low(__KF8_LIBt_buff_bit_S_T_)
	MOV R1,#high(__KF8_LIBt_buff_bit_S_T_)
	JNB PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBi_channel_flag_
	MOV __KF8_LIBi_channel_flag_,R0
	;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV R0, __KF8_lib_Date_Uchar_Temp_S_T_
	INC R0
	ADD R0,#low(__KF8_LIBt_buff_bit_S_T_)
	MOV R1,#high(__KF8_LIBt_buff_bit_S_T_)
	JNB PSW,0
	INC R1
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBi_channel_flag_
	MOV (__KF8_LIBi_channel_flag_+1), R0
	;;;;;;;;;;;;;;;;;;;;;
	MOV R0,# 0x01
	BANKSEL __KF8_lib_Key_Down_Count_S_T_
	MOV __KF8_lib_Key_Down_Count_S_T_, R0
	;;;;;;;;;;;;
	BANKSEL __KF8_lib_Key_Double_Timer_Protect_S_T_
	MOV __KF8_lib_Key_Double_Timer_Protect_S_T_, R0
	BANKSEL __KF8_lib_Key_Double_Timer_Protect_S_T_
	CLR (__KF8_lib_Key_Double_Timer_Protect_S_T_ + 1)
	;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL _i_KF8_lib_S_T_
	MOV R0, _i_KF8_lib_S_T_
	BANKSEL __KF8_LIBc_finger_OUT_First_S_T_
	MOV __KF8_LIBc_finger_OUT_First_S_T_, R0
	;;;;;;;;;;;;;;;
	MOV R0,# 0xff
	BANKSEL __KF8_LIBc_finger_OUT_Second_S_T_
	MOV __KF8_LIBc_finger_OUT_Second_S_T_, R0
	
;	op : LABEL
;	op : INLINEASM
_00049_DS_
	BANKSEL _i_KF8_lib_S_T_
	MOV R0,_i_KF8_lib_S_T_
	ADD R0,#(__KF8_LIBc_touch_count_)
	BANKSEL __KF8_LIBc_touch_count_
	LD R1,[R0]
	INC R1
	ST [R0],R1
	
;	op : GOTO
	JMP	_00060_DS_
;	op : LABEL
;	op : +
_00055_DS_
;	.line	1465; "../kf8s_touch_g_lib.c"	else if(_KF8_LIBc_touch_count_[i_KF8_lib_S_T_]<TCS_AMOUNT)
	BANKSEL	_i_KF8_lib_S_T_
	MOV	R0, _i_KF8_lib_S_T_
	ADD	R0,# (__KF8_LIBc_touch_count_ + 0)
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x102A
	MOV	R1, r0x102A
	BANKSEL	__KF8_LIBc_touch_count_
	LD	R0, [R1]
	BANKSEL	r0x1030
	MOV	r0x1030, R0
;	op : =
;gen_assign from CODESPACE
	MOV	R1,# high (_TCS_AMOUNT+0)
	MOV	R0,# low (_TCS_AMOUNT+0)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102A
	MOV	r0x102A, R0
;	op : <
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	r0x1030
	SUB	R0, r0x1030
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00060_DS_
;	op : INLINEASM
	BANKSEL _i_KF8_lib_S_T_
	MOV R0,_i_KF8_lib_S_T_
	ADD R0,#(__KF8_LIBc_touch_count_)
	BANKSEL __KF8_LIBc_touch_count_
	MOV R1,#0X00
	ST [R0],R1
	
;	op : LABEL
;	op : INLINEASM
_00060_DS_
	CLR PSW, 0
	BANKSEL __KF8_LIBi_Touch_New_Date_S_T_
	RLC __KF8_LIBi_Touch_New_Date_S_T_
	RLC (__KF8_LIBi_Touch_New_Date_S_T_ + 1)
	
;	op : +
;	.line	511; "../kf8s_touch_g_lib.c"	for(i_KF8_lib_S_T_=0;i_KF8_lib_S_T_<CHS_AMOUNT;i_KF8_lib_S_T_++)
	BANKSEL	_i_KF8_lib_S_T_
	INC	_i_KF8_lib_S_T_
;	op : GOTO
	JMP	_00067_DS_
;	op : LABEL
;	op : =
_00070_DS_
;	.line	1497; "../kf8s_touch_g_lib.c"	_KF8_lib_CH_DW_Change_Count_S_T_=0;
	BANKSEL	__KF8_lib_CH_DW_Change_Count_S_T_
	CLR	__KF8_lib_CH_DW_Change_Count_S_T_
;	op : GET_VALUE_AT_ADDRESS
;	.line	1499; "../kf8s_touch_g_lib.c"	if(_KF8_lib_Touch_Bits_._KF8_Touch_Protect_Flag)
	BANKSEL	__KF8_lib_Touch_Bits_
	JB	__KF8_lib_Touch_Bits_, 1
	JMP	_00062_DS_
;	op : INLINEASM
	MOV R0,#low(__KF8_Disturb_Protect_Circle_)
	MOV R1,#high(__KF8_Disturb_Protect_Circle_)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;
	BANKSEL __KF8_lib_Wave_Protect_Time_Count_S_T_
	INC __KF8_lib_Wave_Protect_Time_Count_S_T_
	MOV R1,__KF8_lib_Wave_Protect_Time_Count_S_T_
	;;;;;;;;;
	SUB R1,R0
	JNB PSW, 0
	JMP lable_06161507
	BANKSEL __KF8_lib_Touch_Bits_
	CLR __KF8_lib_Touch_Bits_, 1
lable_06161507:
	
;	op : LABEL
;	op : =
;gen_assign from CODESPACE
_00062_DS_
;	.line	1530; "../kf8s_touch_g_lib.c"	if(_KF8_Key_Max_Pressed_Limitable_Circle_)
	MOV	R1,# high (__KF8_Key_Max_Pressed_Limitable_Circle_+0)
	MOV	R0,# low (__KF8_Key_Max_Pressed_Limitable_Circle_+0)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x102A
	MOV	r0x102A, R0
	MOV	R1,# high (__KF8_Key_Max_Pressed_Limitable_Circle_+1)
	MOV	R0,# low (__KF8_Key_Max_Pressed_Limitable_Circle_+1)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x1030
	MOV	r0x1030, R0
;	op : IFX
	BANKSEL	r0x102A
	MOVZ	R0, r0x102A
	BANKSEL	r0x1030
	ORL	R0, r0x1030
	JNB	PSW, 2
	JMP	_00071_DS_
;	op : IFX
;	.line	1532; "../kf8s_touch_g_lib.c"	if(_KF8_LIBi_channel_flag_)
	BANKSEL	__KF8_LIBi_channel_flag_
	MOVZ	R0, __KF8_LIBi_channel_flag_
	BANKSEL	__KF8_LIBi_channel_flag_
	ORL	R0, (__KF8_LIBi_channel_flag_ + 1)
	JNB	PSW, 2
	JMP	_00071_DS_
;	op : +
;	.line	1534; "../kf8s_touch_g_lib.c"	_KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_++;
	BANKSEL	__KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_
	INC	__KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_
	JB	PSW, 2
	JMP	_00158_DS_
	BANKSEL	__KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_
	INC	(__KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_ + 1)
;	op : INLINEASM
_00158_DS_
	MOV R0,#low(__KF8_Key_Max_Pressed_Limitable_Circle_)
	MOV R1,#high(__KF8_Key_Max_Pressed_Limitable_Circle_)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_
	XOR R0,__KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_
	JB PSW,2
	JMP lable_06161527
	;;;;;;;;;;;;;;;;
	MOV R0,#low(__KF8_Key_Max_Pressed_Limitable_Circle_+1)
	MOV R1,#high(__KF8_Key_Max_Pressed_Limitable_Circle_+1)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_
	XOR R0,(__KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_+1)
	JB PSW ,2
	JMP lable_06161527
	;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBi_channel_flag_
	CLR __KF8_LIBi_channel_flag_
	BANKSEL __KF8_LIBi_channel_flag_
	CLR (__KF8_LIBi_channel_flag_ + 1)
	;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Key_Down_Count_S_T_
	MOV R0, __KF8_lib_Key_Down_Count_S_T_
	XOR R0,# 0x02
	JB PSW, 2
	JMP lable_06161530
	;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBc_finger_OUT_Second_S_T_
	MOV R0,__KF8_LIBc_finger_OUT_Second_S_T_
	CLR PSW,0
	RLC R0
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV __KF8_lib_Date_Uchar_Temp_S_T_, R0
	ADD R0, #(__KF8_LIBi_buff_hit_)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV R0,__KF8_lib_Date_Uchar_Temp_S_T_
	ADD R0,#(__KF8_LIBi_buff_baseline_)
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0],R1
	;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV R0,__KF8_lib_Date_Uchar_Temp_S_T_
	ADD R0,#(__KF8_LIBi_buff_hit_+1)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV R0,__KF8_lib_Date_Uchar_Temp_S_T_
	ADD R0,#(__KF8_LIBi_buff_baseline_+1)
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0],R1
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
lable_06161530:
	BANKSEL __KF8_LIBc_finger_OUT_First_S_T_
	MOV R0,__KF8_LIBc_finger_OUT_First_S_T_
	CLR PSW,0
	RLC R0
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV __KF8_lib_Date_Uchar_Temp_S_T_, R0
	ADD R0, #(__KF8_LIBi_buff_hit_)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV R0,__KF8_lib_Date_Uchar_Temp_S_T_
	ADD R0,#(__KF8_LIBi_buff_baseline_)
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0],R1
	;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV R0,__KF8_lib_Date_Uchar_Temp_S_T_
	ADD R0,#(__KF8_LIBi_buff_hit_+1)
	BANKSEL __KF8_LIBi_buff_hit_
	LD R1,[R0]
	;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV R0,__KF8_lib_Date_Uchar_Temp_S_T_
	ADD R0,#(__KF8_LIBi_buff_baseline_+1)
	BANKSEL __KF8_LIBi_buff_baseline_
	ST [R0],R1
	;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Key_Down_Count_S_T_
	CLR __KF8_lib_Key_Down_Count_S_T_
	;;;;;;;;;;;;;;;;;;;;;;;;;;;
	MOV R0,# 0xff
	BANKSEL __KF8_LIBc_finger_OUT_First_S_T_
	MOV __KF8_LIBc_finger_OUT_First_S_T_, R0
	;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBc_finger_OUT_Second_S_T_
	MOV __KF8_LIBc_finger_OUT_Second_S_T_, R0
	;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Key_Double_Timer_Protect_S_T_
	CLR __KF8_lib_Key_Double_Timer_Protect_S_T_
	BANKSEL __KF8_lib_Key_Double_Timer_Protect_S_T_
	CLR (__KF8_lib_Key_Double_Timer_Protect_S_T_ + 1)
	;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_
	CLR __KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_
	BANKSEL __KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_
	CLR (__KF8_lib_MAX_KEY_Vaule_Time_Count_S_T_ + 1)
lable_06161527:
	
;	op : LABEL
;	op : ENDFUNCTION
_00071_DS_
	CRET	
; exit point of __KF8_LiBf_KEY_Deal_AND_BaseLine_Up



func.__KF8S_Init_Touch_General_	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  __KF8S_Init_Touch_General_	;Function start
; 2 exit points
;has an exit
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
__KF8S_Init_Touch_General_	;Function start
; 2 exit points
;	op : =
;	.line	379; "../kf8s_touch_g_lib.c"	_KF8_lib_Date_Uchar_Temp_S_T_=0; // 开机放弃的n圈计数保证为0开始
	BANKSEL	__KF8_lib_Date_Uchar_Temp_S_T_
	CLR	__KF8_lib_Date_Uchar_Temp_S_T_
;	op : =
;	.line	381; "../kf8s_touch_g_lib.c"	_KF8_lib_Touch_Bits_._KF8_Touch_Work_Flag=0; //初始化
	BANKSEL	__KF8_lib_Touch_Bits_
	CLR	__KF8_lib_Touch_Bits_, 0
;	op : =
;	.line	382; "../kf8s_touch_g_lib.c"	_KF8_lib_Touch_Bits_._KF8_Touch_Protect_Flag=0;//初始化
	BANKSEL	__KF8_lib_Touch_Bits_
	CLR	__KF8_lib_Touch_Bits_, 1
;	op : =
;	.line	395; "../kf8s_touch_g_lib.c"	_KF8_lib_CH_DW_Change_Dealed_Flag_S_T_=0;
	BANKSEL	__KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	CLR	__KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	BANKSEL	__KF8_lib_CH_DW_Change_Dealed_Flag_S_T_
	CLR	(__KF8_lib_CH_DW_Change_Dealed_Flag_S_T_ + 1)
;	op : INLINEASM
	; 431 "../kf8s_touch_g_lib.c"
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_LIBc_channel_
	CLR __KF8_LIBc_channel_
	;;;;;;;;;;;;
	BANKSEL __KF8_LIBi_channel_flag_
	CLR __KF8_LIBi_channel_flag_
	CLR __KF8_LIBi_channel_flag_+1
	;;;;;;;;;;;;;
	BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	CLR __KF8_lib_Date_Uchar_Temp_S_T_
	;;;;;;;;;;;;;;
	
;	op : =
;	.line	424; "../kf8s_touch_g_lib.c"	//BANKSEL __KF8_LIBi_buff_hit_
	SET	_EIE1_bits, 7
;	op : =
	CLR	_EIF1_bits, 7
;	op : GET_VALUE_AT_ADDRESS
;	.line	426; "../kf8s_touch_g_lib.c"	//INC   R1
	BANKSEL	__KF8_lib_Touch_Bits_
	JB	__KF8_lib_Touch_Bits_, 6
	JMP	_00019_DS_
;	op : =
;	.line	428; "../kf8s_touch_g_lib.c"	//BANKSEL __KF8_lib_Date_Uchar_Temp_S_T_
	MOV	R0,# 0x90
	MOV	_CTCTL, R0
;	op : =
;	.line	429; "../kf8s_touch_g_lib.c"	//DECJZ __KF8_lib_Date_Uchar_Temp_S_T_
	CLR	_T3L
;	op : GOTO
	JMP	_00020_DS_
;	op : LABEL
;	op : =
_00019_DS_
;	.line	433; "../kf8s_touch_g_lib.c"	CLR __KF8_LIBc_channel_
	SET	_EIE1_bits, 0
;	op : =
	CLR	_EIF1_bits, 0
;	op : =
;	.line	434; "../kf8s_touch_g_lib.c"	;;;;;;;;;;;;
	CLR	_T1H
;	op : =
	CLR	_T1L
;	op : =
	MOV	R0,# 0x01
	MOV	_T1CTL, R0
;	op : =
;	.line	435; "../kf8s_touch_g_lib.c"	BANKSEL __KF8_LIBi_channel_flag_
	MOV	R0,# 0x80
	MOV	_CTCTL, R0
;	op : LABEL
;	op : INLINEASM
_00020_DS_
	MOV R0, # low (__KF8_TOUCH_CH_EN+0)
	MOV R1, # high (__KF8_TOUCH_CH_EN+0)
	PAGESEL __R2PCHPCL
	CALL __R2PCHPCL
	PAGESEL $
	BANKSEL _CTCTL
	ORL _CTCTL,R0
	MOV R0,#0x02
	DECJZ R0
	JMP $-1
Start_First_CT:
	BANKSEL _CTCTL
	SET _CTCTL,6 ;
	NOP
	JB _CTCTL,6
	JMP $-3
	JNB _CTCTL,4
	CLR _T1U ;
	
;	op : =
;	.line	466; "../kf8s_touch_g_lib.c"	MOV R0, # low  (__KF8_TOUCH_CH_EN+0)
	SET	_INTCTL_bits, 6
;	op : =
;	.line	467; "../kf8s_touch_g_lib.c"	MOV R1, # high (__KF8_TOUCH_CH_EN+0)
	SET	_INTCTL_bits, 7
;	op : LABEL
;	op : ENDFUNCTION
	CRET	
; exit point of __KF8S_Init_Touch_General_



func.__KF8_lib_Baihualv_get_	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  __KF8_lib_Baihualv_get_	;Function start
; 2 exit points
;has an exit
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
__KF8_lib_Baihualv_get_	;Function start
; 2 exit points
;	op : INLINEASM
	BANKSEL __KF8_Temp_Cur_B_S_T_
	MOV R0,__KF8_Temp_Cur_B_S_T_
	BANKSEL __KF8_Temp_Cur_A_S_T_
	SUB __KF8_Temp_Cur_A_S_T_,R0
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_Temp_Cur_B_S_T_
	MOV R1,(__KF8_Temp_Cur_B_S_T_+1)
	JB PSW,0
	INC R1
	BANKSEL __KF8_Temp_Cur_A_S_T_
	SUB (__KF8_Temp_Cur_A_S_T_+1),R1
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	JB PSW,0
	JMP label_3_3_3
	JMP label_4_4_4
label_3_3_3:
	;;
	BANKSEL __KF8_lib_Touch_Bits_
	CLR __KF8_lib_Touch_Bits_, 4
	BANKSEL __KF8_Temp_Cur_A_S_T_
	CPL __KF8_Temp_Cur_A_S_T_
	BANKSEL (__KF8_Temp_Cur_A_S_T_+1)
	CPL (__KF8_Temp_Cur_A_S_T_+1)
	INC __KF8_Temp_Cur_A_S_T_
	JNB PSW,2
	INC (__KF8_Temp_Cur_A_S_T_+1)
	JMP label_5_5_5
label_4_4_4:
	;;
	BANKSEL __KF8_lib_Touch_Bits_
	SET __KF8_lib_Touch_Bits_, 4
label_5_5_5:
	
;	op : INLINEASM
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_Temp_Cur_A_S_T_
	MOV R0, (__KF8_Temp_Cur_A_S_T_ + 1)
	AND R0,# 0xfc
	JB PSW, 2
	JMP label_6_6_6
	;;;;;;;;;;;;;;;;;;;;;;小于;;;;;;;;;;;;;;;;;;;;;;;;
	MOV R0,# 0x06
	INC R0
	JMP label_7_7_7
label_8_8_8:
	CLR PSW, 0
	RLC __KF8_Temp_Cur_A_S_T_
	RLC (__KF8_Temp_Cur_A_S_T_ + 1)
label_7_7_7:
	DECJZ R0
	JMP label_8_8_8
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	MOV R0,# 0x08
	BANKSEL __KF8_Temp_Cur_B_S_T_
	ADD __KF8_Temp_Cur_B_S_T_, R0
	PAGESEL label_9_9_9
	JB PSW, 0
	JMP label_9_9_9
	INC (__KF8_Temp_Cur_B_S_T_ + 1)
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
label_9_9_9:
	MOV R0,# 0x04
	INC R0
	JMP label_10_10_10
label_11_11_11:
	CLR PSW, 0
	RRC (__KF8_Temp_Cur_B_S_T_ + 1)
	RRC __KF8_Temp_Cur_B_S_T_
label_10_10_10:
	DECJZ R0
	JMP label_11_11_11
	JMP label_13_13_13
	;;;;;;;;;;;;;;;;;;;;;;大于等于;;;;;;;;;;;;;;;;;;;;;;;;
label_6_6_6:
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	CLR PSW, 0
	BANKSEL __KF8_Temp_Cur_A_S_T_
	RLC __KF8_Temp_Cur_A_S_T_
	RLC (__KF8_Temp_Cur_A_S_T_ + 1)
	CLR PSW, 0
	RLC __KF8_Temp_Cur_A_S_T_
	RLC (__KF8_Temp_Cur_A_S_T_ + 1)
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	MOV R0,# 0x80
	BANKSEL __KF8_Temp_Cur_B_S_T_
	ADD __KF8_Temp_Cur_B_S_T_, R0
	JB PSW, 0
	JMP label_12_12_12
	INC (__KF8_Temp_Cur_B_S_T_ + 1)
label_12_12_12:
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	MOV R0, (__KF8_Temp_Cur_B_S_T_ + 1)
	MOV __KF8_Temp_Cur_B_S_T_, R0
	CLR (__KF8_Temp_Cur_B_S_T_ + 1)
label_13_13_13:
	
;	op : =
;	.line	313; "../kf8s_touch_g_lib.c"	_KF8_lib_bahualvtemportemp_S_T_=0;
	BANKSEL	__KF8_lib_bahualvtemportemp_S_T_
	CLR	__KF8_lib_bahualvtemportemp_S_T_
;	op : INLINEASM
label_17_17_17:
	BANKSEL __KF8_Temp_Cur_B_S_T_
	MOV R0,__KF8_Temp_Cur_B_S_T_
	BANKSEL __KF8_Temp_Cur_A_S_T_
	SUB __KF8_Temp_Cur_A_S_T_,R0
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BANKSEL __KF8_Temp_Cur_B_S_T_
	MOV R1,(__KF8_Temp_Cur_B_S_T_+1)
	JB PSW,0
	INC R1
	BANKSEL __KF8_Temp_Cur_A_S_T_
	SUB (__KF8_Temp_Cur_A_S_T_+1),R1
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	JB PSW,0
	JMP label_15_15_15
	JMP label_14_14_14
label_15_15_15:
	;;
	JMP label_16_16_16
label_14_14_14:
	;;
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	INC __KF8_lib_bahualvtemportemp_S_T_
	MOV R0,__KF8_lib_bahualvtemportemp_S_T_
	SUB R0,#(126)
	JB PSW,0
	JMP label_16_16_16 ;
	JMP label_17_17_17 ;
label_16_16_16:
	
;	op : GET_VALUE_AT_ADDRESS
;	.line	355; "../kf8s_touch_g_lib.c"	if(_KF8_lib_Touch_Bits_._KF8_Touch_Flag_Flag1)
	BANKSEL	__KF8_lib_Touch_Bits_
	JB	__KF8_lib_Touch_Bits_, 4
	JMP	_00015_DS_
;	op : INLINEASM
	BANKSEL __KF8_lib_bahualvtemportemp_S_T_
	CPL __KF8_lib_bahualvtemportemp_S_T_
	INC __KF8_lib_bahualvtemportemp_S_T_
	
;	op : LABEL
;	op : ENDFUNCTION
_00015_DS_
	CRET	
; exit point of __KF8_lib_Baihualv_get_



func.__KF8S_Lib_Set_General_Parameter	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  __KF8S_Lib_Set_General_Parameter	;Function start
; 2 exit points
;has an exit
;1 compiler assigned register :
;   r0x1031
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
__KF8S_Lib_Set_General_Parameter	;Function start
; 2 exit points
;	op : RECEIVE
;	.line	150; "../kf8s_touch_g_lib.c"	void _KF8S_Lib_Set_General_Parameter(unsigned char parameterin)
	BANKSEL	r0x1031
	MOV	r0x1031, R0
;	op : >
;swapping arguments (AOP_TYPEs 1/2)
;unsigned compare: left >= lit(0x3=3), size=1
;	.line	152; "../kf8s_touch_g_lib.c"	switch(parameterin)
	MOV	R0,# 0x03
	BANKSEL	r0x1031
	SUB	R0, r0x1031
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00008_DS_
;	op : JUMPTABLE
	MOV	R0,#high _00012_DS_
	MOV	PCH, R0
	MOV	R0,#_00012_DS_
	BANKSEL	r0x1031
	ADD	R0, r0x1031
	JNB	PSW, 0
	INC	PCH
	MOV	PCL, R0
_00012_DS_
	JMP	_00003_DS_
	JMP	_00004_DS_
	JMP	_00005_DS_
;	op : LABEL
;	op : =
_00003_DS_
;	.line	156; "../kf8s_touch_g_lib.c"	_KF8_lib_Touch_Bits_._KF8_Touch_Work_USE_PWM=0;
	BANKSEL	__KF8_lib_Touch_Bits_
	CLR	__KF8_lib_Touch_Bits_, 6
;	op : =
;	.line	157; "../kf8s_touch_g_lib.c"	_KF8_lib_Touch_Bits_._KF8_Touch_Work_PWM_IS_16bit=0;
	BANKSEL	__KF8_lib_Touch_Bits_
	CLR	__KF8_lib_Touch_Bits_, 7
;	op : GOTO
;	.line	158; "../kf8s_touch_g_lib.c"	}break;
	JMP	_00008_DS_
;	op : LABEL
;	op : =
_00004_DS_
;	.line	161; "../kf8s_touch_g_lib.c"	_KF8_lib_Touch_Bits_._KF8_Touch_Work_USE_PWM=1;
	BANKSEL	__KF8_lib_Touch_Bits_
	SET	__KF8_lib_Touch_Bits_, 6
;	op : =
;	.line	162; "../kf8s_touch_g_lib.c"	_KF8_lib_Touch_Bits_._KF8_Touch_Work_PWM_IS_16bit=0;
	BANKSEL	__KF8_lib_Touch_Bits_
	CLR	__KF8_lib_Touch_Bits_, 7
;	op : GOTO
;	.line	163; "../kf8s_touch_g_lib.c"	}break;
	JMP	_00008_DS_
;	op : LABEL
;	op : =
_00005_DS_
;	.line	166; "../kf8s_touch_g_lib.c"	_KF8_lib_Touch_Bits_._KF8_Touch_Work_USE_PWM=1;
	BANKSEL	__KF8_lib_Touch_Bits_
	SET	__KF8_lib_Touch_Bits_, 6
;	op : =
;	.line	167; "../kf8s_touch_g_lib.c"	_KF8_lib_Touch_Bits_._KF8_Touch_Work_PWM_IS_16bit=1;
	BANKSEL	__KF8_lib_Touch_Bits_
	SET	__KF8_lib_Touch_Bits_, 7
;	op : LABEL
;	op : ENDFUNCTION
_00008_DS_
;	.line	173; "../kf8s_touch_g_lib.c"	}
	CRET	
; exit point of __KF8S_Lib_Set_General_Parameter



func.__R2PCHPCL	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  __R2PCHPCL	;Function start
; 2 exit points
;has an exit
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
__R2PCHPCL	;Function start
; 2 exit points
;	op : INLINEASM
	MOV PCH,R1
	MOV PCL,R0
	
;	op : LABEL
;	op : ENDFUNCTION
	CRET	
; exit point of __R2PCHPCL


;	code size estimation:
;	  469+  217 =   686 instructions ( 1806 byte)


	.end
