Index: format/app_dongle.format
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/format/app_dongle.format	(revision 1983)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/format/app_dongle.format	(working copy)
@@ -60,7 +60,6 @@
 7 mem_dg_mouse_data
 1 mem_dg_mouse_key_data_last
 1 mem_dg_mouse_dpi_level
-1 mem_dg_usb_ep2_data_flag
 65 mem_usb_dpi_info_data
 
 1 mem_dg_keyboard_keymatrix_profile
@@ -71,6 +70,8 @@
 64 mem_dg_keyboard_keymatrix_getup_keyvalue
 65 mem_dg_protocol_usb_in_data_buff
 1 mem_24g_device_type
+1 mem_dongle_ms_ep2_ack_data_flag
+65 mem_dongle_ms_ep2_ack_data
 
 )
 
@@ -196,6 +197,7 @@
 )
 
 (
+0xF4 CMD_SET_REPORT
 0xF5 CMD_SET_DPI
 0xF6 CMD_SET
 0xF7 CMD_CHECK_STATUS
Index: output/eeprom.dat
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/eeprom.dat	(revision 1983)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-72
+da
 10
 c2
 84
@@ -59,7 +59,7 @@
 c0
 1f
 02
-90
+95
 c0
 58
 82
@@ -110,8 +110,8 @@
 e6
 c0
 37
-02
-fc
+03
+01
 c0
 37
 82
@@ -119,19 +119,19 @@
 c0
 39
 03
-43
+48
 c0
 39
 83
-2e
+33
 c0
 3a
 83
-0b
+10
 c0
 40
 82
-eb
+f0
 c0
 41
 01
@@ -139,11 +139,11 @@
 c0
 42
 02
-b6
+bb
 c0
 42
 83
-1b
+20
 c0
 44
 02
@@ -155,11 +155,11 @@
 c0
 45
 83
-1e
+23
 c0
 4d
 83
-27
+2c
 c1
 7f
 80
@@ -1407,7 +1407,7 @@
 6f
 e0
 c9
-4f
+4e
 20
 7a
 00
@@ -1419,7 +1419,7 @@
 d8
 c0
 49
-50
+4f
 20
 40
 7b
@@ -1427,7 +1427,7 @@
 d8
 a0
 49
-4f
+4e
 df
 20
 00
@@ -1443,7 +1443,7 @@
 d8
 c0
 4a
-0c
+0b
 20
 40
 7b
@@ -1451,7 +1451,7 @@
 d8
 a0
 4a
-0c
+0b
 20
 20
 01
@@ -2279,7 +2279,7 @@
 20
 20
 03
-70
+75
 58
 00
 00
@@ -2367,7 +2367,7 @@
 58
 00
 03
-4e
+53
 67
 e1
 45
@@ -2375,7 +2375,7 @@
 58
 00
 03
-c1
+d9
 67
 e1
 45
@@ -2383,7 +2383,7 @@
 58
 00
 04
-05
+1f
 67
 e1
 45
@@ -2427,7 +2427,7 @@
 c2
 80
 02
-86
+8b
 20
 20
 02
@@ -2439,7 +2439,7 @@
 c2
 80
 82
-8a
+8f
 6f
 e0
 c6
@@ -2559,7 +2559,7 @@
 6f
 e0
 ca
-4d
+4c
 c0
 02
 82
@@ -2567,7 +2567,7 @@
 c0
 05
 02
-84
+89
 20
 60
 00
@@ -2576,10 +2576,30 @@
 45
 89
 01
-20
-60
-00
+6f
+e0
+ca
+4e
+67
+e0
+c5
+88
+1f
+e2
+72
 00
+d8
+c0
+4a
+4f
+d8
+a0
+46
+dd
+20
+20
+7c
+da
 70
 45
 89
@@ -2603,7 +2623,7 @@
 20
 20
 02
-8d
+92
 6f
 e0
 c6
@@ -2639,7 +2659,7 @@
 20
 40
 02
-a4
+a9
 20
 40
 48
@@ -2723,11 +2743,11 @@
 20
 40
 02
-9f
+a4
 20
 40
 02
-e0
+e5
 24
 37
 b3
@@ -2779,7 +2799,7 @@
 20
 5a
 02
-bc
+c1
 6f
 e0
 c7
@@ -2787,7 +2807,7 @@
 c0
 7f
 82
-da
+df
 1f
 e1
 7e
@@ -2795,11 +2815,11 @@
 c0
 00
 82
-c2
+c7
 c0
 01
 02
-d4
+d9
 20
 20
 33
@@ -2859,7 +2879,7 @@
 c0
 00
 82
-cd
+d2
 6f
 e0
 c6
@@ -2915,7 +2935,7 @@
 20
 20
 82
-d2
+d7
 6f
 e1
 45
@@ -2927,7 +2947,7 @@
 20
 40
 02
-de
+e3
 20
 20
 01
@@ -2975,7 +2995,7 @@
 20
 40
 03
-0b
+10
 6f
 e0
 c7
@@ -3007,15 +3027,15 @@
 20
 40
 02
-f7
+fc
 20
 40
 02
-e3
+e8
 20
 40
 02
-dc
+e1
 20
 40
 49
@@ -3071,7 +3091,7 @@
 c5
 13
 83
-04
+09
 6f
 e0
 c6
@@ -3215,7 +3235,7 @@
 20
 40
 02
-e0
+e5
 24
 37
 b3
@@ -3227,7 +3247,7 @@
 20
 42
 82
-aa
+af
 20
 20
 34
@@ -3347,7 +3367,7 @@
 c5
 17
 83
-48
+4d
 6f
 e0
 c5
@@ -3355,7 +3375,7 @@
 24
 3a
 03
-48
+4d
 78
 4e
 fc
@@ -3419,15 +3439,15 @@
 20
 40
 03
-58
+5d
 20
 40
 03
-64
+69
 20
 20
 03
-4f
+54
 d8
 40
 ff
@@ -3555,39 +3575,139 @@
 c0
 7b
 83
-80
+9e
 c0
 7b
 03
-8e
+ac
 c0
 7a
 83
-91
+8e
+c0
+7a
+03
+98
 c0
 7e
 03
-97
+af
 c0
 7f
 03
-9d
+b5
 c0
 3d
 03
-a0
+b8
 c0
 50
 03
-a8
+c0
 c0
 50
 83
-b6
+ce
 20
 20
 48
 75
+df
+20
+00
+41
+d8
+a0
+4a
+4e
+20
+20
+7c
+a1
+70
+4a
+4d
+01
+70
+46
+11
+08
+d8
+c0
+08
+75
+d8
+a0
+4a
+4f
+20
+20
+7c
+da
+6f
+e0
+88
+76
+c1
+82
+80
+00
+20
+40
+03
+86
+6f
+e0
+88
+76
+67
+e0
+ca
+4c
+6f
+e0
+88
+77
+67
+e0
+c9
+4d
+70
+4a
+4e
+04
+df
+20
+00
+04
+20
+20
+03
+89
+6f
+e0
+88
+76
+c1
+82
+80
+00
+20
+40
+03
+86
+6f
+e0
+88
+76
+67
+e0
+ca
+4c
+20
+20
+03
+95
 58
 00
 00
@@ -3595,7 +3715,7 @@
 67
 e0
 ca
-0c
+0b
 58
 00
 00
@@ -3603,7 +3723,7 @@
 67
 e0
 ca
-0d
+0c
 58
 00
 00
@@ -3611,7 +3731,7 @@
 67
 e0
 ca
-0e
+0d
 58
 00
 00
@@ -3619,7 +3739,7 @@
 67
 e0
 ca
-0f
+0e
 58
 00
 00
@@ -3627,7 +3747,7 @@
 67
 e0
 ca
-10
+0f
 6f
 e2
 45
@@ -3635,15 +3755,15 @@
 67
 e2
 4a
-13
+12
 70
 09
 0c
 24
 20
 20
-03
-fc
+04
+16
 6f
 e0
 88
@@ -3656,30 +3776,6 @@
 60
 00
 00
-6f
-e0
-88
-76
-c1
-82
-80
-00
-67
-e0
-ca
-4d
-6f
-e0
-88
-77
-67
-e0
-c9
-4d
-20
-60
-00
-00
 70
 08
 75
@@ -3755,7 +3851,7 @@
 67
 e0
 c9
-90
+8f
 6f
 e0
 88
@@ -3763,7 +3859,7 @@
 67
 e0
 c9
-91
+90
 6f
 e0
 88
@@ -3771,7 +3867,7 @@
 67
 e0
 c9
-92
+91
 6f
 e0
 88
@@ -3779,7 +3875,7 @@
 67
 e0
 c9
-93
+92
 1f
 e2
 72
@@ -3791,7 +3887,7 @@
 d8
 a0
 49
-94
+93
 20
 40
 7c
@@ -3811,7 +3907,7 @@
 67
 e0
 c9
-90
+8f
 6f
 e0
 88
@@ -3819,7 +3915,7 @@
 67
 e0
 c9
-91
+90
 6f
 e0
 88
@@ -3827,7 +3923,7 @@
 67
 e0
 c9
-92
+91
 df
 20
 00
@@ -3835,7 +3931,7 @@
 d8
 a0
 49
-cc
+cb
 d8
 a0
 08
@@ -3848,22 +3944,26 @@
 20
 48
 80
+70
+46
+11
+00
 6f
 e0
 c7
 b1
 c2
 83
-03
-e8
+04
+01
 c2
 83
-83
-f5
+84
+0e
 c2
 82
-83
-f8
+84
+11
 6f
 e0
 c5
@@ -3875,11 +3975,11 @@
 20
 22
 83
-d5
+ee
 20
 40
 03
-d5
+ee
 6f
 e0
 c5
@@ -3914,16 +4014,16 @@
 b1
 c2
 83
-03
-e8
+04
+01
 c2
 83
-83
-f5
+84
+0e
 c2
 82
-83
-f8
+84
+11
 20
 60
 00
@@ -3987,7 +4087,7 @@
 24
 22
 83
-e6
+ff
 6f
 e3
 49
@@ -4002,8 +4102,8 @@
 20
 20
 20
-03
-fc
+04
+16
 6f
 e0
 c7
@@ -4026,15 +4126,15 @@
 00
 70
 49
-4f
+4e
 40
 70
 49
-50
+4f
 a1
 70
 49
-51
+50
 05
 6f
 e0
@@ -4043,10 +4143,10 @@
 67
 e0
 c9
-52
+51
 70
 49
-53
+52
 00
 70
 09
@@ -4054,8 +4154,8 @@
 23
 20
 20
-03
-fc
+04
+16
 6f
 e0
 c7
@@ -4070,16 +4170,20 @@
 00
 6f
 e0
-c9
-4e
+ca
+4d
 20
 7a
 00
 00
 70
-49
-4e
+4a
+4d
 00
+70
+46
+11
+08
 20
 60
 00
@@ -4127,15 +4231,15 @@
 c0
 00
 04
-0a
+24
 c0
 01
 04
-10
+2a
 c0
 01
 84
-13
+2d
 20
 20
 33
@@ -4203,7 +4307,7 @@
 c2
 00
 04
-17
+31
 1a
 21
 22
@@ -4212,8 +4316,8 @@
 60
 00
 00
-be
-91
+f7
+1f
 aa
 55
 40
@@ -4826,112 +4930,8 @@
 55
 56
 80
-fd
-78
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+10
+b3
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-b6
-6e
+a2
+7a
Index: output/flash.dat
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/flash.dat	(revision 1983)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/flash.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-72
+da
 10
 c2
 84
@@ -59,7 +59,7 @@
 c0
 1f
 02
-90
+95
 c0
 58
 82
@@ -110,8 +110,8 @@
 e6
 c0
 37
-02
-fc
+03
+01
 c0
 37
 82
@@ -119,19 +119,19 @@
 c0
 39
 03
-43
+48
 c0
 39
 83
-2e
+33
 c0
 3a
 83
-0b
+10
 c0
 40
 82
-eb
+f0
 c0
 41
 01
@@ -139,11 +139,11 @@
 c0
 42
 02
-b6
+bb
 c0
 42
 83
-1b
+20
 c0
 44
 02
@@ -155,11 +155,11 @@
 c0
 45
 83
-1e
+23
 c0
 4d
 83
-27
+2c
 c1
 7f
 80
@@ -1407,7 +1407,7 @@
 6f
 e0
 c9
-4f
+4e
 20
 7a
 00
@@ -1419,7 +1419,7 @@
 d8
 c0
 49
-50
+4f
 20
 40
 7b
@@ -1427,7 +1427,7 @@
 d8
 a0
 49
-4f
+4e
 df
 20
 00
@@ -1443,7 +1443,7 @@
 d8
 c0
 4a
-0c
+0b
 20
 40
 7b
@@ -1451,7 +1451,7 @@
 d8
 a0
 4a
-0c
+0b
 20
 20
 01
@@ -2279,7 +2279,7 @@
 20
 20
 03
-70
+75
 58
 00
 00
@@ -2367,7 +2367,7 @@
 58
 00
 03
-4e
+53
 67
 e1
 45
@@ -2375,7 +2375,7 @@
 58
 00
 03
-c1
+d9
 67
 e1
 45
@@ -2383,7 +2383,7 @@
 58
 00
 04
-05
+1f
 67
 e1
 45
@@ -2427,7 +2427,7 @@
 c2
 80
 02
-86
+8b
 20
 20
 02
@@ -2439,7 +2439,7 @@
 c2
 80
 82
-8a
+8f
 6f
 e0
 c6
@@ -2559,7 +2559,7 @@
 6f
 e0
 ca
-4d
+4c
 c0
 02
 82
@@ -2567,7 +2567,7 @@
 c0
 05
 02
-84
+89
 20
 60
 00
@@ -2576,10 +2576,30 @@
 45
 89
 01
-20
-60
-00
+6f
+e0
+ca
+4e
+67
+e0
+c5
+88
+1f
+e2
+72
 00
+d8
+c0
+4a
+4f
+d8
+a0
+46
+dd
+20
+20
+7c
+da
 70
 45
 89
@@ -2603,7 +2623,7 @@
 20
 20
 02
-8d
+92
 6f
 e0
 c6
@@ -2639,7 +2659,7 @@
 20
 40
 02
-a4
+a9
 20
 40
 48
@@ -2723,11 +2743,11 @@
 20
 40
 02
-9f
+a4
 20
 40
 02
-e0
+e5
 24
 37
 b3
@@ -2779,7 +2799,7 @@
 20
 5a
 02
-bc
+c1
 6f
 e0
 c7
@@ -2787,7 +2807,7 @@
 c0
 7f
 82
-da
+df
 1f
 e1
 7e
@@ -2795,11 +2815,11 @@
 c0
 00
 82
-c2
+c7
 c0
 01
 02
-d4
+d9
 20
 20
 33
@@ -2859,7 +2879,7 @@
 c0
 00
 82
-cd
+d2
 6f
 e0
 c6
@@ -2915,7 +2935,7 @@
 20
 20
 82
-d2
+d7
 6f
 e1
 45
@@ -2927,7 +2947,7 @@
 20
 40
 02
-de
+e3
 20
 20
 01
@@ -2975,7 +2995,7 @@
 20
 40
 03
-0b
+10
 6f
 e0
 c7
@@ -3007,15 +3027,15 @@
 20
 40
 02
-f7
+fc
 20
 40
 02
-e3
+e8
 20
 40
 02
-dc
+e1
 20
 40
 49
@@ -3071,7 +3091,7 @@
 c5
 13
 83
-04
+09
 6f
 e0
 c6
@@ -3215,7 +3235,7 @@
 20
 40
 02
-e0
+e5
 24
 37
 b3
@@ -3227,7 +3247,7 @@
 20
 42
 82
-aa
+af
 20
 20
 34
@@ -3347,7 +3367,7 @@
 c5
 17
 83
-48
+4d
 6f
 e0
 c5
@@ -3355,7 +3375,7 @@
 24
 3a
 03
-48
+4d
 78
 4e
 fc
@@ -3419,15 +3439,15 @@
 20
 40
 03
-58
+5d
 20
 40
 03
-64
+69
 20
 20
 03
-4f
+54
 d8
 40
 ff
@@ -3555,39 +3575,139 @@
 c0
 7b
 83
-80
+9e
 c0
 7b
 03
-8e
+ac
 c0
 7a
 83
-91
+8e
+c0
+7a
+03
+98
 c0
 7e
 03
-97
+af
 c0
 7f
 03
-9d
+b5
 c0
 3d
 03
-a0
+b8
 c0
 50
 03
-a8
+c0
 c0
 50
 83
-b6
+ce
 20
 20
 48
 75
+df
+20
+00
+41
+d8
+a0
+4a
+4e
+20
+20
+7c
+a1
+70
+4a
+4d
+01
+70
+46
+11
+08
+d8
+c0
+08
+75
+d8
+a0
+4a
+4f
+20
+20
+7c
+da
+6f
+e0
+88
+76
+c1
+82
+80
+00
+20
+40
+03
+86
+6f
+e0
+88
+76
+67
+e0
+ca
+4c
+6f
+e0
+88
+77
+67
+e0
+c9
+4d
+70
+4a
+4e
+04
+df
+20
+00
+04
+20
+20
+03
+89
+6f
+e0
+88
+76
+c1
+82
+80
+00
+20
+40
+03
+86
+6f
+e0
+88
+76
+67
+e0
+ca
+4c
+20
+20
+03
+95
 58
 00
 00
@@ -3595,7 +3715,7 @@
 67
 e0
 ca
-0c
+0b
 58
 00
 00
@@ -3603,7 +3723,7 @@
 67
 e0
 ca
-0d
+0c
 58
 00
 00
@@ -3611,7 +3731,7 @@
 67
 e0
 ca
-0e
+0d
 58
 00
 00
@@ -3619,7 +3739,7 @@
 67
 e0
 ca
-0f
+0e
 58
 00
 00
@@ -3627,7 +3747,7 @@
 67
 e0
 ca
-10
+0f
 6f
 e2
 45
@@ -3635,15 +3755,15 @@
 67
 e2
 4a
-13
+12
 70
 09
 0c
 24
 20
 20
-03
-fc
+04
+16
 6f
 e0
 88
@@ -3656,30 +3776,6 @@
 60
 00
 00
-6f
-e0
-88
-76
-c1
-82
-80
-00
-67
-e0
-ca
-4d
-6f
-e0
-88
-77
-67
-e0
-c9
-4d
-20
-60
-00
-00
 70
 08
 75
@@ -3755,7 +3851,7 @@
 67
 e0
 c9
-90
+8f
 6f
 e0
 88
@@ -3763,7 +3859,7 @@
 67
 e0
 c9
-91
+90
 6f
 e0
 88
@@ -3771,7 +3867,7 @@
 67
 e0
 c9
-92
+91
 6f
 e0
 88
@@ -3779,7 +3875,7 @@
 67
 e0
 c9
-93
+92
 1f
 e2
 72
@@ -3791,7 +3887,7 @@
 d8
 a0
 49
-94
+93
 20
 40
 7c
@@ -3811,7 +3907,7 @@
 67
 e0
 c9
-90
+8f
 6f
 e0
 88
@@ -3819,7 +3915,7 @@
 67
 e0
 c9
-91
+90
 6f
 e0
 88
@@ -3827,7 +3923,7 @@
 67
 e0
 c9
-92
+91
 df
 20
 00
@@ -3835,7 +3931,7 @@
 d8
 a0
 49
-cc
+cb
 d8
 a0
 08
@@ -3848,22 +3944,26 @@
 20
 48
 80
+70
+46
+11
+00
 6f
 e0
 c7
 b1
 c2
 83
-03
-e8
+04
+01
 c2
 83
-83
-f5
+84
+0e
 c2
 82
-83
-f8
+84
+11
 6f
 e0
 c5
@@ -3875,11 +3975,11 @@
 20
 22
 83
-d5
+ee
 20
 40
 03
-d5
+ee
 6f
 e0
 c5
@@ -3914,16 +4014,16 @@
 b1
 c2
 83
-03
-e8
+04
+01
 c2
 83
-83
-f5
+84
+0e
 c2
 82
-83
-f8
+84
+11
 20
 60
 00
@@ -3987,7 +4087,7 @@
 24
 22
 83
-e6
+ff
 6f
 e3
 49
@@ -4002,8 +4102,8 @@
 20
 20
 20
-03
-fc
+04
+16
 6f
 e0
 c7
@@ -4026,15 +4126,15 @@
 00
 70
 49
-4f
+4e
 40
 70
 49
-50
+4f
 a1
 70
 49
-51
+50
 05
 6f
 e0
@@ -4043,10 +4143,10 @@
 67
 e0
 c9
-52
+51
 70
 49
-53
+52
 00
 70
 09
@@ -4054,8 +4154,8 @@
 23
 20
 20
-03
-fc
+04
+16
 6f
 e0
 c7
@@ -4070,16 +4170,20 @@
 00
 6f
 e0
-c9
-4e
+ca
+4d
 20
 7a
 00
 00
 70
-49
-4e
+4a
+4d
 00
+70
+46
+11
+08
 20
 60
 00
@@ -4127,15 +4231,15 @@
 c0
 00
 04
-0a
+24
 c0
 01
 04
-10
+2a
 c0
 01
 84
-13
+2d
 20
 20
 33
@@ -4203,7 +4307,7 @@
 c2
 00
 04
-17
+31
 1a
 21
 22
@@ -4212,8 +4316,8 @@
 60
 00
 00
-be
-91
+f7
+1f
 aa
 55
 40
@@ -4826,112 +4930,8 @@
 55
 56
 80
-fd
-78
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+10
+b3
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-b6
-6e
+a2
+7a
Index: output/memmap.format
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/memmap.format	(revision 1983)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/memmap.format	(working copy)
@@ -1507,16 +1507,17 @@
 0x4945 mem_dg_mouse_data
 0x494c mem_dg_mouse_key_data_last
 0x494d mem_dg_mouse_dpi_level
-0x494e mem_dg_usb_ep2_data_flag
-0x494f mem_usb_dpi_info_data
-0x4990 mem_dg_keyboard_keymatrix_profile
-0x4991 mem_dg_keyboard_keymatrix_type
-0x4992 mem_dg_keyboard_keymatrix_page
-0x4993 mem_dg_keyboard_keymatrix_len
-0x4994 mem_dg_keyboard_keymatrix_setup_keyvalue
-0x49cc mem_dg_keyboard_keymatrix_getup_keyvalue
-0x4a0c mem_dg_protocol_usb_in_data_buff
-0x4a4d mem_24g_device_type
+0x494e mem_usb_dpi_info_data
+0x498f mem_dg_keyboard_keymatrix_profile
+0x4990 mem_dg_keyboard_keymatrix_type
+0x4991 mem_dg_keyboard_keymatrix_page
+0x4992 mem_dg_keyboard_keymatrix_len
+0x4993 mem_dg_keyboard_keymatrix_setup_keyvalue
+0x49cb mem_dg_keyboard_keymatrix_getup_keyvalue
+0x4a0b mem_dg_protocol_usb_in_data_buff
+0x4a4c mem_24g_device_type
+0x4a4d mem_dongle_ms_ep2_ack_data_flag
+0x4a4e mem_dongle_ms_ep2_ack_data
 0x45d3 mem_rssi_hex_received
 0x45d4 mem_24g_pair_sm
 0x45d5 mem_24g_pair_no_ack
Index: output/otp.dat
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/otp.dat	(revision 1983)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/otp.dat	(working copy)
@@ -11,7 +11,7 @@
 00
 aa
 55
-72
+da
 10
 c2
 84
@@ -68,7 +68,7 @@
 c0
 1f
 02
-90
+95
 c0
 58
 82
@@ -119,8 +119,8 @@
 e6
 c0
 37
-02
-fc
+03
+01
 c0
 37
 82
@@ -128,19 +128,19 @@
 c0
 39
 03
-43
+48
 c0
 39
 83
-2e
+33
 c0
 3a
 83
-0b
+10
 c0
 40
 82
-eb
+f0
 c0
 41
 01
@@ -148,11 +148,11 @@
 c0
 42
 02
-b6
+bb
 c0
 42
 83
-1b
+20
 c0
 44
 02
@@ -164,11 +164,11 @@
 c0
 45
 83
-1e
+23
 c0
 4d
 83
-27
+2c
 c1
 7f
 80
@@ -1416,7 +1416,7 @@
 6f
 e0
 c9
-4f
+4e
 20
 7a
 00
@@ -1428,7 +1428,7 @@
 d8
 c0
 49
-50
+4f
 20
 40
 7b
@@ -1436,7 +1436,7 @@
 d8
 a0
 49
-4f
+4e
 df
 20
 00
@@ -1452,7 +1452,7 @@
 d8
 c0
 4a
-0c
+0b
 20
 40
 7b
@@ -1460,7 +1460,7 @@
 d8
 a0
 4a
-0c
+0b
 20
 20
 01
@@ -2288,7 +2288,7 @@
 20
 20
 03
-70
+75
 58
 00
 00
@@ -2376,7 +2376,7 @@
 58
 00
 03
-4e
+53
 67
 e1
 45
@@ -2384,7 +2384,7 @@
 58
 00
 03
-c1
+d9
 67
 e1
 45
@@ -2392,7 +2392,7 @@
 58
 00
 04
-05
+1f
 67
 e1
 45
@@ -2436,7 +2436,7 @@
 c2
 80
 02
-86
+8b
 20
 20
 02
@@ -2448,7 +2448,7 @@
 c2
 80
 82
-8a
+8f
 6f
 e0
 c6
@@ -2568,7 +2568,7 @@
 6f
 e0
 ca
-4d
+4c
 c0
 02
 82
@@ -2576,7 +2576,7 @@
 c0
 05
 02
-84
+89
 20
 60
 00
@@ -2585,10 +2585,30 @@
 45
 89
 01
-20
-60
-00
+6f
+e0
+ca
+4e
+67
+e0
+c5
+88
+1f
+e2
+72
 00
+d8
+c0
+4a
+4f
+d8
+a0
+46
+dd
+20
+20
+7c
+da
 70
 45
 89
@@ -2612,7 +2632,7 @@
 20
 20
 02
-8d
+92
 6f
 e0
 c6
@@ -2648,7 +2668,7 @@
 20
 40
 02
-a4
+a9
 20
 40
 48
@@ -2732,11 +2752,11 @@
 20
 40
 02
-9f
+a4
 20
 40
 02
-e0
+e5
 24
 37
 b3
@@ -2788,7 +2808,7 @@
 20
 5a
 02
-bc
+c1
 6f
 e0
 c7
@@ -2796,7 +2816,7 @@
 c0
 7f
 82
-da
+df
 1f
 e1
 7e
@@ -2804,11 +2824,11 @@
 c0
 00
 82
-c2
+c7
 c0
 01
 02
-d4
+d9
 20
 20
 33
@@ -2868,7 +2888,7 @@
 c0
 00
 82
-cd
+d2
 6f
 e0
 c6
@@ -2924,7 +2944,7 @@
 20
 20
 82
-d2
+d7
 6f
 e1
 45
@@ -2936,7 +2956,7 @@
 20
 40
 02
-de
+e3
 20
 20
 01
@@ -2984,7 +3004,7 @@
 20
 40
 03
-0b
+10
 6f
 e0
 c7
@@ -3016,15 +3036,15 @@
 20
 40
 02
-f7
+fc
 20
 40
 02
-e3
+e8
 20
 40
 02
-dc
+e1
 20
 40
 49
@@ -3080,7 +3100,7 @@
 c5
 13
 83
-04
+09
 6f
 e0
 c6
@@ -3224,7 +3244,7 @@
 20
 40
 02
-e0
+e5
 24
 37
 b3
@@ -3236,7 +3256,7 @@
 20
 42
 82
-aa
+af
 20
 20
 34
@@ -3356,7 +3376,7 @@
 c5
 17
 83
-48
+4d
 6f
 e0
 c5
@@ -3364,7 +3384,7 @@
 24
 3a
 03
-48
+4d
 78
 4e
 fc
@@ -3428,15 +3448,15 @@
 20
 40
 03
-58
+5d
 20
 40
 03
-64
+69
 20
 20
 03
-4f
+54
 d8
 40
 ff
@@ -3564,39 +3584,139 @@
 c0
 7b
 83
-80
+9e
 c0
 7b
 03
-8e
+ac
 c0
 7a
 83
-91
+8e
+c0
+7a
+03
+98
 c0
 7e
 03
-97
+af
 c0
 7f
 03
-9d
+b5
 c0
 3d
 03
-a0
+b8
 c0
 50
 03
-a8
+c0
 c0
 50
 83
-b6
+ce
 20
 20
 48
 75
+df
+20
+00
+41
+d8
+a0
+4a
+4e
+20
+20
+7c
+a1
+70
+4a
+4d
+01
+70
+46
+11
+08
+d8
+c0
+08
+75
+d8
+a0
+4a
+4f
+20
+20
+7c
+da
+6f
+e0
+88
+76
+c1
+82
+80
+00
+20
+40
+03
+86
+6f
+e0
+88
+76
+67
+e0
+ca
+4c
+6f
+e0
+88
+77
+67
+e0
+c9
+4d
+70
+4a
+4e
+04
+df
+20
+00
+04
+20
+20
+03
+89
+6f
+e0
+88
+76
+c1
+82
+80
+00
+20
+40
+03
+86
+6f
+e0
+88
+76
+67
+e0
+ca
+4c
+20
+20
+03
+95
 58
 00
 00
@@ -3604,7 +3724,7 @@
 67
 e0
 ca
-0c
+0b
 58
 00
 00
@@ -3612,7 +3732,7 @@
 67
 e0
 ca
-0d
+0c
 58
 00
 00
@@ -3620,7 +3740,7 @@
 67
 e0
 ca
-0e
+0d
 58
 00
 00
@@ -3628,7 +3748,7 @@
 67
 e0
 ca
-0f
+0e
 58
 00
 00
@@ -3636,7 +3756,7 @@
 67
 e0
 ca
-10
+0f
 6f
 e2
 45
@@ -3644,15 +3764,15 @@
 67
 e2
 4a
-13
+12
 70
 09
 0c
 24
 20
 20
-03
-fc
+04
+16
 6f
 e0
 88
@@ -3665,30 +3785,6 @@
 60
 00
 00
-6f
-e0
-88
-76
-c1
-82
-80
-00
-67
-e0
-ca
-4d
-6f
-e0
-88
-77
-67
-e0
-c9
-4d
-20
-60
-00
-00
 70
 08
 75
@@ -3764,7 +3860,7 @@
 67
 e0
 c9
-90
+8f
 6f
 e0
 88
@@ -3772,7 +3868,7 @@
 67
 e0
 c9
-91
+90
 6f
 e0
 88
@@ -3780,7 +3876,7 @@
 67
 e0
 c9
-92
+91
 6f
 e0
 88
@@ -3788,7 +3884,7 @@
 67
 e0
 c9
-93
+92
 1f
 e2
 72
@@ -3800,7 +3896,7 @@
 d8
 a0
 49
-94
+93
 20
 40
 7c
@@ -3820,7 +3916,7 @@
 67
 e0
 c9
-90
+8f
 6f
 e0
 88
@@ -3828,7 +3924,7 @@
 67
 e0
 c9
-91
+90
 6f
 e0
 88
@@ -3836,7 +3932,7 @@
 67
 e0
 c9
-92
+91
 df
 20
 00
@@ -3844,7 +3940,7 @@
 d8
 a0
 49
-cc
+cb
 d8
 a0
 08
@@ -3857,22 +3953,26 @@
 20
 48
 80
+70
+46
+11
+00
 6f
 e0
 c7
 b1
 c2
 83
-03
-e8
+04
+01
 c2
 83
-83
-f5
+84
+0e
 c2
 82
-83
-f8
+84
+11
 6f
 e0
 c5
@@ -3884,11 +3984,11 @@
 20
 22
 83
-d5
+ee
 20
 40
 03
-d5
+ee
 6f
 e0
 c5
@@ -3923,16 +4023,16 @@
 b1
 c2
 83
-03
-e8
+04
+01
 c2
 83
-83
-f5
+84
+0e
 c2
 82
-83
-f8
+84
+11
 20
 60
 00
@@ -3996,7 +4096,7 @@
 24
 22
 83
-e6
+ff
 6f
 e3
 49
@@ -4011,8 +4111,8 @@
 20
 20
 20
-03
-fc
+04
+16
 6f
 e0
 c7
@@ -4035,15 +4135,15 @@
 00
 70
 49
-4f
+4e
 40
 70
 49
-50
+4f
 a1
 70
 49
-51
+50
 05
 6f
 e0
@@ -4052,10 +4152,10 @@
 67
 e0
 c9
-52
+51
 70
 49
-53
+52
 00
 70
 09
@@ -4063,8 +4163,8 @@
 23
 20
 20
-03
-fc
+04
+16
 6f
 e0
 c7
@@ -4079,16 +4179,20 @@
 00
 6f
 e0
-c9
-4e
+ca
+4d
 20
 7a
 00
 00
 70
-49
-4e
+4a
+4d
 00
+70
+46
+11
+08
 20
 60
 00
@@ -4136,15 +4240,15 @@
 c0
 00
 04
-0a
+24
 c0
 01
 04
-10
+2a
 c0
 01
 84
-13
+2d
 20
 20
 33
@@ -4212,7 +4316,7 @@
 c2
 00
 04
-17
+31
 1a
 21
 22
@@ -4221,8 +4325,8 @@
 60
 00
 00
-be
-91
+f7
+1f
 aa
 55
 40
@@ -4835,6 +4939,6 @@
 55
 56
 80
-fd
-78
+10
+b3
 21
Index: output/program.lis
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/program.lis	(revision 1983)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/program.lis	(working copy)
@@ -13,7 +13,7 @@
 000a c01c00a6 beq patch07_0 ,p_dongle_read_kb_bind_status 
 000b c01c80a2 beq patch07_1 ,p_dongle_write_kb_bind_status 
 000c c01e8238 beq patch07_5 ,p_dongle_usb_dispatch 
-000d c01f0290 beq patch07_6 ,p_dongle_work_mode_auto 
+000d c01f0295 beq patch07_6 ,p_dongle_work_mode_auto 
 000e c058824e beq patch16_1 ,p_app_init 
 000f c062809f beq patch18_5 ,p_otp_read_data 
 0010 c06d0198 beq patch1b_2 ,p_sadc_calibration 
@@ -28,19 +28,19 @@
 0017 c0030137 beq patch20_6 ,p_usb_tx 
 0018 c01c81e2 beq patch27_1 ,p_le_parse 
 0019 c02681e6 beq patch29_5 ,p_le_init_adv 
-001a c03702fc beq patch2d_6 ,p_g24_receive_update_rxbuff 
+001a c0370301 beq patch2d_6 ,p_g24_receive_update_rxbuff 
 001b c0378244 beq patch2d_7 ,p_g24_receive_skip_end 
-001c c0390343 beq patch2e_2 ,p_g24_transmit_packet 
-001d c039832e beq patch2e_3 ,p_g24_transmit_prep 
-001e c03a830b beq patch2e_5 ,p_g24_read_len_pid_crc 
-001f c04082eb beq patch30_1 ,p_g24_bind_data_process 
+001c c0390348 beq patch2e_2 ,p_g24_transmit_packet 
+001d c0398333 beq patch2e_3 ,p_g24_transmit_prep 
+001e c03a8310 beq patch2e_5 ,p_g24_read_len_pid_crc 
+001f c04082f0 beq patch30_1 ,p_g24_bind_data_process 
 0020 c04101e8 beq patch30_2 ,p_g24_bind_data_parse_next 
-0021 c04202b6 beq patch30_4 ,p_g24_receive_packet_parse_end 
-0022 c042831b beq patch30_5 ,p_g24_rx_interrupt_clear 
+0021 c04202bb beq patch30_4 ,p_g24_receive_packet_parse_end 
+0022 c0428320 beq patch30_5 ,p_g24_rx_interrupt_clear 
 0023 c0440220 beq patch31_0 ,p_g24_mode_switch_bind_search 
 0024 c045022d beq patch31_2 ,p_g24_bind_mode_auto 
-0025 c045831e beq patch31_3 ,p_g24_search_mode_auto 
-0026 c04d8327 beq patch33_3 ,p_g24_ackpayload_parse 
+0025 c0458323 beq patch31_3 ,p_g24_search_mode_auto 
+0026 c04d832c beq patch33_3 ,p_g24_ackpayload_parse 
 0027 c17f8000 rtneq patch3f_7 
 0028 2020235a branch assert 
 
@@ -430,12 +430,12 @@
 015d 2020235a branch assert 
 
 p_usb_tx_dpi_data:
-015e 6fe0c94f fetch 1 ,mem_usb_dpi_info_data 
+015e 6fe0c94e fetch 1 ,mem_usb_dpi_info_data 
 015f 207a0000 rtn blank 
 0160 1fe27200 copy pdata ,loopcnt 
-0161 d8c04950 arg mem_usb_dpi_info_data + 1 ,contr 
+0161 d8c0494f arg mem_usb_dpi_info_data + 1 ,contr 
 0162 20407bdb call usb_tx_ep2 
-0163 d8a0494f arg mem_usb_dpi_info_data ,contw 
+0163 d8a0494e arg mem_usb_dpi_info_data ,contw 
 
 p_usb_tx_buff_clr:
 0164 df200041 arg 65 ,loopcnt 
@@ -443,9 +443,9 @@
 
 p_usb_tx_protocol_data:
 0166 df200040 arg 64 ,loopcnt 
-0167 d8c04a0c arg mem_dg_protocol_usb_in_data_buff ,contr 
+0167 d8c04a0b arg mem_dg_protocol_usb_in_data_buff ,contr 
 0168 20407bdb call usb_tx_ep2 
-0169 d8a04a0c arg mem_dg_protocol_usb_in_data_buff ,contw 
+0169 d8a04a0b arg mem_dg_protocol_usb_in_data_buff ,contw 
 016a 20200164 branch p_usb_tx_buff_clr 
 
 p_rx_dcoc:
@@ -718,7 +718,7 @@
 0237 20203307 branch g24_bind_init + 8 
 
 p_dongle_usb_dispatch:
-0238 20200370 branch p_dongle_usb_dispatch_analysis 
+0238 20200375 branch p_dongle_usb_dispatch_analysis 
 
 p_wdt_kick:
 0239 58000010 setarg 16 
@@ -748,11 +748,11 @@
 024d 20203195 branch g24_transmit 
 
 p_app_init:
-024e 5800034e setarg p_dongle_dispatch 
+024e 58000353 setarg p_dongle_dispatch 
 024f 67e145e0 store 2 ,mem_cb_24g_receive_process 
-0250 580003c1 setarg p_dongle_g24_mouse 
+0250 580003d9 setarg p_dongle_g24_mouse 
 0251 67e145e4 store 2 ,mem_cb_24g_data_device1 
-0252 58000405 setarg p_dongle_g24_kb 
+0252 5800041f setarg p_dongle_g24_kb 
 0253 67e145e6 store 2 ,mem_cb_24g_data_device2 
 0254 58000259 setarg p_dongle_ackpayload_prep 
 0255 67e145e2 store 2 ,mem_cb_24g_ackpayload 
@@ -767,12 +767,12 @@
 
 p_dongle_ackpayload_prep_mouse:
 025c 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
-025d c2800286 bbit1 0 ,p_dongle_pc_sleep_ackpayload_prep_mouse 
+025d c280028b bbit1 0 ,p_dongle_pc_sleep_ackpayload_prep_mouse 
 025e 20200261 branch p_dongle_ackpayload_prep_end 
 
 p_dongle_ackpayload_prep_keyboard:
 025f 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
-0260 c280828a bbit1 1 ,p_dongle_pc_sleep_ackpayload_prep_keyboard 
+0260 c280828f bbit1 1 ,p_dongle_pc_sleep_ackpayload_prep_keyboard 
 
 p_dongle_ackpayload_prep_end:
 0261 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
@@ -816,546 +816,580 @@
 027d 20600000 rtn 
 
 p_dongle_g24_protocol_ackpayload_prep:
-027e 6fe0ca4d fetch 1 ,mem_24g_device_type 
+027e 6fe0ca4c fetch 1 ,mem_24g_device_type 
 027f c0028282 beq ms_type ,p_dongle_g24_protocol_ms_ackpayload_prep 
-0280 c0050284 beq kb_type ,p_dongle_g24_protocol_kb_ackpayload_prep 
+0280 c0050289 beq kb_type ,p_dongle_g24_protocol_kb_ackpayload_prep 
 0281 20600000 rtn 
 
 p_dongle_g24_protocol_ms_ackpayload_prep:
 0282 70458901 jam type_ms ,mem_24g_data_type 
-0283 20600000 rtn 
+0283 6fe0ca4e fetch 1 ,mem_dongle_ms_ep2_ack_data 
+0284 67e0c588 store 1 ,mem_24g_datalen 
+0285 1fe27200 copy pdata ,loopcnt 
+0286 d8c04a4f arg mem_dongle_ms_ep2_ack_data + 1 ,contr 
+0287 d8a046dd arg mem_24g_txbuf_new ,contw 
+0288 20207cda branch memcpy 
 
 p_dongle_g24_protocol_kb_ackpayload_prep:
-0284 70458902 jam type_kb ,mem_24g_data_type 
-0285 20600000 rtn 
+0289 70458902 jam type_kb ,mem_24g_data_type 
+028a 20600000 rtn 
 
 p_dongle_pc_sleep_ackpayload_prep_mouse:
-0286 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
-0287 793ffe00 set0 0 ,pdata 
-0288 67e0c693 store 1 ,mem_dg_pc_sleep_flag 
-0289 2020028d branch p_dongle_pc_sleep_ackpayload_prep 
+028b 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+028c 793ffe00 set0 0 ,pdata 
+028d 67e0c693 store 1 ,mem_dg_pc_sleep_flag 
+028e 20200292 branch p_dongle_pc_sleep_ackpayload_prep 
 
 p_dongle_pc_sleep_ackpayload_prep_keyboard:
-028a 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
-028b 793ffe01 set0 1 ,pdata 
-028c 67e0c693 store 1 ,mem_dg_pc_sleep_flag 
+028f 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+0290 793ffe01 set0 1 ,pdata 
+0291 67e0c693 store 1 ,mem_dg_pc_sleep_flag 
 
 p_dongle_pc_sleep_ackpayload_prep:
-028d 70458801 jam 0x01 ,mem_24g_datalen 
-028e 580000ff setarg 0xff 
-028f 2020027c branch p_dongle_g24_txbuf_store 
+0292 70458801 jam 0x01 ,mem_24g_datalen 
+0293 580000ff setarg 0xff 
+0294 2020027c branch p_dongle_g24_txbuf_store 
 
 p_dongle_work_mode_auto:
-0290 6fe0c616 fetch 1 ,mem_24g_work_mode 
-0291 c1800000 rtnne dongle_work 
-0292 204002a4 call p_g24_work_mode_start 
-0293 20404827 call dongle_g24_blank_data_process 
-0294 6fe0c610 fetch 1 ,mem_24g_pair_mode 
-0295 247a0000 nrtn blank 
-0296 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
-0297 c1800000 rtnne 0 
-0298 6fe0c614 fetch 1 ,mem_24g_nodata_timer_enable 
-0299 207a0000 rtn blank 
-029a d8e00008 arg g24_timer_nodata ,queue 
-029b 20407cef call timer_check 
-029c 247a0000 nrtn blank 
-029d 2040351b call g24_ch_process + 3 
-029e 20203511 branch g24_nodata_timer_over 
+0295 6fe0c616 fetch 1 ,mem_24g_work_mode 
+0296 c1800000 rtnne dongle_work 
+0297 204002a9 call p_g24_work_mode_start 
+0298 20404827 call dongle_g24_blank_data_process 
+0299 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+029a 247a0000 nrtn blank 
+029b 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
+029c c1800000 rtnne 0 
+029d 6fe0c614 fetch 1 ,mem_24g_nodata_timer_enable 
+029e 207a0000 rtn blank 
+029f d8e00008 arg g24_timer_nodata ,queue 
+02a0 20407cef call timer_check 
+02a1 247a0000 nrtn blank 
+02a2 2040351b call g24_ch_process + 3 
+02a3 20203511 branch g24_nodata_timer_over 
 
 p_g24_ch_process:
-029f 6fe0c60a fetch 1 ,mem_24g_abort_packet 
-02a0 c000b5ea beq 1 ,rssi_noise_monitor 
-02a1 6fe0c612 fetch 1 ,mem_24g_hop_packet 
-02a2 c000b52c beq 1 ,g24_ch_receive_hop_pac 
-02a3 20600000 rtn 
+02a4 6fe0c60a fetch 1 ,mem_24g_abort_packet 
+02a5 c000b5ea beq 1 ,rssi_noise_monitor 
+02a6 6fe0c612 fetch 1 ,mem_24g_hop_packet 
+02a7 c000b52c beq 1 ,g24_ch_receive_hop_pac 
+02a8 20600000 rtn 
 
 p_g24_work_mode_start:
-02a4 6fe0c616 fetch 1 ,mem_24g_work_mode 
-02a5 c1800000 rtnne dongle_work 
-02a6 20403451 call g24_work_init 
-02a7 2040029f call p_g24_ch_process 
+02a9 6fe0c616 fetch 1 ,mem_24g_work_mode 
+02aa c1800000 rtnne dongle_work 
+02ab 20403451 call g24_work_init 
+02ac 204002a4 call p_g24_ch_process 
 
 p_g24_receive_packet_start:
-02a8 204002e0 call p_g24_receive_transmit_ack 
-02a9 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+02ad 204002e5 call p_g24_receive_transmit_ack 
+02ae 2437b3be nbranch g24_rx_interrupt_clear ,user3 
 
 p_g24_receive_packet_parse:
-02aa 204033e3 call g24_receive_packet_parse_pid_crc 
-02ab 243433be nbranch g24_rx_interrupt_clear ,user 
-02ac 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-02ad 203a33be branch g24_rx_interrupt_clear ,blank 
-02ae 1fe0fe02 increase 2 ,pdata 
-02af 98007200 iforce loopcnt 
-02b0 d8c04697 arg mem_24g_rxbuf_new ,contr 
-02b1 d8a047af arg mem_24g_rxdata_temp_new ,contw 
-02b2 20407cda call memcpy 
-02b3 70461300 jam 0 ,mem_24g_mode_switch 
-02b4 6fe0c610 fetch 1 ,mem_24g_pair_mode 
-02b5 205a02bc call p_g24_enable_nodata_timer ,blank 
+02af 204033e3 call g24_receive_packet_parse_pid_crc 
+02b0 243433be nbranch g24_rx_interrupt_clear ,user 
+02b1 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+02b2 203a33be branch g24_rx_interrupt_clear ,blank 
+02b3 1fe0fe02 increase 2 ,pdata 
+02b4 98007200 iforce loopcnt 
+02b5 d8c04697 arg mem_24g_rxbuf_new ,contr 
+02b6 d8a047af arg mem_24g_rxdata_temp_new ,contw 
+02b7 20407cda call memcpy 
+02b8 70461300 jam 0 ,mem_24g_mode_switch 
+02b9 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+02ba 205a02c1 call p_g24_enable_nodata_timer ,blank 
 
 p_g24_receive_packet_parse_end:
-02b6 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
-02b7 c07f82da beq datatype_attemp ,p_g24_data_receive_attemp 
-02b8 1fe17e03 and pdata ,0x03 ,pdata 
-02b9 c00082c2 beq datatype_device1 ,p_g24_data_device1 
-02ba c00102d4 beq datatype_device2 ,p_g24_data_device2 
-02bb 202033be branch g24_rx_interrupt_clear 
+02bb 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
+02bc c07f82df beq datatype_attemp ,p_g24_data_receive_attemp 
+02bd 1fe17e03 and pdata ,0x03 ,pdata 
+02be c00082c7 beq datatype_device1 ,p_g24_data_device1 
+02bf c00102d9 beq datatype_device2 ,p_g24_data_device2 
+02c0 202033be branch g24_rx_interrupt_clear 
 
 p_g24_enable_nodata_timer:
-02bc 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
-02bd 203a33fe branch g24_enable_nodata_timer ,blank 
-02be 70461401 jam 1 ,mem_24g_nodata_timer_enable 
-02bf 58000640 setarg 1600 
-02c0 d8e00008 arg g24_timer_nodata ,queue 
-02c1 20207ce1 branch timer_init 
+02c1 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
+02c2 203a33fe branch g24_enable_nodata_timer ,blank 
+02c3 70461401 jam 1 ,mem_24g_nodata_timer_enable 
+02c4 58000640 setarg 1600 
+02c5 d8e00008 arg g24_timer_nodata ,queue 
+02c6 20207ce1 branch timer_init 
 
 p_g24_data_device1:
-02c2 2040338d call g24_binding_dvc1_living 
-02c3 2040352e call g24_ch_timer_reinit 
-02c4 6fe0c60a fetch 1 ,mem_24g_abort_packet 
-02c5 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
-02c6 284ffe03 isolate1 bit_abort ,temp 
-02c7 7920fe00 setflag true ,0 ,pdata 
-02c8 67e0c60a store 1 ,mem_24g_abort_packet 
-02c9 c00082cd beq 1 ,p_g24_data_attemp_device1_abort 
-02ca 6fe0c612 fetch 1 ,mem_24g_hop_packet 
-02cb 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
-02cc 202033ce branch g24_data_device1_next 
+02c7 2040338d call g24_binding_dvc1_living 
+02c8 2040352e call g24_ch_timer_reinit 
+02c9 6fe0c60a fetch 1 ,mem_24g_abort_packet 
+02ca 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
+02cb 284ffe03 isolate1 bit_abort ,temp 
+02cc 7920fe00 setflag true ,0 ,pdata 
+02cd 67e0c60a store 1 ,mem_24g_abort_packet 
+02ce c00082d2 beq 1 ,p_g24_data_attemp_device1_abort 
+02cf 6fe0c612 fetch 1 ,mem_24g_hop_packet 
+02d0 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
+02d1 202033ce branch g24_data_device1_next 
 
 p_g24_data_attemp_device1_abort:
-02cd 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
-02ce 247a0000 nrtn blank 
-02cf 7045de01 jam 1 ,mem_24g_device1_bind_disable 
-02d0 6fe247b9 fetch 4 ,mem_24g_rxdata_temp_new + 10 
-02d1 202035a3 branch g24_store_device1_addr 
+02d2 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+02d3 247a0000 nrtn blank 
+02d4 7045de01 jam 1 ,mem_24g_device1_bind_disable 
+02d5 6fe247b9 fetch 4 ,mem_24g_rxdata_temp_new + 10 
+02d6 202035a3 branch g24_store_device1_addr 
 
 p_g24_data_attemp_device2_abort:
-02d2 6fe247b9 fetch 4 ,mem_24g_rxdata_temp_new + 10 
-02d3 202035a9 branch g24_store_device2_addr 
+02d7 6fe247b9 fetch 4 ,mem_24g_rxdata_temp_new + 10 
+02d8 202035a9 branch g24_store_device2_addr 
 
 p_g24_data_device2:
-02d4 20403393 call g24_binding_dvc2_living 
-02d5 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
-02d6 284ffe03 isolate1 bit_abort ,temp 
-02d7 202082d2 branch p_g24_data_attemp_device2_abort ,true 
-02d8 6fe145e6 fetch 2 ,mem_cb_24g_data_device2 
-02d9 20207d79 branch callback_func 
+02d9 20403393 call g24_binding_dvc2_living 
+02da 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
+02db 284ffe03 isolate1 bit_abort ,temp 
+02dc 202082d7 branch p_g24_data_attemp_device2_abort ,true 
+02dd 6fe145e6 fetch 2 ,mem_cb_24g_data_device2 
+02de 20207d79 branch callback_func 
 
 p_g24_data_receive_attemp:
-02da 204002de call p_g24_bind_device_status 
-02db 202001f8 branch p_g24_data_attemp 
+02df 204002e3 call p_g24_bind_device_status 
+02e0 202001f8 branch p_g24_data_attemp 
 
 p_g24_bind_device_status_check:
-02dc 6fe0c5d5 fetch 1 ,mem_24g_bind_device_status 
-02dd 207a0000 rtn blank 
+02e1 6fe0c5d5 fetch 1 ,mem_24g_bind_device_status 
+02e2 207a0000 rtn blank 
 
 p_g24_bind_device_status:
-02de 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-02df 2020339c branch g24_bind_device_status + 1 
+02e3 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+02e4 2020339c branch g24_bind_device_status + 1 
 
 p_g24_receive_transmit_ack:
-02e0 204033be call g24_rx_interrupt_clear 
-02e1 20403119 call g24_receive_packet 
-02e2 24778000 nrtn user3 
+02e5 204033be call g24_rx_interrupt_clear 
+02e6 20403119 call g24_receive_packet 
+02e7 24778000 nrtn user3 
 
 p_g24_transmit_ack:
-02e3 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
-02e4 1fe97e00 rshift3 pdata ,pdata 
-02e5 67e0c589 store 1 ,mem_24g_data_type 
-02e6 2040030b call p_g24_read_len_pid_crc 
-02e7 6fe0c7f5 fetch 1 ,mem_24g_rxdata_ack_flag 
-02e8 2feffe00 isolate1 bit_ack_24g ,pdata 
-02e9 2020b3fd branch g24tx_no_ack ,true 
-02ea 202033fa branch g24tx_with_ack 
+02e8 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
+02e9 1fe97e00 rshift3 pdata ,pdata 
+02ea 67e0c589 store 1 ,mem_24g_data_type 
+02eb 20400310 call p_g24_read_len_pid_crc 
+02ec 6fe0c7f5 fetch 1 ,mem_24g_rxdata_ack_flag 
+02ed 2feffe00 isolate1 bit_ack_24g ,pdata 
+02ee 2020b3fd branch g24tx_no_ack ,true 
+02ef 202033fa branch g24tx_with_ack 
 
 p_g24_bind_data_process:
-02eb 204033be call g24_rx_interrupt_clear 
-02ec 20403119 call g24_receive_packet 
-02ed 2437b3be nbranch g24_rx_interrupt_clear ,user3 
-02ee 204002f7 call p_g24_bind_data_parse 
-02ef 204002e3 call p_g24_transmit_ack 
-02f0 204002dc call p_g24_bind_device_status_check 
-02f1 2040493d call dongle_kb_bind_soft_reset 
-02f2 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
-02f3 207a0000 rtn blank 
-02f4 6fe2462c fetch 4 ,mem_24g_transmitter_addr 
-02f5 207a0000 rtn blank 
-02f6 20203236 branch g24_update_addr_and_synccrc8 
+02f0 204033be call g24_rx_interrupt_clear 
+02f1 20403119 call g24_receive_packet 
+02f2 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+02f3 204002fc call p_g24_bind_data_parse 
+02f4 204002e8 call p_g24_transmit_ack 
+02f5 204002e1 call p_g24_bind_device_status_check 
+02f6 2040493d call dongle_kb_bind_soft_reset 
+02f7 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+02f8 207a0000 rtn blank 
+02f9 6fe2462c fetch 4 ,mem_24g_transmitter_addr 
+02fa 207a0000 rtn blank 
+02fb 20203236 branch g24_update_addr_and_synccrc8 
 
 p_g24_bind_data_parse:
-02f7 70462205 jam bind_mode_continue ,mem_24g_bind_mode_continue 
-02f8 d8c04697 arg mem_24g_rxbuf_new ,contr 
-02f9 d8a047af arg mem_24g_rxdata_temp_new ,contw 
-02fa 20407c89 call memcpy8 
-02fb 20203322 branch g24_bind_data_parse_next 
+02fc 70462205 jam bind_mode_continue ,mem_24g_bind_mode_continue 
+02fd d8c04697 arg mem_24g_rxbuf_new ,contr 
+02fe d8a047af arg mem_24g_rxdata_temp_new ,contw 
+02ff 20407c89 call memcpy8 
+0300 20203322 branch g24_bind_data_parse_next 
 
 p_g24_receive_update_rxbuff:
-02fc 2040317d call g24_receive_byte 
-02fd 67e0c697 store 1 ,mem_24g_rxbuf_new 
-02fe c5138304 bmark1 mark_24g_rxmode ,p_g24_receive_skip 
-02ff 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
-0300 1fe97e00 rshift3 pdata ,pdata 
-0301 6848c589 fetcht 1 ,mem_24g_data_type 
-0302 a8400e00 icompare bits_data ,temp 
-0303 2420b18c nbranch g24_type_error ,true 
+0301 2040317d call g24_receive_byte 
+0302 67e0c697 store 1 ,mem_24g_rxbuf_new 
+0303 c5138309 bmark1 mark_24g_rxmode ,p_g24_receive_skip 
+0304 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
+0305 1fe97e00 rshift3 pdata ,pdata 
+0306 6848c589 fetcht 1 ,mem_24g_data_type 
+0307 a8400e00 icompare bits_data ,temp 
+0308 2420b18c nbranch g24_type_error ,true 
 
 p_g24_receive_skip:
-0304 2040317d call g24_receive_byte 
-0305 e7e08005 istore 1 ,contw 
-0306 1fe67c44 sub pdata ,68 ,null 
-0307 2421318e nbranch g24_len_over_error ,positive 
-0308 1fe27200 copy pdata ,loopcnt 
-0309 2022b154 branch g24rx_nopayload ,zero 
-030a 20203151 branch g24rx_loop 
+0309 2040317d call g24_receive_byte 
+030a e7e08005 istore 1 ,contw 
+030b 1fe67c44 sub pdata ,68 ,null 
+030c 2421318e nbranch g24_len_over_error ,positive 
+030d 1fe27200 copy pdata ,loopcnt 
+030e 2022b154 branch g24rx_nopayload ,zero 
+030f 20203151 branch g24rx_loop 
 
 p_g24_read_len_pid_crc:
-030b 6fe0c698 fetch 1 ,mem_24g_rxbuf_new + 1 
-030c 67e0c57d store 1 ,mem_24g_rxdata_length 
-030d 1fe0fe01 increase 1 ,pdata 
-030e d8c04698 arg mem_24g_rxbuf_new + 1 ,contr 
-030f 98c08c00 iadd contr ,contr 
-0310 efe18006 ifetch 3 ,contr 
-0311 67e1c580 store 3 ,mem_24g_sta_crc 
-0312 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
-0313 1fe10401 and pdata ,0x01 ,temp 
-0314 6048c7f5 storet 1 ,mem_24g_rxdata_ack_flag 
-0315 1fe30400 rshift pdata ,temp 
-0316 18410403 and temp ,0x03 ,temp 
-0317 6048c586 storet 1 ,mem_24g_sta_pid 
-0318 1fe97e00 rshift3 pdata ,pdata 
-0319 67e0c697 store 1 ,mem_24g_rxbuf_new 
-031a 20600000 rtn 
+0310 6fe0c698 fetch 1 ,mem_24g_rxbuf_new + 1 
+0311 67e0c57d store 1 ,mem_24g_rxdata_length 
+0312 1fe0fe01 increase 1 ,pdata 
+0313 d8c04698 arg mem_24g_rxbuf_new + 1 ,contr 
+0314 98c08c00 iadd contr ,contr 
+0315 efe18006 ifetch 3 ,contr 
+0316 67e1c580 store 3 ,mem_24g_sta_crc 
+0317 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
+0318 1fe10401 and pdata ,0x01 ,temp 
+0319 6048c7f5 storet 1 ,mem_24g_rxdata_ack_flag 
+031a 1fe30400 rshift pdata ,temp 
+031b 18410403 and temp ,0x03 ,temp 
+031c 6048c586 storet 1 ,mem_24g_sta_pid 
+031d 1fe97e00 rshift3 pdata ,pdata 
+031e 67e0c697 store 1 ,mem_24g_rxbuf_new 
+031f 20600000 rtn 
 
 p_g24_rx_interrupt_clear:
-031b d8a04697 arg mem_24g_rxbuf_new ,contw 
-031c df200046 arg 70 ,loopcnt 
-031d 20207ca1 branch clear_mem 
+0320 d8a04697 arg mem_24g_rxbuf_new ,contw 
+0321 df200046 arg 70 ,loopcnt 
+0322 20207ca1 branch clear_mem 
 
 p_g24_search_mode_auto:
-031e 6fe0c616 fetch 1 ,mem_24g_work_mode 
-031f c1838000 rtnne dongle_search 
-0320 20403476 call g24_search_mode_init 
-0321 204034ae call g24_auto_addr_ch_search 
-0322 204002e0 call p_g24_receive_transmit_ack 
-0323 2437b3be nbranch g24_rx_interrupt_clear ,user3 
-0324 20403506 call g24_receiver_addr_check 
-0325 204282aa call p_g24_receive_packet_parse ,zero 
-0326 20203491 branch g24_search_mode_auto + 9 
+0323 6fe0c616 fetch 1 ,mem_24g_work_mode 
+0324 c1838000 rtnne dongle_search 
+0325 20403476 call g24_search_mode_init 
+0326 204034ae call g24_auto_addr_ch_search 
+0327 204002e5 call p_g24_receive_transmit_ack 
+0328 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+0329 20403506 call g24_receiver_addr_check 
+032a 204282af call p_g24_receive_packet_parse ,zero 
+032b 20203491 branch g24_search_mode_auto + 9 
 
 p_g24_ackpayload_parse:
-0327 20403214 call g24_read_len_pid_crc 
-0328 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0329 207a0000 rtn blank 
-032a 98007200 iforce loopcnt 
-032b d8c04699 arg mem_24g_rxbuf_new + 2 ,contr 
-032c d8a04769 arg mem_24g_rxpayload_new ,contw 
-032d 20207cda branch memcpy 
+032c 20403214 call g24_read_len_pid_crc 
+032d 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+032e 207a0000 rtn blank 
+032f 98007200 iforce loopcnt 
+0330 d8c04699 arg mem_24g_rxbuf_new + 2 ,contr 
+0331 d8a04769 arg mem_24g_rxpayload_new ,contw 
+0332 20207cda branch memcpy 
 
 p_g24_transmit_prep:
-032e 6fe0c588 fetch 1 ,mem_24g_datalen 
-032f 1fe0fe03 increase 3 ,pdata 
-0330 67e0c58a store 1 ,mem_24g_txlen 
-0331 6fe0c5ac fetch 1 ,mem_24g_syncword_crc8 
-0332 67e0c723 store 1 ,mem_24g_txpayload_new 
-0333 6fe0c589 fetch 1 ,mem_24g_data_type 
-0334 1fe9fe00 lshift3 pdata ,pdata 
-0335 6848c57e fetcht 1 ,mem_24g_pid 
-0336 18410403 and temp ,0x03 ,temp 
-0337 18438400 lshift temp ,temp 
-0338 9841fe00 ior temp ,pdata 
-0339 6848c57f fetcht 1 ,mem_24g_no_ack 
-033a 9840fe00 iadd temp ,pdata 
-033b e7e08005 istore 1 ,contw 
-033c 6fe0c588 fetch 1 ,mem_24g_datalen 
-033d e7e08005 istore 1 ,contw 
-033e 6fe0c588 fetch 1 ,mem_24g_datalen 
-033f 98007200 iforce loopcnt 
-0340 d8c046dd arg mem_24g_txbuf_new ,contr 
-0341 20407cda call memcpy 
-0342 202031fc branch g24_transmit_prep_pdu_end 
+0333 6fe0c588 fetch 1 ,mem_24g_datalen 
+0334 1fe0fe03 increase 3 ,pdata 
+0335 67e0c58a store 1 ,mem_24g_txlen 
+0336 6fe0c5ac fetch 1 ,mem_24g_syncword_crc8 
+0337 67e0c723 store 1 ,mem_24g_txpayload_new 
+0338 6fe0c589 fetch 1 ,mem_24g_data_type 
+0339 1fe9fe00 lshift3 pdata ,pdata 
+033a 6848c57e fetcht 1 ,mem_24g_pid 
+033b 18410403 and temp ,0x03 ,temp 
+033c 18438400 lshift temp ,temp 
+033d 9841fe00 ior temp ,pdata 
+033e 6848c57f fetcht 1 ,mem_24g_no_ack 
+033f 9840fe00 iadd temp ,pdata 
+0340 e7e08005 istore 1 ,contw 
+0341 6fe0c588 fetch 1 ,mem_24g_datalen 
+0342 e7e08005 istore 1 ,contw 
+0343 6fe0c588 fetch 1 ,mem_24g_datalen 
+0344 98007200 iforce loopcnt 
+0345 d8c046dd arg mem_24g_txbuf_new ,contr 
+0346 20407cda call memcpy 
+0347 202031fc branch g24_transmit_prep_pdu_end 
 
 p_g24_transmit_packet:
-0343 c5178348 bmark1 mark_ble_lr ,p_g24_transmit_nolr 
-0344 6fe0c5ca fetch 1 ,mem_24g_disable_fec1 
-0345 243a0348 nbranch p_g24_transmit_nolr ,blank 
-0346 784efc00 disable encode_fec0 
-0347 782dfc00 enable encode_fec1 
+0348 c517834d bmark1 mark_ble_lr ,p_g24_transmit_nolr 
+0349 6fe0c5ca fetch 1 ,mem_24g_disable_fec1 
+034a 243a034d nbranch p_g24_transmit_nolr ,blank 
+034b 784efc00 disable encode_fec0 
+034c 782dfc00 enable encode_fec1 
 
 p_g24_transmit_nolr:
-0348 7823fc00 enable enable_white 
-0349 7824fc00 enable enable_crc 
-034a 6fe0c58a fetch 1 ,mem_24g_txlen 
-034b 98007200 iforce loopcnt 
-034c d8c04723 arg mem_24g_txpayload_new ,contr 
-034d 202031b3 branch g24tr_loop 
+034d 7823fc00 enable enable_white 
+034e 7824fc00 enable enable_crc 
+034f 6fe0c58a fetch 1 ,mem_24g_txlen 
+0350 98007200 iforce loopcnt 
+0351 d8c04723 arg mem_24g_txpayload_new ,contr 
+0352 202031b3 branch g24tr_loop 
 
 p_dongle_dispatch:
 
 p_dongle_auto_bind:
-034e 20403402 call g24_mode_switch_init 
+0353 20403402 call g24_mode_switch_init 
 
 p_dongle_auto_bind_loop:
-034f 20403407 call g24_mode_switch_bind_work 
-0350 2040342d call g24_mode_switch_bind_search 
-0351 204048a3 call dongle_work_mode_auto 
-0352 20403469 call g24_bind_mode_auto 
-0353 20403488 call g24_search_mode_auto 
-0354 20404867 call dongle_usb_dispatch 
-0355 20400358 call p_dongle_keyboard_heart_tick_timer 
-0356 20400364 call p_dongle_mouse_heart_tick_timer 
-0357 2020034f branch p_dongle_auto_bind_loop 
+0354 20403407 call g24_mode_switch_bind_work 
+0355 2040342d call g24_mode_switch_bind_search 
+0356 204048a3 call dongle_work_mode_auto 
+0357 20403469 call g24_bind_mode_auto 
+0358 20403488 call g24_search_mode_auto 
+0359 20404867 call dongle_usb_dispatch 
+035a 2040035d call p_dongle_keyboard_heart_tick_timer 
+035b 20400369 call p_dongle_mouse_heart_tick_timer 
+035c 20200354 branch p_dongle_auto_bind_loop 
 
 p_dongle_keyboard_heart_tick_timer:
-0358 d840fffe arg 0xfffe ,temp 
-0359 6fe147f8 fetch 2 ,mem_dg_keyboard_heart_tick_timer 
-035a 98467c00 isub temp ,null 
-035b 20610000 rtn positive 
-035c 1fe0fe01 increase 1 ,pdata 
-035d 67e147f8 store 2 ,mem_dg_keyboard_heart_tick_timer 
-035e d8400000 arg 0 ,temp 
-035f da6005dc arg 1500 ,regc 
-0360 9a667c00 isub regc ,null 
-0361 79210400 setflag positive ,0 ,temp 
-0362 6048c7fc storet 1 ,mem_dg_keyboard_connected_status 
-0363 20600000 rtn 
+035d d840fffe arg 0xfffe ,temp 
+035e 6fe147f8 fetch 2 ,mem_dg_keyboard_heart_tick_timer 
+035f 98467c00 isub temp ,null 
+0360 20610000 rtn positive 
+0361 1fe0fe01 increase 1 ,pdata 
+0362 67e147f8 store 2 ,mem_dg_keyboard_heart_tick_timer 
+0363 d8400000 arg 0 ,temp 
+0364 da6005dc arg 1500 ,regc 
+0365 9a667c00 isub regc ,null 
+0366 79210400 setflag positive ,0 ,temp 
+0367 6048c7fc storet 1 ,mem_dg_keyboard_connected_status 
+0368 20600000 rtn 
 
 p_dongle_mouse_heart_tick_timer:
-0364 d840fffe arg 0xfffe ,temp 
-0365 6fe147fa fetch 2 ,mem_dg_mouse_heart_tick_timer 
-0366 98467c00 isub temp ,null 
-0367 20610000 rtn positive 
-0368 1fe0fe01 increase 1 ,pdata 
-0369 67e147fa store 2 ,mem_dg_mouse_heart_tick_timer 
-036a d8400000 arg 0 ,temp 
-036b da6005dc arg 1500 ,regc 
-036c 9a667c00 isub regc ,null 
-036d 79210400 setflag positive ,0 ,temp 
-036e 6048c7fd storet 1 ,mem_dg_mouse_connected_status 
-036f 20600000 rtn 
+0369 d840fffe arg 0xfffe ,temp 
+036a 6fe147fa fetch 2 ,mem_dg_mouse_heart_tick_timer 
+036b 98467c00 isub temp ,null 
+036c 20610000 rtn positive 
+036d 1fe0fe01 increase 1 ,pdata 
+036e 67e147fa store 2 ,mem_dg_mouse_heart_tick_timer 
+036f d8400000 arg 0 ,temp 
+0370 da6005dc arg 1500 ,regc 
+0371 9a667c00 isub regc ,null 
+0372 79210400 setflag positive ,0 ,temp 
+0373 6048c7fd storet 1 ,mem_dg_mouse_connected_status 
+0374 20600000 rtn 
 
 p_dongle_usb_dispatch_analysis:
-0370 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
-0371 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
-0372 20407906 call usb_isr 
-0373 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
-0374 207a0000 rtn blank 
-0375 7008f700 jam 0 ,mem_usb0_get_set_report 
-0376 6fe08875 fetch 1 ,mem_usb0_set_report_data 
-0377 c07b8380 beq cmd_check_status ,p_dongle_dispose_cmd_check_status 
-0378 c07b038e beq cmd_set ,p_dongle_dispose_cmd_set 
-0379 c07a8391 beq cmd_set_dpi ,p_dongle_dispose_cmd_set_dpi 
-037a c07e0397 beq cmd_get_in_data ,p_dongle_dispose_cmd_get_in_data 
-037b c07f039d beq cmd_get_translen ,p_dongle_dispose_cmd_get_translen 
-037c c03d03a0 beq cmd_set_test ,p_dongle_dispose_cmd_set_test 
-037d c05003a8 beq cmd_set_key_matrix ,p_dongle_dispose_cmd_set_key_matrix 
-037e c05083b6 beq cmd_get_key_matrix ,p_dongle_dispose_cmd_get_key_matrix 
-037f 20204875 branch dongle_usb_dispatch_next 
+0375 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
+0376 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
+0377 20407906 call usb_isr 
+0378 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
+0379 207a0000 rtn blank 
+037a 7008f700 jam 0 ,mem_usb0_get_set_report 
+037b 6fe08875 fetch 1 ,mem_usb0_set_report_data 
+037c c07b839e beq cmd_check_status ,p_dongle_dispose_cmd_check_status 
+037d c07b03ac beq cmd_set ,p_dongle_dispose_cmd_set 
+037e c07a838e beq cmd_set_dpi ,p_dongle_dispose_ms_cmd_set_dpi 
+037f c07a0398 beq cmd_set_report ,p_dongle_dispose_ms_cmd_set_report 
+0380 c07e03af beq cmd_get_in_data ,p_dongle_dispose_cmd_get_in_data 
+0381 c07f03b5 beq cmd_get_translen ,p_dongle_dispose_cmd_get_translen 
+0382 c03d03b8 beq cmd_set_test ,p_dongle_dispose_cmd_set_test 
+0383 c05003c0 beq cmd_set_key_matrix ,p_dongle_dispose_cmd_set_key_matrix 
+0384 c05083ce beq cmd_get_key_matrix ,p_dongle_dispose_cmd_get_key_matrix 
+0385 20204875 branch dongle_usb_dispatch_next 
+
+p_dongle_ms_ep2_ack_data_clr:
+0386 df200041 arg 65 ,loopcnt 
+0387 d8a04a4e arg mem_dongle_ms_ep2_ack_data ,contw 
+0388 20207ca1 branch clear_mem 
+
+p_dongle_ms_ep2_ack_data_copy:
+0389 704a4d01 jam 1 ,mem_dongle_ms_ep2_ack_data_flag 
+038a 70461108 jam protocol_ackpayload ,mem_24g_ackpayload_enable 
+038b d8c00875 arg mem_usb0_set_report_data ,contr 
+038c d8a04a4f arg mem_dongle_ms_ep2_ack_data + 1 ,contw 
+038d 20207cda branch memcpy 
+
+p_dongle_dispose_ms_cmd_set_dpi:
+038e 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+038f c1828000 rtnne ms_type 
+0390 20400386 call p_dongle_ms_ep2_ack_data_clr 
+0391 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+0392 67e0ca4c store 1 ,mem_24g_device_type 
+0393 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+0394 67e0c94d store 1 ,mem_dg_mouse_dpi_level 
+
+p_dongle_ms_ack_data_copy:
+0395 704a4e04 jam 4 ,mem_dongle_ms_ep2_ack_data 
+0396 df200004 arg 4 ,loopcnt 
+0397 20200389 branch p_dongle_ms_ep2_ack_data_copy 
+
+p_dongle_dispose_ms_cmd_set_report:
+0398 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+0399 c1828000 rtnne ms_type 
+039a 20400386 call p_dongle_ms_ep2_ack_data_clr 
+039b 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+039c 67e0ca4c store 1 ,mem_24g_device_type 
+039d 20200395 branch p_dongle_ms_ack_data_copy 
 
 p_dongle_dispose_cmd_check_status:
-0380 58000064 setarg 0x64 
-0381 67e0ca0c store 1 ,mem_dg_protocol_usb_in_data_buff 
-0382 58000064 setarg 0x64 
-0383 67e0ca0d store 1 ,mem_dg_protocol_usb_in_data_buff + 1 
-0384 58000000 setarg 0x00 
-0385 67e0ca0e store 1 ,mem_dg_protocol_usb_in_data_buff + 2 
-0386 58000000 setarg 0x00 
-0387 67e0ca0f store 1 ,mem_dg_protocol_usb_in_data_buff + 3 
-0388 58000001 setarg 0x01 
-0389 67e0ca10 store 1 ,mem_dg_protocol_usb_in_data_buff + 4 
-038a 6fe2458f fetch 4 ,mem_24g_addr 
-038b 67e24a13 store 4 ,mem_dg_protocol_usb_in_data_buff + 7 
-038c 70090c24 jam usb_ep2_protocol ,mem_usb_ep2_data 
-038d 202003fc branch p_dongle_usb_tx_enable_ep2 
+039e 58000064 setarg 0x64 
+039f 67e0ca0b store 1 ,mem_dg_protocol_usb_in_data_buff 
+03a0 58000064 setarg 0x64 
+03a1 67e0ca0c store 1 ,mem_dg_protocol_usb_in_data_buff + 1 
+03a2 58000000 setarg 0x00 
+03a3 67e0ca0d store 1 ,mem_dg_protocol_usb_in_data_buff + 2 
+03a4 58000000 setarg 0x00 
+03a5 67e0ca0e store 1 ,mem_dg_protocol_usb_in_data_buff + 3 
+03a6 58000001 setarg 0x01 
+03a7 67e0ca0f store 1 ,mem_dg_protocol_usb_in_data_buff + 4 
+03a8 6fe2458f fetch 4 ,mem_24g_addr 
+03a9 67e24a12 store 4 ,mem_dg_protocol_usb_in_data_buff + 7 
+03aa 70090c24 jam usb_ep2_protocol ,mem_usb_ep2_data 
+03ab 20200416 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_dispose_cmd_set:
-038e 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-038f 67e0c7ff store 1 ,mem_dg_data_type 
-0390 20600000 rtn 
-
-p_dongle_dispose_cmd_set_dpi:
-0391 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
-0392 c1828000 rtnne ms_type 
-0393 67e0ca4d store 1 ,mem_24g_device_type 
-0394 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-0395 67e0c94d store 1 ,mem_dg_mouse_dpi_level 
-0396 20600000 rtn 
+03ac 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+03ad 67e0c7ff store 1 ,mem_dg_data_type 
+03ae 20600000 rtn 
 
 p_dongle_dispose_cmd_get_in_data:
-0397 70087500 jam 0 ,mem_usb0_set_report_data 
-0398 d8c04803 arg mem_dg_usb_get_buff ,contr 
-0399 d8a008b5 arg mem_usb0_get_report_data ,contw 
-039a df200040 arg 64 ,loopcnt 
-039b 20407ccc call memcpy_fast 
-039c 2020487a branch dongle_usb0_data_ready_report_set0 
+03af 70087500 jam 0 ,mem_usb0_set_report_data 
+03b0 d8c04803 arg mem_dg_usb_get_buff ,contr 
+03b1 d8a008b5 arg mem_usb0_get_report_data ,contw 
+03b2 df200040 arg 64 ,loopcnt 
+03b3 20407ccc call memcpy_fast 
+03b4 2020487a branch dongle_usb0_data_ready_report_set0 
 
 p_dongle_dispose_cmd_get_translen:
-039d 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-039e 67e0c800 store 1 ,mem_dg_data_len 
-039f 2020487a branch dongle_usb0_data_ready_report_set0 
+03b5 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+03b6 67e0c800 store 1 ,mem_dg_data_len 
+03b7 2020487a branch dongle_usb0_data_ready_report_set0 
 
 p_dongle_dispose_cmd_set_test:
-03a0 70461602 jam dongle_test ,mem_24g_work_mode 
-03a1 70461500 jam clear_init ,mem_24g_mode_init 
-03a2 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-03a3 67e0c801 store 1 ,mem_dg_test_mode 
-03a4 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
-03a5 67e0c802 store 1 ,mem_dg_test_ch 
-03a6 7008b601 jam 0x01 ,mem_usb0_get_report_data + 1 
-03a7 20204880 branch dongle_usb0_data_ready_report_set1 
+03b8 70461602 jam dongle_test ,mem_24g_work_mode 
+03b9 70461500 jam clear_init ,mem_24g_mode_init 
+03ba 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+03bb 67e0c801 store 1 ,mem_dg_test_mode 
+03bc 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
+03bd 67e0c802 store 1 ,mem_dg_test_ch 
+03be 7008b601 jam 0x01 ,mem_usb0_get_report_data + 1 
+03bf 20204880 branch dongle_usb0_data_ready_report_set1 
 
 p_dongle_dispose_cmd_set_key_matrix:
-03a8 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-03a9 67e0c990 store 1 ,mem_dg_keyboard_keymatrix_profile 
-03aa 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
-03ab 67e0c991 store 1 ,mem_dg_keyboard_keymatrix_type 
-03ac 6fe08879 fetch 1 ,mem_usb0_set_report_data + 4 
-03ad 67e0c992 store 1 ,mem_dg_keyboard_keymatrix_page 
-03ae 6fe0887a fetch 1 ,mem_usb0_set_report_data + 5 
-03af 67e0c993 store 1 ,mem_dg_keyboard_keymatrix_len 
-03b0 1fe27200 copy pdata ,loopcnt 
-03b1 d8c0087e arg mem_usb0_set_report_data + 9 ,contr 
-03b2 d8a04994 arg mem_dg_keyboard_keymatrix_setup_keyvalue ,contw 
-03b3 20407ccc call memcpy_fast 
-03b4 7008b601 jam 0x01 ,mem_usb0_get_report_data + 1 
-03b5 20204880 branch dongle_usb0_data_ready_report_set1 
+03c0 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+03c1 67e0c98f store 1 ,mem_dg_keyboard_keymatrix_profile 
+03c2 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
+03c3 67e0c990 store 1 ,mem_dg_keyboard_keymatrix_type 
+03c4 6fe08879 fetch 1 ,mem_usb0_set_report_data + 4 
+03c5 67e0c991 store 1 ,mem_dg_keyboard_keymatrix_page 
+03c6 6fe0887a fetch 1 ,mem_usb0_set_report_data + 5 
+03c7 67e0c992 store 1 ,mem_dg_keyboard_keymatrix_len 
+03c8 1fe27200 copy pdata ,loopcnt 
+03c9 d8c0087e arg mem_usb0_set_report_data + 9 ,contr 
+03ca d8a04993 arg mem_dg_keyboard_keymatrix_setup_keyvalue ,contw 
+03cb 20407ccc call memcpy_fast 
+03cc 7008b601 jam 0x01 ,mem_usb0_get_report_data + 1 
+03cd 20204880 branch dongle_usb0_data_ready_report_set1 
 
 p_dongle_dispose_cmd_get_key_matrix:
-03b6 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-03b7 67e0c990 store 1 ,mem_dg_keyboard_keymatrix_profile 
-03b8 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
-03b9 67e0c991 store 1 ,mem_dg_keyboard_keymatrix_type 
-03ba 6fe08879 fetch 1 ,mem_usb0_set_report_data + 4 
-03bb 67e0c992 store 1 ,mem_dg_keyboard_keymatrix_page 
-03bc df200040 arg 64 ,loopcnt 
-03bd d8a049cc arg mem_dg_keyboard_keymatrix_getup_keyvalue ,contw 
-03be d8a008b6 arg mem_usb0_get_report_data + 1 ,contw 
-03bf 20407ccc call memcpy_fast 
-03c0 20204880 branch dongle_usb0_data_ready_report_set1 
+03ce 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+03cf 67e0c98f store 1 ,mem_dg_keyboard_keymatrix_profile 
+03d0 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
+03d1 67e0c990 store 1 ,mem_dg_keyboard_keymatrix_type 
+03d2 6fe08879 fetch 1 ,mem_usb0_set_report_data + 4 
+03d3 67e0c991 store 1 ,mem_dg_keyboard_keymatrix_page 
+03d4 df200040 arg 64 ,loopcnt 
+03d5 d8a049cb arg mem_dg_keyboard_keymatrix_getup_keyvalue ,contw 
+03d6 d8a008b6 arg mem_usb0_get_report_data + 1 ,contw 
+03d7 20407ccc call memcpy_fast 
+03d8 20204880 branch dongle_usb0_data_ready_report_set1 
 
 p_dongle_g24_mouse:
-03c1 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
-03c2 c28303e8 bbit1 data_dpi ,p_dongle_receive_ms_dpi_info 
-03c3 c28383f5 bbit1 data_battery ,p_dongle_receive_ms_battery_info 
-03c4 c28283f8 bbit1 data_heart ,p_dongle_receive_ms_heart_info 
+03d9 70461100 jam 0 ,mem_24g_ackpayload_enable 
+03da 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
+03db c2830401 bbit1 data_dpi ,p_dongle_receive_ms_dpi_info 
+03dc c283840e bbit1 data_battery ,p_dongle_receive_ms_battery_info 
+03dd c2828411 bbit1 data_heart ,p_dongle_receive_ms_heart_info 
 
 p_dongle_g24_mouse_next:
-03c5 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-03c6 1fe67c09 sub pdata ,0x09 ,null 
-03c7 202283d5 branch p_dongle_g24_mouse_data ,zero 
-03c8 204003d5 call p_dongle_g24_mouse_data 
-03c9 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-03ca 1fe0fff8 add pdata ,-8 ,pdata 
-03cb 67e0c57d store 1 ,mem_24g_rxdata_length 
-03cc 1fe27200 copy pdata ,loopcnt 
-03cd d8a047b1 arg mem_24g_rxdata_temp_new + 2 ,contw 
-03ce d8c047b9 arg mem_24g_rxdata_temp_new + 10 ,contr 
-03cf 20407cda call memcpy 
-03d0 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
-03d1 c28303e8 bbit1 data_dpi ,p_dongle_receive_ms_dpi_info 
-03d2 c28383f5 bbit1 data_battery ,p_dongle_receive_ms_battery_info 
-03d3 c28283f8 bbit1 data_heart ,p_dongle_receive_ms_heart_info 
-03d4 20600000 rtn 
+03de 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+03df 1fe67c09 sub pdata ,0x09 ,null 
+03e0 202283ee branch p_dongle_g24_mouse_data ,zero 
+03e1 204003ee call p_dongle_g24_mouse_data 
+03e2 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+03e3 1fe0fff8 add pdata ,-8 ,pdata 
+03e4 67e0c57d store 1 ,mem_24g_rxdata_length 
+03e5 1fe27200 copy pdata ,loopcnt 
+03e6 d8a047b1 arg mem_24g_rxdata_temp_new + 2 ,contw 
+03e7 d8c047b9 arg mem_24g_rxdata_temp_new + 10 ,contr 
+03e8 20407cda call memcpy 
+03e9 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
+03ea c2830401 bbit1 data_dpi ,p_dongle_receive_ms_dpi_info 
+03eb c283840e bbit1 data_battery ,p_dongle_receive_ms_battery_info 
+03ec c2828411 bbit1 data_heart ,p_dongle_receive_ms_heart_info 
+03ed 20600000 rtn 
 
 p_dongle_g24_mouse_data:
-03d5 58000001 setarg ms_report_id 
-03d6 67e08913 store 1 ,mem_usb_mouse_data 
-03d7 6fe3c7b2 fetch 7 ,mem_24g_rxdata_temp_new + 3 
-03d8 e7e38005 istore 7 ,contw 
-03d9 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-03da 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
-03db 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-03dc 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
-03dd 6fe38914 fetch 7 ,mem_usb_mouse_data + 1 
-03de 67e3c945 store 7 ,mem_dg_mouse_data 
-03df 6fe0c945 fetch 1 ,mem_dg_mouse_data 
-03e0 6848c94c fetcht 1 ,mem_dg_mouse_key_data_last 
-03e1 67e0c94c store 1 ,mem_dg_mouse_key_data_last 
-03e2 98467c00 isub temp ,null 
-03e3 242283e6 nbranch p_dongle_mouse_data_tx_enable ,zero 
+03ee 58000001 setarg ms_report_id 
+03ef 67e08913 store 1 ,mem_usb_mouse_data 
+03f0 6fe3c7b2 fetch 7 ,mem_24g_rxdata_temp_new + 3 
+03f1 e7e38005 istore 7 ,contw 
+03f2 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+03f3 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+03f4 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+03f5 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+03f6 6fe38914 fetch 7 ,mem_usb_mouse_data + 1 
+03f7 67e3c945 store 7 ,mem_dg_mouse_data 
+03f8 6fe0c945 fetch 1 ,mem_dg_mouse_data 
+03f9 6848c94c fetcht 1 ,mem_dg_mouse_key_data_last 
+03fa 67e0c94c store 1 ,mem_dg_mouse_key_data_last 
+03fb 98467c00 isub temp ,null 
+03fc 242283ff nbranch p_dongle_mouse_data_tx_enable ,zero 
 
 p_dongle_receive_mouse_data_check:
-03e4 6fe34946 fetch 6 ,mem_dg_mouse_data + 1 
-03e5 207a0000 rtn blank 
+03fd 6fe34946 fetch 6 ,mem_dg_mouse_data + 1 
+03fe 207a0000 rtn blank 
 
 p_dongle_mouse_data_tx_enable:
-03e6 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
-03e7 202003fc branch p_dongle_usb_tx_enable_ep2 
+03ff 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
+0400 20200416 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_receive_ms_dpi_info:
-03e8 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-03e9 6848c94d fetcht 1 ,mem_dg_mouse_dpi_level 
-03ea 67e0c94d store 1 ,mem_dg_mouse_dpi_level 
-03eb 98467c00 isub temp ,null 
-03ec 20628000 rtn zero 
+0401 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+0402 6848c94d fetcht 1 ,mem_dg_mouse_dpi_level 
+0403 67e0c94d store 1 ,mem_dg_mouse_dpi_level 
+0404 98467c00 isub temp ,null 
+0405 20628000 rtn zero 
 
 p_dongle_usb_tx_dpi_level_enable:
-03ed 70494f40 jam 0x40 ,mem_usb_dpi_info_data 
-03ee 704950a1 jam report_id_data_in ,mem_usb_dpi_info_data + 1 
-03ef 70495105 jam ms_type ,mem_usb_dpi_info_data + 2 
-03f0 6fe0c94d fetch 1 ,mem_dg_mouse_dpi_level 
-03f1 67e0c952 store 1 ,mem_usb_dpi_info_data + 3 
-03f2 70495300 jam 0 ,mem_usb_dpi_info_data + 4 
-03f3 70090c23 jam usb_ep2_dpi ,mem_usb_ep2_data 
-03f4 202003fc branch p_dongle_usb_tx_enable_ep2 
+0406 70494e40 jam 0x40 ,mem_usb_dpi_info_data 
+0407 70494fa1 jam report_id_data_in ,mem_usb_dpi_info_data + 1 
+0408 70495005 jam ms_type ,mem_usb_dpi_info_data + 2 
+0409 6fe0c94d fetch 1 ,mem_dg_mouse_dpi_level 
+040a 67e0c951 store 1 ,mem_usb_dpi_info_data + 3 
+040b 70495200 jam 0 ,mem_usb_dpi_info_data + 4 
+040c 70090c23 jam usb_ep2_dpi ,mem_usb_ep2_data 
+040d 20200416 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_receive_ms_battery_info:
-03f5 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-03f6 67e0c7f7 store 1 ,mem_dg_mouse_battery_level 
-03f7 20600000 rtn 
+040e 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+040f 67e0c7f7 store 1 ,mem_dg_mouse_battery_level 
+0410 20600000 rtn 
 
 p_dongle_receive_ms_heart_info:
-03f8 6fe0c94e fetch 1 ,mem_dg_usb_ep2_data_flag 
-03f9 207a0000 rtn blank 
-03fa 70494e00 jam 0 ,mem_dg_usb_ep2_data_flag 
+0411 6fe0ca4d fetch 1 ,mem_dongle_ms_ep2_ack_data_flag 
+0412 207a0000 rtn blank 
+0413 704a4d00 jam 0 ,mem_dongle_ms_ep2_ack_data_flag 
 
 p_24g_ackpayload_enable_set:
-03fb 20600000 rtn 
+0414 70461108 jam protocol_ackpayload ,mem_24g_ackpayload_enable 
+0415 20600000 rtn 
 
 p_dongle_usb_tx_enable_ep2:
-03fc 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
-03fd 207a0000 rtn blank 
-03fe da20493d arg mem_usb_ep2_fifo ,rega 
-03ff 20407da5 call fifo_is_full 
-0400 247a0000 nrtn blank 
-0401 6fe0890c fetch 1 ,mem_usb_ep2_data 
-0402 67e0866f store 1 ,mem_fifo_temp 
-0403 da20493d arg mem_usb_ep2_fifo ,rega 
-0404 20207d8b branch fifo_in 
+0416 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+0417 207a0000 rtn blank 
+0418 da20493d arg mem_usb_ep2_fifo ,rega 
+0419 20407da5 call fifo_is_full 
+041a 247a0000 nrtn blank 
+041b 6fe0890c fetch 1 ,mem_usb_ep2_data 
+041c 67e0866f store 1 ,mem_fifo_temp 
+041d da20493d arg mem_usb_ep2_fifo ,rega 
+041e 20207d8b branch fifo_in 
 
 p_dongle_g24_kb:
-0405 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-0406 c000040a beq 0 ,p_dongle_g24_kb_type0 
-0407 c0010410 beq 2 ,p_dongle_g24_kb_type2 
-0408 c0018413 beq 3 ,p_dongle_g24_kb_type3 
-0409 202033be branch g24_rx_interrupt_clear 
+041f 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+0420 c0000424 beq 0 ,p_dongle_g24_kb_type0 
+0421 c001042a beq 2 ,p_dongle_g24_kb_type2 
+0422 c001842d beq 3 ,p_dongle_g24_kb_type3 
+0423 202033be branch g24_rx_interrupt_clear 
 
 p_dongle_g24_kb_type0:
-040a 6fe0c7b4 fetch 1 ,mem_24g_rxdata_temp_new + 5 
-040b 67e0c611 store 1 ,mem_24g_ackpayload_enable 
-040c 7047b400 jam 0 ,mem_24g_rxdata_temp_new + 5 
-040d d8a00923 arg mem_usb_kb_data ,contw 
-040e d8c047b3 arg mem_24g_rxdata_temp_new + 4 ,contr 
-040f 202048ef branch dongle_g24_kb_type0 + 5 
+0424 6fe0c7b4 fetch 1 ,mem_24g_rxdata_temp_new + 5 
+0425 67e0c611 store 1 ,mem_24g_ackpayload_enable 
+0426 7047b400 jam 0 ,mem_24g_rxdata_temp_new + 5 
+0427 d8a00923 arg mem_usb_kb_data ,contw 
+0428 d8c047b3 arg mem_24g_rxdata_temp_new + 4 ,contr 
+0429 202048ef branch dongle_g24_kb_type0 + 5 
 
 p_dongle_g24_kb_type2:
-0410 d8a00943 arg mem_usb_kb_system ,contw 
-0411 d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
-0412 2020491f branch dongle_g24_kb_type2 + 2 
+042a d8a00943 arg mem_usb_kb_system ,contw 
+042b d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
+042c 2020491f branch dongle_g24_kb_type2 + 2 
 
 p_dongle_g24_kb_type3:
-0413 d8a00933 arg mem_usb_kb_multikey ,contw 
-0414 d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
-0415 20204907 branch dongle_g24_kb_type3 + 2 
+042d d8a00933 arg mem_usb_kb_multikey ,contw 
+042e d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
+042f 20204907 branch dongle_g24_kb_type3 + 2 
 
 p_checksum_calcu:
-0416 da200000 arg 0 ,rega 
+0430 da200000 arg 0 ,rega 
 
 p_dongle_data_checksum:
-0417 efe08006 ifetch 1 ,contr 
-0418 9a20a200 iadd rega ,rega 
-0419 c2000417 loop p_dongle_data_checksum 
-041a 1a2122ff and_into 0xff ,rega 
-041b 20600000 rtn 
+0431 efe08006 ifetch 1 ,contr 
+0432 9a20a200 iadd rega ,rega 
+0433 c2000431 loop p_dongle_data_checksum 
+0434 1a2122ff and_into 0xff ,rega 
+0435 20600000 rtn 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/program/patch.prog	(revision 1983)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/program/patch.prog	(working copy)
@@ -834,7 +834,12 @@
 	rtn
 p_dongle_g24_protocol_ms_ackpayload_prep:
 	jam TYPE_MS,mem_24g_data_type
-	rtn
+	fetch 1,mem_dongle_ms_ep2_ack_data
+	store 1,mem_24g_datalen
+	copy pdata,loopcnt
+	arg mem_dongle_ms_ep2_ack_data+1,contr
+	arg mem_24g_txbuf_new,contw
+	branch memcpy
 
 p_dongle_g24_protocol_kb_ackpayload_prep:
 	jam TYPE_KB,mem_24g_data_type
@@ -1174,7 +1179,8 @@
 	fetch 1,mem_usb0_set_report_data
 	beq CMD_CHECK_STATUS,p_dongle_dispose_cmd_check_status
 	beq CMD_SET,p_dongle_dispose_cmd_set
-	beq CMD_SET_DPI,p_dongle_dispose_cmd_set_dpi
+	beq CMD_SET_DPI,p_dongle_dispose_ms_cmd_set_dpi
+	beq CMD_SET_REPORT,p_dongle_dispose_ms_cmd_set_report
 	beq CMD_GET_IN_DATA,p_dongle_dispose_cmd_get_in_data
 	beq CMD_GET_TRANSLEN,p_dongle_dispose_cmd_get_translen
 	beq CMD_SET_TEST,p_dongle_dispose_cmd_set_test
@@ -1182,6 +1188,45 @@
 	beq CMD_GET_KEY_MATRIX,p_dongle_dispose_cmd_get_key_matrix
 	branch dongle_usb_dispatch_next
 
+/**************************************************************************************
+* Description:  dongle ack to mouse	
+* Parameters: //1byte opcode + 1byte type +nbyte data +1byte checksum
+**************************************************************************************/
+p_dongle_ms_ep2_ack_data_clr:
+	arg 65,loopcnt
+	arg mem_dongle_ms_ep2_ack_data,contw
+	branch clear_mem
+
+p_dongle_ms_ep2_ack_data_copy:
+	jam 1,mem_dongle_ms_ep2_ack_data_flag
+	jam PROTOCOL_ACKPAYLOAD,mem_24g_ackpayload_enable
+	arg mem_usb0_set_report_data,contr
+	arg mem_dongle_ms_ep2_ack_data+1,contw
+	branch memcpy
+
+//1byte opcode + 1byte type +1byte data +1byte checksum
+p_dongle_dispose_ms_cmd_set_dpi:
+	fetch 1,mem_usb0_set_report_data+1
+	rtnne MS_TYPE
+	call p_dongle_ms_ep2_ack_data_clr
+	fetch 1,mem_usb0_set_report_data+1
+	store 1,mem_24g_device_type
+	fetch 1,mem_usb0_set_report_data+2
+	store 1,mem_dg_mouse_dpi_level
+p_dongle_ms_ack_data_copy:
+	jam 4,mem_dongle_ms_ep2_ack_data
+	arg 4,loopcnt
+	branch p_dongle_ms_ep2_ack_data_copy	
+
+//1byte opcode + 1byte type +1byte data +1byte checksum
+p_dongle_dispose_ms_cmd_set_report:
+	fetch 1,mem_usb0_set_report_data+1
+	rtnne MS_TYPE
+	call p_dongle_ms_ep2_ack_data_clr
+	fetch 1,mem_usb0_set_report_data+1
+	store 1,mem_24g_device_type
+	branch p_dongle_ms_ack_data_copy
+
 p_dongle_dispose_cmd_check_status:
 	//fetch 1,mem_dg_keyboard_battery_level
 	setarg 0x64
@@ -1214,15 +1259,6 @@
 	store 1,mem_dg_data_type
 	rtn
 
-p_dongle_dispose_cmd_set_dpi:
-	fetch 1,mem_usb0_set_report_data+1
-	rtnne MS_TYPE
-	store 1,mem_24g_device_type
-	fetch 1,mem_usb0_set_report_data+2
-	store 1,mem_dg_mouse_dpi_level
-	rtn
-
-
 p_dongle_dispose_cmd_get_in_data:
 	jam 0,mem_usb0_set_report_data
 	arg mem_dg_usb_get_buff,contr
@@ -1280,6 +1316,7 @@
 
 
 p_dongle_g24_mouse:
+	jam 0,mem_24g_ackpayload_enable
 	fetch 1,mem_24g_rxdata_temp_new+2
 	bbit1 DATA_DPI,p_dongle_receive_ms_dpi_info
 	bbit1 DATA_BATTERY,p_dongle_receive_ms_battery_info
@@ -1364,12 +1401,11 @@
 * Parameters:  1byte type +1byte battery
 ****************************************************************************/
 p_dongle_receive_ms_heart_info:
-	fetch 1,mem_dg_usb_ep2_data_flag
+	fetch 1,mem_dongle_ms_ep2_ack_data_flag
 	rtn blank
-	jam 0,mem_dg_usb_ep2_data_flag
+	jam 0,mem_dongle_ms_ep2_ack_data_flag
 p_24g_ackpayload_enable_set:
-//	jam REPORT_ID_DATA_OUT,mem_24g_ackpayload_enable
-//	jam REPORT_ID_DATA_OUT,mem_24g_ackpayload_enable_temp
+	jam PROTOCOL_ACKPAYLOAD,mem_24g_ackpayload_enable
 	rtn
 
 p_dongle_usb_tx_enable_ep2:
