Index: format/app_mouse.format
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr_branch/SlideSwitch_XZR17125/format/app_mouse.format	(revision 1015)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr_branch/SlideSwitch_XZR17125/format/app_mouse.format	(working copy)
@@ -383,6 +383,7 @@
 1 mem_mouse_logo_led_state_load_delay_timer_init
 
 2 mem_mouse_le_reconn_led_blink_time
+1 mem_fire_key_flag
 )
 
 
Index: output/eeprom.dat
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr_branch/SlideSwitch_XZR17125/output/eeprom.dat	(revision 1015)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr_branch/SlideSwitch_XZR17125/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-8e
+aa
 14
 c2
 84
@@ -67,7 +67,7 @@
 c0
 67
 84
-af
+b6
 c0
 68
 02
@@ -75,11 +75,11 @@
 c0
 68
 83
-de
+e5
 c0
 69
 84
-df
+e6
 c0
 6a
 03
@@ -99,7 +99,7 @@
 c0
 6f
 04
-46
+4d
 c0
 74
 03
@@ -1203,7 +1203,7 @@
 20
 20
 04
-e1
+e8
 20
 40
 26
@@ -1331,7 +1331,7 @@
 20
 40
 04
-e1
+e8
 6f
 e4
 4b
@@ -3611,7 +3611,7 @@
 20
 40
 04
-f8
+ff
 20
 40
 3f
@@ -3622,8 +3622,8 @@
 83
 20
 40
-40
-dc
+03
+de
 6f
 e0
 c8
@@ -3964,6 +3964,34 @@
 20
 5b
 0c
+20
+40
+04
+1c
+6f
+e0
+cc
+5f
+24
+3a
+04
+28
+6f
+e0
+cc
+4f
+24
+3a
+04
+27
+20
+40
+03
+e5
+20
+20
+40
+dd
 6f
 e0
 cb
@@ -3979,27 +4007,27 @@
 20
 40
 03
-e8
+ef
 20
 40
 03
-ed
+f4
 20
 40
 03
-f2
+f9
 20
 40
 03
-f7
+fe
 20
 40
 04
-04
+0b
 20
 40
 04
-15
+1c
 20
 20
 41
@@ -4011,7 +4039,7 @@
 20
 40
 04
-11
+18
 20
 40
 41
@@ -4031,7 +4059,7 @@
 20
 40
 04
-11
+18
 20
 40
 41
@@ -4051,7 +4079,7 @@
 20
 40
 04
-11
+18
 20
 40
 41
@@ -4095,7 +4123,7 @@
 c0
 7f
 84
-00
+07
 20
 20
 41
@@ -4107,7 +4135,7 @@
 20
 40
 04
-13
+1a
 68
 48
 c9
@@ -4147,7 +4175,7 @@
 c0
 7f
 84
-0d
+14
 20
 20
 41
@@ -4159,7 +4187,7 @@
 20
 40
 04
-13
+1a
 68
 48
 c9
@@ -4184,13 +4212,17 @@
 20
 60
 93
-1a
-22
-7e
+da
+40
 00
-c3
-80
 00
+6f
+e0
+cc
+54
+c1
+7f
+80
 00
 68
 48
@@ -4208,18 +4240,18 @@
 40
 60
 59
-24
+79
 20
-84
-21
-6f
+a4
+00
+1a
+42
+7e
+00
+67
 e0
 cc
-4f
-24
-3a
-04
-1f
+5f
 20
 60
 00
@@ -4227,15 +4259,11 @@
 c0
 02
 04
-3b
-20
-20
-04
-21
+42
 20
 40
 04
-3e
+45
 6f
 e2
 4c
@@ -4243,7 +4271,7 @@
 d8
 40
 00
-80
+a0
 98
 40
 84
@@ -4271,19 +4299,19 @@
 c0
 00
 04
-2f
+36
 c0
 00
 84
-32
+39
 c0
 01
 04
-35
+3c
 c0
 01
 84
-38
+3f
 20
 60
 00
@@ -4292,57 +4320,57 @@
 4c
 4f
 01
-79
+70
+48
+d0
+01
 20
-22
-00
 20
-60
-00
-00
+7e
+54
 70
 4c
 4f
 02
-79
-3f
-a2
+70
+48
+d0
 00
 20
-60
-00
-00
+20
+7e
+54
 70
 4c
 4f
 03
-79
+70
+48
+d0
+01
 20
-22
-00
 20
-60
-00
-00
+7e
+54
 70
 4c
 4f
-04
-79
-3f
-a2
-00
-20
-60
 00
+70
+48
+d0
 00
+20
+20
+7e
+54
 70
 4c
 4f
 00
-79
-3f
-a2
+70
+48
+d0
 00
 20
 60
@@ -4363,7 +4391,7 @@
 24
 41
 04
-43
+4a
 20
 60
 00
@@ -4391,11 +4419,11 @@
 20
 40
 04
-59
+60
 20
 40
 04
-6d
+74
 20
 40
 46
@@ -4403,7 +4431,7 @@
 20
 40
 04
-50
+57
 20
 40
 46
@@ -4443,7 +4471,7 @@
 c2
 95
 04
-58
+5f
 c2
 95
 be
@@ -4487,7 +4515,7 @@
 20
 40
 04
-62
+69
 20
 20
 40
@@ -4515,7 +4543,7 @@
 c0
 7f
 84
-69
+70
 20
 20
 40
@@ -4527,7 +4555,7 @@
 20
 40
 04
-13
+1a
 68
 48
 c9
@@ -4551,7 +4579,7 @@
 24
 3a
 04
-76
+7d
 6f
 e0
 cc
@@ -4559,11 +4587,11 @@
 20
 40
 04
-11
+18
 20
 40
 04
-87
+8e
 68
 48
 cc
@@ -4591,7 +4619,7 @@
 20
 40
 04
-13
+1a
 70
 4c
 36
@@ -4607,11 +4635,11 @@
 20
 40
 04
-a0
+a7
 20
 40
 04
-8b
+92
 68
 48
 cc
@@ -4655,7 +4683,7 @@
 20
 40
 04
-96
+9d
 67
 e0
 cc
@@ -4667,7 +4695,7 @@
 20
 3a
 04
-92
+99
 6f
 e0
 cc
@@ -4731,11 +4759,11 @@
 c0
 03
 84
-ab
+b2
 c0
 00
 04
-ad
+b4
 20
 60
 00
@@ -4775,11 +4803,11 @@
 c0
 03
 84
-ab
+b2
 c0
 00
 04
-ad
+b4
 20
 60
 00
@@ -4823,7 +4851,7 @@
 c2
 9e
 84
-bb
+c2
 18
 42
 7e
@@ -4855,7 +4883,7 @@
 24
 3a
 04
-d8
+df
 6f
 e4
 4b
@@ -4863,7 +4891,7 @@
 c2
 8e
 04
-cc
+d3
 18
 42
 7e
@@ -4875,11 +4903,11 @@
 c0
 00
 04
-c8
+cf
 c0
 01
 04
-c6
+cd
 20
 60
 00
@@ -4891,7 +4919,7 @@
 20
 20
 04
-b8
+bf
 58
 00
 00
@@ -4899,7 +4927,7 @@
 20
 20
 04
-b8
+bf
 58
 00
 00
@@ -4907,7 +4935,7 @@
 20
 20
 04
-b8
+bf
 58
 00
 00
@@ -4915,7 +4943,7 @@
 20
 20
 04
-b8
+bf
 18
 42
 7e
@@ -4927,15 +4955,15 @@
 c0
 00
 04
-c8
+cf
 c0
 01
 04
-ca
+d1
 c0
 01
 84
-c6
+cd
 20
 60
 00
@@ -4951,15 +4979,15 @@
 c0
 00
 04
-ca
+d1
 c0
 00
 84
-c6
+cd
 c0
 01
 84
-c4
+cb
 20
 60
 00
@@ -4971,7 +4999,7 @@
 c2
 8e
 04
-d2
+d9
 18
 42
 7e
@@ -4983,11 +5011,11 @@
 c0
 00
 04
-c4
+cb
 c0
 00
 84
-c6
+cd
 20
 60
 00
@@ -5011,7 +5039,7 @@
 c0
 18
 04
-ea
+f1
 c0
 18
 c2
@@ -5023,7 +5051,7 @@
 c0
 0c
 04
-ef
+f6
 20
 40
 41
@@ -5035,7 +5063,7 @@
 20
 20
 04
-e2
+e9
 6f
 e0
 c9
@@ -5043,7 +5071,7 @@
 c0
 29
 04
-ed
+f4
 20
 20
 41
@@ -5071,7 +5099,7 @@
 20
 40
 04
-f6
+fd
 da
 60
 4c
@@ -5106,8 +5134,8 @@
 92
 c0
 00
-84
-fd
+85
+04
 20
 60
 00
@@ -5123,7 +5151,7 @@
 20
 40
 05
-10
+17
 6f
 e0
 c8
@@ -5131,11 +5159,11 @@
 c2
 83
 85
-05
+0c
 20
 40
 05
-18
+1f
 67
 e0
 c8
@@ -5147,7 +5175,7 @@
 20
 40
 05
-08
+0f
 67
 e0
 c8
@@ -5171,7 +5199,7 @@
 20
 40
 05
-18
+1f
 1f
 e2
 04
@@ -5195,11 +5223,11 @@
 c2
 83
 85
-15
+1c
 20
 40
 05
-18
+1f
 67
 e0
 c8
@@ -5211,7 +5239,7 @@
 20
 40
 05
-08
+0f
 67
 e0
 c8
@@ -5251,7 +5279,7 @@
 24
 21
 05
-21
+28
 20
 60
 00
@@ -5264,8 +5292,8 @@
 60
 00
 00
-8d
-12
+d5
+2f
 aa
 55
 40
@@ -6581,38 +6609,10 @@
 02
 40
 00
-bc
+d8
 19
-dc
-3a
-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
+b0
+79
 ff
 ff
 ff
@@ -8189,4 +8189,4 @@
 ff
 ff
 d0
-29
+02
Index: output/memmap.format
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr_branch/SlideSwitch_XZR17125/output/memmap.format	(revision 1015)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr_branch/SlideSwitch_XZR17125/output/memmap.format	(working copy)
@@ -2246,6 +2246,7 @@
 0x4c5b mem_mouse_logo_led_state_load_delay_timer
 0x4c5c mem_mouse_logo_led_state_load_delay_timer_init
 0x4c5d mem_mouse_le_reconn_led_blink_time
+0x4c5f mem_fire_key_flag
 0x48d0 mem_remote_car_hard_soft_switch
 0x48d1 mem_remote_car_queue_each_size
 0x48d2 mem_remote_car_queue_length
Index: output/program.lis
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr_branch/SlideSwitch_XZR17125/output/program.lis	(revision 1015)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr_branch/SlideSwitch_XZR17125/output/program.lis	(working copy)
@@ -15,15 +15,15 @@
 000c c06501a7 beq patch19_2 ,p_mouse_lpm_before_common 
 000d c0660069 beq patch19_4 ,p_mouse_adc_read_start 
 000e c0670380 beq patch19_6 ,p_mouse_motion 
-000f c06784af beq patch19_7 ,p_mouse_dpi_process 
+000f c06784b6 beq patch19_7 ,p_mouse_dpi_process 
 0010 c0680267 beq patch1a_0 ,p_mouse_seting_dpi 
-0011 c06883de beq patch1a_1 ,p_mouse_check_key_gpio 
-0012 c06984df beq patch1a_3 ,p_mouse_init_sunt 
+0011 c06883e5 beq patch1a_1 ,p_mouse_check_key_gpio 
+0012 c06984e6 beq patch1a_3 ,p_mouse_init_sunt 
 0013 c06a03c4 beq patch1a_4 ,p_mouse_sensor_poweron 
 0014 c06b01d2 beq patch1a_6 ,p_mouse_priority_bb_event 
 0015 c06c829e beq patch1b_1 ,p_mouse_bb_event_timer 
 0016 c06d0325 beq patch1b_2 ,p_mouse_start_discovery 
-0017 c06f0446 beq patch1b_6 ,p_mouse_idle 
+0017 c06f044d beq patch1b_6 ,p_mouse_idle 
 0018 c0740332 beq patch1d_0 ,p_hid_rx_process 
 0019 2020137c branch loop 
 
@@ -371,7 +371,7 @@
 0128 793ffe00 set0 g24_disconn_state ,pdata 
 0129 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
 012a 20404544 call mouse_no_data_timer_init 
-012b 202004e1 branch p_mouse_init_sensor_wakeup 
+012b 202004e8 branch p_mouse_init_sensor_wakeup 
 
 p_g24_transmit_no_interrupt:
 012c 20402631 call g24_txdata_prep 
@@ -417,7 +417,7 @@
 014a 20600000 rtn 
 
 p_mouse_wakeup_24g_from_long_sleep:
-014b 204004e1 call p_mouse_init_sensor_wakeup 
+014b 204004e8 call p_mouse_init_sensor_wakeup 
 014c 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
 014d c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
 
@@ -1179,10 +1179,10 @@
 0382 67e348d1 store 6 ,mem_mouse_x 
 0383 20400393 call p_mouse_check_sensor_data 
 0384 204003ca call p_mouse_dpi_config 
-0385 204004f8 call p_mouse_sensor_data_mul 
+0385 204004ff call p_mouse_sensor_data_mul 
 0386 20403f7e call mouse_zwheel 
 0387 20403f83 call mouse_t_zwheel 
-0388 204040dc call mouse_key 
+0388 204003de call p_mouse_key 
 0389 6fe0c8d0 fetch 1 ,mem_mouse_key 
 038a 1fe17e1f and_into 0x1f ,pdata 
 038b 67e0c8d0 store 1 ,mem_mouse_key 
@@ -1299,466 +1299,475 @@
 03dc 58001f06 setarg 0x1f06 
 03dd 20205b0c branch twspi_write 
 
+p_mouse_key:
+03de 2040041c call p_mouse_check_firekey_gpio 
+03df 6fe0cc5f fetch 1 ,mem_fire_key_flag 
+03e0 243a0428 nbranch p_fire_key_press ,blank 
+03e1 6fe0cc4f fetch 1 ,mem_fire_key_status 
+03e2 243a0427 nbranch p_fire_key_process ,blank 
+03e3 204003e5 call p_mouse_check_key_gpio 
+03e4 202040dd branch mouse_key + 1 
+
 p_mouse_check_key_gpio:
-03de 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-03df 245a4121 ncall mouse_check_key_gpio_once ,blank 
-03e0 da200000 arg 0 ,rega 
-03e1 204003e8 call p_mouse_check_lkey_gpio 
-03e2 204003ed call p_mouse_check_rkey_gpio 
-03e3 204003f2 call p_mouse_check_mkey_gpio 
-03e4 204003f7 call p_mouse_check_bkkey_gpio 
-03e5 20400404 call p_mouse_check_fwkey_gpio 
-03e6 20400415 call p_mouse_check_firekey_gpio 
-03e7 2020411e branch mouse_check_key_gpio_next 
+03e5 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+03e6 245a4121 ncall mouse_check_key_gpio_once ,blank 
+03e7 da200000 arg 0 ,rega 
+03e8 204003ef call p_mouse_check_lkey_gpio 
+03e9 204003f4 call p_mouse_check_rkey_gpio 
+03ea 204003f9 call p_mouse_check_mkey_gpio 
+03eb 204003fe call p_mouse_check_bkkey_gpio 
+03ec 2040040b call p_mouse_check_fwkey_gpio 
+03ed 2040041c call p_mouse_check_firekey_gpio 
+03ee 2020411e branch mouse_check_key_gpio_next 
 
 p_mouse_check_lkey_gpio:
-03e8 6fe0c918 fetch 1 ,mem_lbutton_gpio 
-03e9 20400411 call p_mouse_gpio_config_output_high 
-03ea 20404124 call mouse_check_lkey_gpio 
-03eb 6848c918 fetcht 1 ,mem_lbutton_gpio 
-03ec 20203f56 branch mouse_gpio_config_input_pu 
+03ef 6fe0c918 fetch 1 ,mem_lbutton_gpio 
+03f0 20400418 call p_mouse_gpio_config_output_high 
+03f1 20404124 call mouse_check_lkey_gpio 
+03f2 6848c918 fetcht 1 ,mem_lbutton_gpio 
+03f3 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_rkey_gpio:
-03ed 6fe0c919 fetch 1 ,mem_rbutton_gpio 
-03ee 20400411 call p_mouse_gpio_config_output_high 
-03ef 2040412a call mouse_check_rkey_gpio 
-03f0 6848c919 fetcht 1 ,mem_rbutton_gpio 
-03f1 20203f56 branch mouse_gpio_config_input_pu 
+03f4 6fe0c919 fetch 1 ,mem_rbutton_gpio 
+03f5 20400418 call p_mouse_gpio_config_output_high 
+03f6 2040412a call mouse_check_rkey_gpio 
+03f7 6848c919 fetcht 1 ,mem_rbutton_gpio 
+03f8 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_mkey_gpio:
-03f2 6fe0c91a fetch 1 ,mem_mbutton_gpio 
-03f3 20400411 call p_mouse_gpio_config_output_high 
-03f4 20404130 call mouse_check_mkey_gpio 
-03f5 6848c91a fetcht 1 ,mem_mbutton_gpio 
-03f6 20203f56 branch mouse_gpio_config_input_pu 
+03f9 6fe0c91a fetch 1 ,mem_mbutton_gpio 
+03fa 20400418 call p_mouse_gpio_config_output_high 
+03fb 20404130 call mouse_check_mkey_gpio 
+03fc 6848c91a fetcht 1 ,mem_mbutton_gpio 
+03fd 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_bkkey_gpio:
-03f7 6fe0c90d fetch 1 ,mem_bk_button_gpio 
-03f8 c17f8000 rtneq gpio_disable 
-03f9 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
-03fa 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
-03fb 1fe22600 copy pdata ,regc 
-03fc 6848c90d fetcht 1 ,mem_bk_button_gpio 
-03fd 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-03fe c07f8400 beq gpio_disable ,p_mouse_3io6key_bk_check 
-03ff 2020413e branch mouse_check_bkkey_gpio_next 
+03fe 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+03ff c17f8000 rtneq gpio_disable 
+0400 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
+0401 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
+0402 1fe22600 copy pdata ,regc 
+0403 6848c90d fetcht 1 ,mem_bk_button_gpio 
+0404 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+0405 c07f8407 beq gpio_disable ,p_mouse_3io6key_bk_check 
+0406 2020413e branch mouse_check_bkkey_gpio_next 
 
 p_mouse_3io6key_bk_check:
-0400 6fe0c90d fetch 1 ,mem_bk_button_gpio 
-0401 20400413 call p_mouse_gpio_config_output_low 
-0402 6848c90d fetcht 1 ,mem_bk_button_gpio 
-0403 2020414b branch mouse_3io6key_bk_check 
+0407 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+0408 2040041a call p_mouse_gpio_config_output_low 
+0409 6848c90d fetcht 1 ,mem_bk_button_gpio 
+040a 2020414b branch mouse_3io6key_bk_check 
 
 p_mouse_check_fwkey_gpio:
-0404 6fe0c90e fetch 1 ,mem_fw_button_gpio 
-0405 c17f8000 rtneq gpio_disable 
-0406 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
-0407 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
-0408 1fe22600 copy pdata ,regc 
-0409 6848c90e fetcht 1 ,mem_fw_button_gpio 
-040a 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-040b c07f840d beq gpio_disable ,p_mouse_3io6key_fw_check 
-040c 20204157 branch mouse_check_fwkey_gpio_next 
+040b 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+040c c17f8000 rtneq gpio_disable 
+040d 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
+040e 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
+040f 1fe22600 copy pdata ,regc 
+0410 6848c90e fetcht 1 ,mem_fw_button_gpio 
+0411 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+0412 c07f8414 beq gpio_disable ,p_mouse_3io6key_fw_check 
+0413 20204157 branch mouse_check_fwkey_gpio_next 
 
 p_mouse_3io6key_fw_check:
-040d 6fe0c90e fetch 1 ,mem_fw_button_gpio 
-040e 20400413 call p_mouse_gpio_config_output_low 
-040f 6848c90e fetcht 1 ,mem_fw_button_gpio 
-0410 20204164 branch mouse_3io6key_fw_check 
+0414 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+0415 2040041a call p_mouse_gpio_config_output_low 
+0416 6848c90e fetcht 1 ,mem_fw_button_gpio 
+0417 20204164 branch mouse_3io6key_fw_check 
 
 p_mouse_gpio_config_output_high:
-0411 d840003f arg gpcfg_output_high ,temp 
-0412 20206093 branch gpio_config_function_int 
+0418 d840003f arg gpcfg_output_high ,temp 
+0419 20206093 branch gpio_config_function_int 
 
 p_mouse_gpio_config_output_low:
-0413 d840003e arg gpcfg_output_low ,temp 
-0414 20206093 branch gpio_config_function_int 
+041a d840003e arg gpcfg_output_low ,temp 
+041b 20206093 branch gpio_config_function_int 
 
 p_mouse_check_firekey_gpio:
-0415 1a227e00 copy rega ,pdata 
-0416 c3800000 rtnbit1 0 
-0417 6848cc54 fetcht 1 ,mem_firebutton_gpio 
-0418 20403f56 call mouse_gpio_config_input_pu 
-0419 6848cc54 fetcht 1 ,mem_firebutton_gpio 
-041a 20406059 call gpio_get_bit 
-041b 24208421 nbranch p_fire_key_press ,true 
-041c 6fe0cc4f fetch 1 ,mem_fire_key_status 
-041d 243a041f nbranch p_fire_key_process ,blank 
-041e 20600000 rtn 
+041c da400000 arg 0 ,regb 
+041d 6fe0cc54 fetch 1 ,mem_firebutton_gpio 
+041e c17f8000 rtneq gpio_disable 
+041f 6848cc54 fetcht 1 ,mem_firebutton_gpio 
+0420 20403f56 call mouse_gpio_config_input_pu 
+0421 6848cc54 fetcht 1 ,mem_firebutton_gpio 
+0422 20406059 call gpio_get_bit 
+0423 7920a400 setflag true ,0 ,regb 
+0424 1a427e00 copy regb ,pdata 
+0425 67e0cc5f store 1 ,mem_fire_key_flag 
+0426 20600000 rtn 
 
 p_fire_key_process:
-041f c002043b beq 4 ,p_fire_key_process_end 
-0420 20200421 branch p_fire_key_press 
+0427 c0020442 beq 4 ,p_fire_key_process_end 
 
 p_fire_key_press:
-0421 2040043e call p_firekey_clkn_bt_timer_check 
-0422 6fe24c50 fetch 4 ,mem_fire_key_delay 
-0423 d8400080 arg 0x80 ,temp 
-0424 98408400 iadd temp ,temp 
-0425 1c427e00 copy clkn_bt ,pdata 
-0426 98467c00 isub temp ,null 
-0427 24610000 nrtn positive 
-0428 67e24c50 store 4 ,mem_fire_key_delay 
-0429 6fe0cc4f fetch 1 ,mem_fire_key_status 
-042a c000042f beq 0 ,p_fire_key_process_start 
-042b c0008432 beq 1 ,p_fire_key_process_release1 
-042c c0010435 beq 2 ,p_fire_key_process_start2 
-042d c0018438 beq 3 ,p_fire_key_process_release2 
-042e 20600000 rtn 
+0428 20400445 call p_firekey_clkn_bt_timer_check 
+0429 6fe24c50 fetch 4 ,mem_fire_key_delay 
+042a d84000a0 arg 0xa0 ,temp 
+042b 98408400 iadd temp ,temp 
+042c 1c427e00 copy clkn_bt ,pdata 
+042d 98467c00 isub temp ,null 
+042e 24610000 nrtn positive 
+042f 67e24c50 store 4 ,mem_fire_key_delay 
+0430 6fe0cc4f fetch 1 ,mem_fire_key_status 
+0431 c0000436 beq 0 ,p_fire_key_process_start 
+0432 c0008439 beq 1 ,p_fire_key_process_release1 
+0433 c001043c beq 2 ,p_fire_key_process_start2 
+0434 c001843f beq 3 ,p_fire_key_process_release2 
+0435 20600000 rtn 
 
 p_fire_key_process_start:
-042f 704c4f01 jam 1 ,mem_fire_key_status 
-0430 79202200 set1 0 ,rega 
-0431 20600000 rtn 
+0436 704c4f01 jam 1 ,mem_fire_key_status 
+0437 7048d001 jam 1 ,mem_mouse_key 
+0438 20207e54 branch enable_user 
 
 p_fire_key_process_release1:
-0432 704c4f02 jam 2 ,mem_fire_key_status 
-0433 793fa200 set0 0 ,rega 
-0434 20600000 rtn 
+0439 704c4f02 jam 2 ,mem_fire_key_status 
+043a 7048d000 jam 0 ,mem_mouse_key 
+043b 20207e54 branch enable_user 
 
 p_fire_key_process_start2:
-0435 704c4f03 jam 3 ,mem_fire_key_status 
-0436 79202200 set1 0 ,rega 
-0437 20600000 rtn 
+043c 704c4f03 jam 3 ,mem_fire_key_status 
+043d 7048d001 jam 1 ,mem_mouse_key 
+043e 20207e54 branch enable_user 
 
 p_fire_key_process_release2:
-0438 704c4f04 jam 4 ,mem_fire_key_status 
-0439 793fa200 set0 0 ,rega 
-043a 20600000 rtn 
+043f 704c4f00 jam 0 ,mem_fire_key_status 
+0440 7048d000 jam 0 ,mem_mouse_key 
+0441 20207e54 branch enable_user 
 
 p_fire_key_process_end:
-043b 704c4f00 jam 0 ,mem_fire_key_status 
-043c 793fa200 set0 0 ,rega 
-043d 20600000 rtn 
+0442 704c4f00 jam 0 ,mem_fire_key_status 
+0443 7048d000 jam 0 ,mem_mouse_key 
+0444 20600000 rtn 
 
 p_firekey_clkn_bt_timer_check:
-043e 684a4c50 fetcht 4 ,mem_fire_key_delay 
-043f 1c427e00 copy clkn_bt ,pdata 
-0440 98467c00 isub temp ,null 
-0441 24410443 ncall p_firekey_clkn_bt_timer_timeout ,positive 
-0442 20600000 rtn 
+0445 684a4c50 fetcht 4 ,mem_fire_key_delay 
+0446 1c427e00 copy clkn_bt ,pdata 
+0447 98467c00 isub temp ,null 
+0448 2441044a ncall p_firekey_clkn_bt_timer_timeout ,positive 
+0449 20600000 rtn 
 
 p_firekey_clkn_bt_timer_timeout:
-0443 58000000 setarg 0 
-0444 67e24c50 store 4 ,mem_fire_key_delay 
-0445 20600000 rtn 
+044a 58000000 setarg 0 
+044b 67e24c50 store 4 ,mem_fire_key_delay 
+044c 20600000 rtn 
 
 p_mouse_idle:
-0446 20404990 call mouse_low_voltage_led_no_enter_lpm 
-0447 20407936 call ui_check_paring_button 
-0448 20400459 call p_mouse_dpi_check 
-0449 2040046d call p_mouse_dpi_another_gpio_check 
-044a 20404655 call mouse_select_device_check 
-044b 20400450 call p_mouse_check_select_device_by_switch 
-044c 204046d6 call mouse_bt_button_check 
-044d 20403dbd call mouse_usb_isr 
-044e 20403f88 call mouse_wheel_check 
-044f 20203dd4 branch mouse_usb_mode 
+044d 20404990 call mouse_low_voltage_led_no_enter_lpm 
+044e 20407936 call ui_check_paring_button 
+044f 20400460 call p_mouse_dpi_check 
+0450 20400474 call p_mouse_dpi_another_gpio_check 
+0451 20404655 call mouse_select_device_check 
+0452 20400457 call p_mouse_check_select_device_by_switch 
+0453 204046d6 call mouse_bt_button_check 
+0454 20403dbd call mouse_usb_isr 
+0455 20403f88 call mouse_wheel_check 
+0456 20203dd4 branch mouse_usb_mode 
 
 p_mouse_check_select_device_by_switch:
-0450 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
-0451 247a0000 nrtn blank 
-0452 6fe24930 fetch 4 ,mem_mouse_on_time 
-0453 247a0000 nrtn blank 
-0454 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0455 c2950458 bbit1 mouse_enable_select_device_by_switch_gpio ,p_mouse_check_select_device_by_switch_gpio 
-0456 c295be9b bbit1 mouse_enable_select_device_by_switch_adc ,mouse_adc_read 
-0457 20600000 rtn 
+0457 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
+0458 247a0000 nrtn blank 
+0459 6fe24930 fetch 4 ,mem_mouse_on_time 
+045a 247a0000 nrtn blank 
+045b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+045c c295045f bbit1 mouse_enable_select_device_by_switch_gpio ,p_mouse_check_select_device_by_switch_gpio 
+045d c295be9b bbit1 mouse_enable_select_device_by_switch_adc ,mouse_adc_read 
+045e 20600000 rtn 
 
 p_mouse_check_select_device_by_switch_gpio:
-0458 202046a6 branch mouse_check_select_device_by_switch_gpio + 2 
+045f 202046a6 branch mouse_check_select_device_by_switch_gpio + 2 
 
 p_mouse_dpi_check:
-0459 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-045a c2974036 bbit1 mouse_enable_dpi_key_connect_adc ,mouse_dpi_check_connect_adc 
-045b 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-045c c17f8000 rtneq gpio_disable 
-045d da200000 arg 0 ,rega 
-045e 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
-045f 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-0460 20400462 call p_mouse_dpi_key_check 
-0461 2020402f branch mouse_dpi_check_next 
+0460 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0461 c2974036 bbit1 mouse_enable_dpi_key_connect_adc ,mouse_dpi_check_connect_adc 
+0462 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+0463 c17f8000 rtneq gpio_disable 
+0464 da200000 arg 0 ,rega 
+0465 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
+0466 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+0467 20400469 call p_mouse_dpi_key_check 
+0468 2020402f branch mouse_dpi_check_next 
 
 p_mouse_dpi_key_check:
-0462 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0463 c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
-0464 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
-0465 1fe22600 copy pdata ,regc 
-0466 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-0467 c07f8469 beq gpio_disable ,p_mouse_3io6key_dpi_check 
-0468 2020403f branch mouse_dpi_key_check_next 
+0469 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+046a c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+046b 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
+046c 1fe22600 copy pdata ,regc 
+046d 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+046e c07f8470 beq gpio_disable ,p_mouse_3io6key_dpi_check 
+046f 2020403f branch mouse_dpi_key_check_next 
 
 p_mouse_3io6key_dpi_check:
-0469 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-046a 20400413 call p_mouse_gpio_config_output_low 
-046b 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-046c 20204195 branch mouse_3io6key_check 
+0470 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+0471 2040041a call p_mouse_gpio_config_output_low 
+0472 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+0473 20204195 branch mouse_3io6key_check 
 
 p_mouse_dpi_another_gpio_check:
-046d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-046e c41e8000 rtnbit0 mouse_enable_double_dpi_key 
-046f 6fe0cc55 fetch 1 ,mem_mouse_another_dpi_connect_vin_flag 
-0470 243a0476 nbranch p_mouse_dpi_another_gpio_connect_vin_check ,blank 
+0474 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0475 c41e8000 rtnbit0 mouse_enable_double_dpi_key 
+0476 6fe0cc55 fetch 1 ,mem_mouse_another_dpi_connect_vin_flag 
+0477 243a047d nbranch p_mouse_dpi_another_gpio_connect_vin_check ,blank 
 
 p_mouse_dpi_another_gpio_connect_gnd_check:
-0471 6fe0cc32 fetch 1 ,mem_dpi_another_button_gpio 
-0472 20400411 call p_mouse_gpio_config_output_high 
-0473 20400487 call p_mouse_dpi_another_check 
-0474 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
-0475 20203f56 branch mouse_gpio_config_input_pu 
+0478 6fe0cc32 fetch 1 ,mem_dpi_another_button_gpio 
+0479 20400418 call p_mouse_gpio_config_output_high 
+047a 2040048e call p_mouse_dpi_another_check 
+047b 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
+047c 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_dpi_another_gpio_connect_vin_check:
-0476 6fe0cc32 fetch 1 ,mem_dpi_another_button_gpio 
-0477 793ffe07 set0 gpio_active_bit ,pdata 
-0478 67e0cc32 store 1 ,mem_dpi_another_button_gpio 
-0479 6fe0cc32 fetch 1 ,mem_dpi_another_button_gpio 
-047a 20400413 call p_mouse_gpio_config_output_low 
-047b 704c3600 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
-047c 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
-047d 6fe0cc33 fetch 1 ,mem_dpi_another_press_status 
-047e 204004a0 call p_mouse_check_key_connect_vin_new 
-047f 2040048b call p_mouse_dpi_another_state_check 
-0480 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
-0481 20203f56 branch mouse_gpio_config_input_pu 
+047d 6fe0cc32 fetch 1 ,mem_dpi_another_button_gpio 
+047e 793ffe07 set0 gpio_active_bit ,pdata 
+047f 67e0cc32 store 1 ,mem_dpi_another_button_gpio 
+0480 6fe0cc32 fetch 1 ,mem_dpi_another_button_gpio 
+0481 2040041a call p_mouse_gpio_config_output_low 
+0482 704c3600 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+0483 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
+0484 6fe0cc33 fetch 1 ,mem_dpi_another_press_status 
+0485 204004a7 call p_mouse_check_key_connect_vin_new 
+0486 20400492 call p_mouse_dpi_another_state_check 
+0487 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
+0488 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_dpi_another_down_new:
-0482 20403f56 call mouse_gpio_config_input_pu 
-0483 6fe0cc34 fetch 1 ,mem_dpi_another_button_state 
-0484 c1008000 rtneq dpi_button_state_down 
-0485 704c3401 jam dpi_button_state_down ,mem_dpi_another_button_state 
-0486 20204069 branch mouse_dpi_process 
+0489 20403f56 call mouse_gpio_config_input_pu 
+048a 6fe0cc34 fetch 1 ,mem_dpi_another_button_state 
+048b c1008000 rtneq dpi_button_state_down 
+048c 704c3401 jam dpi_button_state_down ,mem_dpi_another_button_state 
+048d 20204069 branch mouse_dpi_process 
 
 p_mouse_dpi_another_check:
-0487 704c3600 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
-0488 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
-0489 6fe0cc33 fetch 1 ,mem_dpi_another_press_status 
-048a 20400496 call p_mouse_check_key_connect_gnd_new 
+048e 704c3600 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+048f 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
+0490 6fe0cc33 fetch 1 ,mem_dpi_another_press_status 
+0491 2040049d call p_mouse_check_key_connect_gnd_new 
 
 p_mouse_dpi_another_state_check:
-048b 67e0cc33 store 1 ,mem_dpi_another_press_status 
-048c 6fe0cc35 fetch 1 ,mem_dpi_another_button_down_enable 
-048d 203a0492 branch p_mouse_dpi_another_up ,blank 
+0492 67e0cc33 store 1 ,mem_dpi_another_press_status 
+0493 6fe0cc35 fetch 1 ,mem_dpi_another_button_down_enable 
+0494 203a0499 branch p_mouse_dpi_another_up ,blank 
 
 p_mouse_dpi_another_down:
-048e 6fe0cc34 fetch 1 ,mem_dpi_another_button_state 
-048f c1008000 rtneq dpi_button_state_down 
-0490 704c3401 jam dpi_button_state_down ,mem_dpi_another_button_state 
-0491 20204069 branch mouse_dpi_process 
+0495 6fe0cc34 fetch 1 ,mem_dpi_another_button_state 
+0496 c1008000 rtneq dpi_button_state_down 
+0497 704c3401 jam dpi_button_state_down ,mem_dpi_another_button_state 
+0498 20204069 branch mouse_dpi_process 
 
 p_mouse_dpi_another_up:
-0492 6fe0cc34 fetch 1 ,mem_dpi_another_button_state 
-0493 c1000000 rtneq dpi_button_state_up 
-0494 704c3400 jam dpi_button_state_up ,mem_dpi_another_button_state 
-0495 20600000 rtn 
+0499 6fe0cc34 fetch 1 ,mem_dpi_another_button_state 
+049a c1000000 rtneq dpi_button_state_up 
+049b 704c3400 jam dpi_button_state_up ,mem_dpi_another_button_state 
+049c 20600000 rtn 
 
 p_mouse_check_key_connect_gnd_new:
-0496 1fe3fe00 lshift pdata ,pdata 
-0497 1fe22400 copy pdata ,regb 
-0498 20406059 call gpio_get_bit 
-0499 7920a400 setflag true ,0 ,regb 
-049a 1a417e07 and regb ,0x07 ,pdata 
-049b 6848cc36 fetcht 1 ,mem_mouse_key_temp_patch 
-049c 18420e00 copy temp ,queue 
-049d c00384ab beq 0x07 ,p_mouse_key_press 
-049e c00004ad beq 0x00 ,p_mouse_key_release 
-049f 20600000 rtn 
+049d 1fe3fe00 lshift pdata ,pdata 
+049e 1fe22400 copy pdata ,regb 
+049f 20406059 call gpio_get_bit 
+04a0 7920a400 setflag true ,0 ,regb 
+04a1 1a417e07 and regb ,0x07 ,pdata 
+04a2 6848cc36 fetcht 1 ,mem_mouse_key_temp_patch 
+04a3 18420e00 copy temp ,queue 
+04a4 c00384b2 beq 0x07 ,p_mouse_key_press 
+04a5 c00004b4 beq 0x00 ,p_mouse_key_release 
+04a6 20600000 rtn 
 
 p_mouse_check_key_connect_vin_new:
-04a0 1fe3fe00 lshift pdata ,pdata 
-04a1 1fe22400 copy pdata ,regb 
-04a2 20403f54 call mouse_gpio_config_input_pd 
-04a3 20406059 call gpio_get_bit 
-04a4 7920a400 setflag true ,0 ,regb 
-04a5 1a417e07 and regb ,0x07 ,pdata 
-04a6 6848cc36 fetcht 1 ,mem_mouse_key_temp_patch 
-04a7 18420e00 copy temp ,queue 
-04a8 c00384ab beq 0x07 ,p_mouse_key_press 
-04a9 c00004ad beq 0x00 ,p_mouse_key_release 
-04aa 20600000 rtn 
+04a7 1fe3fe00 lshift pdata ,pdata 
+04a8 1fe22400 copy pdata ,regb 
+04a9 20403f54 call mouse_gpio_config_input_pd 
+04aa 20406059 call gpio_get_bit 
+04ab 7920a400 setflag true ,0 ,regb 
+04ac 1a417e07 and regb ,0x07 ,pdata 
+04ad 6848cc36 fetcht 1 ,mem_mouse_key_temp_patch 
+04ae 18420e00 copy temp ,queue 
+04af c00384b2 beq 0x07 ,p_mouse_key_press 
+04b0 c00004b4 beq 0x00 ,p_mouse_key_release 
+04b1 20600000 rtn 
 
 p_mouse_key_press:
-04ab 704c3501 jam 1 ,mem_dpi_another_button_down_enable 
-04ac 20600000 rtn 
+04b2 704c3501 jam 1 ,mem_dpi_another_button_down_enable 
+04b3 20600000 rtn 
 
 p_mouse_key_release:
-04ad 704c3500 jam 0 ,mem_dpi_another_button_down_enable 
-04ae 20600000 rtn 
+04b4 704c3500 jam 0 ,mem_dpi_another_button_down_enable 
+04b5 20600000 rtn 
 
 p_mouse_dpi_process:
-04af 20404072 call mouse_dpi_ghost_check 
-04b0 20740000 rtn user 
-04b1 6fe0c992 fetch 1 ,mem_mouse_dpi 
-04b2 1fe20400 copy pdata ,temp 
-04b3 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-04b4 c29e84bb bbit1 mouse_enable_double_dpi_key ,p_mouse_double_dpi_check 
-04b5 18427e00 copy temp ,pdata 
-04b6 1fe0fe01 increase 1 ,pdata 
-04b7 1fe17e03 and pdata ,0x03 ,pdata 
+04b6 20404072 call mouse_dpi_ghost_check 
+04b7 20740000 rtn user 
+04b8 6fe0c992 fetch 1 ,mem_mouse_dpi 
+04b9 1fe20400 copy pdata ,temp 
+04ba 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+04bb c29e84c2 bbit1 mouse_enable_double_dpi_key ,p_mouse_double_dpi_check 
+04bc 18427e00 copy temp ,pdata 
+04bd 1fe0fe01 increase 1 ,pdata 
+04be 1fe17e03 and pdata ,0x03 ,pdata 
 
 p_mouse_dpi_store:
-04b8 67e0c992 store 1 ,mem_mouse_dpi 
-04b9 20404095 call mouse_seting_dpi 
-04ba 202045ee branch mouse_store_device_info_delay 
+04bf 67e0c992 store 1 ,mem_mouse_dpi 
+04c0 20404095 call mouse_seting_dpi 
+04c1 202045ee branch mouse_store_device_info_delay 
 
 p_mouse_double_dpi_check:
-04bb 6fe0cc35 fetch 1 ,mem_dpi_another_button_down_enable 
-04bc 243a04d8 nbranch p_mouse_another_dpi_button_down ,blank 
+04c2 6fe0cc35 fetch 1 ,mem_dpi_another_button_down_enable 
+04c3 243a04df nbranch p_mouse_another_dpi_button_down ,blank 
 
 p_mouse_dpi_increase:
-04bd 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-04be c28e04cc bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_increase_level_4 
-04bf 18427e00 copy temp ,pdata 
-04c0 c1008000 rtneq mouse_dpi_level2 
+04c4 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+04c5 c28e04d3 bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_increase_level_4 
+04c6 18427e00 copy temp ,pdata 
+04c7 c1008000 rtneq mouse_dpi_level2 
 
 p_mouse_dpi_increase_level:
-04c1 c00004c8 beq mouse_dpi_level1 ,p_mouse_dpi_level_3 
-04c2 c00104c6 beq mouse_dpi_level3 ,p_mouse_dpi_level_2 
-04c3 20600000 rtn 
+04c8 c00004cf beq mouse_dpi_level1 ,p_mouse_dpi_level_3 
+04c9 c00104cd beq mouse_dpi_level3 ,p_mouse_dpi_level_2 
+04ca 20600000 rtn 
 
 p_mouse_dpi_level_1:
-04c4 58000002 setarg 2 
-04c5 202004b8 branch p_mouse_dpi_store 
+04cb 58000002 setarg 2 
+04cc 202004bf branch p_mouse_dpi_store 
 
 p_mouse_dpi_level_2:
-04c6 58000000 setarg 0 
-04c7 202004b8 branch p_mouse_dpi_store 
+04cd 58000000 setarg 0 
+04ce 202004bf branch p_mouse_dpi_store 
 
 p_mouse_dpi_level_3:
-04c8 58000001 setarg 1 
-04c9 202004b8 branch p_mouse_dpi_store 
+04cf 58000001 setarg 1 
+04d0 202004bf branch p_mouse_dpi_store 
 
 p_mouse_dpi_level_4:
-04ca 58000003 setarg 3 
-04cb 202004b8 branch p_mouse_dpi_store 
+04d1 58000003 setarg 3 
+04d2 202004bf branch p_mouse_dpi_store 
 
 p_mouse_dpi_increase_level_4:
-04cc 18427e00 copy temp ,pdata 
-04cd c1008000 rtneq mouse_dpi_level2 
-04ce c00004c8 beq mouse_dpi_level1 ,p_mouse_dpi_level_3 
-04cf c00104ca beq mouse_dpi_level3 ,p_mouse_dpi_level_4 
-04d0 c00184c6 beq mouse_dpi_level4 ,p_mouse_dpi_level_2 
-04d1 20600000 rtn 
+04d3 18427e00 copy temp ,pdata 
+04d4 c1008000 rtneq mouse_dpi_level2 
+04d5 c00004cf beq mouse_dpi_level1 ,p_mouse_dpi_level_3 
+04d6 c00104d1 beq mouse_dpi_level3 ,p_mouse_dpi_level_4 
+04d7 c00184cd beq mouse_dpi_level4 ,p_mouse_dpi_level_2 
+04d8 20600000 rtn 
 
 p_mouse_dpi_decrease_level_4:
-04d2 18427e00 copy temp ,pdata 
-04d3 c1010000 rtneq mouse_dpi_level3 
-04d4 c00004ca beq mouse_dpi_level1 ,p_mouse_dpi_level_4 
-04d5 c00084c6 beq mouse_dpi_level2 ,p_mouse_dpi_level_2 
-04d6 c00184c4 beq mouse_dpi_level4 ,p_mouse_dpi_level_1 
-04d7 20600000 rtn 
+04d9 18427e00 copy temp ,pdata 
+04da c1010000 rtneq mouse_dpi_level3 
+04db c00004d1 beq mouse_dpi_level1 ,p_mouse_dpi_level_4 
+04dc c00084cd beq mouse_dpi_level2 ,p_mouse_dpi_level_2 
+04dd c00184cb beq mouse_dpi_level4 ,p_mouse_dpi_level_1 
+04de 20600000 rtn 
 
 p_mouse_another_dpi_button_down:
 
 p_mouse_dpi_decrease:
-04d8 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-04d9 c28e04d2 bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_decrease_level_4 
-04da 18427e00 copy temp ,pdata 
-04db c1010000 rtneq mouse_dpi_level3 
+04df 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+04e0 c28e04d9 bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_decrease_level_4 
+04e1 18427e00 copy temp ,pdata 
+04e2 c1010000 rtneq mouse_dpi_level3 
 
 p_mouse_dpi_decrease_level:
-04dc c00004c4 beq mouse_dpi_level1 ,p_mouse_dpi_level_1 
-04dd c00084c6 beq mouse_dpi_level2 ,p_mouse_dpi_level_2 
-04de 20600000 rtn 
+04e3 c00004cb beq mouse_dpi_level1 ,p_mouse_dpi_level_1 
+04e4 c00084cd beq mouse_dpi_level2 ,p_mouse_dpi_level_2 
+04e5 20600000 rtn 
 
 p_mouse_init_sunt:
-04df 20403f65 call mouse_sensor_spi_init 
-04e0 20758000 rtn wake 
+04e6 20403f65 call mouse_sensor_spi_init 
+04e7 20758000 rtn wake 
 
 p_mouse_init_sensor_wakeup:
-04e1 20404236 call mouse_sensor_poweron 
+04e8 20404236 call mouse_sensor_poweron 
 
 p_mouse_init_sensor:
-04e2 204041b5 call mouse_read_sensor_id 
-04e3 c01804ea beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
-04e4 c018c217 beq p3065_id1 ,mouse_init_p3065 
-04e5 c02c4220 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
-04e6 c00c04ef beq om18_id ,p_mouse_om18_init_param 
-04e7 204041b2 call mouse_twspi_reset 
-04e8 20001af4 nop 6900 
-04e9 202004e2 branch p_mouse_init_sensor 
+04e9 204041b5 call mouse_read_sensor_id 
+04ea c01804f1 beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
+04eb c018c217 beq p3065_id1 ,mouse_init_p3065 
+04ec c02c4220 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
+04ed c00c04f6 beq om18_id ,p_mouse_om18_init_param 
+04ee 204041b2 call mouse_twspi_reset 
+04ef 20001af4 nop 6900 
+04f0 202004e9 branch p_mouse_init_sensor 
 
 p_mouse_init_p32xx_id2_judge:
-04ea 6fe0c9c2 fetch 1 ,mem_sensor_id2 
-04eb c02904ed beq om16_id2 ,p_mouse_om16_init_param 
-04ec 202041bd branch mouse_init_p32xx_id2_judge + 1 
+04f1 6fe0c9c2 fetch 1 ,mem_sensor_id2 
+04f2 c02904f4 beq om16_id2 ,p_mouse_om16_init_param 
+04f3 202041bd branch mouse_init_p32xx_id2_judge + 1 
 
 p_mouse_om16_init_param:
-04ed 7049270c jam om16 ,mem_config_sensor_type 
-04ee 202046ee branch mouse_dpi_4level_enable 
+04f4 7049270c jam om16 ,mem_config_sensor_type 
+04f5 202046ee branch mouse_dpi_4level_enable 
 
 p_mouse_om18_init_param:
-04ef 7049270d jam om18 ,mem_config_sensor_type 
-04f0 58008006 setarg 0x8006 
-04f1 20405b0c call twspi_write 
-04f2 204004f6 call p_delay_15ms 
-04f3 da604c3d arg mem_sensor_om18_init ,regc 
-04f4 2040422b call mouse_sensor_wr_seq 
-04f5 20200269 branch p_mouse_seting_sensor_type 
+04f6 7049270d jam om18 ,mem_config_sensor_type 
+04f7 58008006 setarg 0x8006 
+04f8 20405b0c call twspi_write 
+04f9 204004fd call p_delay_15ms 
+04fa da604c3d arg mem_sensor_om18_init ,regc 
+04fb 2040422b call mouse_sensor_wr_seq 
+04fc 20200269 branch p_mouse_seting_sensor_type 
 
 p_delay_15ms:
-04f6 df20000f arg 15 ,loopcnt 
-04f7 20207d13 branch delay_ms_wait 
+04fd df20000f arg 15 ,loopcnt 
+04fe 20207d13 branch delay_ms_wait 
 
 p_mouse_sensor_data_mul:
-04f8 6fe0c927 fetch 1 ,mem_config_sensor_type 
-04f9 c1860000 rtnne om16 
-04fa 6fe0c992 fetch 1 ,mem_mouse_dpi 
-04fb c00084fd beq mouse_dpi_level2 ,p_mouse_sensor_data_set 
-04fc 20600000 rtn 
+04ff 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0500 c1860000 rtnne om16 
+0501 6fe0c992 fetch 1 ,mem_mouse_dpi 
+0502 c0008504 beq mouse_dpi_level2 ,p_mouse_sensor_data_set 
+0503 20600000 rtn 
 
 p_mouse_sensor_data_set:
-04fd 58000204 setarg 0x0204 
-04fe 67e14c37 store 2 ,mem_mouse_xy_date_times 
-04ff 20400510 call p_mouse_sensor_data_set_x 
+0504 58000204 setarg 0x0204 
+0505 67e14c37 store 2 ,mem_mouse_xy_date_times 
+0506 20400517 call p_mouse_sensor_data_set_x 
 
 p_mouse_sensor_data_set_y:
-0500 6fe0c8d3 fetch 1 ,mem_mouse_y 
-0501 c2838505 bbit1 7 ,p_mouse_sensor_data_set_y_next 
-0502 20400518 call p_mouse_sensor_data_set_next 
-0503 67e0c8d3 store 1 ,mem_mouse_y 
-0504 20600000 rtn 
+0507 6fe0c8d3 fetch 1 ,mem_mouse_y 
+0508 c283850c bbit1 7 ,p_mouse_sensor_data_set_y_next 
+0509 2040051f call p_mouse_sensor_data_set_next 
+050a 67e0c8d3 store 1 ,mem_mouse_y 
+050b 20600000 rtn 
 
 p_mouse_sensor_data_set_y_next:
-0505 20400508 call p_mouse_sensor_data_set_reverse 
-0506 67e0c8d3 store 1 ,mem_mouse_y 
-0507 20600000 rtn 
+050c 2040050f call p_mouse_sensor_data_set_reverse 
+050d 67e0c8d3 store 1 ,mem_mouse_y 
+050e 20600000 rtn 
 
 p_mouse_sensor_data_set_reverse:
-0508 1fe20400 copy pdata ,temp 
-0509 dfe00100 arg 0x100 ,pdata 
-050a 98467e00 isub temp ,pdata 
-050b 20400518 call p_mouse_sensor_data_set_next 
-050c 1fe20400 copy pdata ,temp 
-050d dfe00100 arg 0x100 ,pdata 
-050e 98467e00 isub temp ,pdata 
-050f 20600000 rtn 
+050f 1fe20400 copy pdata ,temp 
+0510 dfe00100 arg 0x100 ,pdata 
+0511 98467e00 isub temp ,pdata 
+0512 2040051f call p_mouse_sensor_data_set_next 
+0513 1fe20400 copy pdata ,temp 
+0514 dfe00100 arg 0x100 ,pdata 
+0515 98467e00 isub temp ,pdata 
+0516 20600000 rtn 
 
 p_mouse_sensor_data_set_x:
-0510 6fe0c8d1 fetch 1 ,mem_mouse_x 
-0511 c2838515 bbit1 7 ,p_mouse_sensor_data_set_x_next 
-0512 20400518 call p_mouse_sensor_data_set_next 
-0513 67e0c8d1 store 1 ,mem_mouse_x 
-0514 20600000 rtn 
+0517 6fe0c8d1 fetch 1 ,mem_mouse_x 
+0518 c283851c bbit1 7 ,p_mouse_sensor_data_set_x_next 
+0519 2040051f call p_mouse_sensor_data_set_next 
+051a 67e0c8d1 store 1 ,mem_mouse_x 
+051b 20600000 rtn 
 
 p_mouse_sensor_data_set_x_next:
-0515 20400508 call p_mouse_sensor_data_set_reverse 
-0516 67e0c8d1 store 1 ,mem_mouse_x 
-0517 20600000 rtn 
+051c 2040050f call p_mouse_sensor_data_set_reverse 
+051d 67e0c8d1 store 1 ,mem_mouse_x 
+051e 20600000 rtn 
 
 p_mouse_sensor_data_set_next:
-0518 6848cc37 fetcht 1 ,mem_mouse_xy_date_times 
-0519 984ffe00 imul32 temp ,pdata 
-051a 6848cc38 fetcht 1 ,mem_mouse_xy_date_times + 1 
-051b 9846fc00 idiv temp 
-051c 20407def call wait_div_end 
-051d 1807fe00 quotient pdata 
-051e 1fe67c7f sub pdata ,0x7f ,null 
-051f 24210521 nbranch p_mouse_sensor_data_set_next2 ,positive 
-0520 20600000 rtn 
+051f 6848cc37 fetcht 1 ,mem_mouse_xy_date_times 
+0520 984ffe00 imul32 temp ,pdata 
+0521 6848cc38 fetcht 1 ,mem_mouse_xy_date_times + 1 
+0522 9846fc00 idiv temp 
+0523 20407def call wait_div_end 
+0524 1807fe00 quotient pdata 
+0525 1fe67c7f sub pdata ,0x7f ,null 
+0526 24210528 nbranch p_mouse_sensor_data_set_next2 ,positive 
+0527 20600000 rtn 
 
 p_mouse_sensor_data_set_next2:
-0521 5800007f setarg 0x7f 
-0522 20600000 rtn 
+0528 5800007f setarg 0x7f 
+0529 20600000 rtn 
               org 0x800
 
 start:
Index: program/patch.prog
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr_branch/SlideSwitch_XZR17125/program/patch.prog	(revision 1015)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr_branch/SlideSwitch_XZR17125/program/patch.prog	(working copy)
@@ -1,5 +1,6 @@
 
 //define G24_OTA
+define FIRE_KEY
 
 	bbit1 8,pf_patch_ext
 	beq patch00_0,p_soft_reset
@@ -1254,7 +1255,7 @@
 	call p_mouse_sensor_data_mul
 	call mouse_zwheel
 	call mouse_t_zwheel
-	call mouse_key
+	call p_mouse_key
 	fetch 1,mem_mouse_key
 	and_into 0x1f,pdata
 	store 1,mem_mouse_key
@@ -1366,6 +1367,17 @@
 
 
 //////////////////////////////modify key start///////////////////////////////////////////////
+p_mouse_key:
+ifdef FIRE_KEY
+	call p_mouse_check_firekey_gpio
+	fetch 1,mem_fire_key_flag
+	nbranch p_fire_key_press,blank
+	fetch 1,mem_fire_key_status
+	nbranch p_fire_key_process,blank
+endif
+	call p_mouse_check_key_gpio
+	branch mouse_key+1
+
 p_mouse_check_key_gpio:	//when mem_matrix_public_gpio=0xff
 	fetch 1,mem_sensor_shutdown_flag
 	ncall mouse_check_key_gpio_once,blank
@@ -1375,7 +1387,9 @@
 	call p_mouse_check_mkey_gpio
 	call p_mouse_check_bkkey_gpio
 	call p_mouse_check_fwkey_gpio
+ifdef FIRE_KEY	
 	call p_mouse_check_firekey_gpio
+endif	
 	branch mouse_check_key_gpio_next
 
 p_mouse_check_lkey_gpio:
@@ -1439,27 +1453,28 @@
 	arg gpcfg_output_low,temp
 	branch gpio_config_function_int	
 
-/////////////////////////////////////////////firekey end//////////////////////////////////////////	
+/////////////////////////////////////////////firekey start//////////////////////////////////////////	
+
+ifdef FIRE_KEY	
 p_mouse_check_firekey_gpio:
-	copy rega,pdata
-	rtnbit1 0
+	arg 0,regb
+	fetch 1,mem_firebutton_gpio
+	rtneq GPIO_DISABLE
 	fetcht 1,mem_firebutton_gpio
 	call mouse_gpio_config_input_pu
 	fetcht 1,mem_firebutton_gpio
 	call gpio_get_bit
-	nbranch p_fire_key_press,true
-	fetch 1,mem_fire_key_status
-	nbranch p_fire_key_process,blank
+	setflag true,0,regb
+	copy regb,pdata
+	store 1,mem_fire_key_flag
 	rtn
 
 p_fire_key_process: 
 	beq 4,p_fire_key_process_end
-	branch p_fire_key_press
-
 p_fire_key_press:
 	call p_firekey_clkn_bt_timer_check 
 	fetch 4,mem_fire_key_delay
-	arg 0x80,temp      //0x80 :40 + 8ms delay
+	arg 0xa0,temp      
 	iadd temp,temp
 	copy clkn_bt,pdata
 	isub temp,null
@@ -1473,27 +1488,27 @@
 	rtn
 p_fire_key_process_start:
 	jam 1,mem_fire_key_status
-	set1 0,rega
-	rtn
+	jam 1,mem_mouse_key
+	branch enable_user
 
 p_fire_key_process_release1:
 	jam 2,mem_fire_key_status
-	set0 0,rega
-	rtn
+	jam 0,mem_mouse_key
+	branch enable_user
 
 p_fire_key_process_start2:
 	jam 3,mem_fire_key_status
-	set1 0,rega
-	rtn
+	jam 1,mem_mouse_key
+	branch enable_user
 
 p_fire_key_process_release2:
-	jam 4,mem_fire_key_status
-	set0 0,rega
-	rtn
+	jam 0,mem_fire_key_status
+	jam 0,mem_mouse_key
+	branch enable_user
 
 p_fire_key_process_end:
 	jam 0,mem_fire_key_status
-	set0 0,rega
+	jam 0,mem_mouse_key
 	rtn
 
 p_firekey_clkn_bt_timer_check:
@@ -1507,6 +1522,7 @@
 	store 4,mem_fire_key_delay
 	rtn
 
+endif
 /////////////////////////////////////////////firekey end//////////////////////////////////////////	
 
 p_mouse_idle:
