Index: format/app_dongle.format
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/app_dongle.format	(revision 3842)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/app_dongle.format	(working copy)
@@ -49,9 +49,10 @@
 1 mem_dongle_connect_mouse_flag
 1 mem_dongle_no_data_flag	//no use
 2 mem_dongle_no_data_count
-
 65 mem_usb_rf_state_data
 65 mem_dongle_usb_ep2_data
+65 mem_usb_dpi_info_data
+65 mem_usb_battery_info_data
 8 mem_usb_ep2_fifo
 1 mem_dongle_freq_hop_flag
 //http
Index: output/eeprom.dat
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/eeprom.dat	(revision 3842)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-0e
+96
 10
 c2
 84
@@ -23,7 +23,7 @@
 c0
 0a
 03
-6d
+8f
 c0
 0a
 80
@@ -42,8 +42,8 @@
 3d
 c0
 1b
-83
-f1
+84
+13
 c0
 1c
 00
@@ -55,7 +55,7 @@
 c0
 1e
 83
-c7
+e9
 c0
 62
 80
@@ -63,11 +63,11 @@
 c0
 6d
 03
-3e
+60
 c0
 6e
 03
-4e
+70
 c0
 7f
 00
@@ -99,19 +99,19 @@
 c0
 1c
 83
-89
+ab
 c0
 26
 83
-8d
+af
 c0
 37
-83
-f9
+84
+1b
 c0
 41
 03
-8f
+b1
 c0
 42
 02
@@ -119,11 +119,11 @@
 c0
 44
 03
-af
+d1
 c0
 45
 03
-bc
+de
 c1
 7f
 80
@@ -359,11 +359,11 @@
 20
 40
 03
-10
+32
 20
 40
 03
-3b
+5d
 20
 40
 00
@@ -379,7 +379,7 @@
 20
 20
 03
-3d
+5f
 20
 75
 80
@@ -1171,30 +1171,30 @@
 20
 20
 02
-57
+65
 70
 48
-56
+97
 01
 70
 48
-50
+91
 40
 70
 48
-51
+92
 a1
 70
 48
-52
+93
 02
 70
 48
-53
+94
 02
 70
 48
-54
+95
 01
 6f
 e0
@@ -1203,7 +1203,7 @@
 67
 e0
 c8
-55
+96
 70
 09
 0c
@@ -1211,7 +1211,7 @@
 20
 20
 02
-57
+65
 70
 48
 50
@@ -1247,30 +1247,30 @@
 20
 20
 02
-57
+65
 70
 48
-56
+d8
 01
 70
 48
-50
+d2
 40
 70
 48
-51
+d3
 a1
 70
 48
-52
+d4
 02
 70
 48
-53
+d5
 06
 70
 48
-54
+d6
 01
 6f
 e0
@@ -1279,7 +1279,7 @@
 67
 e0
 c8
-55
+d7
 70
 09
 0c
@@ -1287,7 +1287,7 @@
 20
 20
 02
-57
+65
 6f
 e0
 c8
@@ -1335,7 +1335,7 @@
 20
 20
 02
-57
+65
 70
 48
 0f
@@ -1367,7 +1367,7 @@
 20
 20
 02
-57
+65
 70
 48
 0f
@@ -1463,7 +1463,7 @@
 20
 20
 02
-57
+65
 69
 51
 0c
@@ -2042,8 +2042,8 @@
 00
 da
 20
-48
-91
+49
+13
 20
 40
 7d
@@ -2111,11 +2111,11 @@
 20
 40
 02
-60
+6e
 20
 20
 02
-e4
+f2
 6f
 e0
 c6
@@ -2235,11 +2235,11 @@
 c2
 83
 02
-4e
+51
 c2
 83
 82
-54
+5f
 20
 20
 02
@@ -2303,11 +2303,11 @@
 c2
 83
 02
-4e
+51
 c2
 83
 82
-54
+5f
 20
 60
 00
@@ -2351,11 +2351,23 @@
 20
 20
 02
-57
+65
 6f
 e0
 c5
 eb
+68
+48
+c8
+05
+98
+46
+7c
+00
+20
+62
+80
+00
 67
 e0
 c8
@@ -2365,33 +2377,77 @@
 01
 25
 6f
-e0
+20
 c5
 7d
 1f
-e0
+20
+f3
 ff
+da
+20
+45
+eb
+da
+40
+47
 ff
-1f
-e2
-72
+20
+40
+7d
+64
+20
+62
+80
 00
-d8
-c0
+6f
+e3
 45
 eb
-d8
-a0
+67
+e3
 47
 ff
+6f
+e1
+45
+f3
+67
+e1
+48
+07
+6f
+e0
+c5
+f1
+20
+40
+02
+4c
+6f
+e0
+c5
+f2
 20
 20
-7c
-da
+02
+60
 6f
 e0
 c5
 eb
+68
+48
+c8
+06
+98
+46
+7c
+00
+20
+62
+80
+00
 67
 e0
 c8
@@ -2410,8 +2466,8 @@
 00
 da
 20
-48
-91
+49
+13
 20
 40
 7d
@@ -2430,8 +2486,8 @@
 6f
 da
 20
-48
-91
+49
+13
 20
 20
 7d
@@ -2483,51 +2539,51 @@
 c0
 08
 82
-6d
+7b
 20
 20
 23
 5a
 6f
 e0
-c8
-a4
+c9
+26
 c0
 00
 02
-78
+86
 c0
 00
 82
-84
+92
 c0
 01
 02
-88
+96
 c0
 01
 82
-98
+a6
 c0
 02
 02
-9f
+ad
 c0
 02
 82
-8e
+9c
 c0
 03
 02
-92
+a0
 c0
 03
 82
-94
+a2
 c0
 04
 02
-96
+a4
 20
 60
 00
@@ -2539,23 +2595,23 @@
 c0
 00
 02
-7c
+8a
 c0
 00
 82
-80
+8e
 20
 60
 00
 00
 70
-48
-a4
+49
+26
 01
 6f
 e1
-c8
-9a
+c9
+1c
 67
 e1
 89
@@ -2565,13 +2621,13 @@
 7c
 28
 70
-48
-a4
+49
+26
 01
 6f
 e1
-c8
-9d
+c9
+1f
 67
 e1
 89
@@ -2581,13 +2637,13 @@
 7c
 28
 70
-48
-a4
+49
+26
 02
 6f
 e0
-c8
-9a
+c9
+1c
 67
 e0
 89
@@ -2597,8 +2653,8 @@
 7c
 28
 70
-48
-a4
+49
+26
 03
 d8
 a0
@@ -2613,21 +2669,21 @@
 7c
 a3
 70
-48
-a6
+49
+28
 00
 20
 20
 7c
 28
 70
-48
-a4
+49
+26
 06
 6f
 e1
-c8
-a0
+c9
+22
 67
 e1
 89
@@ -2637,52 +2693,52 @@
 7c
 28
 70
-48
-a4
+49
+26
 07
 20
 20
 02
-89
+97
 70
-48
-a4
+49
+26
 08
 20
 20
 02
-8f
+9d
 70
-48
-a4
+49
+26
 00
 20
 20
 02
-89
+97
 6f
 e0
-c8
-a3
+c9
+25
 1f
 e0
 fe
 01
 67
 e0
-c8
-a3
+c9
+25
 c1
 87
 80
 00
 70
-48
-a3
+49
+25
 00
 70
-48
-a4
+49
+26
 04
 20
 60
@@ -2690,23 +2746,23 @@
 00
 6f
 e0
-c8
-a6
+c9
+28
 c0
 00
 82
-89
+97
 c0
 00
 02
-a5
+b3
 20
 60
 00
 00
 70
-48
-a4
+49
+26
 05
 20
 60
@@ -2714,20 +2770,20 @@
 00
 d8
 40
-48
-aa
+49
+2c
 6f
 e0
-c8
-a9
+c9
+2b
 98
 40
 84
 00
 6f
 e1
-48
-a7
+49
+29
 98
 46
 7c
@@ -2735,19 +2791,19 @@
 20
 22
 82
-a3
+b1
 20
 40
 02
-b5
+c3
 20
 40
 02
-d7
+e5
 6f
 e0
-c8
-a5
+c9
+27
 67
 e0
 89
@@ -2758,19 +2814,19 @@
 25
 6f
 e1
-48
-a7
+49
+29
 1f
 e0
 fe
 01
 67
 e1
-48
-a7
+49
+29
 70
-48
-a6
+49
+28
 01
 20
 20
@@ -2778,8 +2834,8 @@
 28
 68
 49
-48
-a7
+49
+29
 ef
 e0
 80
@@ -2791,7 +2847,7 @@
 24
 21
 02
-bc
+ca
 da
 40
 00
@@ -2803,7 +2859,7 @@
 20
 21
 02
-d3
+e1
 ef
 e0
 80
@@ -2815,7 +2871,7 @@
 24
 21
 02
-c2
+d0
 da
 40
 00
@@ -2827,7 +2883,7 @@
 20
 21
 02
-d5
+e3
 1f
 e6
 7c
@@ -2835,7 +2891,7 @@
 20
 22
 82
-cb
+d9
 1f
 e6
 7c
@@ -2843,7 +2899,7 @@
 20
 22
 82
-cd
+db
 1f
 e6
 7c
@@ -2851,7 +2907,7 @@
 20
 22
 82
-cf
+dd
 1f
 e6
 7c
@@ -2859,7 +2915,7 @@
 20
 22
 82
-d1
+df
 20
 60
 00
@@ -2913,25 +2969,25 @@
 00
 00
 70
-48
-a5
+49
+27
 00
 6f
 e1
-48
-a7
+49
+29
 ef
 e0
 80
 3f
 d8
 c0
-48
-d2
+49
+54
 68
 48
-c8
-d1
+c9
+53
 18
 42
 72
@@ -2947,18 +3003,18 @@
 20
 22
 82
-e2
+f0
 c2
 00
 02
-dd
+eb
 20
 60
 00
 00
 70
-48
-a5
+49
+27
 02
 20
 60
@@ -2966,8 +3022,8 @@
 00
 da
 20
-48
-91
+49
+13
 20
 40
 7d
@@ -3010,8 +3066,8 @@
 0d
 da
 20
-48
-91
+49
+13
 20
 40
 7d
@@ -3027,19 +3083,19 @@
 c0
 12
 03
-05
+1e
 c0
 13
 03
-05
+13
 c0
 11
 83
-05
+13
 c0
 12
 83
-05
+28
 c0
 10
 fc
@@ -3050,16 +3106,100 @@
 2c
 c0
 13
-82
-fb
+83
+09
+20
+20
+23
+5a
+6f
+e0
+c8
+0f
+20
+7a
+00
+00
+1f
+e2
+72
+00
+d8
+c0
+48
+10
+d8
+e0
+00
+02
+da
+20
+07
+59
+62
+31
+0c
+0c
+20
+40
+7b
+d2
+d8
+a0
+48
+0f
+20
+20
+03
+1c
+6f
+e0
+c8
+50
+20
+7a
+00
+00
+1f
+e2
+72
+00
+d8
+c0
+48
+51
+d8
+e0
+00
+02
+da
+20
+07
+59
+62
+31
+0c
+0c
 20
+40
+7b
+d2
+d8
+a0
+48
+50
+df
 20
-23
-5a
+00
+41
+20
+20
+7c
+a1
 6f
 e0
 c8
-0f
+91
 20
 7a
 00
@@ -3071,7 +3211,7 @@
 d8
 c0
 48
-10
+92
 d8
 e0
 00
@@ -3091,15 +3231,15 @@
 d8
 a0
 48
-0f
+91
 20
 20
 03
-0e
+1c
 6f
 e0
 c8
-50
+d2
 20
 7a
 00
@@ -3111,7 +3251,7 @@
 d8
 c0
 48
-51
+d3
 d8
 e0
 00
@@ -3131,15 +3271,11 @@
 d8
 a0
 48
-50
-df
-20
-00
-41
+d2
 20
 20
-7c
-a1
+03
+1c
 20
 75
 80
@@ -3191,7 +3327,7 @@
 20
 40
 03
-2d
+4f
 2a
 2f
 fe
@@ -3223,7 +3359,7 @@
 20
 40
 03
-2d
+4f
 d8
 a0
 8a
@@ -3251,7 +3387,7 @@
 20
 21
 03
-22
+44
 20
 20
 21
@@ -3355,7 +3491,7 @@
 20
 40
 03
-66
+88
 70
 8a
 08
@@ -3391,7 +3527,7 @@
 20
 40
 03
-5c
+7e
 6f
 f0
 8a
@@ -3435,7 +3571,7 @@
 20
 40
 03
-66
+88
 70
 80
 cd
@@ -3495,7 +3631,7 @@
 c3
 02
 83
-67
+89
 68
 59
 01
@@ -3531,7 +3667,7 @@
 c0
 08
 03
-86
+a8
 58
 00
 57
@@ -3575,7 +3711,7 @@
 c0
 08
 03
-83
+a5
 58
 00
 2b
@@ -3611,7 +3747,7 @@
 20
 20
 03
-7f
+a1
 58
 00
 83
@@ -3623,7 +3759,7 @@
 20
 20
 03
-74
+96
 6f
 e0
 c3
@@ -3663,7 +3799,7 @@
 c0
 11
 03
-95
+b7
 c0
 7f
 b5
@@ -3679,7 +3815,7 @@
 20
 3a
 03
-9b
+bd
 6f
 e2
 45
@@ -3703,11 +3839,11 @@
 c0
 00
 83
-9f
+c1
 c0
 01
 03
-a7
+c9
 20
 60
 00
@@ -3727,7 +3863,7 @@
 c0
 01
 03
-a4
+c6
 20
 60
 00
@@ -3759,7 +3895,7 @@
 c0
 80
 03
-ac
+ce
 20
 60
 00
@@ -3839,7 +3975,7 @@
 20
 40
 03
-c0
+e2
 20
 20
 34
@@ -3875,11 +4011,11 @@
 20
 40
 03
-d4
+f6
 20
 40
 03
-d6
+f8
 6f
 e0
 89
@@ -3946,12 +4082,12 @@
 00
 20
 40
-03
-de
+04
+00
 20
 40
+04
 03
-e1
 d8
 e0
 00
@@ -3966,8 +4102,8 @@
 e1
 6f
 e0
-c8
-a4
+c9
+26
 20
 7a
 00
@@ -4112,8 +4248,8 @@
 20
 31
 95
-25
-71
+7b
+08
 aa
 55
 40
@@ -4595,8 +4731,8 @@
 55
 09
 00
-9a
-48
+1c
+49
 08
 00
 15
@@ -4610,10 +4746,10 @@
 55
 11
 00
-a7
-48
-aa
-48
+29
+49
+2c
+49
 0e
 77
 77
@@ -4633,8 +4769,8 @@
 55
 16
 00
-d1
-48
+53
+49
 15
 7e
 21
@@ -4849,146 +4985,10 @@
 aa
 aa
 55
-ad
-a3
-51
-46
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+b9
+a1
+8d
+9c
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-3a
-fc
+6e
+40
Index: output/memmap.format
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/memmap.format	(revision 3842)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/memmap.format	(working copy)
@@ -1504,18 +1504,20 @@
 0x480d mem_dongle_no_data_count
 0x480f mem_usb_rf_state_data
 0x4850 mem_dongle_usb_ep2_data
-0x4891 mem_usb_ep2_fifo
-0x4899 mem_dongle_freq_hop_flag
-0x489a mem_usb_win_cmd
-0x489d mem_usb_mac_cmd
-0x48a0 mem_usb_kb_enter
-0x48a3 mem_usb_website_wait_count
-0x48a4 mem_usb_website_step
-0x48a5 mem_usb_website_shift_flag
-0x48a6 mem_usb_website_release_flag
-0x48a7 mem_usb_website_ptr
-0x48a9 mem_usb_website_info
-0x48d1 mem_usb_website_info_sign
+0x4891 mem_usb_dpi_info_data
+0x48d2 mem_usb_battery_info_data
+0x4913 mem_usb_ep2_fifo
+0x491b mem_dongle_freq_hop_flag
+0x491c mem_usb_win_cmd
+0x491f mem_usb_mac_cmd
+0x4922 mem_usb_kb_enter
+0x4925 mem_usb_website_wait_count
+0x4926 mem_usb_website_step
+0x4927 mem_usb_website_shift_flag
+0x4928 mem_usb_website_release_flag
+0x4929 mem_usb_website_ptr
+0x492b mem_usb_website_info
+0x4953 mem_usb_website_info_sign
 0x45d3 mem_rssi_hex_received
 0x45d4 mem_24g_pair_sm
 0x45d5 mem_24g_pair_no_ack
Index: output/otp.dat
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/otp.dat	(revision 3842)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/otp.dat	(working copy)
@@ -11,7 +11,7 @@
 00
 aa
 55
-0e
+96
 10
 c2
 84
@@ -32,7 +32,7 @@
 c0
 0a
 03
-6d
+8f
 c0
 0a
 80
@@ -51,8 +51,8 @@
 3d
 c0
 1b
-83
-f1
+84
+13
 c0
 1c
 00
@@ -64,7 +64,7 @@
 c0
 1e
 83
-c7
+e9
 c0
 62
 80
@@ -72,11 +72,11 @@
 c0
 6d
 03
-3e
+60
 c0
 6e
 03
-4e
+70
 c0
 7f
 00
@@ -108,19 +108,19 @@
 c0
 1c
 83
-89
+ab
 c0
 26
 83
-8d
+af
 c0
 37
-83
-f9
+84
+1b
 c0
 41
 03
-8f
+b1
 c0
 42
 02
@@ -128,11 +128,11 @@
 c0
 44
 03
-af
+d1
 c0
 45
 03
-bc
+de
 c1
 7f
 80
@@ -368,11 +368,11 @@
 20
 40
 03
-10
+32
 20
 40
 03
-3b
+5d
 20
 40
 00
@@ -388,7 +388,7 @@
 20
 20
 03
-3d
+5f
 20
 75
 80
@@ -1180,30 +1180,30 @@
 20
 20
 02
-57
+65
 70
 48
-56
+97
 01
 70
 48
-50
+91
 40
 70
 48
-51
+92
 a1
 70
 48
-52
+93
 02
 70
 48
-53
+94
 02
 70
 48
-54
+95
 01
 6f
 e0
@@ -1212,7 +1212,7 @@
 67
 e0
 c8
-55
+96
 70
 09
 0c
@@ -1220,7 +1220,7 @@
 20
 20
 02
-57
+65
 70
 48
 50
@@ -1256,30 +1256,30 @@
 20
 20
 02
-57
+65
 70
 48
-56
+d8
 01
 70
 48
-50
+d2
 40
 70
 48
-51
+d3
 a1
 70
 48
-52
+d4
 02
 70
 48
-53
+d5
 06
 70
 48
-54
+d6
 01
 6f
 e0
@@ -1288,7 +1288,7 @@
 67
 e0
 c8
-55
+d7
 70
 09
 0c
@@ -1296,7 +1296,7 @@
 20
 20
 02
-57
+65
 6f
 e0
 c8
@@ -1344,7 +1344,7 @@
 20
 20
 02
-57
+65
 70
 48
 0f
@@ -1376,7 +1376,7 @@
 20
 20
 02
-57
+65
 70
 48
 0f
@@ -1472,7 +1472,7 @@
 20
 20
 02
-57
+65
 69
 51
 0c
@@ -2051,8 +2051,8 @@
 00
 da
 20
-48
-91
+49
+13
 20
 40
 7d
@@ -2120,11 +2120,11 @@
 20
 40
 02
-60
+6e
 20
 20
 02
-e4
+f2
 6f
 e0
 c6
@@ -2244,11 +2244,11 @@
 c2
 83
 02
-4e
+51
 c2
 83
 82
-54
+5f
 20
 20
 02
@@ -2312,11 +2312,11 @@
 c2
 83
 02
-4e
+51
 c2
 83
 82
-54
+5f
 20
 60
 00
@@ -2360,11 +2360,23 @@
 20
 20
 02
-57
+65
 6f
 e0
 c5
 eb
+68
+48
+c8
+05
+98
+46
+7c
+00
+20
+62
+80
+00
 67
 e0
 c8
@@ -2374,33 +2386,77 @@
 01
 25
 6f
-e0
+20
 c5
 7d
 1f
-e0
+20
+f3
 ff
+da
+20
+45
+eb
+da
+40
+47
 ff
-1f
-e2
-72
+20
+40
+7d
+64
+20
+62
+80
 00
-d8
-c0
+6f
+e3
 45
 eb
-d8
-a0
+67
+e3
 47
 ff
+6f
+e1
+45
+f3
+67
+e1
+48
+07
+6f
+e0
+c5
+f1
+20
+40
+02
+4c
+6f
+e0
+c5
+f2
 20
 20
-7c
-da
+02
+60
 6f
 e0
 c5
 eb
+68
+48
+c8
+06
+98
+46
+7c
+00
+20
+62
+80
+00
 67
 e0
 c8
@@ -2419,8 +2475,8 @@
 00
 da
 20
-48
-91
+49
+13
 20
 40
 7d
@@ -2439,8 +2495,8 @@
 6f
 da
 20
-48
-91
+49
+13
 20
 20
 7d
@@ -2492,51 +2548,51 @@
 c0
 08
 82
-6d
+7b
 20
 20
 23
 5a
 6f
 e0
-c8
-a4
+c9
+26
 c0
 00
 02
-78
+86
 c0
 00
 82
-84
+92
 c0
 01
 02
-88
+96
 c0
 01
 82
-98
+a6
 c0
 02
 02
-9f
+ad
 c0
 02
 82
-8e
+9c
 c0
 03
 02
-92
+a0
 c0
 03
 82
-94
+a2
 c0
 04
 02
-96
+a4
 20
 60
 00
@@ -2548,23 +2604,23 @@
 c0
 00
 02
-7c
+8a
 c0
 00
 82
-80
+8e
 20
 60
 00
 00
 70
-48
-a4
+49
+26
 01
 6f
 e1
-c8
-9a
+c9
+1c
 67
 e1
 89
@@ -2574,13 +2630,13 @@
 7c
 28
 70
-48
-a4
+49
+26
 01
 6f
 e1
-c8
-9d
+c9
+1f
 67
 e1
 89
@@ -2590,13 +2646,13 @@
 7c
 28
 70
-48
-a4
+49
+26
 02
 6f
 e0
-c8
-9a
+c9
+1c
 67
 e0
 89
@@ -2606,8 +2662,8 @@
 7c
 28
 70
-48
-a4
+49
+26
 03
 d8
 a0
@@ -2622,21 +2678,21 @@
 7c
 a3
 70
-48
-a6
+49
+28
 00
 20
 20
 7c
 28
 70
-48
-a4
+49
+26
 06
 6f
 e1
-c8
-a0
+c9
+22
 67
 e1
 89
@@ -2646,52 +2702,52 @@
 7c
 28
 70
-48
-a4
+49
+26
 07
 20
 20
 02
-89
+97
 70
-48
-a4
+49
+26
 08
 20
 20
 02
-8f
+9d
 70
-48
-a4
+49
+26
 00
 20
 20
 02
-89
+97
 6f
 e0
-c8
-a3
+c9
+25
 1f
 e0
 fe
 01
 67
 e0
-c8
-a3
+c9
+25
 c1
 87
 80
 00
 70
-48
-a3
+49
+25
 00
 70
-48
-a4
+49
+26
 04
 20
 60
@@ -2699,23 +2755,23 @@
 00
 6f
 e0
-c8
-a6
+c9
+28
 c0
 00
 82
-89
+97
 c0
 00
 02
-a5
+b3
 20
 60
 00
 00
 70
-48
-a4
+49
+26
 05
 20
 60
@@ -2723,20 +2779,20 @@
 00
 d8
 40
-48
-aa
+49
+2c
 6f
 e0
-c8
-a9
+c9
+2b
 98
 40
 84
 00
 6f
 e1
-48
-a7
+49
+29
 98
 46
 7c
@@ -2744,19 +2800,19 @@
 20
 22
 82
-a3
+b1
 20
 40
 02
-b5
+c3
 20
 40
 02
-d7
+e5
 6f
 e0
-c8
-a5
+c9
+27
 67
 e0
 89
@@ -2767,19 +2823,19 @@
 25
 6f
 e1
-48
-a7
+49
+29
 1f
 e0
 fe
 01
 67
 e1
-48
-a7
+49
+29
 70
-48
-a6
+49
+28
 01
 20
 20
@@ -2787,8 +2843,8 @@
 28
 68
 49
-48
-a7
+49
+29
 ef
 e0
 80
@@ -2800,7 +2856,7 @@
 24
 21
 02
-bc
+ca
 da
 40
 00
@@ -2812,7 +2868,7 @@
 20
 21
 02
-d3
+e1
 ef
 e0
 80
@@ -2824,7 +2880,7 @@
 24
 21
 02
-c2
+d0
 da
 40
 00
@@ -2836,7 +2892,7 @@
 20
 21
 02
-d5
+e3
 1f
 e6
 7c
@@ -2844,7 +2900,7 @@
 20
 22
 82
-cb
+d9
 1f
 e6
 7c
@@ -2852,7 +2908,7 @@
 20
 22
 82
-cd
+db
 1f
 e6
 7c
@@ -2860,7 +2916,7 @@
 20
 22
 82
-cf
+dd
 1f
 e6
 7c
@@ -2868,7 +2924,7 @@
 20
 22
 82
-d1
+df
 20
 60
 00
@@ -2922,25 +2978,25 @@
 00
 00
 70
-48
-a5
+49
+27
 00
 6f
 e1
-48
-a7
+49
+29
 ef
 e0
 80
 3f
 d8
 c0
-48
-d2
+49
+54
 68
 48
-c8
-d1
+c9
+53
 18
 42
 72
@@ -2956,18 +3012,18 @@
 20
 22
 82
-e2
+f0
 c2
 00
 02
-dd
+eb
 20
 60
 00
 00
 70
-48
-a5
+49
+27
 02
 20
 60
@@ -2975,8 +3031,8 @@
 00
 da
 20
-48
-91
+49
+13
 20
 40
 7d
@@ -3019,8 +3075,8 @@
 0d
 da
 20
-48
-91
+49
+13
 20
 40
 7d
@@ -3036,19 +3092,19 @@
 c0
 12
 03
-05
+1e
 c0
 13
 03
-05
+13
 c0
 11
 83
-05
+13
 c0
 12
 83
-05
+28
 c0
 10
 fc
@@ -3059,8 +3115,8 @@
 2c
 c0
 13
-82
-fb
+83
+09
 20
 20
 23
@@ -3104,7 +3160,7 @@
 20
 20
 03
-0e
+1c
 6f
 e0
 c8
@@ -3149,6 +3205,86 @@
 20
 7c
 a1
+6f
+e0
+c8
+91
+20
+7a
+00
+00
+1f
+e2
+72
+00
+d8
+c0
+48
+92
+d8
+e0
+00
+02
+da
+20
+07
+59
+62
+31
+0c
+0c
+20
+40
+7b
+d2
+d8
+a0
+48
+91
+20
+20
+03
+1c
+6f
+e0
+c8
+d2
+20
+7a
+00
+00
+1f
+e2
+72
+00
+d8
+c0
+48
+d3
+d8
+e0
+00
+02
+da
+20
+07
+59
+62
+31
+0c
+0c
+20
+40
+7b
+d2
+d8
+a0
+48
+d2
+20
+20
+03
+1c
 20
 75
 80
@@ -3200,7 +3336,7 @@
 20
 40
 03
-2d
+4f
 2a
 2f
 fe
@@ -3232,7 +3368,7 @@
 20
 40
 03
-2d
+4f
 d8
 a0
 8a
@@ -3260,7 +3396,7 @@
 20
 21
 03
-22
+44
 20
 20
 21
@@ -3364,7 +3500,7 @@
 20
 40
 03
-66
+88
 70
 8a
 08
@@ -3400,7 +3536,7 @@
 20
 40
 03
-5c
+7e
 6f
 f0
 8a
@@ -3444,7 +3580,7 @@
 20
 40
 03
-66
+88
 70
 80
 cd
@@ -3504,7 +3640,7 @@
 c3
 02
 83
-67
+89
 68
 59
 01
@@ -3540,7 +3676,7 @@
 c0
 08
 03
-86
+a8
 58
 00
 57
@@ -3584,7 +3720,7 @@
 c0
 08
 03
-83
+a5
 58
 00
 2b
@@ -3620,7 +3756,7 @@
 20
 20
 03
-7f
+a1
 58
 00
 83
@@ -3632,7 +3768,7 @@
 20
 20
 03
-74
+96
 6f
 e0
 c3
@@ -3672,7 +3808,7 @@
 c0
 11
 03
-95
+b7
 c0
 7f
 b5
@@ -3688,7 +3824,7 @@
 20
 3a
 03
-9b
+bd
 6f
 e2
 45
@@ -3712,11 +3848,11 @@
 c0
 00
 83
-9f
+c1
 c0
 01
 03
-a7
+c9
 20
 60
 00
@@ -3736,7 +3872,7 @@
 c0
 01
 03
-a4
+c6
 20
 60
 00
@@ -3768,7 +3904,7 @@
 c0
 80
 03
-ac
+ce
 20
 60
 00
@@ -3848,7 +3984,7 @@
 20
 40
 03
-c0
+e2
 20
 20
 34
@@ -3884,11 +4020,11 @@
 20
 40
 03
-d4
+f6
 20
 40
 03
-d6
+f8
 6f
 e0
 89
@@ -3955,12 +4091,12 @@
 00
 20
 40
-03
-de
+04
+00
 20
 40
+04
 03
-e1
 d8
 e0
 00
@@ -3975,8 +4111,8 @@
 e1
 6f
 e0
-c8
-a4
+c9
+26
 20
 7a
 00
@@ -4121,8 +4257,8 @@
 20
 31
 95
-25
-71
+7b
+08
 aa
 55
 40
@@ -4604,8 +4740,8 @@
 55
 09
 00
-9a
-48
+1c
+49
 08
 00
 15
@@ -4619,10 +4755,10 @@
 55
 11
 00
-a7
-48
-aa
-48
+29
+49
+2c
+49
 0e
 77
 77
@@ -4642,8 +4778,8 @@
 55
 16
 00
-d1
-48
+53
+49
 15
 7e
 21
@@ -4858,8 +4994,8 @@
 aa
 aa
 55
-ad
-a3
-51
-46
+b9
+a1
+8d
+9c
 f0
Index: output/program.lis
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/program.lis	(revision 3842)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/program.lis	(working copy)
@@ -4,18 +4,18 @@
 0001 c0000020 beq patch00_0 ,p_soft_reset 
 0002 c0010026 beq patch00_2 ,p_main_loop 
 0003 c008802f beq patch02_1 ,p_set_sync_on 
-0004 c00a036d beq patch02_4 ,p_set_lemode 
+0004 c00a038f beq patch02_4 ,p_set_lemode 
 0005 c00a80c9 beq patch02_5 ,p_rf_rx_enable 
 0006 c00c00d7 beq patch03_0 ,p_txon 
 0007 c00c807d beq patch03_1 ,p_set_tx_power 
 0008 c00d003d beq patch03_2 ,p_initialize_radio_cont 
-0009 c01b83f1 beq patch06_7 ,p_dongle_default_init 
+0009 c01b8413 beq patch06_7 ,p_dongle_default_init 
 000a c01c009c beq patch07_0 ,p_dongle_read_kb_bind_status 
 000b c01c8098 beq patch07_1 ,p_dongle_write_kb_bind_status 
-000c c01e83c7 beq patch07_5 ,p_dongle_usb_dispatch 
+000c c01e83e9 beq patch07_5 ,p_dongle_usb_dispatch 
 000d c0628095 beq patch18_5 ,p_otp_read_data 
-000e c06d033e beq patch1b_2 ,p_sadc_calibration 
-000f c06e034e beq patch1b_4 ,p_enable_adc 
+000e c06d0360 beq patch1b_2 ,p_sadc_calibration 
+000f c06e0370 beq patch1b_4 ,p_enable_adc 
 0010 c07f00e2 beq patch1f_6 ,p_usb_init 
 0011 c07f817a beq patch1f_7 ,p_usb_rx 
 0012 c07e80de beq patch1f_5 ,p_usb_isr 
@@ -25,13 +25,13 @@
 0014 c000019e beq patch20_0 ,p_usb_class_type 
 0015 c00101dd beq patch20_2 ,p_usb0_request_get_descriptor 
 0016 c0030201 beq patch20_6 ,p_usb_tx 
-0017 c01c8389 beq patch27_1 ,p_le_parse 
-0018 c026838d beq patch29_5 ,p_le_init_adv 
-0019 c03783f9 beq patch2d_7 ,p_g24_receive_skip_end 
-001a c041038f beq patch30_2 ,p_g24_bind_data_parse_next 
+0017 c01c83ab beq patch27_1 ,p_le_parse 
+0018 c02683af beq patch29_5 ,p_le_init_adv 
+0019 c037841b beq patch2d_7 ,p_g24_receive_skip_end 
+001a c04103b1 beq patch30_2 ,p_g24_bind_data_parse_next 
 001b c0420216 beq patch30_4 ,p_g24_receive_packet_start1 
-001c c04403af beq patch31_0 ,p_g24_mode_switch_bind_search 
-001d c04503bc beq patch31_2 ,p_g24_bind_mode_auto 
+001c c04403d1 beq patch31_0 ,p_g24_mode_switch_bind_search 
+001d c04503de beq patch31_2 ,p_g24_bind_mode_auto 
 001e c17f8000 rtneq patch3f_7 
 001f 2020235a branch assert 
 
@@ -100,12 +100,12 @@
 0055 58557474 setarg 0x557474 
 0056 67f18968 store 3 ,0x8968 
 0057 7089606e jam 0x6e ,0x8960 
-0058 20400310 call p_rx_dcoc 
-0059 2040033b call p_rfpll_aac_ghpc 
+0058 20400332 call p_rx_dcoc 
+0059 2040035d call p_rfpll_aac_ghpc 
 005a 2040005e call p_set_xtal_cap 
 005b 7041480c jam system_clk_12m ,mem_system_clk 
 005c 20406f4e call sadc_calibration 
-005d 2020033d branch p_dpll_ring_ibias_calc 
+005d 2020035f branch p_dpll_ring_ibias_calc 
 
 p_set_xtal_cap:
 005e 20758000 rtn wake 
@@ -351,21 +351,21 @@
 0120 6fe14809 fetch 2 ,mem_dongle_version 
 0121 67e1485d store 2 ,mem_dongle_usb_ep2_data + 13 
 0122 70090c23 jam usb_ep2_device_info ,mem_usb_ep2_data 
-0123 20200257 branch p_dongle_usb_tx_enable_ep2 
+0123 20200265 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_dpi:
-0124 70485601 jam 0x01 ,mem_dongle_usb_ep2_data + 6 
+0124 70489701 jam 0x01 ,mem_usb_dpi_info_data + 6 
 
 p_dongle_usb_tx_ep2_dpi_data:
-0125 70485040 jam 0x40 ,mem_dongle_usb_ep2_data 
-0126 704851a1 jam report_id_data_in ,mem_dongle_usb_ep2_data + 1 
-0127 70485202 jam 0x02 ,mem_dongle_usb_ep2_data + 2 
-0128 70485302 jam 0x02 ,mem_dongle_usb_ep2_data + 3 
-0129 70485401 jam 0x01 ,mem_dongle_usb_ep2_data + 4 
+0125 70489140 jam 0x40 ,mem_usb_dpi_info_data 
+0126 704892a1 jam report_id_data_in ,mem_usb_dpi_info_data + 1 
+0127 70489302 jam 0x02 ,mem_usb_dpi_info_data + 2 
+0128 70489402 jam 0x02 ,mem_usb_dpi_info_data + 3 
+0129 70489501 jam 0x01 ,mem_usb_dpi_info_data + 4 
 012a 6fe0c805 fetch 1 ,mem_usb_get_report_dpi_data 
-012b 67e0c855 store 1 ,mem_dongle_usb_ep2_data + 5 
+012b 67e0c896 store 1 ,mem_usb_dpi_info_data + 5 
 012c 70090c24 jam usb_ep2_dpi ,mem_usb_ep2_data 
-012d 20200257 branch p_dongle_usb_tx_enable_ep2 
+012d 20200265 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_sn:
 012e 70485040 jam 0x40 ,mem_dongle_usb_ep2_data 
@@ -376,21 +376,21 @@
 0133 6fe347ff fetch 6 ,mem_usb_get_report_sn_data 
 0134 67e34855 store 6 ,mem_dongle_usb_ep2_data + 5 
 0135 70090c26 jam usb_ep2_sn ,mem_usb_ep2_data 
-0136 20200257 branch p_dongle_usb_tx_enable_ep2 
+0136 20200265 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_battery:
-0137 70485601 jam 0x01 ,mem_dongle_usb_ep2_data + 6 
+0137 7048d801 jam 0x01 ,mem_usb_battery_info_data + 6 
 
 p_dongle_usb_tx_ep2_battery_data:
-0138 70485040 jam 0x40 ,mem_dongle_usb_ep2_data 
-0139 704851a1 jam report_id_data_in ,mem_dongle_usb_ep2_data + 1 
-013a 70485202 jam 0x02 ,mem_dongle_usb_ep2_data + 2 
-013b 70485306 jam 0x06 ,mem_dongle_usb_ep2_data + 3 
-013c 70485401 jam 0x01 ,mem_dongle_usb_ep2_data + 4 
+0138 7048d240 jam 0x40 ,mem_usb_battery_info_data 
+0139 7048d3a1 jam report_id_data_in ,mem_usb_battery_info_data + 1 
+013a 7048d402 jam 0x02 ,mem_usb_battery_info_data + 2 
+013b 7048d506 jam 0x06 ,mem_usb_battery_info_data + 3 
+013c 7048d601 jam 0x01 ,mem_usb_battery_info_data + 4 
 013d 6fe0c806 fetch 1 ,mem_usb_get_report_battery_data 
-013e 67e0c855 store 1 ,mem_dongle_usb_ep2_data + 5 
+013e 67e0c8d7 store 1 ,mem_usb_battery_info_data + 5 
 013f 70090c25 jam usb_ep2_battery ,mem_usb_ep2_data 
-0140 20200257 branch p_dongle_usb_tx_enable_ep2 
+0140 20200265 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_connect_state:
 0141 6fe0c80b fetch 1 ,mem_dongle_connect_mouse_flag 
@@ -406,7 +406,7 @@
 0149 70481301 jam 0x01 ,mem_usb_rf_state_data + 4 
 014a 70481401 jam 0x01 ,mem_usb_rf_state_data + 5 
 014b 70090c27 jam usb_ep2_mskb_state ,mem_usb_ep2_data 
-014c 20200257 branch p_dongle_usb_tx_enable_ep2 
+014c 20200265 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_device_disconnect:
 014d 70480f40 jam 0x40 ,mem_usb_rf_state_data 
@@ -416,7 +416,7 @@
 0151 70481301 jam 0x01 ,mem_usb_rf_state_data + 4 
 0152 70481400 jam 0x00 ,mem_usb_rf_state_data + 5 
 0153 70090c27 jam usb_ep2_mskb_state ,mem_usb_ep2_data 
-0154 20200257 branch p_dongle_usb_tx_enable_ep2 
+0154 20200265 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_hci_event_invalid_packet:
 0155 70480f40 jam 0x40 ,mem_usb_rf_state_data 
@@ -446,7 +446,7 @@
 0169 1a420c00 copy regb ,contr 
 016a 20407cda call memcpy 
 016b 70090c27 jam usb_ep2_mskb_state ,mem_usb_ep2_data 
-016c 20200257 branch p_dongle_usb_tx_enable_ep2 
+016c 20200265 branch p_dongle_usb_tx_enable_ep2 
 
 p_usb_rx_len:
 016d 69510c02 fetchr contus ,2 ,core_usb_rx_saddr 
@@ -627,7 +627,7 @@
 01fc 20600000 rtn 
 
 p_usb_tx_ep2_queue_buff_check:
-01fd da204891 arg mem_usb_ep2_fifo ,rega 
+01fd da204913 arg mem_usb_ep2_fifo ,rega 
 01fe 20407da3 call fifo_is_empty 
 01ff 207a0000 rtn blank 
 0200 20204837 branch dongle_usb_tx_enable_ep2 
@@ -646,8 +646,8 @@
 020b c0817c06 bne usb_connected ,usb_tx_fifo_release 
 020c 6fe08902 fetch 1 ,mem_usb_clear_remote_wakeup 
 020d 243a7c06 nbranch usb_tx_fifo_release ,blank 
-020e 20400260 call p_usb_tx_data_ep1 
-020f 202002e4 branch p_usb_tx_data_ep2 
+020e 2040026e call p_usb_tx_data_ep1 
+020f 202002f2 branch p_usb_tx_data_ep2 
 
 p_dongle_usb_connect_mouse_check:
 0210 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
@@ -687,8 +687,8 @@
 022a 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
 022b c2820226 bbit1 data_http ,p_dongle_usb_tx_http_data 
 022c c282824b bbit1 data_dpi ,p_dongle_receive_dpi_data 
-022d c283024e bbit1 data_device_info ,p_dongle_receive_device_info_data 
-022e c2838254 bbit1 data_battery ,p_dongle_receive_battery_data 
+022d c2830251 bbit1 data_device_info ,p_dongle_receive_device_info_data 
+022e c283825f bbit1 data_battery ,p_dongle_receive_battery_data 
 022f 20200230 branch p_dongle_g24_mouse_next 
 
 p_dongle_g24_mouse_next:
@@ -706,8 +706,8 @@
 023b 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
 023c c2820226 bbit1 data_http ,p_dongle_usb_tx_http_data 
 023d c282824b bbit1 data_dpi ,p_dongle_receive_dpi_data 
-023e c283024e bbit1 data_device_info ,p_dongle_receive_device_info_data 
-023f c2838254 bbit1 data_battery ,p_dongle_receive_battery_data 
+023e c2830251 bbit1 data_device_info ,p_dongle_receive_device_info_data 
+023f c283825f bbit1 data_battery ,p_dongle_receive_battery_data 
 0240 20600000 rtn 
 
 p_dongle_g24_mouse_data:
@@ -720,591 +720,633 @@
 0247 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
 0248 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
 0249 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
-024a 20200257 branch p_dongle_usb_tx_enable_ep2 
+024a 20200265 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_receive_dpi_data:
 024b 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-024c 67e0c805 store 1 ,mem_usb_get_report_dpi_data 
-024d 20200125 branch p_dongle_usb_tx_ep2_dpi_data 
+
+p_dongle_receive_dpi_data_compare:
+024c 6848c805 fetcht 1 ,mem_usb_get_report_dpi_data 
+024d 98467c00 isub temp ,null 
+024e 20628000 rtn zero 
+024f 67e0c805 store 1 ,mem_usb_get_report_dpi_data 
+0250 20200125 branch p_dongle_usb_tx_ep2_dpi_data 
 
 p_dongle_receive_device_info_data:
-024e 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-024f 1fe0ffff increase -1 ,pdata 
-0250 1fe27200 copy pdata ,loopcnt 
-0251 d8c045eb arg mem_24g_rxdata_temp + 3 ,contr 
-0252 d8a047ff arg mem_usb_get_report_sn_data ,contw 
-0253 20207cda branch memcpy 
+0251 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0252 1f20f3ff increase -1 ,loopcnt 
+0253 da2045eb arg mem_24g_rxdata_temp + 3 ,rega 
+0254 da4047ff arg mem_usb_get_report_sn_data ,regb 
+0255 20407d64 call compare_loop 
+0256 20628000 rtn zero 
+0257 6fe345eb fetch 6 ,mem_24g_rxdata_temp + 3 
+0258 67e347ff store 6 ,mem_usb_get_report_sn_data 
+0259 6fe145f3 fetch 2 ,mem_24g_rxdata_temp + 11 
+025a 67e14807 store 2 ,mem_usb_get_report_mouse_version_data 
+025b 6fe0c5f1 fetch 1 ,mem_24g_rxdata_temp + 9 
+025c 2040024c call p_dongle_receive_dpi_data_compare 
+025d 6fe0c5f2 fetch 1 ,mem_24g_rxdata_temp + 10 
+025e 20200260 branch p_dongle_receive_battery_data_compare 
 
 p_dongle_receive_battery_data:
-0254 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-0255 67e0c806 store 1 ,mem_usb_get_report_battery_data 
-0256 20200138 branch p_dongle_usb_tx_ep2_battery_data 
+025f 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+
+p_dongle_receive_battery_data_compare:
+0260 6848c806 fetcht 1 ,mem_usb_get_report_battery_data 
+0261 98467c00 isub temp ,null 
+0262 20628000 rtn zero 
+0263 67e0c806 store 1 ,mem_usb_get_report_battery_data 
+0264 20200138 branch p_dongle_usb_tx_ep2_battery_data 
 
 p_dongle_usb_tx_enable_ep2:
-0257 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
-0258 207a0000 rtn blank 
-0259 da204891 arg mem_usb_ep2_fifo ,rega 
-025a 20407da5 call fifo_is_full 
-025b 247a0000 nrtn blank 
-025c 6fe0890c fetch 1 ,mem_usb_ep2_data 
-025d 67e0866f store 1 ,mem_fifo_temp 
-025e da204891 arg mem_usb_ep2_fifo ,rega 
-025f 20207d8b branch fifo_in 
+0265 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+0266 207a0000 rtn blank 
+0267 da204913 arg mem_usb_ep2_fifo ,rega 
+0268 20407da5 call fifo_is_full 
+0269 247a0000 nrtn blank 
+026a 6fe0890c fetch 1 ,mem_usb_ep2_data 
+026b 67e0866f store 1 ,mem_fifo_temp 
+026c da204913 arg mem_usb_ep2_fifo ,rega 
+026d 20207d8b branch fifo_in 
 
 p_usb_tx_data_ep1:
-0260 6ff08c25 fetch 1 ,core_usb_txbusy 
-0261 1fe17e0f and_into 0x0f ,pdata 
-0262 247a0000 nrtn blank 
-0263 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0264 c4008000 rtnbit0 1 
-0265 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0266 793ffe01 set0 1 ,pdata 
-0267 67e0890d store 1 ,mem_usb_tx_enable 
-0268 6fe0890b fetch 1 ,mem_usb_ep1_data 
-0269 207a0000 rtn blank 
-026a c0087c28 beq usb_ep1_kb ,usb_tx_kb_normal_data 
-026b c008826d beq usb_ep1_kb_http ,p_usb_tx_http_data_set 
-026c 2020235a branch assert 
+026e 6ff08c25 fetch 1 ,core_usb_txbusy 
+026f 1fe17e0f and_into 0x0f ,pdata 
+0270 247a0000 nrtn blank 
+0271 6fe0890d fetch 1 ,mem_usb_tx_enable 
+0272 c4008000 rtnbit0 1 
+0273 6fe0890d fetch 1 ,mem_usb_tx_enable 
+0274 793ffe01 set0 1 ,pdata 
+0275 67e0890d store 1 ,mem_usb_tx_enable 
+0276 6fe0890b fetch 1 ,mem_usb_ep1_data 
+0277 207a0000 rtn blank 
+0278 c0087c28 beq usb_ep1_kb ,usb_tx_kb_normal_data 
+0279 c008827b beq usb_ep1_kb_http ,p_usb_tx_http_data_set 
+027a 2020235a branch assert 
 
 p_usb_tx_http_data_set:
-026d 6fe0c8a4 fetch 1 ,mem_usb_website_step 
-026e c0000278 beq website_win ,p_usb_website_winr_data 
-026f c0008284 beq website_r_space_release ,p_usb_website_r_space_release_data 
-0270 c0010288 beq website_win_release ,p_usb_website_win_release_data 
-0271 c0018298 beq website_wait ,p_usb_website_wait_tx_data 
-0272 c002029f beq website_data ,p_usb_website_data 
-0273 c002828e beq website_enter_1 ,p_usb_website_enter_data1 
-0274 c0030292 beq website_enter_release_1 ,p_usb_website_enter_release_data1 
-0275 c0038294 beq website_enter_2 ,p_usb_website_enter_data2 
-0276 c0040296 beq website_enter_release_2 ,p_usb_website_enter_release_data2 
-0277 20600000 rtn 
+027b 6fe0c926 fetch 1 ,mem_usb_website_step 
+027c c0000286 beq website_win ,p_usb_website_winr_data 
+027d c0008292 beq website_r_space_release ,p_usb_website_r_space_release_data 
+027e c0010296 beq website_win_release ,p_usb_website_win_release_data 
+027f c00182a6 beq website_wait ,p_usb_website_wait_tx_data 
+0280 c00202ad beq website_data ,p_usb_website_data 
+0281 c002829c beq website_enter_1 ,p_usb_website_enter_data1 
+0282 c00302a0 beq website_enter_release_1 ,p_usb_website_enter_release_data1 
+0283 c00382a2 beq website_enter_2 ,p_usb_website_enter_data2 
+0284 c00402a4 beq website_enter_release_2 ,p_usb_website_enter_release_data2 
+0285 20600000 rtn 
 
 p_usb_website_winr_data:
-0278 6fe088fa fetch 1 ,mem_usb_tx_mac_enable 
-0279 c000027c beq 0 ,p_usb_tx_winos_winr_data 
-027a c0008280 beq 1 ,p_usb_tx_macos_winr_data 
-027b 20600000 rtn 
+0286 6fe088fa fetch 1 ,mem_usb_tx_mac_enable 
+0287 c000028a beq 0 ,p_usb_tx_winos_winr_data 
+0288 c000828e beq 1 ,p_usb_tx_macos_winr_data 
+0289 20600000 rtn 
 
 p_usb_tx_winos_winr_data:
-027c 7048a401 jam website_r_space_release ,mem_usb_website_step 
-027d 6fe1c89a fetch 3 ,mem_usb_win_cmd 
-027e 67e18923 store 3 ,mem_usb_kb_data 
-027f 20207c28 branch usb_tx_kb_normal_data 
+028a 70492601 jam website_r_space_release ,mem_usb_website_step 
+028b 6fe1c91c fetch 3 ,mem_usb_win_cmd 
+028c 67e18923 store 3 ,mem_usb_kb_data 
+028d 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_tx_macos_winr_data:
-0280 7048a401 jam website_r_space_release ,mem_usb_website_step 
-0281 6fe1c89d fetch 3 ,mem_usb_mac_cmd 
-0282 67e18923 store 3 ,mem_usb_kb_data 
-0283 20207c28 branch usb_tx_kb_normal_data 
+028e 70492601 jam website_r_space_release ,mem_usb_website_step 
+028f 6fe1c91f fetch 3 ,mem_usb_mac_cmd 
+0290 67e18923 store 3 ,mem_usb_kb_data 
+0291 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_r_space_release_data:
-0284 7048a402 jam website_win_release ,mem_usb_website_step 
-0285 6fe0c89a fetch 1 ,mem_usb_win_cmd 
-0286 67e08923 store 1 ,mem_usb_kb_data 
-0287 20207c28 branch usb_tx_kb_normal_data 
+0292 70492602 jam website_win_release ,mem_usb_website_step 
+0293 6fe0c91c fetch 1 ,mem_usb_win_cmd 
+0294 67e08923 store 1 ,mem_usb_kb_data 
+0295 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_win_release_data:
-0288 7048a403 jam website_wait ,mem_usb_website_step 
+0296 70492603 jam website_wait ,mem_usb_website_step 
 
 p_usb_webstie_release_data:
-0289 d8a00923 arg mem_usb_kb_data ,contw 
-028a df200008 arg 8 ,loopcnt 
-028b 20407ca3 call memset0 
-028c 7048a600 jam 0 ,mem_usb_website_release_flag 
-028d 20207c28 branch usb_tx_kb_normal_data 
+0297 d8a00923 arg mem_usb_kb_data ,contw 
+0298 df200008 arg 8 ,loopcnt 
+0299 20407ca3 call memset0 
+029a 70492800 jam 0 ,mem_usb_website_release_flag 
+029b 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_enter_data1:
-028e 7048a406 jam website_enter_release_1 ,mem_usb_website_step 
+029c 70492606 jam website_enter_release_1 ,mem_usb_website_step 
 
 p_usb_webstie_enter_data:
-028f 6fe1c8a0 fetch 3 ,mem_usb_kb_enter 
-0290 67e18923 store 3 ,mem_usb_kb_data 
-0291 20207c28 branch usb_tx_kb_normal_data 
+029d 6fe1c922 fetch 3 ,mem_usb_kb_enter 
+029e 67e18923 store 3 ,mem_usb_kb_data 
+029f 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_enter_release_data1:
-0292 7048a407 jam website_enter_2 ,mem_usb_website_step 
-0293 20200289 branch p_usb_webstie_release_data 
+02a0 70492607 jam website_enter_2 ,mem_usb_website_step 
+02a1 20200297 branch p_usb_webstie_release_data 
 
 p_usb_website_enter_data2:
-0294 7048a408 jam website_enter_release_2 ,mem_usb_website_step 
-0295 2020028f branch p_usb_webstie_enter_data 
+02a2 70492608 jam website_enter_release_2 ,mem_usb_website_step 
+02a3 2020029d branch p_usb_webstie_enter_data 
 
 p_usb_website_enter_release_data2:
-0296 7048a400 jam website_done ,mem_usb_website_step 
-0297 20200289 branch p_usb_webstie_release_data 
+02a4 70492600 jam website_done ,mem_usb_website_step 
+02a5 20200297 branch p_usb_webstie_release_data 
 
 p_usb_website_wait_tx_data:
-0298 6fe0c8a3 fetch 1 ,mem_usb_website_wait_count 
-0299 1fe0fe01 increase 1 ,pdata 
-029a 67e0c8a3 store 1 ,mem_usb_website_wait_count 
-029b c1878000 rtnne website_wait_count 
-029c 7048a300 jam 0 ,mem_usb_website_wait_count 
-029d 7048a404 jam website_data ,mem_usb_website_step 
-029e 20600000 rtn 
+02a6 6fe0c925 fetch 1 ,mem_usb_website_wait_count 
+02a7 1fe0fe01 increase 1 ,pdata 
+02a8 67e0c925 store 1 ,mem_usb_website_wait_count 
+02a9 c1878000 rtnne website_wait_count 
+02aa 70492500 jam 0 ,mem_usb_website_wait_count 
+02ab 70492604 jam website_data ,mem_usb_website_step 
+02ac 20600000 rtn 
 
 p_usb_website_data:
-029f 6fe0c8a6 fetch 1 ,mem_usb_website_release_flag 
-02a0 c0008289 beq 1 ,p_usb_webstie_release_data 
-02a1 c00002a5 beq 0 ,p_usb_website_info_data 
-02a2 20600000 rtn 
+02ad 6fe0c928 fetch 1 ,mem_usb_website_release_flag 
+02ae c0008297 beq 1 ,p_usb_webstie_release_data 
+02af c00002b3 beq 0 ,p_usb_website_info_data 
+02b0 20600000 rtn 
 
 p_usb_webstie_info_data_done:
-02a3 7048a405 jam website_enter_1 ,mem_usb_website_step 
-02a4 20600000 rtn 
+02b1 70492605 jam website_enter_1 ,mem_usb_website_step 
+02b2 20600000 rtn 
 
 p_usb_website_info_data:
-02a5 d84048aa arg mem_usb_website_info + 1 ,temp 
-02a6 6fe0c8a9 fetch 1 ,mem_usb_website_info 
-02a7 98408400 iadd temp ,temp 
-02a8 6fe148a7 fetch 2 ,mem_usb_website_ptr 
-02a9 98467c00 isub temp ,null 
-02aa 202282a3 branch p_usb_webstie_info_data_done ,zero 
-02ab 204002b5 call p_usb_tx_website_acii2hidkey 
-02ac 204002d7 call p_usb_tx_website_need_shift 
-02ad 6fe0c8a5 fetch 1 ,mem_usb_website_shift_flag 
-02ae 67e08923 store 1 ,mem_usb_kb_data 
-02af 62208925 storer rega ,1 ,mem_usb_kb_data + 2 
-02b0 6fe148a7 fetch 2 ,mem_usb_website_ptr 
-02b1 1fe0fe01 increase 1 ,pdata 
-02b2 67e148a7 store 2 ,mem_usb_website_ptr 
-02b3 7048a601 jam 1 ,mem_usb_website_release_flag 
-02b4 20207c28 branch usb_tx_kb_normal_data 
+02b3 d840492c arg mem_usb_website_info + 1 ,temp 
+02b4 6fe0c92b fetch 1 ,mem_usb_website_info 
+02b5 98408400 iadd temp ,temp 
+02b6 6fe14929 fetch 2 ,mem_usb_website_ptr 
+02b7 98467c00 isub temp ,null 
+02b8 202282b1 branch p_usb_webstie_info_data_done ,zero 
+02b9 204002c3 call p_usb_tx_website_acii2hidkey 
+02ba 204002e5 call p_usb_tx_website_need_shift 
+02bb 6fe0c927 fetch 1 ,mem_usb_website_shift_flag 
+02bc 67e08923 store 1 ,mem_usb_kb_data 
+02bd 62208925 storer rega ,1 ,mem_usb_kb_data + 2 
+02be 6fe14929 fetch 2 ,mem_usb_website_ptr 
+02bf 1fe0fe01 increase 1 ,pdata 
+02c0 67e14929 store 2 ,mem_usb_website_ptr 
+02c1 70492801 jam 1 ,mem_usb_website_release_flag 
+02c2 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_tx_website_acii2hidkey:
-02b5 684948a7 fetcht 2 ,mem_usb_website_ptr 
-02b6 efe08002 ifetch 1 ,temp 
-02b7 1fe67c7a sub pdata ,0x7a ,null 
-02b8 242102bc nbranch p_usb_tx_website_acii2hidkey1 ,positive 
-02b9 da400061 arg 0x61 ,regb 
-02ba 9a462200 isub regb ,rega 
-02bb 202102d3 branch p_usb_tx_website_acii2keycode_a2z ,positive 
+02c3 68494929 fetcht 2 ,mem_usb_website_ptr 
+02c4 efe08002 ifetch 1 ,temp 
+02c5 1fe67c7a sub pdata ,0x7a ,null 
+02c6 242102ca nbranch p_usb_tx_website_acii2hidkey1 ,positive 
+02c7 da400061 arg 0x61 ,regb 
+02c8 9a462200 isub regb ,rega 
+02c9 202102e1 branch p_usb_tx_website_acii2keycode_a2z ,positive 
 
 p_usb_tx_website_acii2hidkey1:
-02bc efe08002 ifetch 1 ,temp 
-02bd 1fe67c39 sub pdata ,0x39 ,null 
-02be 242102c2 nbranch p_usb_tx_website_acii2keycode_sign ,positive 
-02bf da400030 arg 0x30 ,regb 
-02c0 9a462200 isub regb ,rega 
-02c1 202102d5 branch p_usb_tx_website_acii2keycode_029 ,positive 
+02ca efe08002 ifetch 1 ,temp 
+02cb 1fe67c39 sub pdata ,0x39 ,null 
+02cc 242102d0 nbranch p_usb_tx_website_acii2keycode_sign ,positive 
+02cd da400030 arg 0x30 ,regb 
+02ce 9a462200 isub regb ,rega 
+02cf 202102e3 branch p_usb_tx_website_acii2keycode_029 ,positive 
 
 p_usb_tx_website_acii2keycode_sign:
-02c2 1fe67c3a sub pdata ,0x3a ,null 
-02c3 202282cb branch p_usb_tx_website_acii2keycode_sign_3a ,zero 
-02c4 1fe67c2f sub pdata ,0x2f ,null 
-02c5 202282cd branch p_usb_tx_website_acii2keycode_sign_2f ,zero 
-02c6 1fe67c2e sub pdata ,0x2e ,null 
-02c7 202282cf branch p_usb_tx_website_acii2keycode_sign_2e ,zero 
-02c8 1fe67c2d sub pdata ,0x2d ,null 
-02c9 202282d1 branch p_usb_tx_website_acii2keycode_sign_2d ,zero 
-02ca 20600000 rtn 
+02d0 1fe67c3a sub pdata ,0x3a ,null 
+02d1 202282d9 branch p_usb_tx_website_acii2keycode_sign_3a ,zero 
+02d2 1fe67c2f sub pdata ,0x2f ,null 
+02d3 202282db branch p_usb_tx_website_acii2keycode_sign_2f ,zero 
+02d4 1fe67c2e sub pdata ,0x2e ,null 
+02d5 202282dd branch p_usb_tx_website_acii2keycode_sign_2e ,zero 
+02d6 1fe67c2d sub pdata ,0x2d ,null 
+02d7 202282df branch p_usb_tx_website_acii2keycode_sign_2d ,zero 
+02d8 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_3a:
-02cb da200033 arg 0x33 ,rega 
-02cc 20600000 rtn 
+02d9 da200033 arg 0x33 ,rega 
+02da 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_2f:
-02cd da200038 arg 0x38 ,rega 
-02ce 20600000 rtn 
+02db da200038 arg 0x38 ,rega 
+02dc 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_2e:
-02cf da200037 arg 0x37 ,rega 
-02d0 20600000 rtn 
+02dd da200037 arg 0x37 ,rega 
+02de 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_2d:
-02d1 da20002d arg 0x2d ,rega 
-02d2 20600000 rtn 
+02df da20002d arg 0x2d ,rega 
+02e0 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_a2z:
-02d3 1a20a204 add rega ,4 ,rega 
-02d4 20600000 rtn 
+02e1 1a20a204 add rega ,4 ,rega 
+02e2 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_029:
-02d5 1a20a227 add rega ,0x27 ,rega 
-02d6 20600000 rtn 
+02e3 1a20a227 add rega ,0x27 ,rega 
+02e4 20600000 rtn 
 
 p_usb_tx_website_need_shift:
-02d7 7048a500 jam 0 ,mem_usb_website_shift_flag 
-02d8 6fe148a7 fetch 2 ,mem_usb_website_ptr 
-02d9 efe0803f ifetch 1 ,pdata 
-02da d8c048d2 arg mem_usb_website_info_sign + 1 ,contr 
-02db 6848c8d1 fetcht 1 ,mem_usb_website_info_sign 
-02dc 18427200 copy temp ,loopcnt 
+02e5 70492700 jam 0 ,mem_usb_website_shift_flag 
+02e6 6fe14929 fetch 2 ,mem_usb_website_ptr 
+02e7 efe0803f ifetch 1 ,pdata 
+02e8 d8c04954 arg mem_usb_website_info_sign + 1 ,contr 
+02e9 6848c953 fetcht 1 ,mem_usb_website_info_sign 
+02ea 18427200 copy temp ,loopcnt 
 
 p_usb_tx_website_need_shift_check_loop:
-02dd e8408006 ifetcht 1 ,contr 
-02de 98467c00 isub temp ,null 
-02df 202282e2 branch p_usb_tx_website_need_shift_setflag ,zero 
-02e0 c20002dd loop p_usb_tx_website_need_shift_check_loop 
-02e1 20600000 rtn 
+02eb e8408006 ifetcht 1 ,contr 
+02ec 98467c00 isub temp ,null 
+02ed 202282f0 branch p_usb_tx_website_need_shift_setflag ,zero 
+02ee c20002eb loop p_usb_tx_website_need_shift_check_loop 
+02ef 20600000 rtn 
 
 p_usb_tx_website_need_shift_setflag:
-02e2 7048a502 jam 2 ,mem_usb_website_shift_flag 
-02e3 20600000 rtn 
+02f0 70492702 jam 2 ,mem_usb_website_shift_flag 
+02f1 20600000 rtn 
 
 p_usb_tx_data_ep2:
-02e4 da204891 arg mem_usb_ep2_fifo ,rega 
-02e5 20407da3 call fifo_is_empty 
-02e6 207a0000 rtn blank 
-02e7 6ff08c25 fetch 1 ,core_usb_txbusy 
-02e8 1fe17e0f and_into 0x0f ,pdata 
-02e9 247a0000 nrtn blank 
-02ea 6fe0890d fetch 1 ,mem_usb_tx_enable 
-02eb c4010000 rtnbit0 2 
-02ec 6fe0890d fetch 1 ,mem_usb_tx_enable 
-02ed 793ffe02 set0 2 ,pdata 
-02ee 67e0890d store 1 ,mem_usb_tx_enable 
-02ef da204891 arg mem_usb_ep2_fifo ,rega 
-02f0 20407d97 call fifo_out 
-02f1 207a0000 rtn blank 
-02f2 c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
-02f3 c0120305 beq usb_ep2_dpi ,p_usb_tx_dongle_ep2_data 
-02f4 c0130305 beq usb_ep2_sn ,p_usb_tx_dongle_ep2_data 
-02f5 c0118305 beq usb_ep2_device_info ,p_usb_tx_dongle_ep2_data 
-02f6 c0128305 beq usb_ep2_battery ,p_usb_tx_dongle_ep2_data 
-02f7 c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
-02f8 c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
-02f9 c01382fb beq usb_ep2_mskb_state ,p_usb_tx_rf_state_data 
-02fa 2020235a branch assert 
+02f2 da204913 arg mem_usb_ep2_fifo ,rega 
+02f3 20407da3 call fifo_is_empty 
+02f4 207a0000 rtn blank 
+02f5 6ff08c25 fetch 1 ,core_usb_txbusy 
+02f6 1fe17e0f and_into 0x0f ,pdata 
+02f7 247a0000 nrtn blank 
+02f8 6fe0890d fetch 1 ,mem_usb_tx_enable 
+02f9 c4010000 rtnbit0 2 
+02fa 6fe0890d fetch 1 ,mem_usb_tx_enable 
+02fb 793ffe02 set0 2 ,pdata 
+02fc 67e0890d store 1 ,mem_usb_tx_enable 
+02fd da204913 arg mem_usb_ep2_fifo ,rega 
+02fe 20407d97 call fifo_out 
+02ff 207a0000 rtn blank 
+0300 c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
+0301 c012031e beq usb_ep2_dpi ,p_usb_tx_dongle_ep2_dpi_data 
+0302 c0130313 beq usb_ep2_sn ,p_usb_tx_dongle_ep2_data 
+0303 c0118313 beq usb_ep2_device_info ,p_usb_tx_dongle_ep2_data 
+0304 c0128328 beq usb_ep2_battery ,p_usb_tx_dongle_ep2_battery_data 
+0305 c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+0306 c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+0307 c0138309 beq usb_ep2_mskb_state ,p_usb_tx_rf_state_data 
+0308 2020235a branch assert 
 
 p_usb_tx_rf_state_data:
-02fb 6fe0c80f fetch 1 ,mem_usb_rf_state_data 
-02fc 207a0000 rtn blank 
-02fd 1fe27200 copy pdata ,loopcnt 
-02fe d8c04810 arg mem_usb_rf_state_data + 1 ,contr 
-02ff d8e00002 arg 2 ,queue 
-0300 da200759 arg mem_usb_txbuf2 ,rega 
-0301 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
-0302 20407bd2 call usb_tx_buf 
-0303 d8a0480f arg mem_usb_rf_state_data ,contw 
-0304 2020030e branch p_usb_tx_buff_clr 
+0309 6fe0c80f fetch 1 ,mem_usb_rf_state_data 
+030a 207a0000 rtn blank 
+030b 1fe27200 copy pdata ,loopcnt 
+030c d8c04810 arg mem_usb_rf_state_data + 1 ,contr 
+030d d8e00002 arg 2 ,queue 
+030e da200759 arg mem_usb_txbuf2 ,rega 
+030f 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
+0310 20407bd2 call usb_tx_buf 
+0311 d8a0480f arg mem_usb_rf_state_data ,contw 
+0312 2020031c branch p_usb_tx_buff_clr 
 
 p_usb_tx_dongle_ep2_data:
-0305 6fe0c850 fetch 1 ,mem_dongle_usb_ep2_data 
-0306 207a0000 rtn blank 
-0307 1fe27200 copy pdata ,loopcnt 
-0308 d8c04851 arg mem_dongle_usb_ep2_data + 1 ,contr 
-0309 d8e00002 arg 2 ,queue 
-030a da200759 arg mem_usb_txbuf2 ,rega 
-030b 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
-030c 20407bd2 call usb_tx_buf 
-030d d8a04850 arg mem_dongle_usb_ep2_data ,contw 
+0313 6fe0c850 fetch 1 ,mem_dongle_usb_ep2_data 
+0314 207a0000 rtn blank 
+0315 1fe27200 copy pdata ,loopcnt 
+0316 d8c04851 arg mem_dongle_usb_ep2_data + 1 ,contr 
+0317 d8e00002 arg 2 ,queue 
+0318 da200759 arg mem_usb_txbuf2 ,rega 
+0319 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
+031a 20407bd2 call usb_tx_buf 
+031b d8a04850 arg mem_dongle_usb_ep2_data ,contw 
 
 p_usb_tx_buff_clr:
-030e df200041 arg 65 ,loopcnt 
-030f 20207ca1 branch clear_mem 
+031c df200041 arg 65 ,loopcnt 
+031d 20207ca1 branch clear_mem 
+
+p_usb_tx_dongle_ep2_dpi_data:
+031e 6fe0c891 fetch 1 ,mem_usb_dpi_info_data 
+031f 207a0000 rtn blank 
+0320 1fe27200 copy pdata ,loopcnt 
+0321 d8c04892 arg mem_usb_dpi_info_data + 1 ,contr 
+0322 d8e00002 arg 2 ,queue 
+0323 da200759 arg mem_usb_txbuf2 ,rega 
+0324 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
+0325 20407bd2 call usb_tx_buf 
+0326 d8a04891 arg mem_usb_dpi_info_data ,contw 
+0327 2020031c branch p_usb_tx_buff_clr 
+
+p_usb_tx_dongle_ep2_battery_data:
+0328 6fe0c8d2 fetch 1 ,mem_usb_battery_info_data 
+0329 207a0000 rtn blank 
+032a 1fe27200 copy pdata ,loopcnt 
+032b d8c048d3 arg mem_usb_battery_info_data + 1 ,contr 
+032c d8e00002 arg 2 ,queue 
+032d da200759 arg mem_usb_txbuf2 ,rega 
+032e 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
+032f 20407bd2 call usb_tx_buf 
+0330 d8a048d2 arg mem_usb_battery_info_data ,contw 
+0331 2020031c branch p_usb_tx_buff_clr 
 
 p_rx_dcoc:
-0310 20758000 rtn wake 
-0311 20402160 call set_sync_on 
-0312 d8400027 arg 39 ,temp 
-0313 2040216f call set_freq_rx 
-0314 204021a6 call rf_rx_enable 
-0315 708a257f jam 0x7f ,0x8a25 
-0316 708a301a jam 0x1a ,0x8a30 
-0317 708a3178 jam 0x78 ,0x8a31 
-0318 708a8fb2 jam 0xb2 ,0x8a8f 
-0319 708ac200 jam 0 ,0x8ac2 
-031a 708ac300 jam 0 ,0x8ac3 
-031b d8e00006 arg 6 ,queue 
-031c 2040032d call p_rx_dcoc_avg 
-031d 2a2ffe0d isolate1 13 ,rega 
-031e 2040211d call qset_start 
-031f 2a4ffe0d isolate1 13 ,regb 
-0320 2040211e call qset_p 
-0321 d8e00005 arg 5 ,queue 
+0332 20758000 rtn wake 
+0333 20402160 call set_sync_on 
+0334 d8400027 arg 39 ,temp 
+0335 2040216f call set_freq_rx 
+0336 204021a6 call rf_rx_enable 
+0337 708a257f jam 0x7f ,0x8a25 
+0338 708a301a jam 0x1a ,0x8a30 
+0339 708a3178 jam 0x78 ,0x8a31 
+033a 708a8fb2 jam 0xb2 ,0x8a8f 
+033b 708ac200 jam 0 ,0x8ac2 
+033c 708ac300 jam 0 ,0x8ac3 
+033d d8e00006 arg 6 ,queue 
+033e 2040034f call p_rx_dcoc_avg 
+033f 2a2ffe0d isolate1 13 ,rega 
+0340 2040211d call qset_start 
+0341 2a4ffe0d isolate1 13 ,regb 
+0342 2040211e call qset_p 
+0343 d8e00005 arg 5 ,queue 
 
 p_rx_dcoc_loop2:
-0322 2040211c call qset1_p 
-0323 2040211e call qset_p 
-0324 2040032d call p_rx_dcoc_avg 
-0325 d8a08ac2 arg 0x8ac2 ,contw 
-0326 1a31fe00 rshift4 rega ,pdata 
-0327 20402117 call qsetxor 
-0328 1a51fe00 rshift4 regb ,pdata 
-0329 20402117 call qsetxor 
-032a 18e08fff increase -1 ,queue 
-032b 20210322 branch p_rx_dcoc_loop2 ,positive 
-032c 2020214f branch rx_dcoc_loop2 + 10 
+0344 2040211c call qset1_p 
+0345 2040211e call qset_p 
+0346 2040034f call p_rx_dcoc_avg 
+0347 d8a08ac2 arg 0x8ac2 ,contw 
+0348 1a31fe00 rshift4 rega ,pdata 
+0349 20402117 call qsetxor 
+034a 1a51fe00 rshift4 regb ,pdata 
+034b 20402117 call qsetxor 
+034c 18e08fff increase -1 ,queue 
+034d 20210344 branch p_rx_dcoc_loop2 ,positive 
+034e 2020214f branch rx_dcoc_loop2 + 10 
 
 p_rx_dcoc_avg:
-032d 2000003c nop 60 
-032e 58000f00 setarg mem_dcoc_buf 
-032f 67f10982 store 2 ,0x8982 
-0330 58000ff0 setarg mem_dcoc_buf_end 
-0331 67f10984 store 2 ,0x8984 
-0332 70898109 jam 0x9 ,0x8981 
-0333 70898103 jam 0x3 ,0x8981 
-0334 70898006 jam 0x6 ,0x8980 
-0335 2000003c nop 60 
-0336 da200000 arg 0 ,rega 
-0337 da400000 arg 0 ,regb 
-0338 df200010 arg 16 ,loopcnt 
-0339 d8c00f00 arg mem_dcoc_buf ,contr 
-033a 2020212d branch rx_dcoc_loop 
+034f 2000003c nop 60 
+0350 58000f00 setarg mem_dcoc_buf 
+0351 67f10982 store 2 ,0x8982 
+0352 58000ff0 setarg mem_dcoc_buf_end 
+0353 67f10984 store 2 ,0x8984 
+0354 70898109 jam 0x9 ,0x8981 
+0355 70898103 jam 0x3 ,0x8981 
+0356 70898006 jam 0x6 ,0x8980 
+0357 2000003c nop 60 
+0358 da200000 arg 0 ,rega 
+0359 da400000 arg 0 ,regb 
+035a df200010 arg 16 ,loopcnt 
+035b d8c00f00 arg mem_dcoc_buf ,contr 
+035c 2020212d branch rx_dcoc_loop 
 
 p_rfpll_aac_ghpc:
-033b 20758000 rtn wake 
-033c 20202272 branch rfpll_aac_ghpc + 1 
+035d 20758000 rtn wake 
+035e 20202272 branch rfpll_aac_ghpc + 1 
 
 p_dpll_ring_ibias_calc:
-033d 20600000 rtn 
+035f 20600000 rtn 
 
 p_sadc_calibration:
-033e 20758000 rtn wake 
-033f 708a0777 jam 0x77 ,core_gpadc_ctrl 
-0340 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
-0341 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-0342 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-0343 67f080cd store 1 ,core_sadc_clkdiv 
-0344 20000bb8 nop 3000 
-0345 20400366 call p_sadc_read 
-0346 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-0347 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-0348 df200008 arg 8 ,loopcnt 
-0349 20406f58 call sadc_cal_read + 1 
-034a 6fe0c419 fetch 1 ,mem_spi_write_addr 
-034b 67e0c433 store 1 ,mem_adc_cal_c7 
-034c 6240c419 storer regb ,1 ,mem_spi_write_addr 
-034d 20600000 rtn 
+0360 20758000 rtn wake 
+0361 708a0777 jam 0x77 ,core_gpadc_ctrl 
+0362 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
+0363 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+0364 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+0365 67f080cd store 1 ,core_sadc_clkdiv 
+0366 20000bb8 nop 3000 
+0367 20400388 call p_sadc_read 
+0368 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+0369 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+036a df200008 arg 8 ,loopcnt 
+036b 20406f58 call sadc_cal_read + 1 
+036c 6fe0c419 fetch 1 ,mem_spi_write_addr 
+036d 67e0c433 store 1 ,mem_adc_cal_c7 
+036e 6240c419 storer regb ,1 ,mem_spi_write_addr 
+036f 20600000 rtn 
 
 p_enable_adc:
-034e 2040035c call p_sadc_cal_write 
-034f 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-0350 793ffe07 set0 7 ,pdata 
-0351 67f08a09 store 1 ,core_gpadc_cfg1 
-0352 708a0777 jam 0x77 ,core_gpadc_ctrl 
-0353 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-0354 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-0355 20406f90 call sadc_channel 
-0356 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-0357 67f080cd store 1 ,core_sadc_clkdiv 
-0358 20000bb8 nop 3000 
-0359 20400366 call p_sadc_read 
-035a 7080cd00 jam 0 ,core_sadc_clkdiv 
-035b 20206fa1 branch sadc_dma 
+0370 2040037e call p_sadc_cal_write 
+0371 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+0372 793ffe07 set0 7 ,pdata 
+0373 67f08a09 store 1 ,core_gpadc_cfg1 
+0374 708a0777 jam 0x77 ,core_gpadc_ctrl 
+0375 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+0376 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+0377 20406f90 call sadc_channel 
+0378 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+0379 67f080cd store 1 ,core_sadc_clkdiv 
+037a 20000bb8 nop 3000 
+037b 20400388 call p_sadc_read 
+037c 7080cd00 jam 0 ,core_sadc_clkdiv 
+037d 20206fa1 branch sadc_dma 
 
 p_sadc_cal_write:
-035c 6ff080cc fetch 1 ,core_sadc_ctrl 
-035d 79207e01 set1 1 ,pdata 
-035e 67f080cc store 1 ,core_sadc_ctrl 
-035f 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-0360 6fe0c433 fetch 1 ,mem_adc_cal_c7 
-0361 67e0c419 store 1 ,mem_spi_write_addr 
-0362 df200008 arg 8 ,loopcnt 
-0363 20406f67 call sadc_cal_write + 4 
-0364 6240c419 storer regb ,1 ,mem_spi_write_addr 
-0365 20600000 rtn 
+037e 6ff080cc fetch 1 ,core_sadc_ctrl 
+037f 79207e01 set1 1 ,pdata 
+0380 67f080cc store 1 ,core_sadc_ctrl 
+0381 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+0382 6fe0c433 fetch 1 ,mem_adc_cal_c7 
+0383 67e0c419 store 1 ,mem_spi_write_addr 
+0384 df200008 arg 8 ,loopcnt 
+0385 20406f67 call sadc_cal_write + 4 
+0386 6240c419 storer regb ,1 ,mem_spi_write_addr 
+0387 20600000 rtn 
 
 p_sadc_read:
-0366 7080cc03 jam 0x03 ,core_sadc_ctrl 
+0388 7080cc03 jam 0x03 ,core_sadc_ctrl 
 
 p_sadc_read_wait:
-0367 6ff08129 fetch 1 ,core_perf_status 
-0368 c3028367 bbit0 saradc_done ,p_sadc_read_wait 
-0369 68590164 fetcht 2 ,core_sadc_data 
-036a 6049440a storet 2 ,mem_adc_current_value 
-036b 7080cc00 jam 0x00 ,core_sadc_ctrl 
-036c 20600000 rtn 
+0389 6ff08129 fetch 1 ,core_perf_status 
+038a c3028389 bbit0 saradc_done ,p_sadc_read_wait 
+038b 68590164 fetcht 2 ,core_sadc_data 
+038c 6049440a storet 2 ,mem_adc_current_value 
+038d 7080cc00 jam 0x00 ,core_sadc_ctrl 
+038e 20600000 rtn 
 
 p_set_lemode:
-036d 708a8211 jam 0x11 ,0x8a82 
-036e 708a8d12 jam 0x12 ,0x8a8d 
-036f 708a8e0a jam 0x0a ,0x8a8e 
-0370 6fe0c099 fetch 1 ,mem_fcomp_div 
-0371 c0080386 beq xtal_16m ,p_set_lemode_2m_16m 
-0372 58005762 setarg 0x5762 
-0373 67f10907 store 2 ,0x8907 
+038f 708a8211 jam 0x11 ,0x8a82 
+0390 708a8d12 jam 0x12 ,0x8a8d 
+0391 708a8e0a jam 0x0a ,0x8a8e 
+0392 6fe0c099 fetch 1 ,mem_fcomp_div 
+0393 c00803a8 beq xtal_16m ,p_set_lemode_2m_16m 
+0394 58005762 setarg 0x5762 
+0395 67f10907 store 2 ,0x8907 
 
 p_set_lemode_2m:
-0374 70890103 jam 3 ,0x8901 
-0375 70893003 jam 3 ,0x8930 
-0376 c6168000 rtnmark1 mark_ble_2m 
-0377 70890101 jam 1 ,0x8901 
-0378 708a8207 jam 0x07 ,0x8a82 
-0379 708a8d44 jam 0x44 ,0x8a8d 
-037a 708a8e0a jam 0x0a ,0x8a8e 
-037b 6fe0c099 fetch 1 ,mem_fcomp_div 
-037c c0080383 beq xtal_16m ,p_set_lemode_1m_16m 
-037d 58002bb1 setarg 0x2bb1 
-037e 67f10907 store 2 ,0x8907 
+0396 70890103 jam 3 ,0x8901 
+0397 70893003 jam 3 ,0x8930 
+0398 c6168000 rtnmark1 mark_ble_2m 
+0399 70890101 jam 1 ,0x8901 
+039a 708a8207 jam 0x07 ,0x8a82 
+039b 708a8d44 jam 0x44 ,0x8a8d 
+039c 708a8e0a jam 0x0a ,0x8a8e 
+039d 6fe0c099 fetch 1 ,mem_fcomp_div 
+039e c00803a5 beq xtal_16m ,p_set_lemode_1m_16m 
+039f 58002bb1 setarg 0x2bb1 
+03a0 67f10907 store 2 ,0x8907 
 
 p_set_lemode_1m:
-037f c6978000 rtnmark0 mark_ble_lr 
-0380 70893024 jam 0x24 ,0x8930 
-0381 70890105 jam 5 ,0x8901 
-0382 20600000 rtn 
+03a1 c6978000 rtnmark0 mark_ble_lr 
+03a2 70893024 jam 0x24 ,0x8930 
+03a3 70890105 jam 5 ,0x8901 
+03a4 20600000 rtn 
 
 p_set_lemode_1m_16m:
-0383 58004189 setarg 0x4189 
-0384 67f10907 store 2 ,0x8907 
-0385 2020037f branch p_set_lemode_1m 
+03a5 58004189 setarg 0x4189 
+03a6 67f10907 store 2 ,0x8907 
+03a7 202003a1 branch p_set_lemode_1m 
 
 p_set_lemode_2m_16m:
-0386 58008312 setarg 0x8312 
-0387 67f10907 store 2 ,0x8907 
-0388 20200374 branch p_set_lemode_2m 
+03a8 58008312 setarg 0x8312 
+03a9 67f10907 store 2 ,0x8907 
+03aa 20200396 branch p_set_lemode_2m 
 
 p_le_parse:
-0389 6fe0c334 fetch 1 ,mem_le_packet_llid 
-038a c1000000 rtneq llid_reserved 
-038b c001b04a beq llid_le_ll ,le_parse_ll 
-038c 202028e1 branch le_parse_l2cap 
+03ab 6fe0c334 fetch 1 ,mem_le_packet_llid 
+03ac c1000000 rtneq llid_reserved 
+03ad c001b04a beq llid_le_ll ,le_parse_ll 
+03ae 202028e1 branch le_parse_l2cap 
 
 p_le_init_adv:
-038d 793f8030 set0 mark_ble_crc_fail ,mark 
-038e 20202af6 branch le_init_adv + 1 
+03af 793f8030 set0 mark_ble_crc_fail ,mark 
+03b0 20202af6 branch le_init_adv + 1 
 
 p_g24_bind_data_parse_next:
-038f 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-0390 c0553329 beq datatype_bind ,g24_bind_first_step 
-0391 c02ab33a beq datatype_config ,g24_bind_second_step 
-0392 c0110395 beq datatype_ok ,p_g24_bind_third_step 
-0393 c07fb59b beq datatype_attemp ,g24_data_attemp 
-0394 20600000 rtn 
+03b1 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+03b2 c0553329 beq datatype_bind ,g24_bind_first_step 
+03b3 c02ab33a beq datatype_config ,g24_bind_second_step 
+03b4 c01103b7 beq datatype_ok ,p_g24_bind_third_step 
+03b5 c07fb59b beq datatype_attemp ,g24_data_attemp 
+03b6 20600000 rtn 
 
 p_g24_bind_third_step:
-0395 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
-0396 203a039b branch p_g24_bind_third_step_skip ,blank 
-0397 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
-0398 684a462c fetcht 4 ,mem_24g_transmitter_addr 
-0399 98467c00 isub temp ,null 
-039a 24628000 nrtn zero 
+03b7 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+03b8 203a03bd branch p_g24_bind_third_step_skip ,blank 
+03b9 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
+03ba 684a462c fetcht 4 ,mem_24g_transmitter_addr 
+03bb 98467c00 isub temp ,null 
+03bc 24628000 nrtn zero 
 
 p_g24_bind_third_step_skip:
-039b 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-039c c000839f beq datatype_device1 ,p_g24_bind_third_step_device1 
-039d c00103a7 beq datatype_device2 ,p_g24_bind_third_step_device2 
-039e 20600000 rtn 
+03bd 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+03be c00083c1 beq datatype_device1 ,p_g24_bind_third_step_device1 
+03bf c00103c9 beq datatype_device2 ,p_g24_bind_third_step_device2 
+03c0 20600000 rtn 
 
 p_g24_bind_third_step_device1:
-039f 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
-03a0 247a0000 nrtn blank 
-03a1 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
-03a2 c00103a4 beq 2 ,p_g24_bind_dvc1_step_success 
-03a3 20600000 rtn 
+03c1 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+03c2 247a0000 nrtn blank 
+03c3 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+03c4 c00103c6 beq 2 ,p_g24_bind_dvc1_step_success 
+03c5 20600000 rtn 
 
 p_g24_bind_dvc1_step_success:
-03a4 7045de01 jam 1 ,mem_24g_device1_bind_disable 
-03a5 2040338d call g24_binding_dvc1_living 
-03a6 2020336b branch g24_bind_dvc1_step_success + 1 
+03c6 7045de01 jam 1 ,mem_24g_device1_bind_disable 
+03c7 2040338d call g24_binding_dvc1_living 
+03c8 2020336b branch g24_bind_dvc1_step_success + 1 
 
 p_g24_bind_third_step_device2:
-03a7 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
-03a8 247a0000 nrtn blank 
-03a9 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-03aa c08003ac bne 0 ,p_g24_bind_dvc2_step_success 
-03ab 20600000 rtn 
+03c9 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
+03ca 247a0000 nrtn blank 
+03cb 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+03cc c08003ce bne 0 ,p_g24_bind_dvc2_step_success 
+03cd 20600000 rtn 
 
 p_g24_bind_dvc2_step_success:
-03ac 7045df01 jam 1 ,mem_24g_device2_bind_disable 
-03ad 20403393 call g24_binding_dvc2_living 
-03ae 20203378 branch g24_bind_dvc2_step_success + 1 
+03ce 7045df01 jam 1 ,mem_24g_device2_bind_disable 
+03cf 20403393 call g24_binding_dvc2_living 
+03d0 20203378 branch g24_bind_dvc2_step_success + 1 
 
 p_g24_mode_switch_bind_search:
-03af 6fe0c616 fetch 1 ,mem_24g_work_mode 
-03b0 c1000000 rtneq dongle_work 
-03b1 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
-03b2 247a0000 nrtn blank 
-03b3 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
-03b4 247a0000 nrtn blank 
-03b5 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
-03b6 207a0000 rtn blank 
-03b7 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
-03b8 c1800000 rtnne 0 
-03b9 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-03ba c1800000 rtnne 0 
-03bb 20203436 branch g24_mode_switch_bind_search + 9 
+03d1 6fe0c616 fetch 1 ,mem_24g_work_mode 
+03d2 c1000000 rtneq dongle_work 
+03d3 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
+03d4 247a0000 nrtn blank 
+03d5 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+03d6 247a0000 nrtn blank 
+03d7 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
+03d8 207a0000 rtn blank 
+03d9 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+03da c1800000 rtnne 0 
+03db 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+03dc c1800000 rtnne 0 
+03dd 20203436 branch g24_mode_switch_bind_search + 9 
 
 p_g24_bind_mode_auto:
-03bc 6fe0c616 fetch 1 ,mem_24g_work_mode 
-03bd c1808000 rtnne dongle_bind 
-03be 204003c0 call p_g24_bind_init 
-03bf 2020346d branch g24_bind_mode_auto + 4 
+03de 6fe0c616 fetch 1 ,mem_24g_work_mode 
+03df c1808000 rtnne dongle_bind 
+03e0 204003e2 call p_g24_bind_init 
+03e1 2020346d branch g24_bind_mode_auto + 4 
 
 p_g24_bind_init:
-03c0 6fe0c615 fetch 1 ,mem_24g_mode_init 
-03c1 c3808000 rtnbit1 dongle_bind 
-03c2 79207e01 set1 dongle_bind ,pdata 
-03c3 67e0c615 store 1 ,mem_24g_mode_init 
-03c4 58000000 setarg 0 
-03c5 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
-03c6 20203307 branch g24_bind_init + 8 
+03e2 6fe0c615 fetch 1 ,mem_24g_mode_init 
+03e3 c3808000 rtnbit1 dongle_bind 
+03e4 79207e01 set1 dongle_bind ,pdata 
+03e5 67e0c615 store 1 ,mem_24g_mode_init 
+03e6 58000000 setarg 0 
+03e7 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
+03e8 20203307 branch g24_bind_init + 8 
 
 p_dongle_usb_dispatch:
-03c7 204003d4 call p_wdt_kick 
-03c8 204003d6 call p_g24_100ms_timer_event 
-03c9 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
-03ca 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
-03cb 20407906 call usb_isr 
-03cc 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
-03cd 207a0000 rtn blank 
-03ce 7008f700 jam 0 ,mem_usb0_get_set_report 
-03cf 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
-03d0 d84003a2 arg pc_set_report_protocol ,temp 
-03d1 98467c00 isub temp ,null 
-03d2 24628000 nrtn zero 
-03d3 2020018b branch p_dongle_usb_data_received_analysis 
+03e9 204003f6 call p_wdt_kick 
+03ea 204003f8 call p_g24_100ms_timer_event 
+03eb 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
+03ec 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
+03ed 20407906 call usb_isr 
+03ee 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
+03ef 207a0000 rtn blank 
+03f0 7008f700 jam 0 ,mem_usb0_get_set_report 
+03f1 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
+03f2 d84003a2 arg pc_set_report_protocol ,temp 
+03f3 98467c00 isub temp ,null 
+03f4 24628000 nrtn zero 
+03f5 2020018b branch p_dongle_usb_data_received_analysis 
 
 p_wdt_kick:
-03d4 58000010 setarg 16 
-03d5 202070c8 branch wdt_init_config 
+03f6 58000010 setarg 16 
+03f7 202070c8 branch wdt_init_config 
 
 p_g24_100ms_timer_event:
-03d6 d8e00006 arg usb_timer_100ms ,queue 
-03d7 20407cef call timer_check 
-03d8 247a0000 nrtn blank 
-03d9 204003de call p_g24_http_over_pack_check 
-03da 204003e1 call p_g24_dongle_disconnect_state_check 
+03f8 d8e00006 arg usb_timer_100ms ,queue 
+03f9 20407cef call timer_check 
+03fa 247a0000 nrtn blank 
+03fb 20400400 call p_g24_http_over_pack_check 
+03fc 20400403 call p_g24_dongle_disconnect_state_check 
 
 p_g24_100ms_timer_init:
-03db d8e00006 arg usb_timer_100ms ,queue 
-03dc 58000028 setarg 40 
-03dd 20207ce1 branch timer_init 
+03fd d8e00006 arg usb_timer_100ms ,queue 
+03fe 58000028 setarg 40 
+03ff 20207ce1 branch timer_init 
 
 p_g24_http_over_pack_check:
-03de 6fe0c8a4 fetch 1 ,mem_usb_website_step 
-03df 207a0000 rtn blank 
-03e0 20200226 branch p_dongle_usb_tx_http_data 
+0400 6fe0c926 fetch 1 ,mem_usb_website_step 
+0401 207a0000 rtn blank 
+0402 20200226 branch p_dongle_usb_tx_http_data 
 
 p_g24_dongle_disconnect_state_check:
-03e1 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
-03e2 c4000000 rtnbit0 0 
-03e3 6fe0c616 fetch 1 ,mem_24g_work_mode 
-03e4 c1800000 rtnne dongle_work 
-03e5 6fe1480d fetch 2 ,mem_dongle_no_data_count 
-03e6 1fe0fe01 increase 1 ,pdata 
-03e7 67e1480d store 2 ,mem_dongle_no_data_count 
-03e8 d84004b0 arg 0x4b0 ,temp 
-03e9 98467c00 isub temp ,null 
-03ea 24610000 nrtn positive 
-03eb 58000000 setarg 0 
-03ec 67e1480d store 2 ,mem_dongle_no_data_count 
-03ed 6fe0c80b fetch 1 ,mem_dongle_connect_mouse_flag 
-03ee 207a0000 rtn blank 
-03ef 70480b00 jam 0 ,mem_dongle_connect_mouse_flag 
-03f0 20600000 rtn 
+0403 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
+0404 c4000000 rtnbit0 0 
+0405 6fe0c616 fetch 1 ,mem_24g_work_mode 
+0406 c1800000 rtnne dongle_work 
+0407 6fe1480d fetch 2 ,mem_dongle_no_data_count 
+0408 1fe0fe01 increase 1 ,pdata 
+0409 67e1480d store 2 ,mem_dongle_no_data_count 
+040a d84004b0 arg 0x4b0 ,temp 
+040b 98467c00 isub temp ,null 
+040c 24610000 nrtn positive 
+040d 58000000 setarg 0 
+040e 67e1480d store 2 ,mem_dongle_no_data_count 
+040f 6fe0c80b fetch 1 ,mem_dongle_connect_mouse_flag 
+0410 207a0000 rtn blank 
+0411 70480b00 jam 0 ,mem_dongle_connect_mouse_flag 
+0412 20600000 rtn 
 
 p_dongle_default_init:
-03f1 204047c3 call dongle_default_init + 1 
-03f2 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
-03f3 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
-03f4 20403281 call g24_enable_1m 
-03f5 6fe0c669 fetch 1 ,mem_dg_sys_config 
-03f6 c4000000 rtnbit0 dg_enable_new_revision 
-03f7 7045ca01 jam on ,mem_24g_disable_fec1 
-03f8 20203284 branch g24_enable_2m 
+0413 204047c3 call dongle_default_init + 1 
+0414 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
+0415 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
+0416 20403281 call g24_enable_1m 
+0417 6fe0c669 fetch 1 ,mem_dg_sys_config 
+0418 c4000000 rtnbit0 dg_enable_new_revision 
+0419 7045ca01 jam on ,mem_24g_disable_fec1 
+041a 20203284 branch g24_enable_2m 
 
 p_g24_receive_skip_end:
-03f9 6fe0c669 fetch 1 ,mem_dg_sys_config 
-03fa c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
-03fb 7837fc00 enable user3 
-03fc 20000018 nop 24 
-03fd 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
-03fe 79207e00 set1 bit_ack_24g ,pdata 
-03ff 67e0c4f8 store 1 ,mem_24g_rxbuf + 1 
-0400 204033a5 call g24_ackpayload_prep 
-0401 204031e5 call g24_transmit_prep 
-0402 20203195 branch g24_transmit 
+041b 6fe0c669 fetch 1 ,mem_dg_sys_config 
+041c c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
+041d 7837fc00 enable user3 
+041e 20000018 nop 24 
+041f 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+0420 79207e00 set1 bit_ack_24g ,pdata 
+0421 67e0c4f8 store 1 ,mem_24g_rxbuf + 1 
+0422 204033a5 call g24_ackpayload_prep 
+0423 204031e5 call g24_transmit_prep 
+0424 20203195 branch g24_transmit 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/program/patch.prog	(revision 3842)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/program/patch.prog	(working copy)
@@ -430,15 +430,15 @@
 	branch p_dongle_usb_tx_enable_ep2
 
 p_dongle_usb_hci_cmd_get_dpi:	//02 02 01 +dpi +00/01
-	jam 0x01,mem_dongle_usb_ep2_data+6	//01->get report, 00 ->in
+	jam 0x01,mem_usb_dpi_info_data+6	//01->get report, 00 ->in
 p_dongle_usb_tx_ep2_dpi_data:	
-	jam 0x40,mem_dongle_usb_ep2_data
-	jam REPORT_ID_DATA_IN,mem_dongle_usb_ep2_data+1
-	jam 0x02,mem_dongle_usb_ep2_data+2
-	jam 0x02,mem_dongle_usb_ep2_data+3
-	jam 0x01,mem_dongle_usb_ep2_data+4
+	jam 0x40,mem_usb_dpi_info_data
+	jam REPORT_ID_DATA_IN,mem_usb_dpi_info_data+1
+	jam 0x02,mem_usb_dpi_info_data+2
+	jam 0x02,mem_usb_dpi_info_data+3
+	jam 0x01,mem_usb_dpi_info_data+4
 	fetch 1,mem_usb_get_report_dpi_data
-	store 1,mem_dongle_usb_ep2_data+5
+	store 1,mem_usb_dpi_info_data+5
 	jam USB_EP2_DPI,mem_usb_ep2_data
 	branch p_dongle_usb_tx_enable_ep2
 
@@ -454,15 +454,15 @@
 	branch p_dongle_usb_tx_enable_ep2
 
 p_dongle_usb_hci_cmd_get_battery:
-	jam 0x01,mem_dongle_usb_ep2_data+6	//01->get report, 00 ->in
+	jam 0x01,mem_usb_battery_info_data+6	//01->get report, 00 ->in
 p_dongle_usb_tx_ep2_battery_data:
-	jam 0x40,mem_dongle_usb_ep2_data
-	jam REPORT_ID_DATA_IN,mem_dongle_usb_ep2_data+1
-	jam 0x02,mem_dongle_usb_ep2_data+2
-	jam 0x06,mem_dongle_usb_ep2_data+3
-	jam 0x01,mem_dongle_usb_ep2_data+4
+	jam 0x40,mem_usb_battery_info_data
+	jam REPORT_ID_DATA_IN,mem_usb_battery_info_data+1
+	jam 0x02,mem_usb_battery_info_data+2
+	jam 0x06,mem_usb_battery_info_data+3
+	jam 0x01,mem_usb_battery_info_data+4
 	fetch 1,mem_usb_get_report_battery_data
-	store 1,mem_dongle_usb_ep2_data+5
+	store 1,mem_usb_battery_info_data+5
 	jam USB_EP2_BATTERY,mem_usb_ep2_data
 	branch p_dongle_usb_tx_enable_ep2
 
@@ -795,19 +795,35 @@
 
 p_dongle_receive_dpi_data:	//rsp=len+a1+02 02 01 +dpi level
 	fetch 1,mem_24g_rxdata_temp+3
+p_dongle_receive_dpi_data_compare:
+	fetcht 1,mem_usb_get_report_dpi_data
+	isub temp,null
+	rtn zero
 	store 1,mem_usb_get_report_dpi_data
 	branch p_dongle_usb_tx_ep2_dpi_data
 
 p_dongle_receive_device_info_data:	//len+6byte mac+1byte dpi+1bye battery +2byte version
-	fetch 1,mem_24g_rxdata_length
-	increase -1,pdata
-	copy pdata,loopcnt
-	arg mem_24g_rxdata_temp+3,contr
-	arg mem_usb_get_report_sn_data,contw
-	branch memcpy
+	fetchr loopcnt,1,mem_24g_rxdata_length
+	increase -1,loopcnt
+	arg mem_24g_rxdata_temp+3,rega
+	arg mem_usb_get_report_sn_data,regb
+	call compare_loop
+	rtn zero
+	fetch 6,mem_24g_rxdata_temp+3
+	store 6,mem_usb_get_report_sn_data
+	fetch 2,mem_24g_rxdata_temp+11
+	store 2,mem_usb_get_report_mouse_version_data
+	fetch 1,mem_24g_rxdata_temp+9
+	call p_dongle_receive_dpi_data_compare
+	fetch 1,mem_24g_rxdata_temp+10
+	branch p_dongle_receive_battery_data_compare
 
 p_dongle_receive_battery_data:		//1byte battery
 	fetch 1,mem_24g_rxdata_temp+3
+p_dongle_receive_battery_data_compare:
+	fetcht 1,mem_usb_get_report_battery_data
+	isub temp,null
+	rtn zero
 	store 1,mem_usb_get_report_battery_data
 	branch p_dongle_usb_tx_ep2_battery_data
 	
@@ -1012,10 +1028,10 @@
 	call fifo_out
 	rtn blank
 	beq USB_EP2_MS,usb_tx_ms_data
-	beq USB_EP2_DPI,p_usb_tx_dongle_ep2_data
+	beq USB_EP2_DPI,p_usb_tx_dongle_ep2_dpi_data
 	beq USB_EP2_SN,p_usb_tx_dongle_ep2_data
 	beq USB_EP2_DEVICE_INFO,p_usb_tx_dongle_ep2_data
-	beq USB_EP2_BATTERY,p_usb_tx_dongle_ep2_data
+	beq USB_EP2_BATTERY,p_usb_tx_dongle_ep2_battery_data
 	beq USB_EP2_MULTIKEY,usb_tx_kb_multikey_data
 	beq USB_EP2_SYSTEMKEY,usb_tx_kb_systemkey_data
 	beq USB_EP2_MSKB_STATE,p_usb_tx_rf_state_data
@@ -1046,6 +1062,30 @@
 	arg 65,loopcnt
 	branch clear_mem
 
+p_usb_tx_dongle_ep2_dpi_data:
+	fetch 1,mem_usb_dpi_info_data
+	rtn blank
+	copy pdata,loopcnt
+	arg mem_usb_dpi_info_data+1,contr
+	arg 2,queue
+	arg mem_usb_txbuf2,rega
+	storer rega,2,core_usb_tx_saddr2
+	call usb_tx_buf
+	arg mem_usb_dpi_info_data,contw
+	branch p_usb_tx_buff_clr
+
+p_usb_tx_dongle_ep2_battery_data:
+	fetch 1,mem_usb_battery_info_data
+	rtn blank
+	copy pdata,loopcnt
+	arg mem_usb_battery_info_data+1,contr
+	arg 2,queue
+	arg mem_usb_txbuf2,rega
+	storer rega,2,core_usb_tx_saddr2
+	call usb_tx_buf
+	arg mem_usb_battery_info_data,contw
+	branch p_usb_tx_buff_clr
+
 p_rx_dcoc:
 	rtn wake
 	call set_sync_on
