Index: format/g24_protocol_stack/24g_pair.format
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/g24_protocol_stack/24g_pair.format	(revision 3896)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/g24_protocol_stack/24g_pair.format	(working copy)
@@ -45,6 +45,7 @@
 0x55 DATATYPE_CONFIG	//bind step 2
 0x22 DATATYPE_OK		//bind step 3
 0xff DATATYPE_ATTEMP	//reconn
+3 DATA_APP
 4 DATA_HTTP
 5 DATA_DPI
 6 DATA_DEVICE_INFO
Index: format/usb.format
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/usb.format	(revision 3896)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/usb.format	(working copy)
@@ -196,6 +196,7 @@
 0x25 USB_EP2_BATTERY
 0x26 USB_EP2_SN
 0x27 USB_EP2_MSKB_STATE
+0x29 USB_EP2_APP
 0x01 MAC_BOOT_MODE
 0x02 R_KEY
 0x03 LR_KEY
Index: output/eeprom.dat
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/eeprom.dat	(revision 3908)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-ba
+1e
 10
 c2
 84
@@ -23,7 +23,7 @@
 c0
 0a
 03
-98
+71
 c0
 0a
 80
@@ -42,8 +42,8 @@
 3d
 c0
 1b
-84
-1c
+83
+f5
 c0
 1c
 00
@@ -55,7 +55,7 @@
 c0
 1e
 83
-f2
+cb
 c0
 62
 80
@@ -63,11 +63,11 @@
 c0
 6d
 03
-69
+42
 c0
 6e
 03
-79
+52
 c0
 7f
 00
@@ -75,7 +75,7 @@
 c0
 7f
 81
-7a
+5c
 c0
 7e
 80
@@ -87,43 +87,43 @@
 c0
 00
 01
-9e
+80
 c0
 01
 01
-dd
+bf
 c0
 03
-02
 01
+e3
 c0
 1c
 83
-b4
+8d
 c0
 26
 83
-b8
+91
 c0
 37
-84
-24
+83
+fd
 c0
 41
 03
-ba
+93
 c0
 42
-02
-1a
+01
+fc
 c0
 44
 03
-da
+b3
 c0
 45
 03
-e7
+c0
 c1
 7f
 80
@@ -359,11 +359,11 @@
 20
 40
 03
-3b
+14
 20
 40
 03
-66
+3f
 20
 40
 00
@@ -379,7 +379,7 @@
 20
 20
 03
-68
+41
 20
 75
 80
@@ -927,7 +927,7 @@
 58
 00
 02
-2e
+10
 67
 e1
 45
@@ -1053,17 +1053,17 @@
 7c
 02
 20
-21
-01
-55
+61
+00
+00
 6f
 e0
 88
 77
-c0
+c1
 80
-81
-55
+80
+00
 ef
 e0
 80
@@ -1091,7 +1091,7 @@
 20
 3a
 01
-4d
+54
 6f
 e0
 c6
@@ -1115,11 +1115,11 @@
 c0
 03
 81
-41
-20
+48
 20
-01
-55
+60
+00
+00
 70
 48
 4f
@@ -1171,7 +1171,7 @@
 20
 20
 02
-69
+4d
 70
 48
 96
@@ -1211,7 +1211,7 @@
 20
 20
 02
-69
+4d
 70
 48
 4f
@@ -1247,7 +1247,7 @@
 20
 20
 02
-69
+4d
 70
 48
 d7
@@ -1287,7 +1287,35 @@
 20
 20
 02
-69
+4d
+70
+48
+4f
+40
+70
+48
+50
+a1
+70
+48
+51
+02
+70
+48
+52
+08
+70
+48
+53
+00
+70
+09
+0c
+29
+20
+20
+02
+4d
 6f
 e0
 c8
@@ -1295,11 +1323,11 @@
 c0
 00
 01
-4d
+54
 c0
 00
 81
-45
+4c
 20
 60
 00
@@ -1335,7 +1363,7 @@
 20
 20
 02
-69
+4d
 70
 48
 0e
@@ -1367,155 +1395,7 @@
 20
 20
 02
-69
-70
-48
-0e
-40
-70
-48
-0f
-a1
-d8
-40
-00
-01
-da
-20
-00
-00
-6f
-e0
-c6
-df
-1f
-e2
-26
-00
-70
-46
-df
-06
-58
-00
-00
-02
-9a
-20
-fe
-00
-70
-46
-de
-02
-67
-e0
-c6
-e0
-60
-4c
-06
-78
-68
-4c
-06
-78
-d8
-a0
-48
-10
-6f
-e1
-c6
-de
-e7
-e1
-80
-05
-1a
-62
-7e
-00
-e7
-e0
-80
-05
-e0
-40
-80
-05
-1a
-22
-72
-00
-1a
-42
-0c
-00
-20
-40
-7c
-da
-70
-09
-0c
-27
-20
-20
-02
-69
-69
-51
-0c
-02
-6a
-11
-0c
-04
-68
-71
-0c
-06
-18
-62
-7e
-00
-ef
-e1
-00
-03
-1f
-ec
-84
-00
-18
-51
-84
-00
-d8
-c0
-0f
-ff
-98
-c1
-72
-00
-67
-21
-07
-0c
-1f
-26
-7c
-00
-20
-42
-81
-6d
-20
-60
-00
-00
+4d
 6f
 e0
 87
@@ -1526,8 +1406,8 @@
 00
 20
 40
-01
-6d
+79
+89
 60
 48
 c6
@@ -1547,7 +1427,7 @@
 c0
 00
 81
-8e
+70
 d8
 a0
 08
@@ -1559,7 +1439,7 @@
 20
 20
 01
-85
+67
 6f
 e0
 87
@@ -1583,7 +1463,7 @@
 20
 20
 01
-9e
+80
 6f
 e0
 88
@@ -1615,7 +1495,7 @@
 c0
 00
 81
-98
+7a
 70
 08
 f7
@@ -1679,7 +1559,7 @@
 c0
 00
 01
-a4
+86
 20
 20
 23
@@ -1703,11 +1583,11 @@
 c0
 00
 01
-ac
+8e
 c0
 00
 81
-e7
+c9
 c0
 01
 79
@@ -1723,7 +1603,7 @@
 c0
 00
 81
-b4
+96
 c0
 01
 fa
@@ -1739,7 +1619,7 @@
 c0
 05
 81
-ce
+b0
 c0
 03
 f9
@@ -1795,7 +1675,7 @@
 c0
 00
 01
-c3
+a5
 c0
 00
 fa
@@ -1923,7 +1803,7 @@
 c0
 01
 01
-e4
+c6
 c0
 01
 fa
@@ -1963,7 +1843,7 @@
 c0
 04
 81
-ec
+ce
 c0
 05
 fb
@@ -1991,7 +1871,7 @@
 20
 34
 01
-f9
+db
 6f
 f1
 0c
@@ -2059,7 +1939,7 @@
 20
 40
 01
-fd
+df
 6f
 e0
 89
@@ -2111,19 +1991,19 @@
 20
 40
 02
-72
+56
 6f
 e0
 c9
 25
 24
 5a
-02
-12
+01
+f4
 20
 20
 02
-fb
+df
 70
 09
 14
@@ -2158,8 +2038,8 @@
 00
 20
 40
-02
-14
+01
+f6
 58
 00
 00
@@ -2187,15 +2067,15 @@
 c2
 82
 02
-25
+07
 c2
 82
 82
-25
+07
 c2
 83
 02
-25
+07
 20
 20
 33
@@ -2243,23 +2123,27 @@
 c2
 82
 02
-2a
+0c
+c2
+81
+81
+41
 c2
 82
 82
-4f
+33
 c2
 83
 02
-55
+39
 c2
 83
 82
-63
+47
 20
 20
 02
-34
+17
 6f
 e0
 c5
@@ -2271,11 +2155,11 @@
 20
 22
 82
-45
+29
 20
 40
 02
-45
+29
 6f
 e0
 c5
@@ -2311,19 +2195,23 @@
 c2
 82
 02
-2a
+0c
+c2
+81
+81
+41
 c2
 82
 82
-4f
+33
 c2
 83
 02
-55
+39
 c2
 83
 82
-63
+47
 20
 60
 00
@@ -2367,7 +2255,7 @@
 20
 20
 02
-69
+4d
 6f
 e0
 c5
@@ -2439,7 +2327,7 @@
 20
 40
 02
-50
+34
 6f
 e0
 c5
@@ -2447,7 +2335,7 @@
 20
 20
 02
-64
+48
 6f
 e0
 c5
@@ -2555,7 +2443,7 @@
 c0
 08
 82
-7f
+63
 20
 20
 23
@@ -2567,43 +2455,43 @@
 c0
 00
 02
-8b
+6f
 c0
 00
 82
-8d
+71
 c0
 01
 02
-9b
+7f
 c0
 01
 82
-9f
+83
 c0
 02
 02
-af
+93
 c0
 02
 82
-b6
+9a
 c0
 03
 02
-a5
+89
 c0
 03
 82
-a9
+8d
 c0
 04
 02
-ab
+8f
 c0
 04
 82
-ad
+91
 20
 60
 00
@@ -2631,11 +2519,11 @@
 c0
 00
 02
-93
+77
 c0
 00
 82
-97
+7b
 20
 60
 00
@@ -2735,7 +2623,7 @@
 20
 20
 02
-a0
+84
 70
 49
 25
@@ -2743,7 +2631,7 @@
 20
 20
 02
-a6
+8a
 70
 49
 25
@@ -2751,7 +2639,7 @@
 20
 20
 02
-a0
+84
 6f
 e0
 c9
@@ -2787,11 +2675,11 @@
 c0
 00
 82
-a0
+84
 c0
 00
 02
-bc
+a0
 20
 60
 00
@@ -2827,15 +2715,15 @@
 20
 22
 82
-ba
+9e
 20
 40
 02
-cc
+b0
 20
 40
 02
-ee
+d2
 6f
 e0
 c9
@@ -2883,7 +2771,7 @@
 24
 21
 02
-d3
+b7
 da
 40
 00
@@ -2895,7 +2783,7 @@
 20
 21
 02
-ea
+ce
 ef
 e0
 80
@@ -2907,7 +2795,7 @@
 24
 21
 02
-d9
+bd
 da
 40
 00
@@ -2919,7 +2807,7 @@
 20
 21
 02
-ec
+d0
 1f
 e6
 7c
@@ -2927,7 +2815,7 @@
 20
 22
 82
-e2
+c6
 1f
 e6
 7c
@@ -2935,7 +2823,7 @@
 20
 22
 82
-e4
+c8
 1f
 e6
 7c
@@ -2943,7 +2831,7 @@
 20
 22
 82
-e6
+ca
 1f
 e6
 7c
@@ -2951,7 +2839,7 @@
 20
 22
 82
-e8
+cc
 20
 60
 00
@@ -3039,11 +2927,11 @@
 20
 22
 82
-f9
+dd
 c2
 00
 02
-f4
+d8
 20
 60
 00
@@ -3119,19 +3007,23 @@
 c0
 12
 03
-27
+06
 c0
 13
-03
-1c
+02
+fe
 c0
 11
-83
-1c
+82
+fe
+c0
+14
+82
+fe
 c0
 12
 83
-31
+0d
 c0
 10
 fc
@@ -3142,8 +3034,8 @@
 2c
 c0
 13
-83
-12
+82
+f7
 20
 20
 23
@@ -3164,22 +3056,10 @@
 c0
 48
 0f
-d8
-e0
-00
-02
-da
-20
-07
-59
-62
-31
-0c
-0c
 20
 40
 7b
-d2
+db
 d8
 a0
 48
@@ -3187,7 +3067,7 @@
 20
 20
 03
-25
+04
 6f
 e0
 c8
@@ -3204,22 +3084,10 @@
 c0
 48
 50
-d8
-e0
-00
-02
-da
-20
-07
-59
-62
-31
-0c
-0c
 20
 40
 7b
-d2
+db
 d8
 a0
 48
@@ -3248,22 +3116,10 @@
 c0
 48
 91
-d8
-e0
-00
-02
-da
-20
-07
-59
-62
-31
-0c
-0c
 20
 40
 7b
-d2
+db
 d8
 a0
 48
@@ -3271,7 +3127,7 @@
 20
 20
 03
-25
+04
 6f
 e0
 c8
@@ -3288,22 +3144,10 @@
 c0
 48
 d2
-d8
-e0
-00
-02
-da
-20
-07
-59
-62
-31
-0c
-0c
 20
 40
 7b
-d2
+db
 d8
 a0
 48
@@ -3311,7 +3155,7 @@
 20
 20
 03
-25
+04
 20
 75
 80
@@ -3363,7 +3207,7 @@
 20
 40
 03
-58
+31
 2a
 2f
 fe
@@ -3395,7 +3239,7 @@
 20
 40
 03
-58
+31
 d8
 a0
 8a
@@ -3423,7 +3267,7 @@
 20
 21
 03
-4d
+26
 20
 20
 21
@@ -3527,7 +3371,7 @@
 20
 40
 03
-91
+6a
 70
 8a
 08
@@ -3563,7 +3407,7 @@
 20
 40
 03
-87
+60
 6f
 f0
 8a
@@ -3607,7 +3451,7 @@
 20
 40
 03
-91
+6a
 70
 80
 cd
@@ -3667,7 +3511,7 @@
 c3
 02
 83
-92
+6b
 68
 59
 01
@@ -3703,7 +3547,7 @@
 c0
 08
 03
-b1
+8a
 58
 00
 57
@@ -3747,7 +3591,7 @@
 c0
 08
 03
-ae
+87
 58
 00
 2b
@@ -3783,7 +3627,7 @@
 20
 20
 03
-aa
+83
 58
 00
 83
@@ -3795,7 +3639,7 @@
 20
 20
 03
-9f
+78
 6f
 e0
 c3
@@ -3835,7 +3679,7 @@
 c0
 11
 03
-c0
+99
 c0
 7f
 b5
@@ -3851,7 +3695,7 @@
 20
 3a
 03
-c6
+9f
 6f
 e2
 45
@@ -3875,11 +3719,11 @@
 c0
 00
 83
-ca
+a3
 c0
 01
 03
-d2
+ab
 20
 60
 00
@@ -3899,7 +3743,7 @@
 c0
 01
 03
-cf
+a8
 20
 60
 00
@@ -3931,7 +3775,7 @@
 c0
 80
 03
-d7
+b0
 20
 60
 00
@@ -4011,7 +3855,7 @@
 20
 40
 03
-eb
+c4
 20
 20
 34
@@ -4047,11 +3891,11 @@
 20
 40
 03
-ff
+d8
 20
 40
-04
-01
+03
+da
 6f
 e0
 89
@@ -4095,7 +3939,7 @@
 20
 20
 01
-8b
+6d
 58
 00
 00
@@ -4118,12 +3962,12 @@
 00
 20
 40
-04
-09
+03
+e2
 20
 40
-04
-0c
+03
+e5
 d8
 e0
 00
@@ -4147,7 +3991,7 @@
 20
 20
 02
-2a
+0c
 6f
 e0
 c6
@@ -4284,8 +4128,8 @@
 20
 31
 95
-9c
-78
+40
+94
 aa
 55
 40
@@ -4513,7 +4357,7 @@
 00
 01
 22
-db
+b7
 00
 07
 05
@@ -4531,11 +4375,11 @@
 02
 aa
 55
-dc
+b8
 00
 23
 47
-db
+b7
 05
 01
 09
@@ -4662,42 +4506,6 @@
 00
 c0
 06
-a0
-ff
-09
-02
-a1
-01
-85
-a3
-95
-3f
-75
-08
-25
-ff
-15
-00
-09
-01
-81
-02
-85
-a4
-95
-3f
-75
-08
-25
-ff
-15
-00
-09
-01
-91
-02
-c0
-06
 a1
 ff
 09
@@ -5021,10 +4829,10 @@
 aa
 aa
 55
-b7
-a1
-7e
-63
+aa
+95
+f6
+96
 ff
 ff
 ff
@@ -8188,5 +7996,197 @@
 ff
 ff
 ff
-2a
-a8
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+03
+03
Index: output/otp.dat
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/otp.dat	(revision 3908)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/otp.dat	(working copy)
@@ -11,7 +11,7 @@
 00
 aa
 55
-ba
+1e
 10
 c2
 84
@@ -32,7 +32,7 @@
 c0
 0a
 03
-98
+71
 c0
 0a
 80
@@ -51,8 +51,8 @@
 3d
 c0
 1b
-84
-1c
+83
+f5
 c0
 1c
 00
@@ -64,7 +64,7 @@
 c0
 1e
 83
-f2
+cb
 c0
 62
 80
@@ -72,11 +72,11 @@
 c0
 6d
 03
-69
+42
 c0
 6e
 03
-79
+52
 c0
 7f
 00
@@ -84,7 +84,7 @@
 c0
 7f
 81
-7a
+5c
 c0
 7e
 80
@@ -96,43 +96,43 @@
 c0
 00
 01
-9e
+80
 c0
 01
 01
-dd
+bf
 c0
 03
-02
 01
+e3
 c0
 1c
 83
-b4
+8d
 c0
 26
 83
-b8
+91
 c0
 37
-84
-24
+83
+fd
 c0
 41
 03
-ba
+93
 c0
 42
-02
-1a
+01
+fc
 c0
 44
 03
-da
+b3
 c0
 45
 03
-e7
+c0
 c1
 7f
 80
@@ -368,11 +368,11 @@
 20
 40
 03
-3b
+14
 20
 40
 03
-66
+3f
 20
 40
 00
@@ -388,7 +388,7 @@
 20
 20
 03
-68
+41
 20
 75
 80
@@ -936,7 +936,7 @@
 58
 00
 02
-2e
+10
 67
 e1
 45
@@ -1062,17 +1062,17 @@
 7c
 02
 20
-21
-01
-55
+61
+00
+00
 6f
 e0
 88
 77
-c0
+c1
 80
-81
-55
+80
+00
 ef
 e0
 80
@@ -1100,7 +1100,7 @@
 20
 3a
 01
-4d
+54
 6f
 e0
 c6
@@ -1124,11 +1124,11 @@
 c0
 03
 81
-41
-20
+48
 20
-01
-55
+60
+00
+00
 70
 48
 4f
@@ -1180,7 +1180,7 @@
 20
 20
 02
-69
+4d
 70
 48
 96
@@ -1220,7 +1220,7 @@
 20
 20
 02
-69
+4d
 70
 48
 4f
@@ -1256,7 +1256,7 @@
 20
 20
 02
-69
+4d
 70
 48
 d7
@@ -1296,7 +1296,35 @@
 20
 20
 02
-69
+4d
+70
+48
+4f
+40
+70
+48
+50
+a1
+70
+48
+51
+02
+70
+48
+52
+08
+70
+48
+53
+00
+70
+09
+0c
+29
+20
+20
+02
+4d
 6f
 e0
 c8
@@ -1304,11 +1332,11 @@
 c0
 00
 01
-4d
+54
 c0
 00
 81
-45
+4c
 20
 60
 00
@@ -1344,7 +1372,7 @@
 20
 20
 02
-69
+4d
 70
 48
 0e
@@ -1376,155 +1404,7 @@
 20
 20
 02
-69
-70
-48
-0e
-40
-70
-48
-0f
-a1
-d8
-40
-00
-01
-da
-20
-00
-00
-6f
-e0
-c6
-df
-1f
-e2
-26
-00
-70
-46
-df
-06
-58
-00
-00
-02
-9a
-20
-fe
-00
-70
-46
-de
-02
-67
-e0
-c6
-e0
-60
-4c
-06
-78
-68
-4c
-06
-78
-d8
-a0
-48
-10
-6f
-e1
-c6
-de
-e7
-e1
-80
-05
-1a
-62
-7e
-00
-e7
-e0
-80
-05
-e0
-40
-80
-05
-1a
-22
-72
-00
-1a
-42
-0c
-00
-20
-40
-7c
-da
-70
-09
-0c
-27
-20
-20
-02
-69
-69
-51
-0c
-02
-6a
-11
-0c
-04
-68
-71
-0c
-06
-18
-62
-7e
-00
-ef
-e1
-00
-03
-1f
-ec
-84
-00
-18
-51
-84
-00
-d8
-c0
-0f
-ff
-98
-c1
-72
-00
-67
-21
-07
-0c
-1f
-26
-7c
-00
-20
-42
-81
-6d
-20
-60
-00
-00
+4d
 6f
 e0
 87
@@ -1535,8 +1415,8 @@
 00
 20
 40
-01
-6d
+79
+89
 60
 48
 c6
@@ -1556,7 +1436,7 @@
 c0
 00
 81
-8e
+70
 d8
 a0
 08
@@ -1568,7 +1448,7 @@
 20
 20
 01
-85
+67
 6f
 e0
 87
@@ -1592,7 +1472,7 @@
 20
 20
 01
-9e
+80
 6f
 e0
 88
@@ -1624,7 +1504,7 @@
 c0
 00
 81
-98
+7a
 70
 08
 f7
@@ -1688,7 +1568,7 @@
 c0
 00
 01
-a4
+86
 20
 20
 23
@@ -1712,11 +1592,11 @@
 c0
 00
 01
-ac
+8e
 c0
 00
 81
-e7
+c9
 c0
 01
 79
@@ -1732,7 +1612,7 @@
 c0
 00
 81
-b4
+96
 c0
 01
 fa
@@ -1748,7 +1628,7 @@
 c0
 05
 81
-ce
+b0
 c0
 03
 f9
@@ -1804,7 +1684,7 @@
 c0
 00
 01
-c3
+a5
 c0
 00
 fa
@@ -1932,7 +1812,7 @@
 c0
 01
 01
-e4
+c6
 c0
 01
 fa
@@ -1972,7 +1852,7 @@
 c0
 04
 81
-ec
+ce
 c0
 05
 fb
@@ -2000,7 +1880,7 @@
 20
 34
 01
-f9
+db
 6f
 f1
 0c
@@ -2068,7 +1948,7 @@
 20
 40
 01
-fd
+df
 6f
 e0
 89
@@ -2120,19 +2000,19 @@
 20
 40
 02
-72
+56
 6f
 e0
 c9
 25
 24
 5a
-02
-12
+01
+f4
 20
 20
 02
-fb
+df
 70
 09
 14
@@ -2167,8 +2047,8 @@
 00
 20
 40
-02
-14
+01
+f6
 58
 00
 00
@@ -2196,15 +2076,15 @@
 c2
 82
 02
-25
+07
 c2
 82
 82
-25
+07
 c2
 83
 02
-25
+07
 20
 20
 33
@@ -2252,23 +2132,27 @@
 c2
 82
 02
-2a
+0c
+c2
+81
+81
+41
 c2
 82
 82
-4f
+33
 c2
 83
 02
-55
+39
 c2
 83
 82
-63
+47
 20
 20
 02
-34
+17
 6f
 e0
 c5
@@ -2280,11 +2164,11 @@
 20
 22
 82
-45
+29
 20
 40
 02
-45
+29
 6f
 e0
 c5
@@ -2320,19 +2204,23 @@
 c2
 82
 02
-2a
+0c
+c2
+81
+81
+41
 c2
 82
 82
-4f
+33
 c2
 83
 02
-55
+39
 c2
 83
 82
-63
+47
 20
 60
 00
@@ -2376,7 +2264,7 @@
 20
 20
 02
-69
+4d
 6f
 e0
 c5
@@ -2448,7 +2336,7 @@
 20
 40
 02
-50
+34
 6f
 e0
 c5
@@ -2456,7 +2344,7 @@
 20
 20
 02
-64
+48
 6f
 e0
 c5
@@ -2564,7 +2452,7 @@
 c0
 08
 82
-7f
+63
 20
 20
 23
@@ -2576,43 +2464,43 @@
 c0
 00
 02
-8b
+6f
 c0
 00
 82
-8d
+71
 c0
 01
 02
-9b
+7f
 c0
 01
 82
-9f
+83
 c0
 02
 02
-af
+93
 c0
 02
 82
-b6
+9a
 c0
 03
 02
-a5
+89
 c0
 03
 82
-a9
+8d
 c0
 04
 02
-ab
+8f
 c0
 04
 82
-ad
+91
 20
 60
 00
@@ -2640,11 +2528,11 @@
 c0
 00
 02
-93
+77
 c0
 00
 82
-97
+7b
 20
 60
 00
@@ -2744,7 +2632,7 @@
 20
 20
 02
-a0
+84
 70
 49
 25
@@ -2752,7 +2640,7 @@
 20
 20
 02
-a6
+8a
 70
 49
 25
@@ -2760,7 +2648,7 @@
 20
 20
 02
-a0
+84
 6f
 e0
 c9
@@ -2796,11 +2684,11 @@
 c0
 00
 82
-a0
+84
 c0
 00
 02
-bc
+a0
 20
 60
 00
@@ -2836,15 +2724,15 @@
 20
 22
 82
-ba
+9e
 20
 40
 02
-cc
+b0
 20
 40
 02
-ee
+d2
 6f
 e0
 c9
@@ -2892,7 +2780,7 @@
 24
 21
 02
-d3
+b7
 da
 40
 00
@@ -2904,7 +2792,7 @@
 20
 21
 02
-ea
+ce
 ef
 e0
 80
@@ -2916,7 +2804,7 @@
 24
 21
 02
-d9
+bd
 da
 40
 00
@@ -2928,7 +2816,7 @@
 20
 21
 02
-ec
+d0
 1f
 e6
 7c
@@ -2936,7 +2824,7 @@
 20
 22
 82
-e2
+c6
 1f
 e6
 7c
@@ -2944,7 +2832,7 @@
 20
 22
 82
-e4
+c8
 1f
 e6
 7c
@@ -2952,7 +2840,7 @@
 20
 22
 82
-e6
+ca
 1f
 e6
 7c
@@ -2960,7 +2848,7 @@
 20
 22
 82
-e8
+cc
 20
 60
 00
@@ -3048,11 +2936,11 @@
 20
 22
 82
-f9
+dd
 c2
 00
 02
-f4
+d8
 20
 60
 00
@@ -3128,19 +3016,23 @@
 c0
 12
 03
-27
+06
 c0
 13
-03
-1c
+02
+fe
 c0
 11
-83
-1c
+82
+fe
+c0
+14
+82
+fe
 c0
 12
 83
-31
+0d
 c0
 10
 fc
@@ -3151,8 +3043,8 @@
 2c
 c0
 13
-83
-12
+82
+f7
 20
 20
 23
@@ -3173,22 +3065,10 @@
 c0
 48
 0f
-d8
-e0
-00
-02
-da
-20
-07
-59
-62
-31
-0c
-0c
 20
 40
 7b
-d2
+db
 d8
 a0
 48
@@ -3196,7 +3076,7 @@
 20
 20
 03
-25
+04
 6f
 e0
 c8
@@ -3213,22 +3093,10 @@
 c0
 48
 50
-d8
-e0
-00
-02
-da
-20
-07
-59
-62
-31
-0c
-0c
 20
 40
 7b
-d2
+db
 d8
 a0
 48
@@ -3257,22 +3125,10 @@
 c0
 48
 91
-d8
-e0
-00
-02
-da
-20
-07
-59
-62
-31
-0c
-0c
 20
 40
 7b
-d2
+db
 d8
 a0
 48
@@ -3280,7 +3136,7 @@
 20
 20
 03
-25
+04
 6f
 e0
 c8
@@ -3297,22 +3153,10 @@
 c0
 48
 d2
-d8
-e0
-00
-02
-da
-20
-07
-59
-62
-31
-0c
-0c
 20
 40
 7b
-d2
+db
 d8
 a0
 48
@@ -3320,7 +3164,7 @@
 20
 20
 03
-25
+04
 20
 75
 80
@@ -3372,7 +3216,7 @@
 20
 40
 03
-58
+31
 2a
 2f
 fe
@@ -3404,7 +3248,7 @@
 20
 40
 03
-58
+31
 d8
 a0
 8a
@@ -3432,7 +3276,7 @@
 20
 21
 03
-4d
+26
 20
 20
 21
@@ -3536,7 +3380,7 @@
 20
 40
 03
-91
+6a
 70
 8a
 08
@@ -3572,7 +3416,7 @@
 20
 40
 03
-87
+60
 6f
 f0
 8a
@@ -3616,7 +3460,7 @@
 20
 40
 03
-91
+6a
 70
 80
 cd
@@ -3676,7 +3520,7 @@
 c3
 02
 83
-92
+6b
 68
 59
 01
@@ -3712,7 +3556,7 @@
 c0
 08
 03
-b1
+8a
 58
 00
 57
@@ -3756,7 +3600,7 @@
 c0
 08
 03
-ae
+87
 58
 00
 2b
@@ -3792,7 +3636,7 @@
 20
 20
 03
-aa
+83
 58
 00
 83
@@ -3804,7 +3648,7 @@
 20
 20
 03
-9f
+78
 6f
 e0
 c3
@@ -3844,7 +3688,7 @@
 c0
 11
 03
-c0
+99
 c0
 7f
 b5
@@ -3860,7 +3704,7 @@
 20
 3a
 03
-c6
+9f
 6f
 e2
 45
@@ -3884,11 +3728,11 @@
 c0
 00
 83
-ca
+a3
 c0
 01
 03
-d2
+ab
 20
 60
 00
@@ -3908,7 +3752,7 @@
 c0
 01
 03
-cf
+a8
 20
 60
 00
@@ -3940,7 +3784,7 @@
 c0
 80
 03
-d7
+b0
 20
 60
 00
@@ -4020,7 +3864,7 @@
 20
 40
 03
-eb
+c4
 20
 20
 34
@@ -4056,11 +3900,11 @@
 20
 40
 03
-ff
+d8
 20
 40
-04
-01
+03
+da
 6f
 e0
 89
@@ -4104,7 +3948,7 @@
 20
 20
 01
-8b
+6d
 58
 00
 00
@@ -4127,12 +3971,12 @@
 00
 20
 40
-04
-09
+03
+e2
 20
 40
-04
-0c
+03
+e5
 d8
 e0
 00
@@ -4156,7 +4000,7 @@
 20
 20
 02
-2a
+0c
 6f
 e0
 c6
@@ -4293,8 +4137,8 @@
 20
 31
 95
-9c
-78
+40
+94
 aa
 55
 40
@@ -4522,7 +4366,7 @@
 00
 01
 22
-db
+b7
 00
 07
 05
@@ -4540,11 +4384,11 @@
 02
 aa
 55
-dc
+b8
 00
 23
 47
-db
+b7
 05
 01
 09
@@ -4671,42 +4515,6 @@
 00
 c0
 06
-a0
-ff
-09
-02
-a1
-01
-85
-a3
-95
-3f
-75
-08
-25
-ff
-15
-00
-09
-01
-81
-02
-85
-a4
-95
-3f
-75
-08
-25
-ff
-15
-00
-09
-01
-91
-02
-c0
-06
 a1
 ff
 09
@@ -5030,8 +4838,8 @@
 aa
 aa
 55
-b7
-a1
-7e
-63
+aa
+95
+f6
+96
 f0
Index: output/program.lis
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/program.lis	(revision 3908)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/program.lis	(working copy)
@@ -4,34 +4,34 @@
 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 c00a0398 beq patch02_4 ,p_set_lemode 
+0004 c00a0371 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 c01b841c beq patch06_7 ,p_dongle_default_init 
+0009 c01b83f5 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 c01e83f2 beq patch07_5 ,p_dongle_usb_dispatch 
+000c c01e83cb beq patch07_5 ,p_dongle_usb_dispatch 
 000d c0628095 beq patch18_5 ,p_otp_read_data 
-000e c06d0369 beq patch1b_2 ,p_sadc_calibration 
-000f c06e0379 beq patch1b_4 ,p_enable_adc 
+000e c06d0342 beq patch1b_2 ,p_sadc_calibration 
+000f c06e0352 beq patch1b_4 ,p_enable_adc 
 0010 c07f00e2 beq patch1f_6 ,p_usb_init 
-0011 c07f817a beq patch1f_7 ,p_usb_rx 
+0011 c07f815c beq patch1f_7 ,p_usb_rx 
 0012 c07e80de beq patch1f_5 ,p_usb_isr 
 0013 2020235a branch assert 
 
 pf_patch_ext:
-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 c01c83b4 beq patch27_1 ,p_le_parse 
-0018 c02683b8 beq patch29_5 ,p_le_init_adv 
-0019 c0378424 beq patch2d_7 ,p_g24_receive_skip_end 
-001a c04103ba beq patch30_2 ,p_g24_bind_data_parse_next 
-001b c042021a beq patch30_4 ,p_g24_receive_packet_start1 
-001c c04403da beq patch31_0 ,p_g24_mode_switch_bind_search 
-001d c04503e7 beq patch31_2 ,p_g24_bind_mode_auto 
+0014 c0000180 beq patch20_0 ,p_usb_class_type 
+0015 c00101bf beq patch20_2 ,p_usb0_request_get_descriptor 
+0016 c00301e3 beq patch20_6 ,p_usb_tx 
+0017 c01c838d beq patch27_1 ,p_le_parse 
+0018 c0268391 beq patch29_5 ,p_le_init_adv 
+0019 c03783fd beq patch2d_7 ,p_g24_receive_skip_end 
+001a c0410393 beq patch30_2 ,p_g24_bind_data_parse_next 
+001b c04201fc beq patch30_4 ,p_g24_receive_packet_start1 
+001c c04403b3 beq patch31_0 ,p_g24_mode_switch_bind_search 
+001d c04503c0 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 2040033b call p_rx_dcoc 
-0059 20400366 call p_rfpll_aac_ghpc 
+0058 20400314 call p_rx_dcoc 
+0059 2040033f 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 20200368 branch p_dpll_ring_ibias_calc 
+005d 20200341 branch p_dpll_ring_ibias_calc 
 
 p_set_xtal_cap:
 005e 20758000 rtn wake 
@@ -280,7 +280,7 @@
 00e3 20407932 call usb_init_param 
 00e4 58004723 setarg mem_usb_ep2_config 
 00e5 67e107a9 store 2 ,mem_hidreportdesc_m 
-00e6 5800022e setarg p_dongle_g24_mouse 
+00e6 58000210 setarg p_dongle_g24_mouse 
 00e7 67e145e4 store 2 ,mem_cb_24g_data_device1 
 
 p_usb_init_restart:
@@ -318,9 +318,9 @@
 p_usb_rx_data_out:
 0104 6fe0870c fetch 1 ,mem_usb_read_len 
 0105 1fe67c02 sub pdata ,2 ,null 
-0106 20210155 branch p_dongle_hci_event_invalid_packet ,positive 
+0106 20610000 rtn positive 
 0107 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-0108 c0808155 bne 0x01 ,p_dongle_hci_event_invalid_packet 
+0108 c1808000 rtnne 0x01 
 0109 efe08006 ifetch 1 ,contr 
 010a 67e0c6df store 1 ,mem_dongle_usb_opcode 
 010b e8408006 ifetcht 1 ,contr 
@@ -329,14 +329,14 @@
 
 p_dongle_usb_hci_cmd_control:
 010e 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
-010f 203a014d branch p_dongle_usb_device_disconnect ,blank 
+010f 203a0154 branch p_dongle_usb_device_disconnect ,blank 
 0110 6fe0c6df fetch 1 ,mem_dongle_usb_opcode 
 0111 c0008117 beq hci_cmd_get_device_info ,p_dongle_usb_hci_cmd_get_deivce_info 
 0112 c0018124 beq hci_cmd_get_dpi ,p_dongle_usb_hci_cmd_get_dpi 
 0113 c002812e beq hci_cmd_get_sn ,p_dongle_usb_hci_cmd_get_sn 
 0114 c0030137 beq hci_cmd_set_battery ,p_dongle_usb_hci_cmd_get_battery 
-0115 c0038141 beq hci_cmd_get_connect_state ,p_dongle_usb_hci_cmd_get_connect_state 
-0116 20200155 branch p_dongle_hci_event_invalid_packet 
+0115 c0038148 beq hci_cmd_get_connect_state ,p_dongle_usb_hci_cmd_get_connect_state 
+0116 20600000 rtn 
 
 p_dongle_usb_hci_cmd_get_deivce_info:
 0117 70484f40 jam 0x40 ,mem_dongle_usb_ep2_data 
@@ -351,7 +351,7 @@
 0120 6fe14809 fetch 2 ,mem_dongle_version 
 0121 67e1485c store 2 ,mem_dongle_usb_ep2_data + 13 
 0122 70090c23 jam usb_ep2_device_info ,mem_usb_ep2_data 
-0123 20200269 branch p_dongle_usb_tx_enable_ep2 
+0123 2020024d branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_dpi:
 0124 70489601 jam 0x01 ,mem_usb_dpi_info_data + 6 
@@ -365,7 +365,7 @@
 012a 6fe0c805 fetch 1 ,mem_usb_get_report_dpi_data 
 012b 67e0c895 store 1 ,mem_usb_dpi_info_data + 5 
 012c 70090c24 jam usb_ep2_dpi ,mem_usb_ep2_data 
-012d 20200269 branch p_dongle_usb_tx_enable_ep2 
+012d 2020024d branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_sn:
 012e 70484f40 jam 0x40 ,mem_dongle_usb_ep2_data 
@@ -376,7 +376,7 @@
 0133 6fe347ff fetch 6 ,mem_usb_get_report_sn_data 
 0134 67e34854 store 6 ,mem_dongle_usb_ep2_data + 5 
 0135 70090c26 jam usb_ep2_sn ,mem_usb_ep2_data 
-0136 20200269 branch p_dongle_usb_tx_enable_ep2 
+0136 2020024d branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_battery:
 0137 7048d701 jam 0x01 ,mem_usb_battery_info_data + 6 
@@ -390,976 +390,933 @@
 013d 6fe0c806 fetch 1 ,mem_usb_get_report_battery_data 
 013e 67e0c8d6 store 1 ,mem_usb_battery_info_data + 5 
 013f 70090c25 jam usb_ep2_battery ,mem_usb_ep2_data 
-0140 20200269 branch p_dongle_usb_tx_enable_ep2 
+0140 2020024d branch p_dongle_usb_tx_enable_ep2 
+
+p_dongle_usb_tx_ep2_app_data:
+0141 70484f40 jam 0x40 ,mem_dongle_usb_ep2_data 
+0142 704850a1 jam report_id_data_in ,mem_dongle_usb_ep2_data + 1 
+0143 70485102 jam 0x02 ,mem_dongle_usb_ep2_data + 2 
+0144 70485208 jam 0x08 ,mem_dongle_usb_ep2_data + 3 
+0145 70485300 jam 0x00 ,mem_dongle_usb_ep2_data + 4 
+0146 70090c29 jam usb_ep2_app ,mem_usb_ep2_data 
+0147 2020024d branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_connect_state:
-0141 6fe0c80b fetch 1 ,mem_dongle_connect_mouse_flag 
-0142 c000014d beq 0 ,p_dongle_usb_device_disconnect 
-0143 c0008145 beq 1 ,p_dongle_usb_device_connect 
-0144 20600000 rtn 
+0148 6fe0c80b fetch 1 ,mem_dongle_connect_mouse_flag 
+0149 c0000154 beq 0 ,p_dongle_usb_device_disconnect 
+014a c000814c beq 1 ,p_dongle_usb_device_connect 
+014b 20600000 rtn 
 
 p_dongle_usb_device_connect:
-0145 70480e40 jam 0x40 ,mem_usb_rf_state_data 
-0146 70480fa1 jam report_id_data_in ,mem_usb_rf_state_data + 1 
-0147 70481002 jam 0x02 ,mem_usb_rf_state_data + 2 
-0148 70481105 jam 0x05 ,mem_usb_rf_state_data + 3 
-0149 70481201 jam 0x01 ,mem_usb_rf_state_data + 4 
-014a 70481301 jam 0x01 ,mem_usb_rf_state_data + 5 
-014b 70090c27 jam usb_ep2_mskb_state ,mem_usb_ep2_data 
-014c 20200269 branch p_dongle_usb_tx_enable_ep2 
+014c 70480e40 jam 0x40 ,mem_usb_rf_state_data 
+014d 70480fa1 jam report_id_data_in ,mem_usb_rf_state_data + 1 
+014e 70481002 jam 0x02 ,mem_usb_rf_state_data + 2 
+014f 70481105 jam 0x05 ,mem_usb_rf_state_data + 3 
+0150 70481201 jam 0x01 ,mem_usb_rf_state_data + 4 
+0151 70481301 jam 0x01 ,mem_usb_rf_state_data + 5 
+0152 70090c27 jam usb_ep2_mskb_state ,mem_usb_ep2_data 
+0153 2020024d branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_device_disconnect:
-014d 70480e40 jam 0x40 ,mem_usb_rf_state_data 
-014e 70480fa1 jam report_id_data_in ,mem_usb_rf_state_data + 1 
-014f 70481002 jam 0x02 ,mem_usb_rf_state_data + 2 
-0150 70481105 jam 0x05 ,mem_usb_rf_state_data + 3 
-0151 70481201 jam 0x01 ,mem_usb_rf_state_data + 4 
-0152 70481300 jam 0x00 ,mem_usb_rf_state_data + 5 
-0153 70090c27 jam usb_ep2_mskb_state ,mem_usb_ep2_data 
-0154 20200269 branch p_dongle_usb_tx_enable_ep2 
-
-p_dongle_hci_event_invalid_packet:
-0155 70480e40 jam 0x40 ,mem_usb_rf_state_data 
-0156 70480fa1 jam 0xA1 ,mem_usb_rf_state_data + 1 
-0157 d8400001 arg 1 ,temp 
-
-p_dongle_hci_event_ack_packet:
-0158 da200000 arg 0 ,rega 
-0159 6fe0c6df fetch 1 ,mem_dongle_usb_opcode 
-015a 1fe22600 copy pdata ,regc 
-
-p_dongle_hci_event_packet:
-015b 7046df06 jam hci_event_cmd_res ,mem_dongle_usb_opcode 
-015c 58000002 setarg 2 
-015d 9a20fe00 iadd rega ,pdata 
-015e 7046de02 jam 0x02 ,mem_dongle_usb_header 
-015f 67e0c6e0 store 1 ,mem_dongle_usb_len 
-0160 604c0678 storet 8 ,mem_temp 
-0161 684c0678 fetcht 8 ,mem_temp 
-0162 d8a04810 arg mem_usb_rf_state_data + 2 ,contw 
-0163 6fe1c6de fetch 3 ,mem_dongle_usb_header 
-0164 e7e18005 istore 3 ,contw 
-0165 1a627e00 copy regc ,pdata 
-0166 e7e08005 istore 1 ,contw 
-0167 e0408005 istoret 1 ,contw 
-0168 1a227200 copy rega ,loopcnt 
-0169 1a420c00 copy regb ,contr 
-016a 20407cda call memcpy 
-016b 70090c27 jam usb_ep2_mskb_state ,mem_usb_ep2_data 
-016c 20200269 branch p_dongle_usb_tx_enable_ep2 
-
-p_usb_rx_len:
-016d 69510c02 fetchr contus ,2 ,core_usb_rx_saddr 
-016e 6a110c04 fetchr contue ,2 ,core_usb_rx_eaddr 
-016f 68710c06 fetchr contu ,2 ,core_usb_rxptr 
-0170 18627e00 copy contu ,pdata 
-0171 efe10003 ifetch 2 ,contu 
-0172 1fec8400 rshift8 pdata ,temp 
-0173 18518400 rshift4 temp ,temp 
-0174 d8c00fff arg 0xfff ,contr 
-0175 98c17200 iand contr ,loopcnt 
-0176 6721070c storer loopcnt ,2 ,mem_usb_read_len 
-0177 1f267c00 sub loopcnt ,0 ,null 
-0178 2042816d call p_usb_rx_len ,zero 
-0179 20600000 rtn 
+0154 70480e40 jam 0x40 ,mem_usb_rf_state_data 
+0155 70480fa1 jam report_id_data_in ,mem_usb_rf_state_data + 1 
+0156 70481002 jam 0x02 ,mem_usb_rf_state_data + 2 
+0157 70481105 jam 0x05 ,mem_usb_rf_state_data + 3 
+0158 70481201 jam 0x01 ,mem_usb_rf_state_data + 4 
+0159 70481300 jam 0x00 ,mem_usb_rf_state_data + 5 
+015a 70090c27 jam usb_ep2_mskb_state ,mem_usb_ep2_data 
+015b 2020024d branch p_dongle_usb_tx_enable_ep2 
 
 p_usb_rx:
-017a 6fe08709 fetch 1 ,mem_usb_status 
-017b c4028000 rtnbit0 usb_status_rxready 
-017c 2040016d call p_usb_rx_len 
-017d 6048c697 storet 1 ,mem_usb_rx_endpoint 
-017e 2841fe0d compare 13 ,temp ,0xff 
-017f 2020f999 branch usb_rx_ep13 ,true 
-0180 6fe0c696 fetch 1 ,mem_setreport_count 
-0181 c000818e beq 1 ,p_setreport_next_page_data 
-0182 d8a0086d arg mem_usb_setup ,contw 
-0183 20407994 call usb_rx_read 
-0184 20200185 branch p_usb_rx_next 
+015c 6fe08709 fetch 1 ,mem_usb_status 
+015d c4028000 rtnbit0 usb_status_rxready 
+015e 20407989 call usb_rx_len 
+015f 6048c697 storet 1 ,mem_usb_rx_endpoint 
+0160 2841fe0d compare 13 ,temp ,0xff 
+0161 2020f999 branch usb_rx_ep13 ,true 
+0162 6fe0c696 fetch 1 ,mem_setreport_count 
+0163 c0008170 beq 1 ,p_setreport_next_page_data 
+0164 d8a0086d arg mem_usb_setup ,contw 
+0165 20407994 call usb_rx_read 
+0166 20200167 branch p_usb_rx_next 
 
 p_usb_rx_next:
-0185 6fe0870c fetch 1 ,mem_usb_read_len 
-0186 c0007986 beq 0x00 ,usb_rx_no_data 
-0187 c000f9b6 beq 0x01 ,usb_out_one_byte 
-0188 1fe67c07 sub pdata ,7 ,null 
-0189 20610000 rtn positive 
-018a 2020019e branch p_usb_class_type 
+0167 6fe0870c fetch 1 ,mem_usb_read_len 
+0168 c0007986 beq 0x00 ,usb_rx_no_data 
+0169 c000f9b6 beq 0x01 ,usb_out_one_byte 
+016a 1fe67c07 sub pdata ,7 ,null 
+016b 20610000 rtn positive 
+016c 20200180 branch p_usb_class_type 
 
 p_dongle_usb_data_received_analysis:
-018b 6fe08875 fetch 1 ,mem_usb0_set_report_data 
-018c c0510104 beq report_id_data_out ,p_usb_rx_data_out 
-018d 20600000 rtn 
+016d 6fe08875 fetch 1 ,mem_usb0_set_report_data 
+016e c0510104 beq report_id_data_out ,p_usb_rx_data_out 
+016f 20600000 rtn 
 
 p_setreport_next_page_data:
-018e d8a00875 arg mem_usb0_set_report_data ,contw 
-018f 20407994 call usb_rx_read 
-0190 70469600 jam 0 ,mem_setreport_count 
-0191 6fe0870c fetch 1 ,mem_usb_read_len 
-0192 c0008198 beq 0x01 ,p_usb_out_one_byte 
-0193 7008f701 jam 1 ,mem_usb0_get_set_report 
-0194 6fe1086f fetch 2 ,mem_usb_setup_bvalue 
-0195 67e108f5 store 2 ,mem_usb_setup_bvalue_temp 
-0196 708c1b03 jam 0x03 ,core_usb_clear_nak 
-0197 20600000 rtn 
+0170 d8a00875 arg mem_usb0_set_report_data ,contw 
+0171 20407994 call usb_rx_read 
+0172 70469600 jam 0 ,mem_setreport_count 
+0173 6fe0870c fetch 1 ,mem_usb_read_len 
+0174 c000817a beq 0x01 ,p_usb_out_one_byte 
+0175 7008f701 jam 1 ,mem_usb0_get_set_report 
+0176 6fe1086f fetch 2 ,mem_usb_setup_bvalue 
+0177 67e108f5 store 2 ,mem_usb_setup_bvalue_temp 
+0178 708c1b03 jam 0x03 ,core_usb_clear_nak 
+0179 20600000 rtn 
 
 p_usb_out_one_byte:
-0198 6fe0886d fetch 1 ,mem_usb_setup 
-0199 c3838000 rtnbit1 7 
-019a 6fe08875 fetch 1 ,mem_usb0_set_report_data 
-019b 20407b6a call usb_get_led_status 
-019c 708c1b01 jam 0x1 ,core_usb_clear_nak 
-019d 20600000 rtn 
+017a 6fe0886d fetch 1 ,mem_usb_setup 
+017b c3838000 rtnbit1 7 
+017c 6fe08875 fetch 1 ,mem_usb0_set_report_data 
+017d 20407b6a call usb_get_led_status 
+017e 708c1b01 jam 0x1 ,core_usb_clear_nak 
+017f 20600000 rtn 
 
 p_usb_class_type:
-019e 793f8023 set0 mark_isstr ,mark 
-019f 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
-01a0 1fe17e80 and_into 0x80 ,pdata 
-01a1 c04079ba beq in_device ,usb_in_device 
-01a2 c00001a4 beq out_device ,p_usb_out_device 
-01a3 2020235a branch assert 
+0180 793f8023 set0 mark_isstr ,mark 
+0181 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+0182 1fe17e80 and_into 0x80 ,pdata 
+0183 c04079ba beq in_device ,usb_in_device 
+0184 c0000186 beq out_device ,p_usb_out_device 
+0185 2020235a branch assert 
 
 p_usb_out_device:
-01a4 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
-01a5 1ff1fe00 rshift4 pdata ,pdata 
-01a6 1fe37e00 rshift pdata ,pdata 
-01a7 1fe17e03 and_into 0x03 ,pdata 
-01a8 c00001ac beq standard_req ,p_usb_out_standard_req 
-01a9 c00081e7 beq class_req ,p_usb_out_class_req 
-01aa c00179e3 beq manufacturer_req ,usb_out_manufacturer_req 
-01ab 2020235a branch assert 
+0186 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+0187 1ff1fe00 rshift4 pdata ,pdata 
+0188 1fe37e00 rshift pdata ,pdata 
+0189 1fe17e03 and_into 0x03 ,pdata 
+018a c000018e beq standard_req ,p_usb_out_standard_req 
+018b c00081c9 beq class_req ,p_usb_out_class_req 
+018c c00179e3 beq manufacturer_req ,usb_out_manufacturer_req 
+018d 2020235a branch assert 
 
 p_usb_out_standard_req:
-01ac 6fe0886e fetch 1 ,mem_usb_setup_brequest 
-01ad c00081b4 beq clear_feature ,p_usb0_request_clear_feature 
-01ae c001fadb beq set_feature ,usb0_request_set_feature 
-01af c002fb06 beq set_address ,usb0_request_set_address 
-01b0 c004fb1f beq set_configuration ,usb0_request_set_configuration 
-01b1 c00581ce beq set_interface ,p_usb0_request_set_interface 
-01b2 c003f9e4 beq set_descriptor ,usb0_force_stall 
-01b3 202079e4 branch usb0_force_stall 
+018e 6fe0886e fetch 1 ,mem_usb_setup_brequest 
+018f c0008196 beq clear_feature ,p_usb0_request_clear_feature 
+0190 c001fadb beq set_feature ,usb0_request_set_feature 
+0191 c002fb06 beq set_address ,usb0_request_set_address 
+0192 c004fb1f beq set_configuration ,usb0_request_set_configuration 
+0193 c00581b0 beq set_interface ,p_usb0_request_set_interface 
+0194 c003f9e4 beq set_descriptor ,usb0_force_stall 
+0195 202079e4 branch usb0_force_stall 
 
 p_usb0_request_clear_feature:
-01b4 6fe0886b fetch 1 ,mem_usb0_state 
-01b5 c08279e4 bne dev_configured ,usb0_force_stall 
-01b6 6fe08873 fetch 1 ,mem_usb_setup_blength 
+0196 6fe0886b fetch 1 ,mem_usb0_state 
+0197 c08279e4 bne dev_configured ,usb0_force_stall 
+0198 6fe08873 fetch 1 ,mem_usb_setup_blength 
+0199 c08079e4 bne 0 ,usb0_force_stall 
+019a 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
+019b c08079e4 bne 0 ,usb0_force_stall 
+019c 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+019d c08079e4 bne 0 ,usb0_force_stall 
+019e 6fe08872 fetch 1 ,mem_usb_setup_windex + 1 
+019f c08079e4 bne 0 ,usb0_force_stall 
+01a0 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+01a1 c00001a5 beq out_device ,p_usb0_request_clear_feature_out_device 
+01a2 c000fac8 beq out_interface ,usb0_request_clear_feature_out_interface 
+01a3 c0017ac9 beq out_endpoint ,usb0_request_clear_feature_out_endpoint 
+01a4 202079e4 branch usb0_force_stall 
+
+p_usb0_request_clear_feature_out_device:
+01a5 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+01a6 c080f9e4 bne device_remote_wakeup ,usb0_force_stall 
+01a7 6ff08c00 fetch 1 ,core_usb_config 
+01a8 793ffe07 set0 7 ,pdata 
+01a9 67f08c00 store 1 ,core_usb_config 
+01aa 70090100 jam 0 ,mem_usb_remote_wakeup 
+01ab 70090201 jam 1 ,mem_usb_clear_remote_wakeup 
+01ac 6fe08903 fetch 1 ,mem_sdsystem_wakeup_flag 
+01ad 203a79e9 branch usb0_reply_zerolen ,blank 
+01ae 70090300 jam 0 ,mem_sdsystem_wakeup_flag 
+01af 202079e9 branch usb0_reply_zerolen 
+
+p_usb0_request_set_interface:
+01b0 6fe0886b fetch 1 ,mem_usb0_state 
+01b1 c08279e4 bne dev_configured ,usb0_force_stall 
+01b2 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+01b3 c080f9e4 bne out_interface ,usb0_force_stall 
+01b4 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+01b5 c08079e4 bne 0 ,usb0_force_stall 
+01b6 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
 01b7 c08079e4 bne 0 ,usb0_force_stall 
-01b8 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
+01b8 6fe08873 fetch 1 ,mem_usb_setup_blength 
 01b9 c08079e4 bne 0 ,usb0_force_stall 
-01ba 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+01ba 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
 01bb c08079e4 bne 0 ,usb0_force_stall 
 01bc 6fe08872 fetch 1 ,mem_usb_setup_windex + 1 
 01bd c08079e4 bne 0 ,usb0_force_stall 
-01be 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
-01bf c00001c3 beq out_device ,p_usb0_request_clear_feature_out_device 
-01c0 c000fac8 beq out_interface ,usb0_request_clear_feature_out_interface 
-01c1 c0017ac9 beq out_endpoint ,usb0_request_clear_feature_out_endpoint 
-01c2 202079e4 branch usb0_force_stall 
-
-p_usb0_request_clear_feature_out_device:
-01c3 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
-01c4 c080f9e4 bne device_remote_wakeup ,usb0_force_stall 
-01c5 6ff08c00 fetch 1 ,core_usb_config 
-01c6 793ffe07 set0 7 ,pdata 
-01c7 67f08c00 store 1 ,core_usb_config 
-01c8 70090100 jam 0 ,mem_usb_remote_wakeup 
-01c9 70090201 jam 1 ,mem_usb_clear_remote_wakeup 
-01ca 6fe08903 fetch 1 ,mem_sdsystem_wakeup_flag 
-01cb 203a79e9 branch usb0_reply_zerolen ,blank 
-01cc 70090300 jam 0 ,mem_sdsystem_wakeup_flag 
-01cd 202079e9 branch usb0_reply_zerolen 
-
-p_usb0_request_set_interface:
-01ce 6fe0886b fetch 1 ,mem_usb0_state 
-01cf c08279e4 bne dev_configured ,usb0_force_stall 
-01d0 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
-01d1 c080f9e4 bne out_interface ,usb0_force_stall 
-01d2 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
-01d3 c08079e4 bne 0 ,usb0_force_stall 
-01d4 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
-01d5 c08079e4 bne 0 ,usb0_force_stall 
-01d6 6fe08873 fetch 1 ,mem_usb_setup_blength 
-01d7 c08079e4 bne 0 ,usb0_force_stall 
-01d8 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
-01d9 c08079e4 bne 0 ,usb0_force_stall 
-01da 6fe08872 fetch 1 ,mem_usb_setup_windex + 1 
-01db c08079e4 bne 0 ,usb0_force_stall 
-01dc 202079e9 branch usb0_reply_zerolen 
+01be 202079e9 branch usb0_reply_zerolen 
 
 p_usb0_request_get_descriptor:
-01dd 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
-01de c000fa14 beq dsc_device ,dsc_device_info 
-01df c00101e4 beq dsc_config ,p_dsc_config_info 
-01e0 c001fa30 beq dsc_string ,dsc_string_info 
-01e1 c010fa09 beq dsc_hid ,dsc_hid_info 
-01e2 c0117a3e beq dsc_hid_report ,dsc_hid_report_info 
-01e3 202079e4 branch usb0_force_stall 
+01bf 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+01c0 c000fa14 beq dsc_device ,dsc_device_info 
+01c1 c00101c6 beq dsc_config ,p_dsc_config_info 
+01c2 c001fa30 beq dsc_string ,dsc_string_info 
+01c3 c010fa09 beq dsc_hid ,dsc_hid_info 
+01c4 c0117a3e beq dsc_hid_report ,dsc_hid_report_info 
+01c5 202079e4 branch usb0_force_stall 
 
 p_dsc_config_info:
-01e4 58004698 setarg mem_config_new 
-01e5 6848c698 fetcht 1 ,mem_config_new 
-01e6 20207a18 branch dsc_info_set_data_len 
+01c6 58004698 setarg mem_config_new 
+01c7 6848c698 fetcht 1 ,mem_config_new 
+01c8 20207a18 branch dsc_info_set_data_len 
 
 p_usb_out_class_req:
-01e7 6fe0886e fetch 1 ,mem_usb_setup_brequest 
-01e8 c0057b4b beq set_idle ,usb_set_idle 
-01e9 c00481ec beq set_report ,p_usb_set_report 
-01ea c005fb7c beq set_protocol ,usb_set_protocol_req 
-01eb 202079e4 branch usb0_force_stall 
+01c9 6fe0886e fetch 1 ,mem_usb_setup_brequest 
+01ca c0057b4b beq set_idle ,usb_set_idle 
+01cb c00481ce beq set_report ,p_usb_set_report 
+01cc c005fb7c beq set_protocol ,usb_set_protocol_req 
+01cd 202079e4 branch usb0_force_stall 
 
 p_usb_set_report:
-01ec 708c1b02 jam 0x2 ,core_usb_clear_nak 
-01ed 20003a98 nop 15000 
-01ee d8a00875 arg mem_usb0_set_report_data ,contw 
-01ef 204000fd call p_usb_rx_data 
-01f0 203401f9 branch p_usb_set_report_delay ,user 
-01f1 6ff10c22 fetch 2 ,core_usb_status 
-01f2 67f10c22 store 2 ,core_usb_status 
-01f3 7008f701 jam 1 ,mem_usb0_get_set_report 
-01f4 20407b6e call usb_set_report_resume_judge 
-01f5 6fe1086f fetch 2 ,mem_usb_setup_bvalue 
-01f6 67e108f5 store 2 ,mem_usb_setup_bvalue_temp 
-01f7 708c1b03 jam 0x3 ,core_usb_clear_nak 
-01f8 20207b65 branch usb_set_report_next 
+01ce 708c1b02 jam 0x2 ,core_usb_clear_nak 
+01cf 20003a98 nop 15000 
+01d0 d8a00875 arg mem_usb0_set_report_data ,contw 
+01d1 204000fd call p_usb_rx_data 
+01d2 203401db branch p_usb_set_report_delay ,user 
+01d3 6ff10c22 fetch 2 ,core_usb_status 
+01d4 67f10c22 store 2 ,core_usb_status 
+01d5 7008f701 jam 1 ,mem_usb0_get_set_report 
+01d6 20407b6e call usb_set_report_resume_judge 
+01d7 6fe1086f fetch 2 ,mem_usb_setup_bvalue 
+01d8 67e108f5 store 2 ,mem_usb_setup_bvalue_temp 
+01d9 708c1b03 jam 0x3 ,core_usb_clear_nak 
+01da 20207b65 branch usb_set_report_next 
 
 p_usb_set_report_delay:
-01f9 6fe0c696 fetch 1 ,mem_setreport_count 
-01fa 1fe0fe01 pincrease 1 
-01fb 67e0c696 store 1 ,mem_setreport_count 
-01fc 20600000 rtn 
+01db 6fe0c696 fetch 1 ,mem_setreport_count 
+01dc 1fe0fe01 pincrease 1 
+01dd 67e0c696 store 1 ,mem_setreport_count 
+01de 20600000 rtn 
 
 p_usb_tx_ep2_queue_buff_check:
-01fd da204912 arg mem_usb_ep2_fifo ,rega 
-01fe 20407da3 call fifo_is_empty 
-01ff 207a0000 rtn blank 
-0200 20204837 branch dongle_usb_tx_enable_ep2 
+01df da204912 arg mem_usb_ep2_fifo ,rega 
+01e0 20407da3 call fifo_is_empty 
+01e1 207a0000 rtn blank 
+01e2 20204837 branch dongle_usb_tx_enable_ep2 
 
 p_usb_tx:
-0201 204001fd call p_usb_tx_ep2_queue_buff_check 
-0202 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0203 207a0000 rtn blank 
-0204 6ff08c25 fetch 1 ,core_usb_txbusy 
-0205 1fe17e0f and_into 0x0f ,pdata 
-0206 243a7c30 nbranch usb_inwake_state_tx_dispose ,blank 
-0207 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
-0208 203a7c06 branch usb_tx_fifo_release ,blank 
-0209 6fe08900 fetch 1 ,mem_usb_state 
-020a c001fc40 beq usb_sleep ,usb_windows_wakeup 
-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 20400272 call p_usb_tx_data_ep1 
-020f 6fe0c925 fetch 1 ,mem_usb_website_step 
-0210 245a0212 ncall p_usb_ms_data_clear_key_value ,blank 
-0211 202002fb branch p_usb_tx_data_ep2 
+01e3 204001df call p_usb_tx_ep2_queue_buff_check 
+01e4 6fe0890d fetch 1 ,mem_usb_tx_enable 
+01e5 207a0000 rtn blank 
+01e6 6ff08c25 fetch 1 ,core_usb_txbusy 
+01e7 1fe17e0f and_into 0x0f ,pdata 
+01e8 243a7c30 nbranch usb_inwake_state_tx_dispose ,blank 
+01e9 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+01ea 203a7c06 branch usb_tx_fifo_release ,blank 
+01eb 6fe08900 fetch 1 ,mem_usb_state 
+01ec c001fc40 beq usb_sleep ,usb_windows_wakeup 
+01ed c0817c06 bne usb_connected ,usb_tx_fifo_release 
+01ee 6fe08902 fetch 1 ,mem_usb_clear_remote_wakeup 
+01ef 243a7c06 nbranch usb_tx_fifo_release ,blank 
+01f0 20400256 call p_usb_tx_data_ep1 
+01f1 6fe0c925 fetch 1 ,mem_usb_website_step 
+01f2 245a01f4 ncall p_usb_ms_data_clear_key_value ,blank 
+01f3 202002df branch p_usb_tx_data_ep2 
 
 p_usb_ms_data_clear_key_value:
-0212 70091400 jam 0 ,mem_usb_mouse_data + 1 
-0213 20600000 rtn 
+01f4 70091400 jam 0 ,mem_usb_mouse_data + 1 
+01f5 20600000 rtn 
 
 p_dongle_usb_connect_mouse_check:
-0214 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
-0215 c4000000 rtnbit0 0 
-0216 6fe0c80b fetch 1 ,mem_dongle_connect_mouse_flag 
-0217 247a0000 nrtn blank 
-0218 70480b01 jam 1 ,mem_dongle_connect_mouse_flag 
-0219 20600000 rtn 
+01f6 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
+01f7 c4000000 rtnbit0 0 
+01f8 6fe0c80b fetch 1 ,mem_dongle_connect_mouse_flag 
+01f9 247a0000 nrtn blank 
+01fa 70480b01 jam 1 ,mem_dongle_connect_mouse_flag 
+01fb 20600000 rtn 
 
 p_g24_receive_packet_start1:
-021a 20400214 call p_dongle_usb_connect_mouse_check 
-021b 58000000 setarg 0 
-021c 67e1480c store 2 ,mem_dongle_no_data_count 
-021d 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-021e c000b3c4 beq datatype_device1 ,g24_data_device1 
-021f c00133d3 beq datatype_device2 ,g24_data_device2 
-0220 c07fb3c2 beq datatype_attemp ,g24_data_receive_attemp 
-0221 c2820225 bbit1 data_http ,p_g24_data_receive_device_http_dpi 
-0222 c2828225 bbit1 data_dpi ,p_g24_data_receive_device_http_dpi 
-0223 c2830225 bbit1 data_device_info ,p_g24_data_receive_device_http_dpi 
-0224 202033be branch g24_rx_interrupt_clear 
+01fc 204001f6 call p_dongle_usb_connect_mouse_check 
+01fd 58000000 setarg 0 
+01fe 67e1480c store 2 ,mem_dongle_no_data_count 
+01ff 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+0200 c000b3c4 beq datatype_device1 ,g24_data_device1 
+0201 c00133d3 beq datatype_device2 ,g24_data_device2 
+0202 c07fb3c2 beq datatype_attemp ,g24_data_receive_attemp 
+0203 c2820207 bbit1 data_http ,p_g24_data_receive_device_http_dpi 
+0204 c2828207 bbit1 data_dpi ,p_g24_data_receive_device_http_dpi 
+0205 c2830207 bbit1 data_device_info ,p_g24_data_receive_device_http_dpi 
+0206 202033be branch g24_rx_interrupt_clear 
 
 p_g24_data_receive_device_http_dpi:
-0225 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-0226 1fe17e0f and pdata ,0x0f ,pdata 
-0227 c000b3c4 beq datatype_device1 ,g24_data_device1 
-0228 c00133d3 beq datatype_device2 ,g24_data_device2 
-0229 202033be branch g24_rx_interrupt_clear 
+0207 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+0208 1fe17e0f and pdata ,0x0f ,pdata 
+0209 c000b3c4 beq datatype_device1 ,g24_data_device1 
+020a c00133d3 beq datatype_device2 ,g24_data_device2 
+020b 202033be branch g24_rx_interrupt_clear 
 
 p_dongle_usb_tx_http_data:
-022a 70090b11 jam usb_ep1_kb_http ,mem_usb_ep1_data 
-022b d8a00923 arg mem_usb_kb_data ,contw 
-022c 20407c9a call memset0_8 
-022d 20204848 branch dongle_usb_tx_ep1_enable 
+020c 70090b11 jam usb_ep1_kb_http ,mem_usb_ep1_data 
+020d d8a00923 arg mem_usb_kb_data ,contw 
+020e 20407c9a call memset0_8 
+020f 20204848 branch dongle_usb_tx_ep1_enable 
 
 p_dongle_g24_mouse:
-022e 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-022f c282022a bbit1 data_http ,p_dongle_usb_tx_http_data 
-0230 c282824f bbit1 data_dpi ,p_dongle_receive_dpi_data 
-0231 c2830255 bbit1 data_device_info ,p_dongle_receive_device_info_data 
-0232 c2838263 bbit1 data_battery ,p_dongle_receive_battery_data 
-0233 20200234 branch p_dongle_g24_mouse_next 
+0210 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+0211 c282020c bbit1 data_http ,p_dongle_usb_tx_http_data 
+0212 c2818141 bbit1 data_app ,p_dongle_usb_tx_ep2_app_data 
+0213 c2828233 bbit1 data_dpi ,p_dongle_receive_dpi_data 
+0214 c2830239 bbit1 data_device_info ,p_dongle_receive_device_info_data 
+0215 c2838247 bbit1 data_battery ,p_dongle_receive_battery_data 
+0216 20200217 branch p_dongle_g24_mouse_next 
 
 p_dongle_g24_mouse_next:
-0234 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0235 1fe67c09 sub pdata ,0x09 ,null 
-0236 20228245 branch p_dongle_g24_mouse_data ,zero 
-0237 20400245 call p_dongle_g24_mouse_data 
-0238 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0239 1fe0fff8 add pdata ,-8 ,pdata 
-023a 67e0c57d store 1 ,mem_24g_rxdata_length 
-023b 1fe27200 copy pdata ,loopcnt 
-023c d8a045ea arg mem_24g_rxdata_temp + 2 ,contw 
-023d d8c045f2 arg mem_24g_rxdata_temp + 10 ,contr 
-023e 20407cda call memcpy 
-023f 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-0240 c282022a bbit1 data_http ,p_dongle_usb_tx_http_data 
-0241 c282824f bbit1 data_dpi ,p_dongle_receive_dpi_data 
-0242 c2830255 bbit1 data_device_info ,p_dongle_receive_device_info_data 
-0243 c2838263 bbit1 data_battery ,p_dongle_receive_battery_data 
-0244 20600000 rtn 
+0217 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0218 1fe67c09 sub pdata ,0x09 ,null 
+0219 20228229 branch p_dongle_g24_mouse_data ,zero 
+021a 20400229 call p_dongle_g24_mouse_data 
+021b 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+021c 1fe0fff8 add pdata ,-8 ,pdata 
+021d 67e0c57d store 1 ,mem_24g_rxdata_length 
+021e 1fe27200 copy pdata ,loopcnt 
+021f d8a045ea arg mem_24g_rxdata_temp + 2 ,contw 
+0220 d8c045f2 arg mem_24g_rxdata_temp + 10 ,contr 
+0221 20407cda call memcpy 
+0222 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+0223 c282020c bbit1 data_http ,p_dongle_usb_tx_http_data 
+0224 c2818141 bbit1 data_app ,p_dongle_usb_tx_ep2_app_data 
+0225 c2828233 bbit1 data_dpi ,p_dongle_receive_dpi_data 
+0226 c2830239 bbit1 data_device_info ,p_dongle_receive_device_info_data 
+0227 c2838247 bbit1 data_battery ,p_dongle_receive_battery_data 
+0228 20600000 rtn 
 
 p_dongle_g24_mouse_data:
-0245 58000001 setarg ms_report_id 
-0246 67e08913 store 1 ,mem_usb_mouse_data 
-0247 6fe3c5eb fetch 7 ,mem_24g_rxdata_temp + 3 
-0248 e7e38005 istore 7 ,contw 
-0249 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-024a 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
-024b 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-024c 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
-024d 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
-024e 20200269 branch p_dongle_usb_tx_enable_ep2 
+0229 58000001 setarg ms_report_id 
+022a 67e08913 store 1 ,mem_usb_mouse_data 
+022b 6fe3c5eb fetch 7 ,mem_24g_rxdata_temp + 3 
+022c e7e38005 istore 7 ,contw 
+022d 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+022e 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+022f 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+0230 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+0231 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
+0232 2020024d branch p_dongle_usb_tx_enable_ep2 
+
+p_dongle_receive_app_data:
 
 p_dongle_receive_dpi_data:
-024f 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+0233 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
 
 p_dongle_receive_dpi_data_compare:
-0250 6848c805 fetcht 1 ,mem_usb_get_report_dpi_data 
-0251 98467c00 isub temp ,null 
-0252 20628000 rtn zero 
-0253 67e0c805 store 1 ,mem_usb_get_report_dpi_data 
-0254 20200125 branch p_dongle_usb_tx_ep2_dpi_data 
+0234 6848c805 fetcht 1 ,mem_usb_get_report_dpi_data 
+0235 98467c00 isub temp ,null 
+0236 20628000 rtn zero 
+0237 67e0c805 store 1 ,mem_usb_get_report_dpi_data 
+0238 20200125 branch p_dongle_usb_tx_ep2_dpi_data 
 
 p_dongle_receive_device_info_data:
-0255 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-0256 1f20f3ff increase -1 ,loopcnt 
-0257 da2045eb arg mem_24g_rxdata_temp + 3 ,rega 
-0258 da4047ff arg mem_usb_get_report_sn_data ,regb 
-0259 20407d64 call compare_loop 
-025a 20628000 rtn zero 
-025b 6fe345eb fetch 6 ,mem_24g_rxdata_temp + 3 
-025c 67e347ff store 6 ,mem_usb_get_report_sn_data 
-025d 6fe145f3 fetch 2 ,mem_24g_rxdata_temp + 11 
-025e 67e14807 store 2 ,mem_usb_get_report_mouse_version_data 
-025f 6fe0c5f1 fetch 1 ,mem_24g_rxdata_temp + 9 
-0260 20400250 call p_dongle_receive_dpi_data_compare 
-0261 6fe0c5f2 fetch 1 ,mem_24g_rxdata_temp + 10 
-0262 20200264 branch p_dongle_receive_battery_data_compare 
+0239 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+023a 1f20f3ff increase -1 ,loopcnt 
+023b da2045eb arg mem_24g_rxdata_temp + 3 ,rega 
+023c da4047ff arg mem_usb_get_report_sn_data ,regb 
+023d 20407d64 call compare_loop 
+023e 20628000 rtn zero 
+023f 6fe345eb fetch 6 ,mem_24g_rxdata_temp + 3 
+0240 67e347ff store 6 ,mem_usb_get_report_sn_data 
+0241 6fe145f3 fetch 2 ,mem_24g_rxdata_temp + 11 
+0242 67e14807 store 2 ,mem_usb_get_report_mouse_version_data 
+0243 6fe0c5f1 fetch 1 ,mem_24g_rxdata_temp + 9 
+0244 20400234 call p_dongle_receive_dpi_data_compare 
+0245 6fe0c5f2 fetch 1 ,mem_24g_rxdata_temp + 10 
+0246 20200248 branch p_dongle_receive_battery_data_compare 
 
 p_dongle_receive_battery_data:
-0263 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+0247 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
 
 p_dongle_receive_battery_data_compare:
-0264 6848c806 fetcht 1 ,mem_usb_get_report_battery_data 
-0265 98467c00 isub temp ,null 
-0266 20628000 rtn zero 
-0267 67e0c806 store 1 ,mem_usb_get_report_battery_data 
-0268 20200138 branch p_dongle_usb_tx_ep2_battery_data 
+0248 6848c806 fetcht 1 ,mem_usb_get_report_battery_data 
+0249 98467c00 isub temp ,null 
+024a 20628000 rtn zero 
+024b 67e0c806 store 1 ,mem_usb_get_report_battery_data 
+024c 20200138 branch p_dongle_usb_tx_ep2_battery_data 
 
 p_dongle_usb_tx_enable_ep2:
-0269 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
-026a 207a0000 rtn blank 
-026b da204912 arg mem_usb_ep2_fifo ,rega 
-026c 20407da5 call fifo_is_full 
-026d 247a0000 nrtn blank 
-026e 6fe0890c fetch 1 ,mem_usb_ep2_data 
-026f 67e0866f store 1 ,mem_fifo_temp 
-0270 da204912 arg mem_usb_ep2_fifo ,rega 
-0271 20207d8b branch fifo_in 
+024d 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+024e 207a0000 rtn blank 
+024f da204912 arg mem_usb_ep2_fifo ,rega 
+0250 20407da5 call fifo_is_full 
+0251 247a0000 nrtn blank 
+0252 6fe0890c fetch 1 ,mem_usb_ep2_data 
+0253 67e0866f store 1 ,mem_fifo_temp 
+0254 da204912 arg mem_usb_ep2_fifo ,rega 
+0255 20207d8b branch fifo_in 
 
 p_usb_tx_data_ep1:
-0272 6ff08c25 fetch 1 ,core_usb_txbusy 
-0273 1fe17e0f and_into 0x0f ,pdata 
-0274 247a0000 nrtn blank 
-0275 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0276 c4008000 rtnbit0 1 
-0277 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0278 793ffe01 set0 1 ,pdata 
-0279 67e0890d store 1 ,mem_usb_tx_enable 
-027a 6fe0890b fetch 1 ,mem_usb_ep1_data 
-027b 207a0000 rtn blank 
-027c c0087c28 beq usb_ep1_kb ,usb_tx_kb_normal_data 
-027d c008827f beq usb_ep1_kb_http ,p_usb_tx_http_data_set 
-027e 2020235a branch assert 
+0256 6ff08c25 fetch 1 ,core_usb_txbusy 
+0257 1fe17e0f and_into 0x0f ,pdata 
+0258 247a0000 nrtn blank 
+0259 6fe0890d fetch 1 ,mem_usb_tx_enable 
+025a c4008000 rtnbit0 1 
+025b 6fe0890d fetch 1 ,mem_usb_tx_enable 
+025c 793ffe01 set0 1 ,pdata 
+025d 67e0890d store 1 ,mem_usb_tx_enable 
+025e 6fe0890b fetch 1 ,mem_usb_ep1_data 
+025f 207a0000 rtn blank 
+0260 c0087c28 beq usb_ep1_kb ,usb_tx_kb_normal_data 
+0261 c0088263 beq usb_ep1_kb_http ,p_usb_tx_http_data_set 
+0262 2020235a branch assert 
 
 p_usb_tx_http_data_set:
-027f 6fe0c925 fetch 1 ,mem_usb_website_step 
-0280 c000028b beq key_release ,p_usb_webstie_key_release_data 
-0281 c000828d beq website_win ,p_usb_website_winr_data 
-0282 c001029b beq website_r_space_release ,p_usb_website_r_space_release_data 
-0283 c001829f beq website_win_release ,p_usb_website_win_release_data 
-0284 c00202af beq website_wait ,p_usb_website_wait_tx_data 
-0285 c00282b6 beq website_data ,p_usb_website_data 
-0286 c00302a5 beq website_enter_1 ,p_usb_website_enter_data1 
-0287 c00382a9 beq website_enter_release_1 ,p_usb_website_enter_release_data1 
-0288 c00402ab beq website_enter_2 ,p_usb_website_enter_data2 
-0289 c00482ad beq website_enter_release_2 ,p_usb_website_enter_release_data2 
-028a 20600000 rtn 
+0263 6fe0c925 fetch 1 ,mem_usb_website_step 
+0264 c000026f beq key_release ,p_usb_webstie_key_release_data 
+0265 c0008271 beq website_win ,p_usb_website_winr_data 
+0266 c001027f beq website_r_space_release ,p_usb_website_r_space_release_data 
+0267 c0018283 beq website_win_release ,p_usb_website_win_release_data 
+0268 c0020293 beq website_wait ,p_usb_website_wait_tx_data 
+0269 c002829a beq website_data ,p_usb_website_data 
+026a c0030289 beq website_enter_1 ,p_usb_website_enter_data1 
+026b c003828d beq website_enter_release_1 ,p_usb_website_enter_release_data1 
+026c c004028f beq website_enter_2 ,p_usb_website_enter_data2 
+026d c0048291 beq website_enter_release_2 ,p_usb_website_enter_release_data2 
+026e 20600000 rtn 
 
 p_usb_webstie_key_release_data:
-028b 70492501 jam website_win ,mem_usb_website_step 
-028c 20204832 branch dongle_g24_ms_blank_data_tx_ep2 
+026f 70492501 jam website_win ,mem_usb_website_step 
+0270 20204832 branch dongle_g24_ms_blank_data_tx_ep2 
 
 p_usb_website_winr_data:
-028d dfe0492b arg mem_usb_website_info + 1 ,pdata 
-028e 67e14928 store 2 ,mem_usb_website_ptr 
-028f 6fe088fa fetch 1 ,mem_usb_tx_mac_enable 
-0290 c0000293 beq 0 ,p_usb_tx_winos_winr_data 
-0291 c0008297 beq 1 ,p_usb_tx_macos_winr_data 
-0292 20600000 rtn 
+0271 dfe0492b arg mem_usb_website_info + 1 ,pdata 
+0272 67e14928 store 2 ,mem_usb_website_ptr 
+0273 6fe088fa fetch 1 ,mem_usb_tx_mac_enable 
+0274 c0000277 beq 0 ,p_usb_tx_winos_winr_data 
+0275 c000827b beq 1 ,p_usb_tx_macos_winr_data 
+0276 20600000 rtn 
 
 p_usb_tx_winos_winr_data:
-0293 70492502 jam website_r_space_release ,mem_usb_website_step 
-0294 6fe1c91b fetch 3 ,mem_usb_win_cmd 
-0295 67e18923 store 3 ,mem_usb_kb_data 
-0296 20207c28 branch usb_tx_kb_normal_data 
+0277 70492502 jam website_r_space_release ,mem_usb_website_step 
+0278 6fe1c91b fetch 3 ,mem_usb_win_cmd 
+0279 67e18923 store 3 ,mem_usb_kb_data 
+027a 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_tx_macos_winr_data:
-0297 70492502 jam website_r_space_release ,mem_usb_website_step 
-0298 6fe1c91e fetch 3 ,mem_usb_mac_cmd 
-0299 67e18923 store 3 ,mem_usb_kb_data 
-029a 20207c28 branch usb_tx_kb_normal_data 
+027b 70492502 jam website_r_space_release ,mem_usb_website_step 
+027c 6fe1c91e fetch 3 ,mem_usb_mac_cmd 
+027d 67e18923 store 3 ,mem_usb_kb_data 
+027e 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_r_space_release_data:
-029b 70492503 jam website_win_release ,mem_usb_website_step 
-029c 6fe0c91b fetch 1 ,mem_usb_win_cmd 
-029d 67e08923 store 1 ,mem_usb_kb_data 
-029e 20207c28 branch usb_tx_kb_normal_data 
+027f 70492503 jam website_win_release ,mem_usb_website_step 
+0280 6fe0c91b fetch 1 ,mem_usb_win_cmd 
+0281 67e08923 store 1 ,mem_usb_kb_data 
+0282 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_win_release_data:
-029f 70492504 jam website_wait ,mem_usb_website_step 
+0283 70492504 jam website_wait ,mem_usb_website_step 
 
 p_usb_webstie_release_data:
-02a0 d8a00923 arg mem_usb_kb_data ,contw 
-02a1 df200008 arg 8 ,loopcnt 
-02a2 20407ca3 call memset0 
-02a3 70492700 jam 0 ,mem_usb_website_release_flag 
-02a4 20207c28 branch usb_tx_kb_normal_data 
+0284 d8a00923 arg mem_usb_kb_data ,contw 
+0285 df200008 arg 8 ,loopcnt 
+0286 20407ca3 call memset0 
+0287 70492700 jam 0 ,mem_usb_website_release_flag 
+0288 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_enter_data1:
-02a5 70492507 jam website_enter_release_1 ,mem_usb_website_step 
+0289 70492507 jam website_enter_release_1 ,mem_usb_website_step 
 
 p_usb_webstie_enter_data:
-02a6 6fe1c921 fetch 3 ,mem_usb_kb_enter 
-02a7 67e18923 store 3 ,mem_usb_kb_data 
-02a8 20207c28 branch usb_tx_kb_normal_data 
+028a 6fe1c921 fetch 3 ,mem_usb_kb_enter 
+028b 67e18923 store 3 ,mem_usb_kb_data 
+028c 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_enter_release_data1:
-02a9 70492508 jam website_enter_2 ,mem_usb_website_step 
-02aa 202002a0 branch p_usb_webstie_release_data 
+028d 70492508 jam website_enter_2 ,mem_usb_website_step 
+028e 20200284 branch p_usb_webstie_release_data 
 
 p_usb_website_enter_data2:
-02ab 70492509 jam website_enter_release_2 ,mem_usb_website_step 
-02ac 202002a6 branch p_usb_webstie_enter_data 
+028f 70492509 jam website_enter_release_2 ,mem_usb_website_step 
+0290 2020028a branch p_usb_webstie_enter_data 
 
 p_usb_website_enter_release_data2:
-02ad 70492500 jam website_done ,mem_usb_website_step 
-02ae 202002a0 branch p_usb_webstie_release_data 
+0291 70492500 jam website_done ,mem_usb_website_step 
+0292 20200284 branch p_usb_webstie_release_data 
 
 p_usb_website_wait_tx_data:
-02af 6fe0c924 fetch 1 ,mem_usb_website_wait_count 
-02b0 1fe0fe01 increase 1 ,pdata 
-02b1 67e0c924 store 1 ,mem_usb_website_wait_count 
-02b2 c1878000 rtnne website_wait_count 
-02b3 70492400 jam 0 ,mem_usb_website_wait_count 
-02b4 70492505 jam website_data ,mem_usb_website_step 
-02b5 20600000 rtn 
+0293 6fe0c924 fetch 1 ,mem_usb_website_wait_count 
+0294 1fe0fe01 increase 1 ,pdata 
+0295 67e0c924 store 1 ,mem_usb_website_wait_count 
+0296 c1878000 rtnne website_wait_count 
+0297 70492400 jam 0 ,mem_usb_website_wait_count 
+0298 70492505 jam website_data ,mem_usb_website_step 
+0299 20600000 rtn 
 
 p_usb_website_data:
-02b6 6fe0c927 fetch 1 ,mem_usb_website_release_flag 
-02b7 c00082a0 beq 1 ,p_usb_webstie_release_data 
-02b8 c00002bc beq 0 ,p_usb_website_info_data 
-02b9 20600000 rtn 
+029a 6fe0c927 fetch 1 ,mem_usb_website_release_flag 
+029b c0008284 beq 1 ,p_usb_webstie_release_data 
+029c c00002a0 beq 0 ,p_usb_website_info_data 
+029d 20600000 rtn 
 
 p_usb_webstie_info_data_done:
-02ba 70492506 jam website_enter_1 ,mem_usb_website_step 
-02bb 20600000 rtn 
+029e 70492506 jam website_enter_1 ,mem_usb_website_step 
+029f 20600000 rtn 
 
 p_usb_website_info_data:
-02bc d840492b arg mem_usb_website_info + 1 ,temp 
-02bd 6fe0c92a fetch 1 ,mem_usb_website_info 
-02be 98408400 iadd temp ,temp 
-02bf 6fe14928 fetch 2 ,mem_usb_website_ptr 
-02c0 98467c00 isub temp ,null 
-02c1 202282ba branch p_usb_webstie_info_data_done ,zero 
-02c2 204002cc call p_usb_tx_website_acii2hidkey 
-02c3 204002ee call p_usb_tx_website_need_shift 
-02c4 6fe0c926 fetch 1 ,mem_usb_website_shift_flag 
-02c5 67e08923 store 1 ,mem_usb_kb_data 
-02c6 62208925 storer rega ,1 ,mem_usb_kb_data + 2 
-02c7 6fe14928 fetch 2 ,mem_usb_website_ptr 
-02c8 1fe0fe01 increase 1 ,pdata 
-02c9 67e14928 store 2 ,mem_usb_website_ptr 
-02ca 70492701 jam 1 ,mem_usb_website_release_flag 
-02cb 20207c28 branch usb_tx_kb_normal_data 
+02a0 d840492b arg mem_usb_website_info + 1 ,temp 
+02a1 6fe0c92a fetch 1 ,mem_usb_website_info 
+02a2 98408400 iadd temp ,temp 
+02a3 6fe14928 fetch 2 ,mem_usb_website_ptr 
+02a4 98467c00 isub temp ,null 
+02a5 2022829e branch p_usb_webstie_info_data_done ,zero 
+02a6 204002b0 call p_usb_tx_website_acii2hidkey 
+02a7 204002d2 call p_usb_tx_website_need_shift 
+02a8 6fe0c926 fetch 1 ,mem_usb_website_shift_flag 
+02a9 67e08923 store 1 ,mem_usb_kb_data 
+02aa 62208925 storer rega ,1 ,mem_usb_kb_data + 2 
+02ab 6fe14928 fetch 2 ,mem_usb_website_ptr 
+02ac 1fe0fe01 increase 1 ,pdata 
+02ad 67e14928 store 2 ,mem_usb_website_ptr 
+02ae 70492701 jam 1 ,mem_usb_website_release_flag 
+02af 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_tx_website_acii2hidkey:
-02cc 68494928 fetcht 2 ,mem_usb_website_ptr 
-02cd efe08002 ifetch 1 ,temp 
-02ce 1fe67c7a sub pdata ,0x7a ,null 
-02cf 242102d3 nbranch p_usb_tx_website_acii2hidkey1 ,positive 
-02d0 da400061 arg 0x61 ,regb 
-02d1 9a462200 isub regb ,rega 
-02d2 202102ea branch p_usb_tx_website_acii2keycode_a2z ,positive 
+02b0 68494928 fetcht 2 ,mem_usb_website_ptr 
+02b1 efe08002 ifetch 1 ,temp 
+02b2 1fe67c7a sub pdata ,0x7a ,null 
+02b3 242102b7 nbranch p_usb_tx_website_acii2hidkey1 ,positive 
+02b4 da400061 arg 0x61 ,regb 
+02b5 9a462200 isub regb ,rega 
+02b6 202102ce branch p_usb_tx_website_acii2keycode_a2z ,positive 
 
 p_usb_tx_website_acii2hidkey1:
-02d3 efe08002 ifetch 1 ,temp 
-02d4 1fe67c39 sub pdata ,0x39 ,null 
-02d5 242102d9 nbranch p_usb_tx_website_acii2keycode_sign ,positive 
-02d6 da400030 arg 0x30 ,regb 
-02d7 9a462200 isub regb ,rega 
-02d8 202102ec branch p_usb_tx_website_acii2keycode_029 ,positive 
+02b7 efe08002 ifetch 1 ,temp 
+02b8 1fe67c39 sub pdata ,0x39 ,null 
+02b9 242102bd nbranch p_usb_tx_website_acii2keycode_sign ,positive 
+02ba da400030 arg 0x30 ,regb 
+02bb 9a462200 isub regb ,rega 
+02bc 202102d0 branch p_usb_tx_website_acii2keycode_029 ,positive 
 
 p_usb_tx_website_acii2keycode_sign:
-02d9 1fe67c3a sub pdata ,0x3a ,null 
-02da 202282e2 branch p_usb_tx_website_acii2keycode_sign_3a ,zero 
-02db 1fe67c2f sub pdata ,0x2f ,null 
-02dc 202282e4 branch p_usb_tx_website_acii2keycode_sign_2f ,zero 
-02dd 1fe67c2e sub pdata ,0x2e ,null 
-02de 202282e6 branch p_usb_tx_website_acii2keycode_sign_2e ,zero 
-02df 1fe67c2d sub pdata ,0x2d ,null 
-02e0 202282e8 branch p_usb_tx_website_acii2keycode_sign_2d ,zero 
-02e1 20600000 rtn 
+02bd 1fe67c3a sub pdata ,0x3a ,null 
+02be 202282c6 branch p_usb_tx_website_acii2keycode_sign_3a ,zero 
+02bf 1fe67c2f sub pdata ,0x2f ,null 
+02c0 202282c8 branch p_usb_tx_website_acii2keycode_sign_2f ,zero 
+02c1 1fe67c2e sub pdata ,0x2e ,null 
+02c2 202282ca branch p_usb_tx_website_acii2keycode_sign_2e ,zero 
+02c3 1fe67c2d sub pdata ,0x2d ,null 
+02c4 202282cc branch p_usb_tx_website_acii2keycode_sign_2d ,zero 
+02c5 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_3a:
-02e2 da200033 arg 0x33 ,rega 
-02e3 20600000 rtn 
+02c6 da200033 arg 0x33 ,rega 
+02c7 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_2f:
-02e4 da200038 arg 0x38 ,rega 
-02e5 20600000 rtn 
+02c8 da200038 arg 0x38 ,rega 
+02c9 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_2e:
-02e6 da200037 arg 0x37 ,rega 
-02e7 20600000 rtn 
+02ca da200037 arg 0x37 ,rega 
+02cb 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_2d:
-02e8 da20002d arg 0x2d ,rega 
-02e9 20600000 rtn 
+02cc da20002d arg 0x2d ,rega 
+02cd 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_a2z:
-02ea 1a20a204 add rega ,4 ,rega 
-02eb 20600000 rtn 
+02ce 1a20a204 add rega ,4 ,rega 
+02cf 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_029:
-02ec 1a20a227 add rega ,0x27 ,rega 
-02ed 20600000 rtn 
+02d0 1a20a227 add rega ,0x27 ,rega 
+02d1 20600000 rtn 
 
 p_usb_tx_website_need_shift:
-02ee 70492600 jam 0 ,mem_usb_website_shift_flag 
-02ef 6fe14928 fetch 2 ,mem_usb_website_ptr 
-02f0 efe0803f ifetch 1 ,pdata 
-02f1 d8c04953 arg mem_usb_website_info_sign + 1 ,contr 
-02f2 6848c952 fetcht 1 ,mem_usb_website_info_sign 
-02f3 18427200 copy temp ,loopcnt 
+02d2 70492600 jam 0 ,mem_usb_website_shift_flag 
+02d3 6fe14928 fetch 2 ,mem_usb_website_ptr 
+02d4 efe0803f ifetch 1 ,pdata 
+02d5 d8c04953 arg mem_usb_website_info_sign + 1 ,contr 
+02d6 6848c952 fetcht 1 ,mem_usb_website_info_sign 
+02d7 18427200 copy temp ,loopcnt 
 
 p_usb_tx_website_need_shift_check_loop:
-02f4 e8408006 ifetcht 1 ,contr 
-02f5 98467c00 isub temp ,null 
-02f6 202282f9 branch p_usb_tx_website_need_shift_setflag ,zero 
-02f7 c20002f4 loop p_usb_tx_website_need_shift_check_loop 
-02f8 20600000 rtn 
+02d8 e8408006 ifetcht 1 ,contr 
+02d9 98467c00 isub temp ,null 
+02da 202282dd branch p_usb_tx_website_need_shift_setflag ,zero 
+02db c20002d8 loop p_usb_tx_website_need_shift_check_loop 
+02dc 20600000 rtn 
 
 p_usb_tx_website_need_shift_setflag:
-02f9 70492602 jam 2 ,mem_usb_website_shift_flag 
-02fa 20600000 rtn 
+02dd 70492602 jam 2 ,mem_usb_website_shift_flag 
+02de 20600000 rtn 
 
 p_usb_tx_data_ep2:
-02fb da204912 arg mem_usb_ep2_fifo ,rega 
-02fc 20407da3 call fifo_is_empty 
-02fd 207a0000 rtn blank 
-02fe 6ff08c25 fetch 1 ,core_usb_txbusy 
-02ff 1fe17e0f and_into 0x0f ,pdata 
-0300 247a0000 nrtn blank 
-0301 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0302 c4010000 rtnbit0 2 
-0303 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0304 793ffe02 set0 2 ,pdata 
-0305 67e0890d store 1 ,mem_usb_tx_enable 
-0306 da204912 arg mem_usb_ep2_fifo ,rega 
-0307 20407d97 call fifo_out 
-0308 207a0000 rtn blank 
-0309 c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
-030a c0120327 beq usb_ep2_dpi ,p_usb_tx_dongle_ep2_dpi_data 
-030b c013031c beq usb_ep2_sn ,p_usb_tx_dongle_ep2_data 
-030c c011831c beq usb_ep2_device_info ,p_usb_tx_dongle_ep2_data 
-030d c0128331 beq usb_ep2_battery ,p_usb_tx_dongle_ep2_battery_data 
-030e c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
-030f c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
-0310 c0138312 beq usb_ep2_mskb_state ,p_usb_tx_rf_state_data 
-0311 2020235a branch assert 
+02df da204912 arg mem_usb_ep2_fifo ,rega 
+02e0 20407da3 call fifo_is_empty 
+02e1 207a0000 rtn blank 
+02e2 6ff08c25 fetch 1 ,core_usb_txbusy 
+02e3 1fe17e0f and_into 0x0f ,pdata 
+02e4 247a0000 nrtn blank 
+02e5 6fe0890d fetch 1 ,mem_usb_tx_enable 
+02e6 c4010000 rtnbit0 2 
+02e7 6fe0890d fetch 1 ,mem_usb_tx_enable 
+02e8 793ffe02 set0 2 ,pdata 
+02e9 67e0890d store 1 ,mem_usb_tx_enable 
+02ea da204912 arg mem_usb_ep2_fifo ,rega 
+02eb 20407d97 call fifo_out 
+02ec 207a0000 rtn blank 
+02ed c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
+02ee c0120306 beq usb_ep2_dpi ,p_usb_tx_dongle_ep2_dpi_data 
+02ef c01302fe beq usb_ep2_sn ,p_usb_tx_dongle_ep2_data 
+02f0 c01182fe beq usb_ep2_device_info ,p_usb_tx_dongle_ep2_data 
+02f1 c01482fe beq usb_ep2_app ,p_usb_tx_dongle_ep2_data 
+02f2 c012830d beq usb_ep2_battery ,p_usb_tx_dongle_ep2_battery_data 
+02f3 c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+02f4 c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+02f5 c01382f7 beq usb_ep2_mskb_state ,p_usb_tx_rf_state_data 
+02f6 2020235a branch assert 
 
 p_usb_tx_rf_state_data:
-0312 6fe0c80e fetch 1 ,mem_usb_rf_state_data 
-0313 207a0000 rtn blank 
-0314 1fe27200 copy pdata ,loopcnt 
-0315 d8c0480f arg mem_usb_rf_state_data + 1 ,contr 
-0316 d8e00002 arg 2 ,queue 
-0317 da200759 arg mem_usb_txbuf2 ,rega 
-0318 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
-0319 20407bd2 call usb_tx_buf 
-031a d8a0480e arg mem_usb_rf_state_data ,contw 
-031b 20200325 branch p_usb_tx_buff_clr 
+02f7 6fe0c80e fetch 1 ,mem_usb_rf_state_data 
+02f8 207a0000 rtn blank 
+02f9 1fe27200 copy pdata ,loopcnt 
+02fa d8c0480f arg mem_usb_rf_state_data + 1 ,contr 
+02fb 20407bdb call usb_tx_ep2 
+02fc d8a0480e arg mem_usb_rf_state_data ,contw 
+02fd 20200304 branch p_usb_tx_buff_clr 
 
 p_usb_tx_dongle_ep2_data:
-031c 6fe0c84f fetch 1 ,mem_dongle_usb_ep2_data 
-031d 207a0000 rtn blank 
-031e 1fe27200 copy pdata ,loopcnt 
-031f d8c04850 arg mem_dongle_usb_ep2_data + 1 ,contr 
-0320 d8e00002 arg 2 ,queue 
-0321 da200759 arg mem_usb_txbuf2 ,rega 
-0322 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
-0323 20407bd2 call usb_tx_buf 
-0324 d8a0484f arg mem_dongle_usb_ep2_data ,contw 
+02fe 6fe0c84f fetch 1 ,mem_dongle_usb_ep2_data 
+02ff 207a0000 rtn blank 
+0300 1fe27200 copy pdata ,loopcnt 
+0301 d8c04850 arg mem_dongle_usb_ep2_data + 1 ,contr 
+0302 20407bdb call usb_tx_ep2 
+0303 d8a0484f arg mem_dongle_usb_ep2_data ,contw 
 
 p_usb_tx_buff_clr:
-0325 df200041 arg 65 ,loopcnt 
-0326 20207ca1 branch clear_mem 
+0304 df200041 arg 65 ,loopcnt 
+0305 20207ca1 branch clear_mem 
 
 p_usb_tx_dongle_ep2_dpi_data:
-0327 6fe0c890 fetch 1 ,mem_usb_dpi_info_data 
-0328 207a0000 rtn blank 
-0329 1fe27200 copy pdata ,loopcnt 
-032a d8c04891 arg mem_usb_dpi_info_data + 1 ,contr 
-032b d8e00002 arg 2 ,queue 
-032c da200759 arg mem_usb_txbuf2 ,rega 
-032d 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
-032e 20407bd2 call usb_tx_buf 
-032f d8a04890 arg mem_usb_dpi_info_data ,contw 
-0330 20200325 branch p_usb_tx_buff_clr 
+0306 6fe0c890 fetch 1 ,mem_usb_dpi_info_data 
+0307 207a0000 rtn blank 
+0308 1fe27200 copy pdata ,loopcnt 
+0309 d8c04891 arg mem_usb_dpi_info_data + 1 ,contr 
+030a 20407bdb call usb_tx_ep2 
+030b d8a04890 arg mem_usb_dpi_info_data ,contw 
+030c 20200304 branch p_usb_tx_buff_clr 
 
 p_usb_tx_dongle_ep2_battery_data:
-0331 6fe0c8d1 fetch 1 ,mem_usb_battery_info_data 
-0332 207a0000 rtn blank 
-0333 1fe27200 copy pdata ,loopcnt 
-0334 d8c048d2 arg mem_usb_battery_info_data + 1 ,contr 
-0335 d8e00002 arg 2 ,queue 
-0336 da200759 arg mem_usb_txbuf2 ,rega 
-0337 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
-0338 20407bd2 call usb_tx_buf 
-0339 d8a048d1 arg mem_usb_battery_info_data ,contw 
-033a 20200325 branch p_usb_tx_buff_clr 
+030d 6fe0c8d1 fetch 1 ,mem_usb_battery_info_data 
+030e 207a0000 rtn blank 
+030f 1fe27200 copy pdata ,loopcnt 
+0310 d8c048d2 arg mem_usb_battery_info_data + 1 ,contr 
+0311 20407bdb call usb_tx_ep2 
+0312 d8a048d1 arg mem_usb_battery_info_data ,contw 
+0313 20200304 branch p_usb_tx_buff_clr 
 
 p_rx_dcoc:
-033b 20758000 rtn wake 
-033c 20402160 call set_sync_on 
-033d d8400027 arg 39 ,temp 
-033e 2040216f call set_freq_rx 
-033f 204021a6 call rf_rx_enable 
-0340 708a257f jam 0x7f ,0x8a25 
-0341 708a301a jam 0x1a ,0x8a30 
-0342 708a3178 jam 0x78 ,0x8a31 
-0343 708a8fb2 jam 0xb2 ,0x8a8f 
-0344 708ac200 jam 0 ,0x8ac2 
-0345 708ac300 jam 0 ,0x8ac3 
-0346 d8e00006 arg 6 ,queue 
-0347 20400358 call p_rx_dcoc_avg 
-0348 2a2ffe0d isolate1 13 ,rega 
-0349 2040211d call qset_start 
-034a 2a4ffe0d isolate1 13 ,regb 
-034b 2040211e call qset_p 
-034c d8e00005 arg 5 ,queue 
+0314 20758000 rtn wake 
+0315 20402160 call set_sync_on 
+0316 d8400027 arg 39 ,temp 
+0317 2040216f call set_freq_rx 
+0318 204021a6 call rf_rx_enable 
+0319 708a257f jam 0x7f ,0x8a25 
+031a 708a301a jam 0x1a ,0x8a30 
+031b 708a3178 jam 0x78 ,0x8a31 
+031c 708a8fb2 jam 0xb2 ,0x8a8f 
+031d 708ac200 jam 0 ,0x8ac2 
+031e 708ac300 jam 0 ,0x8ac3 
+031f d8e00006 arg 6 ,queue 
+0320 20400331 call p_rx_dcoc_avg 
+0321 2a2ffe0d isolate1 13 ,rega 
+0322 2040211d call qset_start 
+0323 2a4ffe0d isolate1 13 ,regb 
+0324 2040211e call qset_p 
+0325 d8e00005 arg 5 ,queue 
 
 p_rx_dcoc_loop2:
-034d 2040211c call qset1_p 
-034e 2040211e call qset_p 
-034f 20400358 call p_rx_dcoc_avg 
-0350 d8a08ac2 arg 0x8ac2 ,contw 
-0351 1a31fe00 rshift4 rega ,pdata 
-0352 20402117 call qsetxor 
-0353 1a51fe00 rshift4 regb ,pdata 
-0354 20402117 call qsetxor 
-0355 18e08fff increase -1 ,queue 
-0356 2021034d branch p_rx_dcoc_loop2 ,positive 
-0357 2020214f branch rx_dcoc_loop2 + 10 
+0326 2040211c call qset1_p 
+0327 2040211e call qset_p 
+0328 20400331 call p_rx_dcoc_avg 
+0329 d8a08ac2 arg 0x8ac2 ,contw 
+032a 1a31fe00 rshift4 rega ,pdata 
+032b 20402117 call qsetxor 
+032c 1a51fe00 rshift4 regb ,pdata 
+032d 20402117 call qsetxor 
+032e 18e08fff increase -1 ,queue 
+032f 20210326 branch p_rx_dcoc_loop2 ,positive 
+0330 2020214f branch rx_dcoc_loop2 + 10 
 
 p_rx_dcoc_avg:
-0358 2000003c nop 60 
-0359 58000f00 setarg mem_dcoc_buf 
-035a 67f10982 store 2 ,0x8982 
-035b 58000ff0 setarg mem_dcoc_buf_end 
-035c 67f10984 store 2 ,0x8984 
-035d 70898109 jam 0x9 ,0x8981 
-035e 70898103 jam 0x3 ,0x8981 
-035f 70898006 jam 0x6 ,0x8980 
-0360 2000003c nop 60 
-0361 da200000 arg 0 ,rega 
-0362 da400000 arg 0 ,regb 
-0363 df200010 arg 16 ,loopcnt 
-0364 d8c00f00 arg mem_dcoc_buf ,contr 
-0365 2020212d branch rx_dcoc_loop 
+0331 2000003c nop 60 
+0332 58000f00 setarg mem_dcoc_buf 
+0333 67f10982 store 2 ,0x8982 
+0334 58000ff0 setarg mem_dcoc_buf_end 
+0335 67f10984 store 2 ,0x8984 
+0336 70898109 jam 0x9 ,0x8981 
+0337 70898103 jam 0x3 ,0x8981 
+0338 70898006 jam 0x6 ,0x8980 
+0339 2000003c nop 60 
+033a da200000 arg 0 ,rega 
+033b da400000 arg 0 ,regb 
+033c df200010 arg 16 ,loopcnt 
+033d d8c00f00 arg mem_dcoc_buf ,contr 
+033e 2020212d branch rx_dcoc_loop 
 
 p_rfpll_aac_ghpc:
-0366 20758000 rtn wake 
-0367 20202272 branch rfpll_aac_ghpc + 1 
+033f 20758000 rtn wake 
+0340 20202272 branch rfpll_aac_ghpc + 1 
 
 p_dpll_ring_ibias_calc:
-0368 20600000 rtn 
+0341 20600000 rtn 
 
 p_sadc_calibration:
-0369 20758000 rtn wake 
-036a 708a0777 jam 0x77 ,core_gpadc_ctrl 
-036b 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
-036c 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-036d 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-036e 67f080cd store 1 ,core_sadc_clkdiv 
-036f 20000bb8 nop 3000 
-0370 20400391 call p_sadc_read 
-0371 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-0372 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-0373 df200008 arg 8 ,loopcnt 
-0374 20406f58 call sadc_cal_read + 1 
-0375 6fe0c419 fetch 1 ,mem_spi_write_addr 
-0376 67e0c433 store 1 ,mem_adc_cal_c7 
-0377 6240c419 storer regb ,1 ,mem_spi_write_addr 
-0378 20600000 rtn 
+0342 20758000 rtn wake 
+0343 708a0777 jam 0x77 ,core_gpadc_ctrl 
+0344 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
+0345 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+0346 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+0347 67f080cd store 1 ,core_sadc_clkdiv 
+0348 20000bb8 nop 3000 
+0349 2040036a call p_sadc_read 
+034a 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+034b 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+034c df200008 arg 8 ,loopcnt 
+034d 20406f58 call sadc_cal_read + 1 
+034e 6fe0c419 fetch 1 ,mem_spi_write_addr 
+034f 67e0c433 store 1 ,mem_adc_cal_c7 
+0350 6240c419 storer regb ,1 ,mem_spi_write_addr 
+0351 20600000 rtn 
 
 p_enable_adc:
-0379 20400387 call p_sadc_cal_write 
-037a 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-037b 793ffe07 set0 7 ,pdata 
-037c 67f08a09 store 1 ,core_gpadc_cfg1 
-037d 708a0777 jam 0x77 ,core_gpadc_ctrl 
-037e 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-037f 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-0380 20406f90 call sadc_channel 
-0381 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-0382 67f080cd store 1 ,core_sadc_clkdiv 
-0383 20000bb8 nop 3000 
-0384 20400391 call p_sadc_read 
-0385 7080cd00 jam 0 ,core_sadc_clkdiv 
-0386 20206fa1 branch sadc_dma 
+0352 20400360 call p_sadc_cal_write 
+0353 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+0354 793ffe07 set0 7 ,pdata 
+0355 67f08a09 store 1 ,core_gpadc_cfg1 
+0356 708a0777 jam 0x77 ,core_gpadc_ctrl 
+0357 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+0358 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+0359 20406f90 call sadc_channel 
+035a 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+035b 67f080cd store 1 ,core_sadc_clkdiv 
+035c 20000bb8 nop 3000 
+035d 2040036a call p_sadc_read 
+035e 7080cd00 jam 0 ,core_sadc_clkdiv 
+035f 20206fa1 branch sadc_dma 
 
 p_sadc_cal_write:
-0387 6ff080cc fetch 1 ,core_sadc_ctrl 
-0388 79207e01 set1 1 ,pdata 
-0389 67f080cc store 1 ,core_sadc_ctrl 
-038a 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-038b 6fe0c433 fetch 1 ,mem_adc_cal_c7 
-038c 67e0c419 store 1 ,mem_spi_write_addr 
-038d df200008 arg 8 ,loopcnt 
-038e 20406f67 call sadc_cal_write + 4 
-038f 6240c419 storer regb ,1 ,mem_spi_write_addr 
-0390 20600000 rtn 
+0360 6ff080cc fetch 1 ,core_sadc_ctrl 
+0361 79207e01 set1 1 ,pdata 
+0362 67f080cc store 1 ,core_sadc_ctrl 
+0363 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+0364 6fe0c433 fetch 1 ,mem_adc_cal_c7 
+0365 67e0c419 store 1 ,mem_spi_write_addr 
+0366 df200008 arg 8 ,loopcnt 
+0367 20406f67 call sadc_cal_write + 4 
+0368 6240c419 storer regb ,1 ,mem_spi_write_addr 
+0369 20600000 rtn 
 
 p_sadc_read:
-0391 7080cc03 jam 0x03 ,core_sadc_ctrl 
+036a 7080cc03 jam 0x03 ,core_sadc_ctrl 
 
 p_sadc_read_wait:
-0392 6ff08129 fetch 1 ,core_perf_status 
-0393 c3028392 bbit0 saradc_done ,p_sadc_read_wait 
-0394 68590164 fetcht 2 ,core_sadc_data 
-0395 6049440a storet 2 ,mem_adc_current_value 
-0396 7080cc00 jam 0x00 ,core_sadc_ctrl 
-0397 20600000 rtn 
+036b 6ff08129 fetch 1 ,core_perf_status 
+036c c302836b bbit0 saradc_done ,p_sadc_read_wait 
+036d 68590164 fetcht 2 ,core_sadc_data 
+036e 6049440a storet 2 ,mem_adc_current_value 
+036f 7080cc00 jam 0x00 ,core_sadc_ctrl 
+0370 20600000 rtn 
 
 p_set_lemode:
-0398 708a8211 jam 0x11 ,0x8a82 
-0399 708a8d12 jam 0x12 ,0x8a8d 
-039a 708a8e0a jam 0x0a ,0x8a8e 
-039b 6fe0c099 fetch 1 ,mem_fcomp_div 
-039c c00803b1 beq xtal_16m ,p_set_lemode_2m_16m 
-039d 58005762 setarg 0x5762 
-039e 67f10907 store 2 ,0x8907 
+0371 708a8211 jam 0x11 ,0x8a82 
+0372 708a8d12 jam 0x12 ,0x8a8d 
+0373 708a8e0a jam 0x0a ,0x8a8e 
+0374 6fe0c099 fetch 1 ,mem_fcomp_div 
+0375 c008038a beq xtal_16m ,p_set_lemode_2m_16m 
+0376 58005762 setarg 0x5762 
+0377 67f10907 store 2 ,0x8907 
 
 p_set_lemode_2m:
-039f 70890103 jam 3 ,0x8901 
-03a0 70893003 jam 3 ,0x8930 
-03a1 c6168000 rtnmark1 mark_ble_2m 
-03a2 70890101 jam 1 ,0x8901 
-03a3 708a8207 jam 0x07 ,0x8a82 
-03a4 708a8d44 jam 0x44 ,0x8a8d 
-03a5 708a8e0a jam 0x0a ,0x8a8e 
-03a6 6fe0c099 fetch 1 ,mem_fcomp_div 
-03a7 c00803ae beq xtal_16m ,p_set_lemode_1m_16m 
-03a8 58002bb1 setarg 0x2bb1 
-03a9 67f10907 store 2 ,0x8907 
+0378 70890103 jam 3 ,0x8901 
+0379 70893003 jam 3 ,0x8930 
+037a c6168000 rtnmark1 mark_ble_2m 
+037b 70890101 jam 1 ,0x8901 
+037c 708a8207 jam 0x07 ,0x8a82 
+037d 708a8d44 jam 0x44 ,0x8a8d 
+037e 708a8e0a jam 0x0a ,0x8a8e 
+037f 6fe0c099 fetch 1 ,mem_fcomp_div 
+0380 c0080387 beq xtal_16m ,p_set_lemode_1m_16m 
+0381 58002bb1 setarg 0x2bb1 
+0382 67f10907 store 2 ,0x8907 
 
 p_set_lemode_1m:
-03aa c6978000 rtnmark0 mark_ble_lr 
-03ab 70893024 jam 0x24 ,0x8930 
-03ac 70890105 jam 5 ,0x8901 
-03ad 20600000 rtn 
+0383 c6978000 rtnmark0 mark_ble_lr 
+0384 70893024 jam 0x24 ,0x8930 
+0385 70890105 jam 5 ,0x8901 
+0386 20600000 rtn 
 
 p_set_lemode_1m_16m:
-03ae 58004189 setarg 0x4189 
-03af 67f10907 store 2 ,0x8907 
-03b0 202003aa branch p_set_lemode_1m 
+0387 58004189 setarg 0x4189 
+0388 67f10907 store 2 ,0x8907 
+0389 20200383 branch p_set_lemode_1m 
 
 p_set_lemode_2m_16m:
-03b1 58008312 setarg 0x8312 
-03b2 67f10907 store 2 ,0x8907 
-03b3 2020039f branch p_set_lemode_2m 
+038a 58008312 setarg 0x8312 
+038b 67f10907 store 2 ,0x8907 
+038c 20200378 branch p_set_lemode_2m 
 
 p_le_parse:
-03b4 6fe0c334 fetch 1 ,mem_le_packet_llid 
-03b5 c1000000 rtneq llid_reserved 
-03b6 c001b04a beq llid_le_ll ,le_parse_ll 
-03b7 202028e1 branch le_parse_l2cap 
+038d 6fe0c334 fetch 1 ,mem_le_packet_llid 
+038e c1000000 rtneq llid_reserved 
+038f c001b04a beq llid_le_ll ,le_parse_ll 
+0390 202028e1 branch le_parse_l2cap 
 
 p_le_init_adv:
-03b8 793f8030 set0 mark_ble_crc_fail ,mark 
-03b9 20202af6 branch le_init_adv + 1 
+0391 793f8030 set0 mark_ble_crc_fail ,mark 
+0392 20202af6 branch le_init_adv + 1 
 
 p_g24_bind_data_parse_next:
-03ba 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-03bb c0553329 beq datatype_bind ,g24_bind_first_step 
-03bc c02ab33a beq datatype_config ,g24_bind_second_step 
-03bd c01103c0 beq datatype_ok ,p_g24_bind_third_step 
-03be c07fb59b beq datatype_attemp ,g24_data_attemp 
-03bf 20600000 rtn 
+0393 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+0394 c0553329 beq datatype_bind ,g24_bind_first_step 
+0395 c02ab33a beq datatype_config ,g24_bind_second_step 
+0396 c0110399 beq datatype_ok ,p_g24_bind_third_step 
+0397 c07fb59b beq datatype_attemp ,g24_data_attemp 
+0398 20600000 rtn 
 
 p_g24_bind_third_step:
-03c0 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
-03c1 203a03c6 branch p_g24_bind_third_step_skip ,blank 
-03c2 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
-03c3 684a462c fetcht 4 ,mem_24g_transmitter_addr 
-03c4 98467c00 isub temp ,null 
-03c5 24628000 nrtn zero 
+0399 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+039a 203a039f branch p_g24_bind_third_step_skip ,blank 
+039b 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
+039c 684a462c fetcht 4 ,mem_24g_transmitter_addr 
+039d 98467c00 isub temp ,null 
+039e 24628000 nrtn zero 
 
 p_g24_bind_third_step_skip:
-03c6 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-03c7 c00083ca beq datatype_device1 ,p_g24_bind_third_step_device1 
-03c8 c00103d2 beq datatype_device2 ,p_g24_bind_third_step_device2 
-03c9 20600000 rtn 
+039f 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+03a0 c00083a3 beq datatype_device1 ,p_g24_bind_third_step_device1 
+03a1 c00103ab beq datatype_device2 ,p_g24_bind_third_step_device2 
+03a2 20600000 rtn 
 
 p_g24_bind_third_step_device1:
-03ca 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
-03cb 247a0000 nrtn blank 
-03cc 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
-03cd c00103cf beq 2 ,p_g24_bind_dvc1_step_success 
-03ce 20600000 rtn 
+03a3 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+03a4 247a0000 nrtn blank 
+03a5 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+03a6 c00103a8 beq 2 ,p_g24_bind_dvc1_step_success 
+03a7 20600000 rtn 
 
 p_g24_bind_dvc1_step_success:
-03cf 7045de01 jam 1 ,mem_24g_device1_bind_disable 
-03d0 2040338d call g24_binding_dvc1_living 
-03d1 2020336b branch g24_bind_dvc1_step_success + 1 
+03a8 7045de01 jam 1 ,mem_24g_device1_bind_disable 
+03a9 2040338d call g24_binding_dvc1_living 
+03aa 2020336b branch g24_bind_dvc1_step_success + 1 
 
 p_g24_bind_third_step_device2:
-03d2 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
-03d3 247a0000 nrtn blank 
-03d4 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-03d5 c08003d7 bne 0 ,p_g24_bind_dvc2_step_success 
-03d6 20600000 rtn 
+03ab 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
+03ac 247a0000 nrtn blank 
+03ad 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+03ae c08003b0 bne 0 ,p_g24_bind_dvc2_step_success 
+03af 20600000 rtn 
 
 p_g24_bind_dvc2_step_success:
-03d7 7045df01 jam 1 ,mem_24g_device2_bind_disable 
-03d8 20403393 call g24_binding_dvc2_living 
-03d9 20203378 branch g24_bind_dvc2_step_success + 1 
+03b0 7045df01 jam 1 ,mem_24g_device2_bind_disable 
+03b1 20403393 call g24_binding_dvc2_living 
+03b2 20203378 branch g24_bind_dvc2_step_success + 1 
 
 p_g24_mode_switch_bind_search:
-03da 6fe0c616 fetch 1 ,mem_24g_work_mode 
-03db c1000000 rtneq dongle_work 
-03dc 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
-03dd 247a0000 nrtn blank 
-03de 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
-03df 247a0000 nrtn blank 
-03e0 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
-03e1 207a0000 rtn blank 
-03e2 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
-03e3 c1800000 rtnne 0 
-03e4 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-03e5 c1800000 rtnne 0 
-03e6 20203436 branch g24_mode_switch_bind_search + 9 
+03b3 6fe0c616 fetch 1 ,mem_24g_work_mode 
+03b4 c1000000 rtneq dongle_work 
+03b5 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
+03b6 247a0000 nrtn blank 
+03b7 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+03b8 247a0000 nrtn blank 
+03b9 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
+03ba 207a0000 rtn blank 
+03bb 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+03bc c1800000 rtnne 0 
+03bd 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+03be c1800000 rtnne 0 
+03bf 20203436 branch g24_mode_switch_bind_search + 9 
 
 p_g24_bind_mode_auto:
-03e7 6fe0c616 fetch 1 ,mem_24g_work_mode 
-03e8 c1808000 rtnne dongle_bind 
-03e9 204003eb call p_g24_bind_init 
-03ea 2020346d branch g24_bind_mode_auto + 4 
+03c0 6fe0c616 fetch 1 ,mem_24g_work_mode 
+03c1 c1808000 rtnne dongle_bind 
+03c2 204003c4 call p_g24_bind_init 
+03c3 2020346d branch g24_bind_mode_auto + 4 
 
 p_g24_bind_init:
-03eb 6fe0c615 fetch 1 ,mem_24g_mode_init 
-03ec c3808000 rtnbit1 dongle_bind 
-03ed 79207e01 set1 dongle_bind ,pdata 
-03ee 67e0c615 store 1 ,mem_24g_mode_init 
-03ef 58000000 setarg 0 
-03f0 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
-03f1 20203307 branch g24_bind_init + 8 
+03c4 6fe0c615 fetch 1 ,mem_24g_mode_init 
+03c5 c3808000 rtnbit1 dongle_bind 
+03c6 79207e01 set1 dongle_bind ,pdata 
+03c7 67e0c615 store 1 ,mem_24g_mode_init 
+03c8 58000000 setarg 0 
+03c9 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
+03ca 20203307 branch g24_bind_init + 8 
 
 p_dongle_usb_dispatch:
-03f2 204003ff call p_wdt_kick 
-03f3 20400401 call p_g24_100ms_timer_event 
-03f4 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
-03f5 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
-03f6 20407906 call usb_isr 
-03f7 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
-03f8 207a0000 rtn blank 
-03f9 7008f700 jam 0 ,mem_usb0_get_set_report 
-03fa 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
-03fb d84003a2 arg pc_set_report_protocol ,temp 
-03fc 98467c00 isub temp ,null 
-03fd 24628000 nrtn zero 
-03fe 2020018b branch p_dongle_usb_data_received_analysis 
+03cb 204003d8 call p_wdt_kick 
+03cc 204003da call p_g24_100ms_timer_event 
+03cd 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
+03ce 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
+03cf 20407906 call usb_isr 
+03d0 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
+03d1 207a0000 rtn blank 
+03d2 7008f700 jam 0 ,mem_usb0_get_set_report 
+03d3 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
+03d4 d84003a2 arg pc_set_report_protocol ,temp 
+03d5 98467c00 isub temp ,null 
+03d6 24628000 nrtn zero 
+03d7 2020016d branch p_dongle_usb_data_received_analysis 
 
 p_wdt_kick:
-03ff 58000010 setarg 16 
-0400 202070c8 branch wdt_init_config 
+03d8 58000010 setarg 16 
+03d9 202070c8 branch wdt_init_config 
 
 p_g24_100ms_timer_event:
-0401 d8e00006 arg usb_timer_100ms ,queue 
-0402 20407cef call timer_check 
-0403 247a0000 nrtn blank 
-0404 20400409 call p_g24_http_over_pack_check 
-0405 2040040c call p_g24_dongle_disconnect_state_check 
+03da d8e00006 arg usb_timer_100ms ,queue 
+03db 20407cef call timer_check 
+03dc 247a0000 nrtn blank 
+03dd 204003e2 call p_g24_http_over_pack_check 
+03de 204003e5 call p_g24_dongle_disconnect_state_check 
 
 p_g24_100ms_timer_init:
-0406 d8e00006 arg usb_timer_100ms ,queue 
-0407 58000028 setarg 40 
-0408 20207ce1 branch timer_init 
+03df d8e00006 arg usb_timer_100ms ,queue 
+03e0 58000028 setarg 40 
+03e1 20207ce1 branch timer_init 
 
 p_g24_http_over_pack_check:
-0409 6fe0c925 fetch 1 ,mem_usb_website_step 
-040a 207a0000 rtn blank 
-040b 2020022a branch p_dongle_usb_tx_http_data 
+03e2 6fe0c925 fetch 1 ,mem_usb_website_step 
+03e3 207a0000 rtn blank 
+03e4 2020020c branch p_dongle_usb_tx_http_data 
 
 p_g24_dongle_disconnect_state_check:
-040c 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
-040d c4000000 rtnbit0 0 
-040e 6fe0c80b fetch 1 ,mem_dongle_connect_mouse_flag 
-040f 207a0000 rtn blank 
-0410 6fe1480c fetch 2 ,mem_dongle_no_data_count 
-0411 1fe0fe01 increase 1 ,pdata 
-0412 67e1480c store 2 ,mem_dongle_no_data_count 
-0413 d84004b0 arg 0x4b0 ,temp 
-0414 98467c00 isub temp ,null 
-0415 24610000 nrtn positive 
-0416 58000000 setarg 0 
-0417 67e1480c store 2 ,mem_dongle_no_data_count 
-0418 6fe0c80b fetch 1 ,mem_dongle_connect_mouse_flag 
-0419 207a0000 rtn blank 
-041a 70480b00 jam 0 ,mem_dongle_connect_mouse_flag 
-041b 20600000 rtn 
+03e5 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
+03e6 c4000000 rtnbit0 0 
+03e7 6fe0c80b fetch 1 ,mem_dongle_connect_mouse_flag 
+03e8 207a0000 rtn blank 
+03e9 6fe1480c fetch 2 ,mem_dongle_no_data_count 
+03ea 1fe0fe01 increase 1 ,pdata 
+03eb 67e1480c store 2 ,mem_dongle_no_data_count 
+03ec d84004b0 arg 0x4b0 ,temp 
+03ed 98467c00 isub temp ,null 
+03ee 24610000 nrtn positive 
+03ef 58000000 setarg 0 
+03f0 67e1480c store 2 ,mem_dongle_no_data_count 
+03f1 6fe0c80b fetch 1 ,mem_dongle_connect_mouse_flag 
+03f2 207a0000 rtn blank 
+03f3 70480b00 jam 0 ,mem_dongle_connect_mouse_flag 
+03f4 20600000 rtn 
 
 p_dongle_default_init:
-041c 204047c3 call dongle_default_init + 1 
-041d 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
-041e 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
-041f 20403281 call g24_enable_1m 
-0420 6fe0c669 fetch 1 ,mem_dg_sys_config 
-0421 c4000000 rtnbit0 dg_enable_new_revision 
-0422 7045ca01 jam on ,mem_24g_disable_fec1 
-0423 20203284 branch g24_enable_2m 
+03f5 204047c3 call dongle_default_init + 1 
+03f6 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
+03f7 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
+03f8 20403281 call g24_enable_1m 
+03f9 6fe0c669 fetch 1 ,mem_dg_sys_config 
+03fa c4000000 rtnbit0 dg_enable_new_revision 
+03fb 7045ca01 jam on ,mem_24g_disable_fec1 
+03fc 20203284 branch g24_enable_2m 
 
 p_g24_receive_skip_end:
-0424 6fe0c669 fetch 1 ,mem_dg_sys_config 
-0425 c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
-0426 7837fc00 enable user3 
-0427 20000018 nop 24 
-0428 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
-0429 79207e00 set1 bit_ack_24g ,pdata 
-042a 67e0c4f8 store 1 ,mem_24g_rxbuf + 1 
-042b 204033a5 call g24_ackpayload_prep 
-042c 204031e5 call g24_transmit_prep 
-042d 20203195 branch g24_transmit 
+03fd 6fe0c669 fetch 1 ,mem_dg_sys_config 
+03fe c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
+03ff 7837fc00 enable user3 
+0400 20000018 nop 24 
+0401 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+0402 79207e00 set1 bit_ack_24g ,pdata 
+0403 67e0c4f8 store 1 ,mem_24g_rxbuf + 1 
+0404 204033a5 call g24_ackpayload_prep 
+0405 204031e5 call g24_transmit_prep 
+0406 20203195 branch g24_transmit 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/program/patch.prog	(revision 3908)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/program/patch.prog	(working copy)
@@ -395,9 +395,9 @@
 p_usb_rx_data_out:
 	fetch 1,mem_usb_read_len
 	sub pdata,2,null
-	branch p_dongle_hci_event_invalid_packet,positive
+	rtn positive
 	fetch 1,mem_usb0_set_report_data+2		//len+event+opcode+len+payload
-	bne 0x01,p_dongle_hci_event_invalid_packet
+	rtnne 0x01
 	ifetch 1,contr
 	store 1,mem_dongle_usb_opcode
 	ifetcht 1,contr
@@ -412,8 +412,8 @@
 	beq HCI_CMD_GET_SN,p_dongle_usb_hci_cmd_get_sn
 	beq HCI_CMD_SET_BATTERY,p_dongle_usb_hci_cmd_get_battery
 	beq HCI_CMD_GET_CONNECT_STATE,p_dongle_usb_hci_cmd_get_connect_state
-	branch p_dongle_hci_event_invalid_packet
-
+	rtn
+	
 p_dongle_usb_hci_cmd_get_deivce_info:	//02 01 0b
 	jam 0x40,mem_dongle_usb_ep2_data
 	jam REPORT_ID_DATA_IN,mem_dongle_usb_ep2_data+1
@@ -466,6 +466,15 @@
 	jam USB_EP2_BATTERY,mem_usb_ep2_data
 	branch p_dongle_usb_tx_enable_ep2
 
+p_dongle_usb_tx_ep2_app_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 0x08,mem_dongle_usb_ep2_data+3
+	jam 0x00,mem_dongle_usb_ep2_data+4
+	jam USB_EP2_APP,mem_usb_ep2_data
+	branch p_dongle_usb_tx_enable_ep2
+
 p_dongle_usb_hci_cmd_get_connect_state:
 	fetch 1,mem_dongle_connect_mouse_flag
 	beq 0,p_dongle_usb_device_disconnect
@@ -492,53 +501,10 @@
 	jam USB_EP2_MSKB_STATE,mem_usb_ep2_data
 	branch p_dongle_usb_tx_enable_ep2
 
-p_dongle_hci_event_invalid_packet:
-	jam 0x40,mem_usb_rf_state_data
-	jam 0xA1,mem_usb_rf_state_data+1
-	arg 1,temp
-p_dongle_hci_event_ack_packet:
-	arg 0,rega
-	fetch 1,mem_dongle_usb_opcode
-	copy pdata,regc
-p_dongle_hci_event_packet:
-	jam  HCI_EVENT_CMD_RES,mem_dongle_usb_opcode
-	setarg 2
-	iadd rega,pdata
-	jam 0x02,mem_dongle_usb_header
-	store 1,mem_dongle_usb_len
-	storet 8,mem_temp
-	fetcht 8,mem_temp
-	arg mem_usb_rf_state_data+2,contw
-	fetch 3,mem_dongle_usb_header
-	istore 3,contw
-	copy regc,pdata
-	istore 1,contw
-	istoret 1,contw
-	copy rega,loopcnt
-	copy regb,contr
-	call memcpy
-	jam USB_EP2_MSKB_STATE,mem_usb_ep2_data
-	branch p_dongle_usb_tx_enable_ep2
-
-p_usb_rx_len:
-	fetchr contus,2,core_usb_rx_saddr
-	fetchr contue,2,core_usb_rx_eaddr
-	fetchr contu,2,core_usb_rxptr
-	copy contu,pdata
-	ifetch 2,contu
-	rshift8 pdata,temp
-	rshift4 temp,temp					// temp is endpoint
-	arg 0xfff,contr
-	iand contr,loopcnt
-	storer loopcnt,2,mem_usb_read_len
-	sub loopcnt,0,null
-	call p_usb_rx_len,zero
-	rtn
-
 p_usb_rx:
 	fetch 1,mem_usb_status
 	rtnbit0 USB_STATUS_RXREADY
-	call p_usb_rx_len
+	call usb_rx_len
 	storet 1,mem_usb_rx_endpoint
 	compare 13,temp,0xff
 	branch usb_rx_ep13,true
@@ -764,6 +730,7 @@
 p_dongle_g24_mouse:
 	fetch 1,mem_24g_rxdata_temp+2
 	bbit1 DATA_HTTP,p_dongle_usb_tx_http_data
+	bbit1 DATA_APP,p_dongle_usb_tx_ep2_app_data
 	bbit1 DATA_DPI,p_dongle_receive_dpi_data
 	bbit1 DATA_DEVICE_INFO,p_dongle_receive_device_info_data
 	bbit1 DATA_BATTERY,p_dongle_receive_battery_data
@@ -783,6 +750,7 @@
 	call memcpy
 	fetch 1,mem_24g_rxdata_temp+2
 	bbit1 DATA_HTTP,p_dongle_usb_tx_http_data
+	bbit1 DATA_APP,p_dongle_usb_tx_ep2_app_data
 	bbit1 DATA_DPI,p_dongle_receive_dpi_data
 	bbit1 DATA_DEVICE_INFO,p_dongle_receive_device_info_data
 	bbit1 DATA_BATTERY,p_dongle_receive_battery_data
@@ -799,6 +767,9 @@
 	jam USB_EP2_MS,mem_usb_ep2_data
 	branch p_dongle_usb_tx_enable_ep2
 
+p_dongle_receive_app_data:
+	
+
 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:
@@ -1044,6 +1015,7 @@
 	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_APP,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
@@ -1054,10 +1026,7 @@
 	rtn blank
 	copy pdata,loopcnt
 	arg mem_usb_rf_state_data+1,contr
-	arg 2,queue
-	arg mem_usb_txbuf2,rega
-	storer rega,2,core_usb_tx_saddr2
-	call usb_tx_buf
+	call usb_tx_ep2
 	arg mem_usb_rf_state_data,contw
 	branch p_usb_tx_buff_clr
 
@@ -1066,10 +1035,7 @@
 	rtn blank
 	copy pdata,loopcnt
 	arg mem_dongle_usb_ep2_data+1,contr
-	arg 2,queue
-	arg mem_usb_txbuf2,rega
-	storer rega,2,core_usb_tx_saddr2
-	call usb_tx_buf
+	call usb_tx_ep2
 	arg mem_dongle_usb_ep2_data,contw
 p_usb_tx_buff_clr:
 	arg 65,loopcnt
@@ -1080,10 +1046,7 @@
 	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
+	call usb_tx_ep2
 	arg mem_usb_dpi_info_data,contw
 	branch p_usb_tx_buff_clr
 
@@ -1092,10 +1055,7 @@
 	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
+	call usb_tx_ep2
 	arg mem_usb_battery_info_data,contw
 	branch p_usb_tx_buff_clr
 
Index: sched/dongle.dat
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/sched/dongle.dat	(revision 3908)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/sched/dongle.dat	(working copy)
@@ -68,7 +68,7 @@
 09 21 00 02 00 01 22 3f 00 
 07 05 81 03 40 00 02 09 04 
 01 00 02 03 01 02 00 09 21 
-00 02 00 01 22 db 00 07 05 
+00 02 00 01 22 b7 00 07 05 
 82 03 40 00 02 
 07 05 02 03 40 00 02
 #usb 1m config
@@ -79,7 +79,7 @@
 #22 a3 00 07 05 82 03 40 00 02
 
 mem_usb_ep2_config:
-DB 05 01 09 02 A1 01 85 01 09 
+b7 05 01 09 02 A1 01 85 01 09 
 01 A1 00 05 09 19 01 29 05 
 15 00 25 01 95 05 75 01 81 
 02 95 01 75 03 81 01 05 01 
@@ -92,25 +92,7 @@
 00 25 01 95 08 75 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 A0 FF 
-09 02 
-A1 01 
-85 A3
-95 3F 
-75 08 
-25 FF 
-15 00 
-09 01 
-81 02 
-85 A4 
-95 3F 
-75 08 
-25 FF
-15 00 
-09 01 
-91 02 
-C0 
+03 75 10 95 01 81 00 C0  
 06 A1 FF 
 09 02 
 A1 01 
