Index: do.bat
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/do.bat	(revision 524)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/do.bat	(working copy)
@@ -80,7 +80,6 @@
 del eeprom.dat
 del compare2.dat
 cd ..\output
-copy eeprom.dat ..\output\flash.dat 
 
 )
 
Index: format/app_mouse.format
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/format/app_mouse.format	(revision 524)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/format/app_mouse.format	(working copy)
@@ -329,28 +329,60 @@
 1 mem_mouse_logo_led_on_check_count
 2 mem_mouse_logo_led_on_timer
 
-1 mem_flippen_pageup_gpio
-1 mem_flippen_pagedown_gpio
-1 mem_flippen_tab_gpio
-1 mem_flippen_vol_up_gpio
-1 mem_flippen_vol_down_gpio
+1 mem_flippen_key0_gpio
+1 mem_flippen_key1_gpio
+1 mem_flippen_key2_gpio
+1 mem_flippen_key3_gpio
+1 mem_flippen_key4_gpio
 
 0 mem_customer_key_press_patch
-9 mem_customer_key_pageup
-9 mem_customer_key_pagedown
-9 mem_customer_key_tab
-9 mem_customer_key_vol_up
-9 mem_customer_key_vol_down
+9 mem_customer_key0_short_press
+9 mem_customer_key1_short_press
+9 mem_customer_key2_short_press
+9 mem_customer_key1_short_press_mode1
+9 mem_customer_key2_short_press_mode1
+9 mem_customer_key1_short_press_mode2
+9 mem_customer_key2_short_press_mode2
+9 mem_customer_key2_long_press
+9 mem_customer_key0_long_press_0
+9 mem_customer_key0_two_clink_press
+9 mem_customer_key0_long_press_1
+9 mem_customer_key1_long_press
+9 mem_customer_key1_long_press_1
+9 mem_customer_key1_long_press_1_1
+9 mem_customer_key1_long_press_1_2
+9 mem_customer_key1_long_press_1_3
+9 mem_customer_key3_media
+9 mem_customer_key4_media
 9 mem_customer_media_key_release
 
+1 mem_mouse_customer_key0_press_status
 1 mem_mouse_customer_key1_press_status
 1 mem_mouse_customer_key2_press_status
 1 mem_mouse_customer_key3_press_status
 1 mem_mouse_customer_key4_press_status
-1 mem_mouse_customer_key5_press_status
 
 1 mem_mouse_media_flag
 1 mem_24g_attempt_success_flag
+
+1 mem_long_key_press_timeout_init
+1 mem_long_key_press_timeout
+
+1 mem_long_key_press_mode_check_timeout_init
+1 mem_long_key_press_mode_check_timeout
+1 mem_customer_key_press_status
+1 mem_customer_key_press_status_flag
+1 mem_customer_key_mode_status
+1 mem_key0_long_press_delay
+1 mem_key1_long_press_flag
+1 mem_key1_long_press_1_count
+
+1 mem_key0_short_press_count
+1 mem_key0_short_press_timer
+1 mem_key0_short_press_flag
+
+1 mem_mouse_led_state
+1 mem_mouse_led_gpio
 )
 
 
Index: output/eeprom.dat
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/output/eeprom.dat	(revision 524)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/output/eeprom.dat	(working copy)
@@ -2,72 +2,68 @@
 02
 aa
 55
-06
-07
+36
+08
 c2
 84
 00
-11
+10
 c0
 00
 00
-13
+12
 c0
 45
 00
-17
+16
 c0
 45
 80
-51
+5c
 c0
 4f
 80
-4f
+5a
 c0
 57
 00
-1d
+1c
 c0
 61
 80
-2c
+37
 c0
 64
 80
-5c
+67
 c0
 65
 00
-6b
+76
 c0
 67
 00
-8b
-c0
-68
-00
-99
+8f
 c0
 68
 81
-19
+6f
 c0
 69
 80
-ca
+de
 c0
 6a
 00
-cb
+df
 c0
 6b
 00
-7c
+80
 c0
 6c
 80
-aa
+96
 20
 20
 13
@@ -75,7 +71,7 @@
 c0
 75
 00
-cc
+e0
 20
 20
 13
@@ -99,11 +95,11 @@
 6f
 e0
 cc
-28
+9d
 24
 3a
 00
-1a
+19
 20
 20
 12
@@ -126,52 +122,100 @@
 f3
 20
 40
-3b
-f0
+00
+22
+20
+75
+80
+00
 20
 40
-41
-a7
+3d
+8a
+20
+40
+00
+34
+20
+20
+3b
+c9
 20
 75
 80
 00
 20
 40
+26
+07
+20
+40
+22
+ff
+20
 40
-8e
+00
+27
+20
+20
+3b
+f4
+68
+48
+c4
+c1
 20
 40
-3d
-8a
+60
+69
 20
 40
-47
-28
+79
+b4
+68
+48
+cb
+e7
 20
 40
-00
-29
+3f
+56
+68
+48
+cb
+e8
 20
 40
-42
-3c
-6f
-e0
-c9
-2a
-c3
-83
-80
-00
+3f
+56
+68
+48
+cb
+e9
 20
+40
+3f
+56
+68
+48
+cb
+ea
 20
-3b
+40
+3f
+56
+68
+48
 cb
+eb
+20
+20
+3f
+56
 58
 00
-00
-f8
+01
+0c
 67
 e1
 48
@@ -195,7 +239,7 @@
 c0
 00
 00
-33
+3e
 20
 40
 3d
@@ -231,7 +275,7 @@
 20
 40
 00
-4a
+55
 1f
 e1
 7e
@@ -255,7 +299,7 @@
 20
 40
 00
-41
+4c
 20
 34
 48
@@ -295,7 +339,7 @@
 c2
 00
 00
-45
+50
 20
 60
 00
@@ -391,7 +435,7 @@
 c0
 7f
 80
-65
+70
 68
 48
 c9
@@ -432,70 +476,42 @@
 20
 3e
 36
-20
-40
-3f
-88
-6f
-e0
-c9
-1f
-d8
-40
-00
-3f
-20
-40
-60
-93
-20
-40
-5b
-04
-68
-48
-c9
-18
-20
-40
-60
-36
 68
 48
-c9
-19
+cb
+e7
 20
 40
 60
 36
 68
 48
-c9
-1a
+cb
+e8
 20
 40
 60
 36
 68
 48
-c9
-0d
+cb
+e9
 20
 40
 60
 36
 68
 48
-c9
-0e
+cb
+ea
 20
 40
 60
 36
 68
 48
-c9
-0f
+cb
+eb
 20
 20
 60
@@ -507,22 +523,22 @@
 c0
 1e
 00
-81
+85
 c0
 1c
 80
-87
+8b
 c0
 1d
 00
-89
+8d
 20
 20
 43
 36
 70
 4c
-28
+9d
 01
 6f
 e2
@@ -546,7 +562,7 @@
 4e
 70
 4c
-28
+9d
 01
 20
 20
@@ -554,7 +570,7 @@
 57
 70
 4c
-28
+9d
 00
 20
 20
@@ -564,30 +580,6 @@
 54
 7c
 00
-58
-00
-00
-00
-67
-e3
-48
-d1
-20
-40
-42
-40
-20
-40
-40
-8e
-20
-40
-3f
-7e
-20
-40
-3f
-83
 20
 40
 40
@@ -605,258 +597,346 @@
 c8
 d0
 24
-34
-47
-28
-20
-40
-47
-1a
+74
+00
+00
 20
 20
 45
 44
 20
 40
+3e
+9b
+20
 40
-8f
+49
+56
 20
 40
-00
-9c
+23
+2b
 20
+40
+25
+56
 20
 40
-98
-6f
-e0
-c9
-23
-c1
-7f
-80
-00
-6f
-e1
-4a
-c2
-24
-7a
-00
-00
-6f
-e1
-48
-83
-24
-7a
-00
-00
-6f
-e1
-48
-87
-24
-7a
-00
-00
-6f
-e0
-cb
-a7
-24
-7a
-00
-00
-6f
-e0
-cb
-c1
-20
-3a
-00
-b5
-67
-e0
-cb
-a8
-20
-60
-00
-00
-20
-40
-3e
-9b
+47
+cd
 20
 40
-49
-56
+48
+be
 20
 40
-23
-2b
+00
+b3
 20
 40
-25
-56
+00
+c6
 20
 40
-47
-cd
+01
+b9
 20
 40
-48
-be
+00
+d4
 20
 40
 00
-b2
+a2
 20
 20
 44
 bd
-da
-60
-4b
-a8
-da
-40
+6f
+e0
+cc
+a2
+24
+3a
 00
-b5
+a5
 20
 20
-31
-8a
+00
+ac
 6f
 e0
-c9
-27
-c0
+cc
+ab
+70
+4c
+ab
 01
-c8
-f2
-c0
-05
-c8
-f2
-6f
-e0
-c9
-23
-67
-e0
-c9
-2f
-6f
-e1
-4b
-c2
-67
-e1
-49
-30
-67
-e1
-49
-32
-da
-20
+c1
 00
+80
 00
 68
 48
-c9
-92
-18
-40
-84
-02
-18
-46
-7c
-03
+cc
+ac
 20
-41
-00
-c4
-24
-41
-00
-c8
+40
+60
+69
+68
+48
+cc
+ac
 20
 20
-48
-ff
+60
+65
 6f
-e4
-4b
+e0
+cc
+ab
+70
+4c
 ab
-c4
-0e
 00
+c1
 00
-18
-40
-84
-01
-20
-60
 00
 00
-18
+68
+48
+cc
+ac
+20
 40
-85
-fd
+60
+69
+68
+48
+cc
+ac
+20
 20
 60
+69
+6f
+e0
+cc
+a2
+1f
+e1
+7e
+07
+20
+3a
 00
+c0
+c1
+02
+80
 00
-20
-60
+c1
+03
 00
 00
-20
-60
+c1
+01
+80
 00
+c1
+03
+80
 00
-20
-40
-26
-31
-24
-34
-26
-a1
-20
+da
+60
+4c
+9f
+da
 40
 00
-e4
+bd
 20
 20
-26
-25
+31
+8a
 6f
 e0
-c8
-a7
+cb
+8b
+79
+20
+7e
+07
+20
 20
-5a
 00
-d6
+c4
 6f
 e0
-c8
-bd
-c1
-00
-80
-00
-20
-40
-26
-9f
-20
+cc
+9e
+67
+e0
+cc
+9f
+6f
+e0
+cb
+8b
+79
+3f
+fe
+07
+67
+e0
+cb
+8b
+20
+60
+00
+00
+6f
+e0
+cc
+a2
+c0
+83
+00
+d1
+da
+60
+4c
+a1
+da
+40
+00
+cb
+20
+20
+31
+8a
+6f
+e0
+cc
+a4
+1f
+e0
+fe
+01
+c0
+81
+80
+cf
+58
+00
+00
+00
+67
+e0
+cc
+a4
+20
+60
+00
+00
+6f
+e0
+cc
+a0
+67
+e0
+cc
+a1
+20
+60
+00
+00
+6f
+e0
+cc
+a8
+20
+7a
+00
+00
+da
+60
+4c
+a9
+da
+40
+00
+d9
+20
+20
+31
+8a
+6f
+e0
+cc
+a8
+70
+4c
+a8
+00
+c1
+80
+80
+00
+70
+4c
+aa
+01
+20
+60
+00
+00
+20
+60
+00
+00
+20
+60
+00
+00
+20
+40
+26
+31
+24
+34
+26
+a1
+20
+40
+00
+f8
+20
+20
+26
+25
+6f
+e0
+c8
+a7
+20
+5a
+00
+ea
+6f
+e0
+c8
+bd
+c1
+00
+80
+00
+20
+40
+26
+9f
+20
 20
 26
 b5
@@ -915,7 +995,7 @@
 20
 20
 00
-ce
+e2
 70
 48
 a6
@@ -942,12 +1022,12 @@
 51
 24
 2c
-00
-ef
+01
+03
 24
 37
-80
-ef
+81
+03
 20
 40
 26
@@ -995,7 +1075,7 @@
 20
 20
 00
-e5
+f9
 c6
 93
 00
@@ -1014,8 +1094,8 @@
 8b
 24
 3a
-00
-fe
+01
+12
 20
 60
 00
@@ -1035,15 +1115,35 @@
 24
 3a
 01
-06
+1f
 6f
 e0
 cc
-27
+9c
 24
 3a
 01
-0d
+26
+68
+48
+cc
+a3
+28
+4f
+fe
+00
+20
+20
+81
+35
+28
+4f
+fe
+01
+20
+20
+81
+39
 da
 40
 4b
@@ -1059,23 +1159,23 @@
 c2
 80
 01
-0f
+28
 c2
 80
 81
-11
+3e
 c2
 81
 01
-13
+5e
 c2
 81
 81
-15
+6b
 c2
 82
 01
-17
+6d
 20
 60
 00
@@ -1083,23 +1183,35 @@
 da
 40
 4c
-19
+8e
 20
 60
 00
 00
-da
-40
-4b
-ec
-20
-60
+6f
+e0
+cb
+8b
+c2
+83
+81
+33
+6f
+e0
+cc
+aa
+70
+4c
+aa
 00
+c0
+01
+01
+31
+c0
 00
-da
-40
-4b
-f5
+81
+2f
 20
 60
 00
@@ -1107,7 +1219,7 @@
 da
 40
 4b
-fe
+ec
 20
 60
 00
@@ -1115,7 +1227,7 @@
 da
 40
 4c
-07
+3d
 20
 60
 00
@@ -1123,603 +1235,819 @@
 da
 40
 4c
-10
+34
 20
 60
 00
 00
-6f
-e0
-cb
-e1
-24
-5a
-41
-21
+79
+3f
+84
+00
+60
+48
+cc
+a3
 da
+40
+4c
+46
 20
+60
 00
 00
-20
-40
+6f
+e0
+cc
+a7
+c0
+00
 01
-23
-20
-40
+1d
+79
+3f
+84
 01
-33
+60
+48
+cc
+a3
 20
-40
-01
-41
 20
-40
 01
-4f
+1d
+6f
+e0
+cb
+8b
+c2
+83
+81
+49
+6f
+e0
+cc
+a4
+c0
+00
+81
+45
+c0
+01
+01
+47
+da
+40
+4b
+f5
 20
+60
+00
+00
+da
 40
-01
-5d
-1a
-22
-7e
+4c
+07
+20
+60
+00
 00
+da
+40
+4c
+19
 20
 60
 00
 00
 6f
 e0
-cb
-8b
-79
-3f
-fe
+cc
+a6
+c0
 00
-67
-e0
-cb
-8b
-68
-48
-cb
-e7
-20
+81
+4e
+da
 40
-60
-50
+4c
+4f
 70
-4b
-96
+4c
+a6
+01
+20
+60
+00
 00
-68
-48
-cb
-e7
 6f
 e0
 cc
-22
-20
-40
-41
-87
+a7
+1f
+e0
+fe
+01
 67
 e0
 cc
-22
-1a
-22
-7e
+a7
+c0
 00
-c2
-80
+81
+58
+c0
 01
-6b
+01
+5a
+c0
+01
+81
+5c
+da
+40
+4c
+58
+70
+4c
+a7
+00
+70
+4c
+a6
+00
 20
+60
+00
+00
+da
 40
-01
-8a
-6f
-e0
-cb
-8c
-67
-e0
-cb
-8d
+4c
+61
 20
 60
 00
 00
-6f
-e0
-cb
-8b
-79
-3f
-fe
-01
-67
-e0
-cb
-8b
-68
-48
-cb
-e8
+da
+40
+4c
+6a
 20
+60
+00
+00
+da
 40
+4c
+73
+20
 60
-50
-70
-4b
-96
-01
-68
-48
-cb
-e8
+00
+00
 6f
 e0
-cc
-23
-20
-40
-41
-87
-67
+cb
+8b
+c2
+83
+81
+65
+6f
 e0
 cc
-23
-1a
-22
-7e
+a4
+c0
 00
-c2
-80
 81
-70
+67
+c0
+01
+01
+69
+da
+40
+4b
+fe
 20
+60
+00
+00
+da
 40
-01
-95
+4c
+2b
 20
+60
+00
+00
+da
+40
+4c
+10
 20
-01
-30
-6f
-e0
-cb
-8b
-79
-3f
-fe
-02
-67
-e0
-cb
-8b
-68
-48
-cb
-e9
-20
-40
 60
-50
-70
-4b
-96
-02
-68
-48
-cb
-e9
-6f
-e0
-cc
-24
-20
+00
+00
+da
 40
-41
-87
-67
-e0
-cc
-24
-1a
+4c
 22
-7e
-00
-c2
-81
-01
-75
 20
+60
+00
+00
+da
 40
-01
-a0
+4c
+7c
 20
+60
+00
+00
+da
+40
+4c
+7c
 20
-01
-30
+60
+00
+00
 6f
 e0
 cb
 8b
-79
-3f
-fe
-03
-67
-e0
-cb
-8b
-68
-48
-cb
-ea
+1f
+e2
+22
+00
 20
 40
-60
-50
-70
-4b
-96
-03
-68
-48
-cb
-ea
-6f
-e0
-cc
-25
+01
+a9
 20
 40
-41
-87
-67
-e0
-cc
-25
-1a
-22
-7e
-00
-c2
-81
-81
-7a
+01
+c1
 20
 40
 01
-ab
+cc
 20
+40
+01
+d5
 20
+40
 01
-30
-6f
+de
+1a
+22
+7e
+00
+67
 e0
 cb
 8b
+20
+60
+00
+00
+1f
+e3
+fe
+00
+1f
+e2
+24
+00
+20
+40
+60
+59
 79
+20
+a4
+00
+1a
+41
+7e
 3f
-fe
-04
-67
-e0
-cb
-8b
 68
 48
 cb
-eb
+96
+18
+42
+0e
+00
+c0
+1c
+01
+90
+c0
+00
+01
+9e
+c0
+1f
+81
+84
 20
-40
 60
-50
-70
-4b
-96
-04
+00
+00
 68
 48
-cb
-eb
-6f
-e0
 cc
-26
+a2
+f9
 20
-40
-41
-87
-67
-e0
-cc
-26
-1a
-22
-7e
+04
 00
-c2
-82
-01
-82
-20
-40
-01
-b6
+60
+48
+cc
+a2
+2a
+2f
+fe
+07
 20
 20
-01
-30
-6f
-e0
-cb
-8c
-79
+81
+8a
 20
-7e
+60
 00
-67
-e0
-cb
-8c
+00
+68
+48
+cc
+a3
+a8
+4f
+ff
+ff
 20
-40
-01
+20
+c1
 91
+f9
 20
+04
+00
+60
+48
+cc
+a3
 20
-01
-30
-6f
-e0
-cb
-8c
-79
 20
+41
+93
+2a
+2f
+fe
+07
+20
+60
+80
+00
+18
+e2
 7e
+00
+24
+3a
+41
+93
+6f
+e0
+cc
+a8
+1f
+e0
+fe
 01
 67
 e0
-cb
-8c
-20
-40
+cc
+a8
+c0
 01
-9c
+01
+9a
+70
+4c
+a9
+03
 20
 20
 01
-30
-6f
-e0
-cb
-8c
-79
-20
-7e
+9e
+70
+4c
+aa
 02
-67
-e0
-cb
-8c
 20
-40
-01
-a7
 20
+41
+93
+79
 20
-01
-30
+22
+00
+20
+60
+00
+00
 6f
 e0
-cb
-8b
-79
+cc
+aa
+c0
+00
+81
+9c
+68
+48
+cc
+a2
+f9
+3f
+84
+00
+60
+48
+cc
+a2
+68
+48
+cc
+a3
+f9
+3f
+84
+00
+60
+48
+cc
+a3
+2a
+2f
+fe
+07
 20
-7e
-03
-67
-e0
+60
+80
+00
+20
+20
+41
+91
+70
+4b
+96
+00
+68
+48
 cb
-8b
+e7
 6f
 e0
-cb
-8c
-79
+cc
+97
 20
-7e
-03
+40
+01
+79
 67
 e0
-cb
-8c
+cc
+97
+1a
+22
+7e
+00
+c2
+80
+01
+b2
 20
 40
 01
-b2
+fd
 20
 20
 01
-30
-6f
-e0
-cb
-8b
-79
-20
-7e
-04
-67
-e0
-cb
-8b
-6f
-e0
-cb
-8c
-79
+c9
+2a
+2f
+fe
+07
 20
-7e
-04
-67
-e0
-cb
-8c
 20
-40
-01
-bd
+81
+b5
 20
 20
 01
-30
+f9
 6f
 e0
-cb
-8c
-79
-3f
-fe
+cc
+a5
+24
+7a
 00
-67
-e0
-cb
-8c
+00
+70
+4c
+a5
+08
+20
+20
+01
+f9
 6f
 e0
 cb
-8d
-2f
-ef
-fe
-00
-24
-60
+8b
+c4
+03
 80
 00
-70
-4c
-27
+c4
+00
+00
 00
 6f
 e0
-cb
-8b
-79
+cc
+a5
 20
-7e
+7a
 00
+00
+1f
+e0
+ff
+ff
 67
 e0
-cb
-8b
+cc
+a5
 20
 60
 00
 00
+70
+4b
+96
+01
+68
+48
+cb
+e8
 6f
 e0
-cb
-8c
-79
-3f
-fe
+cc
+98
+20
+40
 01
+79
 67
 e0
-cb
-8c
-6f
-e0
-cb
-8d
-2f
-ef
-fe
-01
-24
-60
-80
-00
-70
-4c
-27
+cc
+98
+1a
+22
+7e
 00
+c2
+80
+81
+f9
+20
+40
+01
+fd
 6f
 e0
 cb
-8b
-79
-20
-7e
-01
+8c
 67
 e0
 cb
-8b
+8d
 20
 60
 00
 00
+70
+4b
+96
+02
+68
+48
+cb
+e9
 6f
 e0
-cb
-8c
+cc
+99
+20
+40
+01
 79
-3f
-fe
-02
 67
 e0
+cc
+99
+1a
+22
+7e
+00
+c2
+81
+01
+f9
+20
+40
+01
+fd
+20
+20
+01
+c9
+70
+4b
+96
+03
+68
+48
 cb
-8c
+ea
 6f
 e0
+cc
+9a
+20
+40
+01
+e7
+67
+e0
+cc
+9a
+1a
+22
+7e
+00
+c2
+81
+81
+f9
+20
+40
+02
+05
+20
+20
+01
+c9
+70
+4b
+96
+04
+68
+48
 cb
-8d
-2f
-ef
-fe
+eb
+6f
+e0
+cc
+9b
+20
+40
+01
+e7
+67
+e0
+cc
+9b
+1a
+22
+7e
+00
+c2
+82
+01
+f9
+20
+40
 02
+05
+20
+20
+01
+c9
+1f
+e3
+fe
+00
+1f
+e2
 24
+00
+20
+40
 60
-80
+59
+79
+20
+a4
 00
-70
-4c
-27
+1a
+41
+7e
+07
+68
+48
+cb
+96
+18
+42
+0e
+00
+c0
+03
+81
+f1
+c0
+00
+01
+f5
+20
+60
+00
+00
+68
+48
+cc
+a2
+f9
+20
+04
+00
+60
+48
+cc
+a2
+20
+20
+41
+93
+68
+48
+cc
+a2
+f9
+3f
+84
 00
+60
+48
+cc
+a2
+20
+20
+41
+91
 6f
 e0
 cb
-8b
-79
+8c
+f9
 20
 7e
-02
+00
 67
 e0
 cb
-8b
+8c
 20
-60
-00
-00
+20
+01
+c9
 6f
 e0
 cb
 8c
-79
+f9
 3f
 fe
-03
+00
 67
 e0
 cb
@@ -1728,42 +2056,30 @@
 e0
 cb
 8d
-2f
+af
 ef
-fe
-03
+ff
+ff
 24
 60
 80
 00
 70
 4c
-27
-01
-6f
-e0
-cb
-8b
-79
+9c
+00
 20
-7e
-03
-67
-e0
-cb
-8b
 20
-60
-00
-00
+41
+93
 6f
 e0
 cb
 8c
-79
+f9
 3f
 fe
-04
+00
 67
 e0
 cb
@@ -1772,36 +2088,24 @@
 e0
 cb
 8d
-2f
+af
 ef
-fe
-04
+ff
+ff
 24
 60
 80
 00
 70
 4c
-27
+9c
 01
-6f
-e0
-cb
-8b
-79
 20
-7e
-04
-67
-e0
-cb
-8b
 20
+41
+93
+e7
 60
-00
-00
-37
-b9
 aa
 55
 40
@@ -1834,7 +2138,7 @@
 00
 08
 46
-5b
+5a
 02
 00
 00
@@ -1954,7 +2258,7 @@
 03
 aa
 55
-0c
+06
 00
 fe
 48
@@ -1964,6 +2268,47 @@
 02
 64
 64
+aa
+55
+01
+00
+9e
+4c
+14
+aa
+55
+01
+00
+a0
+4c
+14
+aa
+55
+01
+00
+a5
+4c
+08
+aa
+55
+01
+00
+a9
+4c
+0a
+aa
+55
+01
+00
+ac
+4c
+05
+aa
+55
+06
+00
+04
+49
 94
 85
 90
@@ -1983,7 +2328,7 @@
 ff
 ff
 ff
-f0
+ff
 ff
 ff
 ff
@@ -2054,13 +2399,22 @@
 00
 aa
 55
-36
+ab
 00
 ec
 4b
 00
 00
 00
+2b
+00
+00
+00
+00
+00
+00
+00
+00
 4b
 00
 00
@@ -2079,12 +2433,120 @@
 00
 00
 00
+52
+00
+00
+00
+00
+00
+00
+00
+00
+50
+00
+00
+00
+00
+00
+00
+00
+00
+51
+00
+00
+00
+00
+00
+00
+00
+00
+4f
+00
+00
+00
+00
+00
+00
+00
+00
+05
+00
+00
+00
+00
+00
+00
+04
+00
 2b
 00
 00
 00
 00
 00
+00
+00
+00
+28
+00
+00
+00
+00
+00
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+29
+00
+00
+00
+00
+00
+00
+02
+00
+3e
+00
+00
+00
+00
+00
+00
+0c
+00
+13
+00
+00
+00
+00
+00
+00
+00
+00
+3e
+00
+00
+00
+00
+00
+00
+03
+00
+16
+00
+00
+00
+00
+00
 03
 e9
 00
@@ -2118,7 +2580,7 @@
 00
 99
 40
-00
+01
 aa
 55
 02
@@ -2587,723 +3049,261 @@
 21
 00
 30
-00
-aa
-55
-02
-00
-d1
-43
-2d
-00
-aa
-55
-01
-00
-f0
-4a
-96
-aa
-55
-01
-00
-86
-44
-ff
-aa
-55
-01
-00
-90
-47
-ff
-aa
-55
-01
-00
-8f
-47
-1e
-aa
-55
-0c
-00
-d0
-49
-03
-04
-01
-02
-20
-2a
-3f
-15
-06
-0c
-10
-04
-aa
-55
-a2
-00
-df
-49
-09
-5a
-26
-34
-19
-04
-09
-00
-ff
-ff
-09
-5a
-0d
-f0
-1d
-e3
-7d
-d2
-ff
-ff
-09
-5a
-0d
-10
-1d
-ed
-7d
-80
-ff
-ff
-1b
-35
-28
-b4
-29
-46
-2a
-96
-2b
-8c
-2c
-6e
-2d
-64
-38
-5f
-39
-0f
-3a
-32
-3b
-47
-42
-10
-ff
-ff
-54
-2e
-55
-f2
-61
-f4
-63
-70
-75
-52
-76
-41
-77
-ed
-78
-23
-79
-46
-7a
-e5
-7c
-48
-7e
-77
-7f
-01
-0b
-00
-7f
-00
-09
-00
-ff
-ff
-09
-5a
-ff
-27
-ab
-40
-be
-d1
-a0
-41
-a1
-12
-a5
-84
-a7
-ff
-b5
-d0
-b6
-00
-ff
-00
-09
-00
-ff
-ff
-09
-5a
-0d
-10
-0e
-c5
-5b
-9a
-10
-38
-11
-42
-28
-28
-41
-23
-49
-39
-4a
-b0
-4b
-a0
-4c
-90
-4d
-70
-09
-00
-ff
-ff
-09
-5a
-06
-02
-09
-69
-0d
-48
-0e
-9f
-0f
-ba
-09
-00
-ff
-ff
-aa
-55
-08
-00
-a3
-4a
-09
-5a
-0b
-f3
-09
-00
-ff
-ff
-aa
-55
-02
-00
-8d
-44
-2d
-49
-aa
-55
-01
-00
-8c
-44
-01
-aa
-55
-01
-00
-65
-48
-01
-aa
-55
-01
-00
-64
-48
-01
-aa
-55
-01
-00
-36
-48
-01
-aa
-55
-01
-00
-a8
-48
-06
-aa
-55
-02
-00
-38
-48
-c0
-12
-aa
-55
-03
-00
-54
-48
-19
-19
-1c
-aa
-55
-10
-00
-40
-48
-00
-13
-2c
-42
-06
-15
-36
-48
-0f
-1a
-3a
-4c
-11
-23
-31
-4d
-aa
-55
-01
-00
-5b
-48
-00
-aa
-55
-05
-00
-77
-48
-20
-15
-10
-05
-4e
-aa
-55
-05
-00
-8c
-48
-01
-0f
-0f
-0f
-0f
-aa
-55
-06
-00
-ad
-48
-0c
-f8
-00
-00
-77
-01
-aa
-55
-03
-00
-5c
-48
-00
-48
-60
-aa
-55
-01
-00
-7d
-48
-07
-aa
-55
-02
-00
-99
-48
-b5
-4a
-aa
-55
-01
-00
-ca
-48
-32
-aa
-55
-02
-00
-c2
-48
-14
-00
-aa
-55
-02
-00
-c0
-48
-50
-00
-aa
-55
-03
-00
-b8
-48
-00
-a6
-0e
-aa
-55
-03
-00
-b8
-49
-00
-50
-00
-aa
-55
-02
-00
-79
-44
-80
-1f
-aa
-55
-01
-00
-83
-44
-80
-aa
-55
-01
-00
-e8
-41
-01
-bd
-6d
-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
-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
-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
+00
+aa
+55
+02
+00
+d1
+43
+2d
+00
+aa
+55
+01
+00
+f0
+4a
+96
+aa
+55
+01
+00
+86
+44
 ff
+aa
+55
+01
+00
+90
+47
 ff
+aa
+55
+01
+00
+8f
+47
+1e
+aa
+55
+02
+00
+8d
+44
+2d
+49
+aa
+55
+01
+00
+8c
+44
+01
+aa
+55
+01
+00
+65
+48
+01
+aa
+55
+01
+00
+64
+48
+01
+aa
+55
+01
+00
+36
+48
+01
+aa
+55
+01
+00
+a8
+48
+06
+aa
+55
+02
+00
+38
+48
+c0
+12
+aa
+55
+03
+00
+54
+48
+19
+19
+1c
+aa
+55
+10
+00
+40
+48
+00
+13
+2c
+42
+06
+15
+36
+48
+0f
+1a
+3a
+4c
+11
+23
+31
+4d
+aa
+55
+01
+00
+5b
+48
+00
+aa
+55
+05
+00
+77
+48
+20
+15
+10
+05
+4e
+aa
+55
+05
+00
+8c
+48
+01
+0f
+0f
+0f
+0f
+aa
+55
+06
+00
+ad
+48
+0c
+f8
+00
+00
+77
+01
+aa
+55
+03
+00
+5c
+48
+00
+48
+60
+aa
+55
+01
+00
+7d
+48
+07
+aa
+55
+02
+00
+99
+48
+b5
+4a
+aa
+55
+01
+00
+ca
+48
+32
+aa
+55
+02
+00
+c2
+48
+14
+00
+aa
+55
+02
+00
+c0
+48
+50
+00
+aa
+55
+03
+00
+b8
+48
+00
+a6
+0e
+aa
+55
+03
+00
+b8
+49
+00
+50
+00
+aa
+55
+02
+00
+79
+44
+80
+1f
+aa
+55
+01
+00
+83
+44
+80
+aa
+55
+01
+00
+e8
+41
+01
+55
+aa
+aa
+55
+d3
+2e
+2a
+2d
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-5a
-cf
+9b
+49
Index: output/memmap.format
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/output/memmap.format	(revision 524)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/output/memmap.format	(working copy)
@@ -2207,25 +2207,53 @@
 0x4be3 mem_mouse_logo_led_gpio
 0x4be4 mem_mouse_logo_led_on_check_count
 0x4be5 mem_mouse_logo_led_on_timer
-0x4be7 mem_flippen_pageup_gpio
-0x4be8 mem_flippen_pagedown_gpio
-0x4be9 mem_flippen_tab_gpio
-0x4bea mem_flippen_vol_up_gpio
-0x4beb mem_flippen_vol_down_gpio
+0x4be7 mem_flippen_key0_gpio
+0x4be8 mem_flippen_key1_gpio
+0x4be9 mem_flippen_key2_gpio
+0x4bea mem_flippen_key3_gpio
+0x4beb mem_flippen_key4_gpio
 0x4bec mem_customer_key_press_patch
-0x4bec mem_customer_key_pageup
-0x4bf5 mem_customer_key_pagedown
-0x4bfe mem_customer_key_tab
-0x4c07 mem_customer_key_vol_up
-0x4c10 mem_customer_key_vol_down
-0x4c19 mem_customer_media_key_release
-0x4c22 mem_mouse_customer_key1_press_status
-0x4c23 mem_mouse_customer_key2_press_status
-0x4c24 mem_mouse_customer_key3_press_status
-0x4c25 mem_mouse_customer_key4_press_status
-0x4c26 mem_mouse_customer_key5_press_status
-0x4c27 mem_mouse_media_flag
-0x4c28 mem_24g_attempt_success_flag
+0x4bec mem_customer_key0_short_press
+0x4bf5 mem_customer_key1_short_press
+0x4bfe mem_customer_key2_short_press
+0x4c07 mem_customer_key1_short_press_mode1
+0x4c10 mem_customer_key2_short_press_mode1
+0x4c19 mem_customer_key1_short_press_mode2
+0x4c22 mem_customer_key2_short_press_mode2
+0x4c2b mem_customer_key2_long_press
+0x4c34 mem_customer_key0_long_press_0
+0x4c3d mem_customer_key0_two_clink_press
+0x4c46 mem_customer_key0_long_press_1
+0x4c4f mem_customer_key1_long_press
+0x4c58 mem_customer_key1_long_press_1
+0x4c61 mem_customer_key1_long_press_1_1
+0x4c6a mem_customer_key1_long_press_1_2
+0x4c73 mem_customer_key1_long_press_1_3
+0x4c7c mem_customer_key3_media
+0x4c85 mem_customer_key4_media
+0x4c8e mem_customer_media_key_release
+0x4c97 mem_mouse_customer_key0_press_status
+0x4c98 mem_mouse_customer_key1_press_status
+0x4c99 mem_mouse_customer_key2_press_status
+0x4c9a mem_mouse_customer_key3_press_status
+0x4c9b mem_mouse_customer_key4_press_status
+0x4c9c mem_mouse_media_flag
+0x4c9d mem_24g_attempt_success_flag
+0x4c9e mem_long_key_press_timeout_init
+0x4c9f mem_long_key_press_timeout
+0x4ca0 mem_long_key_press_mode_check_timeout_init
+0x4ca1 mem_long_key_press_mode_check_timeout
+0x4ca2 mem_customer_key_press_status
+0x4ca3 mem_customer_key_press_status_flag
+0x4ca4 mem_customer_key_mode_status
+0x4ca5 mem_key0_long_press_delay
+0x4ca6 mem_key1_long_press_flag
+0x4ca7 mem_key1_long_press_1_count
+0x4ca8 mem_key0_short_press_count
+0x4ca9 mem_key0_short_press_timer
+0x4caa mem_key0_short_press_flag
+0x4cab mem_mouse_led_state
+0x4cac mem_mouse_led_gpio
 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/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/output/program.lis	(revision 524)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/output/program.lis	(working copy)
@@ -1,598 +1,726 @@
               include "bt_format "
               org 0x0000
-0000 c2840011 bbit1 8 ,pf_patch_ext 
-0001 c0000013 beq patch00_0 ,p_soft_reset 
-0002 c0450017 beq patch11_2 ,p_txon_next 
-0003 c0458051 beq patch11_3 ,p_initialize_radio_cont 
-0004 c04f804f beq patch13_7 ,p_init_param 
-0005 c057001d beq patch15_6 ,p_app_init 
-0006 c061802c beq patch18_3 ,p_mouse_start_work 
-0007 c064805c beq patch19_1 ,p_mouse_setgpio_hibernate 
-0008 c065006b beq patch19_2 ,p_mouse_lpm_before_common 
-0009 c067008b beq patch19_6 ,p_mouse_motion 
-000a c0680099 beq patch1a_0 ,p_mouse_seting_dpi 
-000b c0688119 beq patch1a_1 ,p_mouse_check_key_gpio 
-000c c06980ca beq patch1a_3 ,p_mouse_init_sunt 
-000d c06a00cb beq patch1a_4 ,p_mouse_sensor_poweron 
-000e c06b007c beq patch1a_6 ,p_mouse_priority_bb_event 
-000f c06c80aa beq patch1b_1 ,p_mouse_bb_event_timer 
-0010 2020137c branch loop 
+0000 c2840010 bbit1 8 ,pf_patch_ext 
+0001 c0000012 beq patch00_0 ,p_soft_reset 
+0002 c0450016 beq patch11_2 ,p_txon_next 
+0003 c045805c beq patch11_3 ,p_initialize_radio_cont 
+0004 c04f805a beq patch13_7 ,p_init_param 
+0005 c057001c beq patch15_6 ,p_app_init 
+0006 c0618037 beq patch18_3 ,p_mouse_start_work 
+0007 c0648067 beq patch19_1 ,p_mouse_setgpio_hibernate 
+0008 c0650076 beq patch19_2 ,p_mouse_lpm_before_common 
+0009 c067008f beq patch19_6 ,p_mouse_motion 
+000a c068816f beq patch1a_1 ,p_mouse_check_key_gpio 
+000b c06980de beq patch1a_3 ,p_mouse_init_sunt 
+000c c06a00df beq patch1a_4 ,p_mouse_sensor_poweron 
+000d c06b0080 beq patch1a_6 ,p_mouse_priority_bb_event 
+000e c06c8096 beq patch1b_1 ,p_mouse_bb_event_timer 
+000f 2020137c branch loop 
 
 pf_patch_ext:
-0011 c07500cc beq patch3d_2 ,p_g24_transmit_no_interrupt 
-0012 2020137c branch loop 
+0010 c07500e0 beq patch3d_2 ,p_g24_transmit_no_interrupt 
+0011 2020137c branch loop 
 
 p_soft_reset:
-0013 20800000 clear_stack 
-0014 204030f3 call app_param_init 
-0015 20403bfd call mouse_xtal_init 
-0016 20200804 branch soft_reset + 3 
+0012 20800000 clear_stack 
+0013 204030f3 call app_param_init 
+0014 20403bfd call mouse_xtal_init 
+0015 20200804 branch soft_reset + 3 
 
 p_txon_next:
-0017 6fe0cc28 fetch 1 ,mem_24g_attempt_success_flag 
-0018 243a001a nbranch p_tx_power_increase ,blank 
-0019 2020121e branch txon_next 
+0016 6fe0cc9d fetch 1 ,mem_24g_attempt_success_flag 
+0017 243a0019 nbranch p_tx_power_increase ,blank 
+0018 2020121e branch txon_next 
 
 p_tx_power_increase:
 
 p_set_tx_power_13db:
-001a 708a39fd jam 0xfd ,core_tx_pwr_ctrl0 
-001b 708a3a0f jam 0x0f ,core_tx_pwr_ctrl1 
-001c 2020122f branch set_rf_ldo_cfg89_2 
+0019 708a39fd jam 0xfd ,core_tx_pwr_ctrl0 
+001a 708a3a0f jam 0x0f ,core_tx_pwr_ctrl1 
+001b 2020122f branch set_rf_ldo_cfg89_2 
 
 p_app_init:
 
 p_mouse_init:
-001d 20406df3 call enable_authrom 
-001e 20403bf0 call mouse_setting_config 
-001f 204041a7 call mouse_init_sunt 
-0020 20758000 rtn wake 
-0021 2040408e call mouse_dpi_config 
-0022 20403d8a call mouse_usb_check_enable 
-0023 20404728 call mouse_drawing_optima_init 
-0024 20400029 call p_mouse_cb_fuction 
-0025 2040423c call mouse_sensor_powerdown 
-0026 6fe0c92a fetch 1 ,mem_usb_addr 
-0027 c3838000 rtnbit1 7 
-0028 20203bcb branch mouse_init_wireless 
+001c 20406df3 call enable_authrom 
+001d 20400022 call p_mouse_setting_config 
+001e 20758000 rtn wake 
+001f 20403d8a call mouse_usb_check_enable 
+0020 20400034 call p_mouse_cb_fuction 
+0021 20203bc9 branch mouse_init + 8 
+
+p_mouse_setting_config:
+0022 20758000 rtn wake 
+0023 20402607 call g24_transmit_init 
+0024 204022ff call g24_chmap_param_init 
+0025 20400027 call p_mouse_gpio_init 
+0026 20203bf4 branch mouse_setting_config + 4 
+
+p_mouse_gpio_init:
+0027 6848c4c1 fetcht 1 ,mem_eeprom_wp_gpio 
+0028 20406069 call gpio_config_output 
+0029 204079b4 call usb_offline_check_init 
+002a 6848cbe7 fetcht 1 ,mem_flippen_key0_gpio 
+002b 20403f56 call mouse_gpio_config_input_pu 
+002c 6848cbe8 fetcht 1 ,mem_flippen_key1_gpio 
+002d 20403f56 call mouse_gpio_config_input_pu 
+002e 6848cbe9 fetcht 1 ,mem_flippen_key2_gpio 
+002f 20403f56 call mouse_gpio_config_input_pu 
+0030 6848cbea fetcht 1 ,mem_flippen_key3_gpio 
+0031 20403f56 call mouse_gpio_config_input_pu 
+0032 6848cbeb fetcht 1 ,mem_flippen_key4_gpio 
+0033 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_cb_fuction:
-0029 580000f8 setarg p_mouse_24g_package_data 
-002a 67e1489b store 2 ,mem_cb_24g_transmit_data 
-002b 20203bd1 branch mouse_cb_fuction + 2 
+0034 5800010c setarg p_mouse_24g_package_data 
+0035 67e1489b store 2 ,mem_cb_24g_transmit_data 
+0036 20203bd1 branch mouse_cb_fuction + 2 
 
 p_mouse_start_work:
-002c 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-002d c297c80a bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
-002e 6fe0c938 fetch 1 ,mem_device_flag 
-002f c0000033 beq mode_24g_device ,p_mouse_24g_start_mode 
-0030 20403d65 call mouse_wakeup_from_power_check 
-0031 243442eb nbranch mouse_buletooth_fast_conn_init ,user 
-0032 20203d59 branch mouse_start_reconnect_device 
+0037 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0038 c297c80a bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
+0039 6fe0c938 fetch 1 ,mem_device_flag 
+003a c000003e beq mode_24g_device ,p_mouse_24g_start_mode 
+003b 20403d65 call mouse_wakeup_from_power_check 
+003c 243442eb nbranch mouse_buletooth_fast_conn_init ,user 
+003d 20203d59 branch mouse_start_reconnect_device 
 
 p_mouse_24g_start_mode:
-0033 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0034 c308c803 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
-0035 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0036 c298480c bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
-0037 c318c80c bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
-0038 2040004a call p_mouse_key_check_once 
-0039 1fe17e07 and pdata ,0x07 ,pdata 
-003a 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
-003b 98467c00 isub temp ,null 
-003c 2022c827 branch mouse_24g_start_pair_mode ,zero 
-003d 2020480c branch mouse_24g_reconn_general_dongle 
+003e 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+003f c308c803 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+0040 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0041 c298480c bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
+0042 c318c80c bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
+0043 20400055 call p_mouse_key_check_once 
+0044 1fe17e07 and pdata ,0x07 ,pdata 
+0045 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
+0046 98467c00 isub temp ,null 
+0047 2022c827 branch mouse_24g_start_pair_mode ,zero 
+0048 2020480c branch mouse_24g_reconn_general_dongle 
 
 p_mouse_24g_reconn_dongle_start:
-003e 20400041 call p_g24_factory_check 
-003f 20344812 branch mouse_24g_start_auto_pair_next ,user 
-0040 20204806 branch mouse_24g_reconn_dongle_start 
+0049 2040004c call p_g24_factory_check 
+004a 20344812 branch mouse_24g_start_auto_pair_next ,user 
+004b 20204806 branch mouse_24g_reconn_dongle_start 
 
 p_g24_factory_check:
-0041 df200002 arg 2 ,loopcnt 
-0042 d8c04993 arg mem_mouse_24g_addr ,contr 
+004c df200002 arg 2 ,loopcnt 
+004d d8c04993 arg mem_mouse_24g_addr ,contr 
 
 p_pdata_0xff_check:
-0043 20407e54 call enable_user 
-0044 5800ffff setarg 0xffff 
+004e 20407e54 call enable_user 
+004f 5800ffff setarg 0xffff 
 
 p_pdata_0xff_check_loop:
-0045 e8410006 ifetcht 2 ,contr 
-0046 98467c00 isub temp ,null 
-0047 2442fe56 ncall disable_user ,zero 
-0048 c2000045 loop p_pdata_0xff_check_loop 
-0049 20600000 rtn 
+0050 e8410006 ifetcht 2 ,contr 
+0051 98467c00 isub temp ,null 
+0052 2442fe56 ncall disable_user ,zero 
+0053 c2000050 loop p_pdata_0xff_check_loop 
+0054 20600000 rtn 
 
 p_mouse_key_check_once:
-004a 20404121 call mouse_check_key_gpio_once 
-004b 20404115 call mouse_check_key_gpio 
-004c d8400000 arg 0 ,temp 
-004d 6049cb8e storet 3 ,mem_mouse_lkey_press_status 
-004e 20600000 rtn 
+0055 20404121 call mouse_check_key_gpio_once 
+0056 20404115 call mouse_check_key_gpio 
+0057 d8400000 arg 0 ,temp 
+0058 6049cb8e storet 3 ,mem_mouse_lkey_press_status 
+0059 20600000 rtn 
 
 p_init_param:
-004f 70008000 jam 0 ,mem_lmo_tid2 
-0050 202013b7 branch init_param_next + 1 
+005a 70008000 jam 0 ,mem_lmo_tid2 
+005b 202013b7 branch init_param_next + 1 
 
 p_initialize_radio_cont:
-0051 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
-0052 2040126a call initialize_syn_afc_cfg1 
-0053 20401271 call initialize_rf_ldo_cfg1 
-0054 20401277 call initialize_rc_cal 
-0055 708a6d09 jam 0x09 ,core_rx_bq_cfg0 
-0056 708a0305 jam 5 ,core_clkpll_cfg0 
-0057 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
-0058 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
-0059 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
-005a 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
-005b 2020125d branch initialize_radio_cont + 8 
+005c 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
+005d 2040126a call initialize_syn_afc_cfg1 
+005e 20401271 call initialize_rf_ldo_cfg1 
+005f 20401277 call initialize_rc_cal 
+0060 708a6d09 jam 0x09 ,core_rx_bq_cfg0 
+0061 708a0305 jam 5 ,core_clkpll_cfg0 
+0062 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
+0063 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
+0064 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
+0065 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
+0066 2020125d branch initialize_radio_cont + 8 
 
 p_mouse_setgpio_hibernate:
-005c 204042e9 call mouse_set_sdio_high 
-005d 20407fdc call clear_wake 
-005e 20404015 call mouse_before_hibernate_wheel_gpio_set 
-005f 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-0060 c07f8065 beq gpio_disable ,p_mouse_setgpio_hibernate_skip_public_gpio 
-0061 6848c910 fetcht 1 ,mem_matrix_public_gpio 
-0062 20406069 call gpio_out_active 
-0063 6848c910 fetcht 1 ,mem_matrix_public_gpio 
-0064 20406042 call gpio_clr_wake 
+0067 204042e9 call mouse_set_sdio_high 
+0068 20407fdc call clear_wake 
+0069 20404015 call mouse_before_hibernate_wheel_gpio_set 
+006a 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+006b c07f8070 beq gpio_disable ,p_mouse_setgpio_hibernate_skip_public_gpio 
+006c 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+006d 20406069 call gpio_out_active 
+006e 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+006f 20406042 call gpio_clr_wake 
 
 p_mouse_setgpio_hibernate_skip_public_gpio:
-0065 6848cbe2 fetcht 1 ,mem_mouse_reuse_2ice_gpio 
-0066 20403f56 call mouse_gpio_config_input_pu 
-0067 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
-0068 d840003f arg gpcfg_output_high ,temp 
-0069 20406093 call gpio_config_function_int 
-006a 20203e36 branch mouse_setgpio_hibernate + 3 
+0070 6848cbe2 fetcht 1 ,mem_mouse_reuse_2ice_gpio 
+0071 20403f56 call mouse_gpio_config_input_pu 
+0072 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+0073 d840003f arg gpcfg_output_high ,temp 
+0074 20406093 call gpio_config_function_int 
+0075 20203e36 branch mouse_setgpio_hibernate + 3 
 
 p_mouse_lpm_before_common:
-006b 20403f88 call mouse_wheel_check 
-006c 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
-006d d840003f arg gpcfg_output_high ,temp 
-006e 20406093 call gpio_config_function_int 
-006f 20405b04 call twspi_disable 
-0070 6848c918 fetcht 1 ,mem_lbutton_gpio 
-0071 20406036 call gpio_set_wake 
-0072 6848c919 fetcht 1 ,mem_rbutton_gpio 
-0073 20406036 call gpio_set_wake 
-0074 6848c91a fetcht 1 ,mem_mbutton_gpio 
-0075 20406036 call gpio_set_wake 
-0076 6848c90d fetcht 1 ,mem_bk_button_gpio 
+0076 6848cbe7 fetcht 1 ,mem_flippen_key0_gpio 
 0077 20406036 call gpio_set_wake 
-0078 6848c90e fetcht 1 ,mem_fw_button_gpio 
+0078 6848cbe8 fetcht 1 ,mem_flippen_key1_gpio 
 0079 20406036 call gpio_set_wake 
-007a 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-007b 20206036 branch gpio_set_wake 
+007a 6848cbe9 fetcht 1 ,mem_flippen_key2_gpio 
+007b 20406036 call gpio_set_wake 
+007c 6848cbea fetcht 1 ,mem_flippen_key3_gpio 
+007d 20406036 call gpio_set_wake 
+007e 6848cbeb fetcht 1 ,mem_flippen_key4_gpio 
+007f 20206036 branch gpio_set_wake 
 
 p_mouse_priority_bb_event:
-007c 1a627e00 copy regc ,pdata 
-007d c01e0081 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-007e c01c8087 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
-007f c01d0089 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
-0080 20204336 branch mouse_priority_bb_event + 2 
+0080 1a627e00 copy regc ,pdata 
+0081 c01e0085 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+0082 c01c808b beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
+0083 c01d008d beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
+0084 20204336 branch mouse_priority_bb_event + 2 
 
 p_mouse_24g_attempt_success:
-0081 704c2801 jam 1 ,mem_24g_attempt_success_flag 
-0082 6fe2483c fetch 4 ,mem_24g_addr 
-0083 67e24891 store 4 ,mem_24g_receiver_addr 
-0084 67e24993 store 4 ,mem_mouse_24g_addr 
-0085 204048c6 call mouse_device_poweron_timer_init 
-0086 2020484e branch mouse_24g_attempt_success 
+0085 704c9d01 jam 1 ,mem_24g_attempt_success_flag 
+0086 6fe2483c fetch 4 ,mem_24g_addr 
+0087 67e24891 store 4 ,mem_24g_receiver_addr 
+0088 67e24993 store 4 ,mem_mouse_24g_addr 
+0089 204048c6 call mouse_device_poweron_timer_init 
+008a 2020484e branch mouse_24g_attempt_success 
 
 p_mouse_24g_pairing_complete:
-0087 704c2801 jam 1 ,mem_24g_attempt_success_flag 
-0088 20204857 branch mouse_24g_pairing_complete 
+008b 704c9d01 jam 1 ,mem_24g_attempt_success_flag 
+008c 20204857 branch mouse_24g_pairing_complete 
 
 p_mouse_24g_attempt_fail:
-0089 704c2800 jam 0 ,mem_24g_attempt_success_flag 
-008a 20204833 branch mouse_24g_attempt_fail 
+008d 704c9d00 jam 0 ,mem_24g_attempt_success_flag 
+008e 20204833 branch mouse_24g_attempt_fail 
 
 p_mouse_motion:
-008b 78547c00 disable user 
-008c 58000000 setarg 0 
-008d 67e348d1 store 6 ,mem_mouse_x 
-008e 20404240 call mouse_check_sensor_data 
-008f 2040408e call mouse_dpi_config 
-0090 20403f7e call mouse_zwheel 
-0091 20403f83 call mouse_t_zwheel 
-0092 204040dc call mouse_key 
-0093 6fe0c8d0 fetch 1 ,mem_mouse_key 
-0094 1fe17e1f and_into 0x1f ,pdata 
-0095 67e0c8d0 store 1 ,mem_mouse_key 
-0096 24344728 nbranch mouse_drawing_optima_init ,user 
-0097 2040471a call mouse_drawing_optima 
-0098 20204544 branch mouse_no_data_timer_init 
-
-p_mouse_seting_dpi:
-0099 2040408f call mouse_setting_dpi_4_level 
-009a 2040009c call p_mouse_dpi_led_blink_delay 
-009b 20204098 branch mouse_seting_sensor_type 
-
-p_mouse_dpi_led_blink_delay:
-009c 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
-009d c17f8000 rtneq gpio_disable 
-009e 6fe14ac2 fetch 2 ,mem_mouse_discovery_timer 
-009f 247a0000 nrtn blank 
-00a0 6fe14883 fetch 2 ,mem_24g_pair_timeout 
-00a1 247a0000 nrtn blank 
-00a2 6fe14887 fetch 2 ,mem_24g_reconn_timeout 
-00a3 247a0000 nrtn blank 
-00a4 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
-00a5 247a0000 nrtn blank 
-00a6 6fe0cbc1 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
-00a7 203a00b5 branch p_mouse_dpi_led_blink_init ,blank 
-00a8 67e0cba8 store 1 ,mem_mouse_dpi_led_delay_count 
-00a9 20600000 rtn 
+008f 78547c00 disable user 
+0090 204040dc call mouse_key 
+0091 6fe0c8d0 fetch 1 ,mem_mouse_key 
+0092 1fe17e1f and_into 0x1f ,pdata 
+0093 67e0c8d0 store 1 ,mem_mouse_key 
+0094 24740000 nrtn user 
+0095 20204544 branch mouse_no_data_timer_init 
 
 p_mouse_bb_event_timer:
-00aa 20403e9b call mouse_adc_read 
-00ab 20404956 call mouse_low_voltage_led_timer 
-00ac 2040232b call g24_pair_timeout_timer 
-00ad 20402556 call g24_reconn_timeout_timer 
-00ae 204047cd call mouse_24g_long_sleep_param_update_timer 
-00af 204048be call mouse_device_poweron_timer 
-00b0 204000b2 call p_mouse_dpi_led_blink_delay_timer 
-00b1 202044bd branch mouse_bb_event_timer + 8 
-
-p_mouse_dpi_led_blink_delay_timer:
-00b2 da604ba8 arg mem_mouse_dpi_led_delay_count ,regc 
-00b3 da4000b5 arg p_mouse_dpi_led_blink_init ,regb 
-00b4 2020318a branch timer_single_step 
-
-p_mouse_dpi_led_blink_init:
-00b5 6fe0c927 fetch 1 ,mem_config_sensor_type 
-00b6 c001c8f2 beq p3212 ,mouse_dpi_led_blink_init 
-00b7 c005c8f2 beq ka8g2 ,mouse_dpi_led_blink_init 
-00b8 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
-00b9 67e0c92f store 1 ,mem_mouse_struct_led_gpio 
-00ba 6fe14bc2 fetch 2 ,mem_mouse_dpi_led_blink_time 
-00bb 67e14930 store 2 ,mem_mouse_on_time 
-00bc 67e14932 store 2 ,mem_mouse_off_time 
-00bd da200000 arg 0 ,rega 
-00be 6848c992 fetcht 1 ,mem_mouse_dpi 
-00bf 18408402 increase 2 ,temp 
-00c0 18467c03 sub temp ,3 ,null 
-00c1 204100c4 call p_mouse_dpi_led_blink_init_level_4 ,positive 
-00c2 244100c8 ncall p_mouse_dpi_led_blink_count_clean ,positive 
-00c3 202048ff branch mouse_dpi_led_blink_init_end 
-
-p_mouse_dpi_led_blink_init_level_4:
-00c4 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-00c5 c40e0000 rtnbit0 mouse_enable_dpi_level_4 
-00c6 18408401 increase 1 ,temp 
-00c7 20600000 rtn 
-
-p_mouse_dpi_led_blink_count_clean:
-00c8 184085fd increase -3 ,temp 
-00c9 20600000 rtn 
+0096 20403e9b call mouse_adc_read 
+0097 20404956 call mouse_low_voltage_led_timer 
+0098 2040232b call g24_pair_timeout_timer 
+0099 20402556 call g24_reconn_timeout_timer 
+009a 204047cd call mouse_24g_long_sleep_param_update_timer 
+009b 204048be call mouse_device_poweron_timer 
+009c 204000b3 call p_mouse_long_key_press_timer 
+009d 204000c6 call p_mouse_key_mode_check_timer 
+009e 204001b9 call p_mouse_customer_key0_long_press_timer 
+009f 204000d4 call p_mouse_two_clink_check_timer 
+00a0 204000a2 call p_mouse_led_blink 
+00a1 202044bd branch mouse_bb_event_timer + 8 
+
+p_mouse_led_blink:
+00a2 6fe0cca2 fetch 1 ,mem_customer_key_press_status 
+00a3 243a00a5 nbranch p_mouse_led_on ,blank 
+00a4 202000ac branch p_mouse_led_off 
+
+p_mouse_led_on:
+00a5 6fe0ccab fetch 1 ,mem_mouse_led_state 
+00a6 704cab01 jam on ,mem_mouse_led_state 
+00a7 c1008000 rtneq on 
+00a8 6848ccac fetcht 1 ,mem_mouse_led_gpio 
+00a9 20406069 call gpio_config_output 
+00aa 6848ccac fetcht 1 ,mem_mouse_led_gpio 
+00ab 20206065 branch gpio_out_inactive 
+
+p_mouse_led_off:
+00ac 6fe0ccab fetch 1 ,mem_mouse_led_state 
+00ad 704cab00 jam off ,mem_mouse_led_state 
+00ae c1000000 rtneq off 
+00af 6848ccac fetcht 1 ,mem_mouse_led_gpio 
+00b0 20406069 call gpio_config_output 
+00b1 6848ccac fetcht 1 ,mem_mouse_led_gpio 
+00b2 20206069 branch gpio_out_active 
+
+p_mouse_long_key_press_timer:
+00b3 6fe0cca2 fetch 1 ,mem_customer_key_press_status 
+00b4 1fe17e07 and pdata ,0x07 ,pdata 
+00b5 203a00c0 branch p_mouse_long_key_press_init ,blank 
+00b6 c1028000 rtneq mouse_lm_button 
+00b7 c1030000 rtneq mouse_rm_button 
+00b8 c1018000 rtneq mouse_lr_button 
+00b9 c1038000 rtneq mouse_lmr_button 
+00ba da604c9f arg mem_long_key_press_timeout ,regc 
+00bb da4000bd arg p_mouse_long_key_press_timeout ,regb 
+00bc 2020318a branch timer_single_step 
+
+p_mouse_long_key_press_timeout:
+00bd 6fe0cb8b fetch 1 ,mem_customer_key 
+00be 79207e07 set1 7 ,pdata 
+00bf 202000c4 branch p_mouse_long_key_press_init_next 
+
+p_mouse_long_key_press_init:
+00c0 6fe0cc9e fetch 1 ,mem_long_key_press_timeout_init 
+00c1 67e0cc9f store 1 ,mem_long_key_press_timeout 
+00c2 6fe0cb8b fetch 1 ,mem_customer_key 
+00c3 793ffe07 set0 7 ,pdata 
+
+p_mouse_long_key_press_init_next:
+00c4 67e0cb8b store 1 ,mem_customer_key 
+00c5 20600000 rtn 
+
+p_mouse_key_mode_check_timer:
+00c6 6fe0cca2 fetch 1 ,mem_customer_key_press_status 
+00c7 c08300d1 bne mouse_rm_button ,p_mouse_key_mode_check_timer_init 
+00c8 da604ca1 arg mem_long_key_press_mode_check_timeout ,regc 
+00c9 da4000cb arg p_mouse_key_mode_check_timeout ,regb 
+00ca 2020318a branch timer_single_step 
+
+p_mouse_key_mode_check_timeout:
+00cb 6fe0cca4 fetch 1 ,mem_customer_key_mode_status 
+00cc 1fe0fe01 increase 1 ,pdata 
+00cd c08180cf bne 3 ,p_mouse_key_mode_check_timeout + 4 
+00ce 58000000 setarg 0 
+00cf 67e0cca4 store 1 ,mem_customer_key_mode_status 
+00d0 20600000 rtn 
+
+p_mouse_key_mode_check_timer_init:
+00d1 6fe0cca0 fetch 1 ,mem_long_key_press_mode_check_timeout_init 
+00d2 67e0cca1 store 1 ,mem_long_key_press_mode_check_timeout 
+00d3 20600000 rtn 
+
+p_mouse_two_clink_check_timer:
+00d4 6fe0cca8 fetch 1 ,mem_key0_short_press_count 
+00d5 207a0000 rtn blank 
+00d6 da604ca9 arg mem_key0_short_press_timer ,regc 
+00d7 da4000d9 arg p_mouse_two_clink_check_timeout ,regb 
+00d8 2020318a branch timer_single_step 
+
+p_mouse_two_clink_check_timeout:
+00d9 6fe0cca8 fetch 1 ,mem_key0_short_press_count 
+00da 704ca800 jam 0 ,mem_key0_short_press_count 
+00db c1808000 rtnne 1 
+
+p_mouse_one_clink:
+00dc 704caa01 jam 1 ,mem_key0_short_press_flag 
+00dd 20600000 rtn 
 
 p_mouse_init_sunt:
-00ca 20600000 rtn 
+00de 20600000 rtn 
 
 p_mouse_sensor_poweron:
-00cb 20600000 rtn 
+00df 20600000 rtn 
 
 p_g24_transmit_no_interrupt:
-00cc 20402631 call g24_txdata_prep 
-00cd 243426a1 nbranch g24_nodata_transmit ,user 
+00e0 20402631 call g24_txdata_prep 
+00e1 243426a1 nbranch g24_nodata_transmit ,user 
 
 p_g24_transmit_start:
-00ce 204000e4 call p_g24_transmit_process 
-00cf 20202625 branch g24_transmit_start + 1 
+00e2 204000f8 call p_g24_transmit_process 
+00e3 20202625 branch g24_transmit_start + 1 
 
 p_g24_nodata_transmit:
-00d0 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-00d1 205a00d6 call p_g24_send_abort_packet ,blank 
-00d2 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
-00d3 c1008000 rtneq g24_tx_timer_int_enable 
-00d4 2040269f call g24_search_receiver 
-00d5 202026b5 branch g24_long_sleep 
+00e4 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+00e5 205a00ea call p_g24_send_abort_packet ,blank 
+00e6 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+00e7 c1008000 rtneq g24_tx_timer_int_enable 
+00e8 2040269f call g24_search_receiver 
+00e9 202026b5 branch g24_long_sleep 
 
 p_g24_send_abort_packet:
-00d6 70483601 jam type_ms ,mem_24g_data_type 
-00d7 7048a701 jam 1 ,mem_24g_abort_pac 
-00d8 20402642 call g24_transmit_rf_ctrl_clear 
-00d9 67e0c7c6 store 1 ,mem_24g_txbuf 
-00da 58000000 setarg 0 
-00db 67e3c7c7 store 7 ,mem_24g_txbuf + 1 
-00dc 6fe248a9 fetch 4 ,mem_24g_device_addr 
-00dd 67e247ce store 4 ,mem_24g_txbuf + 8 
-00de 7048350c jam 12 ,mem_24g_datalen 
-00df 6fe0c836 fetch 1 ,mem_24g_data_type 
-00e0 79207e03 set1 bit_abort ,pdata 
-00e1 67e0c836 store 1 ,mem_24g_data_type 
-00e2 20402291 call g24_transmit_prep 
-00e3 202000ce branch p_g24_transmit_start 
+00ea 70483601 jam type_ms ,mem_24g_data_type 
+00eb 7048a701 jam 1 ,mem_24g_abort_pac 
+00ec 20402642 call g24_transmit_rf_ctrl_clear 
+00ed 67e0c7c6 store 1 ,mem_24g_txbuf 
+00ee 58000000 setarg 0 
+00ef 67e3c7c7 store 7 ,mem_24g_txbuf + 1 
+00f0 6fe248a9 fetch 4 ,mem_24g_device_addr 
+00f1 67e247ce store 4 ,mem_24g_txbuf + 8 
+00f2 7048350c jam 12 ,mem_24g_datalen 
+00f3 6fe0c836 fetch 1 ,mem_24g_data_type 
+00f4 79207e03 set1 bit_abort ,pdata 
+00f5 67e0c836 store 1 ,mem_24g_data_type 
+00f6 20402291 call g24_transmit_prep 
+00f7 202000e2 branch p_g24_transmit_start 
 
 p_g24_transmit_process:
-00e4 7048a600 jam 0 ,mem_24g_retry 
+00f8 7048a600 jam 0 ,mem_24g_retry 
 
 p_g24_transmit_loop:
-00e5 6961015f fetchr timeup ,2 ,mem_param_rx_setup 
-00e6 34730200 until clkn_rt ,meet 
-00e7 2040265b call g24_transmit_receive_ack 
-00e8 6fe0c82c fetch 1 ,mem_24g_no_ack 
-00e9 c000a651 beq no_ack_24g ,g24_transmit_no_ack 
-00ea 242c00ef nbranch p_g24_retransmit ,sync 
-00eb 243780ef nbranch p_g24_retransmit ,user3 
-00ec 20402672 call g24_ackpayload_parse 
-00ed 704be100 jam 0 ,mem_sensor_shutdown_flag 
-00ee 20202651 branch g24_transmit_no_ack 
+00f9 6961015f fetchr timeup ,2 ,mem_param_rx_setup 
+00fa 34730200 until clkn_rt ,meet 
+00fb 2040265b call g24_transmit_receive_ack 
+00fc 6fe0c82c fetch 1 ,mem_24g_no_ack 
+00fd c000a651 beq no_ack_24g ,g24_transmit_no_ack 
+00fe 242c0103 nbranch p_g24_retransmit ,sync 
+00ff 24378103 nbranch p_g24_retransmit ,user3 
+0100 20402672 call g24_ackpayload_parse 
+0101 704be100 jam 0 ,mem_sensor_shutdown_flag 
+0102 20202651 branch g24_transmit_no_ack 
 
 p_g24_retransmit:
-00ef 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-00f0 247a0000 nrtn blank 
-00f1 6fe148a3 fetch 2 ,mem_24g_txfail_cnt 
-00f2 1fe0fe01 increase 1 ,pdata 
-00f3 67e148a3 store 2 ,mem_24g_txfail_cnt 
-00f4 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
-00f5 c2822679 bbit1 4 ,g24_tx_attempt_fail 
-00f6 2040267e call g24_transmit_hop_process 
-00f7 202000e5 branch p_g24_transmit_loop 
+0103 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+0104 247a0000 nrtn blank 
+0105 6fe148a3 fetch 2 ,mem_24g_txfail_cnt 
+0106 1fe0fe01 increase 1 ,pdata 
+0107 67e148a3 store 2 ,mem_24g_txfail_cnt 
+0108 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
+0109 c2822679 bbit1 4 ,g24_tx_attempt_fail 
+010a 2040267e call g24_transmit_hop_process 
+010b 202000f9 branch p_g24_transmit_loop 
 
 p_mouse_24g_package_data:
-00f8 c6930000 rtnmark0 mark_24g 
-00f9 20403f70 call mouse_motion 
-00fa 24740000 nrtn user 
-00fb 6fe0cb8b fetch 1 ,mem_customer_key 
-00fc 243a00fe nbranch p_mouse_24g_keyboard_package_data ,blank 
-00fd 20600000 rtn 
+010c c6930000 rtnmark0 mark_24g 
+010d 20403f70 call mouse_motion 
+010e 24740000 nrtn user 
+010f 6fe0cb8b fetch 1 ,mem_customer_key 
+0110 243a0112 nbranch p_mouse_24g_keyboard_package_data ,blank 
+0111 20600000 rtn 
 
 p_mouse_24g_keyboard_package_data:
-00fe 70483602 jam type_kb ,mem_24g_data_type 
-00ff da200009 arg 9 ,rega 
-0100 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-0101 243a0106 nbranch p_mouse_customer_key_press_judge ,blank 
-0102 6fe0cc27 fetch 1 ,mem_mouse_media_flag 
-0103 243a010d nbranch p_mouse_24g_media_key_release ,blank 
-0104 da404bd5 arg mem_customer_key_release ,regb 
-0105 20600000 rtn 
+0112 70483602 jam type_kb ,mem_24g_data_type 
+0113 da200009 arg 9 ,rega 
+0114 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
+0115 243a011f nbranch p_mouse_customer_key_press_judge ,blank 
+0116 6fe0cc9c fetch 1 ,mem_mouse_media_flag 
+0117 243a0126 nbranch p_mouse_24g_media_key_release ,blank 
+0118 6848cca3 fetcht 1 ,mem_customer_key_press_status_flag 
+0119 284ffe00 isolate1 0 ,temp 
+011a 20208135 branch p_mouse_key0_long_pres_1_data_store ,true 
+011b 284ffe01 isolate1 1 ,temp 
+011c 20208139 branch p_mouse_key1_release_store ,true 
+
+p_mouse_customer_key_release:
+011d da404bd5 arg mem_customer_key_release ,regb 
+011e 20600000 rtn 
 
 p_mouse_customer_key_press_judge:
-0106 6fe0cb8b fetch 1 ,mem_customer_key 
-0107 c280010f bbit1 0 ,p_mouse_pageup_data_store 
-0108 c2808111 bbit1 1 ,p_mouse_pagedown_data_store 
-0109 c2810113 bbit1 2 ,p_mouse_tab_data_store 
-010a c2818115 bbit1 3 ,p_mouse_vol_up_data_store 
-010b c2820117 bbit1 4 ,p_mouse_vol_down_data_store 
-010c 20600000 rtn 
+011f 6fe0cb8b fetch 1 ,mem_customer_key 
+0120 c2800128 bbit1 0 ,p_mouse_key0_data_store 
+0121 c280813e bbit1 1 ,p_mouse_key1_data_store 
+0122 c281015e bbit1 2 ,p_mouse_key2_data_store 
+0123 c281816b bbit1 3 ,p_mouse_key3_data_store 
+0124 c282016d bbit1 4 ,p_mouse_key4_data_store 
+0125 20600000 rtn 
 
 p_mouse_24g_media_key_release:
-010d da404c19 arg mem_customer_media_key_release ,regb 
-010e 20600000 rtn 
-
-p_mouse_pageup_data_store:
-010f da404bec arg mem_customer_key_pageup ,regb 
-0110 20600000 rtn 
-
-p_mouse_pagedown_data_store:
-0111 da404bf5 arg mem_customer_key_pagedown ,regb 
-0112 20600000 rtn 
-
-p_mouse_tab_data_store:
-0113 da404bfe arg mem_customer_key_tab ,regb 
-0114 20600000 rtn 
-
-p_mouse_vol_up_data_store:
-0115 da404c07 arg mem_customer_key_vol_up ,regb 
-0116 20600000 rtn 
-
-p_mouse_vol_down_data_store:
-0117 da404c10 arg mem_customer_key_vol_down ,regb 
-0118 20600000 rtn 
+0126 da404c8e arg mem_customer_media_key_release ,regb 
+0127 20600000 rtn 
 
-p_mouse_check_key_gpio:
-0119 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-011a 245a4121 ncall mouse_check_key_gpio_once ,blank 
-011b da200000 arg 0 ,rega 
-011c 20400123 call p_mouse_check_pageup_gpio 
-011d 20400133 call p_mouse_check_pagedown_gpio 
-011e 20400141 call p_mouse_check_tab_gpio 
-011f 2040014f call p_mouse_check_vol_up_gpio 
-0120 2040015d call p_mouse_check_vol_down_gpio 
-0121 1a227e00 copy rega ,pdata 
-0122 20600000 rtn 
-
-p_mouse_check_pageup_gpio:
-0123 6fe0cb8b fetch 1 ,mem_customer_key 
-0124 793ffe00 set0 0 ,pdata 
-0125 67e0cb8b store 1 ,mem_customer_key 
-0126 6848cbe7 fetcht 1 ,mem_flippen_pageup_gpio 
-0127 20406050 call gpio_config_input 
-0128 704b9600 jam mouse_l_key ,mem_mouse_key_temp 
-0129 6848cbe7 fetcht 1 ,mem_flippen_pageup_gpio 
-012a 6fe0cc22 fetch 1 ,mem_mouse_customer_key1_press_status 
-012b 20404187 call mouse_check_key_connect_gnd 
-012c 67e0cc22 store 1 ,mem_mouse_customer_key1_press_status 
-012d 1a227e00 copy rega ,pdata 
-012e c280016b bbit1 mouse_l_key ,p_mouse_customerkey_pageup_press 
-012f 2040018a call p_mouse_customerkey_pageup_release 
+p_mouse_key0_data_store:
+0128 6fe0cb8b fetch 1 ,mem_customer_key 
+0129 c2838133 bbit1 7 ,p_mouse_key0_long_pres_0_data_store 
+012a 6fe0ccaa fetch 1 ,mem_key0_short_press_flag 
+012b 704caa00 jam 0 ,mem_key0_short_press_flag 
+012c c0010131 beq 2 ,p_mouse_key0_two_clink_data_store 
+012d c000812f beq 1 ,p_mouse_key0_short_data_store 
+012e 20600000 rtn 
+
+p_mouse_key0_short_data_store:
+012f da404bec arg mem_customer_key0_short_press ,regb 
+0130 20600000 rtn 
 
-p_mouse_customerkey_exit:
-0130 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-0131 67e0cb8d store 1 ,mem_customer_data_trigger_last 
+p_mouse_key0_two_clink_data_store:
+0131 da404c3d arg mem_customer_key0_two_clink_press ,regb 
 0132 20600000 rtn 
 
-p_mouse_check_pagedown_gpio:
-0133 6fe0cb8b fetch 1 ,mem_customer_key 
-0134 793ffe01 set0 1 ,pdata 
-0135 67e0cb8b store 1 ,mem_customer_key 
-0136 6848cbe8 fetcht 1 ,mem_flippen_pagedown_gpio 
-0137 20406050 call gpio_config_input 
-0138 704b9601 jam mouse_r_key ,mem_mouse_key_temp 
-0139 6848cbe8 fetcht 1 ,mem_flippen_pagedown_gpio 
-013a 6fe0cc23 fetch 1 ,mem_mouse_customer_key2_press_status 
-013b 20404187 call mouse_check_key_connect_gnd 
-013c 67e0cc23 store 1 ,mem_mouse_customer_key2_press_status 
-013d 1a227e00 copy rega ,pdata 
-013e c2808170 bbit1 mouse_r_key ,p_mouse_customerkey_pagedown_press 
-013f 20400195 call p_mouse_customerkey_pagedown_release 
-0140 20200130 branch p_mouse_customerkey_exit 
-
-p_mouse_check_tab_gpio:
-0141 6fe0cb8b fetch 1 ,mem_customer_key 
-0142 793ffe02 set0 2 ,pdata 
-0143 67e0cb8b store 1 ,mem_customer_key 
-0144 6848cbe9 fetcht 1 ,mem_flippen_tab_gpio 
-0145 20406050 call gpio_config_input 
-0146 704b9602 jam mouse_m_key ,mem_mouse_key_temp 
-0147 6848cbe9 fetcht 1 ,mem_flippen_tab_gpio 
-0148 6fe0cc24 fetch 1 ,mem_mouse_customer_key3_press_status 
-0149 20404187 call mouse_check_key_connect_gnd 
-014a 67e0cc24 store 1 ,mem_mouse_customer_key3_press_status 
-014b 1a227e00 copy rega ,pdata 
-014c c2810175 bbit1 mouse_m_key ,p_mouse_customerkey_tab_press 
-014d 204001a0 call p_mouse_customerkey_tab_release 
-014e 20200130 branch p_mouse_customerkey_exit 
-
-p_mouse_check_vol_up_gpio:
-014f 6fe0cb8b fetch 1 ,mem_customer_key 
-0150 793ffe03 set0 3 ,pdata 
-0151 67e0cb8b store 1 ,mem_customer_key 
-0152 6848cbea fetcht 1 ,mem_flippen_vol_up_gpio 
-0153 20406050 call gpio_config_input 
-0154 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
-0155 6848cbea fetcht 1 ,mem_flippen_vol_up_gpio 
-0156 6fe0cc25 fetch 1 ,mem_mouse_customer_key4_press_status 
-0157 20404187 call mouse_check_key_connect_gnd 
-0158 67e0cc25 store 1 ,mem_mouse_customer_key4_press_status 
-0159 1a227e00 copy rega ,pdata 
-015a c281817a bbit1 mouse_bk_key ,p_mouse_customerkey_vol_up_press 
-015b 204001ab call p_mouse_customerkey_vol_up_release 
-015c 20200130 branch p_mouse_customerkey_exit 
-
-p_mouse_check_vol_down_gpio:
-015d 6fe0cb8b fetch 1 ,mem_customer_key 
-015e 793ffe04 set0 4 ,pdata 
-015f 67e0cb8b store 1 ,mem_customer_key 
-0160 6848cbeb fetcht 1 ,mem_flippen_vol_down_gpio 
-0161 20406050 call gpio_config_input 
-0162 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
-0163 6848cbeb fetcht 1 ,mem_flippen_vol_down_gpio 
-0164 6fe0cc26 fetch 1 ,mem_mouse_customer_key5_press_status 
-0165 20404187 call mouse_check_key_connect_gnd 
-0166 67e0cc26 store 1 ,mem_mouse_customer_key5_press_status 
-0167 1a227e00 copy rega ,pdata 
-0168 c2820182 bbit1 mouse_fw_key ,p_mouse_customerkey_vol_down_press 
-0169 204001b6 call p_mouse_customerkey_vol_down_release 
-016a 20200130 branch p_mouse_customerkey_exit 
-
-p_mouse_customerkey_pageup_press:
-016b 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-016c 79207e00 set1 0 ,pdata 
-016d 67e0cb8c store 1 ,mem_customer_data_trigger 
-016e 20400191 call p_mouse_customerkey_pageup_need_send 
-016f 20200130 branch p_mouse_customerkey_exit 
-
-p_mouse_customerkey_pagedown_press:
-0170 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-0171 79207e01 set1 1 ,pdata 
-0172 67e0cb8c store 1 ,mem_customer_data_trigger 
-0173 2040019c call p_mouse_customerkey_pagedown_need_send 
-0174 20200130 branch p_mouse_customerkey_exit 
-
-p_mouse_customerkey_tab_press:
-0175 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-0176 79207e02 set1 2 ,pdata 
-0177 67e0cb8c store 1 ,mem_customer_data_trigger 
-0178 204001a7 call p_mouse_customerkey_tab_need_send 
-0179 20200130 branch p_mouse_customerkey_exit 
-
-p_mouse_customerkey_vol_up_press:
-017a 6fe0cb8b fetch 1 ,mem_customer_key 
-017b 79207e03 set1 3 ,pdata 
-017c 67e0cb8b store 1 ,mem_customer_key 
-017d 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-017e 79207e03 set1 3 ,pdata 
-017f 67e0cb8c store 1 ,mem_customer_data_trigger 
-0180 204001b2 call p_mouse_customerkey_vol_up_need_send 
-0181 20200130 branch p_mouse_customerkey_exit 
-
-p_mouse_customerkey_vol_down_press:
-0182 6fe0cb8b fetch 1 ,mem_customer_key 
-0183 79207e04 set1 4 ,pdata 
-0184 67e0cb8b store 1 ,mem_customer_key 
-0185 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-0186 79207e04 set1 4 ,pdata 
-0187 67e0cb8c store 1 ,mem_customer_data_trigger 
-0188 204001bd call p_mouse_customerkey_vol_down_need_send 
-0189 20200130 branch p_mouse_customerkey_exit 
-
-p_mouse_customerkey_pageup_release:
-018a 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-018b 793ffe00 set0 0 ,pdata 
-018c 67e0cb8c store 1 ,mem_customer_data_trigger 
-018d 6fe0cb8d fetch 1 ,mem_customer_data_trigger_last 
-018e 2feffe00 isolate1 0 ,pdata 
-018f 24608000 nrtn true 
-0190 704c2700 jam 0 ,mem_mouse_media_flag 
-
-p_mouse_customerkey_pageup_need_send:
-0191 6fe0cb8b fetch 1 ,mem_customer_key 
-0192 79207e00 set1 0 ,pdata 
-0193 67e0cb8b store 1 ,mem_customer_key 
-0194 20600000 rtn 
-
-p_mouse_customerkey_pagedown_release:
-0195 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-0196 793ffe01 set0 1 ,pdata 
-0197 67e0cb8c store 1 ,mem_customer_data_trigger 
-0198 6fe0cb8d fetch 1 ,mem_customer_data_trigger_last 
-0199 2feffe01 isolate1 1 ,pdata 
-019a 24608000 nrtn true 
-019b 704c2700 jam 0 ,mem_mouse_media_flag 
-
-p_mouse_customerkey_pagedown_need_send:
-019c 6fe0cb8b fetch 1 ,mem_customer_key 
-019d 79207e01 set1 1 ,pdata 
-019e 67e0cb8b store 1 ,mem_customer_key 
-019f 20600000 rtn 
-
-p_mouse_customerkey_tab_release:
-01a0 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-01a1 793ffe02 set0 2 ,pdata 
-01a2 67e0cb8c store 1 ,mem_customer_data_trigger 
-01a3 6fe0cb8d fetch 1 ,mem_customer_data_trigger_last 
-01a4 2feffe02 isolate1 2 ,pdata 
-01a5 24608000 nrtn true 
-01a6 704c2700 jam 0 ,mem_mouse_media_flag 
-
-p_mouse_customerkey_tab_need_send:
-01a7 6fe0cb8b fetch 1 ,mem_customer_key 
-01a8 79207e02 set1 2 ,pdata 
-01a9 67e0cb8b store 1 ,mem_customer_key 
-01aa 20600000 rtn 
-
-p_mouse_customerkey_vol_up_release:
-01ab 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-01ac 793ffe03 set0 3 ,pdata 
-01ad 67e0cb8c store 1 ,mem_customer_data_trigger 
-01ae 6fe0cb8d fetch 1 ,mem_customer_data_trigger_last 
-01af 2feffe03 isolate1 3 ,pdata 
-01b0 24608000 nrtn true 
-01b1 704c2701 jam 1 ,mem_mouse_media_flag 
-
-p_mouse_customerkey_vol_up_need_send:
-01b2 6fe0cb8b fetch 1 ,mem_customer_key 
-01b3 79207e03 set1 3 ,pdata 
-01b4 67e0cb8b store 1 ,mem_customer_key 
-01b5 20600000 rtn 
-
-p_mouse_customerkey_vol_down_release:
-01b6 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
-01b7 793ffe04 set0 4 ,pdata 
-01b8 67e0cb8c store 1 ,mem_customer_data_trigger 
-01b9 6fe0cb8d fetch 1 ,mem_customer_data_trigger_last 
-01ba 2feffe04 isolate1 4 ,pdata 
-01bb 24608000 nrtn true 
-01bc 704c2701 jam 1 ,mem_mouse_media_flag 
-
-p_mouse_customerkey_vol_down_need_send:
-01bd 6fe0cb8b fetch 1 ,mem_customer_key 
-01be 79207e04 set1 4 ,pdata 
-01bf 67e0cb8b store 1 ,mem_customer_key 
+p_mouse_key0_long_pres_0_data_store:
+0133 da404c34 arg mem_customer_key0_long_press_0 ,regb 
+0134 20600000 rtn 
+
+p_mouse_key0_long_pres_1_data_store:
+0135 793f8400 set0 0 ,temp 
+0136 6048cca3 storet 1 ,mem_customer_key_press_status_flag 
+0137 da404c46 arg mem_customer_key0_long_press_1 ,regb 
+0138 20600000 rtn 
+
+p_mouse_key1_release_store:
+0139 6fe0cca7 fetch 1 ,mem_key1_long_press_1_count 
+013a c000011d beq 0 ,p_mouse_customer_key_release 
+013b 793f8401 set0 1 ,temp 
+013c 6048cca3 storet 1 ,mem_customer_key_press_status_flag 
+013d 2020011d branch p_mouse_customer_key_release 
+
+p_mouse_key1_data_store:
+013e 6fe0cb8b fetch 1 ,mem_customer_key 
+013f c2838149 bbit1 7 ,p_mouse_key1_long_pres_data_store 
+0140 6fe0cca4 fetch 1 ,mem_customer_key_mode_status 
+0141 c0008145 beq 1 ,p_mouse_key1_short_press_mode1_data_store 
+0142 c0010147 beq 2 ,p_mouse_key1_short_press_mode2_data_store 
+0143 da404bf5 arg mem_customer_key1_short_press ,regb 
+0144 20600000 rtn 
+
+p_mouse_key1_short_press_mode1_data_store:
+0145 da404c07 arg mem_customer_key1_short_press_mode1 ,regb 
+0146 20600000 rtn 
+
+p_mouse_key1_short_press_mode2_data_store:
+0147 da404c19 arg mem_customer_key1_short_press_mode2 ,regb 
+0148 20600000 rtn 
+
+p_mouse_key1_long_pres_data_store:
+0149 6fe0cca6 fetch 1 ,mem_key1_long_press_flag 
+014a c000814e beq on ,p_mouse_key1_long_press_data_store 
+014b da404c4f arg mem_customer_key1_long_press ,regb 
+014c 704ca601 jam on ,mem_key1_long_press_flag 
+014d 20600000 rtn 
+
+p_mouse_key1_long_press_data_store:
+014e 6fe0cca7 fetch 1 ,mem_key1_long_press_1_count 
+014f 1fe0fe01 increase 1 ,pdata 
+0150 67e0cca7 store 1 ,mem_key1_long_press_1_count 
+0151 c0008158 beq 1 ,p_mouse_key1_long_pres_1_1_data_store 
+0152 c001015a beq 2 ,p_mouse_key1_long_pres_1_2_data_store 
+0153 c001815c beq 3 ,p_mouse_key1_long_pres_1_3_data_store 
+0154 da404c58 arg mem_customer_key1_long_press_1 ,regb 
+0155 704ca700 jam 0 ,mem_key1_long_press_1_count 
+0156 704ca600 jam off ,mem_key1_long_press_flag 
+0157 20600000 rtn 
+
+p_mouse_key1_long_pres_1_1_data_store:
+0158 da404c61 arg mem_customer_key1_long_press_1_1 ,regb 
+0159 20600000 rtn 
+
+p_mouse_key1_long_pres_1_2_data_store:
+015a da404c6a arg mem_customer_key1_long_press_1_2 ,regb 
+015b 20600000 rtn 
+
+p_mouse_key1_long_pres_1_3_data_store:
+015c da404c73 arg mem_customer_key1_long_press_1_3 ,regb 
+015d 20600000 rtn 
+
+p_mouse_key2_data_store:
+015e 6fe0cb8b fetch 1 ,mem_customer_key 
+015f c2838165 bbit1 7 ,p_mouse_key2_long_pres_data_store 
+0160 6fe0cca4 fetch 1 ,mem_customer_key_mode_status 
+0161 c0008167 beq 1 ,p_mouse_key2_short_press_mode1_data_store 
+0162 c0010169 beq 2 ,p_mouse_key2_short_press_mode2_data_store 
+0163 da404bfe arg mem_customer_key2_short_press ,regb 
+0164 20600000 rtn 
+
+p_mouse_key2_long_pres_data_store:
+0165 da404c2b arg mem_customer_key2_long_press ,regb 
+0166 20600000 rtn 
+
+p_mouse_key2_short_press_mode1_data_store:
+0167 da404c10 arg mem_customer_key2_short_press_mode1 ,regb 
+0168 20600000 rtn 
+
+p_mouse_key2_short_press_mode2_data_store:
+0169 da404c22 arg mem_customer_key2_short_press_mode2 ,regb 
+016a 20600000 rtn 
+
+p_mouse_key3_data_store:
+016b da404c7c arg mem_customer_key3_media ,regb 
+016c 20600000 rtn 
+
+p_mouse_key4_data_store:
+016d da404c7c arg mem_customer_key3_media ,regb 
+016e 20600000 rtn 
+
+p_mouse_check_key_gpio:
+016f 6fe0cb8b fetch 1 ,mem_customer_key 
+0170 1fe22200 copy pdata ,rega 
+0171 204001a9 call p_mouse_check_key0_gpio 
+0172 204001c1 call p_mouse_check_key1_gpio 
+0173 204001cc call p_mouse_check_key2_gpio 
+0174 204001d5 call p_mouse_check_key3_gpio 
+0175 204001de call p_mouse_check_key4_gpio 
+0176 1a227e00 copy rega ,pdata 
+0177 67e0cb8b store 1 ,mem_customer_key 
+0178 20600000 rtn 
+
+p_mouse_check_key_connect_gnd:
+0179 1fe3fe00 lshift pdata ,pdata 
+017a 1fe22400 copy pdata ,regb 
+017b 20406059 call gpio_get_bit 
+017c 7920a400 setflag true ,0 ,regb 
+017d 1a417e3f and regb ,0x3f ,pdata 
+017e 6848cb96 fetcht 1 ,mem_mouse_key_temp 
+017f 18420e00 copy temp ,queue 
+0180 c01c0190 beq 0x38 ,p_mouse_key_short_press 
+0181 c000019e beq 0x00 ,p_mouse_key_release 
+0182 c01f8184 beq 0x3f ,p_mouse_key_long_press 
+0183 20600000 rtn 
+
+p_mouse_key_long_press:
+0184 6848cca2 fetcht 1 ,mem_customer_key_press_status 
+0185 f9200400 qset1 temp 
+0186 6048cca2 storet 1 ,mem_customer_key_press_status 
+0187 2a2ffe07 isolate1 7 ,rega 
+0188 2020818a branch p_mouse_key_long_press_next ,true 
+0189 20600000 rtn 
+
+p_mouse_key_long_press_next:
+018a 6848cca3 fetcht 1 ,mem_customer_key_press_status_flag 
+018b a84fffff qisolate1 temp 
+018c 2020c191 branch mouse_key_release ,true 
+018d f9200400 qset1 temp 
+018e 6048cca3 storet 1 ,mem_customer_key_press_status_flag 
+018f 20204193 branch mouse_key_press 
+
+p_mouse_key_short_press:
+0190 2a2ffe07 isolate1 7 ,rega 
+0191 20608000 rtn true 
+0192 18e27e00 copy queue ,pdata 
+0193 243a4193 nbranch mouse_key_press ,blank 
+0194 6fe0cca8 fetch 1 ,mem_key0_short_press_count 
+0195 1fe0fe01 increase 1 ,pdata 
+0196 67e0cca8 store 1 ,mem_key0_short_press_count 
+0197 c001019a beq 2 ,p_mouse_key0_two_clink 
+0198 704ca903 jam 03 ,mem_key0_short_press_timer 
+0199 2020019e branch p_mouse_key_release 
+
+p_mouse_key0_two_clink:
+019a 704caa02 jam 2 ,mem_key0_short_press_flag 
+019b 20204193 branch mouse_key_press 
+
+p_mouse_key0_one_clink_press:
+019c 79202200 set1 0 ,rega 
+019d 20600000 rtn 
+
+p_mouse_key_release:
+019e 6fe0ccaa fetch 1 ,mem_key0_short_press_flag 
+019f c000819c beq 1 ,p_mouse_key0_one_clink_press 
+01a0 6848cca2 fetcht 1 ,mem_customer_key_press_status 
+01a1 f93f8400 qset0 temp 
+01a2 6048cca2 storet 1 ,mem_customer_key_press_status 
+01a3 6848cca3 fetcht 1 ,mem_customer_key_press_status_flag 
+01a4 f93f8400 qset0 temp 
+01a5 6048cca3 storet 1 ,mem_customer_key_press_status_flag 
+01a6 2a2ffe07 isolate1 7 ,rega 
+01a7 20608000 rtn true 
+01a8 20204191 branch mouse_key_release 
+
+p_mouse_check_key0_gpio:
+01a9 704b9600 jam mouse_l_key ,mem_mouse_key_temp 
+01aa 6848cbe7 fetcht 1 ,mem_flippen_key0_gpio 
+01ab 6fe0cc97 fetch 1 ,mem_mouse_customer_key0_press_status 
+01ac 20400179 call p_mouse_check_key_connect_gnd 
+01ad 67e0cc97 store 1 ,mem_mouse_customer_key0_press_status 
+01ae 1a227e00 copy rega ,pdata 
+01af c28001b2 bbit1 mouse_l_key ,p_mouse_customerkey0_press 
+01b0 204001fd call p_mouse_customerkey_release 
+01b1 202001c9 branch p_mouse_customerkey_exit 
+
+p_mouse_customerkey0_press:
+01b2 2a2ffe07 isolate1 7 ,rega 
+01b3 202081b5 branch p_mouse_customer_key0_long_press_check ,true 
+01b4 202001f9 branch p_mouse_customerkey_press 
+
+p_mouse_customer_key0_long_press_check:
+01b5 6fe0cca5 fetch 1 ,mem_key0_long_press_delay 
+01b6 247a0000 nrtn blank 
+01b7 704ca508 jam 0x08 ,mem_key0_long_press_delay 
+01b8 202001f9 branch p_mouse_customerkey_press 
+
+p_mouse_customer_key0_long_press_timer:
+01b9 6fe0cb8b fetch 1 ,mem_customer_key 
+01ba c4038000 rtnbit0 7 
+01bb c4000000 rtnbit0 0 
+01bc 6fe0cca5 fetch 1 ,mem_key0_long_press_delay 
+01bd 207a0000 rtn blank 
+01be 1fe0ffff increase -1 ,pdata 
+01bf 67e0cca5 store 1 ,mem_key0_long_press_delay 
 01c0 20600000 rtn 
+
+p_mouse_check_key1_gpio:
+01c1 704b9601 jam mouse_r_key ,mem_mouse_key_temp 
+01c2 6848cbe8 fetcht 1 ,mem_flippen_key1_gpio 
+01c3 6fe0cc98 fetch 1 ,mem_mouse_customer_key1_press_status 
+01c4 20400179 call p_mouse_check_key_connect_gnd 
+01c5 67e0cc98 store 1 ,mem_mouse_customer_key1_press_status 
+01c6 1a227e00 copy rega ,pdata 
+01c7 c28081f9 bbit1 mouse_r_key ,p_mouse_customerkey_press 
+01c8 204001fd call p_mouse_customerkey_release 
+
+p_mouse_customerkey_exit:
+01c9 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
+01ca 67e0cb8d store 1 ,mem_customer_data_trigger_last 
+01cb 20600000 rtn 
+
+p_mouse_check_key2_gpio:
+01cc 704b9602 jam mouse_m_key ,mem_mouse_key_temp 
+01cd 6848cbe9 fetcht 1 ,mem_flippen_key2_gpio 
+01ce 6fe0cc99 fetch 1 ,mem_mouse_customer_key2_press_status 
+01cf 20400179 call p_mouse_check_key_connect_gnd 
+01d0 67e0cc99 store 1 ,mem_mouse_customer_key2_press_status 
+01d1 1a227e00 copy rega ,pdata 
+01d2 c28101f9 bbit1 mouse_m_key ,p_mouse_customerkey_press 
+01d3 204001fd call p_mouse_customerkey_release 
+01d4 202001c9 branch p_mouse_customerkey_exit 
+
+p_mouse_check_key3_gpio:
+01d5 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
+01d6 6848cbea fetcht 1 ,mem_flippen_key3_gpio 
+01d7 6fe0cc9a fetch 1 ,mem_mouse_customer_key3_press_status 
+01d8 204001e7 call p_mouse_check_media_key_connect_gnd 
+01d9 67e0cc9a store 1 ,mem_mouse_customer_key3_press_status 
+01da 1a227e00 copy rega ,pdata 
+01db c28181f9 bbit1 mouse_bk_key ,p_mouse_customerkey_press 
+01dc 20400205 call p_mouse_customerkey_media_release 
+01dd 202001c9 branch p_mouse_customerkey_exit 
+
+p_mouse_check_key4_gpio:
+01de 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
+01df 6848cbeb fetcht 1 ,mem_flippen_key4_gpio 
+01e0 6fe0cc9b fetch 1 ,mem_mouse_customer_key4_press_status 
+01e1 204001e7 call p_mouse_check_media_key_connect_gnd 
+01e2 67e0cc9b store 1 ,mem_mouse_customer_key4_press_status 
+01e3 1a227e00 copy rega ,pdata 
+01e4 c28201f9 bbit1 mouse_fw_key ,p_mouse_customerkey_press 
+01e5 20400205 call p_mouse_customerkey_media_release 
+01e6 202001c9 branch p_mouse_customerkey_exit 
+
+p_mouse_check_media_key_connect_gnd:
+01e7 1fe3fe00 lshift pdata ,pdata 
+01e8 1fe22400 copy pdata ,regb 
+01e9 20406059 call gpio_get_bit 
+01ea 7920a400 setflag true ,0 ,regb 
+01eb 1a417e07 and regb ,0x07 ,pdata 
+01ec 6848cb96 fetcht 1 ,mem_mouse_key_temp 
+01ed 18420e00 copy temp ,queue 
+01ee c00381f1 beq 0x07 ,p_mouse_media_key_press 
+01ef c00001f5 beq 0x00 ,p_mouse_media_key_release 
+01f0 20600000 rtn 
+
+p_mouse_media_key_press:
+01f1 6848cca2 fetcht 1 ,mem_customer_key_press_status 
+01f2 f9200400 qset1 temp 
+01f3 6048cca2 storet 1 ,mem_customer_key_press_status 
+01f4 20204193 branch mouse_key_press 
+
+p_mouse_media_key_release:
+01f5 6848cca2 fetcht 1 ,mem_customer_key_press_status 
+01f6 f93f8400 qset0 temp 
+01f7 6048cca2 storet 1 ,mem_customer_key_press_status 
+01f8 20204191 branch mouse_key_release 
+
+p_mouse_customerkey_press:
+01f9 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
+01fa f9207e00 qset1 pdata 
+01fb 67e0cb8c store 1 ,mem_customer_data_trigger 
+01fc 202001c9 branch p_mouse_customerkey_exit 
+
+p_mouse_customerkey_release:
+01fd 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
+01fe f93ffe00 qset0 pdata 
+01ff 67e0cb8c store 1 ,mem_customer_data_trigger 
+0200 6fe0cb8d fetch 1 ,mem_customer_data_trigger_last 
+0201 afefffff qisolate1 pdata 
+0202 24608000 nrtn true 
+0203 704c9c00 jam 0 ,mem_mouse_media_flag 
+0204 20204193 branch mouse_key_press 
+
+p_mouse_customerkey_media_release:
+0205 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
+0206 f93ffe00 qset0 pdata 
+0207 67e0cb8c store 1 ,mem_customer_data_trigger 
+0208 6fe0cb8d fetch 1 ,mem_customer_data_trigger_last 
+0209 afefffff qisolate1 pdata 
+020a 24608000 nrtn true 
+020b 704c9c01 jam 1 ,mem_mouse_media_flag 
+020c 20204193 branch mouse_key_press 
               org 0x800
 
 start:
@@ -19911,6 +20039,8 @@
 411c 20404136 call mouse_check_bkkey_gpio 
 411d 2040414f call mouse_check_fwkey_gpio 
 411e 2040416a call mouse_check_customerkey_gpio 
+
+mouse_check_key_gpio_output:
 411f 1a227e00 copy rega ,pdata 
 4120 20600000 rtn 
 
Index: program/app_mouse.prog
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/program/app_mouse.prog	(revision 524)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/program/app_mouse.prog	(working copy)
@@ -1863,6 +1863,7 @@
 	call mouse_check_bkkey_gpio
 	call mouse_check_fwkey_gpio
 	call mouse_check_customerkey_gpio
+mouse_check_key_gpio_output:
 	copy rega,pdata
 	rtn
 
Index: program/patch.prog
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/program/patch.prog	(revision 524)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/program/patch.prog	(working copy)
@@ -9,7 +9,6 @@
 	beq patch19_1,p_mouse_setgpio_hibernate
 	beq patch19_2,p_mouse_lpm_before_common
 	beq patch19_6,p_mouse_motion
-	beq patch1a_0,p_mouse_seting_dpi
 	beq patch1a_1,p_mouse_check_key_gpio
 	beq patch1a_3,p_mouse_init_sunt
 	beq patch1a_4,p_mouse_sensor_poweron
@@ -42,35 +41,38 @@
 p_app_init:
 p_mouse_init:
 	call enable_authrom
-	//call p_mouse_wheel_set_wakeup
-	call mouse_setting_config
-	call mouse_init_sunt
+	call p_mouse_setting_config
 	rtn wake
-	call mouse_dpi_config
 	call mouse_usb_check_enable
-	call mouse_drawing_optima_init
 	call p_mouse_cb_fuction
-	call mouse_sensor_powerdown
-	fetch 1,mem_usb_addr
-	rtnbit1 7
-	branch mouse_init_wireless
-
+	branch mouse_init+8
+p_mouse_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call p_mouse_gpio_init
+	branch mouse_setting_config+4
+	
+p_mouse_gpio_init:
+	fetcht 1,mem_eeprom_wp_gpio
+	call gpio_config_output
+	call usb_offline_check_init
+	fetcht 1,mem_flippen_key0_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_flippen_key1_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_flippen_key2_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_flippen_key3_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_flippen_key4_gpio
+	branch mouse_gpio_config_input_pu
+	 
 p_mouse_cb_fuction:
 	setarg p_mouse_24g_package_data
 	store 2,mem_cb_24g_transmit_data
 	branch mouse_cb_fuction+2
 
-//p_mouse_wheel_set_wakeup:
-//	fetch 1,mem_sensor_shutdown_flag
-//	rtn blank
-//	fetch 1,mem_whee_a_data_gpio
-//	arg gpcfg_pullup,temp
-// 	call gpio_config_function_int
-//	fetch 1,mem_whee_b_data_gpio
-//	arg gpcfg_pullup,temp
-// 	branch gpio_config_function_int
-
-
 p_mouse_start_work:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING, mouse_24g_first_start_auto_pair_mode
@@ -156,37 +158,15 @@
 	branch mouse_setgpio_hibernate+3
 	
 p_mouse_lpm_before_common:
-//	fetcht 1,mem_whee_a_data_gpio		//reinit gpio pu after disable wheel wakeup
-//	call gpio_config_input
-//	fetcht 1,mem_whee_b_data_gpio
-//	call gpio_config_input
-	
-	call mouse_wheel_check
-	fetch 1,mem_mouse_sensor_sclk_gpio	// set sclk high
-	arg gpcfg_output_high,temp
- 	call gpio_config_function_int
-
- //	fetch 1,mem_gpio_wakeup_low+2		//clear ice wakeup
-//	set0 3,pdata
-//	store 1,mem_gpio_wakeup_low+2
-
-//	fetcht 1,mem_mouse_sensor_sdio_gpio	//clear sdio wakeup
-//	call gpio_clr_wake
-
-	call twspi_disable
-	
-	fetcht 1,mem_lbutton_gpio
-	call gpio_set_wake
-	fetcht 1,mem_rbutton_gpio
+	fetcht 1,mem_flippen_key0_gpio
 	call gpio_set_wake
-	fetcht 1,mem_mbutton_gpio
+	fetcht 1,mem_flippen_key1_gpio
 	call gpio_set_wake
-
-	fetcht 1,mem_bk_button_gpio
+	fetcht 1,mem_flippen_key2_gpio
 	call gpio_set_wake
-	fetcht 1,mem_fw_button_gpio
+	fetcht 1,mem_flippen_key3_gpio
 	call gpio_set_wake
-	fetcht 1,mem_dpi_button_gpio
+	fetcht 1,mem_flippen_key4_gpio
 	branch gpio_set_wake
 
 p_mouse_priority_bb_event:
@@ -214,42 +194,13 @@
 
 p_mouse_motion:
 	disable user
-	setarg 0
-	store 6,mem_mouse_x
-	call mouse_check_sensor_data
-	call mouse_dpi_config
-	call mouse_zwheel
-	call mouse_t_zwheel
 	call mouse_key
 	fetch 1,mem_mouse_key
 	and_into 0x1f,pdata
 	store 1,mem_mouse_key
-	nbranch mouse_drawing_optima_init,user
-	call mouse_drawing_optima
+	nrtn user
 	branch mouse_no_data_timer_init
 
-///////////////////dpi led adjust////////////////////////////////////////////////////////////////////
-p_mouse_seting_dpi:
-	call mouse_setting_dpi_4_level
-	call p_mouse_dpi_led_blink_delay
-	branch mouse_seting_sensor_type
-
-p_mouse_dpi_led_blink_delay:
-	fetch 1,mem_dpi_led_gpio
-	rtneq GPIO_DISABLE
-	fetch 2,mem_mouse_discovery_timer
-	nrtn blank
-	fetch 2,mem_24g_pair_timeout
-	nrtn blank
-	fetch 2,mem_24g_reconn_timeout
-	nrtn blank
-	fetch 1,mem_mouse_device_poweron_timer_count
-	nrtn blank
-	fetch 1,mem_mouse_dpi_led_delay_count_init
-	branch p_mouse_dpi_led_blink_init,blank
-	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
-	rtn
-
 p_mouse_bb_event_timer:
 	call mouse_adc_read
 	call mouse_low_voltage_led_timer
@@ -259,43 +210,88 @@
 	call mouse_24g_long_sleep_param_update_timer
 	//led
 	call mouse_device_poweron_timer
-	call p_mouse_dpi_led_blink_delay_timer
+	call p_mouse_long_key_press_timer
+	call p_mouse_key_mode_check_timer
+	call p_mouse_customer_key0_long_press_timer
+	call p_mouse_two_clink_check_timer
+	call p_mouse_led_blink
 	branch mouse_bb_event_timer+8
-		
-p_mouse_dpi_led_blink_delay_timer:
-	arg mem_mouse_dpi_led_delay_count,regc
-	arg p_mouse_dpi_led_blink_init,regb
-	branch timer_single_step	
-	
-p_mouse_dpi_led_blink_init:	//result:    level3: 2  3  1     level4: 3  4  1  2
-	fetch 1,mem_config_sensor_type
-	beq P3212,mouse_dpi_led_blink_init		//result:    level3: 1  2  3     level4: 2  3  4  1
-	beq KA8G2,mouse_dpi_led_blink_init	//result:    level3: 1  2  3     level4: 2  3  4  1
-	fetch 1,mem_dpi_led_gpio
-	store 1,mem_mouse_struct_led_gpio
-	fetch 2,mem_mouse_dpi_led_blink_time
-	store 2,mem_mouse_on_time
-	store 2,mem_mouse_off_time
-	arg 0,rega
-	fetcht 1,mem_mouse_dpi
-	increase 2,temp	// 2 3 4 (5)
-	sub temp,3,null
-	call p_mouse_dpi_led_blink_init_level_4,positive
-	ncall p_mouse_dpi_led_blink_count_clean,positive
-	branch mouse_dpi_led_blink_init_end
-
-p_mouse_dpi_led_blink_init_level_4:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_DPI_LEVEL_4
-	increase 1,temp  	// 2-->3   3-->4
+p_mouse_led_blink:
+	fetch 1,mem_customer_key_press_status
+	nbranch p_mouse_led_on,blank
+	branch p_mouse_led_off
+p_mouse_led_on:
+	fetch 1,mem_mouse_led_state
+	jam ON,mem_mouse_led_state
+	rtneq ON
+	fetcht 1,mem_mouse_led_gpio
+	call gpio_config_output
+	fetcht 1,mem_mouse_led_gpio
+	branch gpio_out_inactive
+p_mouse_led_off:
+	fetch 1,mem_mouse_led_state
+	jam OFF,mem_mouse_led_state
+	rtneq OFF
+	fetcht 1,mem_mouse_led_gpio
+	call gpio_config_output
+	fetcht 1,mem_mouse_led_gpio
+	branch gpio_out_active
+	
+	
+/////////////////////////////////////////////////////////////////////////////////////////////////
+p_mouse_long_key_press_timer:
+	fetch 1,mem_customer_key_press_status
+	and pdata,0x07,pdata
+	branch p_mouse_long_key_press_init,blank
+	rtneq MOUSE_LM_BUTTON
+	rtneq MOUSE_RM_BUTTON
+	rtneq MOUSE_LR_BUTTON
+	rtneq MOUSE_LMR_BUTTON
+	arg mem_long_key_press_timeout,regc
+	arg p_mouse_long_key_press_timeout,regb
+	branch timer_single_step
+p_mouse_long_key_press_timeout:
+	fetch 1,mem_customer_key
+	set1 7,pdata
+	branch p_mouse_long_key_press_init_next
+p_mouse_long_key_press_init:
+	fetch 1,mem_long_key_press_timeout_init
+	store 1,mem_long_key_press_timeout
+	fetch 1,mem_customer_key
+	set0 7,pdata
+p_mouse_long_key_press_init_next:
+	store 1,mem_customer_key
+	rtn
+p_mouse_key_mode_check_timer:
+	fetch 1,mem_customer_key_press_status
+	bne MOUSE_RM_BUTTON,p_mouse_key_mode_check_timer_init
+	arg mem_long_key_press_mode_check_timeout,regc
+	arg p_mouse_key_mode_check_timeout,regb
+	branch timer_single_step
+p_mouse_key_mode_check_timeout:
+	fetch 1,mem_customer_key_mode_status
+	increase 1,pdata
+	bne 3,p_mouse_key_mode_check_timeout+4
+	setarg 0
+	store 1,mem_customer_key_mode_status
 	rtn
-
-p_mouse_dpi_led_blink_count_clean:
-	increase -3,temp		// 4-->1  5-->2
+p_mouse_key_mode_check_timer_init:
+	fetch 1,mem_long_key_press_mode_check_timeout_init
+	store 1,mem_long_key_press_mode_check_timeout
+	rtn
+p_mouse_two_clink_check_timer:
+	fetch 1,mem_key0_short_press_count
+	rtn blank
+	arg mem_key0_short_press_timer,regc
+	arg p_mouse_two_clink_check_timeout,regb
+	branch timer_single_step
+p_mouse_two_clink_check_timeout:
+	fetch 1,mem_key0_short_press_count
+	jam 0,mem_key0_short_press_count
+	rtnne 1
+p_mouse_one_clink:
+	jam 1,mem_key0_short_press_flag
 	rtn
-/////////////////////////////////////////////////////////////////////////////////////////////////
-
-
 ///////////////////////////////////start////////////////////////////////////
 p_mouse_init_sunt:
 	rtn
@@ -376,255 +372,329 @@
 	
 	fetch 1,mem_mouse_media_flag
 	nbranch p_mouse_24g_media_key_release,blank
+	fetcht 1,mem_customer_key_press_status_flag
+	isolate1 0,temp
+	branch p_mouse_key0_long_pres_1_data_store,true
+	isolate1 1,temp
+	branch p_mouse_key1_release_store,true
+p_mouse_customer_key_release:
 	arg mem_customer_key_release,regb	//tx buff
 	rtn
 
 p_mouse_customer_key_press_judge:
 	fetch 1,mem_customer_key
-	bbit1 0,p_mouse_pageup_data_store
-	bbit1 1,p_mouse_pagedown_data_store
-	bbit1 2,p_mouse_tab_data_store
-	bbit1 3,p_mouse_vol_up_data_store
-	bbit1 4,p_mouse_vol_down_data_store
+	bbit1 0,p_mouse_key0_data_store
+	bbit1 1,p_mouse_key1_data_store
+	bbit1 2,p_mouse_key2_data_store
+	bbit1 3,p_mouse_key3_data_store
+	bbit1 4,p_mouse_key4_data_store
 	rtn
 
 p_mouse_24g_media_key_release:
 	arg mem_customer_media_key_release,regb	//tx buff
 	rtn
 	
-p_mouse_pageup_data_store:
-	arg mem_customer_key_pageup,regb
+p_mouse_key0_data_store:
+	fetch 1,mem_customer_key
+	bbit1 7,p_mouse_key0_long_pres_0_data_store
+	fetch 1,mem_key0_short_press_flag
+	jam 0,mem_key0_short_press_flag
+	beq 2,p_mouse_key0_two_clink_data_store
+	beq 1,p_mouse_key0_short_data_store
 	rtn
-p_mouse_pagedown_data_store:
-	arg mem_customer_key_pagedown,regb
+p_mouse_key0_short_data_store:
+	arg mem_customer_key0_short_press,regb
 	rtn
-p_mouse_tab_data_store:
-	arg mem_customer_key_tab,regb
+p_mouse_key0_two_clink_data_store: 
+	arg mem_customer_key0_two_clink_press,regb
 	rtn
-p_mouse_vol_up_data_store:
-	arg mem_customer_key_vol_up,regb
+p_mouse_key0_long_pres_0_data_store:
+	arg mem_customer_key0_long_press_0,regb
 	rtn
-p_mouse_vol_down_data_store:
-	arg mem_customer_key_vol_down,regb
+p_mouse_key0_long_pres_1_data_store:
+	set0 0,temp
+	storet 1,mem_customer_key_press_status_flag
+	arg mem_customer_key0_long_press_1,regb
+	rtn
+
+p_mouse_key1_release_store:
+	fetch 1,mem_key1_long_press_1_count
+	beq 0,p_mouse_customer_key_release
+	set0 1,temp
+	storet 1,mem_customer_key_press_status_flag
+	branch p_mouse_customer_key_release
+	
+	
+p_mouse_key1_data_store:
+	fetch 1,mem_customer_key
+	bbit1 7,p_mouse_key1_long_pres_data_store
+	fetch 1,mem_customer_key_mode_status
+	beq 1,p_mouse_key1_short_press_mode1_data_store
+	beq 2,p_mouse_key1_short_press_mode2_data_store
+	arg mem_customer_key1_short_press,regb
+	rtn
+p_mouse_key1_short_press_mode1_data_store:
+	arg mem_customer_key1_short_press_mode1,regb
+	rtn
+p_mouse_key1_short_press_mode2_data_store:
+	arg mem_customer_key1_short_press_mode2,regb
+	rtn
+
+p_mouse_key1_long_pres_data_store:
+	fetch 1,mem_key1_long_press_flag
+	beq ON,p_mouse_key1_long_press_data_store
+	arg mem_customer_key1_long_press,regb
+	jam ON,mem_key1_long_press_flag
+	rtn
+
+p_mouse_key1_long_press_data_store:
+	fetch 1,mem_key1_long_press_1_count
+	increase 1,pdata
+	store 1,mem_key1_long_press_1_count
+	beq 1,p_mouse_key1_long_pres_1_1_data_store
+	beq 2,p_mouse_key1_long_pres_1_2_data_store
+	beq 3, p_mouse_key1_long_pres_1_3_data_store
+	arg mem_customer_key1_long_press_1,regb
+	jam 0,mem_key1_long_press_1_count
+	jam OFF,mem_key1_long_press_flag
+	rtn
+p_mouse_key1_long_pres_1_1_data_store:
+	arg mem_customer_key1_long_press_1_1,regb
+	rtn
+p_mouse_key1_long_pres_1_2_data_store:
+	arg mem_customer_key1_long_press_1_2,regb
+	rtn
+p_mouse_key1_long_pres_1_3_data_store:
+	arg mem_customer_key1_long_press_1_3,regb
+	rtn
+	
+p_mouse_key2_data_store:
+	fetch 1,mem_customer_key
+	bbit1 7,p_mouse_key2_long_pres_data_store
+	fetch 1,mem_customer_key_mode_status
+	beq 1,p_mouse_key2_short_press_mode1_data_store
+	beq 2,p_mouse_key2_short_press_mode2_data_store
+	arg mem_customer_key2_short_press,regb
+	rtn
+
+p_mouse_key2_long_pres_data_store:
+	arg mem_customer_key2_long_press,regb
+	rtn
+
+p_mouse_key2_short_press_mode1_data_store:
+	arg mem_customer_key2_short_press_mode1,regb
+	rtn
+
+p_mouse_key2_short_press_mode2_data_store:
+	arg mem_customer_key2_short_press_mode2,regb
+	rtn
+
+p_mouse_key3_data_store:
+	arg mem_customer_key3_media,regb
+	rtn
+
+p_mouse_key4_data_store:
+	arg mem_customer_key3_media,regb
 	rtn
 
 p_mouse_check_key_gpio:
-	fetch 1,mem_sensor_shutdown_flag
-	ncall mouse_check_key_gpio_once,blank
-	arg 0,rega
-	call p_mouse_check_pageup_gpio	
-	call p_mouse_check_pagedown_gpio
-	call p_mouse_check_tab_gpio
-	call p_mouse_check_vol_up_gpio
-	call p_mouse_check_vol_down_gpio
+	fetch 1,mem_customer_key
+	copy pdata,rega
+	call p_mouse_check_key0_gpio
+	call p_mouse_check_key1_gpio	
+	call p_mouse_check_key2_gpio
+	call p_mouse_check_key3_gpio
+	call p_mouse_check_key4_gpio
 	copy rega,pdata
+	store 1,mem_customer_key
 	rtn
 
+p_mouse_check_key_connect_gnd:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x3f,pdata
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue
+	beq 0x38,p_mouse_key_short_press
+	beq 0x00,p_mouse_key_release
+	beq 0x3f,p_mouse_key_long_press
+	rtn
+
+p_mouse_key_long_press:
+	fetcht 1,mem_customer_key_press_status
+	qset1 temp
+	storet 1,mem_customer_key_press_status
+	isolate1 7,rega
+	branch p_mouse_key_long_press_next,true
+	rtn
+
+p_mouse_key_long_press_next:
+	fetcht 1,mem_customer_key_press_status_flag
+	qisolate1 temp
+	branch mouse_key_release,true
+	qset1 temp
+	storet 1,mem_customer_key_press_status_flag
+	branch mouse_key_press
+
+p_mouse_key_short_press:
+	isolate1 7,rega
+	rtn true
+	copy queue,pdata
+	nbranch mouse_key_press,blank
+	fetch 1,mem_key0_short_press_count
+	increase 1,pdata
+	store 1,mem_key0_short_press_count
+	beq 2,p_mouse_key0_two_clink
+	jam 03,mem_key0_short_press_timer
+	branch p_mouse_key_release
+p_mouse_key0_two_clink:
+	jam 2,mem_key0_short_press_flag
+	branch mouse_key_press
+
+p_mouse_key0_one_clink_press:
+	set1 0,rega
+	rtn
+p_mouse_key_release:
+	fetch 1,mem_key0_short_press_flag
+	beq 1,p_mouse_key0_one_clink_press
+	fetcht 1,mem_customer_key_press_status 
+	qset0 temp
+	storet 1,mem_customer_key_press_status
+	fetcht 1,mem_customer_key_press_status_flag
+	qset0 temp
+	storet 1,mem_customer_key_press_status_flag
+	isolate1 7,rega
+	rtn true
+	branch mouse_key_release
 
-p_mouse_check_pageup_gpio:
+p_mouse_check_key0_gpio:
+	jam MOUSE_L_KEY,mem_mouse_key_temp
+	fetcht 1,mem_flippen_key0_gpio
+	fetch 1,mem_mouse_customer_key0_press_status
+	call p_mouse_check_key_connect_gnd
+	store 1,mem_mouse_customer_key0_press_status
+	copy rega,pdata
+	bbit1 MOUSE_L_KEY,p_mouse_customerkey0_press
+	call p_mouse_customerkey_release
+	branch p_mouse_customerkey_exit
+
+p_mouse_customerkey0_press:
+	isolate1 7,rega
+	branch p_mouse_customer_key0_long_press_check,true
+	branch p_mouse_customerkey_press
+p_mouse_customer_key0_long_press_check:
+	fetch 1,mem_key0_long_press_delay
+	nrtn blank
+	jam 0x08,mem_key0_long_press_delay
+	branch p_mouse_customerkey_press
+	
+p_mouse_customer_key0_long_press_timer:
 	fetch 1,mem_customer_key
-	set0 0,pdata
-	store 1,mem_customer_key
+	rtnbit0 7
+	rtnbit0 0
+	fetch 1, mem_key0_long_press_delay
+	rtn blank
+	increase -1,pdata
+	store 1,mem_key0_long_press_delay
+	rtn
 	
-	fetcht 1,mem_flippen_pageup_gpio
-	call gpio_config_input
-	jam MOUSE_L_KEY,mem_mouse_key_temp
-	fetcht 1,mem_flippen_pageup_gpio
+p_mouse_check_key1_gpio:
+	jam MOUSE_R_KEY,mem_mouse_key_temp
+	fetcht 1,mem_flippen_key1_gpio
 	fetch 1,mem_mouse_customer_key1_press_status
-	call mouse_check_key_connect_gnd
+	call p_mouse_check_key_connect_gnd
 	store 1,mem_mouse_customer_key1_press_status
 	copy rega,pdata
-	bbit1 MOUSE_L_KEY,p_mouse_customerkey_pageup_press
-	call p_mouse_customerkey_pageup_release
+	bbit1 MOUSE_R_KEY,p_mouse_customerkey_press
+	call p_mouse_customerkey_release
 p_mouse_customerkey_exit:
 	fetch 1,mem_customer_data_trigger
 	store 1,mem_customer_data_trigger_last
 	rtn
 
-p_mouse_check_pagedown_gpio:
-	fetch 1,mem_customer_key
-	set0 1,pdata
-	store 1,mem_customer_key
-	
-	fetcht 1,mem_flippen_pagedown_gpio
-	call gpio_config_input
-	jam MOUSE_R_KEY,mem_mouse_key_temp
-	fetcht 1,mem_flippen_pagedown_gpio
+p_mouse_check_key2_gpio:
+	jam MOUSE_M_KEY,mem_mouse_key_temp
+	fetcht 1,mem_flippen_key2_gpio
 	fetch 1,mem_mouse_customer_key2_press_status
-	call mouse_check_key_connect_gnd
+	call p_mouse_check_key_connect_gnd
 	store 1,mem_mouse_customer_key2_press_status
 	copy rega,pdata
-	bbit1 MOUSE_R_KEY,p_mouse_customerkey_pagedown_press
-	call p_mouse_customerkey_pagedown_release
+	bbit1 MOUSE_M_KEY,p_mouse_customerkey_press
+	call p_mouse_customerkey_release
 	branch p_mouse_customerkey_exit
 
-p_mouse_check_tab_gpio:
-	fetch 1,mem_customer_key
-	set0 2,pdata
-	store 1,mem_customer_key
-	
-	fetcht 1,mem_flippen_tab_gpio
-	call gpio_config_input
-	jam MOUSE_M_KEY,mem_mouse_key_temp
-	fetcht 1,mem_flippen_tab_gpio
+p_mouse_check_key3_gpio:
+	jam MOUSE_BK_KEY,mem_mouse_key_temp
+	fetcht 1,mem_flippen_key3_gpio
 	fetch 1,mem_mouse_customer_key3_press_status
-	call mouse_check_key_connect_gnd
+	call p_mouse_check_media_key_connect_gnd
 	store 1,mem_mouse_customer_key3_press_status
 	copy rega,pdata
-	bbit1 MOUSE_M_KEY,p_mouse_customerkey_tab_press
-	call p_mouse_customerkey_tab_release
+	bbit1 MOUSE_BK_KEY,p_mouse_customerkey_press
+	call p_mouse_customerkey_media_release
 	branch p_mouse_customerkey_exit
-
-p_mouse_check_vol_up_gpio:
-	fetch 1,mem_customer_key
-	set0 3,pdata
-	store 1,mem_customer_key
 	
-	fetcht 1,mem_flippen_vol_up_gpio
-	call gpio_config_input
-	jam MOUSE_BK_KEY,mem_mouse_key_temp
-	fetcht 1,mem_flippen_vol_up_gpio
+p_mouse_check_key4_gpio:
+	jam MOUSE_FW_KEY,mem_mouse_key_temp
+	fetcht 1,mem_flippen_key4_gpio
 	fetch 1,mem_mouse_customer_key4_press_status
-	call mouse_check_key_connect_gnd
+	call p_mouse_check_media_key_connect_gnd
 	store 1,mem_mouse_customer_key4_press_status
 	copy rega,pdata
-	bbit1 MOUSE_BK_KEY,p_mouse_customerkey_vol_up_press
-	call p_mouse_customerkey_vol_up_release
-	branch p_mouse_customerkey_exit
-	
-p_mouse_check_vol_down_gpio:
-	fetch 1,mem_customer_key
-	set0 4,pdata
-	store 1,mem_customer_key
-	
-	fetcht 1,mem_flippen_vol_down_gpio
-	call gpio_config_input
-	jam MOUSE_FW_KEY,mem_mouse_key_temp
-	fetcht 1,mem_flippen_vol_down_gpio
-	fetch 1,mem_mouse_customer_key5_press_status
-	call mouse_check_key_connect_gnd
-	store 1,mem_mouse_customer_key5_press_status
-	copy rega,pdata
-	bbit1 MOUSE_FW_KEY,p_mouse_customerkey_vol_down_press
-	call p_mouse_customerkey_vol_down_release
-	branch p_mouse_customerkey_exit
-
-p_mouse_customerkey_pageup_press:		
-	fetch 1,mem_customer_data_trigger
-	set1 0,pdata
-	store 1,mem_customer_data_trigger
-	call p_mouse_customerkey_pageup_need_send
-	branch p_mouse_customerkey_exit
-	
-p_mouse_customerkey_pagedown_press:	
-	fetch 1,mem_customer_data_trigger
-	set1 1,pdata
-	store 1,mem_customer_data_trigger
-	call p_mouse_customerkey_pagedown_need_send
-	branch p_mouse_customerkey_exit
-	
-p_mouse_customerkey_tab_press:	
-	fetch 1,mem_customer_data_trigger
-	set1 2,pdata
-	store 1,mem_customer_data_trigger
-	call p_mouse_customerkey_tab_need_send
-	branch p_mouse_customerkey_exit
-
-p_mouse_customerkey_vol_up_press:
-	fetch 1,mem_customer_key
-	set1 3,pdata
-	store 1,mem_customer_key
-	
-	fetch 1,mem_customer_data_trigger
-	set1 3,pdata
-	store 1,mem_customer_data_trigger
-	call p_mouse_customerkey_vol_up_need_send
+	bbit1 MOUSE_FW_KEY,p_mouse_customerkey_press
+	call p_mouse_customerkey_media_release
 	branch p_mouse_customerkey_exit
 
-p_mouse_customerkey_vol_down_press:
-	fetch 1,mem_customer_key
-	set1 4,pdata
-	store 1,mem_customer_key
+p_mouse_check_media_key_connect_gnd:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue
+	beq 0x07,p_mouse_media_key_press		//  about 17~22ms three times
+	beq 0x00,p_mouse_media_key_release
+	rtn
+p_mouse_media_key_press:
+	fetcht 1,mem_customer_key_press_status
+	qset1 temp
+	storet 1,mem_customer_key_press_status
+	branch mouse_key_press
+p_mouse_media_key_release:
+	fetcht 1,mem_customer_key_press_status
+	qset0 temp
+	storet 1,mem_customer_key_press_status
+	branch mouse_key_release
 	
+p_mouse_customerkey_press:		
 	fetch 1,mem_customer_data_trigger
-	set1 4,pdata
+	qset1 pdata
 	store 1,mem_customer_data_trigger
-	call p_mouse_customerkey_vol_down_need_send
 	branch p_mouse_customerkey_exit
 	
-p_mouse_customerkey_pageup_release:
-	fetch 1,mem_customer_data_trigger
-	set0 0,pdata
-	store 1,mem_customer_data_trigger
-
-	fetch 1,mem_customer_data_trigger_last
-	isolate1 0,pdata
-	nrtn true
-	jam 0,mem_mouse_media_flag
-p_mouse_customerkey_pageup_need_send:	
-	fetch 1,mem_customer_key
-	set1 0,pdata
-	store 1,mem_customer_key
-	rtn
-
-p_mouse_customerkey_pagedown_release:
+p_mouse_customerkey_release:
 	fetch 1,mem_customer_data_trigger
-	set0 1,pdata
+	qset0 pdata
 	store 1,mem_customer_data_trigger
 
 	fetch 1,mem_customer_data_trigger_last
-	isolate1 1,pdata
+	qisolate1 pdata
 	nrtn true
 	jam 0,mem_mouse_media_flag
-p_mouse_customerkey_pagedown_need_send:	
-	fetch 1,mem_customer_key
-	set1 1,pdata
-	store 1,mem_customer_key
-	rtn
-
-p_mouse_customerkey_tab_release:
-	fetch 1,mem_customer_data_trigger
-	set0 2,pdata
-	store 1,mem_customer_data_trigger
-
-	fetch 1,mem_customer_data_trigger_last
-	isolate1 2,pdata
-	nrtn true
-	jam 0,mem_mouse_media_flag
-p_mouse_customerkey_tab_need_send:	
-	fetch 1,mem_customer_key
-	set1 2,pdata
-	store 1,mem_customer_key
-	rtn
+	branch mouse_key_press 
 	
-p_mouse_customerkey_vol_up_release:
+p_mouse_customerkey_media_release:
 	fetch 1,mem_customer_data_trigger
-	set0 3,pdata
+	qset0 pdata
 	store 1,mem_customer_data_trigger
 	
 	fetch 1,mem_customer_data_trigger_last
-	isolate1 3,pdata
+	qisolate1 pdata
 	nrtn true
 	jam 1,mem_mouse_media_flag
-p_mouse_customerkey_vol_up_need_send:	
-	fetch 1,mem_customer_key
-	set1 3,pdata
-	store 1,mem_customer_key
-	rtn
-	
-p_mouse_customerkey_vol_down_release:
-	fetch 1,mem_customer_data_trigger
-	set0 4,pdata
-	store 1,mem_customer_data_trigger
-
-	fetch 1,mem_customer_data_trigger_last
-	isolate1 4,pdata
-	nrtn true
-	jam 1,mem_mouse_media_flag
-p_mouse_customerkey_vol_down_need_send:	
-	fetch 1,mem_customer_key
-	set1 4,pdata
-	store 1,mem_customer_key
-	rtn
+	branch mouse_key_press
 
 
Index: sched/mouse.dat
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/sched/mouse.dat	(revision 524)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/Only2.4G/FliePen_Project/FlipPen_Only2.4G/sched/mouse.dat	(working copy)
@@ -13,6 +13,7 @@
 mem_gain_second_agc_en:00
 
 
+mem_mouse_flag:
 #mouse flag byte1
 #bit0 MOUSE_SELECT_DEVICE_FLAG
 #bit1 MOUSE_24G_PAIRING_FLAG
@@ -21,7 +22,7 @@
 #bit4 MOUSE_LOW_VOLTAGE_FLAG
 #bit5 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
 #bit6 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
-
+04
 
 #mouse flag byte2
 #bit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE
@@ -30,6 +31,7 @@
 #bit3 MOUSE_ENABLE_WAKEUP_FROM_POWER
 #bit4 MOUSE_ENABLE_16M
 #bit5 MOUSE_ENABLE_USB
+08
 
 #mouse flag byte3
 #bit0 MOUSE_ENABLE_SPI2
@@ -39,6 +41,7 @@
 #bit4 MOUSE_ENABLE_ADC
 #bit5 MOUSE_ENABLE_KEYBOARD
 #bit6 MOUSE_ENABLE_24G_SEARCH_DONGLE
+2a
 
 #mouse flag byte4
 #bit0 MOUSE_ENABLE_24G_250Hz
@@ -49,6 +52,7 @@
 #bit5 MOUSE_ENABLE_USB_250
 #bit6 MOUSE_ENABLE_USB_500
 #bit7 MOUSE_ENABLE_USB_1000
+00
 
 #mouse flag byte5
 #bit0 MOUSE_ENABLE_POWER_ON_LED
@@ -59,6 +63,7 @@
 #bit5 MOUSE_ENABLE_DPI_FOR_4_LED
 #bit6 MOUSE_ENABLE_BT2_FOR_4_LED
 #bit7 MOUSE_ENABLE_LOW_V_FOR_4_LED
+00
 
 #mouse flag byte6 
 #bit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
@@ -69,6 +74,7 @@
 #bit5 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
 #bit6 MOUSE_ENABLE_DPI_KEY_CONNECT_ADC
 #bit7 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+00
 
 #mouse flag byte7
 #bit0 MOUSE_ENABLE_AUTO_24G_PARING
@@ -79,38 +85,22 @@
 #bit5 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
 #bit6 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
 #bit7 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
-
+ 03
+ 
 #mouse flag byte8
 #bit0 MOUSE_ENABLE_SMOOTHER
 #bit1 MOUSE_ENABLE_XY_OFFSET
-
-
-
-mem_mouse_flag:
-04
-
-#clk selsect/usb  1byte
-08    #24M
-
-#2.4g+ee/flash+adc+customize key select  1byte
-2a	#2.4g+eeprom
-
-#sensor select  1byte
-00 #3level dpi+(2.4g:125+bt/ble:115)Hz
-
-#led select  1byte
-00 #poweron
-
-#mode switch+pair/discovery  2byte 
-00 03 #dip(matrix)+2.4 first
-
-#updata 1byte
 03
 
 mem_mouse_discovery_timeout:b0 04	#2min
 mem_mouse_24g_pair_timeout_init:58 02  #1min	    24g reconn timer&pair timer
 mem_mouse_direct_timeout:64  #05s
 mem_mouse_24g_reconn_timeout_init:64 #10s
+mem_long_key_press_timeout_init:14
+mem_long_key_press_mode_check_timeout_init:14
+mem_key0_long_press_delay:08
+mem_key0_short_press_timer:0a
+mem_mouse_led_gpio:05
 
 mem_mouse_24g_pair_tx_power:94 #-20dBm
 mem_rssi_dis_min_24g_init:85
@@ -126,8 +116,8 @@
 mem_sensor_motion_gpio:ff
 mem_customer_key_gpio:ff
 mem_whee_a_data_gpio:ff
-mem_whee_b_data_gpio:f
-mem_config_device_24g_led_gpio:ff#03
+mem_whee_b_data_gpio:ff
+mem_config_device_24g_led_gpio:ff
 mem_config_device_bt1_led_gpio:ff
 mem_select_sensor_angle_gpio:ff
 
@@ -154,11 +144,11 @@
 mem_mouse_logo_led_gpio:ff
 
 
-mem_flippen_pageup_gpio:0d
-mem_flippen_pagedown_gpio:0a
-mem_flippen_tab_gpio:0b
-mem_flippen_vol_up_gpio:08
-mem_flippen_vol_down_gpio:07
+mem_flippen_key0_gpio:0d
+mem_flippen_key1_gpio:0a
+mem_flippen_key2_gpio:0b
+mem_flippen_key3_gpio:08
+mem_flippen_key4_gpio:07
 
 
 mem_customer_key_press:
@@ -171,18 +161,31 @@
 #03 00 00 00 00 00 00 00 00 #MEDIA RELEASE
 #02 00 00 00 00 00 00 00 00 #SYSTEM CRTL RELEASE
 00 00 00 00 00 00 00 00 00#STANDARD KEY RELEASE
-
 mem_customer_key_press_patch:
-00 00 00 4B 00 00 00 00 00#Page Up
-00 00 00 4E 00 00 00 00 00#Page Down
-00 00 00 2B 00 00 00 00 00#Tab
+00 00 00 2b 00 00 00 00 00#Tab
+00 00 00 4b 00 00 00 00 00#Page Up
+00 00 00 4e 00 00 00 00 00#Page Down
+00 00 00 52 00 00 00 00 00#UP
+00 00 00 50 00 00 00 00 00#LEFT
+00 00 00 51 00 00 00 00 00#DOWN
+00 00 00 4f 00 00 00 00 00#RIGHT
+00 00 00 05 00 00 00 00 00# B
+00 04 00 2b 00 00 00 00 00#ALT TAB
+00 00 00 28 00 00 00 00 00#ENTER
+00 04 00 00 00 00 00 00 00#ALT
+00 00 00 29 00 00 00 00 00#ESC
+00 02 00 3e 00 00 00 00 00
+00 0c 00 13 00 00 00 00 00
+00 00 00 3e 00 00 00 00 00
+00 03 00 16 00 00 00 00 00
+
+
 03 e9 00 00 00 00 00 00 00#Vol UP
 03 ea 00 00 00 00 00 00 00#Vol Down
-
 mem_customer_media_key_release:
 03 00 00 00 00 00 00 00 00
 
-mem_lpm_mode:00
+mem_lpm_mode:01
 
 
 mem_mouse_bluetooth_type:00	#03 bt3.0+ble   #02 ble   #01 bt3.0
@@ -328,126 +331,6 @@
 mem_ui_button_timeout:1e
 
 
-mem_mouse_dpi_seting:
-03##mem_320x_dpi_0  	1200/1300
-04##mem_320x_dpi_1  	1600
-01##mem_320x_dpi_2   	800
-02##mem_320x_dpi_3  	1000
-
-20##mem_3212_dpi_0	1200
-2a##mem_3212_dpi_1	1600
-3f ##mem_3212_dpi_2	2400
-15##mem_3212_dpi_3   	800
-
-06##mem_ka8g2_dpi_0	1200
-0c##mem_ka8g2_dpi_1	2400
-10##mem_ka8g2_dpi_2	3000
-04##mem_ka8g2_dpi_3	800
-
-mem_sensor_3212_init:
-09 5a
-26 34
-19 04
-09 00
-ff ff
-
-mem_sensor_3204_init:
-09 5a
-0d f0
-1d e3
-7d d2
-ff ff
-
-mem_sensor_3205_init:
-09 5a
-0d 10
-1d ed
-7d 80
-ff ff
-
-mem_sensor_32xx_init:
-1b 35
-28 b4
-29 46
-2a 96
-2b 8c
-2c 6e
-2d 64
-38 5f
-39 0f
-3a 32
-3b 47
-42 10
-ff ff
-
-mem_sensor_32xx_init_1:
-54 2e
-55 f2
-61 f4
-63 70
-75 52 
-76 41
-77 ed
-78 23
-79 46
-7a e5
-7c 48
-7e 77
-7f 01
-0b 00
-7f 00
-09 00
-ff ff
-
-mem_sensor_8650_init:
-09 5a
-ff 27
-ab 40
-be d1
-a0 41
-a1 12
-a5 84
-a7 ff
-b5 d0
-b6 00
-ff 00
-09 00
-ff ff
-
-mem_sensor_ka8ul_init:
-09 5a
-0d 10
-0e c5
-5b 9a
-10 38
-11 42
-28 28
-41 23
-49 39
-4a b0
-4b a0
-4c 90
-4d 70
-09 00
-ff ff
-
-mem_sensor_8009_init:
-09 5a
-06 02
-09 69
-0d 48
-0e 9f
-0f ba
-09 00
-ff ff
-
-mem_sensor_poweron_init:
-09 5a
-0b f3
-09 00
-ff ff
-
-
 mem_ui_led_struct_ptr:mem_mouse_led_type
 mem_ui_led_struct_num:01
 
