Index: output/eeprom.dat
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/eeprom.dat	(revision 1999)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-06
+0a
 12
 c2
 84
@@ -2403,7 +2403,7 @@
 58
 00
 04
-0c
+0d
 67
 e1
 45
@@ -2411,7 +2411,7 @@
 58
 00
 04
-52
+53
 67
 e1
 45
@@ -3631,11 +3631,11 @@
 c0
 7b
 83
-c4
+c5
 c0
 7b
 03
-d2
+d3
 c0
 7a
 83
@@ -3643,7 +3643,7 @@
 c0
 79
 83
-c2
+c3
 c0
 7a
 03
@@ -3651,47 +3651,47 @@
 c0
 76
 83
-bb
+bd
 c0
 77
 03
-bb
+bd
 c0
 77
 83
-bb
+bd
 c0
 78
 03
-bb
+bd
 c0
 78
 83
-bb
+bd
 c0
 79
 03
-b2
+b3
 c0
 7e
 03
-d5
+d6
 c0
 7f
 03
-dd
+de
 c0
 3d
 03
-e3
+e4
 c0
 50
 03
-ea
+eb
 c0
 50
 84
-00
+01
 20
 20
 48
@@ -3756,10 +3756,10 @@
 4a
 55
 04
-df
+6f
 20
-00
-04
+ca
+55
 20
 20
 03
@@ -3784,10 +3784,14 @@
 e0
 ca
 53
+70
+4a
+55
+04
 20
 20
 03
-a9
+aa
 6f
 e0
 88
@@ -3795,11 +3799,11 @@
 c0
 02
 83
-b6
+b7
 c0
 05
 03
-b9
+bb
 20
 60
 00
@@ -3812,10 +3816,14 @@
 4a
 53
 05
+70
+4a
+55
+05
 20
 20
 03
-a9
+aa
 70
 4a
 53
@@ -3840,18 +3848,14 @@
 4a
 53
 05
-6f
-e0
-88
-fa
-67
-e0
-88
-78
+70
+4a
+55
+0d
 20
 20
 03
-a9
+aa
 70
 49
 50
@@ -3859,7 +3863,7 @@
 20
 20
 04
-3a
+3b
 58
 00
 00
@@ -3915,7 +3919,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 88
@@ -3959,7 +3963,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 88
@@ -4147,7 +4151,7 @@
 20
 20
 04
-49
+4a
 70
 46
 11
@@ -4159,15 +4163,15 @@
 c2
 83
 04
-34
+35
 c2
 83
 84
-41
+42
 c2
 82
 84
-44
+45
 6f
 e0
 c5
@@ -4179,11 +4183,11 @@
 20
 22
 84
-21
+22
 20
 40
 04
-21
+22
 6f
 e0
 c5
@@ -4219,15 +4223,15 @@
 c2
 83
 04
-34
+35
 c2
 83
 84
-41
+42
 c2
 82
 84
-44
+45
 20
 60
 00
@@ -4291,7 +4295,7 @@
 24
 22
 84
-32
+33
 6f
 e3
 49
@@ -4307,7 +4311,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 c7
@@ -4359,7 +4363,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 c7
@@ -4435,11 +4439,11 @@
 c2
 83
 04
-6b
+6c
 c2
 82
 84
-66
+67
 6f
 e0
 c7
@@ -4447,15 +4451,15 @@
 c0
 00
 04
-5a
+5b
 c0
 01
 04
-60
+61
 c0
 01
 84
-63
+64
 20
 20
 33
@@ -4547,11 +4551,11 @@
 20
 5a
 04
-76
+77
 24
 5a
 04
-78
+79
 d8
 c0
 47
@@ -4607,7 +4611,7 @@
 c2
 00
 04
-7c
+7d
 1a
 21
 22
@@ -4616,8 +4620,8 @@
 60
 00
 00
-3e
-2a
+19
+6e
 aa
 55
 40
@@ -5230,12 +5234,8 @@
 55
 52
 80
-64
-21
-ff
-ff
-ff
-ff
+ed
+d3
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-f5
-8b
+d9
+01
Index: output/flash.dat
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/flash.dat	(revision 1999)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/flash.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-06
+0a
 12
 c2
 84
@@ -2403,7 +2403,7 @@
 58
 00
 04
-0c
+0d
 67
 e1
 45
@@ -2411,7 +2411,7 @@
 58
 00
 04
-52
+53
 67
 e1
 45
@@ -3631,11 +3631,11 @@
 c0
 7b
 83
-c4
+c5
 c0
 7b
 03
-d2
+d3
 c0
 7a
 83
@@ -3643,7 +3643,7 @@
 c0
 79
 83
-c2
+c3
 c0
 7a
 03
@@ -3651,47 +3651,47 @@
 c0
 76
 83
-bb
+bd
 c0
 77
 03
-bb
+bd
 c0
 77
 83
-bb
+bd
 c0
 78
 03
-bb
+bd
 c0
 78
 83
-bb
+bd
 c0
 79
 03
-b2
+b3
 c0
 7e
 03
-d5
+d6
 c0
 7f
 03
-dd
+de
 c0
 3d
 03
-e3
+e4
 c0
 50
 03
-ea
+eb
 c0
 50
 84
-00
+01
 20
 20
 48
@@ -3756,10 +3756,10 @@
 4a
 55
 04
-df
+6f
 20
-00
-04
+ca
+55
 20
 20
 03
@@ -3784,10 +3784,14 @@
 e0
 ca
 53
+70
+4a
+55
+04
 20
 20
 03
-a9
+aa
 6f
 e0
 88
@@ -3795,11 +3799,11 @@
 c0
 02
 83
-b6
+b7
 c0
 05
 03
-b9
+bb
 20
 60
 00
@@ -3812,10 +3816,14 @@
 4a
 53
 05
+70
+4a
+55
+05
 20
 20
 03
-a9
+aa
 70
 4a
 53
@@ -3840,18 +3848,14 @@
 4a
 53
 05
-6f
-e0
-88
-fa
-67
-e0
-88
-78
+70
+4a
+55
+0d
 20
 20
 03
-a9
+aa
 70
 49
 50
@@ -3859,7 +3863,7 @@
 20
 20
 04
-3a
+3b
 58
 00
 00
@@ -3915,7 +3919,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 88
@@ -3959,7 +3963,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 88
@@ -4147,7 +4151,7 @@
 20
 20
 04
-49
+4a
 70
 46
 11
@@ -4159,15 +4163,15 @@
 c2
 83
 04
-34
+35
 c2
 83
 84
-41
+42
 c2
 82
 84
-44
+45
 6f
 e0
 c5
@@ -4179,11 +4183,11 @@
 20
 22
 84
-21
+22
 20
 40
 04
-21
+22
 6f
 e0
 c5
@@ -4219,15 +4223,15 @@
 c2
 83
 04
-34
+35
 c2
 83
 84
-41
+42
 c2
 82
 84
-44
+45
 20
 60
 00
@@ -4291,7 +4295,7 @@
 24
 22
 84
-32
+33
 6f
 e3
 49
@@ -4307,7 +4311,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 c7
@@ -4359,7 +4363,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 c7
@@ -4435,11 +4439,11 @@
 c2
 83
 04
-6b
+6c
 c2
 82
 84
-66
+67
 6f
 e0
 c7
@@ -4447,15 +4451,15 @@
 c0
 00
 04
-5a
+5b
 c0
 01
 04
-60
+61
 c0
 01
 84
-63
+64
 20
 20
 33
@@ -4547,11 +4551,11 @@
 20
 5a
 04
-76
+77
 24
 5a
 04
-78
+79
 d8
 c0
 47
@@ -4607,7 +4611,7 @@
 c2
 00
 04
-7c
+7d
 1a
 21
 22
@@ -4616,8 +4620,8 @@
 60
 00
 00
-3e
-2a
+19
+6e
 aa
 55
 40
@@ -5230,12 +5234,8 @@
 55
 52
 80
-64
-21
-ff
-ff
-ff
-ff
+ed
+d3
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-f5
-8b
+d9
+01
Index: output/otp.dat
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/otp.dat	(revision 1999)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/otp.dat	(working copy)
@@ -11,7 +11,7 @@
 00
 aa
 55
-06
+0a
 12
 c2
 84
@@ -2412,7 +2412,7 @@
 58
 00
 04
-0c
+0d
 67
 e1
 45
@@ -2420,7 +2420,7 @@
 58
 00
 04
-52
+53
 67
 e1
 45
@@ -3640,11 +3640,11 @@
 c0
 7b
 83
-c4
+c5
 c0
 7b
 03
-d2
+d3
 c0
 7a
 83
@@ -3652,7 +3652,7 @@
 c0
 79
 83
-c2
+c3
 c0
 7a
 03
@@ -3660,47 +3660,47 @@
 c0
 76
 83
-bb
+bd
 c0
 77
 03
-bb
+bd
 c0
 77
 83
-bb
+bd
 c0
 78
 03
-bb
+bd
 c0
 78
 83
-bb
+bd
 c0
 79
 03
-b2
+b3
 c0
 7e
 03
-d5
+d6
 c0
 7f
 03
-dd
+de
 c0
 3d
 03
-e3
+e4
 c0
 50
 03
-ea
+eb
 c0
 50
 84
-00
+01
 20
 20
 48
@@ -3765,10 +3765,10 @@
 4a
 55
 04
-df
+6f
 20
-00
-04
+ca
+55
 20
 20
 03
@@ -3793,10 +3793,14 @@
 e0
 ca
 53
+70
+4a
+55
+04
 20
 20
 03
-a9
+aa
 6f
 e0
 88
@@ -3804,11 +3808,11 @@
 c0
 02
 83
-b6
+b7
 c0
 05
 03
-b9
+bb
 20
 60
 00
@@ -3821,10 +3825,14 @@
 4a
 53
 05
+70
+4a
+55
+05
 20
 20
 03
-a9
+aa
 70
 4a
 53
@@ -3849,18 +3857,14 @@
 4a
 53
 05
-6f
-e0
-88
-fa
-67
-e0
-88
-78
+70
+4a
+55
+0d
 20
 20
 03
-a9
+aa
 70
 49
 50
@@ -3868,7 +3872,7 @@
 20
 20
 04
-3a
+3b
 58
 00
 00
@@ -3924,7 +3928,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 88
@@ -3968,7 +3972,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 88
@@ -4156,7 +4160,7 @@
 20
 20
 04
-49
+4a
 70
 46
 11
@@ -4168,15 +4172,15 @@
 c2
 83
 04
-34
+35
 c2
 83
 84
-41
+42
 c2
 82
 84
-44
+45
 6f
 e0
 c5
@@ -4188,11 +4192,11 @@
 20
 22
 84
-21
+22
 20
 40
 04
-21
+22
 6f
 e0
 c5
@@ -4228,15 +4232,15 @@
 c2
 83
 04
-34
+35
 c2
 83
 84
-41
+42
 c2
 82
 84
-44
+45
 20
 60
 00
@@ -4300,7 +4304,7 @@
 24
 22
 84
-32
+33
 6f
 e3
 49
@@ -4316,7 +4320,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 c7
@@ -4368,7 +4372,7 @@
 20
 20
 04
-49
+4a
 6f
 e0
 c7
@@ -4444,11 +4448,11 @@
 c2
 83
 04
-6b
+6c
 c2
 82
 84
-66
+67
 6f
 e0
 c7
@@ -4456,15 +4460,15 @@
 c0
 00
 04
-5a
+5b
 c0
 01
 04
-60
+61
 c0
 01
 84
-63
+64
 20
 20
 33
@@ -4556,11 +4560,11 @@
 20
 5a
 04
-76
+77
 24
 5a
 04
-78
+79
 d8
 c0
 47
@@ -4616,7 +4620,7 @@
 c2
 00
 04
-7c
+7d
 1a
 21
 22
@@ -4625,8 +4629,8 @@
 60
 00
 00
-3e
-2a
+19
+6e
 aa
 55
 40
@@ -5239,6 +5243,6 @@
 55
 52
 80
-64
-21
+ed
+d3
 21
Index: output/program.lis
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/program.lis	(revision 1999)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/program.lis	(working copy)
@@ -759,9 +759,9 @@
 p_app_init:
 0255 58000361 setarg p_dongle_dispatch 
 0256 67e145e0 store 2 ,mem_cb_24g_receive_process 
-0257 5800040c setarg p_dongle_g24_mouse 
+0257 5800040d setarg p_dongle_g24_mouse 
 0258 67e145e4 store 2 ,mem_cb_24g_data_device1 
-0259 58000452 setarg p_dongle_g24_kb 
+0259 58000453 setarg p_dongle_g24_kb 
 025a 67e145e6 store 2 ,mem_cb_24g_data_device2 
 025b 58000260 setarg p_dongle_ackpayload_prep 
 025c 67e145e2 store 2 ,mem_cb_24g_ackpayload 
@@ -1162,22 +1162,22 @@
 0387 207a0000 rtn blank 
 0388 7008f700 jam 0 ,mem_usb0_get_set_report 
 0389 6fe08875 fetch 1 ,mem_usb0_set_report_data 
-038a c07b83c4 beq cmd_check_status ,p_dongle_dispose_cmd_check_status 
-038b c07b03d2 beq cmd_set ,p_dongle_dispose_cmd_set 
+038a c07b83c5 beq cmd_check_status ,p_dongle_dispose_cmd_check_status 
+038b c07b03d3 beq cmd_set ,p_dongle_dispose_cmd_set 
 038c c07a83a3 beq cmd_set_dpi ,p_dongle_dispose_ms_cmd_set_dpi 
-038d c07983c2 beq cmd_get_dpi ,p_dongle_dispose_cmd_get_dpi 
+038d c07983c3 beq cmd_get_dpi ,p_dongle_dispose_cmd_get_dpi 
 038e c07a03ac beq cmd_set_report ,p_dongle_dispose_ms_cmd_set_report 
-038f c07683bb beq cmd_set_ms_dpi_fuction ,p_dongle_dispose_ms_cmd_set_key_fuction 
-0390 c07703bb beq cmd_set_ms_b5_fuction ,p_dongle_dispose_ms_cmd_set_key_fuction 
-0391 c07783bb beq cmd_set_ms_b4_fuction ,p_dongle_dispose_ms_cmd_set_key_fuction 
-0392 c07803bb beq cmd_set_ms_rkey_fuction ,p_dongle_dispose_ms_cmd_set_key_fuction 
-0393 c07883bb beq cmd_set_ms_mkey_fuction ,p_dongle_dispose_ms_cmd_set_key_fuction 
-0394 c07903b2 beq cmd_set_sleep_timer ,p_dongle_dispose_set_sleep_timer 
-0395 c07e03d5 beq cmd_get_in_data ,p_dongle_dispose_cmd_get_in_data 
-0396 c07f03dd beq cmd_get_translen ,p_dongle_dispose_cmd_get_translen 
-0397 c03d03e3 beq cmd_set_test ,p_dongle_dispose_cmd_set_test 
-0398 c05003ea beq cmd_set_key_matrix ,p_dongle_dispose_cmd_set_key_matrix 
-0399 c0508400 beq cmd_get_key_matrix ,p_dongle_dispose_cmd_get_key_matrix 
+038f c07683bd beq cmd_set_ms_dpi_fuction ,p_dongle_dispose_ms_cmd_set_key_fuction 
+0390 c07703bd beq cmd_set_ms_b5_fuction ,p_dongle_dispose_ms_cmd_set_key_fuction 
+0391 c07783bd beq cmd_set_ms_b4_fuction ,p_dongle_dispose_ms_cmd_set_key_fuction 
+0392 c07803bd beq cmd_set_ms_rkey_fuction ,p_dongle_dispose_ms_cmd_set_key_fuction 
+0393 c07883bd beq cmd_set_ms_mkey_fuction ,p_dongle_dispose_ms_cmd_set_key_fuction 
+0394 c07903b3 beq cmd_set_sleep_timer ,p_dongle_dispose_set_sleep_timer 
+0395 c07e03d6 beq cmd_get_in_data ,p_dongle_dispose_cmd_get_in_data 
+0396 c07f03de beq cmd_get_translen ,p_dongle_dispose_cmd_get_translen 
+0397 c03d03e4 beq cmd_set_test ,p_dongle_dispose_cmd_set_test 
+0398 c05003eb beq cmd_set_key_matrix ,p_dongle_dispose_cmd_set_key_matrix 
+0399 c0508401 beq cmd_get_key_matrix ,p_dongle_dispose_cmd_get_key_matrix 
 039a 20204875 branch dongle_usb_dispatch_next 
 
 p_dongle_ms_ep2_ack_data_clr:
@@ -1199,10 +1199,10 @@
 03a6 704a5305 jam ms_type ,mem_24g_device_type 
 03a7 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
 03a8 67e0c94b store 1 ,mem_dg_mouse_dpi_level 
+03a9 704a5504 jam 4 ,mem_dg_ms_ep2_ack_data 
 
 p_dongle_ms_ack_data_copy:
-03a9 704a5504 jam 4 ,mem_dg_ms_ep2_ack_data 
-03aa df200004 arg 4 ,loopcnt 
+03aa 6f20ca55 fetchr loopcnt ,1 ,mem_dg_ms_ep2_ack_data 
 03ab 2020039e branch p_dongle_ms_ep2_ack_data_copy 
 
 p_dongle_dispose_ms_cmd_set_report:
@@ -1211,282 +1211,283 @@
 03ae 2040039b call p_dongle_ms_ep2_ack_data_clr 
 03af 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
 03b0 67e0ca53 store 1 ,mem_24g_device_type 
-03b1 202003a9 branch p_dongle_ms_ack_data_copy 
+03b1 704a5504 jam 4 ,mem_dg_ms_ep2_ack_data 
+03b2 202003aa branch p_dongle_ms_ack_data_copy 
 
 p_dongle_dispose_set_sleep_timer:
-03b2 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
-03b3 c00283b6 beq ms_type ,p_dongle_dispose_ms_sleep_timer 
-03b4 c00503b9 beq kb_type ,p_dongle_dispose_kb_sleep_timer 
-03b5 20600000 rtn 
+03b3 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+03b4 c00283b7 beq ms_type ,p_dongle_dispose_ms_sleep_timer 
+03b5 c00503bb beq kb_type ,p_dongle_dispose_kb_sleep_timer 
+03b6 20600000 rtn 
 
 p_dongle_dispose_ms_sleep_timer:
-03b6 2040039b call p_dongle_ms_ep2_ack_data_clr 
-03b7 704a5305 jam ms_type ,mem_24g_device_type 
-03b8 202003a9 branch p_dongle_ms_ack_data_copy 
+03b7 2040039b call p_dongle_ms_ep2_ack_data_clr 
+03b8 704a5305 jam ms_type ,mem_24g_device_type 
+03b9 704a5505 jam 5 ,mem_dg_ms_ep2_ack_data 
+03ba 202003aa branch p_dongle_ms_ack_data_copy 
 
 p_dongle_dispose_kb_sleep_timer:
-03b9 704a530a jam kb_type ,mem_24g_device_type 
-03ba 20600000 rtn 
+03bb 704a530a jam kb_type ,mem_24g_device_type 
+03bc 20600000 rtn 
 
 p_dongle_dispose_ms_cmd_set_key_fuction:
-03bb 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
-03bc c1828000 rtnne ms_type 
-03bd 2040039b call p_dongle_ms_ep2_ack_data_clr 
-03be 704a5305 jam ms_type ,mem_24g_device_type 
-03bf 6fe088fa fetch 1 ,mem_usb_tx_mac_enable 
-03c0 67e08878 store 1 ,mem_usb0_set_report_data + 3 
-03c1 202003a9 branch p_dongle_ms_ack_data_copy 
+03bd 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+03be c1828000 rtnne ms_type 
+03bf 2040039b call p_dongle_ms_ep2_ack_data_clr 
+03c0 704a5305 jam ms_type ,mem_24g_device_type 
+03c1 704a550d jam 13 ,mem_dg_ms_ep2_ack_data 
+03c2 202003aa branch p_dongle_ms_ack_data_copy 
 
 p_dongle_dispose_cmd_get_dpi:
-03c2 70495001 jam 1 ,mem_usb_dpi_info_data + 4 
-03c3 2020043a branch p_dongle_usb_tx_dpi_level_enable 
+03c3 70495001 jam 1 ,mem_usb_dpi_info_data + 4 
+03c4 2020043b branch p_dongle_usb_tx_dpi_level_enable 
 
 p_dongle_dispose_cmd_check_status:
-03c4 58000064 setarg 0x64 
-03c5 67e0c9d1 store 1 ,mem_dg_protocol_usb_in_data_buff 
-03c6 58000064 setarg 0x64 
-03c7 67e0c9d2 store 1 ,mem_dg_protocol_usb_in_data_buff + 1 
-03c8 58000000 setarg 0x00 
-03c9 67e0c9d3 store 1 ,mem_dg_protocol_usb_in_data_buff + 2 
-03ca 58000000 setarg 0x00 
-03cb 67e0c9d4 store 1 ,mem_dg_protocol_usb_in_data_buff + 3 
-03cc 58000001 setarg 0x01 
-03cd 67e0c9d5 store 1 ,mem_dg_protocol_usb_in_data_buff + 4 
-03ce 6fe2458f fetch 4 ,mem_24g_addr 
-03cf 67e249d8 store 4 ,mem_dg_protocol_usb_in_data_buff + 7 
-03d0 70090c24 jam usb_ep2_protocol ,mem_usb_ep2_data 
-03d1 20200449 branch p_dongle_usb_tx_enable_ep2 
+03c5 58000064 setarg 0x64 
+03c6 67e0c9d1 store 1 ,mem_dg_protocol_usb_in_data_buff 
+03c7 58000064 setarg 0x64 
+03c8 67e0c9d2 store 1 ,mem_dg_protocol_usb_in_data_buff + 1 
+03c9 58000000 setarg 0x00 
+03ca 67e0c9d3 store 1 ,mem_dg_protocol_usb_in_data_buff + 2 
+03cb 58000000 setarg 0x00 
+03cc 67e0c9d4 store 1 ,mem_dg_protocol_usb_in_data_buff + 3 
+03cd 58000001 setarg 0x01 
+03ce 67e0c9d5 store 1 ,mem_dg_protocol_usb_in_data_buff + 4 
+03cf 6fe2458f fetch 4 ,mem_24g_addr 
+03d0 67e249d8 store 4 ,mem_dg_protocol_usb_in_data_buff + 7 
+03d1 70090c24 jam usb_ep2_protocol ,mem_usb_ep2_data 
+03d2 2020044a branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_dispose_cmd_set:
-03d2 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
-03d3 67e0ca53 store 1 ,mem_24g_device_type 
-03d4 20600000 rtn 
+03d3 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+03d4 67e0ca53 store 1 ,mem_24g_device_type 
+03d5 20600000 rtn 
 
 p_dongle_dispose_cmd_get_in_data:
-03d5 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
-03d6 67e0ca53 store 1 ,mem_24g_device_type 
-03d7 df200040 arg 64 ,loopcnt 
-03d8 d8c008b5 arg mem_usb0_get_report_data ,contr 
-03d9 d8a049d1 arg mem_dg_protocol_usb_in_data_buff ,contw 
-03da 20407ccc call memcpy_fast 
-03db 70090c24 jam usb_ep2_protocol ,mem_usb_ep2_data 
-03dc 20200449 branch p_dongle_usb_tx_enable_ep2 
+03d6 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+03d7 67e0ca53 store 1 ,mem_24g_device_type 
+03d8 df200040 arg 64 ,loopcnt 
+03d9 d8c008b5 arg mem_usb0_get_report_data ,contr 
+03da d8a049d1 arg mem_dg_protocol_usb_in_data_buff ,contw 
+03db 20407ccc call memcpy_fast 
+03dc 70090c24 jam usb_ep2_protocol ,mem_usb_ep2_data 
+03dd 2020044a branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_dispose_cmd_get_translen:
-03dd 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
-03de 67e0ca12 store 1 ,mem_dg_protocol_usb_out_data_buff 
-03df 1fe27200 copy pdata ,loopcnt 
-03e0 d8c00877 arg mem_usb0_set_report_data + 2 ,contr 
-03e1 d8a04a13 arg mem_dg_protocol_usb_out_data_buff + 1 ,contw 
-03e2 20207ccc branch memcpy_fast 
+03de 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+03df 67e0ca12 store 1 ,mem_dg_protocol_usb_out_data_buff 
+03e0 1fe27200 copy pdata ,loopcnt 
+03e1 d8c00877 arg mem_usb0_set_report_data + 2 ,contr 
+03e2 d8a04a13 arg mem_dg_protocol_usb_out_data_buff + 1 ,contw 
+03e3 20207ccc branch memcpy_fast 
 
 p_dongle_dispose_cmd_set_test:
-03e3 70461602 jam dongle_test ,mem_24g_work_mode 
-03e4 70461500 jam clear_init ,mem_24g_mode_init 
-03e5 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
-03e6 67e0c7ff store 1 ,mem_dg_test_mode 
-03e7 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-03e8 67e0c800 store 1 ,mem_dg_test_ch 
-03e9 20600000 rtn 
+03e4 70461602 jam dongle_test ,mem_24g_work_mode 
+03e5 70461500 jam clear_init ,mem_24g_mode_init 
+03e6 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+03e7 67e0c7ff store 1 ,mem_dg_test_mode 
+03e8 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+03e9 67e0c800 store 1 ,mem_dg_test_ch 
+03ea 20600000 rtn 
 
 p_dongle_dispose_cmd_set_key_matrix:
-03ea 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
-03eb 67e0c98d store 1 ,mem_dg_keyboard_keymatrix_profile 
-03ec 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-03ed 67e0c98e store 1 ,mem_dg_keyboard_keymatrix_type 
-03ee 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
-03ef 67e0c98f store 1 ,mem_dg_keyboard_keymatrix_page 
-03f0 6fe08879 fetch 1 ,mem_usb0_set_report_data + 4 
-03f1 67e0c990 store 1 ,mem_dg_keyboard_keymatrix_len 
-03f2 1fe27200 copy pdata ,loopcnt 
-03f3 d8c0087d arg mem_usb0_set_report_data + 8 ,contr 
-03f4 d8a04991 arg mem_dg_keyboard_keymatrix_setup_keyvalue ,contw 
-03f5 20407ccc call memcpy_fast 
-03f6 704a530a jam kb_type ,mem_24g_device_type 
-03f7 704a9601 jam 1 ,mem_dg_kb_ep2_ack_data_flag 
-03f8 704a97a2 jam report_id_data_out ,mem_dg_kb_ep2_ack_data 
-03f9 704a980a jam kb_type ,mem_dg_kb_ep2_ack_data + 1 
-03fa 6fe0c990 fetch 1 ,mem_dg_keyboard_keymatrix_len 
-03fb 67e0ca99 store 1 ,mem_dg_kb_ep2_ack_data + 2 
-03fc 1fe27200 copy pdata ,loopcnt 
-03fd d8c0087d arg mem_usb0_set_report_data + 8 ,contr 
-03fe d8a04a9a arg mem_dg_kb_ep2_ack_data + 3 ,contw 
-03ff 20207cda branch memcpy 
+03eb 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+03ec 67e0c98d store 1 ,mem_dg_keyboard_keymatrix_profile 
+03ed 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+03ee 67e0c98e store 1 ,mem_dg_keyboard_keymatrix_type 
+03ef 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
+03f0 67e0c98f store 1 ,mem_dg_keyboard_keymatrix_page 
+03f1 6fe08879 fetch 1 ,mem_usb0_set_report_data + 4 
+03f2 67e0c990 store 1 ,mem_dg_keyboard_keymatrix_len 
+03f3 1fe27200 copy pdata ,loopcnt 
+03f4 d8c0087d arg mem_usb0_set_report_data + 8 ,contr 
+03f5 d8a04991 arg mem_dg_keyboard_keymatrix_setup_keyvalue ,contw 
+03f6 20407ccc call memcpy_fast 
+03f7 704a530a jam kb_type ,mem_24g_device_type 
+03f8 704a9601 jam 1 ,mem_dg_kb_ep2_ack_data_flag 
+03f9 704a97a2 jam report_id_data_out ,mem_dg_kb_ep2_ack_data 
+03fa 704a980a jam kb_type ,mem_dg_kb_ep2_ack_data + 1 
+03fb 6fe0c990 fetch 1 ,mem_dg_keyboard_keymatrix_len 
+03fc 67e0ca99 store 1 ,mem_dg_kb_ep2_ack_data + 2 
+03fd 1fe27200 copy pdata ,loopcnt 
+03fe d8c0087d arg mem_usb0_set_report_data + 8 ,contr 
+03ff d8a04a9a arg mem_dg_kb_ep2_ack_data + 3 ,contw 
+0400 20207cda branch memcpy 
 
 p_dongle_dispose_cmd_get_key_matrix:
-0400 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
-0401 67e0c98d store 1 ,mem_dg_keyboard_keymatrix_profile 
-0402 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-0403 67e0c98e store 1 ,mem_dg_keyboard_keymatrix_type 
-0404 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
-0405 67e0c98f store 1 ,mem_dg_keyboard_keymatrix_page 
-0406 df200040 arg 64 ,loopcnt 
-0407 d8c04ad8 arg mem_dg_kb_keymatrix_buff ,contr 
-0408 d8a049d1 arg mem_dg_protocol_usb_in_data_buff ,contw 
-0409 20407ccc call memcpy_fast 
-040a 70090c24 jam usb_ep2_protocol ,mem_usb_ep2_data 
-040b 20200449 branch p_dongle_usb_tx_enable_ep2 
+0401 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+0402 67e0c98d store 1 ,mem_dg_keyboard_keymatrix_profile 
+0403 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+0404 67e0c98e store 1 ,mem_dg_keyboard_keymatrix_type 
+0405 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
+0406 67e0c98f store 1 ,mem_dg_keyboard_keymatrix_page 
+0407 df200040 arg 64 ,loopcnt 
+0408 d8c04ad8 arg mem_dg_kb_keymatrix_buff ,contr 
+0409 d8a049d1 arg mem_dg_protocol_usb_in_data_buff ,contw 
+040a 20407ccc call memcpy_fast 
+040b 70090c24 jam usb_ep2_protocol ,mem_usb_ep2_data 
+040c 2020044a branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_g24_mouse:
-040c 70461100 jam 0 ,mem_24g_ackpayload_enable 
-040d 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
-040e c2830434 bbit1 data_dpi ,p_dongle_receive_ms_dpi_info 
-040f c2838441 bbit1 data_battery ,p_dongle_receive_ms_battery_info 
-0410 c2828444 bbit1 data_heart ,p_dongle_receive_ms_heart_info 
+040d 70461100 jam 0 ,mem_24g_ackpayload_enable 
+040e 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
+040f c2830435 bbit1 data_dpi ,p_dongle_receive_ms_dpi_info 
+0410 c2838442 bbit1 data_battery ,p_dongle_receive_ms_battery_info 
+0411 c2828445 bbit1 data_heart ,p_dongle_receive_ms_heart_info 
 
 p_dongle_g24_mouse_next:
-0411 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0412 1fe67c09 sub pdata ,0x09 ,null 
-0413 20228421 branch p_dongle_g24_mouse_data ,zero 
-0414 20400421 call p_dongle_g24_mouse_data 
-0415 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0416 1fe0fff8 add pdata ,-8 ,pdata 
-0417 67e0c57d store 1 ,mem_24g_rxdata_length 
-0418 1fe27200 copy pdata ,loopcnt 
-0419 d8a047b1 arg mem_24g_rxdata_temp_new + 2 ,contw 
-041a d8c047b9 arg mem_24g_rxdata_temp_new + 10 ,contr 
-041b 20407cda call memcpy 
-041c 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
-041d c2830434 bbit1 data_dpi ,p_dongle_receive_ms_dpi_info 
-041e c2838441 bbit1 data_battery ,p_dongle_receive_ms_battery_info 
-041f c2828444 bbit1 data_heart ,p_dongle_receive_ms_heart_info 
-0420 20600000 rtn 
+0412 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0413 1fe67c09 sub pdata ,0x09 ,null 
+0414 20228422 branch p_dongle_g24_mouse_data ,zero 
+0415 20400422 call p_dongle_g24_mouse_data 
+0416 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0417 1fe0fff8 add pdata ,-8 ,pdata 
+0418 67e0c57d store 1 ,mem_24g_rxdata_length 
+0419 1fe27200 copy pdata ,loopcnt 
+041a d8a047b1 arg mem_24g_rxdata_temp_new + 2 ,contw 
+041b d8c047b9 arg mem_24g_rxdata_temp_new + 10 ,contr 
+041c 20407cda call memcpy 
+041d 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
+041e c2830435 bbit1 data_dpi ,p_dongle_receive_ms_dpi_info 
+041f c2838442 bbit1 data_battery ,p_dongle_receive_ms_battery_info 
+0420 c2828445 bbit1 data_heart ,p_dongle_receive_ms_heart_info 
+0421 20600000 rtn 
 
 p_dongle_g24_mouse_data:
-0421 58000001 setarg ms_report_id 
-0422 67e08913 store 1 ,mem_usb_mouse_data 
-0423 6fe3c7b2 fetch 7 ,mem_24g_rxdata_temp_new + 3 
-0424 e7e38005 istore 7 ,contw 
-0425 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-0426 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
-0427 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-0428 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
-0429 6fe38914 fetch 7 ,mem_usb_mouse_data + 1 
-042a 67e3c943 store 7 ,mem_dg_mouse_data 
-042b 6fe0c943 fetch 1 ,mem_dg_mouse_data 
-042c 6848c94a fetcht 1 ,mem_dg_mouse_key_data_last 
-042d 67e0c94a store 1 ,mem_dg_mouse_key_data_last 
-042e 98467c00 isub temp ,null 
-042f 24228432 nbranch p_dongle_mouse_data_tx_enable ,zero 
+0422 58000001 setarg ms_report_id 
+0423 67e08913 store 1 ,mem_usb_mouse_data 
+0424 6fe3c7b2 fetch 7 ,mem_24g_rxdata_temp_new + 3 
+0425 e7e38005 istore 7 ,contw 
+0426 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+0427 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+0428 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+0429 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+042a 6fe38914 fetch 7 ,mem_usb_mouse_data + 1 
+042b 67e3c943 store 7 ,mem_dg_mouse_data 
+042c 6fe0c943 fetch 1 ,mem_dg_mouse_data 
+042d 6848c94a fetcht 1 ,mem_dg_mouse_key_data_last 
+042e 67e0c94a store 1 ,mem_dg_mouse_key_data_last 
+042f 98467c00 isub temp ,null 
+0430 24228433 nbranch p_dongle_mouse_data_tx_enable ,zero 
 
 p_dongle_receive_mouse_data_check:
-0430 6fe34944 fetch 6 ,mem_dg_mouse_data + 1 
-0431 207a0000 rtn blank 
+0431 6fe34944 fetch 6 ,mem_dg_mouse_data + 1 
+0432 207a0000 rtn blank 
 
 p_dongle_mouse_data_tx_enable:
-0432 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
-0433 20200449 branch p_dongle_usb_tx_enable_ep2 
+0433 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
+0434 2020044a branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_receive_ms_dpi_info:
-0434 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-0435 6848c94b fetcht 1 ,mem_dg_mouse_dpi_level 
-0436 67e0c94b store 1 ,mem_dg_mouse_dpi_level 
-0437 98467c00 isub temp ,null 
-0438 20628000 rtn zero 
-0439 70495000 jam 0 ,mem_usb_dpi_info_data + 4 
+0435 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+0436 6848c94b fetcht 1 ,mem_dg_mouse_dpi_level 
+0437 67e0c94b store 1 ,mem_dg_mouse_dpi_level 
+0438 98467c00 isub temp ,null 
+0439 20628000 rtn zero 
+043a 70495000 jam 0 ,mem_usb_dpi_info_data + 4 
 
 p_dongle_usb_tx_dpi_level_enable:
-043a 70494c40 jam 0x40 ,mem_usb_dpi_info_data 
-043b 70494da1 jam report_id_data_in ,mem_usb_dpi_info_data + 1 
-043c 70494e05 jam ms_type ,mem_usb_dpi_info_data + 2 
-043d 6fe0c94b fetch 1 ,mem_dg_mouse_dpi_level 
-043e 67e0c94f store 1 ,mem_usb_dpi_info_data + 3 
-043f 70090c23 jam usb_ep2_dpi ,mem_usb_ep2_data 
-0440 20200449 branch p_dongle_usb_tx_enable_ep2 
+043b 70494c40 jam 0x40 ,mem_usb_dpi_info_data 
+043c 70494da1 jam report_id_data_in ,mem_usb_dpi_info_data + 1 
+043d 70494e05 jam ms_type ,mem_usb_dpi_info_data + 2 
+043e 6fe0c94b fetch 1 ,mem_dg_mouse_dpi_level 
+043f 67e0c94f store 1 ,mem_usb_dpi_info_data + 3 
+0440 70090c23 jam usb_ep2_dpi ,mem_usb_ep2_data 
+0441 2020044a branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_receive_ms_battery_info:
-0441 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-0442 67e0c7f7 store 1 ,mem_dg_mouse_battery_level 
-0443 20600000 rtn 
+0442 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+0443 67e0c7f7 store 1 ,mem_dg_mouse_battery_level 
+0444 20600000 rtn 
 
 p_dongle_receive_ms_heart_info:
-0444 6fe0ca54 fetch 1 ,mem_dg_ms_ep2_ack_data_flag 
-0445 207a0000 rtn blank 
-0446 704a5400 jam 0 ,mem_dg_ms_ep2_ack_data_flag 
+0445 6fe0ca54 fetch 1 ,mem_dg_ms_ep2_ack_data_flag 
+0446 207a0000 rtn blank 
+0447 704a5400 jam 0 ,mem_dg_ms_ep2_ack_data_flag 
 
 p_24g_ackpayload_enable_set:
-0447 70461108 jam protocol_ackpayload ,mem_24g_ackpayload_enable 
-0448 20600000 rtn 
+0448 70461108 jam protocol_ackpayload ,mem_24g_ackpayload_enable 
+0449 20600000 rtn 
 
 p_dongle_usb_tx_enable_ep2:
-0449 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
-044a 207a0000 rtn blank 
-044b da20493b arg mem_usb_ep2_fifo ,rega 
-044c 20407da5 call fifo_is_full 
-044d 247a0000 nrtn blank 
-044e 6fe0890c fetch 1 ,mem_usb_ep2_data 
-044f 67e0866f store 1 ,mem_fifo_temp 
-0450 da20493b arg mem_usb_ep2_fifo ,rega 
-0451 20207d8b branch fifo_in 
+044a 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+044b 207a0000 rtn blank 
+044c da20493b arg mem_usb_ep2_fifo ,rega 
+044d 20407da5 call fifo_is_full 
+044e 247a0000 nrtn blank 
+044f 6fe0890c fetch 1 ,mem_usb_ep2_data 
+0450 67e0866f store 1 ,mem_fifo_temp 
+0451 da20493b arg mem_usb_ep2_fifo ,rega 
+0452 20207d8b branch fifo_in 
 
 p_dongle_g24_kb:
-0452 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
-0453 c283046b bbit1 data_key_matrix ,p_dongle_receive_kb_key_matrix_data 
-0454 c2828466 bbit1 data_heart ,p_dongle_receive_kb_heart_info 
-0455 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-0456 c000045a beq 0 ,p_dongle_g24_kb_type0 
-0457 c0010460 beq 2 ,p_dongle_g24_kb_type2 
-0458 c0018463 beq 3 ,p_dongle_g24_kb_type3 
-0459 202033be branch g24_rx_interrupt_clear 
+0453 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
+0454 c283046c bbit1 data_key_matrix ,p_dongle_receive_kb_key_matrix_data 
+0455 c2828467 bbit1 data_heart ,p_dongle_receive_kb_heart_info 
+0456 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+0457 c000045b beq 0 ,p_dongle_g24_kb_type0 
+0458 c0010461 beq 2 ,p_dongle_g24_kb_type2 
+0459 c0018464 beq 3 ,p_dongle_g24_kb_type3 
+045a 202033be branch g24_rx_interrupt_clear 
 
 p_dongle_g24_kb_type0:
-045a 6fe0c7b4 fetch 1 ,mem_24g_rxdata_temp_new + 5 
-045b 67e0c611 store 1 ,mem_24g_ackpayload_enable 
-045c 7047b400 jam 0 ,mem_24g_rxdata_temp_new + 5 
-045d d8a00923 arg mem_usb_kb_data ,contw 
-045e d8c047b3 arg mem_24g_rxdata_temp_new + 4 ,contr 
-045f 202048ef branch dongle_g24_kb_type0 + 5 
+045b 6fe0c7b4 fetch 1 ,mem_24g_rxdata_temp_new + 5 
+045c 67e0c611 store 1 ,mem_24g_ackpayload_enable 
+045d 7047b400 jam 0 ,mem_24g_rxdata_temp_new + 5 
+045e d8a00923 arg mem_usb_kb_data ,contw 
+045f d8c047b3 arg mem_24g_rxdata_temp_new + 4 ,contr 
+0460 202048ef branch dongle_g24_kb_type0 + 5 
 
 p_dongle_g24_kb_type2:
-0460 d8a00943 arg mem_usb_kb_system ,contw 
-0461 d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
-0462 2020491f branch dongle_g24_kb_type2 + 2 
+0461 d8a00943 arg mem_usb_kb_system ,contw 
+0462 d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
+0463 2020491f branch dongle_g24_kb_type2 + 2 
 
 p_dongle_g24_kb_type3:
-0463 d8a00933 arg mem_usb_kb_multikey ,contw 
-0464 d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
-0465 20204907 branch dongle_g24_kb_type3 + 2 
+0464 d8a00933 arg mem_usb_kb_multikey ,contw 
+0465 d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
+0466 20204907 branch dongle_g24_kb_type3 + 2 
 
 p_dongle_receive_kb_heart_info:
-0466 6fe0ca96 fetch 1 ,mem_dg_kb_ep2_ack_data_flag 
-0467 207a0000 rtn blank 
-0468 704a9600 jam 0 ,mem_dg_kb_ep2_ack_data_flag 
+0467 6fe0ca96 fetch 1 ,mem_dg_kb_ep2_ack_data_flag 
+0468 207a0000 rtn blank 
+0469 704a9600 jam 0 ,mem_dg_kb_ep2_ack_data_flag 
 
 p_24g_ackpayload_kb_enable_set:
-0469 70461108 jam protocol_ackpayload ,mem_24g_ackpayload_enable 
-046a 20600000 rtn 
+046a 70461108 jam protocol_ackpayload ,mem_24g_ackpayload_enable 
+046b 20600000 rtn 
 
 p_dongle_receive_kb_key_matrix_data:
-046b 6fe0c7b0 fetch 1 ,mem_24g_rxdata_temp_new + 1 
-046c 1fe0ffff increase -1 ,pdata 
-046d 1fe27200 copy pdata ,loopcnt 
-046e 6fe14b79 fetch 2 ,mem_keymatrix_wptr 
-046f 205a0476 call p_dongle_write_from_head ,blank 
-0470 245a0478 ncall p_dongle_write_from_last ,blank 
-0471 d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
-0472 20407ccc call memcpy_fast 
-0473 18a27e00 copy contw ,pdata 
-0474 67e14b79 store 2 ,mem_keymatrix_wptr 
-0475 20600000 rtn 
+046c 6fe0c7b0 fetch 1 ,mem_24g_rxdata_temp_new + 1 
+046d 1fe0ffff increase -1 ,pdata 
+046e 1fe27200 copy pdata ,loopcnt 
+046f 6fe14b79 fetch 2 ,mem_keymatrix_wptr 
+0470 205a0477 call p_dongle_write_from_head ,blank 
+0471 245a0479 ncall p_dongle_write_from_last ,blank 
+0472 d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
+0473 20407ccc call memcpy_fast 
+0474 18a27e00 copy contw ,pdata 
+0475 67e14b79 store 2 ,mem_keymatrix_wptr 
+0476 20600000 rtn 
 
 p_dongle_write_from_head:
-0476 d8a04ad8 arg mem_dg_kb_keymatrix_buff ,contw 
-0477 20600000 rtn 
+0477 d8a04ad8 arg mem_dg_kb_keymatrix_buff ,contw 
+0478 20600000 rtn 
 
 p_dongle_write_from_last:
-0478 6fe14b79 fetch 2 ,mem_keymatrix_wptr 
-0479 1fe20a00 copy pdata ,contw 
-047a 20600000 rtn 
+0479 6fe14b79 fetch 2 ,mem_keymatrix_wptr 
+047a 1fe20a00 copy pdata ,contw 
+047b 20600000 rtn 
 
 p_checksum_calcu:
-047b da200000 arg 0 ,rega 
+047c da200000 arg 0 ,rega 
 
 p_dongle_data_checksum:
-047c efe08006 ifetch 1 ,contr 
-047d 9a20a200 iadd rega ,rega 
-047e c200047c loop p_dongle_data_checksum 
-047f 1a2122ff and_into 0xff ,rega 
-0480 20600000 rtn 
+047d efe08006 ifetch 1 ,contr 
+047e 9a20a200 iadd rega ,rega 
+047f c200047d loop p_dongle_data_checksum 
+0480 1a2122ff and_into 0xff ,rega 
+0481 20600000 rtn 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/program/patch.prog	(revision 1999)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/program/patch.prog	(working copy)
@@ -1231,9 +1231,9 @@
 	jam MS_TYPE,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_dg_ms_ep2_ack_data
-	arg 4,loopcnt
+p_dongle_ms_ack_data_copy:
+	fetchr loopcnt,1,mem_dg_ms_ep2_ack_data
 	branch p_dongle_ms_ep2_ack_data_copy	
 
 //1byte opcode + 1byte type +1byte data +1byte checksum
@@ -1243,6 +1243,7 @@
 	call p_dongle_ms_ep2_ack_data_clr
 	fetch 1,mem_usb0_set_report_data+1
 	store 1,mem_24g_device_type
+	jam 4,mem_dg_ms_ep2_ack_data
 	branch p_dongle_ms_ack_data_copy
 
 //1byte opcode + 1byte type +2byte data +1byte checksum
@@ -1255,20 +1256,25 @@
 p_dongle_dispose_ms_sleep_timer:
 	call p_dongle_ms_ep2_ack_data_clr
 	jam MS_TYPE,mem_24g_device_type
+	jam 5,mem_dg_ms_ep2_ack_data
 	branch p_dongle_ms_ack_data_copy
 
 p_dongle_dispose_kb_sleep_timer:
 	jam KB_TYPE,mem_24g_device_type
 	rtn
 
-//1byte opcode + 1byte type +1byte data +1byte checksum
+/**************************************************************************************
+* Description:  pc send key value to mouse	
+* Parameters: 1byte opcode + 1byte type +10byte data +1byte checksum
+* 10byte data: 1byte type: 01--mouse	02--keyboard
+*                        9byte key value
+**************************************************************************************/
 p_dongle_dispose_ms_cmd_set_key_fuction:
 	fetch 1,mem_usb0_set_report_data+1
 	rtnne MS_TYPE
 	call p_dongle_ms_ep2_ack_data_clr
 	jam MS_TYPE,mem_24g_device_type
-	fetch 1,mem_usb_tx_mac_enable	//mac or win flag
-	store 1,mem_usb0_set_report_data+3
+	jam 13,mem_dg_ms_ep2_ack_data
 	branch p_dongle_ms_ack_data_copy
 
 p_dongle_dispose_cmd_get_dpi:
