Index: format/rom.format
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Multimode/SlideSwicth_2m_2ch_Close_ice_7043/format/rom.format	(revision 4528)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Multimode/SlideSwicth_2m_2ch_Close_ice_7043/format/rom.format	(working copy)
@@ -2630,6 +2630,7 @@
 0X06 MOUSE_RM_BUTTON
 0X07 MOUSE_LMR_BUTTON
 0x09 MOUSE_L_BK_BUTTON
+0x0a MOUSE_R_BK_BUTTON
 0x14 MOUSE_M_FW_BUTTON
 0X18 MOUSE_BK_FW_BUTTON
 //mouse default gpio
Index: output/eeprom.dat
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Multimode/SlideSwicth_2m_2ch_Close_ice_7043/output/eeprom.dat	(revision 4528)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Multimode/SlideSwicth_2m_2ch_Close_ice_7043/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-3e
+a2
 19
 c2
 84
@@ -79,7 +79,7 @@
 c0
 67
 86
-19
+34
 c0
 68
 03
@@ -87,7 +87,7 @@
 c0
 68
 85
-97
+98
 c0
 69
 83
@@ -115,7 +115,7 @@
 c0
 6f
 05
-e3
+ee
 c0
 6f
 80
@@ -215,7 +215,7 @@
 c0
 76
 86
-21
+3a
 20
 20
 13
@@ -2271,7 +2271,7 @@
 20
 40
 06
-46
+5f
 20
 40
 27
@@ -2323,7 +2323,7 @@
 20
 20
 06
-07
+19
 70
 4b
 94
@@ -2499,7 +2499,7 @@
 20
 40
 05
-ca
+cb
 d8
 40
 00
@@ -2687,7 +2687,7 @@
 20
 40
 05
-ca
+cb
 20
 20
 3e
@@ -4903,7 +4903,7 @@
 20
 40
 05
-97
+98
 1f
 e1
 7e
@@ -5723,11 +5723,15 @@
 20
 40
 05
-97
+98
+20
+40
+40
+ed
 20
 20
 40
-dd
+de
 6f
 e0
 cb
@@ -5743,27 +5747,27 @@
 20
 40
 05
-a1
+a2
 20
 40
 05
-a6
+a7
 20
 40
 05
-ab
+ac
 20
 40
 05
-b0
+b1
 20
 40
 05
-bd
+be
 20
 40
 05
-d0
+d1
 20
 20
 41
@@ -5775,7 +5779,7 @@
 20
 40
 05
-ca
+cb
 20
 40
 41
@@ -5795,7 +5799,7 @@
 20
 40
 05
-ca
+cb
 20
 40
 41
@@ -5815,7 +5819,7 @@
 20
 40
 05
-ca
+cb
 20
 40
 41
@@ -5859,7 +5863,7 @@
 c0
 7f
 85
-b9
+ba
 20
 20
 41
@@ -5871,7 +5875,7 @@
 20
 40
 05
-cd
+ce
 68
 48
 c9
@@ -5911,7 +5915,7 @@
 c0
 7f
 85
-c6
+c7
 20
 20
 41
@@ -5923,7 +5927,7 @@
 20
 40
 05
-cd
+ce
 68
 48
 c9
@@ -6007,7 +6011,7 @@
 20
 40
 05
-cd
+ce
 68
 48
 c9
@@ -6032,30 +6036,98 @@
 20
 3f
 56
+70
+4b
+98
+00
+70
+4b
+99
+00
+70
+4b
+9a
+00
+1f
+e2
+04
+00
 20
 40
 05
-fc
+eb
+20
+40
+41
+00
+20
+20
+40
+f3
+1a
+41
+7e
+0a
+c0
+05
+41
+0e
+20
+60
+00
+00
+20
+40
+06
+0e
 20
 40
 79
 36
 20
 40
-06
-07
+05
+f4
 20
 40
 06
-00
+12
 20
 40
 05
-e9
+fb
 20
 20
 46
 51
+d8
+e0
+00
+0d
+20
+40
+7d
+74
+24
+7a
+00
+00
+20
+40
+06
+19
+d8
+e0
+00
+0d
+58
+00
+00
+20
+20
+20
+7d
+66
 6f
 e4
 4b
@@ -6082,8 +6154,8 @@
 59
 20
 20
-85
-f5
+86
+07
 6f
 e0
 c9
@@ -6155,11 +6227,11 @@
 c2
 94
 86
-04
+16
 c2
 9b
 86
-04
+16
 20
 60
 00
@@ -6184,6 +6256,14 @@
 7f
 80
 00
+20
+40
+06
+22
+20
+74
+00
+00
 da
 20
 00
@@ -6199,11 +6279,39 @@
 20
 40
 06
-0e
+29
 20
 20
 40
 2f
+78
+54
+7c
+00
+6f
+e4
+4b
+ab
+c3
+96
+00
+00
+6f
+e1
+cb
+8e
+20
+7a
+00
+00
+70
+4b
+93
+00
+20
+20
+7e
+54
 6f
 e4
 4b
@@ -6227,7 +6335,7 @@
 c0
 7f
 86
-15
+30
 20
 20
 40
@@ -6239,7 +6347,7 @@
 20
 40
 05
-cd
+ce
 68
 48
 c9
@@ -6248,14 +6356,6 @@
 20
 41
 95
-20
-40
-40
-72
-20
-74
-00
-00
 6f
 e0
 c9
@@ -6315,7 +6415,7 @@
 c5
 13
 06
-2b
+44
 6f
 e0
 c8
@@ -6327,7 +6427,7 @@
 24
 21
 06
-45
+5e
 6f
 e0
 c8
@@ -6339,7 +6439,7 @@
 24
 21
 06
-33
+4c
 6f
 e0
 c8
@@ -6347,7 +6447,7 @@
 c0
 00
 06
-46
+5f
 20
 60
 00
@@ -6383,7 +6483,7 @@
 c5
 13
 06
-3c
+55
 6f
 e0
 c8
@@ -6415,7 +6515,7 @@
 c0
 01
 06
-4d
+66
 c0
 00
 a7
@@ -6435,7 +6535,7 @@
 c0
 01
 86
-4c
+65
 1f
 e0
 fe
@@ -6451,11 +6551,11 @@
 c0
 01
 06
-4d
+66
 20
 20
 06
-4d
+66
 70
 41
 e8
@@ -6464,8 +6564,8 @@
 60
 00
 00
-53
-1e
+af
+b4
 aa
 55
 40
@@ -7826,108 +7926,8 @@
 55
 fd
 96
-53
-be
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+8e
+db
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-08
-dc
+49
+a4
Index: output/program.lis
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Multimode/SlideSwicth_2m_2ch_Close_ice_7043/output/program.lis	(revision 4528)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Multimode/SlideSwicth_2m_2ch_Close_ice_7043/output/program.lis	(working copy)
@@ -18,16 +18,16 @@
 000f c0650298 beq patch19_2 ,p_mouse_lpm_before_common 
 0010 c06600f7 beq patch19_4 ,p_mouse_adc_read_start 
 0011 c0670557 beq patch19_6 ,p_mouse_motion 
-0012 c0678619 beq patch19_7 ,p_mouse_dpi_process 
+0012 c0678634 beq patch19_7 ,p_mouse_dpi_process 
 0013 c068036b beq patch1a_0 ,p_mouse_seting_dpi 
-0014 c0688597 beq patch1a_1 ,p_mouse_check_key_gpio 
+0014 c0688598 beq patch1a_1 ,p_mouse_check_key_gpio 
 0015 c0698382 beq patch1a_3 ,p_mouse_init_sunt 
 0016 c06a057f beq patch1a_4 ,p_mouse_sensor_poweron 
 0017 c06b02bb beq patch1a_6 ,p_mouse_priority_bb_event 
 0018 c06c83b0 beq patch1b_1 ,p_mouse_bb_event_timer 
 0019 c06d04e1 beq patch1b_2 ,p_mouse_start_discovery 
 001a c06d84eb beq patch1b_3 ,p_mouse_stop_discovery 
-001b c06f05e3 beq patch1b_6 ,p_mouse_idle 
+001b c06f05ee beq patch1b_6 ,p_mouse_idle 
 001c c06f808c beq patch1b_7 ,p_mouse_ready_reconnection_by_button 
 001d c0708085 beq patch1c_1 ,p_mouse_led_off 
 001e c0710082 beq patch1c_2 ,p_mouse_led_on 
@@ -54,7 +54,7 @@
 0031 c07501ff beq patch3d_2 ,p_g24_transmit_no_interrupt 
 0032 c075822d beq patch3d_3 ,p_g24_transmit_hop_process 
 0033 c076054c beq patch3d_4 ,p_g24_lpm_wait 
-0034 c0768621 beq patch3d_5 ,p_power_ctrl_start 
+0034 c076863a beq patch3d_5 ,p_power_ctrl_start 
 0035 2020137c branch loop 
 
 p_soft_reset:
@@ -738,7 +738,7 @@
 0233 684a488d fetcht 4 ,mem_24g_fast_conn_addr 
 0234 98467c00 isub temp ,null 
 0235 2022a2cb branch g24_ch ,zero 
-0236 20400646 call p_power_ctrl_txpower_incrs 
+0236 2040065f call p_power_ctrl_txpower_incrs 
 0237 20402724 call power_ctrl_pac_succ_decrs 
 0238 202022cb branch g24_ch 
 
@@ -757,7 +757,7 @@
 p_mouse_dpi_check_once:
 0241 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
 0242 c4140000 rtnbit0 mouse_enable_select_device_by_dpi_button 
-0243 20200607 branch p_mouse_dpi_check 
+0243 20200619 branch p_mouse_dpi_check 
 
 p_mouse_select_device_by_pb_button_check_once:
 0244 704b9403 jam 0x03 ,mem_mouse_pbkey_press_status 
@@ -819,7 +819,7 @@
 026c 6848c910 fetcht 1 ,mem_matrix_public_gpio 
 026d 20406042 call gpio_clr_wake 
 026e 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
-026f 204005ca call p_mouse_gpio_config_output_high 
+026f 204005cb call p_mouse_gpio_config_output_high 
 0270 d8400003 arg 3 ,temp 
 0271 20403f56 call mouse_gpio_config_input_pu 
 0272 20400298 call p_mouse_lpm_before_common 
@@ -884,7 +884,7 @@
 029b 20406050 call gpio_config_input 
 029c 20403f88 call mouse_wheel_check 
 029d 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
-029e 204005ca call p_mouse_gpio_config_output_high 
+029e 204005cb call p_mouse_gpio_config_output_high 
 029f 20203e44 branch mouse_lpm_before_common + 4 
 
 p_g24_nodata_transmit:
@@ -1688,7 +1688,7 @@
 
 p_mouse_commbination_key_start:
 04c7 6048cb9d storet 1 ,mem_mouse_commbination_key 
-04c8 20400597 call p_mouse_check_key_gpio 
+04c8 20400598 call p_mouse_check_key_gpio 
 04c9 1fe17e07 and pdata ,0x07 ,pdata 
 04ca 6848cb9d fetcht 1 ,mem_mouse_commbination_key 
 04cb 98467c00 isub temp ,null 
@@ -1971,266 +1971,301 @@
 0594 20205b0c branch twspi_write 
 
 p_mouse_key:
-0595 20400597 call p_mouse_check_key_gpio 
-0596 202040dd branch mouse_key + 1 
+0595 20400598 call p_mouse_check_key_gpio 
+0596 204040ed call mouse_ghost_key_check 
+0597 202040de branch mouse_key + 2 
 
 p_mouse_check_key_gpio:
-0597 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-0598 245a4121 ncall mouse_check_key_gpio_once ,blank 
-0599 da200000 arg 0 ,rega 
-059a 204005a1 call p_mouse_check_lkey_gpio 
-059b 204005a6 call p_mouse_check_rkey_gpio 
-059c 204005ab call p_mouse_check_mkey_gpio 
-059d 204005b0 call p_mouse_check_bkkey_gpio 
-059e 204005bd call p_mouse_check_fwkey_gpio 
-059f 204005d0 call p_mouse_check_customerkey_gpio 
-05a0 2020411f branch mouse_check_key_gpio_next + 1 
+0598 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+0599 245a4121 ncall mouse_check_key_gpio_once ,blank 
+059a da200000 arg 0 ,rega 
+059b 204005a2 call p_mouse_check_lkey_gpio 
+059c 204005a7 call p_mouse_check_rkey_gpio 
+059d 204005ac call p_mouse_check_mkey_gpio 
+059e 204005b1 call p_mouse_check_bkkey_gpio 
+059f 204005be call p_mouse_check_fwkey_gpio 
+05a0 204005d1 call p_mouse_check_customerkey_gpio 
+05a1 2020411f branch mouse_check_key_gpio_next + 1 
 
 p_mouse_check_lkey_gpio:
-05a1 6fe0c918 fetch 1 ,mem_lbutton_gpio 
-05a2 204005ca call p_mouse_gpio_config_output_high 
-05a3 20404124 call mouse_check_lkey_gpio 
-05a4 6848c918 fetcht 1 ,mem_lbutton_gpio 
-05a5 20203f56 branch mouse_gpio_config_input_pu 
+05a2 6fe0c918 fetch 1 ,mem_lbutton_gpio 
+05a3 204005cb call p_mouse_gpio_config_output_high 
+05a4 20404124 call mouse_check_lkey_gpio 
+05a5 6848c918 fetcht 1 ,mem_lbutton_gpio 
+05a6 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_rkey_gpio:
-05a6 6fe0c919 fetch 1 ,mem_rbutton_gpio 
-05a7 204005ca call p_mouse_gpio_config_output_high 
-05a8 2040412a call mouse_check_rkey_gpio 
-05a9 6848c919 fetcht 1 ,mem_rbutton_gpio 
-05aa 20203f56 branch mouse_gpio_config_input_pu 
+05a7 6fe0c919 fetch 1 ,mem_rbutton_gpio 
+05a8 204005cb call p_mouse_gpio_config_output_high 
+05a9 2040412a call mouse_check_rkey_gpio 
+05aa 6848c919 fetcht 1 ,mem_rbutton_gpio 
+05ab 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_mkey_gpio:
-05ab 6fe0c91a fetch 1 ,mem_mbutton_gpio 
-05ac 204005ca call p_mouse_gpio_config_output_high 
-05ad 20404130 call mouse_check_mkey_gpio 
-05ae 6848c91a fetcht 1 ,mem_mbutton_gpio 
-05af 20203f56 branch mouse_gpio_config_input_pu 
+05ac 6fe0c91a fetch 1 ,mem_mbutton_gpio 
+05ad 204005cb call p_mouse_gpio_config_output_high 
+05ae 20404130 call mouse_check_mkey_gpio 
+05af 6848c91a fetcht 1 ,mem_mbutton_gpio 
+05b0 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_bkkey_gpio:
-05b0 6fe0c90d fetch 1 ,mem_bk_button_gpio 
-05b1 c17f8000 rtneq gpio_disable 
-05b2 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
-05b3 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
-05b4 1fe22600 copy pdata ,regc 
-05b5 6848c90d fetcht 1 ,mem_bk_button_gpio 
-05b6 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-05b7 c07f85b9 beq gpio_disable ,p_mouse_3io6key_bk_check 
-05b8 2020413e branch mouse_check_bkkey_gpio_next 
+05b1 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+05b2 c17f8000 rtneq gpio_disable 
+05b3 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
+05b4 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
+05b5 1fe22600 copy pdata ,regc 
+05b6 6848c90d fetcht 1 ,mem_bk_button_gpio 
+05b7 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+05b8 c07f85ba beq gpio_disable ,p_mouse_3io6key_bk_check 
+05b9 2020413e branch mouse_check_bkkey_gpio_next 
 
 p_mouse_3io6key_bk_check:
-05b9 6fe0c90d fetch 1 ,mem_bk_button_gpio 
-05ba 204005cd call p_mouse_gpio_config_output_low 
-05bb 6848c90d fetcht 1 ,mem_bk_button_gpio 
-05bc 2020414b branch mouse_3io6key_bk_check 
+05ba 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+05bb 204005ce call p_mouse_gpio_config_output_low 
+05bc 6848c90d fetcht 1 ,mem_bk_button_gpio 
+05bd 2020414b branch mouse_3io6key_bk_check 
 
 p_mouse_check_fwkey_gpio:
-05bd 6fe0c90e fetch 1 ,mem_fw_button_gpio 
-05be c17f8000 rtneq gpio_disable 
-05bf 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
-05c0 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
-05c1 1fe22600 copy pdata ,regc 
-05c2 6848c90e fetcht 1 ,mem_fw_button_gpio 
-05c3 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-05c4 c07f85c6 beq gpio_disable ,p_mouse_3io6key_fw_check 
-05c5 20204157 branch mouse_check_fwkey_gpio_next 
+05be 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+05bf c17f8000 rtneq gpio_disable 
+05c0 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
+05c1 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
+05c2 1fe22600 copy pdata ,regc 
+05c3 6848c90e fetcht 1 ,mem_fw_button_gpio 
+05c4 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+05c5 c07f85c7 beq gpio_disable ,p_mouse_3io6key_fw_check 
+05c6 20204157 branch mouse_check_fwkey_gpio_next 
 
 p_mouse_3io6key_fw_check:
-05c6 6fe0c90e fetch 1 ,mem_fw_button_gpio 
-05c7 204005cd call p_mouse_gpio_config_output_low 
-05c8 6848c90e fetcht 1 ,mem_fw_button_gpio 
-05c9 20204164 branch mouse_3io6key_fw_check 
+05c7 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+05c8 204005ce call p_mouse_gpio_config_output_low 
+05c9 6848c90e fetcht 1 ,mem_fw_button_gpio 
+05ca 20204164 branch mouse_3io6key_fw_check 
 
 p_mouse_gpio_config_output_high:
-05ca c17f8000 rtneq gpio_disable 
-05cb d840003f arg gpcfg_output_high ,temp 
-05cc 20206093 branch gpio_config_function_int 
+05cb c17f8000 rtneq gpio_disable 
+05cc d840003f arg gpcfg_output_high ,temp 
+05cd 20206093 branch gpio_config_function_int 
 
 p_mouse_gpio_config_output_low:
-05cd c17f8000 rtneq gpio_disable 
-05ce d840003e arg gpcfg_output_low ,temp 
-05cf 20206093 branch gpio_config_function_int 
+05ce c17f8000 rtneq gpio_disable 
+05cf d840003e arg gpcfg_output_low ,temp 
+05d0 20206093 branch gpio_config_function_int 
 
 p_mouse_check_customerkey_gpio:
-05d0 6fe0cdc6 fetch 1 ,mem_mouse_customer_key_connect_vin_flag 
-05d1 203a416a branch mouse_check_customerkey_gpio ,blank 
-05d2 704b8b00 jam 0 ,mem_customer_key 
-05d3 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-05d4 c40a8000 rtnbit0 mouse_enable_keyboard 
-05d5 6fe0c912 fetch 1 ,mem_customer_key_gpio 
-05d6 793ffe07 set0 gpio_active_bit ,pdata 
-05d7 67e0c912 store 1 ,mem_customer_key_gpio 
-05d8 704b9607 jam mouse_customer_key ,mem_mouse_key_temp 
-05d9 6fe0cb95 fetch 1 ,mem_mouse_customerkey_press_status 
-05da 1fe22600 copy pdata ,regc 
+05d1 6fe0cdc6 fetch 1 ,mem_mouse_customer_key_connect_vin_flag 
+05d2 203a416a branch mouse_check_customerkey_gpio ,blank 
+05d3 704b8b00 jam 0 ,mem_customer_key 
+05d4 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+05d5 c40a8000 rtnbit0 mouse_enable_keyboard 
+05d6 6fe0c912 fetch 1 ,mem_customer_key_gpio 
+05d7 793ffe07 set0 gpio_active_bit ,pdata 
+05d8 67e0c912 store 1 ,mem_customer_key_gpio 
+05d9 704b9607 jam mouse_customer_key ,mem_mouse_key_temp 
+05da 6fe0cb95 fetch 1 ,mem_mouse_customerkey_press_status 
+05db 1fe22600 copy pdata ,regc 
 
 p_mouse_3io6key_customerkey_check:
-05db 6fe0c912 fetch 1 ,mem_customer_key_gpio 
-05dc 204005cd call p_mouse_gpio_config_output_low 
-05dd 6848c912 fetcht 1 ,mem_customer_key_gpio 
-05de 20404195 call mouse_3io6key_check 
-05df 67e0cb95 store 1 ,mem_mouse_customerkey_press_status 
-05e0 20404174 call mouse_check_customerkey_state 
-05e1 6848c912 fetcht 1 ,mem_customer_key_gpio 
-05e2 20203f56 branch mouse_gpio_config_input_pu 
+05dc 6fe0c912 fetch 1 ,mem_customer_key_gpio 
+05dd 204005ce call p_mouse_gpio_config_output_low 
+05de 6848c912 fetcht 1 ,mem_customer_key_gpio 
+05df 20404195 call mouse_3io6key_check 
+05e0 67e0cb95 store 1 ,mem_mouse_customerkey_press_status 
+05e1 20404174 call mouse_check_customerkey_state 
+05e2 6848c912 fetcht 1 ,mem_customer_key_gpio 
+05e3 20203f56 branch mouse_gpio_config_input_pu 
+
+p_mouse_ghost_key_check:
+05e4 704b9800 jam 0 ,mem_mouse_matrix_key_cow_count 
+05e5 704b9900 jam 0 ,mem_mouse_matrix_key_row_count 
+05e6 704b9a00 jam 0 ,mem_mouse_ghost_flag 
+05e7 1fe20400 copy pdata ,temp 
+05e8 204005eb call p_mouse_ghost_key_check_r_bk 
+05e9 20404100 call mouse_ghost_key_check_m_fw 
+05ea 202040f3 branch mouse_ghost_key_check + 6 
+
+p_mouse_ghost_key_check_r_bk:
+05eb 1a417e0a and regb ,mouse_r_bk_button ,pdata 
+05ec c005410e beq mouse_r_bk_button ,mouse_matrix_cow_more_than_one_key 
+05ed 20600000 rtn 
 
 p_mouse_idle:
-05e3 204005fc call p_mouse_low_voltage_led_no_enter_lpm 
-05e4 20407936 call ui_check_paring_button 
-05e5 20400607 call p_mouse_dpi_check 
-05e6 20400600 call p_mouse_select_device_check 
-05e7 204005e9 call p_mouse_check_select_device_by_switch 
-05e8 20204651 branch mouse_idle + 6 
+05ee 2040060e call p_mouse_low_voltage_led_no_enter_lpm 
+05ef 20407936 call ui_check_paring_button 
+05f0 204005f4 call p_mouse_20ms_event_timer 
+05f1 20400612 call p_mouse_select_device_check 
+05f2 204005fb call p_mouse_check_select_device_by_switch 
+05f3 20204651 branch mouse_idle + 6 
+
+p_mouse_20ms_event_timer:
+05f4 d8e0000d arg 13 ,queue 
+05f5 20407d74 call timer_check 
+05f6 247a0000 nrtn blank 
+05f7 20400619 call p_mouse_dpi_check 
+
+p_mouse_20ms_event_timer_init:
+05f8 d8e0000d arg 13 ,queue 
+05f9 58000020 setarg 32 
+05fa 20207d66 branch timer_init 
 
 p_mouse_check_select_device_by_switch:
-05e9 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-05ea c4150000 rtnbit0 mouse_enable_select_device_by_switch_gpio 
+05fb 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+05fc c4150000 rtnbit0 mouse_enable_select_device_by_switch_gpio 
 
 p_mouse_check_select_device_by_switch_gpio:
-05eb 6848c91e fetcht 1 ,mem_device_switch_gpio 
-05ec 20403f56 call mouse_gpio_config_input_pu 
-05ed 6848c91e fetcht 1 ,mem_device_switch_gpio 
-05ee 20406059 call gpio_get_bit 
-05ef 202085f5 branch p_mouse_check_select_24g_device ,true 
+05fd 6848c91e fetcht 1 ,mem_device_switch_gpio 
+05fe 20403f56 call mouse_gpio_config_input_pu 
+05ff 6848c91e fetcht 1 ,mem_device_switch_gpio 
+0600 20406059 call gpio_get_bit 
+0601 20208607 branch p_mouse_check_select_24g_device ,true 
 
 p_mouse_select_btdevice:
-05f0 6fe0c938 fetch 1 ,mem_device_flag 
-05f1 c1008000 rtneq mode_bt_device1 
-05f2 70493801 jam mode_bt_device1 ,mem_device_flag 
-05f3 204047f2 call mouse_24g_stop 
-05f4 202046c0 branch mouse_soft_reset 
+0602 6fe0c938 fetch 1 ,mem_device_flag 
+0603 c1008000 rtneq mode_bt_device1 
+0604 70493801 jam mode_bt_device1 ,mem_device_flag 
+0605 204047f2 call mouse_24g_stop 
+0606 202046c0 branch mouse_soft_reset 
 
 p_mouse_check_select_24g_device:
-05f5 6fe0c938 fetch 1 ,mem_device_flag 
-05f6 c1000000 rtneq mode_24g_device 
-05f7 70493800 jam mode_24g_device ,mem_device_flag 
-05f8 7041ca00 jam 0 ,mem_link_key_exists 
-05f9 20404316 call mouse_stop_bluetooth_mode 
-05fa 20403173 call app_evt_button_long_pressed 
-05fb 202046c0 branch mouse_soft_reset 
+0607 6fe0c938 fetch 1 ,mem_device_flag 
+0608 c1000000 rtneq mode_24g_device 
+0609 70493800 jam mode_24g_device ,mem_device_flag 
+060a 7041ca00 jam 0 ,mem_link_key_exists 
+060b 20404316 call mouse_stop_bluetooth_mode 
+060c 20403173 call app_evt_button_long_pressed 
+060d 202046c0 branch mouse_soft_reset 
 
 p_mouse_low_voltage_led_no_enter_lpm:
-05fc 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
-05fd c301c990 bbit0 mouse_enable_low_led ,mouse_low_voltage_led_no_enter_lpm 
+060e 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+060f c301c990 bbit0 mouse_enable_low_led ,mouse_low_voltage_led_no_enter_lpm 
 
 p_mouse_low_voltage_led_no_enter_lpm_next:
-05fe 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-05ff 20204992 branch mouse_low_voltage_led_no_enter_lpm + 2 
+0610 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0611 20204992 branch mouse_low_voltage_led_no_enter_lpm + 2 
 
 p_mouse_select_device_check:
-0600 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0601 c2948604 bbit1 mouse_enable_select_device_by_pb_button ,p_mouse_select_device_by_pb_button_check_judge 
-0602 c29b8604 bbit1 mouse_enable_pb_button_long_press_disconvery ,p_mouse_select_device_by_pb_button_check_judge 
-0603 20600000 rtn 
+0612 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0613 c2948616 bbit1 mouse_enable_select_device_by_pb_button ,p_mouse_select_device_by_pb_button_check_judge 
+0614 c29b8616 bbit1 mouse_enable_pb_button_long_press_disconvery ,p_mouse_select_device_by_pb_button_check_judge 
+0615 20600000 rtn 
 
 p_mouse_select_device_by_pb_button_check_judge:
-0604 6fe1478c fetch 2 ,mem_ui_state_map 
-0605 c2830244 bbit1 ui_state_bt_discovery ,p_mouse_select_device_by_pb_button_check_once 
-0606 2020465a branch mouse_select_device_by_pb_button 
+0616 6fe1478c fetch 2 ,mem_ui_state_map 
+0617 c2830244 bbit1 ui_state_bt_discovery ,p_mouse_select_device_by_pb_button_check_once 
+0618 2020465a branch mouse_select_device_by_pb_button 
 
 p_mouse_dpi_check:
-0607 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-0608 c17f8000 rtneq gpio_disable 
-0609 da200000 arg 0 ,rega 
-060a 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
-060b 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-060c 2040060e call p_mouse_dpi_key_check 
-060d 2020402f branch mouse_dpi_check_next 
+0619 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+061a c17f8000 rtneq gpio_disable 
+061b 20400622 call p_mouse_dpi_ghost_check 
+061c 20740000 rtn user 
+061d da200000 arg 0 ,rega 
+061e 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
+061f 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+0620 20400629 call p_mouse_dpi_key_check 
+0621 2020402f branch mouse_dpi_check_next 
+
+p_mouse_dpi_ghost_check:
+0622 78547c00 disable user 
+0623 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0624 c3960000 rtnbit1 mouse_enable_dpi_key_connect_gnd 
+0625 6fe1cb8e fetch 3 ,mem_mouse_lkey_press_status 
+0626 207a0000 rtn blank 
+0627 704b9300 jam 0 ,mem_mouse_dpikey_press_status 
+0628 20207e54 branch enable_user 
 
 p_mouse_dpi_key_check:
-060e 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-060f c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
-0610 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
-0611 1fe22600 copy pdata ,regc 
-0612 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-0613 c07f8615 beq gpio_disable ,p_mouse_3io6key_dpi_check 
-0614 2020403f branch mouse_dpi_key_check_next 
+0629 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+062a c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+062b 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
+062c 1fe22600 copy pdata ,regc 
+062d 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+062e c07f8630 beq gpio_disable ,p_mouse_3io6key_dpi_check 
+062f 2020403f branch mouse_dpi_key_check_next 
 
 p_mouse_3io6key_dpi_check:
-0615 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-0616 204005cd call p_mouse_gpio_config_output_low 
-0617 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-0618 20204195 branch mouse_3io6key_check 
+0630 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+0631 204005ce call p_mouse_gpio_config_output_low 
+0632 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+0633 20204195 branch mouse_3io6key_check 
 
 p_mouse_dpi_process:
-0619 20404072 call mouse_dpi_ghost_check 
-061a 20740000 rtn user 
 
 p_mouse_dpi_process_next:
-061b 6fe0c992 fetch 1 ,mem_mouse_dpi 
-061c 1fe0fe01 increase 1 ,pdata 
-061d 1fe17e03 and pdata ,0x03 ,pdata 
+0634 6fe0c992 fetch 1 ,mem_mouse_dpi 
+0635 1fe0fe01 increase 1 ,pdata 
+0636 1fe17e03 and pdata ,0x03 ,pdata 
 
 p_mouse_dpi_store:
-061e 67e0c992 store 1 ,mem_mouse_dpi 
-061f 2040036b call p_mouse_seting_dpi 
-0620 20204643 branch mouse_store_eerpom_dpi 
+0637 67e0c992 store 1 ,mem_mouse_dpi 
+0638 2040036b call p_mouse_seting_dpi 
+0639 20204643 branch mouse_store_eerpom_dpi 
 
 p_power_ctrl_start:
-0621 6fe1478c fetch 2 ,mem_ui_state_map 
-0622 c3858000 rtnbit1 ui_state_ble_adv 
-0623 c3838000 rtnbit1 ui_state_bt_reconnect 
-0624 c3830000 rtnbit1 ui_state_bt_discovery 
-0625 6a214899 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
-0626 204025cb call rssi_average 
-0627 6048c8c7 storet 1 ,mem_rssi_avg_received 
-0628 6fe0c8cc fetch 1 ,mem_rssi_dis_max_24g 
-0629 c513062b bmark1 mark_24g ,p_power_ctrl_start_next 
-062a 6fe0c8cf fetch 1 ,mem_rssi_dis_max_ble 
+063a 6fe1478c fetch 2 ,mem_ui_state_map 
+063b c3858000 rtnbit1 ui_state_ble_adv 
+063c c3838000 rtnbit1 ui_state_bt_reconnect 
+063d c3830000 rtnbit1 ui_state_bt_discovery 
+063e 6a214899 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
+063f 204025cb call rssi_average 
+0640 6048c8c7 storet 1 ,mem_rssi_avg_received 
+0641 6fe0c8cc fetch 1 ,mem_rssi_dis_max_24g 
+0642 c5130644 bmark1 mark_24g ,p_power_ctrl_start_next 
+0643 6fe0c8cf fetch 1 ,mem_rssi_dis_max_ble 
 
 p_power_ctrl_start_next:
-062b 98467c00 isub temp ,null 
-062c 24210645 nbranch p_power_ctrl_txpower_incrs_force ,positive 
-062d 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-062e 1fe67c02 sub pdata ,2 ,null 
-062f 24210633 nbranch p_power_ctrl_txpower_decrs_check ,positive 
-0630 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0631 c0000646 beq 0 ,p_power_ctrl_txpower_incrs 
-0632 20600000 rtn 
+0644 98467c00 isub temp ,null 
+0645 2421065e nbranch p_power_ctrl_txpower_incrs_force ,positive 
+0646 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0647 1fe67c02 sub pdata ,2 ,null 
+0648 2421064c nbranch p_power_ctrl_txpower_decrs_check ,positive 
+0649 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+064a c000065f beq 0 ,p_power_ctrl_txpower_incrs 
+064b 20600000 rtn 
 
 p_power_ctrl_txpower_decrs_check:
-0633 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0634 6848c8ca fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
-0635 98467c00 isub temp ,null 
-0636 24628000 nrtn zero 
-0637 7048c900 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+064c 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+064d 6848c8ca fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
+064e 98467c00 isub temp ,null 
+064f 24628000 nrtn zero 
+0650 7048c900 jam 0 ,mem_power_ctrl_pac_succ_cnt 
 
 p_power_ctrl_txpower_decrs:
-0638 6848c8c7 fetcht 1 ,mem_rssi_avg_received 
-0639 6fe0c8cb fetch 1 ,mem_rssi_dis_min_24g 
-063a c513063c bmark1 mark_24g ,p_power_ctrl_txpower_decrs_next 
-063b 6fe0c8ce fetch 1 ,mem_rssi_dis_min_ble 
+0651 6848c8c7 fetcht 1 ,mem_rssi_avg_received 
+0652 6fe0c8cb fetch 1 ,mem_rssi_dis_min_24g 
+0653 c5130655 bmark1 mark_24g ,p_power_ctrl_txpower_decrs_next 
+0654 6fe0c8ce fetch 1 ,mem_rssi_dis_min_ble 
 
 p_power_ctrl_txpower_decrs_next:
-063c 98467c00 isub temp ,null 
-063d 24610000 nrtn positive 
-063e 6fe0c8c8 fetch 1 ,mem_power_ctrl_level 
-063f c000271b beq 0 ,power_ctrl_decrs_level0 
-0640 1fe0ffff increase -1 ,pdata 
-0641 67e0c8c8 store 1 ,mem_power_ctrl_level 
-0642 c001064d beq 2 ,p_power_ctrl_decrs_level2 
-0643 c000a711 beq 1 ,power_ctrl_decrs_level1 
-0644 2020271b branch power_ctrl_decrs_level0 
+0655 98467c00 isub temp ,null 
+0656 24610000 nrtn positive 
+0657 6fe0c8c8 fetch 1 ,mem_power_ctrl_level 
+0658 c000271b beq 0 ,power_ctrl_decrs_level0 
+0659 1fe0ffff increase -1 ,pdata 
+065a 67e0c8c8 store 1 ,mem_power_ctrl_level 
+065b c0010666 beq 2 ,p_power_ctrl_decrs_level2 
+065c c000a711 beq 1 ,power_ctrl_decrs_level1 
+065d 2020271b branch power_ctrl_decrs_level0 
 
 p_power_ctrl_txpower_incrs_force:
-0645 7048c900 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+065e 7048c900 jam 0 ,mem_power_ctrl_pac_succ_cnt 
 
 p_power_ctrl_txpower_incrs:
-0646 6fe0c8c8 fetch 1 ,mem_power_ctrl_level 
-0647 c001864c beq 3 ,p_power_ctrl_incrs_level3 
-0648 1fe0fe01 increase 1 ,pdata 
-0649 67e0c8c8 store 1 ,mem_power_ctrl_level 
-064a c000a711 beq 1 ,power_ctrl_incrs_level1 
-064b c001064d beq 2 ,p_power_ctrl_incrs_level2 
+065f 6fe0c8c8 fetch 1 ,mem_power_ctrl_level 
+0660 c0018665 beq 3 ,p_power_ctrl_incrs_level3 
+0661 1fe0fe01 increase 1 ,pdata 
+0662 67e0c8c8 store 1 ,mem_power_ctrl_level 
+0663 c000a711 beq 1 ,power_ctrl_incrs_level1 
+0664 c0010666 beq 2 ,p_power_ctrl_incrs_level2 
 
 p_power_ctrl_incrs_level3:
-064c 2020064d branch p_power_ctrl_incrs_level2 
+0665 20200666 branch p_power_ctrl_incrs_level2 
 
 p_power_ctrl_decrs_level2:
 
 p_power_ctrl_incrs_level2:
-064d 7041e803 jam tx_power_3db ,mem_tx_power 
-064e 20600000 rtn 
+0666 7041e803 jam tx_power_3db ,mem_tx_power 
+0667 20600000 rtn 
               org 0x3bc1
 
 mouse_init:
Index: program/patch.prog
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Multimode/SlideSwicth_2m_2ch_Close_ice_7043/program/patch.prog	(revision 4528)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Multimode/SlideSwicth_2m_2ch_Close_ice_7043/program/patch.prog	(working copy)
@@ -2358,7 +2358,8 @@
 	nbranch p_fire_key_process,blank
 endif
 	call p_mouse_check_key_gpio
-	branch mouse_key+1
+	call mouse_ghost_key_check
+	branch mouse_key+2
 
 p_mouse_check_key_gpio:	//when mem_matrix_public_gpio=0xff
 	fetch 1,mem_sensor_shutdown_flag
@@ -2466,6 +2467,21 @@
 	fetcht 1,mem_customer_key_gpio
 	branch mouse_gpio_config_input_pu
 
+
+p_mouse_ghost_key_check:
+	jam 0,mem_mouse_matrix_key_cow_count
+	jam 0,mem_mouse_matrix_key_row_count
+	jam 0,mem_mouse_ghost_flag
+	copy pdata,temp
+	call p_mouse_ghost_key_check_R_BK
+	call mouse_ghost_key_check_M_FW
+	branch mouse_ghost_key_check+6
+
+p_mouse_ghost_key_check_R_BK:
+	and regb,MOUSE_R_BK_BUTTON,pdata
+	beq MOUSE_R_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+
 /////////////////////////////////////////////firekey start//////////////////////////////////////////
 
 ifdef FIRE_KEY
@@ -2558,14 +2574,26 @@
 p_mouse_idle:
 	call p_mouse_low_voltage_led_no_enter_lpm
 	call ui_check_paring_button
-	call p_mouse_dpi_check
-ifdef DOUBLE_DPI_KEY
-	call p_mouse_dpi_another_gpio_check
-endif
+	call p_mouse_20ms_event_timer
+//	call p_mouse_dpi_check
+//ifdef DOUBLE_DPI_KEY
+//	call p_mouse_dpi_another_gpio_check
+//endif
 	call p_mouse_select_device_check
 	call p_mouse_check_select_device_by_switch
 	branch mouse_idle+6
 
+p_mouse_20ms_event_timer:
+	arg 13,queue
+	call timer_check
+	nrtn blank
+	call p_mouse_dpi_check
+p_mouse_20ms_event_timer_init:
+	arg 13,queue
+	setarg 32
+	branch timer_init
+
+
 p_mouse_check_select_device_by_switch:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
@@ -2611,12 +2639,23 @@
 p_mouse_dpi_check:
 	fetch 1,mem_dpi_button_gpio
 	rtneq GPIO_DISABLE
+	call p_mouse_dpi_ghost_check
+	rtn user
 	arg 0,rega
 	jam MOUSE_DPI_KEY,mem_mouse_key_temp
 	fetcht 1,mem_dpi_button_gpio
 	call p_mouse_dpi_key_check
 	branch mouse_dpi_check_next
 
+p_mouse_dpi_ghost_check:
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+	fetch 3,mem_mouse_lkey_press_status
+	rtn blank
+	jam 0,mem_mouse_dpikey_press_status
+	branch enable_user
+
 p_mouse_dpi_key_check:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND,mouse_dpi_key_connect_gnd
@@ -2712,8 +2751,8 @@
 endif
 
 p_mouse_dpi_process:
-	call mouse_dpi_ghost_check
-	rtn user
+//	call mouse_dpi_ghost_check
+//	rtn user
 p_mouse_dpi_process_next:
 	fetch 1,mem_mouse_dpi
 ifdef DOUBLE_DPI_KEY
