Index: format/app_dongle.format
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/format/app_dongle.format	(revision 1978)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/format/app_dongle.format	(working copy)
@@ -50,12 +50,24 @@
 1 mem_dg_data_len
 1 mem_dg_test_mode
 1 mem_dg_test_ch
-
+//ep2 fifo
+8 mem_usb_ep2_fifo
+//usb report
 64 mem_dg_usb_get_buff
 180 mem_usb_ep2_config
 70 mem_config_new
+//ms protocol
+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
 )
 
+(
+0x05 MS_TYPE
+0x0A KB_TYPE
+)
 
 //otp address offset
 (
@@ -65,6 +77,18 @@
 )
 
 (
+//ms data type
+5 DATA_HEART
+6 DATA_DPI
+7 DATA_BATTERY
+)
+
+(
+0xA1 REPORT_ID_DATA_IN
+0xA2 REPORT_ID_DATA_OUT
+)
+
+(
 5 WORK_MODE_DELAY
 7 BIND_MODE_DELAY
 )
Index: format/usb.format
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/format/usb.format	(revision 1975)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/format/usb.format	(working copy)
@@ -190,6 +190,7 @@
 0x20 USB_EP2_MS
 0x21 USB_EP2_MULTIKEY
 0x22 USB_EP2_SYSTEMKEY
+0x23 USB_EP2_DPI
 0x01 MAC_BOOT_MODE
 0x02 R_KEY
 0x03 LR_KEY
Index: output/eeprom.dat
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/eeprom.dat	(revision 1978)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/eeprom.dat	(working copy)
@@ -2,8 +2,8 @@
 02
 aa
 55
-02
-0e
+5a
+0f
 c2
 84
 00
@@ -23,7 +23,7 @@
 c0
 0a
 01
-a4
+be
 c0
 0a
 80
@@ -43,7 +43,7 @@
 c0
 1b
 82
-1a
+34
 c0
 1c
 00
@@ -55,15 +55,15 @@
 c0
 1e
 82
-16
+30
 c0
 1f
 02
-66
+80
 c0
 58
 82
-2d
+47
 c0
 62
 80
@@ -71,11 +71,11 @@
 c0
 6d
 01
-76
+90
 c0
 6e
 01
-86
+a0
 c0
 7f
 00
@@ -99,67 +99,67 @@
 c0
 03
 01
-33
+37
 c0
 1c
 81
-c0
+da
 c0
 26
 81
-c4
+de
 c0
 37
 02
-be
+d9
 c0
 37
 82
-23
+3d
 c0
 39
 03
-05
+20
 c0
 39
-82
-f0
+83
+0b
 c0
 3a
 82
-cd
+e8
 c0
 40
 82
-ad
+c8
 c0
 41
 01
-c6
+e0
 c0
 42
 02
-7f
+99
 c0
 42
 82
-dd
+f8
 c0
 44
-01
-fe
+02
+18
 c0
 45
 02
-0b
+25
 c0
 45
 82
-e0
+fb
 c0
 4d
-82
-e9
+83
+04
 c1
 7f
 80
@@ -403,11 +403,11 @@
 20
 40
 01
-49
+63
 20
 40
 01
-74
+8e
 20
 40
 00
@@ -943,7 +943,7 @@
 58
 00
 48
-43
+4b
 67
 e1
 07
@@ -1123,11 +1123,11 @@
 58
 00
 48
-f7
+ff
 68
 48
 c8
-f7
+ff
 20
 20
 7a
@@ -1232,6 +1232,26 @@
 20
 7b
 65
+da
+20
+48
+03
+20
+40
+7d
+a3
+20
+7a
+00
+00
+20
+20
+48
+37
+20
+40
+01
+33
 6f
 e0
 89
@@ -1283,11 +1303,11 @@
 20
 40
 01
-41
+46
 20
 20
 01
-45
+4a
 6f
 f0
 8c
@@ -1304,6 +1324,18 @@
 20
 7b
 f0
+da
+20
+48
+03
+20
+40
+7d
+a3
+20
+7a
+00
+00
 6f
 f0
 8c
@@ -1316,10 +1348,82 @@
 7a
 00
 00
+6f
+e0
+89
+0d
+c4
+01
+00
+00
+6f
+e0
+89
+0d
+79
+3f
+fe
+02
+67
+e0
+89
+0d
+da
+20
+48
+03
+20
+40
+7d
+97
+20
+7a
+00
+00
+c0
+10
+7c
+09
+c0
+11
+81
+5b
+20
+20
+23
+5a
+6f
+e0
+c9
+4f
 20
+7a
+00
+00
+1f
+e2
+72
+00
+d8
+c0
+49
+50
 20
+40
 7b
-fb
+db
+d8
+a0
+49
+4f
+df
+20
+00
+41
+20
+20
+7c
+a1
 20
 75
 80
@@ -1371,7 +1475,7 @@
 20
 40
 01
-66
+80
 2a
 2f
 fe
@@ -1403,7 +1507,7 @@
 20
 40
 01
-66
+80
 d8
 a0
 8a
@@ -1431,7 +1535,7 @@
 20
 21
 01
-5b
+75
 20
 20
 21
@@ -1531,7 +1635,7 @@
 20
 40
 01
-9e
+b8
 70
 8a
 08
@@ -1567,7 +1671,7 @@
 20
 40
 01
-94
+ae
 6f
 f0
 8a
@@ -1611,7 +1715,7 @@
 20
 40
 01
-9e
+b8
 70
 80
 cd
@@ -1671,7 +1775,7 @@
 c3
 02
 81
-9f
+b9
 68
 59
 01
@@ -1703,7 +1807,7 @@
 c0
 08
 01
-bd
+d7
 58
 00
 57
@@ -1747,7 +1851,7 @@
 c0
 08
 01
-ba
+d4
 58
 00
 2b
@@ -1783,7 +1887,7 @@
 20
 20
 01
-b6
+d0
 58
 00
 83
@@ -1795,7 +1899,7 @@
 20
 20
 01
-ab
+c5
 6f
 e0
 c3
@@ -1827,19 +1931,19 @@
 c0
 55
 01
-cc
+e6
 c0
 2a
 81
-ce
+e8
 c0
 11
 01
-e4
+fe
 c0
 7f
 81
-d6
+f0
 20
 60
 00
@@ -1859,7 +1963,7 @@
 20
 3a
 01
-d4
+ee
 6f
 e2
 47
@@ -1891,11 +1995,11 @@
 c0
 00
 81
-da
+f4
 c0
 01
 01
-df
+f9
 20
 60
 00
@@ -1946,8 +2050,8 @@
 ae
 20
 3a
-01
-ea
+02
+04
 6f
 e2
 47
@@ -1970,12 +2074,12 @@
 b2
 c0
 00
-81
-ee
+82
+08
 c0
 01
-01
-f6
+02
+10
 20
 60
 00
@@ -1994,8 +2098,8 @@
 d3
 c0
 01
-01
-f3
+02
+0d
 20
 60
 00
@@ -2026,8 +2130,8 @@
 d4
 c0
 80
-01
-fb
+02
+15
 20
 60
 00
@@ -2107,7 +2211,7 @@
 20
 40
 02
-0f
+29
 20
 20
 34
@@ -2143,11 +2247,11 @@
 20
 40
 02
-18
+32
 20
 20
 03
-32
+4d
 58
 00
 00
@@ -2235,7 +2339,7 @@
 58
 00
 03
-10
+2b
 67
 e1
 45
@@ -2243,7 +2347,7 @@
 58
 00
 03
-66
+81
 67
 e1
 45
@@ -2251,7 +2355,7 @@
 58
 00
 03
-6f
+c5
 67
 e1
 45
@@ -2259,7 +2363,7 @@
 58
 00
 02
-38
+52
 67
 e1
 45
@@ -2283,11 +2387,11 @@
 c0
 00
 82
-3b
+55
 c0
 01
 02
-3e
+58
 6f
 e0
 c6
@@ -2295,11 +2399,11 @@
 c2
 80
 02
-5c
+76
 20
 20
 02
-40
+5a
 6f
 e0
 c6
@@ -2307,7 +2411,7 @@
 c2
 80
 82
-60
+7a
 6f
 e0
 c6
@@ -2315,11 +2419,11 @@
 c0
 00
 82
-44
+5e
 c0
 01
 82
-54
+6e
 20
 60
 00
@@ -2331,7 +2435,7 @@
 20
 40
 02
-4c
+66
 24
 77
 80
@@ -2395,11 +2499,11 @@
 c0
 00
 82
-44
+5e
 c0
 7f
 82
-44
+5e
 70
 08
 f9
@@ -2435,7 +2539,7 @@
 20
 20
 02
-63
+7d
 6f
 e0
 c6
@@ -2459,7 +2563,7 @@
 20
 20
 02
-5a
+74
 6f
 e0
 c6
@@ -2471,7 +2575,7 @@
 20
 40
 02
-6d
+87
 20
 40
 48
@@ -2507,7 +2611,7 @@
 20
 40
 02
-a2
+bd
 24
 37
 b3
@@ -2565,17 +2669,21 @@
 c7
 b1
 c0
+7f
+82
+b7
+1f
+e1
+7e
+03
+c0
 00
 82
-84
+9f
 c0
 01
 02
-96
-c0
-7f
-82
-9c
+b1
 20
 20
 33
@@ -2611,7 +2719,7 @@
 c0
 00
 82
-8f
+aa
 6f
 e0
 c6
@@ -2667,7 +2775,7 @@
 20
 20
 82
-94
+af
 6f
 e1
 45
@@ -2679,11 +2787,11 @@
 20
 40
 02
-a0
+bb
 20
 20
 01
-d6
+f0
 6f
 e0
 c5
@@ -2727,7 +2835,7 @@
 20
 40
 02
-cd
+e8
 6f
 e0
 c7
@@ -2759,15 +2867,15 @@
 20
 40
 02
-b9
+d4
 20
 40
 02
-a5
+c0
 20
 40
 02
-9e
+b9
 20
 40
 49
@@ -2823,7 +2931,7 @@
 c5
 13
 82
-c6
+e1
 6f
 e0
 c6
@@ -2967,7 +3075,7 @@
 20
 40
 02
-a2
+bd
 24
 37
 b3
@@ -2979,7 +3087,7 @@
 20
 42
 82
-73
+8d
 20
 20
 34
@@ -3099,7 +3207,7 @@
 c5
 17
 83
-0a
+25
 6f
 e0
 c5
@@ -3107,7 +3215,7 @@
 24
 3a
 03
-0a
+25
 78
 4e
 fc
@@ -3171,15 +3279,15 @@
 20
 40
 03
-1a
+35
 20
 40
 03
-26
+41
 20
 20
 03
-11
+2c
 d8
 40
 ff
@@ -3331,23 +3439,23 @@
 c0
 7b
 83
-45
+60
 c0
 7b
 03
-52
+6d
 c0
 7e
 03
-55
+70
 c0
 7f
 03
-5b
+76
 c0
 3d
 03
-5e
+79
 20
 20
 48
@@ -3423,7 +3531,7 @@
 d8
 c0
 48
-03
+0b
 d8
 a0
 08
@@ -3484,6 +3592,86 @@
 20
 48
 80
+6f
+e0
+c5
+ea
+c2
+83
+03
+a8
+c2
+83
+83
+b4
+c2
+82
+83
+b7
+6f
+e0
+c5
+7d
+1f
+e6
+7c
+09
+20
+22
+83
+95
+20
+40
+03
+95
+6f
+e0
+c5
+7d
+1f
+e0
+ff
+f8
+67
+e0
+c5
+7d
+1f
+e2
+72
+00
+d8
+a0
+45
+ea
+d8
+c0
+45
+f2
+20
+40
+7c
+da
+6f
+e0
+c5
+ea
+c2
+83
+03
+a8
+c2
+83
+83
+b4
+c2
+82
+83
+b7
+20
+60
+00
+00
 58
 00
 00
@@ -3516,57 +3704,213 @@
 5a
 48
 e1
-20
-20
-48
-36
+6f
+e3
+89
+14
+67
+e3
+c9
+45
 6f
 e0
-c7
-b2
-c0
+c9
+45
+68
+48
+c9
+4c
+67
+e0
+c9
+4c
+98
+46
+7c
 00
-03
-74
-c0
-01
-03
-7a
-c0
-01
+24
+22
 83
-7d
+a6
+6f
+e3
+49
+46
 20
+7a
+00
+00
+70
+09
+0c
 20
-33
-be
+20
+20
+03
+bc
 6f
 e0
-c7
-b4
+c5
+eb
+68
+48
+c9
+4d
 67
 e0
-c6
-11
+c9
+4d
+98
+46
+7c
+00
+20
+62
+80
+00
 70
-47
-b4
+49
+4f
+40
+70
+49
+50
+05
+6f
+e0
+c9
+4d
+67
+e0
+c9
+51
+70
+49
+52
 00
-d8
-a0
+70
 09
+0c
 23
-d8
-c0
-47
-b3
 20
 20
-48
-ef
-d8
-a0
-09
+03
+bc
+6f
+e0
+c5
+eb
+67
+e0
+c7
+f7
+20
+60
+00
+00
+6f
+e0
+c9
+4e
+20
+7a
+00
+00
+70
+49
+4e
+00
+70
+46
+11
+a2
+20
+60
+00
+00
+6f
+e0
+89
+0e
+20
+7a
+00
+00
+da
+20
+48
+03
+20
+40
+7d
+a5
+24
+7a
+00
+00
+6f
+e0
+89
+0c
+67
+e0
+86
+6f
+da
+20
+48
+03
+20
+20
+7d
+8b
+6f
+e0
+c7
+b2
+c0
+00
+03
+ca
+c0
+01
+03
+d0
+c0
+01
+83
+d3
+20
+20
+33
+be
+6f
+e0
+c7
+b4
+67
+e0
+c6
+11
+70
+47
+b4
+00
+d8
+a0
+09
+23
+d8
+c0
+47
+b3
+20
+20
+48
+ef
+d8
+a0
+09
 43
 d8
 c0
@@ -3588,8 +3932,8 @@
 20
 49
 07
-00
-49
+af
+40
 aa
 55
 40
@@ -3771,7 +4115,7 @@
 55
 43
 00
-f7
+ff
 48
 42
 09
@@ -3844,7 +4188,7 @@
 55
 a2
 00
-43
+4b
 48
 a1
 05
@@ -3946,608 +4290,264 @@
 01
 81
 06
-c0
-05
-0c
-09
-01
-a1
-01
-85
-03
-15
-00
-26
-80
-03
-19
-00
-2a
-80
-03
-75
-10
-95
-01
-81
-00
-c0
-06
-a1
-ff
-09
-02
-a1
-01
-85
-a1
-95
-3f
-75
-08
-25
-ff
-15
-00
-09
-01
-81
-02
-85
-a2
-95
-3f
-75
-08
-25
-ff
-15
-00
-09
-01
-b1
-02
-c0
-aa
-55
-01
-00
-48
-41
-0c
-aa
-55
-06
-00
-c3
-40
-35
-3f
-64
-db
-7b
-3b
-aa
-55
-01
-00
-a7
-40
-20
-aa
-55
-03
-00
-c9
-40
-00
-08
-a5
-aa
-55
-01
-00
-99
-40
-18
-aa
-55
-01
-00
-1c
-41
-3e
-aa
-55
-0c
-00
-16
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-aa
-55
-05
-00
-5e
-41
-08
-0e
-05
-03
-00
-aa
-55
-01
-00
-68
-41
-20
-aa
-55
-02
-00
-9a
-40
-00
-0c
-aa
-55
-05
-00
-43
-41
-ff
-04
-00
-00
-08
-aa
-55
-01
-00
-07
-44
-01
-aa
-55
-01
-00
-09
-44
-0a
-aa
-55
-01
-00
-08
-44
-00
-aa
-55
-01
-00
-11
-44
-00
-aa
-55
-04
-00
-0d
-44
-00
-07
-ff
-07
-aa
-55
-01
-00
-38
-44
-a0
-aa
-55
-02
-00
-3b
-44
-bc
-02
-aa
-55
-02
-00
-39
-44
-90
-01
-aa
-55
-02
-00
-3d
-44
-03
-09
-aa
-55
-01
-00
-49
-41
-ff
-aa
-55
-02
-00
-9c
-40
-49
-41
-55
-aa
-aa
-55
-5b
-80
-43
-53
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+26
+80
+03
+19
+00
+2a
+80
+03
+75
+10
+95
+01
+81
+00
+c0
+06
+a1
 ff
+09
+02
+a1
+01
+85
+a1
+95
+3f
+75
+08
+25
 ff
+15
+00
+09
+01
+81
+02
+85
+a2
+95
+3f
+75
+08
+25
 ff
+15
+00
+09
+01
+b1
+02
+c0
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+a5
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+3e
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+05
+00
+5e
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+68
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+0c
+aa
+55
+05
+00
+43
+41
 ff
+04
+00
+00
+08
+aa
+55
+01
+00
+07
+44
+01
+aa
+55
+01
+00
+09
+44
+0a
+aa
+55
+01
+00
+08
+44
+00
+aa
+55
+01
+00
+11
+44
+00
+aa
+55
+04
+00
+0d
+44
+00
+07
 ff
+07
+aa
+55
+01
+00
+38
+44
+a0
+aa
+55
+02
+00
+3b
+44
+bc
+02
+aa
+55
+02
+00
+39
+44
+90
+01
+aa
+55
+02
+00
+3d
+44
+03
+09
+aa
+55
+01
+00
+49
+41
 ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+6b
+80
+72
+73
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-96
-a0
+ad
+5e
Index: output/flash.dat
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/flash.dat	(revision 1978)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/flash.dat	(working copy)
@@ -2,8 +2,8 @@
 02
 aa
 55
-02
-0e
+5a
+0f
 c2
 84
 00
@@ -23,7 +23,7 @@
 c0
 0a
 01
-a4
+be
 c0
 0a
 80
@@ -43,7 +43,7 @@
 c0
 1b
 82
-1a
+34
 c0
 1c
 00
@@ -55,15 +55,15 @@
 c0
 1e
 82
-16
+30
 c0
 1f
 02
-66
+80
 c0
 58
 82
-2d
+47
 c0
 62
 80
@@ -71,11 +71,11 @@
 c0
 6d
 01
-76
+90
 c0
 6e
 01
-86
+a0
 c0
 7f
 00
@@ -99,67 +99,67 @@
 c0
 03
 01
-33
+37
 c0
 1c
 81
-c0
+da
 c0
 26
 81
-c4
+de
 c0
 37
 02
-be
+d9
 c0
 37
 82
-23
+3d
 c0
 39
 03
-05
+20
 c0
 39
-82
-f0
+83
+0b
 c0
 3a
 82
-cd
+e8
 c0
 40
 82
-ad
+c8
 c0
 41
 01
-c6
+e0
 c0
 42
 02
-7f
+99
 c0
 42
 82
-dd
+f8
 c0
 44
-01
-fe
+02
+18
 c0
 45
 02
-0b
+25
 c0
 45
 82
-e0
+fb
 c0
 4d
-82
-e9
+83
+04
 c1
 7f
 80
@@ -403,11 +403,11 @@
 20
 40
 01
-49
+63
 20
 40
 01
-74
+8e
 20
 40
 00
@@ -943,7 +943,7 @@
 58
 00
 48
-43
+4b
 67
 e1
 07
@@ -1123,11 +1123,11 @@
 58
 00
 48
-f7
+ff
 68
 48
 c8
-f7
+ff
 20
 20
 7a
@@ -1232,6 +1232,26 @@
 20
 7b
 65
+da
+20
+48
+03
+20
+40
+7d
+a3
+20
+7a
+00
+00
+20
+20
+48
+37
+20
+40
+01
+33
 6f
 e0
 89
@@ -1283,11 +1303,11 @@
 20
 40
 01
-41
+46
 20
 20
 01
-45
+4a
 6f
 f0
 8c
@@ -1304,6 +1324,18 @@
 20
 7b
 f0
+da
+20
+48
+03
+20
+40
+7d
+a3
+20
+7a
+00
+00
 6f
 f0
 8c
@@ -1316,10 +1348,82 @@
 7a
 00
 00
+6f
+e0
+89
+0d
+c4
+01
+00
+00
+6f
+e0
+89
+0d
+79
+3f
+fe
+02
+67
+e0
+89
+0d
+da
+20
+48
+03
+20
+40
+7d
+97
+20
+7a
+00
+00
+c0
+10
+7c
+09
+c0
+11
+81
+5b
+20
+20
+23
+5a
+6f
+e0
+c9
+4f
 20
+7a
+00
+00
+1f
+e2
+72
+00
+d8
+c0
+49
+50
 20
+40
 7b
-fb
+db
+d8
+a0
+49
+4f
+df
+20
+00
+41
+20
+20
+7c
+a1
 20
 75
 80
@@ -1371,7 +1475,7 @@
 20
 40
 01
-66
+80
 2a
 2f
 fe
@@ -1403,7 +1507,7 @@
 20
 40
 01
-66
+80
 d8
 a0
 8a
@@ -1431,7 +1535,7 @@
 20
 21
 01
-5b
+75
 20
 20
 21
@@ -1531,7 +1635,7 @@
 20
 40
 01
-9e
+b8
 70
 8a
 08
@@ -1567,7 +1671,7 @@
 20
 40
 01
-94
+ae
 6f
 f0
 8a
@@ -1611,7 +1715,7 @@
 20
 40
 01
-9e
+b8
 70
 80
 cd
@@ -1671,7 +1775,7 @@
 c3
 02
 81
-9f
+b9
 68
 59
 01
@@ -1703,7 +1807,7 @@
 c0
 08
 01
-bd
+d7
 58
 00
 57
@@ -1747,7 +1851,7 @@
 c0
 08
 01
-ba
+d4
 58
 00
 2b
@@ -1783,7 +1887,7 @@
 20
 20
 01
-b6
+d0
 58
 00
 83
@@ -1795,7 +1899,7 @@
 20
 20
 01
-ab
+c5
 6f
 e0
 c3
@@ -1827,19 +1931,19 @@
 c0
 55
 01
-cc
+e6
 c0
 2a
 81
-ce
+e8
 c0
 11
 01
-e4
+fe
 c0
 7f
 81
-d6
+f0
 20
 60
 00
@@ -1859,7 +1963,7 @@
 20
 3a
 01
-d4
+ee
 6f
 e2
 47
@@ -1891,11 +1995,11 @@
 c0
 00
 81
-da
+f4
 c0
 01
 01
-df
+f9
 20
 60
 00
@@ -1946,8 +2050,8 @@
 ae
 20
 3a
-01
-ea
+02
+04
 6f
 e2
 47
@@ -1970,12 +2074,12 @@
 b2
 c0
 00
-81
-ee
+82
+08
 c0
 01
-01
-f6
+02
+10
 20
 60
 00
@@ -1994,8 +2098,8 @@
 d3
 c0
 01
-01
-f3
+02
+0d
 20
 60
 00
@@ -2026,8 +2130,8 @@
 d4
 c0
 80
-01
-fb
+02
+15
 20
 60
 00
@@ -2107,7 +2211,7 @@
 20
 40
 02
-0f
+29
 20
 20
 34
@@ -2143,11 +2247,11 @@
 20
 40
 02
-18
+32
 20
 20
 03
-32
+4d
 58
 00
 00
@@ -2235,7 +2339,7 @@
 58
 00
 03
-10
+2b
 67
 e1
 45
@@ -2243,7 +2347,7 @@
 58
 00
 03
-66
+81
 67
 e1
 45
@@ -2251,7 +2355,7 @@
 58
 00
 03
-6f
+c5
 67
 e1
 45
@@ -2259,7 +2363,7 @@
 58
 00
 02
-38
+52
 67
 e1
 45
@@ -2283,11 +2387,11 @@
 c0
 00
 82
-3b
+55
 c0
 01
 02
-3e
+58
 6f
 e0
 c6
@@ -2295,11 +2399,11 @@
 c2
 80
 02
-5c
+76
 20
 20
 02
-40
+5a
 6f
 e0
 c6
@@ -2307,7 +2411,7 @@
 c2
 80
 82
-60
+7a
 6f
 e0
 c6
@@ -2315,11 +2419,11 @@
 c0
 00
 82
-44
+5e
 c0
 01
 82
-54
+6e
 20
 60
 00
@@ -2331,7 +2435,7 @@
 20
 40
 02
-4c
+66
 24
 77
 80
@@ -2395,11 +2499,11 @@
 c0
 00
 82
-44
+5e
 c0
 7f
 82
-44
+5e
 70
 08
 f9
@@ -2435,7 +2539,7 @@
 20
 20
 02
-63
+7d
 6f
 e0
 c6
@@ -2459,7 +2563,7 @@
 20
 20
 02
-5a
+74
 6f
 e0
 c6
@@ -2471,7 +2575,7 @@
 20
 40
 02
-6d
+87
 20
 40
 48
@@ -2507,7 +2611,7 @@
 20
 40
 02
-a2
+bd
 24
 37
 b3
@@ -2565,17 +2669,21 @@
 c7
 b1
 c0
+7f
+82
+b7
+1f
+e1
+7e
+03
+c0
 00
 82
-84
+9f
 c0
 01
 02
-96
-c0
-7f
-82
-9c
+b1
 20
 20
 33
@@ -2611,7 +2719,7 @@
 c0
 00
 82
-8f
+aa
 6f
 e0
 c6
@@ -2667,7 +2775,7 @@
 20
 20
 82
-94
+af
 6f
 e1
 45
@@ -2679,11 +2787,11 @@
 20
 40
 02
-a0
+bb
 20
 20
 01
-d6
+f0
 6f
 e0
 c5
@@ -2727,7 +2835,7 @@
 20
 40
 02
-cd
+e8
 6f
 e0
 c7
@@ -2759,15 +2867,15 @@
 20
 40
 02
-b9
+d4
 20
 40
 02
-a5
+c0
 20
 40
 02
-9e
+b9
 20
 40
 49
@@ -2823,7 +2931,7 @@
 c5
 13
 82
-c6
+e1
 6f
 e0
 c6
@@ -2967,7 +3075,7 @@
 20
 40
 02
-a2
+bd
 24
 37
 b3
@@ -2979,7 +3087,7 @@
 20
 42
 82
-73
+8d
 20
 20
 34
@@ -3099,7 +3207,7 @@
 c5
 17
 83
-0a
+25
 6f
 e0
 c5
@@ -3107,7 +3215,7 @@
 24
 3a
 03
-0a
+25
 78
 4e
 fc
@@ -3171,15 +3279,15 @@
 20
 40
 03
-1a
+35
 20
 40
 03
-26
+41
 20
 20
 03
-11
+2c
 d8
 40
 ff
@@ -3331,23 +3439,23 @@
 c0
 7b
 83
-45
+60
 c0
 7b
 03
-52
+6d
 c0
 7e
 03
-55
+70
 c0
 7f
 03
-5b
+76
 c0
 3d
 03
-5e
+79
 20
 20
 48
@@ -3423,7 +3531,7 @@
 d8
 c0
 48
-03
+0b
 d8
 a0
 08
@@ -3484,6 +3592,86 @@
 20
 48
 80
+6f
+e0
+c5
+ea
+c2
+83
+03
+a8
+c2
+83
+83
+b4
+c2
+82
+83
+b7
+6f
+e0
+c5
+7d
+1f
+e6
+7c
+09
+20
+22
+83
+95
+20
+40
+03
+95
+6f
+e0
+c5
+7d
+1f
+e0
+ff
+f8
+67
+e0
+c5
+7d
+1f
+e2
+72
+00
+d8
+a0
+45
+ea
+d8
+c0
+45
+f2
+20
+40
+7c
+da
+6f
+e0
+c5
+ea
+c2
+83
+03
+a8
+c2
+83
+83
+b4
+c2
+82
+83
+b7
+20
+60
+00
+00
 58
 00
 00
@@ -3516,57 +3704,213 @@
 5a
 48
 e1
-20
-20
-48
-36
+6f
+e3
+89
+14
+67
+e3
+c9
+45
 6f
 e0
-c7
-b2
-c0
+c9
+45
+68
+48
+c9
+4c
+67
+e0
+c9
+4c
+98
+46
+7c
 00
-03
-74
-c0
-01
-03
-7a
-c0
-01
+24
+22
 83
-7d
+a6
+6f
+e3
+49
+46
 20
+7a
+00
+00
+70
+09
+0c
 20
-33
-be
+20
+20
+03
+bc
 6f
 e0
-c7
-b4
+c5
+eb
+68
+48
+c9
+4d
 67
 e0
-c6
-11
+c9
+4d
+98
+46
+7c
+00
+20
+62
+80
+00
 70
-47
-b4
+49
+4f
+40
+70
+49
+50
+05
+6f
+e0
+c9
+4d
+67
+e0
+c9
+51
+70
+49
+52
 00
-d8
-a0
+70
 09
+0c
 23
-d8
-c0
-47
-b3
 20
 20
-48
-ef
-d8
-a0
-09
+03
+bc
+6f
+e0
+c5
+eb
+67
+e0
+c7
+f7
+20
+60
+00
+00
+6f
+e0
+c9
+4e
+20
+7a
+00
+00
+70
+49
+4e
+00
+70
+46
+11
+a2
+20
+60
+00
+00
+6f
+e0
+89
+0e
+20
+7a
+00
+00
+da
+20
+48
+03
+20
+40
+7d
+a5
+24
+7a
+00
+00
+6f
+e0
+89
+0c
+67
+e0
+86
+6f
+da
+20
+48
+03
+20
+20
+7d
+8b
+6f
+e0
+c7
+b2
+c0
+00
+03
+ca
+c0
+01
+03
+d0
+c0
+01
+83
+d3
+20
+20
+33
+be
+6f
+e0
+c7
+b4
+67
+e0
+c6
+11
+70
+47
+b4
+00
+d8
+a0
+09
+23
+d8
+c0
+47
+b3
+20
+20
+48
+ef
+d8
+a0
+09
 43
 d8
 c0
@@ -3588,8 +3932,8 @@
 20
 49
 07
-00
-49
+af
+40
 aa
 55
 40
@@ -3771,7 +4115,7 @@
 55
 43
 00
-f7
+ff
 48
 42
 09
@@ -3844,7 +4188,7 @@
 55
 a2
 00
-43
+4b
 48
 a1
 05
@@ -3946,608 +4290,264 @@
 01
 81
 06
-c0
-05
-0c
-09
-01
-a1
-01
-85
-03
-15
-00
-26
-80
-03
-19
-00
-2a
-80
-03
-75
-10
-95
-01
-81
-00
-c0
-06
-a1
-ff
-09
-02
-a1
-01
-85
-a1
-95
-3f
-75
-08
-25
-ff
-15
-00
-09
-01
-81
-02
-85
-a2
-95
-3f
-75
-08
-25
-ff
-15
-00
-09
-01
-b1
-02
-c0
-aa
-55
-01
-00
-48
-41
-0c
-aa
-55
-06
-00
-c3
-40
-35
-3f
-64
-db
-7b
-3b
-aa
-55
-01
-00
-a7
-40
-20
-aa
-55
-03
-00
-c9
-40
-00
-08
-a5
-aa
-55
-01
-00
-99
-40
-18
-aa
-55
-01
-00
-1c
-41
-3e
-aa
-55
-0c
-00
-16
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-aa
-55
-05
-00
-5e
-41
-08
-0e
-05
-03
-00
-aa
-55
-01
-00
-68
-41
-20
-aa
-55
-02
-00
-9a
-40
-00
-0c
-aa
-55
-05
-00
-43
-41
-ff
-04
-00
-00
-08
-aa
-55
-01
-00
-07
-44
-01
-aa
-55
-01
-00
-09
-44
-0a
-aa
-55
-01
-00
-08
-44
-00
-aa
-55
-01
-00
-11
-44
-00
-aa
-55
-04
-00
-0d
-44
-00
-07
-ff
-07
-aa
-55
-01
-00
-38
-44
-a0
-aa
-55
-02
-00
-3b
-44
-bc
-02
-aa
-55
-02
-00
-39
-44
-90
-01
-aa
-55
-02
-00
-3d
-44
-03
-09
-aa
-55
-01
-00
-49
-41
-ff
-aa
-55
-02
-00
-9c
-40
-49
-41
-55
-aa
-aa
-55
-5b
-80
-43
-53
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+26
+80
+03
+19
+00
+2a
+80
+03
+75
+10
+95
+01
+81
+00
+c0
+06
+a1
 ff
+09
+02
+a1
+01
+85
+a1
+95
+3f
+75
+08
+25
 ff
+15
+00
+09
+01
+81
+02
+85
+a2
+95
+3f
+75
+08
+25
 ff
+15
+00
+09
+01
+b1
+02
+c0
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+a5
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+3e
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+05
+00
+5e
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+68
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+0c
+aa
+55
+05
+00
+43
+41
 ff
+04
+00
+00
+08
+aa
+55
+01
+00
+07
+44
+01
+aa
+55
+01
+00
+09
+44
+0a
+aa
+55
+01
+00
+08
+44
+00
+aa
+55
+01
+00
+11
+44
+00
+aa
+55
+04
+00
+0d
+44
+00
+07
 ff
+07
+aa
+55
+01
+00
+38
+44
+a0
+aa
+55
+02
+00
+3b
+44
+bc
+02
+aa
+55
+02
+00
+39
+44
+90
+01
+aa
+55
+02
+00
+3d
+44
+03
+09
+aa
+55
+01
+00
+49
+41
 ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+6b
+80
+72
+73
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-96
-a0
+ad
+5e
Index: output/memmap.format
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/memmap.format	(revision 1978)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/memmap.format	(working copy)
@@ -1500,9 +1500,15 @@
 0x4800 mem_dg_data_len
 0x4801 mem_dg_test_mode
 0x4802 mem_dg_test_ch
-0x4803 mem_dg_usb_get_buff
-0x4843 mem_usb_ep2_config
-0x48f7 mem_config_new
+0x4803 mem_usb_ep2_fifo
+0x480b mem_dg_usb_get_buff
+0x484b mem_usb_ep2_config
+0x48ff mem_config_new
+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
 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 1978)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/otp.dat	(working copy)
@@ -11,8 +11,8 @@
 00
 aa
 55
-02
-0e
+5a
+0f
 c2
 84
 00
@@ -32,7 +32,7 @@
 c0
 0a
 01
-a4
+be
 c0
 0a
 80
@@ -52,7 +52,7 @@
 c0
 1b
 82
-1a
+34
 c0
 1c
 00
@@ -64,15 +64,15 @@
 c0
 1e
 82
-16
+30
 c0
 1f
 02
-66
+80
 c0
 58
 82
-2d
+47
 c0
 62
 80
@@ -80,11 +80,11 @@
 c0
 6d
 01
-76
+90
 c0
 6e
 01
-86
+a0
 c0
 7f
 00
@@ -108,67 +108,67 @@
 c0
 03
 01
-33
+37
 c0
 1c
 81
-c0
+da
 c0
 26
 81
-c4
+de
 c0
 37
 02
-be
+d9
 c0
 37
 82
-23
+3d
 c0
 39
 03
-05
+20
 c0
 39
-82
-f0
+83
+0b
 c0
 3a
 82
-cd
+e8
 c0
 40
 82
-ad
+c8
 c0
 41
 01
-c6
+e0
 c0
 42
 02
-7f
+99
 c0
 42
 82
-dd
+f8
 c0
 44
-01
-fe
+02
+18
 c0
 45
 02
-0b
+25
 c0
 45
 82
-e0
+fb
 c0
 4d
-82
-e9
+83
+04
 c1
 7f
 80
@@ -412,11 +412,11 @@
 20
 40
 01
-49
+63
 20
 40
 01
-74
+8e
 20
 40
 00
@@ -952,7 +952,7 @@
 58
 00
 48
-43
+4b
 67
 e1
 07
@@ -1132,11 +1132,11 @@
 58
 00
 48
-f7
+ff
 68
 48
 c8
-f7
+ff
 20
 20
 7a
@@ -1241,6 +1241,26 @@
 20
 7b
 65
+da
+20
+48
+03
+20
+40
+7d
+a3
+20
+7a
+00
+00
+20
+20
+48
+37
+20
+40
+01
+33
 6f
 e0
 89
@@ -1292,11 +1312,11 @@
 20
 40
 01
-41
+46
 20
 20
 01
-45
+4a
 6f
 f0
 8c
@@ -1313,6 +1333,18 @@
 20
 7b
 f0
+da
+20
+48
+03
+20
+40
+7d
+a3
+20
+7a
+00
+00
 6f
 f0
 8c
@@ -1325,10 +1357,82 @@
 7a
 00
 00
+6f
+e0
+89
+0d
+c4
+01
+00
+00
+6f
+e0
+89
+0d
+79
+3f
+fe
+02
+67
+e0
+89
+0d
+da
+20
+48
+03
+20
+40
+7d
+97
+20
+7a
+00
+00
+c0
+10
+7c
+09
+c0
+11
+81
+5b
+20
+20
+23
+5a
+6f
+e0
+c9
+4f
 20
+7a
+00
+00
+1f
+e2
+72
+00
+d8
+c0
+49
+50
 20
+40
 7b
-fb
+db
+d8
+a0
+49
+4f
+df
+20
+00
+41
+20
+20
+7c
+a1
 20
 75
 80
@@ -1380,7 +1484,7 @@
 20
 40
 01
-66
+80
 2a
 2f
 fe
@@ -1412,7 +1516,7 @@
 20
 40
 01
-66
+80
 d8
 a0
 8a
@@ -1440,7 +1544,7 @@
 20
 21
 01
-5b
+75
 20
 20
 21
@@ -1540,7 +1644,7 @@
 20
 40
 01
-9e
+b8
 70
 8a
 08
@@ -1576,7 +1680,7 @@
 20
 40
 01
-94
+ae
 6f
 f0
 8a
@@ -1620,7 +1724,7 @@
 20
 40
 01
-9e
+b8
 70
 80
 cd
@@ -1680,7 +1784,7 @@
 c3
 02
 81
-9f
+b9
 68
 59
 01
@@ -1712,7 +1816,7 @@
 c0
 08
 01
-bd
+d7
 58
 00
 57
@@ -1756,7 +1860,7 @@
 c0
 08
 01
-ba
+d4
 58
 00
 2b
@@ -1792,7 +1896,7 @@
 20
 20
 01
-b6
+d0
 58
 00
 83
@@ -1804,7 +1908,7 @@
 20
 20
 01
-ab
+c5
 6f
 e0
 c3
@@ -1836,19 +1940,19 @@
 c0
 55
 01
-cc
+e6
 c0
 2a
 81
-ce
+e8
 c0
 11
 01
-e4
+fe
 c0
 7f
 81
-d6
+f0
 20
 60
 00
@@ -1868,7 +1972,7 @@
 20
 3a
 01
-d4
+ee
 6f
 e2
 47
@@ -1900,11 +2004,11 @@
 c0
 00
 81
-da
+f4
 c0
 01
 01
-df
+f9
 20
 60
 00
@@ -1955,8 +2059,8 @@
 ae
 20
 3a
-01
-ea
+02
+04
 6f
 e2
 47
@@ -1979,12 +2083,12 @@
 b2
 c0
 00
-81
-ee
+82
+08
 c0
 01
-01
-f6
+02
+10
 20
 60
 00
@@ -2003,8 +2107,8 @@
 d3
 c0
 01
-01
-f3
+02
+0d
 20
 60
 00
@@ -2035,8 +2139,8 @@
 d4
 c0
 80
-01
-fb
+02
+15
 20
 60
 00
@@ -2116,7 +2220,7 @@
 20
 40
 02
-0f
+29
 20
 20
 34
@@ -2152,11 +2256,11 @@
 20
 40
 02
-18
+32
 20
 20
 03
-32
+4d
 58
 00
 00
@@ -2244,7 +2348,7 @@
 58
 00
 03
-10
+2b
 67
 e1
 45
@@ -2252,7 +2356,7 @@
 58
 00
 03
-66
+81
 67
 e1
 45
@@ -2260,7 +2364,7 @@
 58
 00
 03
-6f
+c5
 67
 e1
 45
@@ -2268,7 +2372,7 @@
 58
 00
 02
-38
+52
 67
 e1
 45
@@ -2292,11 +2396,11 @@
 c0
 00
 82
-3b
+55
 c0
 01
 02
-3e
+58
 6f
 e0
 c6
@@ -2304,11 +2408,11 @@
 c2
 80
 02
-5c
+76
 20
 20
 02
-40
+5a
 6f
 e0
 c6
@@ -2316,7 +2420,7 @@
 c2
 80
 82
-60
+7a
 6f
 e0
 c6
@@ -2324,11 +2428,11 @@
 c0
 00
 82
-44
+5e
 c0
 01
 82
-54
+6e
 20
 60
 00
@@ -2340,7 +2444,7 @@
 20
 40
 02
-4c
+66
 24
 77
 80
@@ -2404,11 +2508,11 @@
 c0
 00
 82
-44
+5e
 c0
 7f
 82
-44
+5e
 70
 08
 f9
@@ -2444,7 +2548,7 @@
 20
 20
 02
-63
+7d
 6f
 e0
 c6
@@ -2468,7 +2572,7 @@
 20
 20
 02
-5a
+74
 6f
 e0
 c6
@@ -2480,7 +2584,7 @@
 20
 40
 02
-6d
+87
 20
 40
 48
@@ -2516,7 +2620,7 @@
 20
 40
 02
-a2
+bd
 24
 37
 b3
@@ -2574,17 +2678,21 @@
 c7
 b1
 c0
+7f
+82
+b7
+1f
+e1
+7e
+03
+c0
 00
 82
-84
+9f
 c0
 01
 02
-96
-c0
-7f
-82
-9c
+b1
 20
 20
 33
@@ -2620,7 +2728,7 @@
 c0
 00
 82
-8f
+aa
 6f
 e0
 c6
@@ -2676,7 +2784,7 @@
 20
 20
 82
-94
+af
 6f
 e1
 45
@@ -2688,11 +2796,11 @@
 20
 40
 02
-a0
+bb
 20
 20
 01
-d6
+f0
 6f
 e0
 c5
@@ -2736,7 +2844,7 @@
 20
 40
 02
-cd
+e8
 6f
 e0
 c7
@@ -2768,15 +2876,15 @@
 20
 40
 02
-b9
+d4
 20
 40
 02
-a5
+c0
 20
 40
 02
-9e
+b9
 20
 40
 49
@@ -2832,7 +2940,7 @@
 c5
 13
 82
-c6
+e1
 6f
 e0
 c6
@@ -2976,7 +3084,7 @@
 20
 40
 02
-a2
+bd
 24
 37
 b3
@@ -2988,7 +3096,7 @@
 20
 42
 82
-73
+8d
 20
 20
 34
@@ -3108,7 +3216,7 @@
 c5
 17
 83
-0a
+25
 6f
 e0
 c5
@@ -3116,7 +3224,7 @@
 24
 3a
 03
-0a
+25
 78
 4e
 fc
@@ -3180,15 +3288,15 @@
 20
 40
 03
-1a
+35
 20
 40
 03
-26
+41
 20
 20
 03
-11
+2c
 d8
 40
 ff
@@ -3340,23 +3448,23 @@
 c0
 7b
 83
-45
+60
 c0
 7b
 03
-52
+6d
 c0
 7e
 03
-55
+70
 c0
 7f
 03
-5b
+76
 c0
 3d
 03
-5e
+79
 20
 20
 48
@@ -3432,7 +3540,7 @@
 d8
 c0
 48
-03
+0b
 d8
 a0
 08
@@ -3493,6 +3601,86 @@
 20
 48
 80
+6f
+e0
+c5
+ea
+c2
+83
+03
+a8
+c2
+83
+83
+b4
+c2
+82
+83
+b7
+6f
+e0
+c5
+7d
+1f
+e6
+7c
+09
+20
+22
+83
+95
+20
+40
+03
+95
+6f
+e0
+c5
+7d
+1f
+e0
+ff
+f8
+67
+e0
+c5
+7d
+1f
+e2
+72
+00
+d8
+a0
+45
+ea
+d8
+c0
+45
+f2
+20
+40
+7c
+da
+6f
+e0
+c5
+ea
+c2
+83
+03
+a8
+c2
+83
+83
+b4
+c2
+82
+83
+b7
+20
+60
+00
+00
 58
 00
 00
@@ -3525,10 +3713,166 @@
 5a
 48
 e1
+6f
+e3
+89
+14
+67
+e3
+c9
+45
+6f
+e0
+c9
+45
+68
+48
+c9
+4c
+67
+e0
+c9
+4c
+98
+46
+7c
+00
+24
+22
+83
+a6
+6f
+e3
+49
+46
+20
+7a
+00
+00
+70
+09
+0c
 20
 20
+20
+03
+bc
+6f
+e0
+c5
+eb
+68
 48
-36
+c9
+4d
+67
+e0
+c9
+4d
+98
+46
+7c
+00
+20
+62
+80
+00
+70
+49
+4f
+40
+70
+49
+50
+05
+6f
+e0
+c9
+4d
+67
+e0
+c9
+51
+70
+49
+52
+00
+70
+09
+0c
+23
+20
+20
+03
+bc
+6f
+e0
+c5
+eb
+67
+e0
+c7
+f7
+20
+60
+00
+00
+6f
+e0
+c9
+4e
+20
+7a
+00
+00
+70
+49
+4e
+00
+70
+46
+11
+a2
+20
+60
+00
+00
+6f
+e0
+89
+0e
+20
+7a
+00
+00
+da
+20
+48
+03
+20
+40
+7d
+a5
+24
+7a
+00
+00
+6f
+e0
+89
+0c
+67
+e0
+86
+6f
+da
+20
+48
+03
+20
+20
+7d
+8b
 6f
 e0
 c7
@@ -3536,15 +3880,15 @@
 c0
 00
 03
-74
+ca
 c0
 01
 03
-7a
+d0
 c0
 01
 83
-7d
+d3
 20
 20
 33
@@ -3597,8 +3941,8 @@
 20
 49
 07
-00
-49
+af
+40
 aa
 55
 40
@@ -3780,7 +4124,7 @@
 55
 43
 00
-f7
+ff
 48
 42
 09
@@ -3853,7 +4197,7 @@
 55
 a2
 00
-43
+4b
 48
 a1
 05
@@ -4209,8 +4553,8 @@
 aa
 aa
 55
-5b
+6b
 80
-43
-53
+72
+73
 21
Index: output/program.lis
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/program.lis	(revision 1978)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/program.lis	(working copy)
@@ -4,20 +4,20 @@
 0001 c0000029 beq patch00_0 ,p_soft_reset 
 0002 c001002f beq patch00_2 ,p_main_loop 
 0003 c0088038 beq patch02_1 ,p_set_sync_on 
-0004 c00a01a4 beq patch02_4 ,p_set_lemode 
+0004 c00a01be beq patch02_4 ,p_set_lemode 
 0005 c00a80d3 beq patch02_5 ,p_rf_rx_enable 
 0006 c00c00e1 beq patch03_0 ,p_txon 
 0007 c00c8087 beq patch03_1 ,p_set_tx_power 
 0008 c00d0046 beq patch03_2 ,p_initialize_radio_cont 
-0009 c01b821a beq patch06_7 ,p_dongle_default_init 
+0009 c01b8234 beq patch06_7 ,p_dongle_default_init 
 000a c01c00a6 beq patch07_0 ,p_dongle_read_kb_bind_status 
 000b c01c80a2 beq patch07_1 ,p_dongle_write_kb_bind_status 
-000c c01e8216 beq patch07_5 ,p_dongle_usb_dispatch 
-000d c01f0266 beq patch07_6 ,p_dongle_work_mode_auto 
-000e c058822d beq patch16_1 ,p_app_init 
+000c c01e8230 beq patch07_5 ,p_dongle_usb_dispatch 
+000d c01f0280 beq patch07_6 ,p_dongle_work_mode_auto 
+000e c0588247 beq patch16_1 ,p_app_init 
 000f c062809f beq patch18_5 ,p_otp_read_data 
-0010 c06d0176 beq patch1b_2 ,p_sadc_calibration 
-0011 c06e0186 beq patch1b_4 ,p_enable_adc 
+0010 c06d0190 beq patch1b_2 ,p_sadc_calibration 
+0011 c06e01a0 beq patch1b_4 ,p_enable_adc 
 0012 c07f00e8 beq patch1f_6 ,p_usb_init 
 0013 c07f80f0 beq patch1f_7 ,p_usb_rx 
 0014 2020235a branch assert 
@@ -25,22 +25,22 @@
 pf_patch_ext:
 0015 c000010d beq patch20_0 ,p_usb_class_type 
 0016 c0010113 beq patch20_2 ,p_usb0_request_get_descriptor 
-0017 c0030133 beq patch20_6 ,p_usb_tx 
-0018 c01c81c0 beq patch27_1 ,p_le_parse 
-0019 c02681c4 beq patch29_5 ,p_le_init_adv 
-001a c03702be beq patch2d_6 ,p_g24_receive_update_rxbuff 
-001b c0378223 beq patch2d_7 ,p_g24_receive_skip_end 
-001c c0390305 beq patch2e_2 ,p_g24_transmit_packet 
-001d c03982f0 beq patch2e_3 ,p_g24_transmit_prep 
-001e c03a82cd beq patch2e_5 ,p_g24_read_len_pid_crc 
-001f c04082ad beq patch30_1 ,p_g24_bind_data_process 
-0020 c04101c6 beq patch30_2 ,p_g24_bind_data_parse_next 
-0021 c042027f beq patch30_4 ,p_g24_receive_packet_parse_end 
-0022 c04282dd beq patch30_5 ,p_g24_rx_interrupt_clear 
-0023 c04401fe beq patch31_0 ,p_g24_mode_switch_bind_search 
-0024 c045020b beq patch31_2 ,p_g24_bind_mode_auto 
-0025 c04582e0 beq patch31_3 ,p_g24_search_mode_auto 
-0026 c04d82e9 beq patch33_3 ,p_g24_ackpayload_parse 
+0017 c0030137 beq patch20_6 ,p_usb_tx 
+0018 c01c81da beq patch27_1 ,p_le_parse 
+0019 c02681de beq patch29_5 ,p_le_init_adv 
+001a c03702d9 beq patch2d_6 ,p_g24_receive_update_rxbuff 
+001b c037823d beq patch2d_7 ,p_g24_receive_skip_end 
+001c c0390320 beq patch2e_2 ,p_g24_transmit_packet 
+001d c039830b beq patch2e_3 ,p_g24_transmit_prep 
+001e c03a82e8 beq patch2e_5 ,p_g24_read_len_pid_crc 
+001f c04082c8 beq patch30_1 ,p_g24_bind_data_process 
+0020 c04101e0 beq patch30_2 ,p_g24_bind_data_parse_next 
+0021 c0420299 beq patch30_4 ,p_g24_receive_packet_parse_end 
+0022 c04282f8 beq patch30_5 ,p_g24_rx_interrupt_clear 
+0023 c0440218 beq patch31_0 ,p_g24_mode_switch_bind_search 
+0024 c0450225 beq patch31_2 ,p_g24_bind_mode_auto 
+0025 c04582fb beq patch31_3 ,p_g24_search_mode_auto 
+0026 c04d8304 beq patch33_3 ,p_g24_ackpayload_parse 
 0027 c17f8000 rtneq patch3f_7 
 0028 2020235a branch assert 
 
@@ -111,8 +111,8 @@
 0060 58557474 setarg 0x557474 
 0061 67f18968 store 3 ,0x8968 
 0062 7089606e jam 0x6e ,0x8960 
-0063 20400149 call p_rx_dcoc 
-0064 20400174 call p_rfpll_aac_ghpc 
+0063 20400163 call p_rx_dcoc 
+0064 2040018e call p_rfpll_aac_ghpc 
 0065 20400068 call p_set_xtal_cap 
 0066 7041480c jam system_clk_12m ,mem_system_clk 
 0067 20206f4e branch sadc_calibration 
@@ -282,7 +282,7 @@
 p_usb_init:
 00e8 20407396 call enable_authrom 
 00e9 20407932 call usb_init_param 
-00ea 58004843 setarg mem_usb_ep2_config 
+00ea 5800484b setarg mem_usb_ep2_config 
 00eb 67e107a9 store 2 ,mem_hidreportdesc_m 
 00ec 20207915 branch usb_init_restart 
 
@@ -343,8 +343,8 @@
 0116 20207a05 branch usb0_request_get_descriptor + 4 
 
 p_dsc_config_info:
-0117 580048f7 setarg mem_config_new 
-0118 6848c8f7 fetcht 1 ,mem_config_new 
+0117 580048ff setarg mem_config_new 
+0118 6848c8ff fetcht 1 ,mem_config_new 
 0119 20207a18 branch dsc_info_set_data_len 
 
 p_usb_out_device:
@@ -378,780 +378,892 @@
 0131 708c1b02 jam 0x2 ,core_usb_clear_nak 
 0132 20207b65 branch usb_set_report_next 
 
+p_usb_tx_ep2_queue_buff_check:
+0133 da204803 arg mem_usb_ep2_fifo ,rega 
+0134 20407da3 call fifo_is_empty 
+0135 207a0000 rtn blank 
+0136 20204837 branch dongle_usb_tx_enable_ep2 
+
 p_usb_tx:
-0133 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0134 207a0000 rtn blank 
-0135 6ff08c25 fetch 1 ,core_usb_txbusy 
-0136 1fe17e0f and_into 0x0f ,pdata 
-0137 243a7c30 nbranch usb_inwake_state_tx_dispose ,blank 
-0138 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
-0139 203a7c06 branch usb_tx_fifo_release ,blank 
-013a 6fe08900 fetch 1 ,mem_usb_state 
-013b c001fc40 beq usb_sleep ,usb_windows_wakeup 
-013c c0817c06 bne usb_connected ,usb_tx_fifo_release 
-013d 6fe08902 fetch 1 ,mem_usb_clear_remote_wakeup 
-013e 243a7c06 nbranch usb_tx_fifo_release ,blank 
-013f 20400141 call p_usb_tx_data_ep1 
-0140 20200145 branch p_usb_tx_data_ep2 
+0137 20400133 call p_usb_tx_ep2_queue_buff_check 
+0138 6fe0890d fetch 1 ,mem_usb_tx_enable 
+0139 207a0000 rtn blank 
+013a 6ff08c25 fetch 1 ,core_usb_txbusy 
+013b 1fe17e0f and_into 0x0f ,pdata 
+013c 243a7c30 nbranch usb_inwake_state_tx_dispose ,blank 
+013d 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+013e 203a7c06 branch usb_tx_fifo_release ,blank 
+013f 6fe08900 fetch 1 ,mem_usb_state 
+0140 c001fc40 beq usb_sleep ,usb_windows_wakeup 
+0141 c0817c06 bne usb_connected ,usb_tx_fifo_release 
+0142 6fe08902 fetch 1 ,mem_usb_clear_remote_wakeup 
+0143 243a7c06 nbranch usb_tx_fifo_release ,blank 
+0144 20400146 call p_usb_tx_data_ep1 
+0145 2020014a branch p_usb_tx_data_ep2 
 
 p_usb_tx_data_ep1:
-0141 6ff08c25 fetch 1 ,core_usb_txbusy 
-0142 1fe17e0f and_into 0x0f ,pdata 
-0143 247a0000 nrtn blank 
-0144 20207bf0 branch usb_tx_data_ep1 + 2 
+0146 6ff08c25 fetch 1 ,core_usb_txbusy 
+0147 1fe17e0f and_into 0x0f ,pdata 
+0148 247a0000 nrtn blank 
+0149 20207bf0 branch usb_tx_data_ep1 + 2 
 
 p_usb_tx_data_ep2:
-0145 6ff08c25 fetch 1 ,core_usb_txbusy 
-0146 1fe17e0f and_into 0x0f ,pdata 
-0147 247a0000 nrtn blank 
-0148 20207bfb branch usb_tx_data_ep2 + 2 
+014a da204803 arg mem_usb_ep2_fifo ,rega 
+014b 20407da3 call fifo_is_empty 
+014c 207a0000 rtn blank 
+014d 6ff08c25 fetch 1 ,core_usb_txbusy 
+014e 1fe17e0f and_into 0x0f ,pdata 
+014f 247a0000 nrtn blank 
+0150 6fe0890d fetch 1 ,mem_usb_tx_enable 
+0151 c4010000 rtnbit0 2 
+0152 6fe0890d fetch 1 ,mem_usb_tx_enable 
+0153 793ffe02 set0 2 ,pdata 
+0154 67e0890d store 1 ,mem_usb_tx_enable 
+0155 da204803 arg mem_usb_ep2_fifo ,rega 
+0156 20407d97 call fifo_out 
+0157 207a0000 rtn blank 
+0158 c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
+0159 c011815b beq usb_ep2_dpi ,p_usb_tx_dpi_data 
+015a 2020235a branch assert 
+
+p_usb_tx_dpi_data:
+015b 6fe0c94f fetch 1 ,mem_usb_dpi_info_data 
+015c 207a0000 rtn blank 
+015d 1fe27200 copy pdata ,loopcnt 
+015e d8c04950 arg mem_usb_dpi_info_data + 1 ,contr 
+015f 20407bdb call usb_tx_ep2 
+0160 d8a0494f arg mem_usb_dpi_info_data ,contw 
+
+p_usb_tx_buff_clr:
+0161 df200041 arg 65 ,loopcnt 
+0162 20207ca1 branch clear_mem 
 
 p_rx_dcoc:
-0149 20758000 rtn wake 
-014a 20402160 call set_sync_on 
-014b d8400027 arg 39 ,temp 
-014c 2040216f call set_freq_rx 
-014d 204021a6 call rf_rx_enable 
-014e 708a257f jam 0x7f ,0x8a25 
-014f 708a301a jam 0x1a ,0x8a30 
-0150 708a3178 jam 0x78 ,0x8a31 
-0151 708a8fb2 jam 0xb2 ,0x8a8f 
-0152 708ac200 jam 0 ,0x8ac2 
-0153 708ac300 jam 0 ,0x8ac3 
-0154 d8e00006 arg 6 ,queue 
-0155 20400166 call p_rx_dcoc_avg 
-0156 2a2ffe0d isolate1 13 ,rega 
-0157 2040211d call qset_start 
-0158 2a4ffe0d isolate1 13 ,regb 
-0159 2040211e call qset_p 
-015a d8e00005 arg 5 ,queue 
+0163 20758000 rtn wake 
+0164 20402160 call set_sync_on 
+0165 d8400027 arg 39 ,temp 
+0166 2040216f call set_freq_rx 
+0167 204021a6 call rf_rx_enable 
+0168 708a257f jam 0x7f ,0x8a25 
+0169 708a301a jam 0x1a ,0x8a30 
+016a 708a3178 jam 0x78 ,0x8a31 
+016b 708a8fb2 jam 0xb2 ,0x8a8f 
+016c 708ac200 jam 0 ,0x8ac2 
+016d 708ac300 jam 0 ,0x8ac3 
+016e d8e00006 arg 6 ,queue 
+016f 20400180 call p_rx_dcoc_avg 
+0170 2a2ffe0d isolate1 13 ,rega 
+0171 2040211d call qset_start 
+0172 2a4ffe0d isolate1 13 ,regb 
+0173 2040211e call qset_p 
+0174 d8e00005 arg 5 ,queue 
 
 p_rx_dcoc_loop2:
-015b 2040211c call qset1_p 
-015c 2040211e call qset_p 
-015d 20400166 call p_rx_dcoc_avg 
-015e d8a08ac2 arg 0x8ac2 ,contw 
-015f 1a31fe00 rshift4 rega ,pdata 
-0160 20402117 call qsetxor 
-0161 1a51fe00 rshift4 regb ,pdata 
-0162 20402117 call qsetxor 
-0163 18e08fff increase -1 ,queue 
-0164 2021015b branch p_rx_dcoc_loop2 ,positive 
-0165 2020214f branch rx_dcoc_loop2 + 10 
+0175 2040211c call qset1_p 
+0176 2040211e call qset_p 
+0177 20400180 call p_rx_dcoc_avg 
+0178 d8a08ac2 arg 0x8ac2 ,contw 
+0179 1a31fe00 rshift4 rega ,pdata 
+017a 20402117 call qsetxor 
+017b 1a51fe00 rshift4 regb ,pdata 
+017c 20402117 call qsetxor 
+017d 18e08fff increase -1 ,queue 
+017e 20210175 branch p_rx_dcoc_loop2 ,positive 
+017f 2020214f branch rx_dcoc_loop2 + 10 
 
 p_rx_dcoc_avg:
-0166 2000003c nop 60 
-0167 58000f00 setarg mem_dcoc_buf 
-0168 67f10982 store 2 ,0x8982 
-0169 58000ff0 setarg mem_dcoc_buf_end 
-016a 67f10984 store 2 ,0x8984 
-016b 70898109 jam 0x9 ,0x8981 
-016c 70898103 jam 0x3 ,0x8981 
-016d 70898006 jam 0x6 ,0x8980 
-016e 2000003c nop 60 
-016f da200000 arg 0 ,rega 
-0170 da400000 arg 0 ,regb 
-0171 df200010 arg 16 ,loopcnt 
-0172 d8c00f00 arg mem_dcoc_buf ,contr 
-0173 2020212d branch rx_dcoc_loop 
+0180 2000003c nop 60 
+0181 58000f00 setarg mem_dcoc_buf 
+0182 67f10982 store 2 ,0x8982 
+0183 58000ff0 setarg mem_dcoc_buf_end 
+0184 67f10984 store 2 ,0x8984 
+0185 70898109 jam 0x9 ,0x8981 
+0186 70898103 jam 0x3 ,0x8981 
+0187 70898006 jam 0x6 ,0x8980 
+0188 2000003c nop 60 
+0189 da200000 arg 0 ,rega 
+018a da400000 arg 0 ,regb 
+018b df200010 arg 16 ,loopcnt 
+018c d8c00f00 arg mem_dcoc_buf ,contr 
+018d 2020212d branch rx_dcoc_loop 
 
 p_rfpll_aac_ghpc:
-0174 20758000 rtn wake 
-0175 20202272 branch rfpll_aac_ghpc + 1 
+018e 20758000 rtn wake 
+018f 20202272 branch rfpll_aac_ghpc + 1 
 
 p_sadc_calibration:
-0176 20758000 rtn wake 
-0177 708a0777 jam 0x77 ,core_gpadc_ctrl 
-0178 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
-0179 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-017a 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-017b 67f080cd store 1 ,core_sadc_clkdiv 
-017c 20000bb8 nop 3000 
-017d 2040019e call p_sadc_read 
-017e 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-017f 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-0180 df200008 arg 8 ,loopcnt 
-0181 20406f58 call sadc_cal_read + 1 
-0182 6fe0c419 fetch 1 ,mem_spi_write_addr 
-0183 67e0c433 store 1 ,mem_adc_cal_c7 
-0184 6240c419 storer regb ,1 ,mem_spi_write_addr 
-0185 20600000 rtn 
+0190 20758000 rtn wake 
+0191 708a0777 jam 0x77 ,core_gpadc_ctrl 
+0192 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
+0193 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+0194 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+0195 67f080cd store 1 ,core_sadc_clkdiv 
+0196 20000bb8 nop 3000 
+0197 204001b8 call p_sadc_read 
+0198 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+0199 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+019a df200008 arg 8 ,loopcnt 
+019b 20406f58 call sadc_cal_read + 1 
+019c 6fe0c419 fetch 1 ,mem_spi_write_addr 
+019d 67e0c433 store 1 ,mem_adc_cal_c7 
+019e 6240c419 storer regb ,1 ,mem_spi_write_addr 
+019f 20600000 rtn 
 
 p_enable_adc:
-0186 20400194 call p_sadc_cal_write 
-0187 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-0188 793ffe07 set0 7 ,pdata 
-0189 67f08a09 store 1 ,core_gpadc_cfg1 
-018a 708a0777 jam 0x77 ,core_gpadc_ctrl 
-018b 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-018c 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-018d 20406f90 call sadc_channel 
-018e 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-018f 67f080cd store 1 ,core_sadc_clkdiv 
-0190 20000bb8 nop 3000 
-0191 2040019e call p_sadc_read 
-0192 7080cd00 jam 0 ,core_sadc_clkdiv 
-0193 20206fa1 branch sadc_dma 
+01a0 204001ae call p_sadc_cal_write 
+01a1 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+01a2 793ffe07 set0 7 ,pdata 
+01a3 67f08a09 store 1 ,core_gpadc_cfg1 
+01a4 708a0777 jam 0x77 ,core_gpadc_ctrl 
+01a5 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+01a6 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+01a7 20406f90 call sadc_channel 
+01a8 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+01a9 67f080cd store 1 ,core_sadc_clkdiv 
+01aa 20000bb8 nop 3000 
+01ab 204001b8 call p_sadc_read 
+01ac 7080cd00 jam 0 ,core_sadc_clkdiv 
+01ad 20206fa1 branch sadc_dma 
 
 p_sadc_cal_write:
-0194 6ff080cc fetch 1 ,core_sadc_ctrl 
-0195 79207e01 set1 1 ,pdata 
-0196 67f080cc store 1 ,core_sadc_ctrl 
-0197 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-0198 6fe0c433 fetch 1 ,mem_adc_cal_c7 
-0199 67e0c419 store 1 ,mem_spi_write_addr 
-019a df200008 arg 8 ,loopcnt 
-019b 20406f67 call sadc_cal_write + 4 
-019c 6240c419 storer regb ,1 ,mem_spi_write_addr 
-019d 20600000 rtn 
+01ae 6ff080cc fetch 1 ,core_sadc_ctrl 
+01af 79207e01 set1 1 ,pdata 
+01b0 67f080cc store 1 ,core_sadc_ctrl 
+01b1 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+01b2 6fe0c433 fetch 1 ,mem_adc_cal_c7 
+01b3 67e0c419 store 1 ,mem_spi_write_addr 
+01b4 df200008 arg 8 ,loopcnt 
+01b5 20406f67 call sadc_cal_write + 4 
+01b6 6240c419 storer regb ,1 ,mem_spi_write_addr 
+01b7 20600000 rtn 
 
 p_sadc_read:
-019e 7080cc03 jam 0x03 ,core_sadc_ctrl 
+01b8 7080cc03 jam 0x03 ,core_sadc_ctrl 
 
 p_sadc_read_wait:
-019f 6ff08129 fetch 1 ,core_perf_status 
-01a0 c302819f bbit0 saradc_done ,p_sadc_read_wait 
-01a1 68590164 fetcht 2 ,core_sadc_data 
-01a2 6049440a storet 2 ,mem_adc_current_value 
-01a3 20206f9f branch sadc_read_wait2 + 2 
+01b9 6ff08129 fetch 1 ,core_perf_status 
+01ba c30281b9 bbit0 saradc_done ,p_sadc_read_wait 
+01bb 68590164 fetcht 2 ,core_sadc_data 
+01bc 6049440a storet 2 ,mem_adc_current_value 
+01bd 20206f9f branch sadc_read_wait2 + 2 
 
 p_set_lemode:
-01a4 708a8211 jam 0x11 ,0x8a82 
-01a5 708a8d12 jam 0x12 ,0x8a8d 
-01a6 708a8e0a jam 0x0a ,0x8a8e 
-01a7 6fe0c099 fetch 1 ,mem_fcomp_div 
-01a8 c00801bd beq xtal_16m ,p_set_lemode_2m_16m 
-01a9 58005762 setarg 0x5762 
-01aa 67f10907 store 2 ,0x8907 
+01be 708a8211 jam 0x11 ,0x8a82 
+01bf 708a8d12 jam 0x12 ,0x8a8d 
+01c0 708a8e0a jam 0x0a ,0x8a8e 
+01c1 6fe0c099 fetch 1 ,mem_fcomp_div 
+01c2 c00801d7 beq xtal_16m ,p_set_lemode_2m_16m 
+01c3 58005762 setarg 0x5762 
+01c4 67f10907 store 2 ,0x8907 
 
 p_set_lemode_2m:
-01ab 70890103 jam 3 ,0x8901 
-01ac 70893003 jam 3 ,0x8930 
-01ad c6168000 rtnmark1 mark_ble_2m 
-01ae 70890101 jam 1 ,0x8901 
-01af 708a8207 jam 0x07 ,0x8a82 
-01b0 708a8d44 jam 0x44 ,0x8a8d 
-01b1 708a8e0a jam 0x0a ,0x8a8e 
-01b2 6fe0c099 fetch 1 ,mem_fcomp_div 
-01b3 c00801ba beq xtal_16m ,p_set_lemode_1m_16m 
-01b4 58002bb1 setarg 0x2bb1 
-01b5 67f10907 store 2 ,0x8907 
+01c5 70890103 jam 3 ,0x8901 
+01c6 70893003 jam 3 ,0x8930 
+01c7 c6168000 rtnmark1 mark_ble_2m 
+01c8 70890101 jam 1 ,0x8901 
+01c9 708a8207 jam 0x07 ,0x8a82 
+01ca 708a8d44 jam 0x44 ,0x8a8d 
+01cb 708a8e0a jam 0x0a ,0x8a8e 
+01cc 6fe0c099 fetch 1 ,mem_fcomp_div 
+01cd c00801d4 beq xtal_16m ,p_set_lemode_1m_16m 
+01ce 58002bb1 setarg 0x2bb1 
+01cf 67f10907 store 2 ,0x8907 
 
 p_set_lemode_1m:
-01b6 c6978000 rtnmark0 mark_ble_lr 
-01b7 70893024 jam 0x24 ,0x8930 
-01b8 70890105 jam 5 ,0x8901 
-01b9 20600000 rtn 
+01d0 c6978000 rtnmark0 mark_ble_lr 
+01d1 70893024 jam 0x24 ,0x8930 
+01d2 70890105 jam 5 ,0x8901 
+01d3 20600000 rtn 
 
 p_set_lemode_1m_16m:
-01ba 58004189 setarg 0x4189 
-01bb 67f10907 store 2 ,0x8907 
-01bc 202001b6 branch p_set_lemode_1m 
+01d4 58004189 setarg 0x4189 
+01d5 67f10907 store 2 ,0x8907 
+01d6 202001d0 branch p_set_lemode_1m 
 
 p_set_lemode_2m_16m:
-01bd 58008312 setarg 0x8312 
-01be 67f10907 store 2 ,0x8907 
-01bf 202001ab branch p_set_lemode_2m 
+01d7 58008312 setarg 0x8312 
+01d8 67f10907 store 2 ,0x8907 
+01d9 202001c5 branch p_set_lemode_2m 
 
 p_le_parse:
-01c0 6fe0c334 fetch 1 ,mem_le_packet_llid 
-01c1 c1000000 rtneq llid_reserved 
-01c2 c001b04a beq llid_le_ll ,le_parse_ll 
-01c3 202028e1 branch le_parse_l2cap 
+01da 6fe0c334 fetch 1 ,mem_le_packet_llid 
+01db c1000000 rtneq llid_reserved 
+01dc c001b04a beq llid_le_ll ,le_parse_ll 
+01dd 202028e1 branch le_parse_l2cap 
 
 p_le_init_adv:
-01c4 793f8030 set0 mark_ble_crc_fail ,mark 
-01c5 20202af6 branch le_init_adv + 1 
+01de 793f8030 set0 mark_ble_crc_fail ,mark 
+01df 20202af6 branch le_init_adv + 1 
 
 p_g24_bind_data_parse_next:
-01c6 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
-01c7 c05501cc beq datatype_bind ,p_g24_bind_first_step 
-01c8 c02a81ce beq datatype_config ,p_g24_bind_second_step 
-01c9 c01101e4 beq datatype_ok ,p_g24_bind_third_step 
-01ca c07f81d6 beq datatype_attemp ,p_g24_data_attemp 
-01cb 20600000 rtn 
+01e0 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
+01e1 c05501e6 beq datatype_bind ,p_g24_bind_first_step 
+01e2 c02a81e8 beq datatype_config ,p_g24_bind_second_step 
+01e3 c01101fe beq datatype_ok ,p_g24_bind_third_step 
+01e4 c07f81f0 beq datatype_attemp ,p_g24_data_attemp 
+01e5 20600000 rtn 
 
 p_g24_bind_first_step:
-01cc 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-01cd 2020332a branch g24_bind_first_step + 1 
+01e6 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+01e7 2020332a branch g24_bind_first_step + 1 
 
 p_g24_bind_second_step:
-01ce 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
-01cf 203a01d4 branch p_g24_bind_second_step_skip ,blank 
-01d0 6fe247b3 fetch 4 ,mem_24g_rxdata_temp_new + 4 
-01d1 684a44f1 fetcht 4 ,mem_24g_lap 
-01d2 98467c00 isub temp ,null 
-01d3 24628000 nrtn zero 
+01e8 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+01e9 203a01ee branch p_g24_bind_second_step_skip ,blank 
+01ea 6fe247b3 fetch 4 ,mem_24g_rxdata_temp_new + 4 
+01eb 684a44f1 fetcht 4 ,mem_24g_lap 
+01ec 98467c00 isub temp ,null 
+01ed 24628000 nrtn zero 
 
 p_g24_bind_second_step_skip:
-01d4 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-01d5 20203341 branch g24_bind_second_step_skip + 1 
+01ee 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+01ef 20203341 branch g24_bind_second_step_skip + 1 
 
 p_g24_data_attemp:
-01d6 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-01d7 c00081da beq datatype_device1 ,p_g24_data_attemp_device1 
-01d8 c00101df beq datatype_device2 ,p_g24_data_attemp_device2 
-01d9 20600000 rtn 
+01f0 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+01f1 c00081f4 beq datatype_device1 ,p_g24_data_attemp_device1 
+01f2 c00101f9 beq datatype_device2 ,p_g24_data_attemp_device2 
+01f3 20600000 rtn 
 
 p_g24_data_attemp_device1:
-01da 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
-01db 247a0000 nrtn blank 
-01dc 6fe247b3 fetch 4 ,mem_24g_rxdata_temp_new + 4 
-01dd 67e2462c store 4 ,mem_24g_transmitter_addr 
-01de 202035a3 branch g24_store_device1_addr 
+01f4 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+01f5 247a0000 nrtn blank 
+01f6 6fe247b3 fetch 4 ,mem_24g_rxdata_temp_new + 4 
+01f7 67e2462c store 4 ,mem_24g_transmitter_addr 
+01f8 202035a3 branch g24_store_device1_addr 
 
 p_g24_data_attemp_device2:
-01df 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
-01e0 247a0000 nrtn blank 
-01e1 6fe247b3 fetch 4 ,mem_24g_rxdata_temp_new + 4 
-01e2 67e2462c store 4 ,mem_24g_transmitter_addr 
-01e3 202035a9 branch g24_store_device2_addr 
+01f9 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
+01fa 247a0000 nrtn blank 
+01fb 6fe247b3 fetch 4 ,mem_24g_rxdata_temp_new + 4 
+01fc 67e2462c store 4 ,mem_24g_transmitter_addr 
+01fd 202035a9 branch g24_store_device2_addr 
 
 p_g24_bind_third_step:
-01e4 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
-01e5 203a01ea branch p_g24_bind_third_step_skip ,blank 
-01e6 6fe247b3 fetch 4 ,mem_24g_rxdata_temp_new + 4 
-01e7 684a462c fetcht 4 ,mem_24g_transmitter_addr 
-01e8 98467c00 isub temp ,null 
-01e9 24628000 nrtn zero 
+01fe 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+01ff 203a0204 branch p_g24_bind_third_step_skip ,blank 
+0200 6fe247b3 fetch 4 ,mem_24g_rxdata_temp_new + 4 
+0201 684a462c fetcht 4 ,mem_24g_transmitter_addr 
+0202 98467c00 isub temp ,null 
+0203 24628000 nrtn zero 
 
 p_g24_bind_third_step_skip:
-01ea 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-01eb c00081ee beq datatype_device1 ,p_g24_bind_third_step_device1 
-01ec c00101f6 beq datatype_device2 ,p_g24_bind_third_step_device2 
-01ed 20600000 rtn 
+0204 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+0205 c0008208 beq datatype_device1 ,p_g24_bind_third_step_device1 
+0206 c0010210 beq datatype_device2 ,p_g24_bind_third_step_device2 
+0207 20600000 rtn 
 
 p_g24_bind_third_step_device1:
-01ee 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
-01ef 247a0000 nrtn blank 
-01f0 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
-01f1 c00101f3 beq 2 ,p_g24_bind_dvc1_step_success 
-01f2 20600000 rtn 
+0208 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+0209 247a0000 nrtn blank 
+020a 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+020b c001020d beq 2 ,p_g24_bind_dvc1_step_success 
+020c 20600000 rtn 
 
 p_g24_bind_dvc1_step_success:
-01f3 7045de01 jam 1 ,mem_24g_device1_bind_disable 
-01f4 2040338d call g24_binding_dvc1_living 
-01f5 2020336b branch g24_bind_dvc1_step_success + 1 
+020d 7045de01 jam 1 ,mem_24g_device1_bind_disable 
+020e 2040338d call g24_binding_dvc1_living 
+020f 2020336b branch g24_bind_dvc1_step_success + 1 
 
 p_g24_bind_third_step_device2:
-01f6 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
-01f7 247a0000 nrtn blank 
-01f8 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-01f9 c08001fb bne 0 ,p_g24_bind_dvc2_step_success 
-01fa 20600000 rtn 
+0210 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
+0211 247a0000 nrtn blank 
+0212 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+0213 c0800215 bne 0 ,p_g24_bind_dvc2_step_success 
+0214 20600000 rtn 
 
 p_g24_bind_dvc2_step_success:
-01fb 7045df01 jam 1 ,mem_24g_device2_bind_disable 
-01fc 20403393 call g24_binding_dvc2_living 
-01fd 20203378 branch g24_bind_dvc2_step_success + 1 
+0215 7045df01 jam 1 ,mem_24g_device2_bind_disable 
+0216 20403393 call g24_binding_dvc2_living 
+0217 20203378 branch g24_bind_dvc2_step_success + 1 
 
 p_g24_mode_switch_bind_search:
-01fe 6fe0c616 fetch 1 ,mem_24g_work_mode 
-01ff c1000000 rtneq dongle_work 
-0200 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
-0201 247a0000 nrtn blank 
-0202 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
-0203 247a0000 nrtn blank 
-0204 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
-0205 207a0000 rtn blank 
-0206 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
-0207 c1800000 rtnne 0 
-0208 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-0209 c1800000 rtnne 0 
-020a 20203436 branch g24_mode_switch_bind_search + 9 
+0218 6fe0c616 fetch 1 ,mem_24g_work_mode 
+0219 c1000000 rtneq dongle_work 
+021a 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
+021b 247a0000 nrtn blank 
+021c 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+021d 247a0000 nrtn blank 
+021e 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
+021f 207a0000 rtn blank 
+0220 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+0221 c1800000 rtnne 0 
+0222 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+0223 c1800000 rtnne 0 
+0224 20203436 branch g24_mode_switch_bind_search + 9 
 
 p_g24_bind_mode_auto:
-020b 6fe0c616 fetch 1 ,mem_24g_work_mode 
-020c c1808000 rtnne dongle_bind 
-020d 2040020f call p_g24_bind_init 
-020e 2020346d branch g24_bind_mode_auto + 4 
+0225 6fe0c616 fetch 1 ,mem_24g_work_mode 
+0226 c1808000 rtnne dongle_bind 
+0227 20400229 call p_g24_bind_init 
+0228 2020346d branch g24_bind_mode_auto + 4 
 
 p_g24_bind_init:
-020f 6fe0c615 fetch 1 ,mem_24g_mode_init 
-0210 c3808000 rtnbit1 dongle_bind 
-0211 79207e01 set1 dongle_bind ,pdata 
-0212 67e0c615 store 1 ,mem_24g_mode_init 
-0213 58000000 setarg 0 
-0214 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
-0215 20203307 branch g24_bind_init + 8 
+0229 6fe0c615 fetch 1 ,mem_24g_mode_init 
+022a c3808000 rtnbit1 dongle_bind 
+022b 79207e01 set1 dongle_bind ,pdata 
+022c 67e0c615 store 1 ,mem_24g_mode_init 
+022d 58000000 setarg 0 
+022e 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
+022f 20203307 branch g24_bind_init + 8 
 
 p_dongle_usb_dispatch:
-0216 20400218 call p_wdt_kick 
-0217 20200332 branch p_dongle_usb_dispatch_analysis 
+0230 20400232 call p_wdt_kick 
+0231 2020034d branch p_dongle_usb_dispatch_analysis 
 
 p_wdt_kick:
-0218 58000010 setarg 16 
-0219 202070c8 branch wdt_init_config 
+0232 58000010 setarg 16 
+0233 202070c8 branch wdt_init_config 
 
 p_dongle_default_init:
-021a 204047c3 call dongle_default_init + 1 
-021b 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
-021c 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
-021d 7045ca01 jam on ,mem_24g_disable_fec1 
-021e 20403281 call g24_enable_1m 
-021f 6fe0c669 fetch 1 ,mem_dg_sys_config 
-0220 c4000000 rtnbit0 dg_enable_new_revision 
-0221 7045ca01 jam on ,mem_24g_disable_fec1 
-0222 20203284 branch g24_enable_2m 
+0234 204047c3 call dongle_default_init + 1 
+0235 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
+0236 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
+0237 7045ca01 jam on ,mem_24g_disable_fec1 
+0238 20403281 call g24_enable_1m 
+0239 6fe0c669 fetch 1 ,mem_dg_sys_config 
+023a c4000000 rtnbit0 dg_enable_new_revision 
+023b 7045ca01 jam on ,mem_24g_disable_fec1 
+023c 20203284 branch g24_enable_2m 
 
 p_g24_receive_skip_end:
-0223 6fe0c669 fetch 1 ,mem_dg_sys_config 
-0224 c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
-0225 7837fc00 enable user3 
-0226 20000018 nop 24 
-0227 6fe0c6dd fetch 1 ,mem_24g_txbuf_new 
-0228 79207e00 set1 bit_ack_24g ,pdata 
-0229 67e0c6dd store 1 ,mem_24g_txbuf_new 
-022a 204033a5 call g24_ackpayload_prep 
-022b 204031e5 call g24_transmit_prep 
-022c 20203195 branch g24_transmit 
+023d 6fe0c669 fetch 1 ,mem_dg_sys_config 
+023e c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
+023f 7837fc00 enable user3 
+0240 20000018 nop 24 
+0241 6fe0c6dd fetch 1 ,mem_24g_txbuf_new 
+0242 79207e00 set1 bit_ack_24g ,pdata 
+0243 67e0c6dd store 1 ,mem_24g_txbuf_new 
+0244 204033a5 call g24_ackpayload_prep 
+0245 204031e5 call g24_transmit_prep 
+0246 20203195 branch g24_transmit 
 
 p_app_init:
-022d 58000310 setarg p_dongle_dispatch 
-022e 67e145e0 store 2 ,mem_cb_24g_receive_process 
-022f 58000366 setarg p_dongle_g24_mouse 
-0230 67e145e4 store 2 ,mem_cb_24g_data_device1 
-0231 5800036f setarg p_dongle_g24_kb 
-0232 67e145e6 store 2 ,mem_cb_24g_data_device2 
-0233 58000238 setarg p_dongle_ackpayload_prep 
-0234 67e145e2 store 2 ,mem_cb_24g_ackpayload 
-0235 580047f9 setarg dongle_usb_config 
-0236 67e10859 store 2 ,mem_cb_usb_config 
-0237 20207912 branch usb_init 
+0247 5800032b setarg p_dongle_dispatch 
+0248 67e145e0 store 2 ,mem_cb_24g_receive_process 
+0249 58000381 setarg p_dongle_g24_mouse 
+024a 67e145e4 store 2 ,mem_cb_24g_data_device1 
+024b 580003c5 setarg p_dongle_g24_kb 
+024c 67e145e6 store 2 ,mem_cb_24g_data_device2 
+024d 58000252 setarg p_dongle_ackpayload_prep 
+024e 67e145e2 store 2 ,mem_cb_24g_ackpayload 
+024f 580047f9 setarg dongle_usb_config 
+0250 67e10859 store 2 ,mem_cb_usb_config 
+0251 20207912 branch usb_init 
 
 p_dongle_ackpayload_prep:
-0238 6fe0c589 fetch 1 ,mem_24g_data_type 
-0239 c000823b beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
-023a c001023e beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
+0252 6fe0c589 fetch 1 ,mem_24g_data_type 
+0253 c0008255 beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
+0254 c0010258 beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
 
 p_dongle_ackpayload_prep_mouse:
-023b 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
-023c c280025c bbit1 0 ,p_dongle_pc_sleep_ackpayload_prep_mouse 
-023d 20200240 branch p_dongle_ackpayload_prep_end 
+0255 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+0256 c2800276 bbit1 0 ,p_dongle_pc_sleep_ackpayload_prep_mouse 
+0257 2020025a branch p_dongle_ackpayload_prep_end 
 
 p_dongle_ackpayload_prep_keyboard:
-023e 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
-023f c2808260 bbit1 1 ,p_dongle_pc_sleep_ackpayload_prep_keyboard 
+0258 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+0259 c280827a bbit1 1 ,p_dongle_pc_sleep_ackpayload_prep_keyboard 
 
 p_dongle_ackpayload_prep_end:
-0240 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
-0241 c0008244 beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
-0242 c0018254 beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
-0243 20600000 rtn 
+025a 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
+025b c000825e beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
+025c c001826e beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
+025d 20600000 rtn 
 
 p_dongle_g24_bind_ackpayload_prep:
-0244 70461101 jam 1 ,mem_24g_ackpayload_enable 
-0245 2040024c call p_g24_binding_device_check 
-0246 24778000 nrtn user3 
+025e 70461101 jam 1 ,mem_24g_ackpayload_enable 
+025f 20400266 call p_g24_binding_device_check 
+0260 24778000 nrtn user3 
 
 p_g24_bind_ackpayload_prep:
-0247 70461101 jam 1 ,mem_24g_ackpayload_enable 
-0248 70458808 jam 0x08 ,mem_24g_datalen 
-0249 d8c045d6 arg mem_24g_bind_payload ,contr 
-024a d8a046dd arg mem_24g_txbuf_new ,contw 
-024b 20207c89 branch memcpy8 
+0261 70461101 jam 1 ,mem_24g_ackpayload_enable 
+0262 70458808 jam 0x08 ,mem_24g_datalen 
+0263 d8c045d6 arg mem_24g_bind_payload ,contr 
+0264 d8a046dd arg mem_24g_txbuf_new ,contw 
+0265 20207c89 branch memcpy8 
 
 p_g24_binding_device_check:
-024c 6fe0c616 fetch 1 ,mem_24g_work_mode 
-024d c1808000 rtnne dongle_bind 
-024e 6fe0c610 fetch 1 ,mem_24g_pair_mode 
-024f 247a0000 nrtn blank 
-0250 6fe0c69a fetch 1 ,mem_24g_rxbuf_new + 3 
-0251 c000b386 beq datatype_device1 ,g24_binding_dvc1_status 
-0252 c001338a beq datatype_device2 ,g24_binding_dvc2_status 
-0253 20600000 rtn 
+0266 6fe0c616 fetch 1 ,mem_24g_work_mode 
+0267 c1808000 rtnne dongle_bind 
+0268 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+0269 247a0000 nrtn blank 
+026a 6fe0c69a fetch 1 ,mem_24g_rxbuf_new + 3 
+026b c000b386 beq datatype_device1 ,g24_binding_dvc1_status 
+026c c001338a beq datatype_device2 ,g24_binding_dvc2_status 
+026d 20600000 rtn 
 
 p_dongle_g24_kb_led_ackpayload_prep:
-0254 6fe0c699 fetch 1 ,mem_24g_rxbuf_new + 2 
-0255 c0008244 beq datatype_device1 ,p_dongle_g24_bind_ackpayload_prep 
-0256 c07f8244 beq datatype_attemp ,p_dongle_g24_bind_ackpayload_prep 
-0257 7008f900 jam 0 ,mem_usb_tx_win_enable 
-0258 70458801 jam 0x01 ,mem_24g_datalen 
-0259 6fe0c621 fetch 1 ,mem_24g_led_status 
+026e 6fe0c699 fetch 1 ,mem_24g_rxbuf_new + 2 
+026f c000825e beq datatype_device1 ,p_dongle_g24_bind_ackpayload_prep 
+0270 c07f825e beq datatype_attemp ,p_dongle_g24_bind_ackpayload_prep 
+0271 7008f900 jam 0 ,mem_usb_tx_win_enable 
+0272 70458801 jam 0x01 ,mem_24g_datalen 
+0273 6fe0c621 fetch 1 ,mem_24g_led_status 
 
 p_dongle_g24_txbuf_store:
-025a 67e0c6dd store 1 ,mem_24g_txbuf_new 
-025b 20600000 rtn 
+0274 67e0c6dd store 1 ,mem_24g_txbuf_new 
+0275 20600000 rtn 
 
 p_dongle_pc_sleep_ackpayload_prep_mouse:
-025c 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
-025d 793ffe00 set0 0 ,pdata 
-025e 67e0c693 store 1 ,mem_dg_pc_sleep_flag 
-025f 20200263 branch p_dongle_pc_sleep_ackpayload_prep 
+0276 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+0277 793ffe00 set0 0 ,pdata 
+0278 67e0c693 store 1 ,mem_dg_pc_sleep_flag 
+0279 2020027d branch p_dongle_pc_sleep_ackpayload_prep 
 
 p_dongle_pc_sleep_ackpayload_prep_keyboard:
-0260 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
-0261 793ffe01 set0 1 ,pdata 
-0262 67e0c693 store 1 ,mem_dg_pc_sleep_flag 
+027a 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+027b 793ffe01 set0 1 ,pdata 
+027c 67e0c693 store 1 ,mem_dg_pc_sleep_flag 
 
 p_dongle_pc_sleep_ackpayload_prep:
-0263 70458801 jam 0x01 ,mem_24g_datalen 
-0264 580000ff setarg 0xff 
-0265 2020025a branch p_dongle_g24_txbuf_store 
+027d 70458801 jam 0x01 ,mem_24g_datalen 
+027e 580000ff setarg 0xff 
+027f 20200274 branch p_dongle_g24_txbuf_store 
 
 p_dongle_work_mode_auto:
-0266 6fe0c616 fetch 1 ,mem_24g_work_mode 
-0267 c1800000 rtnne dongle_work 
-0268 2040026d call p_g24_work_mode_start 
-0269 20404827 call dongle_g24_blank_data_process 
-026a 6fe0c610 fetch 1 ,mem_24g_pair_mode 
-026b 247a0000 nrtn blank 
-026c 2020350a branch g24_nodata_process 
+0280 6fe0c616 fetch 1 ,mem_24g_work_mode 
+0281 c1800000 rtnne dongle_work 
+0282 20400287 call p_g24_work_mode_start 
+0283 20404827 call dongle_g24_blank_data_process 
+0284 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+0285 247a0000 nrtn blank 
+0286 2020350a branch g24_nodata_process 
 
 p_g24_work_mode_start:
-026d 6fe0c616 fetch 1 ,mem_24g_work_mode 
-026e c1800000 rtnne dongle_work 
-026f 20403451 call g24_work_init 
-0270 20403518 call g24_ch_process 
+0287 6fe0c616 fetch 1 ,mem_24g_work_mode 
+0288 c1800000 rtnne dongle_work 
+0289 20403451 call g24_work_init 
+028a 20403518 call g24_ch_process 
 
 p_g24_receive_packet_start:
-0271 204002a2 call p_g24_receive_transmit_ack 
-0272 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+028b 204002bd call p_g24_receive_transmit_ack 
+028c 2437b3be nbranch g24_rx_interrupt_clear ,user3 
 
 p_g24_receive_packet_parse:
-0273 204033e3 call g24_receive_packet_parse_pid_crc 
-0274 243433be nbranch g24_rx_interrupt_clear ,user 
-0275 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0276 203a33be branch g24_rx_interrupt_clear ,blank 
-0277 1fe0fe02 increase 2 ,pdata 
-0278 98007200 iforce loopcnt 
-0279 d8c04697 arg mem_24g_rxbuf_new ,contr 
-027a d8a047af arg mem_24g_rxdata_temp_new ,contw 
-027b 20407cda call memcpy 
-027c 70461300 jam 0 ,mem_24g_mode_switch 
-027d 6fe0c610 fetch 1 ,mem_24g_pair_mode 
-027e 205a33fe call g24_enable_nodata_timer ,blank 
+028d 204033e3 call g24_receive_packet_parse_pid_crc 
+028e 243433be nbranch g24_rx_interrupt_clear ,user 
+028f 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0290 203a33be branch g24_rx_interrupt_clear ,blank 
+0291 1fe0fe02 increase 2 ,pdata 
+0292 98007200 iforce loopcnt 
+0293 d8c04697 arg mem_24g_rxbuf_new ,contr 
+0294 d8a047af arg mem_24g_rxdata_temp_new ,contw 
+0295 20407cda call memcpy 
+0296 70461300 jam 0 ,mem_24g_mode_switch 
+0297 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+0298 205a33fe call g24_enable_nodata_timer ,blank 
 
 p_g24_receive_packet_parse_end:
-027f 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
-0280 c0008284 beq datatype_device1 ,p_g24_data_device1 
-0281 c0010296 beq datatype_device2 ,p_g24_data_device2 
-0282 c07f829c beq datatype_attemp ,p_g24_data_receive_attemp 
-0283 202033be branch g24_rx_interrupt_clear 
+0299 6fe0c7b1 fetch 1 ,mem_24g_rxdata_temp_new + 2 
+029a c07f82b7 beq datatype_attemp ,p_g24_data_receive_attemp 
+029b 1fe17e03 and pdata ,0x03 ,pdata 
+029c c000829f beq datatype_device1 ,p_g24_data_device1 
+029d c00102b1 beq datatype_device2 ,p_g24_data_device2 
+029e 202033be branch g24_rx_interrupt_clear 
 
 p_g24_data_device1:
-0284 2040338d call g24_binding_dvc1_living 
-0285 2040352e call g24_ch_timer_reinit 
-0286 6fe0c60a fetch 1 ,mem_24g_abort_packet 
-0287 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
-0288 284ffe03 isolate1 bit_abort ,temp 
-0289 7920fe00 setflag true ,0 ,pdata 
-028a 67e0c60a store 1 ,mem_24g_abort_packet 
-028b c000828f beq 1 ,p_g24_data_attemp_device1_abort 
-028c 6fe0c612 fetch 1 ,mem_24g_hop_packet 
-028d 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
-028e 202033ce branch g24_data_device1_next 
+029f 2040338d call g24_binding_dvc1_living 
+02a0 2040352e call g24_ch_timer_reinit 
+02a1 6fe0c60a fetch 1 ,mem_24g_abort_packet 
+02a2 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
+02a3 284ffe03 isolate1 bit_abort ,temp 
+02a4 7920fe00 setflag true ,0 ,pdata 
+02a5 67e0c60a store 1 ,mem_24g_abort_packet 
+02a6 c00082aa beq 1 ,p_g24_data_attemp_device1_abort 
+02a7 6fe0c612 fetch 1 ,mem_24g_hop_packet 
+02a8 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
+02a9 202033ce branch g24_data_device1_next 
 
 p_g24_data_attemp_device1_abort:
-028f 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
-0290 247a0000 nrtn blank 
-0291 7045de01 jam 1 ,mem_24g_device1_bind_disable 
-0292 6fe247b9 fetch 4 ,mem_24g_rxdata_temp_new + 10 
-0293 202035a3 branch g24_store_device1_addr 
+02aa 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+02ab 247a0000 nrtn blank 
+02ac 7045de01 jam 1 ,mem_24g_device1_bind_disable 
+02ad 6fe247b9 fetch 4 ,mem_24g_rxdata_temp_new + 10 
+02ae 202035a3 branch g24_store_device1_addr 
 
 p_g24_data_attemp_device2_abort:
-0294 6fe247b9 fetch 4 ,mem_24g_rxdata_temp_new + 10 
-0295 202035a9 branch g24_store_device2_addr 
+02af 6fe247b9 fetch 4 ,mem_24g_rxdata_temp_new + 10 
+02b0 202035a9 branch g24_store_device2_addr 
 
 p_g24_data_device2:
-0296 20403393 call g24_binding_dvc2_living 
-0297 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
-0298 284ffe03 isolate1 bit_abort ,temp 
-0299 20208294 branch p_g24_data_attemp_device2_abort ,true 
-029a 6fe145e6 fetch 2 ,mem_cb_24g_data_device2 
-029b 20207d79 branch callback_func 
+02b1 20403393 call g24_binding_dvc2_living 
+02b2 6848c7af fetcht 1 ,mem_24g_rxdata_temp_new 
+02b3 284ffe03 isolate1 bit_abort ,temp 
+02b4 202082af branch p_g24_data_attemp_device2_abort ,true 
+02b5 6fe145e6 fetch 2 ,mem_cb_24g_data_device2 
+02b6 20207d79 branch callback_func 
 
 p_g24_data_receive_attemp:
-029c 204002a0 call p_g24_bind_device_status 
-029d 202001d6 branch p_g24_data_attemp 
+02b7 204002bb call p_g24_bind_device_status 
+02b8 202001f0 branch p_g24_data_attemp 
 
 p_g24_bind_device_status_check:
-029e 6fe0c5d5 fetch 1 ,mem_24g_bind_device_status 
-029f 207a0000 rtn blank 
+02b9 6fe0c5d5 fetch 1 ,mem_24g_bind_device_status 
+02ba 207a0000 rtn blank 
 
 p_g24_bind_device_status:
-02a0 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-02a1 2020339c branch g24_bind_device_status + 1 
+02bb 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+02bc 2020339c branch g24_bind_device_status + 1 
 
 p_g24_receive_transmit_ack:
-02a2 204033be call g24_rx_interrupt_clear 
-02a3 20403119 call g24_receive_packet 
-02a4 24778000 nrtn user3 
+02bd 204033be call g24_rx_interrupt_clear 
+02be 20403119 call g24_receive_packet 
+02bf 24778000 nrtn user3 
 
 p_g24_transmit_ack:
-02a5 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
-02a6 1fe97e00 rshift3 pdata ,pdata 
-02a7 67e0c589 store 1 ,mem_24g_data_type 
-02a8 204002cd call p_g24_read_len_pid_crc 
-02a9 6fe0c7f5 fetch 1 ,mem_24g_rxdata_ack_flag 
-02aa 2feffe00 isolate1 bit_ack_24g ,pdata 
-02ab 2020b3fd branch g24tx_no_ack ,true 
-02ac 202033fa branch g24tx_with_ack 
+02c0 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
+02c1 1fe97e00 rshift3 pdata ,pdata 
+02c2 67e0c589 store 1 ,mem_24g_data_type 
+02c3 204002e8 call p_g24_read_len_pid_crc 
+02c4 6fe0c7f5 fetch 1 ,mem_24g_rxdata_ack_flag 
+02c5 2feffe00 isolate1 bit_ack_24g ,pdata 
+02c6 2020b3fd branch g24tx_no_ack ,true 
+02c7 202033fa branch g24tx_with_ack 
 
 p_g24_bind_data_process:
-02ad 204033be call g24_rx_interrupt_clear 
-02ae 20403119 call g24_receive_packet 
-02af 2437b3be nbranch g24_rx_interrupt_clear ,user3 
-02b0 204002b9 call p_g24_bind_data_parse 
-02b1 204002a5 call p_g24_transmit_ack 
-02b2 2040029e call p_g24_bind_device_status_check 
-02b3 2040493d call dongle_kb_bind_soft_reset 
-02b4 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
-02b5 207a0000 rtn blank 
-02b6 6fe2462c fetch 4 ,mem_24g_transmitter_addr 
-02b7 207a0000 rtn blank 
-02b8 20203236 branch g24_update_addr_and_synccrc8 
+02c8 204033be call g24_rx_interrupt_clear 
+02c9 20403119 call g24_receive_packet 
+02ca 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+02cb 204002d4 call p_g24_bind_data_parse 
+02cc 204002c0 call p_g24_transmit_ack 
+02cd 204002b9 call p_g24_bind_device_status_check 
+02ce 2040493d call dongle_kb_bind_soft_reset 
+02cf 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+02d0 207a0000 rtn blank 
+02d1 6fe2462c fetch 4 ,mem_24g_transmitter_addr 
+02d2 207a0000 rtn blank 
+02d3 20203236 branch g24_update_addr_and_synccrc8 
 
 p_g24_bind_data_parse:
-02b9 70462205 jam bind_mode_continue ,mem_24g_bind_mode_continue 
-02ba d8c04697 arg mem_24g_rxbuf_new ,contr 
-02bb d8a047af arg mem_24g_rxdata_temp_new ,contw 
-02bc 20407c89 call memcpy8 
-02bd 20203322 branch g24_bind_data_parse_next 
+02d4 70462205 jam bind_mode_continue ,mem_24g_bind_mode_continue 
+02d5 d8c04697 arg mem_24g_rxbuf_new ,contr 
+02d6 d8a047af arg mem_24g_rxdata_temp_new ,contw 
+02d7 20407c89 call memcpy8 
+02d8 20203322 branch g24_bind_data_parse_next 
 
 p_g24_receive_update_rxbuff:
-02be 2040317d call g24_receive_byte 
-02bf 67e0c697 store 1 ,mem_24g_rxbuf_new 
-02c0 c51382c6 bmark1 mark_24g_rxmode ,p_g24_receive_skip 
-02c1 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
-02c2 1fe97e00 rshift3 pdata ,pdata 
-02c3 6848c589 fetcht 1 ,mem_24g_data_type 
-02c4 a8400e00 icompare bits_data ,temp 
-02c5 2420b18c nbranch g24_type_error ,true 
+02d9 2040317d call g24_receive_byte 
+02da 67e0c697 store 1 ,mem_24g_rxbuf_new 
+02db c51382e1 bmark1 mark_24g_rxmode ,p_g24_receive_skip 
+02dc 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
+02dd 1fe97e00 rshift3 pdata ,pdata 
+02de 6848c589 fetcht 1 ,mem_24g_data_type 
+02df a8400e00 icompare bits_data ,temp 
+02e0 2420b18c nbranch g24_type_error ,true 
 
 p_g24_receive_skip:
-02c6 2040317d call g24_receive_byte 
-02c7 e7e08005 istore 1 ,contw 
-02c8 1fe67c44 sub pdata ,68 ,null 
-02c9 2421318e nbranch g24_len_over_error ,positive 
-02ca 1fe27200 copy pdata ,loopcnt 
-02cb 2022b154 branch g24rx_nopayload ,zero 
-02cc 20203151 branch g24rx_loop 
+02e1 2040317d call g24_receive_byte 
+02e2 e7e08005 istore 1 ,contw 
+02e3 1fe67c44 sub pdata ,68 ,null 
+02e4 2421318e nbranch g24_len_over_error ,positive 
+02e5 1fe27200 copy pdata ,loopcnt 
+02e6 2022b154 branch g24rx_nopayload ,zero 
+02e7 20203151 branch g24rx_loop 
 
 p_g24_read_len_pid_crc:
-02cd 6fe0c698 fetch 1 ,mem_24g_rxbuf_new + 1 
-02ce 67e0c57d store 1 ,mem_24g_rxdata_length 
-02cf 1fe0fe01 increase 1 ,pdata 
-02d0 d8c04698 arg mem_24g_rxbuf_new + 1 ,contr 
-02d1 98c08c00 iadd contr ,contr 
-02d2 efe18006 ifetch 3 ,contr 
-02d3 67e1c580 store 3 ,mem_24g_sta_crc 
-02d4 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
-02d5 1fe10401 and pdata ,0x01 ,temp 
-02d6 6048c7f5 storet 1 ,mem_24g_rxdata_ack_flag 
-02d7 1fe30400 rshift pdata ,temp 
-02d8 18410403 and temp ,0x03 ,temp 
-02d9 6048c586 storet 1 ,mem_24g_sta_pid 
-02da 1fe97e00 rshift3 pdata ,pdata 
-02db 67e0c697 store 1 ,mem_24g_rxbuf_new 
-02dc 20600000 rtn 
+02e8 6fe0c698 fetch 1 ,mem_24g_rxbuf_new + 1 
+02e9 67e0c57d store 1 ,mem_24g_rxdata_length 
+02ea 1fe0fe01 increase 1 ,pdata 
+02eb d8c04698 arg mem_24g_rxbuf_new + 1 ,contr 
+02ec 98c08c00 iadd contr ,contr 
+02ed efe18006 ifetch 3 ,contr 
+02ee 67e1c580 store 3 ,mem_24g_sta_crc 
+02ef 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
+02f0 1fe10401 and pdata ,0x01 ,temp 
+02f1 6048c7f5 storet 1 ,mem_24g_rxdata_ack_flag 
+02f2 1fe30400 rshift pdata ,temp 
+02f3 18410403 and temp ,0x03 ,temp 
+02f4 6048c586 storet 1 ,mem_24g_sta_pid 
+02f5 1fe97e00 rshift3 pdata ,pdata 
+02f6 67e0c697 store 1 ,mem_24g_rxbuf_new 
+02f7 20600000 rtn 
 
 p_g24_rx_interrupt_clear:
-02dd d8a04697 arg mem_24g_rxbuf_new ,contw 
-02de df200046 arg 70 ,loopcnt 
-02df 20207ca1 branch clear_mem 
+02f8 d8a04697 arg mem_24g_rxbuf_new ,contw 
+02f9 df200046 arg 70 ,loopcnt 
+02fa 20207ca1 branch clear_mem 
 
 p_g24_search_mode_auto:
-02e0 6fe0c616 fetch 1 ,mem_24g_work_mode 
-02e1 c1838000 rtnne dongle_search 
-02e2 20403476 call g24_search_mode_init 
-02e3 204034ae call g24_auto_addr_ch_search 
-02e4 204002a2 call p_g24_receive_transmit_ack 
-02e5 2437b3be nbranch g24_rx_interrupt_clear ,user3 
-02e6 20403506 call g24_receiver_addr_check 
-02e7 20428273 call p_g24_receive_packet_parse ,zero 
-02e8 20203491 branch g24_search_mode_auto + 9 
+02fb 6fe0c616 fetch 1 ,mem_24g_work_mode 
+02fc c1838000 rtnne dongle_search 
+02fd 20403476 call g24_search_mode_init 
+02fe 204034ae call g24_auto_addr_ch_search 
+02ff 204002bd call p_g24_receive_transmit_ack 
+0300 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+0301 20403506 call g24_receiver_addr_check 
+0302 2042828d call p_g24_receive_packet_parse ,zero 
+0303 20203491 branch g24_search_mode_auto + 9 
 
 p_g24_ackpayload_parse:
-02e9 20403214 call g24_read_len_pid_crc 
-02ea 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-02eb 207a0000 rtn blank 
-02ec 98007200 iforce loopcnt 
-02ed d8c04699 arg mem_24g_rxbuf_new + 2 ,contr 
-02ee d8a04769 arg mem_24g_rxpayload_new ,contw 
-02ef 20207cda branch memcpy 
+0304 20403214 call g24_read_len_pid_crc 
+0305 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0306 207a0000 rtn blank 
+0307 98007200 iforce loopcnt 
+0308 d8c04699 arg mem_24g_rxbuf_new + 2 ,contr 
+0309 d8a04769 arg mem_24g_rxpayload_new ,contw 
+030a 20207cda branch memcpy 
 
 p_g24_transmit_prep:
-02f0 6fe0c588 fetch 1 ,mem_24g_datalen 
-02f1 1fe0fe03 increase 3 ,pdata 
-02f2 67e0c58a store 1 ,mem_24g_txlen 
-02f3 6fe0c5ac fetch 1 ,mem_24g_syncword_crc8 
-02f4 67e0c723 store 1 ,mem_24g_txpayload_new 
-02f5 6fe0c589 fetch 1 ,mem_24g_data_type 
-02f6 1fe9fe00 lshift3 pdata ,pdata 
-02f7 6848c57e fetcht 1 ,mem_24g_pid 
-02f8 18410403 and temp ,0x03 ,temp 
-02f9 18438400 lshift temp ,temp 
-02fa 9841fe00 ior temp ,pdata 
-02fb 6848c57f fetcht 1 ,mem_24g_no_ack 
-02fc 9840fe00 iadd temp ,pdata 
-02fd e7e08005 istore 1 ,contw 
-02fe 6fe0c588 fetch 1 ,mem_24g_datalen 
-02ff e7e08005 istore 1 ,contw 
-0300 6fe0c588 fetch 1 ,mem_24g_datalen 
-0301 98007200 iforce loopcnt 
-0302 d8c046dd arg mem_24g_txbuf_new ,contr 
-0303 20407cda call memcpy 
-0304 202031fc branch g24_transmit_prep_pdu_end 
+030b 6fe0c588 fetch 1 ,mem_24g_datalen 
+030c 1fe0fe03 increase 3 ,pdata 
+030d 67e0c58a store 1 ,mem_24g_txlen 
+030e 6fe0c5ac fetch 1 ,mem_24g_syncword_crc8 
+030f 67e0c723 store 1 ,mem_24g_txpayload_new 
+0310 6fe0c589 fetch 1 ,mem_24g_data_type 
+0311 1fe9fe00 lshift3 pdata ,pdata 
+0312 6848c57e fetcht 1 ,mem_24g_pid 
+0313 18410403 and temp ,0x03 ,temp 
+0314 18438400 lshift temp ,temp 
+0315 9841fe00 ior temp ,pdata 
+0316 6848c57f fetcht 1 ,mem_24g_no_ack 
+0317 9840fe00 iadd temp ,pdata 
+0318 e7e08005 istore 1 ,contw 
+0319 6fe0c588 fetch 1 ,mem_24g_datalen 
+031a e7e08005 istore 1 ,contw 
+031b 6fe0c588 fetch 1 ,mem_24g_datalen 
+031c 98007200 iforce loopcnt 
+031d d8c046dd arg mem_24g_txbuf_new ,contr 
+031e 20407cda call memcpy 
+031f 202031fc branch g24_transmit_prep_pdu_end 
 
 p_g24_transmit_packet:
-0305 c517830a bmark1 mark_ble_lr ,p_g24_transmit_nolr 
-0306 6fe0c5ca fetch 1 ,mem_24g_disable_fec1 
-0307 243a030a nbranch p_g24_transmit_nolr ,blank 
-0308 784efc00 disable encode_fec0 
-0309 782dfc00 enable encode_fec1 
+0320 c5178325 bmark1 mark_ble_lr ,p_g24_transmit_nolr 
+0321 6fe0c5ca fetch 1 ,mem_24g_disable_fec1 
+0322 243a0325 nbranch p_g24_transmit_nolr ,blank 
+0323 784efc00 disable encode_fec0 
+0324 782dfc00 enable encode_fec1 
 
 p_g24_transmit_nolr:
-030a 7823fc00 enable enable_white 
-030b 7824fc00 enable enable_crc 
-030c 6fe0c58a fetch 1 ,mem_24g_txlen 
-030d 98007200 iforce loopcnt 
-030e d8c04723 arg mem_24g_txpayload_new ,contr 
-030f 202031b3 branch g24tr_loop 
+0325 7823fc00 enable enable_white 
+0326 7824fc00 enable enable_crc 
+0327 6fe0c58a fetch 1 ,mem_24g_txlen 
+0328 98007200 iforce loopcnt 
+0329 d8c04723 arg mem_24g_txpayload_new ,contr 
+032a 202031b3 branch g24tr_loop 
 
 p_dongle_dispatch:
 
 p_dongle_auto_bind:
-0310 20403402 call g24_mode_switch_init 
+032b 20403402 call g24_mode_switch_init 
 
 p_dongle_auto_bind_loop:
-0311 20403407 call g24_mode_switch_bind_work 
-0312 2040342d call g24_mode_switch_bind_search 
-0313 204048a3 call dongle_work_mode_auto 
-0314 20403469 call g24_bind_mode_auto 
-0315 20403488 call g24_search_mode_auto 
-0316 20404867 call dongle_usb_dispatch 
-0317 2040031a call p_dongle_keyboard_heart_tick_timer 
-0318 20400326 call p_dongle_mouse_heart_tick_timer 
-0319 20200311 branch p_dongle_auto_bind_loop 
+032c 20403407 call g24_mode_switch_bind_work 
+032d 2040342d call g24_mode_switch_bind_search 
+032e 204048a3 call dongle_work_mode_auto 
+032f 20403469 call g24_bind_mode_auto 
+0330 20403488 call g24_search_mode_auto 
+0331 20404867 call dongle_usb_dispatch 
+0332 20400335 call p_dongle_keyboard_heart_tick_timer 
+0333 20400341 call p_dongle_mouse_heart_tick_timer 
+0334 2020032c branch p_dongle_auto_bind_loop 
 
 p_dongle_keyboard_heart_tick_timer:
-031a d840fffe arg 0xfffe ,temp 
-031b 6fe147f8 fetch 2 ,mem_dg_keyboard_heart_tick_timer 
-031c 98467c00 isub temp ,null 
-031d 20610000 rtn positive 
-031e 1fe0fe01 increase 1 ,pdata 
-031f 67e147f8 store 2 ,mem_dg_keyboard_heart_tick_timer 
-0320 d8400000 arg 0 ,temp 
-0321 da6005dc arg 1500 ,regc 
-0322 9a667c00 isub regc ,null 
-0323 79210400 setflag positive ,0 ,temp 
-0324 6048c7fc storet 1 ,mem_dg_keyboard_connected_status 
-0325 20600000 rtn 
+0335 d840fffe arg 0xfffe ,temp 
+0336 6fe147f8 fetch 2 ,mem_dg_keyboard_heart_tick_timer 
+0337 98467c00 isub temp ,null 
+0338 20610000 rtn positive 
+0339 1fe0fe01 increase 1 ,pdata 
+033a 67e147f8 store 2 ,mem_dg_keyboard_heart_tick_timer 
+033b d8400000 arg 0 ,temp 
+033c da6005dc arg 1500 ,regc 
+033d 9a667c00 isub regc ,null 
+033e 79210400 setflag positive ,0 ,temp 
+033f 6048c7fc storet 1 ,mem_dg_keyboard_connected_status 
+0340 20600000 rtn 
 
 p_dongle_mouse_heart_tick_timer:
-0326 d840fffe arg 0xfffe ,temp 
-0327 6fe147fa fetch 2 ,mem_dg_mouse_heart_tick_timer 
-0328 98467c00 isub temp ,null 
-0329 20610000 rtn positive 
-032a 1fe0fe01 increase 1 ,pdata 
-032b 67e147fa store 2 ,mem_dg_mouse_heart_tick_timer 
-032c d8400000 arg 0 ,temp 
-032d da6005dc arg 1500 ,regc 
-032e 9a667c00 isub regc ,null 
-032f 79210400 setflag positive ,0 ,temp 
-0330 6048c7fd storet 1 ,mem_dg_mouse_connected_status 
-0331 20600000 rtn 
+0341 d840fffe arg 0xfffe ,temp 
+0342 6fe147fa fetch 2 ,mem_dg_mouse_heart_tick_timer 
+0343 98467c00 isub temp ,null 
+0344 20610000 rtn positive 
+0345 1fe0fe01 increase 1 ,pdata 
+0346 67e147fa store 2 ,mem_dg_mouse_heart_tick_timer 
+0347 d8400000 arg 0 ,temp 
+0348 da6005dc arg 1500 ,regc 
+0349 9a667c00 isub regc ,null 
+034a 79210400 setflag positive ,0 ,temp 
+034b 6048c7fd storet 1 ,mem_dg_mouse_connected_status 
+034c 20600000 rtn 
 
 p_dongle_usb_dispatch_analysis:
-0332 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
-0333 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
-0334 20407906 call usb_isr 
-0335 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
-0336 207a0000 rtn blank 
-0337 7008f700 jam 0 ,mem_usb0_get_set_report 
-0338 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
-0339 d84002ba arg pc_set_report ,temp 
-033a 98467c00 isub temp ,null 
-033b 24628000 nrtn zero 
-033c 6fe08875 fetch 1 ,mem_usb0_set_report_data 
-033d c1dd0000 rtnne pc_report_id 
-033e 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
-033f c07b8345 beq cmd_check_status ,p_dongle_dispose_cmd_check_status 
-0340 c07b0352 beq cmd_set ,p_dongle_dispose_cmd_set 
-0341 c07e0355 beq cmd_get_in_data ,p_dongle_dispose_cmd_get_in_data 
-0342 c07f035b beq cmd_get_translen ,p_dongle_dispose_cmd_get_translen 
-0343 c03d035e beq cmd_set_test ,p_dongle_dispose_cmd_set_test 
-0344 20204875 branch dongle_usb_dispatch_next 
+034d 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
+034e 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
+034f 20407906 call usb_isr 
+0350 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
+0351 207a0000 rtn blank 
+0352 7008f700 jam 0 ,mem_usb0_get_set_report 
+0353 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
+0354 d84002ba arg pc_set_report ,temp 
+0355 98467c00 isub temp ,null 
+0356 24628000 nrtn zero 
+0357 6fe08875 fetch 1 ,mem_usb0_set_report_data 
+0358 c1dd0000 rtnne pc_report_id 
+0359 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+035a c07b8360 beq cmd_check_status ,p_dongle_dispose_cmd_check_status 
+035b c07b036d beq cmd_set ,p_dongle_dispose_cmd_set 
+035c c07e0370 beq cmd_get_in_data ,p_dongle_dispose_cmd_get_in_data 
+035d c07f0376 beq cmd_get_translen ,p_dongle_dispose_cmd_get_translen 
+035e c03d0379 beq cmd_set_test ,p_dongle_dispose_cmd_set_test 
+035f 20204875 branch dongle_usb_dispatch_next 
 
 p_dongle_dispose_cmd_check_status:
-0345 6fe0c7f6 fetch 1 ,mem_dg_keyboard_battery_level 
-0346 67e088b6 store 1 ,mem_usb0_get_report_data + 1 
-0347 6fe0c7f7 fetch 1 ,mem_dg_mouse_battery_level 
-0348 67e088b7 store 1 ,mem_usb0_get_report_data + 2 
-0349 6fe0c7fc fetch 1 ,mem_dg_keyboard_connected_status 
-034a 67e088b8 store 1 ,mem_usb0_get_report_data + 3 
-034b 6fe0c7fd fetch 1 ,mem_dg_mouse_connected_status 
-034c 67e088b9 store 1 ,mem_usb0_get_report_data + 4 
-034d 6fe0c7fe fetch 1 ,mem_dg_usb_driver_set_end 
-034e 67e088ba store 1 ,mem_usb0_get_report_data + 5 
-034f 6fe2458f fetch 4 ,mem_24g_addr 
-0350 67e208bd store 4 ,mem_usb0_get_report_data + 8 
-0351 20204880 branch dongle_usb0_data_ready_report_set1 
+0360 6fe0c7f6 fetch 1 ,mem_dg_keyboard_battery_level 
+0361 67e088b6 store 1 ,mem_usb0_get_report_data + 1 
+0362 6fe0c7f7 fetch 1 ,mem_dg_mouse_battery_level 
+0363 67e088b7 store 1 ,mem_usb0_get_report_data + 2 
+0364 6fe0c7fc fetch 1 ,mem_dg_keyboard_connected_status 
+0365 67e088b8 store 1 ,mem_usb0_get_report_data + 3 
+0366 6fe0c7fd fetch 1 ,mem_dg_mouse_connected_status 
+0367 67e088b9 store 1 ,mem_usb0_get_report_data + 4 
+0368 6fe0c7fe fetch 1 ,mem_dg_usb_driver_set_end 
+0369 67e088ba store 1 ,mem_usb0_get_report_data + 5 
+036a 6fe2458f fetch 4 ,mem_24g_addr 
+036b 67e208bd store 4 ,mem_usb0_get_report_data + 8 
+036c 20204880 branch dongle_usb0_data_ready_report_set1 
 
 p_dongle_dispose_cmd_set:
-0352 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-0353 67e0c7ff store 1 ,mem_dg_data_type 
-0354 2020487a branch dongle_usb0_data_ready_report_set0 
+036d 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+036e 67e0c7ff store 1 ,mem_dg_data_type 
+036f 2020487a branch dongle_usb0_data_ready_report_set0 
 
 p_dongle_dispose_cmd_get_in_data:
-0355 70087500 jam 0 ,mem_usb0_set_report_data 
-0356 d8c04803 arg mem_dg_usb_get_buff ,contr 
-0357 d8a008b5 arg mem_usb0_get_report_data ,contw 
-0358 df200040 arg 64 ,loopcnt 
-0359 20407ccc call memcpy_fast 
-035a 2020487a branch dongle_usb0_data_ready_report_set0 
+0370 70087500 jam 0 ,mem_usb0_set_report_data 
+0371 d8c0480b arg mem_dg_usb_get_buff ,contr 
+0372 d8a008b5 arg mem_usb0_get_report_data ,contw 
+0373 df200040 arg 64 ,loopcnt 
+0374 20407ccc call memcpy_fast 
+0375 2020487a branch dongle_usb0_data_ready_report_set0 
 
 p_dongle_dispose_cmd_get_translen:
-035b 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-035c 67e0c800 store 1 ,mem_dg_data_len 
-035d 2020487a branch dongle_usb0_data_ready_report_set0 
+0376 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+0377 67e0c800 store 1 ,mem_dg_data_len 
+0378 2020487a branch dongle_usb0_data_ready_report_set0 
 
 p_dongle_dispose_cmd_set_test:
-035e 70461602 jam dongle_test ,mem_24g_work_mode 
-035f 70461500 jam clear_init ,mem_24g_mode_init 
-0360 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-0361 67e0c801 store 1 ,mem_dg_test_mode 
-0362 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
-0363 67e0c802 store 1 ,mem_dg_test_ch 
-0364 7008b601 jam 0x01 ,mem_usb0_get_report_data + 1 
-0365 20204880 branch dongle_usb0_data_ready_report_set1 
+0379 70461602 jam dongle_test ,mem_24g_work_mode 
+037a 70461500 jam clear_init ,mem_24g_mode_init 
+037b 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+037c 67e0c801 store 1 ,mem_dg_test_mode 
+037d 6fe08878 fetch 1 ,mem_usb0_set_report_data + 3 
+037e 67e0c802 store 1 ,mem_dg_test_ch 
+037f 7008b601 jam 0x01 ,mem_usb0_get_report_data + 1 
+0380 20204880 branch dongle_usb0_data_ready_report_set1 
 
 p_dongle_g24_mouse:
-0366 58000001 setarg ms_report_id 
-0367 67e08913 store 1 ,mem_usb_mouse_data 
-0368 6fe3c7b2 fetch 7 ,mem_24g_rxdata_temp_new + 3 
-0369 e7e38005 istore 7 ,contw 
-036a 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-036b 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
-036c 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-036d 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
-036e 20204836 branch dongle_usb_tx_ms_data 
+0381 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+0382 c28303a8 bbit1 data_dpi ,p_dongle_receive_ms_dpi_info 
+0383 c28383b4 bbit1 data_battery ,p_dongle_receive_ms_battery_info 
+0384 c28283b7 bbit1 data_heart ,p_dongle_receive_ms_heart_info 
+
+p_dongle_g24_mouse_next:
+0385 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0386 1fe67c09 sub pdata ,0x09 ,null 
+0387 20228395 branch p_dongle_g24_mouse_data ,zero 
+0388 20400395 call p_dongle_g24_mouse_data 
+0389 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+038a 1fe0fff8 add pdata ,-8 ,pdata 
+038b 67e0c57d store 1 ,mem_24g_rxdata_length 
+038c 1fe27200 copy pdata ,loopcnt 
+038d d8a045ea arg mem_24g_rxdata_temp + 2 ,contw 
+038e d8c045f2 arg mem_24g_rxdata_temp + 10 ,contr 
+038f 20407cda call memcpy 
+0390 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+0391 c28303a8 bbit1 data_dpi ,p_dongle_receive_ms_dpi_info 
+0392 c28383b4 bbit1 data_battery ,p_dongle_receive_ms_battery_info 
+0393 c28283b7 bbit1 data_heart ,p_dongle_receive_ms_heart_info 
+0394 20600000 rtn 
+
+p_dongle_g24_mouse_data:
+0395 58000001 setarg ms_report_id 
+0396 67e08913 store 1 ,mem_usb_mouse_data 
+0397 6fe3c7b2 fetch 7 ,mem_24g_rxdata_temp_new + 3 
+0398 e7e38005 istore 7 ,contw 
+0399 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+039a 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+039b 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+039c 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+039d 6fe38914 fetch 7 ,mem_usb_mouse_data + 1 
+039e 67e3c945 store 7 ,mem_dg_mouse_data 
+039f 6fe0c945 fetch 1 ,mem_dg_mouse_data 
+03a0 6848c94c fetcht 1 ,mem_dg_mouse_key_data_last 
+03a1 67e0c94c store 1 ,mem_dg_mouse_key_data_last 
+03a2 98467c00 isub temp ,null 
+03a3 242283a6 nbranch p_dongle_mouse_data_tx_enable ,zero 
+
+p_dongle_receive_mouse_data_check:
+03a4 6fe34946 fetch 6 ,mem_dg_mouse_data + 1 
+03a5 207a0000 rtn blank 
+
+p_dongle_mouse_data_tx_enable:
+03a6 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
+03a7 202003bc branch p_dongle_usb_tx_enable_ep2 
+
+p_dongle_receive_ms_dpi_info:
+03a8 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+03a9 6848c94d fetcht 1 ,mem_dg_mouse_dpi_level 
+03aa 67e0c94d store 1 ,mem_dg_mouse_dpi_level 
+03ab 98467c00 isub temp ,null 
+03ac 20628000 rtn zero 
+
+p_dongle_usb_tx_dpi_level_enable:
+03ad 70494f40 jam 0x40 ,mem_usb_dpi_info_data 
+03ae 70495005 jam ms_type ,mem_usb_dpi_info_data + 1 
+03af 6fe0c94d fetch 1 ,mem_dg_mouse_dpi_level 
+03b0 67e0c951 store 1 ,mem_usb_dpi_info_data + 2 
+03b1 70495200 jam 0 ,mem_usb_dpi_info_data + 3 
+03b2 70090c23 jam usb_ep2_dpi ,mem_usb_ep2_data 
+03b3 202003bc branch p_dongle_usb_tx_enable_ep2 
+
+p_dongle_receive_ms_battery_info:
+03b4 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+03b5 67e0c7f7 store 1 ,mem_dg_mouse_battery_level 
+03b6 20600000 rtn 
+
+p_dongle_receive_ms_heart_info:
+03b7 6fe0c94e fetch 1 ,mem_dg_usb_ep2_data_flag 
+03b8 207a0000 rtn blank 
+03b9 70494e00 jam 0 ,mem_dg_usb_ep2_data_flag 
+
+p_24g_ackpayload_enable_set:
+03ba 704611a2 jam report_id_data_out ,mem_24g_ackpayload_enable 
+03bb 20600000 rtn 
+
+p_dongle_usb_tx_enable_ep2:
+03bc 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+03bd 207a0000 rtn blank 
+03be da204803 arg mem_usb_ep2_fifo ,rega 
+03bf 20407da5 call fifo_is_full 
+03c0 247a0000 nrtn blank 
+03c1 6fe0890c fetch 1 ,mem_usb_ep2_data 
+03c2 67e0866f store 1 ,mem_fifo_temp 
+03c3 da204803 arg mem_usb_ep2_fifo ,rega 
+03c4 20207d8b branch fifo_in 
 
 p_dongle_g24_kb:
-036f 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-0370 c0000374 beq 0 ,p_dongle_g24_kb_type0 
-0371 c001037a beq 2 ,p_dongle_g24_kb_type2 
-0372 c001837d beq 3 ,p_dongle_g24_kb_type3 
-0373 202033be branch g24_rx_interrupt_clear 
+03c5 6fe0c7b2 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+03c6 c00003ca beq 0 ,p_dongle_g24_kb_type0 
+03c7 c00103d0 beq 2 ,p_dongle_g24_kb_type2 
+03c8 c00183d3 beq 3 ,p_dongle_g24_kb_type3 
+03c9 202033be branch g24_rx_interrupt_clear 
 
 p_dongle_g24_kb_type0:
-0374 6fe0c7b4 fetch 1 ,mem_24g_rxdata_temp_new + 5 
-0375 67e0c611 store 1 ,mem_24g_ackpayload_enable 
-0376 7047b400 jam 0 ,mem_24g_rxdata_temp_new + 5 
-0377 d8a00923 arg mem_usb_kb_data ,contw 
-0378 d8c047b3 arg mem_24g_rxdata_temp_new + 4 ,contr 
-0379 202048ef branch dongle_g24_kb_type0 + 5 
+03ca 6fe0c7b4 fetch 1 ,mem_24g_rxdata_temp_new + 5 
+03cb 67e0c611 store 1 ,mem_24g_ackpayload_enable 
+03cc 7047b400 jam 0 ,mem_24g_rxdata_temp_new + 5 
+03cd d8a00923 arg mem_usb_kb_data ,contw 
+03ce d8c047b3 arg mem_24g_rxdata_temp_new + 4 ,contr 
+03cf 202048ef branch dongle_g24_kb_type0 + 5 
 
 p_dongle_g24_kb_type2:
-037a d8a00943 arg mem_usb_kb_system ,contw 
-037b d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
-037c 2020491f branch dongle_g24_kb_type2 + 2 
+03d0 d8a00943 arg mem_usb_kb_system ,contw 
+03d1 d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
+03d2 2020491f branch dongle_g24_kb_type2 + 2 
 
 p_dongle_g24_kb_type3:
-037d d8a00933 arg mem_usb_kb_multikey ,contw 
-037e d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
-037f 20204907 branch dongle_g24_kb_type3 + 2 
+03d3 d8a00933 arg mem_usb_kb_multikey ,contw 
+03d4 d8c047b2 arg mem_24g_rxdata_temp_new + 3 ,contr 
+03d5 20204907 branch dongle_g24_kb_type3 + 2 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/program/patch.prog	(revision 1978)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/program/patch.prog	(working copy)
@@ -396,7 +396,14 @@
 	jam 0x2,core_usb_clear_nak
 	branch usb_set_report_next	
 
+p_usb_tx_ep2_queue_buff_check:
+	arg mem_usb_ep2_fifo,rega
+	call fifo_is_empty
+	rtn blank
+	branch dongle_usb_tx_enable_ep2
+
 p_usb_tx:
+	call p_usb_tx_ep2_queue_buff_check
 	fetch 1,mem_usb_tx_enable
 	rtn blank
 	fetch 1,core_usb_txbusy
@@ -417,11 +424,36 @@
 	and_into 0x0f,pdata
 	nrtn blank
 	branch usb_tx_data_ep1+2
+	
 p_usb_tx_data_ep2:
+	arg mem_usb_ep2_fifo,rega
+	call fifo_is_empty
+	rtn blank
 	fetch 1,core_usb_txbusy
 	and_into 0x0f,pdata
 	nrtn blank
-	branch usb_tx_data_ep2+2
+	fetch 1,mem_usb_tx_enable
+	rtnbit0 2
+	fetch 1,mem_usb_tx_enable
+	set0 2,pdata
+	store 1,mem_usb_tx_enable
+	arg mem_usb_ep2_fifo,rega
+	call fifo_out
+	rtn blank
+	beq USB_EP2_MS,usb_tx_ms_data
+	beq USB_EP2_DPI,p_usb_tx_dpi_data
+	branch assert
+
+p_usb_tx_dpi_data:
+	fetch 1,mem_usb_dpi_info_data
+	rtn blank
+	copy pdata,loopcnt
+	arg mem_usb_dpi_info_data+1,contr
+	call usb_tx_ep2
+	arg mem_usb_dpi_info_data,contw
+p_usb_tx_buff_clr:
+	arg 65,loopcnt
+	branch clear_mem
 
 p_rx_dcoc:
 	rtn wake
@@ -832,9 +864,10 @@
 	call g24_enable_nodata_timer,blank
 p_g24_receive_packet_parse_end:
 	fetch 1,mem_24g_rxdata_temp_new+2
+	beq DATATYPE_ATTEMP,p_g24_data_receive_attemp	//reconn packet
+	and pdata,0x03,pdata
 	beq DATATYPE_DEVICE1,p_g24_data_device1	//mouse
 	beq DATATYPE_DEVICE2,p_g24_data_device2	//keyboard
-	beq DATATYPE_ATTEMP,p_g24_data_receive_attemp	//reconn packet
 	branch g24_rx_interrupt_clear
 
 p_g24_data_device1:
@@ -1149,6 +1182,32 @@
 	branch dongle_usb0_data_ready_report_set1
 
 p_dongle_g24_mouse:
+	fetch 1,mem_24g_rxdata_temp+2
+	bbit1 DATA_DPI,p_dongle_receive_ms_dpi_info
+	bbit1 DATA_BATTERY,p_dongle_receive_ms_battery_info
+	bbit1 DATA_HEART,p_dongle_receive_ms_heart_info
+p_dongle_g24_mouse_next:
+	fetch 1,mem_24g_rxdata_length
+	sub pdata,0x09,null
+	branch p_dongle_g24_mouse_data,zero
+	call p_dongle_g24_mouse_data
+	fetch 1,mem_24g_rxdata_length
+	add pdata,-8,pdata
+	store 1,mem_24g_rxdata_length
+	copy pdata,loopcnt
+	arg mem_24g_rxdata_temp+2,contw
+	arg mem_24g_rxdata_temp+10,contr
+	call memcpy
+	fetch 1,mem_24g_rxdata_temp+2
+	bbit1 DATA_DPI,p_dongle_receive_ms_dpi_info
+	bbit1 DATA_BATTERY,p_dongle_receive_ms_battery_info
+	bbit1 DATA_HEART,p_dongle_receive_ms_heart_info
+	rtn
+
+/************************************************************
+* Description: receive rf data or rf+other data
+************************************************************/
+p_dongle_g24_mouse_data:
 	setarg MS_REPORT_ID
 	store 1,mem_usb_mouse_data	//report id
 	fetch 7,mem_24g_rxdata_temp_new+3	//key
@@ -1157,8 +1216,73 @@
 	ncall dongle_g24_ms_enable_blank_data_forcibly,blank//get kb data
 	fetch 1,mem_24g_rxdata_temp_new+3	//key
 	call dongle_g24_ms_disable_blank_data_forcibly,blank
-	branch dongle_usb_tx_ms_data
 
+	fetch 7,mem_usb_mouse_data+1
+	store 7,mem_dg_mouse_data
+
+	fetch 1,mem_dg_mouse_data
+	fetcht 1,mem_dg_mouse_key_data_last
+	store 1,mem_dg_mouse_key_data_last
+	isub temp,null
+	nbranch p_dongle_mouse_data_tx_enable,zero
+p_dongle_receive_mouse_data_check:	
+	fetch 6,mem_dg_mouse_data+1
+	rtn blank
+p_dongle_mouse_data_tx_enable:	
+	jam USB_EP2_MS,mem_usb_ep2_data
+	branch p_dongle_usb_tx_enable_ep2
+
+/****************************************************************************
+* Description: 	receive dpi info
+* Parameters:  1byte type +1byte dpi
+****************************************************************************/
+p_dongle_receive_ms_dpi_info:
+	fetch 1,mem_24g_rxdata_temp+3
+	fetcht 1,mem_dg_mouse_dpi_level
+	store 1,mem_dg_mouse_dpi_level
+	isub temp,null
+	rtn zero
+p_dongle_usb_tx_dpi_level_enable:
+	jam 0x40,mem_usb_dpi_info_data
+	jam MS_TYPE,mem_usb_dpi_info_data+1
+	fetch 1,mem_dg_mouse_dpi_level
+	store 1,mem_usb_dpi_info_data+2
+	jam 0,mem_usb_dpi_info_data+3
+	jam USB_EP2_DPI,mem_usb_ep2_data
+	branch p_dongle_usb_tx_enable_ep2
+
+/****************************************************************************
+* Description: 	receive battery info
+* Parameters:  1byte type +1byte battery
+****************************************************************************/
+p_dongle_receive_ms_battery_info:
+	fetch 1,mem_24g_rxdata_temp+3
+	store 1,mem_dg_mouse_battery_level
+	rtn
+
+/****************************************************************************
+* Description: 	receive heart info
+* Parameters:  1byte type +1byte battery
+****************************************************************************/
+p_dongle_receive_ms_heart_info:
+	fetch 1,mem_dg_usb_ep2_data_flag
+	rtn blank
+	jam 0,mem_dg_usb_ep2_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
+	rtn
+
+p_dongle_usb_tx_enable_ep2:
+	fetch 1,mem_usb_device_enumeration_endflag
+	rtn blank
+	arg mem_usb_ep2_fifo,rega
+	call fifo_is_full
+	nrtn blank
+	fetch 1,mem_usb_ep2_data
+	store 1,mem_fifo_temp
+	arg mem_usb_ep2_fifo,rega
+	branch fifo_in
 
 p_dongle_g24_kb:
 	fetch 1,mem_24g_rxdata_temp_new+3
