Index: format/app_usb.format
===================================================================
--- /branch/USB/dongle_16M/format/app_usb.format	(revision 2052)
+++ /branch/USB/dongle_16M/format/app_usb.format	(working copy)
@@ -104,6 +104,7 @@
 0x10 USB_EP1_KB
 0x20 USB_EP2_MS
 0x21 USB_EP2_MULTIKEY
+0x22 USB_EP2_SYSTEMKEY
 0x01 MAC_BOOT_MODE
 0x02 R_KEY
 0x03 LR_KEY
Index: format/utility.format
===================================================================
--- /branch/USB/dongle_16M/format/utility.format	(revision 2088)
+++ /branch/USB/dongle_16M/format/utility.format	(working copy)
@@ -151,6 +151,9 @@
 200 mem_hidreportdesc_kb_temp
 200 mem_hidreportdesc_m_temp
 100 mem_hidreportdesc_kb_new_temp
+16 mem_usb_kb_system
+3 mem_usb_kb_system_sta_data
+3 mem_usb_kb_system_last_data
 )
 
 
Index: output/eeprom.dat
===================================================================
--- /branch/USB/dongle_16M/output/eeprom.dat	(revision 2088)
+++ /branch/USB/dongle_16M/output/eeprom.dat	(working copy)
@@ -2,44 +2,48 @@
 02
 aa
 55
-82
-10
+6e
+11
 c2
 84
 00
-0a
+0b
 c0
 42
 83
-61
+9c
 c0
 44
 83
-3c
+77
 c0
 45
 03
-63
+9e
 c0
 00
 03
-5c
+97
 c0
 47
 00
-0b
+0c
 c0
 62
 00
-55
+74
 c0
 7b
 80
-12
+13
 c0
 7c
 00
-2d
+4c
+c0
+7e
+00
+2b
 20
 20
 2a
@@ -87,11 +91,11 @@
 20
 40
 00
-17
+18
 20
 40
 00
-21
+22
 20
 20
 48
@@ -111,7 +115,7 @@
 c0
 2d
 00
-1e
+1f
 68
 02
 11
@@ -143,7 +147,7 @@
 c0
 2d
 00
-2a
+49
 58
 00
 11
@@ -167,11 +171,131 @@
 70
 0b
 b3
-a9
+a3
+20
+60
+00
+00
+68
+00
+8d
+38
+20
+7a
+00
+00
+68
+00
+8d
+37
+24
+3a
+4b
+ac
+68
+00
+8d
+45
+20
+3a
+4b
+86
+68
+00
+8d
+36
+c0
+01
+cb
+bf
+c0
+81
+4b
+86
+68
+00
+8d
+3a
+24
+3a
+4b
+86
+20
+40
+4b
+6f
 20
+20
+00
+38
+68
+00
+8d
+38
+c4
+01
+00
+00
+68
+00
+8d
+37
+c3
+81
+00
+00
+68
+00
+8d
+38
+79
+3f
+fe
+02
 60
 00
+8d
+38
+68
+00
+8d
+52
+20
+7a
+00
 00
+c0
+10
+4b
+89
+c0
+10
+cb
+a4
+c0
+11
+00
+45
+20
+20
+2a
+8c
+70
+0d
+52
+00
+df
+20
+00
+02
+d8
+c0
+13
+bc
+20
+20
+4b
+5e
 58
 00
 13
@@ -235,7 +359,7 @@
 c0
 00
 00
-3b
+5a
 20
 20
 49
@@ -259,7 +383,7 @@
 c0
 00
 80
-41
+60
 20
 20
 49
@@ -271,7 +395,7 @@
 c0
 04
 80
-44
+63
 20
 20
 49
@@ -285,14 +409,6 @@
 4b
 03
 68
-00
-8d
-43
-24
-5a
-00
-51
-68
 01
 0c
 70
@@ -311,7 +427,15 @@
 24
 5a
 00
-4e
+6d
+68
+00
+8d
+43
+24
+5a
+00
+70
 20
 20
 4a
@@ -371,15 +495,15 @@
 20
 40
 00
-6a
+89
 20
 40
 01
-26
+45
 20
 40
 00
-63
+82
 68
 00
 c8
@@ -387,15 +511,15 @@
 c0
 00
 01
-7a
+99
 c0
 00
 80
-74
+93
 c0
 07
 80
-70
+8f
 20
 60
 00
@@ -407,7 +531,7 @@
 20
 40
 00
-66
+85
 20
 20
 65
@@ -455,39 +579,39 @@
 20
 40
 00
-79
+98
 20
 40
 00
-7d
+9c
 20
 40
 01
-44
+63
 20
 20
 00
-71
+90
 20
 40
 00
-79
+98
 20
 40
 00
-7d
+9c
 20
 40
 00
-c8
+e7
 20
 40
 01
-44
+63
 20
 20
 00
-75
+94
 70
 48
 ba
@@ -515,19 +639,19 @@
 20
 40
 00
-83
+a2
 20
 40
 00
-91
+b0
 20
 40
 02
-98
+b6
 20
 20
 00
-b0
+cf
 68
 00
 c8
@@ -575,15 +699,15 @@
 20
 40
 03
-79
+b4
 20
 40
 03
-99
+d4
 20
 20
-00
-e4
+01
+03
 68
 00
 c8
@@ -591,7 +715,7 @@
 c0
 00
 80
-aa
+c9
 68
 00
 c8
@@ -599,7 +723,7 @@
 c0
 00
 80
-a4
+c3
 68
 0a
 48
@@ -659,7 +783,7 @@
 20
 20
 03
-99
+d4
 70
 48
 bb
@@ -667,7 +791,7 @@
 20
 20
 03
-99
+d4
 1c
 42
 7e
@@ -691,7 +815,7 @@
 20
 40
 03
-74
+af
 60
 08
 c8
@@ -707,19 +831,19 @@
 20
 20
 03
-99
+d4
 20
 40
 00
-b3
+d2
 20
 40
 00
-ba
+d9
 20
 20
 00
-c1
+e0
 68
 00
 c8
@@ -815,11 +939,11 @@
 20
 40
 00
-cc
+eb
 20
 20
 00
-d8
+f7
 68
 00
 c8
@@ -867,15 +991,15 @@
 20
 20
 03
-79
+b4
 20
 40
 01
-d2
+f1
 24
 37
-80
-e4
+81
+03
 70
 49
 7c
@@ -902,20 +1026,20 @@
 81
 c0
 55
-00
-e7
+01
+06
 c0
 2a
-80
-f4
+81
+13
 c0
 11
 01
-04
+23
 c0
 7f
 81
-1c
+3b
 d8
 a0
 47
@@ -934,12 +1058,12 @@
 82
 c0
 00
-80
-eb
+81
+0a
 c0
 01
-00
-f1
+01
+10
 20
 60
 00
@@ -978,36 +1102,36 @@
 02
 20
 20
-00
-ed
+01
+0c
 68
 00
 c8
 82
 c0
 00
-80
-f8
+81
+17
 c0
 01
-00
-fe
+01
+1d
 20
 60
 00
 00
 20
 40
-00
-ec
+01
+0b
 68
 00
 c8
 a7
 c0
 00
-80
-fc
+81
+1b
 20
 60
 00
@@ -1022,8 +1146,8 @@
 00
 20
 40
-00
-f2
+01
+11
 68
 00
 c8
@@ -1031,7 +1155,7 @@
 c0
 00
 81
-02
+21
 20
 60
 00
@@ -1051,11 +1175,11 @@
 c0
 00
 81
-08
+27
 c0
 01
 01
-11
+30
 20
 60
 00
@@ -1067,7 +1191,7 @@
 c0
 01
 01
-0b
+2a
 20
 60
 00
@@ -1094,8 +1218,8 @@
 a7
 20
 20
-00
-e4
+01
+03
 68
 00
 c8
@@ -1103,7 +1227,7 @@
 c0
 80
 01
-14
+33
 20
 60
 00
@@ -1123,7 +1247,7 @@
 20
 40
 01
-0e
+2d
 70
 11
 c7
@@ -1131,7 +1255,7 @@
 20
 40
 00
-66
+85
 20
 40
 65
@@ -1147,11 +1271,11 @@
 c0
 00
 81
-20
+3f
 c0
 01
 01
-23
+42
 20
 60
 00
@@ -1263,7 +1387,7 @@
 24
 21
 01
-3c
+5b
 58
 00
 49
@@ -1351,11 +1475,11 @@
 c0
 50
 01
-61
+80
 c0
 50
 81
-57
+76
 c0
 53
 30
@@ -1363,15 +1487,15 @@
 c0
 53
 81
-66
+85
 c0
 54
 81
-6c
+8b
 c0
 58
 01
-6e
+8d
 20
 20
 30
@@ -1383,11 +1507,11 @@
 c0
 00
 81
-5c
+7b
 c0
 42
 01
-5f
+7e
 c0
 53
 b0
@@ -1411,11 +1535,11 @@
 20
 40
 00
-7a
+99
 20
 20
 01
-5c
+7b
 68
 00
 8c
@@ -1423,7 +1547,7 @@
 c0
 40
 81
-64
+83
 20
 20
 30
@@ -1431,7 +1555,7 @@
 20
 40
 01
-c0
+df
 20
 20
 30
@@ -1443,7 +1567,7 @@
 c0
 00
 01
-6a
+89
 c0
 00
 b0
@@ -1487,11 +1611,11 @@
 c0
 01
 81
-78
+97
 20
 40
 01
-2b
+4a
 68
 00
 c9
@@ -1499,7 +1623,7 @@
 c0
 01
 81
-78
+97
 70
 0c
 f7
@@ -1519,31 +1643,31 @@
 20
 40
 01
-9e
+bd
 20
 40
 01
-a4
+c3
 20
 40
 01
-81
+a0
 20
 40
 01
-85
+a4
 20
 40
 01
-d6
+f5
 20
 40
 01
-44
+63
 20
 20
 01
-7b
+9a
 68
 00
 c8
@@ -1555,11 +1679,11 @@
 20
 40
 00
-7f
+9e
 20
 20
 01
-c5
+e4
 68
 00
 c8
@@ -1571,11 +1695,11 @@
 20
 40
 00
-cc
+eb
 20
 40
 00
-d8
+f7
 68
 00
 c8
@@ -1591,15 +1715,15 @@
 20
 40
 00
-79
+98
 20
 40
 01
-c3
+e2
 20
 20
 01
-a1
+c0
 20
 40
 7f
@@ -1695,7 +1819,7 @@
 20
 40
 01
-8f
+ae
 24
 74
 00
@@ -1703,11 +1827,11 @@
 20
 40
 01
-b9
+d8
 20
 40
 01
-b1
+d0
 68
 00
 c8
@@ -1727,11 +1851,11 @@
 c0
 00
 01
-b6
+d5
 c0
 00
 81
-be
+dd
 20
 60
 00
@@ -1763,11 +1887,11 @@
 24
 3a
 01
-c0
+df
 20
 20
 00
-79
+98
 68
 00
 c9
@@ -1795,7 +1919,7 @@
 24
 3a
 00
-79
+98
 70
 48
 a6
@@ -1866,16 +1990,16 @@
 00
 20
 20
-00
-e4
+01
+03
 20
 40
-00
-e4
+01
+03
 20
 40
 03
-b3
+ee
 24
 77
 80
@@ -1883,7 +2007,7 @@
 20
 20
 02
-71
+90
 68
 00
 c8
@@ -1894,28 +2018,28 @@
 00
 20
 40
-01
-fb
+02
+1a
 20
 40
 02
-0f
+2e
 20
 40
 01
-d2
+f1
 24
 37
-80
-e4
+81
+03
 20
 40
 02
-0b
+2a
 20
 42
 82
-9b
+b9
 70
 48
 a6
@@ -1942,24 +2066,24 @@
 02
 24
 42
-81
-f2
+82
+11
 20
 40
-00
-e4
+01
+03
 20
 40
 01
-c3
+e2
 20
 40
 02
-0b
+2a
 20
 22
-81
-f4
+82
+13
 68
 02
 48
@@ -1974,8 +2098,8 @@
 00
 20
 22
-81
-f7
+82
+16
 68
 02
 48
@@ -1990,8 +2114,8 @@
 00
 20
 22
-81
-f9
+82
+18
 20
 60
 00
@@ -2022,16 +2146,16 @@
 e4
 20
 20
-01
-f5
+02
+14
 68
 00
 c8
 e7
 20
 20
-01
-f5
+02
+14
 68
 00
 c8
@@ -2071,7 +2195,7 @@
 20
 40
 02
-0b
+2a
 24
 62
 80
@@ -2131,27 +2255,27 @@
 c0
 00
 02
-32
+51
 c0
 00
 82
-4c
+6b
 c0
 01
 02
-18
+37
 c0
 01
 82
-4c
+6b
 20
 60
 00
 00
 20
 40
-00
-ec
+01
+0b
 68
 02
 48
@@ -2159,11 +2283,11 @@
 20
 3a
 02
-0f
+2e
 20
 40
 03
-79
+b4
 68
 00
 c8
@@ -2171,7 +2295,7 @@
 20
 5a
 02
-2d
+4c
 68
 00
 c8
@@ -2191,7 +2315,7 @@
 20
 40
 03
-6d
+a8
 60
 08
 c8
@@ -2199,7 +2323,7 @@
 20
 40
 03
-74
+af
 60
 08
 c8
@@ -2219,7 +2343,7 @@
 20
 40
 03
-9d
+d8
 60
 08
 c8
@@ -2243,7 +2367,7 @@
 20
 40
 03
-a1
+dc
 60
 00
 c8
@@ -2254,8 +2378,8 @@
 00
 20
 40
-00
-f2
+01
+11
 68
 02
 48
@@ -2263,11 +2387,11 @@
 20
 3a
 02
-0f
+2e
 20
 40
 03
-79
+b4
 68
 00
 c8
@@ -2275,7 +2399,7 @@
 20
 5a
 02
-47
+66
 68
 00
 c8
@@ -2295,7 +2419,7 @@
 20
 40
 03
-6d
+a8
 60
 08
 c8
@@ -2303,7 +2427,7 @@
 20
 40
 03
-74
+af
 60
 08
 c8
@@ -2323,7 +2447,7 @@
 20
 40
 03
-9d
+d8
 60
 08
 c8
@@ -2347,7 +2471,7 @@
 20
 40
 03
-a1
+dc
 60
 00
 c8
@@ -2358,8 +2482,8 @@
 00
 20
 40
-00
-ec
+01
+0b
 68
 02
 48
@@ -2367,7 +2491,7 @@
 20
 40
 03
-79
+b4
 68
 00
 c8
@@ -2375,7 +2499,7 @@
 20
 5a
 02
-60
+7f
 68
 00
 c8
@@ -2395,7 +2519,7 @@
 20
 40
 03
-6d
+a8
 60
 08
 c8
@@ -2403,7 +2527,7 @@
 20
 40
 03
-74
+af
 60
 08
 c8
@@ -2423,7 +2547,7 @@
 20
 40
 03
-9d
+d8
 60
 08
 c8
@@ -2515,7 +2639,7 @@
 20
 40
 02
-64
+83
 68
 00
 c7
@@ -2527,23 +2651,23 @@
 20
 20
 82
-7a
+99
 20
 40
 02
-7b
+9a
 20
 40
 03
-87
+c2
 20
 40
-03
-fd
+04
+38
 20
 20
-03
-f5
+04
+30
 70
 48
 38
@@ -2559,15 +2683,15 @@
 c0
 00
 82
-82
+a1
 c0
 01
 02
-87
+a6
 c0
 01
 82
-91
+b0
 20
 60
 00
@@ -2595,7 +2719,7 @@
 20
 40
 01
-3e
+5d
 24
 74
 00
@@ -2633,10 +2757,6 @@
 00
 00
 70
-48
-ba
-00
-70
 0d
 43
 00
@@ -2663,31 +2783,31 @@
 20
 40
 01
-d2
+f1
 24
 37
-80
-e4
+81
+03
 20
 20
 02
-9b
+b9
 20
 40
 02
-ac
+ca
 24
 34
-00
-e4
+01
+03
 68
 00
 c8
 36
 20
 3a
-00
-e4
+01
+03
 1f
 e0
 fe
@@ -2719,7 +2839,7 @@
 20
 5a
 01
-c3
+e2
 68
 00
 c8
@@ -2727,19 +2847,19 @@
 c0
 00
 82
-ba
+d8
 c0
 01
 02
-d9
+f7
 c0
 7f
 83
-12
+4d
 20
 20
-00
-e4
+01
+03
 20
 40
 7f
@@ -2799,7 +2919,7 @@
 20
 40
 00
-a6
+c5
 68
 00
 c8
@@ -2823,7 +2943,7 @@
 c0
 00
 83
-1a
+55
 68
 00
 c8
@@ -2851,7 +2971,7 @@
 c0
 67
 83
-1e
+59
 58
 00
 00
@@ -2875,7 +2995,7 @@
 24
 5a
 02
-d1
+ef
 68
 00
 c8
@@ -2883,7 +3003,7 @@
 20
 5a
 02
-d5
+f3
 20
 20
 31
@@ -2931,7 +3051,7 @@
 20
 20
 83
-1c
+57
 68
 00
 c8
@@ -2939,39 +3059,55 @@
 c0
 00
 02
-e0
+ff
 c0
 01
-82
-f9
+03
+36
+c0
+01
+83
+1d
 20
 20
+01
+03
+68
+00
+c8
+84
+20
+5a
+03
+10
+70
+48
+84
 00
-e4
 d8
 a0
 0d
 64
 20
 40
-02
-ee
+03
+12
 68
 04
 0d
 64
 24
 5a
-02
-f1
+03
+15
 68
 04
 0d
 64
 20
 5a
-02
-f5
+03
+19
 68
 04
 0d
@@ -3002,8 +3138,16 @@
 c7
 20
 20
+01
+03
+70
+48
+ba
+00
+20
+60
+00
 00
-e4
 d8
 c0
 48
@@ -3055,7 +3199,7 @@
 20
 40
 03
-07
+2b
 68
 01
 0d
@@ -3063,7 +3207,7 @@
 24
 5a
 03
-0a
+2e
 68
 01
 0d
@@ -3071,7 +3215,7 @@
 20
 5a
 03
-0e
+32
 68
 01
 8d
@@ -3102,8 +3246,8 @@
 d2
 20
 20
-00
-e4
+01
+03
 d8
 c0
 48
@@ -3148,6 +3292,98 @@
 20
 7f
 08
+d8
+a0
+13
+bc
+20
+40
+03
+40
+68
+01
+13
+bc
+60
+01
+13
+cc
+68
+09
+13
+cf
+98
+46
+7c
+00
+24
+42
+83
+4b
+68
+01
+13
+cc
+60
+01
+13
+cf
+20
+20
+01
+03
+d8
+c0
+48
+82
+df
+20
+00
+02
+20
+20
+7f
+01
+70
+48
+d6
+01
+58
+00
+01
+80
+d8
+e0
+00
+0c
+20
+20
+7f
+08
+70
+48
+d6
+00
+58
+00
+00
+00
+d8
+e0
+00
+0c
+20
+20
+7f
+08
+70
+0d
+52
+22
+20
+20
+31
+b9
 68
 00
 c8
@@ -3155,11 +3391,11 @@
 c0
 00
 83
-16
+51
 c0
 01
 03
-18
+53
 20
 60
 00
@@ -3171,7 +3407,7 @@
 20
 20
 01
-21
+40
 68
 02
 48
@@ -3179,7 +3415,7 @@
 20
 20
 01
-24
+43
 68
 02
 48
@@ -3187,7 +3423,7 @@
 20
 20
 01
-21
+40
 68
 02
 48
@@ -3195,7 +3431,7 @@
 20
 20
 01
-24
+43
 68
 01
 48
@@ -3211,7 +3447,7 @@
 20
 22
 83
-23
+5e
 20
 60
 00
@@ -3223,7 +3459,7 @@
 c0
 61
 03
-30
+6b
 68
 00
 c9
@@ -3239,7 +3475,7 @@
 20
 40
 01
-35
+54
 68
 00
 c9
@@ -3259,11 +3495,11 @@
 c0
 60
 81
-76
+95
 c0
 61
 03
-30
+6b
 20
 60
 00
@@ -3283,7 +3519,7 @@
 20
 40
 01
-26
+45
 68
 00
 c8
@@ -3291,11 +3527,11 @@
 c0
 2a
 83
-38
+73
 c0
 55
 03
-3a
+75
 20
 60
 00
@@ -3383,11 +3619,11 @@
 c0
 02
 03
-55
+90
 20
 20
 03
-4e
+89
 70
 89
 4b
@@ -3503,7 +3739,7 @@
 20
 40
 03
-6d
+a8
 60
 08
 c8
@@ -3587,7 +3823,7 @@
 c2
 00
 03
-7d
+b8
 1a
 22
 7e
@@ -3695,7 +3931,7 @@
 20
 40
 03
-9d
+d8
 60
 08
 c8
@@ -3707,7 +3943,7 @@
 20
 40
 03
-a1
+dc
 18
 40
 84
@@ -3831,7 +4067,7 @@
 20
 40
 03
-aa
+e5
 78
 57
 fc
@@ -3866,8 +4102,8 @@
 00
 24
 2c
-03
-f8
+04
+33
 78
 46
 fc
@@ -3906,8 +4142,8 @@
 00
 24
 22
-83
-f5
+84
+30
 09
 80
 00
@@ -3930,8 +4166,8 @@
 02
 20
 22
-83
-da
+84
+15
 68
 00
 c7
@@ -3946,8 +4182,8 @@
 00
 24
 20
-83
-f5
+84
+30
 09
 80
 00
@@ -3970,8 +4206,8 @@
 1f
 20
 22
-83
-e4
+84
+1f
 09
 80
 00
@@ -3986,8 +4222,8 @@
 00
 c2
 00
-03
-e0
+04
+1b
 09
 80
 00
@@ -4022,8 +4258,8 @@
 bb
 20
 23
-03
-f5
+04
+30
 78
 37
 fc
@@ -4071,11 +4307,11 @@
 20
 40
 03
-66
+a1
 20
 20
-03
-f5
+04
+30
 20
 40
 29
@@ -4103,11 +4339,11 @@
 20
 40
 03
-aa
+e5
 20
 40
-03
-fa
+04
+35
 79
 20
 2a
@@ -4187,7 +4423,7 @@
 c2
 00
 04
-13
+4e
 68
 00
 c8
@@ -4228,8 +4464,8 @@
 60
 00
 00
-99
-d3
+f9
+e1
 aa
 55
 01
@@ -4259,7 +4495,7 @@
 1e
 40
 80
-01
+11
 aa
 55
 0f
@@ -4472,11 +4708,11 @@
 c0
 aa
 55
-aa
+a4
 00
 90
 12
-a9
+a3
 05
 01
 09
@@ -4565,23 +4801,17 @@
 19
 81
 29
-83
+88
 15
 00
 25
 01
 95
-03
+08
 75
 01
 81
 06
-95
-01
-75
-05
-81
-01
 c0
 05
 0c
@@ -4806,238 +5036,8 @@
 42
 00
 84
-bb
-d5
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+7f
+4c
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-0c
-06
+0d
+8a
Index: output/memmap.format
===================================================================
--- /branch/USB/dongle_16M/output/memmap.format	(revision 2088)
+++ /branch/USB/dongle_16M/output/memmap.format	(working copy)
@@ -604,6 +604,9 @@
 0x11c8 mem_hidreportdesc_kb_temp
 0x1290 mem_hidreportdesc_m_temp
 0x1358 mem_hidreportdesc_kb_new_temp
+0x13bc mem_usb_kb_system
+0x13cc mem_usb_kb_system_sta_data
+0x13cf mem_usb_kb_system_last_data
 0x4000 mem_patch00
 0x4001 mem_patch01
 0x4002 mem_patch02
Index: output/program.lis
===================================================================
--- /branch/USB/dongle_16M/output/program.lis	(revision 2088)
+++ /branch/USB/dongle_16M/output/program.lis	(working copy)
@@ -1,1405 +1,1482 @@
 include "bt_format "
 org 0x0000
-0000 c284000a bbit1 8 ,pf_patch_ext 
-0001 c0428361 beq patch10_5 ,p_shutdown_radio 
-0002 c044833c beq patch11_1 ,p_set_freq_tx 
-0003 c0450363 beq patch11_2 ,p_initialize_radio_cont 
-0004 c000035c beq patch00_0 ,p_soft_reset 
-0005 c047000b beq patch11_6 ,p_save_rssi 
-0006 c0620055 beq patch18_4 ,p_app_init 
-0007 c07b8012 beq patch1e_7 ,p_usb_init 
-0008 c07c002d beq patch1f_0 ,p_usb_status1 
-0009 20202a8e branch loop 
+0000 c284000b bbit1 8 ,pf_patch_ext 
+0001 c042839c beq patch10_5 ,p_shutdown_radio 
+0002 c0448377 beq patch11_1 ,p_set_freq_tx 
+0003 c045039e beq patch11_2 ,p_initialize_radio_cont 
+0004 c0000397 beq patch00_0 ,p_soft_reset 
+0005 c047000c beq patch11_6 ,p_save_rssi 
+0006 c0620074 beq patch18_4 ,p_app_init 
+0007 c07b8013 beq patch1e_7 ,p_usb_init 
+0008 c07c004c beq patch1f_0 ,p_usb_status1 
+0009 c07e002b beq patch1f_4 ,p_usb_tx 
+000a 20202a8e branch loop 
 
 pf_patch_ext:
-000a 20202a8e branch loop 
+000b 20202a8e branch loop 
 
 p_save_rssi:
-000b 68110981 hfetch 2 ,rf_afc_d2a 
-000c 1ff1fe00 rshift4 pdata ,pdata 
-000d 1fe97e00 rshift3 pdata ,pdata 
-000e 1fe67e00 sub pdata ,0 ,pdata 
-000f 1fe17eff and_into 0xff ,pdata 
-0010 6000c8f0 store 1 ,mem_rssi_hex 
-0011 202029c1 branch save_rssi + 6 
+000c 68110981 hfetch 2 ,rf_afc_d2a 
+000d 1ff1fe00 rshift4 pdata ,pdata 
+000e 1fe97e00 rshift3 pdata ,pdata 
+000f 1fe67e00 sub pdata ,0 ,pdata 
+0010 1fe17eff and_into 0xff ,pdata 
+0011 6000c8f0 store 1 ,mem_rssi_hex 
+0012 202029c1 branch save_rssi + 6 
 
 p_usb_init:
-0012 708a0500 jam 0 ,core_usb_driver 
-0013 20404919 call usb_init_param 
-0014 20400017 call p_usb_new_vid_pid 
-0015 20400021 call p_usb_hid_icon 
-0016 202048ec branch usb_init + 2 
+0013 708a0500 jam 0 ,core_usb_driver 
+0014 20404919 call usb_init_param 
+0015 20400018 call p_usb_new_vid_pid 
+0016 20400022 call p_usb_hid_icon 
+0017 202048ec branch usb_init + 2 
 
 p_usb_new_vid_pid:
-0017 680091be fetch 1 ,mem_usb_new_vid_pid_value 
-0018 207a0000 rtn blank 
-0019 680091c7 fetch 1 ,mem_dongle_kb_bind_flag 
-001a c02d001e beq dongle_kb_bind_success ,p_usb_new_vid_pid_for_suit 
+0018 680091be fetch 1 ,mem_usb_new_vid_pid_value 
+0019 207a0000 rtn blank 
+001a 680091c7 fetch 1 ,mem_dongle_kb_bind_flag 
+001b c02d001f beq dongle_kb_bind_success ,p_usb_new_vid_pid_for_suit 
 
 p_usb_new_vid_pid_for_mouse_only_auto_pair:
-001b 680211bf fetch 4 ,mem_usb_new_vid_pid_value + 1 
-001c 60020b71 store 4 ,mem_devicedesc + 9 
-001d 20600000 rtn 
+001c 680211bf fetch 4 ,mem_usb_new_vid_pid_value + 1 
+001d 60020b71 store 4 ,mem_devicedesc + 9 
+001e 20600000 rtn 
 
 p_usb_new_vid_pid_for_suit:
-001e 680211c3 fetch 4 ,mem_usb_new_vid_pid_value + 5 
-001f 60020b71 store 4 ,mem_devicedesc + 9 
-0020 20600000 rtn 
+001f 680211c3 fetch 4 ,mem_usb_new_vid_pid_value + 5 
+0020 60020b71 store 4 ,mem_devicedesc + 9 
+0021 20600000 rtn 
 
 p_usb_hid_icon:
-0021 680091c7 fetch 1 ,mem_dongle_kb_bind_flag 
-0022 c02d002a beq dongle_kb_bind_success ,p_new_kb_hidreportdesc 
-0023 580011c8 setarg mem_hidreportdesc_kb_temp 
-0024 60010b7c store 2 ,mem_hidreportdesc_kb 
-0025 58001290 setarg mem_hidreportdesc_m_temp 
-0026 60010b7e store 2 ,mem_hidreportdesc_m 
-0027 700b9a1a jam 0x1a ,mem_confdesc + 26 
-0028 700bb3a9 jam 0xa9 ,mem_confdesc + 51 
-0029 20600000 rtn 
+0022 680091c7 fetch 1 ,mem_dongle_kb_bind_flag 
+0023 c02d0049 beq dongle_kb_bind_success ,p_new_kb_hidreportdesc 
+0024 580011c8 setarg mem_hidreportdesc_kb_temp 
+0025 60010b7c store 2 ,mem_hidreportdesc_kb 
+0026 58001290 setarg mem_hidreportdesc_m_temp 
+0027 60010b7e store 2 ,mem_hidreportdesc_m 
+0028 700b9a1a jam 0x1a ,mem_confdesc + 26 
+0029 700bb3a3 jam 0xa3 ,mem_confdesc + 51 
+002a 20600000 rtn 
+
+p_usb_tx:
+002b 68008d38 fetch 1 ,mem_usb_tx_enable 
+002c 207a0000 rtn blank 
+002d 68008d37 fetch 1 ,mem_usb_tx_wait 
+002e 243a4bac nbranch usb_inwake_state_tx_dispose ,blank 
+002f 68008d45 fetch 1 ,mem_usb_device_enumeration_endflag 
+0030 203a4b86 branch usb_tx_fifo_release ,blank 
+0031 68008d36 fetch 1 ,mem_usb_state 
+0032 c001cbbf beq usb_sleep ,usb_windows_wakeup 
+0033 c0814b86 bne usb_connected ,usb_tx_fifo_release 
+0034 68008d3a fetch 1 ,mem_usb_clear_remote_wakeup 
+0035 243a4b86 nbranch usb_tx_fifo_release ,blank 
+0036 20404b6f call usb_tx_data_ep1 
+0037 20200038 branch p_usb_tx_data_ep2 
+
+p_usb_tx_data_ep2:
+0038 68008d38 fetch 1 ,mem_usb_tx_enable 
+0039 c4010000 rtnbit0 2 
+003a 68008d37 fetch 1 ,mem_usb_tx_wait 
+003b c3810000 rtnbit1 2 
+003c 68008d38 fetch 1 ,mem_usb_tx_enable 
+003d 793ffe02 set0 2 ,pdata 
+003e 60008d38 store 1 ,mem_usb_tx_enable 
+003f 68008d52 fetch 1 ,mem_usb_ep2_data 
+0040 207a0000 rtn blank 
+0041 c0104b89 beq usb_ep2_ms ,usb_tx_ms_data 
+0042 c010cba4 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+0043 c0110045 beq usb_ep2_systemkey ,p_usb_tx_kb_systemkey_data 
+0044 20202a8c branch assert 
+
+p_usb_tx_kb_systemkey_data:
+0045 700d5200 jam 0 ,mem_usb_ep2_data 
+0046 df200002 arg 2 ,loopcnt 
+0047 d8c013bc arg mem_usb_kb_system ,contr 
+0048 20204b5e branch usb_tx_ep2 
 
 p_new_kb_hidreportdesc:
-002a 58001358 setarg mem_hidreportdesc_kb_new_temp 
-002b 60010b7c store 2 ,mem_hidreportdesc_kb 
-002c 20600000 rtn 
+0049 58001358 setarg mem_hidreportdesc_kb_new_temp 
+004a 60010b7c store 2 ,mem_hidreportdesc_kb 
+004b 20600000 rtn 
 
 p_usb_status1:
-002d 708a2611 jam 0x11 ,core_usb_status 
-002e 68108a20 hfetch 1 ,core_usb_ep_len 
-002f 60008b24 store 1 ,mem_usb_read_len 
-0030 1fe27200 copy pdata ,loopcnt 
-0031 203a4943 branch usb_rx_no_data ,blank 
-0032 d8a00c6e arg mem_usb_setup ,contw 
-0033 20404946 call usb_rx_read 
-0034 68008b24 fetch 1 ,mem_usb_read_len 
-0035 1fe67c07 sub pdata ,7 ,null 
-0036 20610000 rtn positive 
-0037 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-0038 1fe17e80 and_into 0x80 ,pdata 
-0039 c000003b beq out_device ,p_usb_out_device 
-003a 20204957 branch usb_class_type + 2 
+004c 708a2611 jam 0x11 ,core_usb_status 
+004d 68108a20 hfetch 1 ,core_usb_ep_len 
+004e 60008b24 store 1 ,mem_usb_read_len 
+004f 1fe27200 copy pdata ,loopcnt 
+0050 203a4943 branch usb_rx_no_data ,blank 
+0051 d8a00c6e arg mem_usb_setup ,contw 
+0052 20404946 call usb_rx_read 
+0053 68008b24 fetch 1 ,mem_usb_read_len 
+0054 1fe67c07 sub pdata ,7 ,null 
+0055 20610000 rtn positive 
+0056 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+0057 1fe17e80 and_into 0x80 ,pdata 
+0058 c000005a beq out_device ,p_usb_out_device 
+0059 20204957 branch usb_class_type + 2 
 
 p_usb_out_device:
-003b 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
-003c 1ff1fe00 rshift4 pdata ,pdata 
-003d 1fe37e00 rshift pdata ,pdata 
-003e 1fe17e03 and_into 0x03 ,pdata 
-003f c0008041 beq class_req ,p_usb_out_class_req 
-0040 20204966 branch usb_out_device + 4 
+005a 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+005b 1ff1fe00 rshift4 pdata ,pdata 
+005c 1fe37e00 rshift pdata ,pdata 
+005d 1fe17e03 and_into 0x03 ,pdata 
+005e c0008060 beq class_req ,p_usb_out_class_req 
+005f 20204966 branch usb_out_device + 4 
 
 p_usb_out_class_req:
-0041 68008c6f fetch 1 ,mem_usb_setup_brequest 
-0042 c0048044 beq set_report ,p_usb_set_report 
-0043 2020497f branch usb_out_class_req + 1 
+0060 68008c6f fetch 1 ,mem_usb_setup_brequest 
+0061 c0048063 beq set_report ,p_usb_set_report 
+0062 2020497f branch usb_out_class_req + 1 
 
 p_usb_set_report:
-0044 700d5001 jam 1 ,mem_usb0_get_set_report 
-0045 20404b03 call usb_set_report_resume_judge 
-0046 68008d43 fetch 1 ,mem_usb_tx_win_enable 
-0047 245a0051 ncall p_usb_get_output_data ,blank 
-0048 68010c70 fetch 2 ,mem_usb_setup_bvalue 
-0049 60010d4e store 2 ,mem_usb_setup_bvalue_temp 
-004a 20003a98 nop 15000 
-004b 68108a20 hfetch 1 ,core_usb_ep_len 
-004c 245a004e ncall p_usb_set_report_rxdata ,blank 
-004d 20204afd branch usb_set_report + 4 
+0063 700d5001 jam 1 ,mem_usb0_get_set_report 
+0064 20404b03 call usb_set_report_resume_judge 
+0065 68010c70 fetch 2 ,mem_usb_setup_bvalue 
+0066 60010d4e store 2 ,mem_usb_setup_bvalue_temp 
+0067 20003a98 nop 15000 
+0068 68108a20 hfetch 1 ,core_usb_ep_len 
+0069 245a006d ncall p_usb_set_report_rxdata ,blank 
+006a 68008d43 fetch 1 ,mem_usb_tx_win_enable 
+006b 245a0070 ncall p_usb_get_output_data ,blank 
+006c 20204afd branch usb_set_report + 4 
 
 p_usb_set_report_rxdata:
-004e 1fe27200 copy pdata ,loopcnt 
-004f d8a00c76 arg mem_usb0_setup ,contw 
-0050 20204946 branch usb_rx_read 
+006d 1fe27200 copy pdata ,loopcnt 
+006e d8a00c76 arg mem_usb0_setup ,contw 
+006f 20204946 branch usb_rx_read 
 
 p_usb_get_output_data:
-0051 68008c76 fetch 1 ,mem_usb0_setup 
-0052 6000c97a store 1 ,mem_24g_led_status 
-0053 7048ba03 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
-0054 20600000 rtn 
+0070 68008c76 fetch 1 ,mem_usb0_setup 
+0071 6000c97a store 1 ,mem_24g_led_status 
+0072 7048ba03 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
+0073 20600000 rtn 
 
 p_app_init:
-0055 70497b07 jam g24_bind_mode_delay ,mem_24g_bind_delay_count 
-0056 204074b9 call enable_authrom 
-0057 680240a0 fetch 4 ,mem_lap 
-0058 600248a1 store 4 ,mem_24g_rx_addr 
-0059 6808c23a fetcht 1 ,mem_eeprom_wp_gpio 
-005a 2040680e call gpio_config_output 
-005b 2040006a call p_dongle_init 
-005c 20400126 call p_g24_queue_init 
-005d 20400063 call p_dongle_iic_init 
-005e 6800c8bc fetch 1 ,mem_24g_pair_mode 
-005f c000017a beq 0x00 ,p_dongle_auto_bind 
-0060 c0008074 beq 0x01 ,p_dongle_pc_bind 
-0061 c0078070 beq 0x0f ,p_dongle_all_powerful 
-0062 20600000 rtn 
+0074 70497b07 jam g24_bind_mode_delay ,mem_24g_bind_delay_count 
+0075 204074b9 call enable_authrom 
+0076 680240a0 fetch 4 ,mem_lap 
+0077 600248a1 store 4 ,mem_24g_rx_addr 
+0078 6808c23a fetcht 1 ,mem_eeprom_wp_gpio 
+0079 2040680e call gpio_config_output 
+007a 20400089 call p_dongle_init 
+007b 20400145 call p_g24_queue_init 
+007c 20400082 call p_dongle_iic_init 
+007d 6800c8bc fetch 1 ,mem_24g_pair_mode 
+007e c0000199 beq 0x00 ,p_dongle_auto_bind 
+007f c0008093 beq 0x01 ,p_dongle_pc_bind 
+0080 c007808f beq 0x0f ,p_dongle_all_powerful 
+0081 20600000 rtn 
 
 p_dongle_iic_init:
-0063 2040659c call iic_init_390k 
-0064 20400066 call p_dongle_set_kb_bind_eeprom 
-0065 202065df branch iicd_read_eep_data 
+0082 2040659c call iic_init_390k 
+0083 20400085 call p_dongle_set_kb_bind_eeprom 
+0084 202065df branch iicd_read_eep_data 
 
 p_dongle_set_kb_bind_eeprom:
-0066 da2011c7 arg mem_dongle_kb_bind_flag ,rega 
-0067 da400000 arg dongle_kb_bind_eeprom_offect ,regb 
-0068 d8400001 arg 1 ,temp 
-0069 20600000 rtn 
+0085 da2011c7 arg mem_dongle_kb_bind_flag ,rega 
+0086 da400000 arg dongle_kb_bind_eeprom_offect ,regb 
+0087 d8400001 arg 1 ,temp 
+0088 20600000 rtn 
 
 p_dongle_init:
-006a 6800c1de fetch 1 ,mem_tx_power 
-006b 6000c8ef store 1 ,mem_tx_power_temp 
-006c df200080 arg 0x80 ,loopcnt 
-006d d8a00d9e arg mem_rssi_noise_buffer ,contw 
-006e 20407ec6 call memset0 
-006f 202048ea branch usb_init 
+0089 6800c1de fetch 1 ,mem_tx_power 
+008a 6000c8ef store 1 ,mem_tx_power_temp 
+008b df200080 arg 0x80 ,loopcnt 
+008c d8a00d9e arg mem_rssi_noise_buffer ,contw 
+008d 20407ec6 call memset0 
+008e 202048ea branch usb_init 
 
 p_dongle_all_powerful:
-0070 20400079 call p_dongle_check_mode 
+008f 20400098 call p_dongle_check_mode 
 
 p_dongle_all_powerful_loop:
-0071 2040007d call p_g24_dongle_work_mode 
-0072 20400144 call p_dongle_usb_dispatch 
-0073 20200071 branch p_dongle_all_powerful_loop 
+0090 2040009c call p_g24_dongle_work_mode 
+0091 20400163 call p_dongle_usb_dispatch 
+0092 20200090 branch p_dongle_all_powerful_loop 
 
 p_dongle_pc_bind:
-0074 20400079 call p_dongle_check_mode 
+0093 20400098 call p_dongle_check_mode 
 
 p_dongle_pc_bind_loop:
-0075 2040007d call p_g24_dongle_work_mode 
-0076 204000c8 call p_g24_dongle_bind_mode 
-0077 20400144 call p_dongle_usb_dispatch 
-0078 20200075 branch p_dongle_pc_bind_loop 
+0094 2040009c call p_g24_dongle_work_mode 
+0095 204000e7 call p_g24_dongle_bind_mode 
+0096 20400163 call p_dongle_usb_dispatch 
+0097 20200094 branch p_dongle_pc_bind_loop 
 
 p_dongle_check_mode:
-0079 7048ba00 jam 0 ,mem_24g_ackpayload_enable 
+0098 7048ba00 jam 0 ,mem_24g_ackpayload_enable 
 
 p_dongle_work_mode_enable:
-007a 7048a600 jam dongle_work ,mem_dongle_work_mode 
-007b 7048a500 jam clear_init ,mem_dongle_mode_init 
-007c 20600000 rtn 
+0099 7048a600 jam dongle_work ,mem_dongle_work_mode 
+009a 7048a500 jam clear_init ,mem_dongle_mode_init 
+009b 20600000 rtn 
 
 p_g24_dongle_work_mode:
-007d 6800c8a6 fetch 1 ,mem_dongle_work_mode 
-007e c1800000 rtnne dongle_work 
+009c 6800c8a6 fetch 1 ,mem_dongle_work_mode 
+009d c1800000 rtnne dongle_work 
 
 p_g24_dongle_work_mode_start:
-007f 20400083 call p_g24_dongle_work_init 
-0080 20400091 call p_g24_ch_process 
-0081 20400298 call p_g24_receive_packet_start 
-0082 202000b0 branch p_g24_blank_data_process 
+009e 204000a2 call p_g24_dongle_work_init 
+009f 204000b0 call p_g24_ch_process 
+00a0 204002b6 call p_g24_receive_packet_start 
+00a1 202000cf branch p_g24_blank_data_process 
 
 p_g24_dongle_work_init:
-0083 6800c8a5 fetch 1 ,mem_dongle_mode_init 
-0084 c3800000 rtnbit1 dongle_work 
-0085 79207e00 set1 dongle_work ,pdata 
-0086 6000c8a5 store 1 ,mem_dongle_mode_init 
-0087 6800c8ef fetch 1 ,mem_tx_power_temp 
-0088 6000c1de store 1 ,mem_tx_power 
-0089 7048ba00 jam 0 ,mem_24g_ackpayload_enable 
-008a 700d3800 jam 0 ,mem_usb_tx_enable 
-008b 7048b201 jam 1 ,mem_24g_abort_packet 
-008c 70483700 jam 0 ,mem_24g_pid 
-008d 680248a1 fetch 4 ,mem_24g_rx_addr 
-008e 20400379 call p_g24_update_addr_and_synccrc8 
-008f 20400399 call p_g24_ch 
-0090 202000e4 branch p_g24_rx_interrupt_clear 
+00a2 6800c8a5 fetch 1 ,mem_dongle_mode_init 
+00a3 c3800000 rtnbit1 dongle_work 
+00a4 79207e00 set1 dongle_work ,pdata 
+00a5 6000c8a5 store 1 ,mem_dongle_mode_init 
+00a6 6800c8ef fetch 1 ,mem_tx_power_temp 
+00a7 6000c1de store 1 ,mem_tx_power 
+00a8 7048ba00 jam 0 ,mem_24g_ackpayload_enable 
+00a9 700d3800 jam 0 ,mem_usb_tx_enable 
+00aa 7048b201 jam 1 ,mem_24g_abort_packet 
+00ab 70483700 jam 0 ,mem_24g_pid 
+00ac 680248a1 fetch 4 ,mem_24g_rx_addr 
+00ad 204003b4 call p_g24_update_addr_and_synccrc8 
+00ae 204003d4 call p_g24_ch 
+00af 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_ch_process:
-0091 6800c8b2 fetch 1 ,mem_24g_abort_packet 
-0092 c00080aa beq 1 ,p_g24_noise_rssi 
-0093 6800c8bb fetch 1 ,mem_24g_hop_packet 
-0094 c00080a4 beq 1 ,p_g24_ch_receive_hop_pac 
-0095 680a48b4 fetcht 4 ,mem_24g_hop_btclk 
-0096 1c427e00 copy clkn_bt ,pdata 
-0097 98467c00 isub temp ,null 
-0098 24412d18 ncall g24_timer_timeout ,positive 
-0099 1fe22400 copy pdata ,regb 
-009a 680248b4 fetch 4 ,mem_24g_hop_btclk 
-009b 6808c8b8 fetcht 1 ,mem_24g_hop_interval 
-009c 98408400 iadd temp ,temp 
-009d 1a427e00 copy regb ,pdata 
-009e 98467c00 isub temp ,null 
-009f 24610000 nrtn positive 
-00a0 793ffe1c set0 28 ,pdata 
-00a1 600248b4 store 4 ,mem_24g_hop_btclk 
-00a2 7048b201 jam 1 ,mem_24g_abort_packet 
-00a3 20200399 branch p_g24_ch 
+00b0 6800c8b2 fetch 1 ,mem_24g_abort_packet 
+00b1 c00080c9 beq 1 ,p_g24_noise_rssi 
+00b2 6800c8bb fetch 1 ,mem_24g_hop_packet 
+00b3 c00080c3 beq 1 ,p_g24_ch_receive_hop_pac 
+00b4 680a48b4 fetcht 4 ,mem_24g_hop_btclk 
+00b5 1c427e00 copy clkn_bt ,pdata 
+00b6 98467c00 isub temp ,null 
+00b7 24412d18 ncall g24_timer_timeout ,positive 
+00b8 1fe22400 copy pdata ,regb 
+00b9 680248b4 fetch 4 ,mem_24g_hop_btclk 
+00ba 6808c8b8 fetcht 1 ,mem_24g_hop_interval 
+00bb 98408400 iadd temp ,temp 
+00bc 1a427e00 copy regb ,pdata 
+00bd 98467c00 isub temp ,null 
+00be 24610000 nrtn positive 
+00bf 793ffe1c set0 28 ,pdata 
+00c0 600248b4 store 4 ,mem_24g_hop_btclk 
+00c1 7048b201 jam 1 ,mem_24g_abort_packet 
+00c2 202003d4 branch p_g24_ch 
 
 p_g24_ch_receive_hop_pac:
-00a4 7048bb00 jam 0 ,mem_24g_hop_packet 
-00a5 20200399 branch p_g24_ch 
+00c3 7048bb00 jam 0 ,mem_24g_hop_packet 
+00c4 202003d4 branch p_g24_ch 
 
 p_g24_ch_timer_reinit:
-00a6 1c427e00 copy clkn_bt ,pdata 
-00a7 600248b4 store 4 ,mem_24g_hop_btclk 
-00a8 7048b300 jam 0 ,mem_24g_rf_laststa 
-00a9 20600000 rtn 
+00c5 1c427e00 copy clkn_bt ,pdata 
+00c6 600248b4 store 4 ,mem_24g_hop_btclk 
+00c7 7048b300 jam 0 ,mem_24g_rf_laststa 
+00c8 20600000 rtn 
 
 p_g24_noise_rssi:
-00aa da200d9e arg mem_rssi_noise_buffer ,rega 
-00ab 20400374 call p_rssi_average 
-00ac 6008c8f1 storet 1 ,mem_rssi_noise_avg 
-00ad 18467c50 sub temp ,rssi_thresh_noise ,null 
-00ae 24610000 nrtn positive 
-00af 20200399 branch p_g24_ch 
+00c9 da200d9e arg mem_rssi_noise_buffer ,rega 
+00ca 204003af call p_rssi_average 
+00cb 6008c8f1 storet 1 ,mem_rssi_noise_avg 
+00cc 18467c50 sub temp ,rssi_thresh_noise ,null 
+00cd 24610000 nrtn positive 
+00ce 202003d4 branch p_g24_ch 
 
 p_g24_blank_data_process:
-00b0 204000b3 call p_g24_ms_blank_data 
-00b1 204000ba call p_g24_kb_blank_data 
-00b2 202000c1 branch p_g24_kb_mul_blank_data 
+00cf 204000d2 call p_g24_ms_blank_data 
+00d0 204000d9 call p_g24_kb_blank_data 
+00d1 202000e0 branch p_g24_kb_mul_blank_data 
 
 p_g24_ms_blank_data:
-00b3 6800c8d7 fetch 1 ,mem_24g_ms_blank_data_enable 
-00b4 207a0000 rtn blank 
-00b5 d8e0000b arg timer_new_ms_blank ,queue 
-00b6 20407f16 call timer_check 
-00b7 247a0000 nrtn blank 
-00b8 7048d700 jam 0 ,mem_24g_ms_blank_data_enable 
-00b9 20202fa0 branch g24_ms_blank_data_2usb 
+00d2 6800c8d7 fetch 1 ,mem_24g_ms_blank_data_enable 
+00d3 207a0000 rtn blank 
+00d4 d8e0000b arg timer_new_ms_blank ,queue 
+00d5 20407f16 call timer_check 
+00d6 247a0000 nrtn blank 
+00d7 7048d700 jam 0 ,mem_24g_ms_blank_data_enable 
+00d8 20202fa0 branch g24_ms_blank_data_2usb 
 
 p_g24_kb_blank_data:
-00ba 6800c8d5 fetch 1 ,mem_24g_kb_blank_data_enable 
-00bb 207a0000 rtn blank 
-00bc d8e0000e arg timer_new_kb_blank ,queue 
-00bd 20407f16 call timer_check 
-00be 247a0000 nrtn blank 
-00bf 7048d500 jam 0 ,mem_24g_kb_blank_data_enable 
-00c0 20202fac branch g24_kb_blank_data_2usb 
+00d9 6800c8d5 fetch 1 ,mem_24g_kb_blank_data_enable 
+00da 207a0000 rtn blank 
+00db d8e0000e arg timer_new_kb_blank ,queue 
+00dc 20407f16 call timer_check 
+00dd 247a0000 nrtn blank 
+00de 7048d500 jam 0 ,mem_24g_kb_blank_data_enable 
+00df 20202fac branch g24_kb_blank_data_2usb 
 
 p_g24_kb_mul_blank_data:
-00c1 6800c8d6 fetch 1 ,mem_24g_kb_mul_blank_data_enable 
-00c2 207a0000 rtn blank 
-00c3 d8e0000c arg timer_new_kb_mul_blank ,queue 
-00c4 20407f16 call timer_check 
-00c5 247a0000 nrtn blank 
-00c6 7048d600 jam 0 ,mem_24g_kb_mul_blank_data_enable 
-00c7 20202fb8 branch g24_kb_mul_blank_data_2usb 
+00e0 6800c8d6 fetch 1 ,mem_24g_kb_mul_blank_data_enable 
+00e1 207a0000 rtn blank 
+00e2 d8e0000c arg timer_new_kb_mul_blank ,queue 
+00e3 20407f16 call timer_check 
+00e4 247a0000 nrtn blank 
+00e5 7048d600 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+00e6 20202fb8 branch g24_kb_mul_blank_data_2usb 
 
 p_g24_dongle_bind_mode:
-00c8 6800c8a6 fetch 1 ,mem_dongle_work_mode 
-00c9 c1808000 rtnne dongle_bind 
-00ca 204000cc call p_g24_dongle_bind_init 
-00cb 202000d8 branch p_g24_dongle_bind_data_process 
+00e7 6800c8a6 fetch 1 ,mem_dongle_work_mode 
+00e8 c1808000 rtnne dongle_bind 
+00e9 204000eb call p_g24_dongle_bind_init 
+00ea 202000f7 branch p_g24_dongle_bind_data_process 
 
 p_g24_dongle_bind_init:
-00cc 6800c8a5 fetch 1 ,mem_dongle_mode_init 
-00cd c3808000 rtnbit1 dongle_bind 
-00ce 79207e01 set1 dongle_bind ,pdata 
-00cf 6000c8a5 store 1 ,mem_dongle_mode_init 
-00d0 58000000 setarg 0 
-00d1 6001c8a7 store 3 ,mem_dongle_ms_bind_step 
-00d2 7041de04 jam tx_power_f5db ,mem_tx_power 
-00d3 7048ba01 jam 1 ,mem_24g_ackpayload_enable 
-00d4 70483700 jam 0 ,mem_24g_pid 
-00d5 7048424e jam g24_pair_ch ,mem_24g_ch 
-00d6 68024844 fetch 4 ,mem_24g_paring_addr 
-00d7 20200379 branch p_g24_update_addr_and_synccrc8 
+00eb 6800c8a5 fetch 1 ,mem_dongle_mode_init 
+00ec c3808000 rtnbit1 dongle_bind 
+00ed 79207e01 set1 dongle_bind ,pdata 
+00ee 6000c8a5 store 1 ,mem_dongle_mode_init 
+00ef 58000000 setarg 0 
+00f0 6001c8a7 store 3 ,mem_dongle_ms_bind_step 
+00f1 7041de04 jam tx_power_f5db ,mem_tx_power 
+00f2 7048ba01 jam 1 ,mem_24g_ackpayload_enable 
+00f3 70483700 jam 0 ,mem_24g_pid 
+00f4 7048424e jam g24_pair_ch ,mem_24g_ch 
+00f5 68024844 fetch 4 ,mem_24g_paring_addr 
+00f6 202003b4 branch p_g24_update_addr_and_synccrc8 
 
 p_g24_dongle_bind_data_process:
-00d8 204001d2 call p_g24_receive_transmit_ack 
-00d9 243780e4 nbranch p_g24_rx_interrupt_clear ,user3 
-00da 70497c05 jam g24_work_mode_delay ,mem_24g_work_delay_count 
-00db d8c047b2 arg mem_24g_rxbuf ,contr 
-00dc d8a0487f arg mem_24g_rxdata_temp ,contw 
-00dd df200008 arg 8 ,loopcnt 
-00de 20407f01 call memcpy 
-00df 6800c881 fetch 1 ,mem_24g_rxdata_temp + 2 
-00e0 c05500e7 beq datatype_bind ,p_g24_dongle_bind_first_step 
-00e1 c02a80f4 beq datatype_config ,p_g24_dongle_bind_second_step 
-00e2 c0110104 beq datatype_ok ,p_g24_dongle_bind_third_step 
-00e3 c07f811c beq 0xff ,p_g24_data_attemp_bind 
+00f7 204001f1 call p_g24_receive_transmit_ack 
+00f8 24378103 nbranch p_g24_rx_interrupt_clear ,user3 
+00f9 70497c05 jam g24_work_mode_delay ,mem_24g_work_delay_count 
+00fa d8c047b2 arg mem_24g_rxbuf ,contr 
+00fb d8a0487f arg mem_24g_rxdata_temp ,contw 
+00fc df200008 arg 8 ,loopcnt 
+00fd 20407f01 call memcpy 
+00fe 6800c881 fetch 1 ,mem_24g_rxdata_temp + 2 
+00ff c0550106 beq datatype_bind ,p_g24_dongle_bind_first_step 
+0100 c02a8113 beq datatype_config ,p_g24_dongle_bind_second_step 
+0101 c0110123 beq datatype_ok ,p_g24_dongle_bind_third_step 
+0102 c07f813b beq 0xff ,p_g24_data_attemp_bind 
 
 p_g24_rx_interrupt_clear:
-00e4 d8a047b2 arg mem_24g_rxbuf ,contw 
-00e5 df200042 arg 66 ,loopcnt 
-00e6 20207ed4 branch clear_mem 
+0103 d8a047b2 arg mem_24g_rxbuf ,contw 
+0104 df200042 arg 66 ,loopcnt 
+0105 20207ed4 branch clear_mem 
 
 p_g24_dongle_bind_first_step:
-00e7 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
-00e8 c00080eb beq bind_mouse ,p_g24_dongle_bind_first_step_mouse 
-00e9 c00100f1 beq bind_keyboard ,p_g24_dongle_bind_first_step_keyboard 
-00ea 20600000 rtn 
+0106 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
+0107 c000810a beq bind_mouse ,p_g24_dongle_bind_first_step_mouse 
+0108 c0010110 beq bind_keyboard ,p_g24_dongle_bind_first_step_keyboard 
+0109 20600000 rtn 
 
 p_g24_dongle_bind_first_step_mouse:
-00eb 7048a701 jam 1 ,mem_dongle_ms_bind_step 
+010a 7048a701 jam 1 ,mem_dongle_ms_bind_step 
 
 p_g24_dongle_bind_ms_payload_cfg:
-00ec 7048aa01 jam datatype_mouse ,mem_24g_bind_payload 
+010b 7048aa01 jam datatype_mouse ,mem_24g_bind_payload 
 
 p_g24_dongle_bind_payload_cfg:
-00ed 7048ab80 jam 0x80 ,mem_24g_bind_payload + 1 
-00ee 680348a1 fetch 6 ,mem_24g_rx_addr 
-00ef 600348ac store 6 ,mem_24g_bind_payload + 2 
-00f0 20600000 rtn 
+010c 7048ab80 jam 0x80 ,mem_24g_bind_payload + 1 
+010d 680348a1 fetch 6 ,mem_24g_rx_addr 
+010e 600348ac store 6 ,mem_24g_bind_payload + 2 
+010f 20600000 rtn 
 
 p_g24_dongle_bind_first_step_keyboard:
-00f1 7048a801 jam 1 ,mem_dongle_kb_bind_step 
+0110 7048a801 jam 1 ,mem_dongle_kb_bind_step 
 
 p_g24_dongle_bind_kb_payload_cfg:
-00f2 7048aa02 jam datatype_keyboard ,mem_24g_bind_payload 
-00f3 202000ed branch p_g24_dongle_bind_payload_cfg 
+0111 7048aa02 jam datatype_keyboard ,mem_24g_bind_payload 
+0112 2020010c branch p_g24_dongle_bind_payload_cfg 
 
 p_g24_dongle_bind_second_step:
-00f4 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
-00f5 c00080f8 beq bind_mouse ,p_g24_dongle_bind_second_step_mouse 
-00f6 c00100fe beq bind_keyboard ,p_g24_dongle_bind_second_step_keyboard 
-00f7 20600000 rtn 
+0113 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
+0114 c0008117 beq bind_mouse ,p_g24_dongle_bind_second_step_mouse 
+0115 c001011d beq bind_keyboard ,p_g24_dongle_bind_second_step_keyboard 
+0116 20600000 rtn 
 
 p_g24_dongle_bind_second_step_mouse:
-00f8 204000ec call p_g24_dongle_bind_ms_payload_cfg 
-00f9 6800c8a7 fetch 1 ,mem_dongle_ms_bind_step 
-00fa c00080fc beq 1 ,p_g24_dongle_ms_bind_step_set2 
-00fb 20600000 rtn 
+0117 2040010b call p_g24_dongle_bind_ms_payload_cfg 
+0118 6800c8a7 fetch 1 ,mem_dongle_ms_bind_step 
+0119 c000811b beq 1 ,p_g24_dongle_ms_bind_step_set2 
+011a 20600000 rtn 
 
 p_g24_dongle_ms_bind_step_set2:
-00fc 7048a702 jam 2 ,mem_dongle_ms_bind_step 
-00fd 20600000 rtn 
+011b 7048a702 jam 2 ,mem_dongle_ms_bind_step 
+011c 20600000 rtn 
 
 p_g24_dongle_bind_second_step_keyboard:
-00fe 204000f2 call p_g24_dongle_bind_kb_payload_cfg 
-00ff 6800c8a8 fetch 1 ,mem_dongle_kb_bind_step 
-0100 c0008102 beq 1 ,p_g24_dongle_kb_bind_step_set2 
-0101 20600000 rtn 
+011d 20400111 call p_g24_dongle_bind_kb_payload_cfg 
+011e 6800c8a8 fetch 1 ,mem_dongle_kb_bind_step 
+011f c0008121 beq 1 ,p_g24_dongle_kb_bind_step_set2 
+0120 20600000 rtn 
 
 p_g24_dongle_kb_bind_step_set2:
-0102 7048a802 jam 2 ,mem_dongle_kb_bind_step 
-0103 20600000 rtn 
+0121 7048a802 jam 2 ,mem_dongle_kb_bind_step 
+0122 20600000 rtn 
 
 p_g24_dongle_bind_third_step:
-0104 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
-0105 c0008108 beq bind_mouse ,p_g24_dongle_bind_third_step_mouse 
-0106 c0010111 beq bind_keyboard ,p_g24_dongle_bind_third_step_keyboard 
-0107 20600000 rtn 
+0123 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
+0124 c0008127 beq bind_mouse ,p_g24_dongle_bind_third_step_mouse 
+0125 c0010130 beq bind_keyboard ,p_g24_dongle_bind_third_step_keyboard 
+0126 20600000 rtn 
 
 p_g24_dongle_bind_third_step_mouse:
-0108 6800c8a7 fetch 1 ,mem_dongle_ms_bind_step 
-0109 c001010b beq 2 ,p_g24_dongle_ms_bind_step_success 
-010a 20600000 rtn 
+0127 6800c8a7 fetch 1 ,mem_dongle_ms_bind_step 
+0128 c001012a beq 2 ,p_g24_dongle_ms_bind_step_success 
+0129 20600000 rtn 
 
 p_g24_dongle_ms_bind_step_success:
-010b 6800c8a9 fetch 1 ,mem_dongle_bind_device_status 
-010c 1fe1fe01 or_into 0x01 ,pdata 
-010d 6000c8a9 store 1 ,mem_dongle_bind_device_status 
+012a 6800c8a9 fetch 1 ,mem_dongle_bind_device_status 
+012b 1fe1fe01 or_into 0x01 ,pdata 
+012c 6000c8a9 store 1 ,mem_dongle_bind_device_status 
 
 p_g24_dongle_bind_exit:
-010e 58000000 setarg 0 
-010f 600148a7 store 2 ,mem_dongle_ms_bind_step 
-0110 202000e4 branch p_g24_rx_interrupt_clear 
+012d 58000000 setarg 0 
+012e 600148a7 store 2 ,mem_dongle_ms_bind_step 
+012f 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_dongle_bind_third_step_keyboard:
-0111 6800c8a8 fetch 1 ,mem_dongle_kb_bind_step 
-0112 c0800114 bne 0 ,p_g24_dongle_kb_bind_step_success 
-0113 20600000 rtn 
+0130 6800c8a8 fetch 1 ,mem_dongle_kb_bind_step 
+0131 c0800133 bne 0 ,p_g24_dongle_kb_bind_step_success 
+0132 20600000 rtn 
 
 p_g24_dongle_kb_bind_step_success:
-0114 6800c8a9 fetch 1 ,mem_dongle_bind_device_status 
-0115 1fe1fe02 or_into 0x02 ,pdata 
-0116 6000c8a9 store 1 ,mem_dongle_bind_device_status 
-0117 2040010e call p_g24_dongle_bind_exit 
+0133 6800c8a9 fetch 1 ,mem_dongle_bind_device_status 
+0134 1fe1fe02 or_into 0x02 ,pdata 
+0135 6000c8a9 store 1 ,mem_dongle_bind_device_status 
+0136 2040012d call p_g24_dongle_bind_exit 
 
 p_g24_dongle_store_kb_bind_flag:
-0118 7011c75a jam dongle_kb_bind_success ,mem_dongle_kb_bind_flag 
-0119 20400066 call p_dongle_set_kb_bind_eeprom 
-011a 204065d1 call iicd_write_protect_eep_data 
-011b 2020659a branch soft_reset_chip 
+0137 7011c75a jam dongle_kb_bind_success ,mem_dongle_kb_bind_flag 
+0138 20400085 call p_dongle_set_kb_bind_eeprom 
+0139 204065d1 call iicd_write_protect_eep_data 
+013a 2020659a branch soft_reset_chip 
 
 p_g24_data_attemp_bind:
-011c 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
-011d c0008120 beq datatype_mouse ,p_g24_data_attemp_mouse_bind 
-011e c0010123 beq datatype_keyboard ,p_g24_data_attemp_kbd_bind 
-011f 20600000 rtn 
+013b 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
+013c c000813f beq datatype_mouse ,p_g24_data_attemp_mouse_bind 
+013d c0010142 beq datatype_keyboard ,p_g24_data_attemp_kbd_bind 
+013e 20600000 rtn 
 
 p_g24_data_attemp_mouse_bind:
-0120 68024883 fetch 4 ,mem_24g_rxdata_temp + 4 
+013f 68024883 fetch 4 ,mem_24g_rxdata_temp + 4 
 
 p_g24_store_mouse_addr:
-0121 600248dc store 4 ,mem_24g_ms_addr 
-0122 20600000 rtn 
+0140 600248dc store 4 ,mem_24g_ms_addr 
+0141 20600000 rtn 
 
 p_g24_data_attemp_kbd_bind:
-0123 68024883 fetch 4 ,mem_24g_rxdata_temp + 4 
+0142 68024883 fetch 4 ,mem_24g_rxdata_temp + 4 
 
 p_g24_store_kbd_addr:
-0124 600248d8 store 4 ,mem_24g_kb_addr 
-0125 20600000 rtn 
+0143 600248d8 store 4 ,mem_24g_kb_addr 
+0144 20600000 rtn 
 
 p_g24_queue_init:
-0126 70490200 jam 0 ,mem_queue_ele_num 
-0127 58004907 setarg mem_queue_start 
-0128 60014903 store 2 ,mem_queue_read 
-0129 60014905 store 2 ,mem_queue_write 
-012a 20600000 rtn 
+0145 70490200 jam 0 ,mem_queue_ele_num 
+0146 58004907 setarg mem_queue_start 
+0147 60014903 store 2 ,mem_queue_read 
+0148 60014905 store 2 ,mem_queue_write 
+0149 20600000 rtn 
 
 p_g24_queue_put:
-012b df20001f arg 0x1f ,loopcnt 
-012c d8400cb6 arg mem_usb0_set_report_data ,temp 
-012d 68014905 fetch 2 ,mem_queue_write 
-012e 1fe20a00 copy pdata ,contw 
-012f 18420c00 copy temp ,contr 
-0130 20407f01 call memcpy 
-0131 6800c902 fetch 1 ,mem_queue_ele_num 
-0132 1fe0fe01 increase 1 ,pdata 
-0133 6000c902 store 1 ,mem_queue_ele_num 
-0134 58004905 setarg mem_queue_write 
+014a df20001f arg 0x1f ,loopcnt 
+014b d8400cb6 arg mem_usb0_set_report_data ,temp 
+014c 68014905 fetch 2 ,mem_queue_write 
+014d 1fe20a00 copy pdata ,contw 
+014e 18420c00 copy temp ,contr 
+014f 20407f01 call memcpy 
+0150 6800c902 fetch 1 ,mem_queue_ele_num 
+0151 1fe0fe01 increase 1 ,pdata 
+0152 6000c902 store 1 ,mem_queue_ele_num 
+0153 58004905 setarg mem_queue_write 
 
 p_g24_queue_increase:
-0135 1fe22200 copy pdata ,rega 
-0136 d8404967 arg mem_queue_end ,temp 
-0137 ea210000 ifetch 2 ,rega 
-0138 1fe0fe20 increase queue_ele_length ,pdata 
-0139 98467c00 isub temp ,null 
-013a 2421013c nbranch p_g24_queue_put_end ,positive 
-013b 58004907 setarg mem_queue_start 
+0154 1fe22200 copy pdata ,rega 
+0155 d8404967 arg mem_queue_end ,temp 
+0156 ea210000 ifetch 2 ,rega 
+0157 1fe0fe20 increase queue_ele_length ,pdata 
+0158 98467c00 isub temp ,null 
+0159 2421015b nbranch p_g24_queue_put_end ,positive 
+015a 58004907 setarg mem_queue_start 
 
 p_g24_queue_put_end:
-013c e2210000 istore 2 ,rega 
-013d 20600000 rtn 
+015b e2210000 istore 2 ,rega 
+015c 20600000 rtn 
 
 p_g24_queue_read_point:
-013e 78547c00 disable user 
-013f 6800c902 fetch 1 ,mem_queue_ele_num 
-0140 207a0000 rtn blank 
-0141 78347c00 enable user 
-0142 68014903 fetch 2 ,mem_queue_read 
-0143 20600000 rtn 
+015d 78547c00 disable user 
+015e 6800c902 fetch 1 ,mem_queue_ele_num 
+015f 207a0000 rtn blank 
+0160 78347c00 enable user 
+0161 68014903 fetch 2 ,mem_queue_read 
+0162 20600000 rtn 
 
 p_dongle_usb_dispatch:
-0144 708004ff jam 0xff ,core_write_watchdog 
-0145 204048d3 call usb_isr 
-0146 68008d50 fetch 1 ,mem_usb0_get_set_report 
-0147 207a0000 rtn blank 
-0148 700d5000 jam 0 ,mem_usb0_get_set_report 
-0149 68010d4e fetch 2 ,mem_usb_setup_bvalue_temp 
-014a d84002ba arg pc_set_report ,temp 
-014b 98467c00 isub temp ,null 
-014c 24628000 nrtn zero 
-014d 68008cb6 fetch 1 ,mem_usb0_set_report_data 
-014e c1dd0000 rtnne pc_report_id 
-014f 68008cb7 fetch 1 ,mem_usb0_set_report_data + 1 
-0150 c0500161 beq command_mode ,p_dongle_dispose_cmd_mode 
-0151 c0508157 beq command_bind ,p_dongle_dispose_cmd_bind 
-0152 c0533041 beq command_current_project ,dongle_dispose_cmd_current_project 
-0153 c0538166 beq command_current_mode ,p_dongle_dispose_cmd_current_mode 
-0154 c054816c beq command_current_fw_version ,p_dongle_dispose_cmd_current_fw_version 
-0155 c058016e beq command_user_defined ,p_dongle_dispose_cmd_user_defined 
-0156 2020302a branch usb0_data_ready_report_set0 
+0163 708004ff jam 0xff ,core_write_watchdog 
+0164 204048d3 call usb_isr 
+0165 68008d50 fetch 1 ,mem_usb0_get_set_report 
+0166 207a0000 rtn blank 
+0167 700d5000 jam 0 ,mem_usb0_get_set_report 
+0168 68010d4e fetch 2 ,mem_usb_setup_bvalue_temp 
+0169 d84002ba arg pc_set_report ,temp 
+016a 98467c00 isub temp ,null 
+016b 24628000 nrtn zero 
+016c 68008cb6 fetch 1 ,mem_usb0_set_report_data 
+016d c1dd0000 rtnne pc_report_id 
+016e 68008cb7 fetch 1 ,mem_usb0_set_report_data + 1 
+016f c0500180 beq command_mode ,p_dongle_dispose_cmd_mode 
+0170 c0508176 beq command_bind ,p_dongle_dispose_cmd_bind 
+0171 c0533041 beq command_current_project ,dongle_dispose_cmd_current_project 
+0172 c0538185 beq command_current_mode ,p_dongle_dispose_cmd_current_mode 
+0173 c054818b beq command_current_fw_version ,p_dongle_dispose_cmd_current_fw_version 
+0174 c058018d beq command_user_defined ,p_dongle_dispose_cmd_user_defined 
+0175 2020302a branch usb0_data_ready_report_set0 
 
 p_dongle_dispose_cmd_bind:
-0157 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
-0158 c000815c beq com_bind_get ,p_dongle_dispose_cmd_get_bind 
-0159 c042015f beq com_bind_exit ,p_dongle_dispose_cmd_exit_bind 
-015a c053b039 beq com_read_mode ,dongle_dispose_cmd_read_mode 
-015b 2020302a branch usb0_data_ready_report_set0 
+0176 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+0177 c000817b beq com_bind_get ,p_dongle_dispose_cmd_get_bind 
+0178 c042017e beq com_bind_exit ,p_dongle_dispose_cmd_exit_bind 
+0179 c053b039 beq com_read_mode ,dongle_dispose_cmd_read_mode 
+017a 2020302a branch usb0_data_ready_report_set0 
 
 p_dongle_dispose_cmd_get_bind:
-015c 6800c8a9 fetch 1 ,mem_dongle_bind_device_status 
-015d 60008cf7 store 1 ,mem_usb0_get_report_data + 1 
-015e 2020303f branch usb0_data_ready_report_set1 
+017b 6800c8a9 fetch 1 ,mem_dongle_bind_device_status 
+017c 60008cf7 store 1 ,mem_usb0_get_report_data + 1 
+017d 2020303f branch usb0_data_ready_report_set1 
 
 p_dongle_dispose_cmd_exit_bind:
-015f 2040007a call p_dongle_work_mode_enable 
-0160 2020015c branch p_dongle_dispose_cmd_get_bind 
+017e 20400099 call p_dongle_work_mode_enable 
+017f 2020017b branch p_dongle_dispose_cmd_get_bind 
 
 p_dongle_dispose_cmd_mode:
-0161 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
-0162 c0408164 beq com_mode_bind ,p_dongle_enter_bind_mode 
-0163 2020302a branch usb0_data_ready_report_set0 
+0180 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+0181 c0408183 beq com_mode_bind ,p_dongle_enter_bind_mode 
+0182 2020302a branch usb0_data_ready_report_set0 
 
 p_dongle_enter_bind_mode:
-0164 204001c0 call p_g24_bind_mode_enable 
-0165 2020303f branch usb0_data_ready_report_set1 
+0183 204001df call p_g24_bind_mode_enable 
+0184 2020303f branch usb0_data_ready_report_set1 
 
 p_dongle_dispose_cmd_current_mode:
-0166 6800c8a6 fetch 1 ,mem_dongle_work_mode 
-0167 c000016a beq dongle_work ,p_dongle_dispose_in_work_mode 
-0168 c000b039 beq dongle_bind ,dongle_dispose_in_bind_mode 
-0169 20600000 rtn 
+0185 6800c8a6 fetch 1 ,mem_dongle_work_mode 
+0186 c0000189 beq dongle_work ,p_dongle_dispose_in_work_mode 
+0187 c000b039 beq dongle_bind ,dongle_dispose_in_bind_mode 
+0188 20600000 rtn 
 
 p_dongle_dispose_in_work_mode:
-016a 700cf7a0 jam command_mode ,mem_usb0_get_report_data + 1 
-016b 2020303f branch usb0_data_ready_report_set1 
+0189 700cf7a0 jam command_mode ,mem_usb0_get_report_data + 1 
+018a 2020303f branch usb0_data_ready_report_set1 
 
 p_dongle_dispose_cmd_current_fw_version:
-016c 700cfa07 jam fw_version3 ,mem_usb0_get_report_data + 4 
-016d 20203049 branch dongle_dispose_cmd_current_fw_version 
+018b 700cfa07 jam fw_version3 ,mem_usb0_get_report_data + 4 
+018c 20203049 branch dongle_dispose_cmd_current_fw_version 
 
 p_dongle_dispose_cmd_user_defined:
-016e 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
-016f c07fe59a beq 0xff ,soft_reset_chip 
+018d 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+018e c07fe59a beq 0xff ,soft_reset_chip 
 
 p_dongle_dispose_cmd_ota:
-0170 7048ba02 jam 2 ,mem_24g_ackpayload_enable 
-0171 6800c902 fetch 1 ,mem_queue_ele_num 
-0172 c0018178 beq queue_ele_count ,p_user_defined_queue_buff_full 
-0173 2040012b call p_g24_queue_put 
-0174 6800c902 fetch 1 ,mem_queue_ele_num 
-0175 c0018178 beq queue_ele_count ,p_user_defined_queue_buff_full 
+018f 7048ba02 jam 2 ,mem_24g_ackpayload_enable 
+0190 6800c902 fetch 1 ,mem_queue_ele_num 
+0191 c0018197 beq queue_ele_count ,p_user_defined_queue_buff_full 
+0192 2040014a call p_g24_queue_put 
+0193 6800c902 fetch 1 ,mem_queue_ele_num 
+0194 c0018197 beq queue_ele_count ,p_user_defined_queue_buff_full 
 
 p_user_defined_queue_buff_free:
-0176 700cf700 jam 0 ,mem_usb0_get_report_data + 1 
-0177 2020303f branch usb0_data_ready_report_set1 
+0195 700cf700 jam 0 ,mem_usb0_get_report_data + 1 
+0196 2020303f branch usb0_data_ready_report_set1 
 
 p_user_defined_queue_buff_full:
-0178 700cf701 jam 1 ,mem_usb0_get_report_data + 1 
-0179 2020303f branch usb0_data_ready_report_set1 
+0197 700cf701 jam 1 ,mem_usb0_get_report_data + 1 
+0198 2020303f branch usb0_data_ready_report_set1 
 
 p_dongle_auto_bind:
-017a 2040019e call p_g24_mode_switch_init 
+0199 204001bd call p_g24_mode_switch_init 
 
 p_dongle_auto_bind_loop:
-017b 204001a4 call p_g24_mode_switch 
-017c 20400181 call p_g24_dongle_work_mode_auto 
-017d 20400185 call p_g24_dongle_bind_mode_auto 
-017e 204001d6 call p_g24_dongle_search_mode_auto 
-017f 20400144 call p_dongle_usb_dispatch 
-0180 2020017b branch p_dongle_auto_bind_loop 
+019a 204001c3 call p_g24_mode_switch 
+019b 204001a0 call p_g24_dongle_work_mode_auto 
+019c 204001a4 call p_g24_dongle_bind_mode_auto 
+019d 204001f5 call p_g24_dongle_search_mode_auto 
+019e 20400163 call p_dongle_usb_dispatch 
+019f 2020019a branch p_dongle_auto_bind_loop 
 
 p_g24_dongle_work_mode_auto:
-0181 6800c8a6 fetch 1 ,mem_dongle_work_mode 
-0182 c1800000 rtnne dongle_work 
-0183 2040007f call p_g24_dongle_work_mode_start 
-0184 202001c5 branch p_g24_rx_nodata_process 
+01a0 6800c8a6 fetch 1 ,mem_dongle_work_mode 
+01a1 c1800000 rtnne dongle_work 
+01a2 2040009e call p_g24_dongle_work_mode_start 
+01a3 202001e4 branch p_g24_rx_nodata_process 
 
 p_g24_dongle_bind_mode_auto:
-0185 6800c8a6 fetch 1 ,mem_dongle_work_mode 
-0186 c1808000 rtnne dongle_bind 
-0187 204000cc call p_g24_dongle_bind_init 
-0188 204000d8 call p_g24_dongle_bind_data_process 
-0189 6800c8a9 fetch 1 ,mem_dongle_bind_device_status 
-018a 207a0000 rtn blank 
-018b 7048b900 jam 0 ,mem_24g_mode_switch 
-018c 20400079 call p_dongle_check_mode 
-018d 204001c3 call p_g24_enable_nodata_timer 
-018e 202001a1 branch p_g24_timer_init 
+01a4 6800c8a6 fetch 1 ,mem_dongle_work_mode 
+01a5 c1808000 rtnne dongle_bind 
+01a6 204000eb call p_g24_dongle_bind_init 
+01a7 204000f7 call p_g24_dongle_bind_data_process 
+01a8 6800c8a9 fetch 1 ,mem_dongle_bind_device_status 
+01a9 207a0000 rtn blank 
+01aa 7048b900 jam 0 ,mem_24g_mode_switch 
+01ab 20400098 call p_dongle_check_mode 
+01ac 204001e2 call p_g24_enable_nodata_timer 
+01ad 202001c0 branch p_g24_timer_init 
 
 p_g24_timer_check:
-018f 20407fe9 call disable_user 
-0190 680a4859 fetcht 4 ,mem_24g_tx_btclk 
-0191 1c427e00 copy clkn_bt ,pdata 
-0192 98467c00 isub temp ,null 
-0193 24412d18 ncall g24_timer_timeout ,positive 
-0194 1fe22400 copy pdata ,regb 
-0195 68024859 fetch 4 ,mem_24g_tx_btclk 
-0196 6808c85d fetcht 1 ,mem_24g_interval 
-0197 98408400 iadd temp ,temp 
-0198 1a427e00 copy regb ,pdata 
-0199 98467c00 isub temp ,null 
-019a 24610000 nrtn positive 
-019b 793ffe1c set0 28 ,pdata 
-019c 60024859 store 4 ,mem_24g_tx_btclk 
-019d 20207fe7 branch enable_user 
+01ae 20407fe9 call disable_user 
+01af 680a4859 fetcht 4 ,mem_24g_tx_btclk 
+01b0 1c427e00 copy clkn_bt ,pdata 
+01b1 98467c00 isub temp ,null 
+01b2 24412d18 ncall g24_timer_timeout ,positive 
+01b3 1fe22400 copy pdata ,regb 
+01b4 68024859 fetch 4 ,mem_24g_tx_btclk 
+01b5 6808c85d fetcht 1 ,mem_24g_interval 
+01b6 98408400 iadd temp ,temp 
+01b7 1a427e00 copy regb ,pdata 
+01b8 98467c00 isub temp ,null 
+01b9 24610000 nrtn positive 
+01ba 793ffe1c set0 28 ,pdata 
+01bb 60024859 store 4 ,mem_24g_tx_btclk 
+01bc 20207fe7 branch enable_user 
 
 p_g24_mode_switch_init:
-019e 7048b901 jam 1 ,mem_24g_mode_switch 
-019f 7048be00 jam 0 ,mem_24g_time_slice 
-01a0 70485dff jam 0xff ,mem_24g_interval 
+01bd 7048b901 jam 1 ,mem_24g_mode_switch 
+01be 7048be00 jam 0 ,mem_24g_time_slice 
+01bf 70485dff jam 0xff ,mem_24g_interval 
 
 p_g24_timer_init:
-01a1 58000000 setarg 0 
-01a2 60024859 store 4 ,mem_24g_tx_btclk 
-01a3 20600000 rtn 
+01c0 58000000 setarg 0 
+01c1 60024859 store 4 ,mem_24g_tx_btclk 
+01c2 20600000 rtn 
 
 p_g24_mode_switch:
-01a4 6800c8b9 fetch 1 ,mem_24g_mode_switch 
-01a5 207a0000 rtn blank 
-01a6 2040018f call p_g24_timer_check 
-01a7 24740000 nrtn user 
-01a8 204001b9 call p_g24_bind_mode_delay 
-01a9 204001b1 call p_g24_work_mode_delay 
-01aa 6800c8be fetch 1 ,mem_24g_time_slice 
-01ab 1fe0fe01 increase 1 ,pdata 
-01ac 1fe17e01 and_into 1 ,pdata 
-01ad 6000c8be store 1 ,mem_24g_time_slice 
-01ae c00001b6 beq 0 ,p_g24_mode_switch_work 
-01af c00081be beq 1 ,p_g24_mode_switch_bind 
-01b0 20600000 rtn 
+01c3 6800c8b9 fetch 1 ,mem_24g_mode_switch 
+01c4 207a0000 rtn blank 
+01c5 204001ae call p_g24_timer_check 
+01c6 24740000 nrtn user 
+01c7 204001d8 call p_g24_bind_mode_delay 
+01c8 204001d0 call p_g24_work_mode_delay 
+01c9 6800c8be fetch 1 ,mem_24g_time_slice 
+01ca 1fe0fe01 increase 1 ,pdata 
+01cb 1fe17e01 and_into 1 ,pdata 
+01cc 6000c8be store 1 ,mem_24g_time_slice 
+01cd c00001d5 beq 0 ,p_g24_mode_switch_work 
+01ce c00081dd beq 1 ,p_g24_mode_switch_bind 
+01cf 20600000 rtn 
 
 p_g24_work_mode_delay:
-01b1 6800c97c fetch 1 ,mem_24g_work_delay_count 
-01b2 207a0000 rtn blank 
-01b3 1fe0ffff increase -1 ,pdata 
-01b4 6000c97c store 1 ,mem_24g_work_delay_count 
-01b5 20600000 rtn 
+01d0 6800c97c fetch 1 ,mem_24g_work_delay_count 
+01d1 207a0000 rtn blank 
+01d2 1fe0ffff increase -1 ,pdata 
+01d3 6000c97c store 1 ,mem_24g_work_delay_count 
+01d4 20600000 rtn 
 
 p_g24_mode_switch_work:
-01b6 6800c97c fetch 1 ,mem_24g_work_delay_count 
-01b7 243a01c0 nbranch p_g24_bind_mode_enable ,blank 
-01b8 20200079 branch p_dongle_check_mode 
+01d5 6800c97c fetch 1 ,mem_24g_work_delay_count 
+01d6 243a01df nbranch p_g24_bind_mode_enable ,blank 
+01d7 20200098 branch p_dongle_check_mode 
 
 p_g24_bind_mode_delay:
-01b9 6800c97b fetch 1 ,mem_24g_bind_delay_count 
-01ba 207a0000 rtn blank 
-01bb 1fe0ffff increase -1 ,pdata 
-01bc 6000c97b store 1 ,mem_24g_bind_delay_count 
-01bd 20600000 rtn 
+01d8 6800c97b fetch 1 ,mem_24g_bind_delay_count 
+01d9 207a0000 rtn blank 
+01da 1fe0ffff increase -1 ,pdata 
+01db 6000c97b store 1 ,mem_24g_bind_delay_count 
+01dc 20600000 rtn 
 
 p_g24_mode_switch_bind:
-01be 6800c97b fetch 1 ,mem_24g_bind_delay_count 
-01bf 243a0079 nbranch p_dongle_check_mode ,blank 
+01dd 6800c97b fetch 1 ,mem_24g_bind_delay_count 
+01de 243a0098 nbranch p_dongle_check_mode ,blank 
 
 p_g24_bind_mode_enable:
-01c0 7048a601 jam dongle_bind ,mem_dongle_work_mode 
-01c1 7048a500 jam clear_init ,mem_dongle_mode_init 
-01c2 20600000 rtn 
+01df 7048a601 jam dongle_bind ,mem_dongle_work_mode 
+01e0 7048a500 jam clear_init ,mem_dongle_mode_init 
+01e1 20600000 rtn 
 
 p_g24_enable_nodata_timer:
-01c3 7048bd01 jam 1 ,mem_24g_nodata_timer_enable 
-01c4 20203095 branch g24_enable_nodata_timer_init 
+01e2 7048bd01 jam 1 ,mem_24g_nodata_timer_enable 
+01e3 20203095 branch g24_enable_nodata_timer_init 
 
 p_g24_rx_nodata_process:
-01c5 6800c8ba fetch 1 ,mem_24g_ackpayload_enable 
-01c6 c1010000 rtneq 2 
-01c7 6800c8bd fetch 1 ,mem_24g_nodata_timer_enable 
-01c8 207a0000 rtn blank 
-01c9 d8e00008 arg timer_nodata ,queue 
-01ca 20407f16 call timer_check 
-01cb 247a0000 nrtn blank 
-01cc 7048bd00 jam 0 ,mem_24g_nodata_timer_enable 
-01cd 70497b00 jam 0 ,mem_24g_bind_delay_count 
-01ce 70497c00 jam 0 ,mem_24g_work_delay_count 
-01cf 7048a607 jam dongle_search ,mem_dongle_work_mode 
-01d0 7048a500 jam clear_init ,mem_dongle_mode_init 
-01d1 202000e4 branch p_g24_rx_interrupt_clear 
+01e4 6800c8ba fetch 1 ,mem_24g_ackpayload_enable 
+01e5 c1010000 rtneq 2 
+01e6 6800c8bd fetch 1 ,mem_24g_nodata_timer_enable 
+01e7 207a0000 rtn blank 
+01e8 d8e00008 arg timer_nodata ,queue 
+01e9 20407f16 call timer_check 
+01ea 247a0000 nrtn blank 
+01eb 7048bd00 jam 0 ,mem_24g_nodata_timer_enable 
+01ec 70497b00 jam 0 ,mem_24g_bind_delay_count 
+01ed 70497c00 jam 0 ,mem_24g_work_delay_count 
+01ee 7048a607 jam dongle_search ,mem_dongle_work_mode 
+01ef 7048a500 jam clear_init ,mem_dongle_mode_init 
+01f0 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_receive_transmit_ack:
-01d2 204000e4 call p_g24_rx_interrupt_clear 
-01d3 204003b3 call p_g24_receive_packet 
-01d4 24778000 nrtn user3 
-01d5 20200271 branch p_g24_transmit_ack 
+01f1 20400103 call p_g24_rx_interrupt_clear 
+01f2 204003ee call p_g24_receive_packet 
+01f3 24778000 nrtn user3 
+01f4 20200290 branch p_g24_transmit_ack 
 
 p_g24_dongle_search_mode_auto:
-01d6 6800c8a6 fetch 1 ,mem_dongle_work_mode 
-01d7 c1838000 rtnne dongle_search 
-01d8 204001fb call p_g24_dongle_search_mode_init 
-01d9 2040020f call p_g24_rx_auto_addr_ch_search 
-01da 204001d2 call p_g24_receive_transmit_ack 
-01db 243780e4 nbranch p_g24_rx_interrupt_clear ,user3 
-01dc 2040020b call p_g24_rx_addr_check 
-01dd 2042829b call p_g24_receive_packet_parse ,zero 
-01de 7048a600 jam dongle_work ,mem_dongle_work_mode 
-01df 6800c8a5 fetch 1 ,mem_dongle_mode_init 
-01e0 79207e00 set1 dongle_work ,pdata 
-01e1 6000c8a5 store 1 ,mem_dongle_mode_init 
-01e2 6800c8ba fetch 1 ,mem_24g_ackpayload_enable 
-01e3 1fe67c02 sub pdata ,2 ,null 
-01e4 244281f2 ncall p_g24_ackpayload_disable ,zero 
-01e5 204000e4 call p_g24_rx_interrupt_clear 
-01e6 204001c3 call p_g24_enable_nodata_timer 
-01e7 2040020b call p_g24_rx_addr_check 
-01e8 202281f4 branch p_g24_dg_ch_num_reinit ,zero 
-01e9 68024860 fetch 4 ,mem_24g_addr 
-01ea 680a48d8 fetcht 4 ,mem_24g_kb_addr 
-01eb 98467c00 isub temp ,null 
-01ec 202281f7 branch p_g24_kb_ch_num_reinit ,zero 
-01ed 68024860 fetch 4 ,mem_24g_addr 
-01ee 680a48dc fetcht 4 ,mem_24g_ms_addr 
-01ef 98467c00 isub temp ,null 
-01f0 202281f9 branch p_g24_ms_ch_num_reinit ,zero 
-01f1 20600000 rtn 
+01f5 6800c8a6 fetch 1 ,mem_dongle_work_mode 
+01f6 c1838000 rtnne dongle_search 
+01f7 2040021a call p_g24_dongle_search_mode_init 
+01f8 2040022e call p_g24_rx_auto_addr_ch_search 
+01f9 204001f1 call p_g24_receive_transmit_ack 
+01fa 24378103 nbranch p_g24_rx_interrupt_clear ,user3 
+01fb 2040022a call p_g24_rx_addr_check 
+01fc 204282b9 call p_g24_receive_packet_parse ,zero 
+01fd 7048a600 jam dongle_work ,mem_dongle_work_mode 
+01fe 6800c8a5 fetch 1 ,mem_dongle_mode_init 
+01ff 79207e00 set1 dongle_work ,pdata 
+0200 6000c8a5 store 1 ,mem_dongle_mode_init 
+0201 6800c8ba fetch 1 ,mem_24g_ackpayload_enable 
+0202 1fe67c02 sub pdata ,2 ,null 
+0203 24428211 ncall p_g24_ackpayload_disable ,zero 
+0204 20400103 call p_g24_rx_interrupt_clear 
+0205 204001e2 call p_g24_enable_nodata_timer 
+0206 2040022a call p_g24_rx_addr_check 
+0207 20228213 branch p_g24_dg_ch_num_reinit ,zero 
+0208 68024860 fetch 4 ,mem_24g_addr 
+0209 680a48d8 fetcht 4 ,mem_24g_kb_addr 
+020a 98467c00 isub temp ,null 
+020b 20228216 branch p_g24_kb_ch_num_reinit ,zero 
+020c 68024860 fetch 4 ,mem_24g_addr 
+020d 680a48dc fetcht 4 ,mem_24g_ms_addr 
+020e 98467c00 isub temp ,null 
+020f 20228218 branch p_g24_ms_ch_num_reinit ,zero 
+0210 20600000 rtn 
 
 p_g24_ackpayload_disable:
-01f2 7048ba00 jam 0 ,mem_24g_ackpayload_enable 
-01f3 20600000 rtn 
+0211 7048ba00 jam 0 ,mem_24g_ackpayload_enable 
+0212 20600000 rtn 
 
 p_g24_dg_ch_num_reinit:
-01f4 6800c8e1 fetch 1 ,mem_24g_dg_ch_number 
+0213 6800c8e1 fetch 1 ,mem_24g_dg_ch_number 
 
 p_g24_current_ch_num_reinit:
-01f5 6000c843 store 1 ,mem_24g_current_ch_number 
-01f6 20600000 rtn 
+0214 6000c843 store 1 ,mem_24g_current_ch_number 
+0215 20600000 rtn 
 
 p_g24_kb_ch_num_reinit:
-01f7 6800c8e4 fetch 1 ,mem_24g_kb_ch_number 
-01f8 202001f5 branch p_g24_current_ch_num_reinit 
+0216 6800c8e4 fetch 1 ,mem_24g_kb_ch_number 
+0217 20200214 branch p_g24_current_ch_num_reinit 
 
 p_g24_ms_ch_num_reinit:
-01f9 6800c8e7 fetch 1 ,mem_24g_ms_ch_number 
-01fa 202001f5 branch p_g24_current_ch_num_reinit 
+0218 6800c8e7 fetch 1 ,mem_24g_ms_ch_number 
+0219 20200214 branch p_g24_current_ch_num_reinit 
 
 p_g24_dongle_search_mode_init:
-01fb 6800c8a5 fetch 1 ,mem_dongle_mode_init 
-01fc c3838000 rtnbit1 dongle_search 
-01fd 79207e07 set1 dongle_search ,pdata 
-01fe 6000c8a5 store 1 ,mem_dongle_mode_init 
-01ff 7048be00 jam 0 ,mem_24g_time_slice 
-0200 7048ba01 jam 1 ,mem_24g_ackpayload_enable 
-0201 58000000 setarg 0 
-0202 6001c8f7 store 3 ,mem_rssi_noise_dg_index 
-0203 6003c8e2 store 7 ,mem_24g_dg_config_ch_once 
-0204 2040020b call p_g24_rx_addr_check 
-0205 24628000 nrtn zero 
-0206 6800c843 fetch 1 ,mem_24g_current_ch_number 
-0207 6000c8e1 store 1 ,mem_24g_dg_ch_number 
-0208 6800c842 fetch 1 ,mem_24g_ch 
-0209 6000c8e0 store 1 ,mem_24g_dg_last_ch 
-020a 20600000 rtn 
+021a 6800c8a5 fetch 1 ,mem_dongle_mode_init 
+021b c3838000 rtnbit1 dongle_search 
+021c 79207e07 set1 dongle_search ,pdata 
+021d 6000c8a5 store 1 ,mem_dongle_mode_init 
+021e 7048be00 jam 0 ,mem_24g_time_slice 
+021f 7048ba01 jam 1 ,mem_24g_ackpayload_enable 
+0220 58000000 setarg 0 
+0221 6001c8f7 store 3 ,mem_rssi_noise_dg_index 
+0222 6003c8e2 store 7 ,mem_24g_dg_config_ch_once 
+0223 2040022a call p_g24_rx_addr_check 
+0224 24628000 nrtn zero 
+0225 6800c843 fetch 1 ,mem_24g_current_ch_number 
+0226 6000c8e1 store 1 ,mem_24g_dg_ch_number 
+0227 6800c842 fetch 1 ,mem_24g_ch 
+0228 6000c8e0 store 1 ,mem_24g_dg_last_ch 
+0229 20600000 rtn 
 
 p_g24_rx_addr_check:
-020b 68024860 fetch 4 ,mem_24g_addr 
-020c 680a48a1 fetcht 4 ,mem_24g_rx_addr 
-020d 98467c00 isub temp ,null 
-020e 20600000 rtn 
+022a 68024860 fetch 4 ,mem_24g_addr 
+022b 680a48a1 fetcht 4 ,mem_24g_rx_addr 
+022c 98467c00 isub temp ,null 
+022d 20600000 rtn 
 
 p_g24_rx_auto_addr_ch_search:
-020f 6800c8be fetch 1 ,mem_24g_time_slice 
-0210 1fe0fe01 increase 1 ,pdata 
-0211 1fe17e03 and_into 3 ,pdata 
-0212 6000c8be store 1 ,mem_24g_time_slice 
-0213 c0000232 beq 0 ,p_g24_rx_auto_bind_config_kb 
-0214 c000824c beq 1 ,p_g24_rx_auto_bind_config_dongle 
-0215 c0010218 beq 2 ,p_g24_rx_auto_bind_config_mouse 
-0216 c001824c beq 3 ,p_g24_rx_auto_bind_config_dongle 
-0217 20600000 rtn 
+022e 6800c8be fetch 1 ,mem_24g_time_slice 
+022f 1fe0fe01 increase 1 ,pdata 
+0230 1fe17e03 and_into 3 ,pdata 
+0231 6000c8be store 1 ,mem_24g_time_slice 
+0232 c0000251 beq 0 ,p_g24_rx_auto_bind_config_kb 
+0233 c000826b beq 1 ,p_g24_rx_auto_bind_config_dongle 
+0234 c0010237 beq 2 ,p_g24_rx_auto_bind_config_mouse 
+0235 c001826b beq 3 ,p_g24_rx_auto_bind_config_dongle 
+0236 20600000 rtn 
 
 p_g24_rx_auto_bind_config_mouse:
-0218 204000ec call p_g24_dongle_bind_ms_payload_cfg 
-0219 680248dc fetch 4 ,mem_24g_ms_addr 
-021a 203a020f branch p_g24_rx_auto_addr_ch_search ,blank 
-021b 20400379 call p_g24_update_addr_and_synccrc8 
-021c 6800c8e8 fetch 1 ,mem_24g_ms_config_ch_once 
-021d 205a022d call p_g24_ms_config_ch_once ,blank 
-021e 6800c8e6 fetch 1 ,mem_24g_ms_last_ch 
-021f 6000c842 store 1 ,mem_24g_ch 
-0220 6808c8f9 fetcht 1 ,mem_rssi_noise_ms_index 
-0221 da200f9e arg mem_rssi_noise_ms_buffer ,rega 
-0222 2040036d call p_rssi_store 
-0223 6008c8f9 storet 1 ,mem_rssi_noise_ms_index 
-0224 20400374 call p_rssi_average 
-0225 6008c8f6 storet 1 ,mem_rssi_noise_ms_avg 
-0226 18467c50 sub temp ,rssi_thresh_noise ,null 
-0227 24610000 nrtn positive 
-0228 6808c8e7 fetcht 1 ,mem_24g_ms_ch_number 
-0229 2040039d call p_g24_ch_map_size 
-022a 6008c8e7 storet 1 ,mem_24g_ms_ch_number 
-022b 6000c8e6 store 1 ,mem_24g_ms_last_ch 
-022c 20600000 rtn 
+0237 2040010b call p_g24_dongle_bind_ms_payload_cfg 
+0238 680248dc fetch 4 ,mem_24g_ms_addr 
+0239 203a022e branch p_g24_rx_auto_addr_ch_search ,blank 
+023a 204003b4 call p_g24_update_addr_and_synccrc8 
+023b 6800c8e8 fetch 1 ,mem_24g_ms_config_ch_once 
+023c 205a024c call p_g24_ms_config_ch_once ,blank 
+023d 6800c8e6 fetch 1 ,mem_24g_ms_last_ch 
+023e 6000c842 store 1 ,mem_24g_ch 
+023f 6808c8f9 fetcht 1 ,mem_rssi_noise_ms_index 
+0240 da200f9e arg mem_rssi_noise_ms_buffer ,rega 
+0241 204003a8 call p_rssi_store 
+0242 6008c8f9 storet 1 ,mem_rssi_noise_ms_index 
+0243 204003af call p_rssi_average 
+0244 6008c8f6 storet 1 ,mem_rssi_noise_ms_avg 
+0245 18467c50 sub temp ,rssi_thresh_noise ,null 
+0246 24610000 nrtn positive 
+0247 6808c8e7 fetcht 1 ,mem_24g_ms_ch_number 
+0248 204003d8 call p_g24_ch_map_size 
+0249 6008c8e7 storet 1 ,mem_24g_ms_ch_number 
+024a 6000c8e6 store 1 ,mem_24g_ms_last_ch 
+024b 20600000 rtn 
 
 p_g24_ms_config_ch_once:
-022d 7048e801 jam 1 ,mem_24g_ms_config_ch_once 
-022e d8400000 arg 0 ,temp 
-022f 204003a1 call p_g24_ch_calc 
-0230 6000c8e6 store 1 ,mem_24g_ms_last_ch 
-0231 20600000 rtn 
+024c 7048e801 jam 1 ,mem_24g_ms_config_ch_once 
+024d d8400000 arg 0 ,temp 
+024e 204003dc call p_g24_ch_calc 
+024f 6000c8e6 store 1 ,mem_24g_ms_last_ch 
+0250 20600000 rtn 
 
 p_g24_rx_auto_bind_config_kb:
-0232 204000f2 call p_g24_dongle_bind_kb_payload_cfg 
-0233 680248d8 fetch 4 ,mem_24g_kb_addr 
-0234 203a020f branch p_g24_rx_auto_addr_ch_search ,blank 
-0235 20400379 call p_g24_update_addr_and_synccrc8 
-0236 6800c8e5 fetch 1 ,mem_24g_kb_config_ch_once 
-0237 205a0247 call p_g24_kb_config_ch_once ,blank 
-0238 6800c8e3 fetch 1 ,mem_24g_kb_last_ch 
-0239 6000c842 store 1 ,mem_24g_ch 
-023a 6808c8f8 fetcht 1 ,mem_rssi_noise_kb_index 
-023b da20109e arg mem_rssi_noise_kb_buffer ,rega 
-023c 2040036d call p_rssi_store 
-023d 6008c8f8 storet 1 ,mem_rssi_noise_kb_index 
-023e 20400374 call p_rssi_average 
-023f 6008c8f5 storet 1 ,mem_rssi_noise_kb_avg 
-0240 18467c50 sub temp ,rssi_thresh_noise ,null 
-0241 24610000 nrtn positive 
-0242 6808c8e4 fetcht 1 ,mem_24g_kb_ch_number 
-0243 2040039d call p_g24_ch_map_size 
-0244 6008c8e4 storet 1 ,mem_24g_kb_ch_number 
-0245 6000c8e3 store 1 ,mem_24g_kb_last_ch 
-0246 20600000 rtn 
+0251 20400111 call p_g24_dongle_bind_kb_payload_cfg 
+0252 680248d8 fetch 4 ,mem_24g_kb_addr 
+0253 203a022e branch p_g24_rx_auto_addr_ch_search ,blank 
+0254 204003b4 call p_g24_update_addr_and_synccrc8 
+0255 6800c8e5 fetch 1 ,mem_24g_kb_config_ch_once 
+0256 205a0266 call p_g24_kb_config_ch_once ,blank 
+0257 6800c8e3 fetch 1 ,mem_24g_kb_last_ch 
+0258 6000c842 store 1 ,mem_24g_ch 
+0259 6808c8f8 fetcht 1 ,mem_rssi_noise_kb_index 
+025a da20109e arg mem_rssi_noise_kb_buffer ,rega 
+025b 204003a8 call p_rssi_store 
+025c 6008c8f8 storet 1 ,mem_rssi_noise_kb_index 
+025d 204003af call p_rssi_average 
+025e 6008c8f5 storet 1 ,mem_rssi_noise_kb_avg 
+025f 18467c50 sub temp ,rssi_thresh_noise ,null 
+0260 24610000 nrtn positive 
+0261 6808c8e4 fetcht 1 ,mem_24g_kb_ch_number 
+0262 204003d8 call p_g24_ch_map_size 
+0263 6008c8e4 storet 1 ,mem_24g_kb_ch_number 
+0264 6000c8e3 store 1 ,mem_24g_kb_last_ch 
+0265 20600000 rtn 
 
 p_g24_kb_config_ch_once:
-0247 7048e501 jam 1 ,mem_24g_kb_config_ch_once 
-0248 d8400000 arg 0 ,temp 
-0249 204003a1 call p_g24_ch_calc 
-024a 6000c8e3 store 1 ,mem_24g_kb_last_ch 
-024b 20600000 rtn 
+0266 7048e501 jam 1 ,mem_24g_kb_config_ch_once 
+0267 d8400000 arg 0 ,temp 
+0268 204003dc call p_g24_ch_calc 
+0269 6000c8e3 store 1 ,mem_24g_kb_last_ch 
+026a 20600000 rtn 
 
 p_g24_rx_auto_bind_config_dongle:
-024c 204000ec call p_g24_dongle_bind_ms_payload_cfg 
-024d 680248a1 fetch 4 ,mem_24g_rx_addr 
-024e 20400379 call p_g24_update_addr_and_synccrc8 
-024f 6800c8e2 fetch 1 ,mem_24g_dg_config_ch_once 
-0250 205a0260 call p_g24_dg_config_ch_once ,blank 
-0251 6800c8e0 fetch 1 ,mem_24g_dg_last_ch 
-0252 6000c842 store 1 ,mem_24g_ch 
-0253 6808c8f7 fetcht 1 ,mem_rssi_noise_dg_index 
-0254 da200e9e arg mem_rssi_noise_dg_buffer ,rega 
-0255 2040036d call p_rssi_store 
-0256 6008c8f7 storet 1 ,mem_rssi_noise_dg_index 
-0257 20400374 call p_rssi_average 
-0258 6008c8f4 storet 1 ,mem_rssi_noise_dg_avg 
-0259 18467c50 sub temp ,rssi_thresh_noise ,null 
-025a 24610000 nrtn positive 
-025b 6808c8e1 fetcht 1 ,mem_24g_dg_ch_number 
-025c 2040039d call p_g24_ch_map_size 
-025d 6008c8e1 storet 1 ,mem_24g_dg_ch_number 
-025e 6000c8e0 store 1 ,mem_24g_dg_last_ch 
-025f 20600000 rtn 
+026b 2040010b call p_g24_dongle_bind_ms_payload_cfg 
+026c 680248a1 fetch 4 ,mem_24g_rx_addr 
+026d 204003b4 call p_g24_update_addr_and_synccrc8 
+026e 6800c8e2 fetch 1 ,mem_24g_dg_config_ch_once 
+026f 205a027f call p_g24_dg_config_ch_once ,blank 
+0270 6800c8e0 fetch 1 ,mem_24g_dg_last_ch 
+0271 6000c842 store 1 ,mem_24g_ch 
+0272 6808c8f7 fetcht 1 ,mem_rssi_noise_dg_index 
+0273 da200e9e arg mem_rssi_noise_dg_buffer ,rega 
+0274 204003a8 call p_rssi_store 
+0275 6008c8f7 storet 1 ,mem_rssi_noise_dg_index 
+0276 204003af call p_rssi_average 
+0277 6008c8f4 storet 1 ,mem_rssi_noise_dg_avg 
+0278 18467c50 sub temp ,rssi_thresh_noise ,null 
+0279 24610000 nrtn positive 
+027a 6808c8e1 fetcht 1 ,mem_24g_dg_ch_number 
+027b 204003d8 call p_g24_ch_map_size 
+027c 6008c8e1 storet 1 ,mem_24g_dg_ch_number 
+027d 6000c8e0 store 1 ,mem_24g_dg_last_ch 
+027e 20600000 rtn 
 
 p_g24_dg_config_ch_once:
-0260 7048e201 jam 1 ,mem_24g_dg_config_ch_once 
-0261 6800c8e0 fetch 1 ,mem_24g_dg_last_ch 
-0262 6000c842 store 1 ,mem_24g_ch 
-0263 20600000 rtn 
+027f 7048e201 jam 1 ,mem_24g_dg_config_ch_once 
+0280 6800c8e0 fetch 1 ,mem_24g_dg_last_ch 
+0281 6000c842 store 1 ,mem_24g_ch 
+0282 20600000 rtn 
 
 p_g24_read_len_pid_crc:
-0264 6800c7b3 fetch 1 ,mem_24g_rxbuf + 1 
-0265 1fe97e00 rshift3 pdata ,pdata 
-0266 6000c836 store 1 ,mem_24g_rxdata_length 
-0267 1fe0fe01 increase 1 ,pdata 
-0268 d8c047b3 arg mem_24g_rxbuf + 1 ,contr 
-0269 98c08c00 iadd contr ,contr 
-026a e8c18000 ifetch 3 ,contr 
-026b 6001c875 store 3 ,mem_24g_sta_crc 
-026c 6800c7b3 fetch 1 ,mem_24g_rxbuf + 1 
-026d 1fe37e00 rshift pdata ,pdata 
-026e 1fe17e03 and pdata ,0x03 ,pdata 
-026f 6000c87b store 1 ,mem_24g_sta_pid 
-0270 20600000 rtn 
+0283 6800c7b3 fetch 1 ,mem_24g_rxbuf + 1 
+0284 1fe97e00 rshift3 pdata ,pdata 
+0285 6000c836 store 1 ,mem_24g_rxdata_length 
+0286 1fe0fe01 increase 1 ,pdata 
+0287 d8c047b3 arg mem_24g_rxbuf + 1 ,contr 
+0288 98c08c00 iadd contr ,contr 
+0289 e8c18000 ifetch 3 ,contr 
+028a 6001c875 store 3 ,mem_24g_sta_crc 
+028b 6800c7b3 fetch 1 ,mem_24g_rxbuf + 1 
+028c 1fe37e00 rshift pdata ,pdata 
+028d 1fe17e03 and pdata ,0x03 ,pdata 
+028e 6000c87b store 1 ,mem_24g_sta_pid 
+028f 20600000 rtn 
 
 p_g24_transmit_ack:
-0271 6800c7b2 fetch 1 ,mem_24g_rxbuf 
-0272 6000c839 store 1 ,mem_24g_data_type 
-0273 20400264 call p_g24_read_len_pid_crc 
-0274 6800c7b3 fetch 1 ,mem_24g_rxbuf + 1 
-0275 2feffe00 isolate1 bit_ack_24g ,pdata 
-0276 2020827a branch p_g24tx_no_ack ,true 
+0290 6800c7b2 fetch 1 ,mem_24g_rxbuf 
+0291 6000c839 store 1 ,mem_24g_data_type 
+0292 20400283 call p_g24_read_len_pid_crc 
+0293 6800c7b3 fetch 1 ,mem_24g_rxbuf + 1 
+0294 2feffe00 isolate1 bit_ack_24g ,pdata 
+0295 20208299 branch p_g24tx_no_ack ,true 
 
 p_g24tx_with_ack:
-0277 2040027b call p_g24_ackpayload_prep 
-0278 20400387 call p_g24_transmit_prep 
-0279 204003fd call p_g24_transmit 
+0296 2040029a call p_g24_ackpayload_prep 
+0297 204003c2 call p_g24_transmit_prep 
+0298 20400438 call p_g24_transmit 
 
 p_g24tx_no_ack:
-027a 202003f5 branch p_g24_end_of_packet 
+0299 20200430 branch p_g24_end_of_packet 
 
 p_g24_ackpayload_prep:
-027b 70483800 jam 0 ,mem_24g_datalen 
-027c 6800c8ba fetch 1 ,mem_24g_ackpayload_enable 
-027d 207a0000 rtn blank 
-027e c0008282 beq bind_ackpayload ,p_g24_bind_ackpayload_prep 
-027f c0010287 beq user_ackpayload ,p_g24_user_ackpayload_prep 
-0280 c0018291 beq kb_led_ackpayload ,p_g24_kb_led_ackpayload_prep 
-0281 20600000 rtn 
+029a 70483800 jam 0 ,mem_24g_datalen 
+029b 6800c8ba fetch 1 ,mem_24g_ackpayload_enable 
+029c 207a0000 rtn blank 
+029d c00082a1 beq bind_ackpayload ,p_g24_bind_ackpayload_prep 
+029e c00102a6 beq user_ackpayload ,p_g24_user_ackpayload_prep 
+029f c00182b0 beq kb_led_ackpayload ,p_g24_kb_led_ackpayload_prep 
+02a0 20600000 rtn 
 
 p_g24_bind_ackpayload_prep:
-0282 70483808 jam 0x08 ,mem_24g_datalen 
-0283 df200008 arg 0x08 ,loopcnt 
-0284 d8c048aa arg mem_24g_bind_payload ,contr 
-0285 d8a047d4 arg mem_24g_txbuf ,contw 
-0286 20207f01 branch memcpy 
+02a1 70483808 jam 0x08 ,mem_24g_datalen 
+02a2 df200008 arg 0x08 ,loopcnt 
+02a3 d8c048aa arg mem_24g_bind_payload ,contr 
+02a4 d8a047d4 arg mem_24g_txbuf ,contw 
+02a5 20207f01 branch memcpy 
 
 p_g24_user_ackpayload_prep:
-0287 2040013e call p_g24_queue_read_point 
-0288 24740000 nrtn user 
-0289 7048381f jam 0x1f ,mem_24g_datalen 
-028a df20001f arg 0x1f ,loopcnt 
-028b 1fe20c00 copy pdata ,contr 
-028c d8a047d4 arg mem_24g_txbuf ,contw 
-028d 20407f01 call memcpy 
-028e 680147d7 fetch 2 ,mem_24g_txbuf + 3 
-028f 600148ed store 2 ,mem_24g_ota_sta_pid 
-0290 20600000 rtn 
+02a6 2040015d call p_g24_queue_read_point 
+02a7 24740000 nrtn user 
+02a8 7048381f jam 0x1f ,mem_24g_datalen 
+02a9 df20001f arg 0x1f ,loopcnt 
+02aa 1fe20c00 copy pdata ,contr 
+02ab d8a047d4 arg mem_24g_txbuf ,contw 
+02ac 20407f01 call memcpy 
+02ad 680147d7 fetch 2 ,mem_24g_txbuf + 3 
+02ae 600148ed store 2 ,mem_24g_ota_sta_pid 
+02af 20600000 rtn 
 
 p_g24_kb_led_ackpayload_prep:
-0291 7048ba00 jam 0 ,mem_24g_ackpayload_enable 
-0292 700d4300 jam 0 ,mem_usb_tx_win_enable 
-0293 70483801 jam 0x01 ,mem_24g_datalen 
-0294 df200001 arg 0x01 ,loopcnt 
-0295 d8c0497a arg mem_24g_led_status ,contr 
-0296 d8a047d4 arg mem_24g_txbuf ,contw 
-0297 20207f01 branch memcpy 
+02b0 700d4300 jam 0 ,mem_usb_tx_win_enable 
+02b1 70483801 jam 0x01 ,mem_24g_datalen 
+02b2 df200001 arg 0x01 ,loopcnt 
+02b3 d8c0497a arg mem_24g_led_status ,contr 
+02b4 d8a047d4 arg mem_24g_txbuf ,contw 
+02b5 20207f01 branch memcpy 
 
 p_g24_receive_packet_start:
-0298 204001d2 call p_g24_receive_transmit_ack 
-0299 243780e4 nbranch p_g24_rx_interrupt_clear ,user3 
-029a 2020029b branch p_g24_receive_packet_parse 
+02b6 204001f1 call p_g24_receive_transmit_ack 
+02b7 24378103 nbranch p_g24_rx_interrupt_clear ,user3 
+02b8 202002b9 branch p_g24_receive_packet_parse 
 
 p_g24_receive_packet_parse:
-029b 204002ac call p_g24_receive_packet_parse_pid_crc 
-029c 243400e4 nbranch p_g24_rx_interrupt_clear ,user 
-029d 6800c836 fetch 1 ,mem_24g_rxdata_length 
-029e 203a00e4 branch p_g24_rx_interrupt_clear ,blank 
-029f 1fe0fe02 increase 2 ,pdata 
-02a0 98007200 iforce loopcnt 
-02a1 d8c047b2 arg mem_24g_rxbuf ,contr 
-02a2 d8a0487f arg mem_24g_rxdata_temp ,contw 
-02a3 20407f01 call memcpy 
-02a4 7048b900 jam 0 ,mem_24g_mode_switch 
-02a5 6800c8bc fetch 1 ,mem_24g_pair_mode 
-02a6 205a01c3 call p_g24_enable_nodata_timer ,blank 
-02a7 6800c881 fetch 1 ,mem_24g_rxdata_temp + 2 
-02a8 c00082ba beq 0x01 ,p_g24_data_type1 
-02a9 c00102d9 beq 0x02 ,p_g24_data_type2 
-02aa c07f8312 beq 0xff ,p_g24_data_attemp 
-02ab 202000e4 branch p_g24_rx_interrupt_clear 
+02b9 204002ca call p_g24_receive_packet_parse_pid_crc 
+02ba 24340103 nbranch p_g24_rx_interrupt_clear ,user 
+02bb 6800c836 fetch 1 ,mem_24g_rxdata_length 
+02bc 203a0103 branch p_g24_rx_interrupt_clear ,blank 
+02bd 1fe0fe02 increase 2 ,pdata 
+02be 98007200 iforce loopcnt 
+02bf d8c047b2 arg mem_24g_rxbuf ,contr 
+02c0 d8a0487f arg mem_24g_rxdata_temp ,contw 
+02c1 20407f01 call memcpy 
+02c2 7048b900 jam 0 ,mem_24g_mode_switch 
+02c3 6800c8bc fetch 1 ,mem_24g_pair_mode 
+02c4 205a01e2 call p_g24_enable_nodata_timer ,blank 
+02c5 6800c881 fetch 1 ,mem_24g_rxdata_temp + 2 
+02c6 c00082d8 beq 0x01 ,p_g24_data_type1 
+02c7 c00102f7 beq 0x02 ,p_g24_data_type2 
+02c8 c07f834d beq 0xff ,p_g24_data_attemp 
+02c9 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_receive_packet_parse_pid_crc:
-02ac 20407fe9 call disable_user 
-02ad 6800c87b fetch 1 ,mem_24g_sta_pid 
-02ae 6808c87c fetcht 1 ,mem_24g_last_pid 
-02af 98467c00 isub temp ,null 
-02b0 2442ffe7 ncall enable_user ,zero 
-02b1 6800c87b fetch 1 ,mem_24g_sta_pid 
-02b2 6000c87c store 1 ,mem_24g_last_pid 
-02b3 6801c875 fetch 3 ,mem_24g_sta_crc 
-02b4 6809c878 fetcht 3 ,mem_24g_last_crc 
-02b5 98467c00 isub temp ,null 
-02b6 2442ffe7 ncall enable_user ,zero 
-02b7 6801c875 fetch 3 ,mem_24g_sta_crc 
-02b8 6001c878 store 3 ,mem_24g_last_crc 
-02b9 20600000 rtn 
+02ca 20407fe9 call disable_user 
+02cb 6800c87b fetch 1 ,mem_24g_sta_pid 
+02cc 6808c87c fetcht 1 ,mem_24g_last_pid 
+02cd 98467c00 isub temp ,null 
+02ce 2442ffe7 ncall enable_user ,zero 
+02cf 6800c87b fetch 1 ,mem_24g_sta_pid 
+02d0 6000c87c store 1 ,mem_24g_last_pid 
+02d1 6801c875 fetch 3 ,mem_24g_sta_crc 
+02d2 6809c878 fetcht 3 ,mem_24g_last_crc 
+02d3 98467c00 isub temp ,null 
+02d4 2442ffe7 ncall enable_user ,zero 
+02d5 6801c875 fetch 3 ,mem_24g_sta_crc 
+02d6 6001c878 store 3 ,mem_24g_last_crc 
+02d7 20600000 rtn 
 
 p_g24_data_type1:
-02ba 204000a6 call p_g24_ch_timer_reinit 
-02bb 6800c8b2 fetch 1 ,mem_24g_abort_packet 
-02bc 6808c87f fetcht 1 ,mem_24g_rxdata_temp 
-02bd 284ffe03 isolate1 bit_abort ,temp 
-02be 7920fe00 setflag true ,0 ,pdata 
-02bf 6000c8b2 store 1 ,mem_24g_abort_packet 
-02c0 c000831a beq 1 ,p_g24_data_attemp_mouse_abort 
-02c1 6800c8bb fetch 1 ,mem_24g_hop_packet 
-02c2 6808c87f fetcht 1 ,mem_24g_rxdata_temp 
-02c3 284ffe04 isolate1 bit_hop ,temp 
-02c4 7920fe00 setflag true ,0 ,pdata 
-02c5 6000c8bb store 1 ,mem_24g_hop_packet 
-02c6 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
-02c7 c067831e beq cmd_ota ,p_g24_ota_process 
-02c8 58000001 setarg ms_report_id 
-02c9 60008d54 store 1 ,mem_usb_mouse_data 
-02ca 6803c882 fetch 7 ,mem_24g_rxdata_temp + 3 
-02cb e0a38000 istore 7 ,contw 
-02cc 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
-02cd 245a02d1 ncall p_g24_ms_enable_blank_data_forcibly ,blank 
-02ce 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
-02cf 205a02d5 call p_g24_ms_disable_blank_data_forcibly ,blank 
-02d0 202031b8 branch g24_data_type1_usbtx_enable 
+02d8 204000c5 call p_g24_ch_timer_reinit 
+02d9 6800c8b2 fetch 1 ,mem_24g_abort_packet 
+02da 6808c87f fetcht 1 ,mem_24g_rxdata_temp 
+02db 284ffe03 isolate1 bit_abort ,temp 
+02dc 7920fe00 setflag true ,0 ,pdata 
+02dd 6000c8b2 store 1 ,mem_24g_abort_packet 
+02de c0008355 beq 1 ,p_g24_data_attemp_mouse_abort 
+02df 6800c8bb fetch 1 ,mem_24g_hop_packet 
+02e0 6808c87f fetcht 1 ,mem_24g_rxdata_temp 
+02e1 284ffe04 isolate1 bit_hop ,temp 
+02e2 7920fe00 setflag true ,0 ,pdata 
+02e3 6000c8bb store 1 ,mem_24g_hop_packet 
+02e4 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
+02e5 c0678359 beq cmd_ota ,p_g24_ota_process 
+02e6 58000001 setarg ms_report_id 
+02e7 60008d54 store 1 ,mem_usb_mouse_data 
+02e8 6803c882 fetch 7 ,mem_24g_rxdata_temp + 3 
+02e9 e0a38000 istore 7 ,contw 
+02ea 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
+02eb 245a02ef ncall p_g24_ms_enable_blank_data_forcibly ,blank 
+02ec 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
+02ed 205a02f3 call p_g24_ms_disable_blank_data_forcibly ,blank 
+02ee 202031b8 branch g24_data_type1_usbtx_enable 
 
 p_g24_ms_enable_blank_data_forcibly:
-02d1 7048d701 jam 1 ,mem_24g_ms_blank_data_enable 
-02d2 58000180 setarg timer_new_ms_blank_delay 
-02d3 d8e0000b arg timer_new_ms_blank ,queue 
-02d4 20207f08 branch timer_init 
+02ef 7048d701 jam 1 ,mem_24g_ms_blank_data_enable 
+02f0 58000180 setarg timer_new_ms_blank_delay 
+02f1 d8e0000b arg timer_new_ms_blank ,queue 
+02f2 20207f08 branch timer_init 
 
 p_g24_ms_disable_blank_data_forcibly:
-02d5 7048d700 jam 0 ,mem_24g_ms_blank_data_enable 
-02d6 58000000 setarg 0 
-02d7 d8e0000b arg timer_new_ms_blank ,queue 
-02d8 20207f08 branch timer_init 
+02f3 7048d700 jam 0 ,mem_24g_ms_blank_data_enable 
+02f4 58000000 setarg 0 
+02f5 d8e0000b arg timer_new_ms_blank ,queue 
+02f6 20207f08 branch timer_init 
 
 p_g24_data_type2:
-02d9 6808c87f fetcht 1 ,mem_24g_rxdata_temp 
-02da 284ffe03 isolate1 bit_abort ,temp 
-02db 2020831c branch p_g24_data_attemp_kbd_abort ,true 
-02dc 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
-02dd c00002e0 beq 0 ,p_g24_data_type2_data1 
-02de c00182f9 beq 3 ,p_g24_data_type2_data2 
-02df 202000e4 branch p_g24_rx_interrupt_clear 
+02f7 6808c87f fetcht 1 ,mem_24g_rxdata_temp 
+02f8 284ffe03 isolate1 bit_abort ,temp 
+02f9 20208357 branch p_g24_data_attemp_kbd_abort ,true 
+02fa 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
+02fb c00002ff beq 0 ,p_g24_data_type2_data1 
+02fc c0010336 beq 2 ,p_g24_data_type2_data3 
+02fd c001831d beq 3 ,p_g24_data_type2_data2 
+02fe 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_data_type2_data1:
-02e0 d8a00d64 arg mem_usb_kb_data ,contw 
-02e1 204002ee call p_g24_data_type2_copy_data1 
-02e2 68040d64 fetch 8 ,mem_usb_kb_data 
-02e3 245a02f1 ncall p_g24_kb_enable_blank_data_forcibly ,blank 
-02e4 68040d64 fetch 8 ,mem_usb_kb_data 
-02e5 205a02f5 call p_g24_kb_disable_blank_data_forcibly ,blank 
-02e6 68040d64 fetch 8 ,mem_usb_kb_data 
-02e7 600448bf store 8 ,mem_24g_kb_data_sta_data 
-02e8 680c48c7 fetcht 8 ,mem_24g_kb_data_last_data 
-02e9 98467c00 isub temp ,null 
-02ea 2442b1ed ncall g24_kb_data_into_ep1_fifo ,zero 
-02eb 680448bf fetch 8 ,mem_24g_kb_data_sta_data 
-02ec 600448c7 store 8 ,mem_24g_kb_data_last_data 
-02ed 202000e4 branch p_g24_rx_interrupt_clear 
+02ff 6800c884 fetch 1 ,mem_24g_rxdata_temp + 5 
+0300 205a0310 call p_g24_kb_led_clear_flag ,blank 
+0301 70488400 jam 0 ,mem_24g_rxdata_temp + 5 
+0302 d8a00d64 arg mem_usb_kb_data ,contw 
+0303 20400312 call p_g24_data_type2_copy_data1 
+0304 68040d64 fetch 8 ,mem_usb_kb_data 
+0305 245a0315 ncall p_g24_kb_enable_blank_data_forcibly ,blank 
+0306 68040d64 fetch 8 ,mem_usb_kb_data 
+0307 205a0319 call p_g24_kb_disable_blank_data_forcibly ,blank 
+0308 68040d64 fetch 8 ,mem_usb_kb_data 
+0309 600448bf store 8 ,mem_24g_kb_data_sta_data 
+030a 680c48c7 fetcht 8 ,mem_24g_kb_data_last_data 
+030b 98467c00 isub temp ,null 
+030c 2442b1ed ncall g24_kb_data_into_ep1_fifo ,zero 
+030d 680448bf fetch 8 ,mem_24g_kb_data_sta_data 
+030e 600448c7 store 8 ,mem_24g_kb_data_last_data 
+030f 20200103 branch p_g24_rx_interrupt_clear 
+
+p_g24_kb_led_clear_flag:
+0310 7048ba00 jam 0 ,mem_24g_ackpayload_enable 
+0311 20600000 rtn 
 
 p_g24_data_type2_copy_data1:
-02ee d8c04883 arg mem_24g_rxdata_temp + 4 ,contr 
-02ef df200008 arg 8 ,loopcnt 
-02f0 20207f01 branch memcpy 
+0312 d8c04883 arg mem_24g_rxdata_temp + 4 ,contr 
+0313 df200008 arg 8 ,loopcnt 
+0314 20207f01 branch memcpy 
 
 p_g24_kb_enable_blank_data_forcibly:
-02f1 7048d501 jam 1 ,mem_24g_kb_blank_data_enable 
-02f2 58000180 setarg timer_new_kb_blank_delay 
-02f3 d8e0000e arg timer_new_kb_blank ,queue 
-02f4 20207f08 branch timer_init 
+0315 7048d501 jam 1 ,mem_24g_kb_blank_data_enable 
+0316 58000180 setarg timer_new_kb_blank_delay 
+0317 d8e0000e arg timer_new_kb_blank ,queue 
+0318 20207f08 branch timer_init 
 
 p_g24_kb_disable_blank_data_forcibly:
-02f5 7048d500 jam 0 ,mem_24g_kb_blank_data_enable 
-02f6 58000000 setarg 0 
-02f7 d8e0000e arg timer_new_kb_blank ,queue 
-02f8 20207f08 branch timer_init 
+0319 7048d500 jam 0 ,mem_24g_kb_blank_data_enable 
+031a 58000000 setarg 0 
+031b d8e0000e arg timer_new_kb_blank ,queue 
+031c 20207f08 branch timer_init 
 
 p_g24_data_type2_data2:
-02f9 d8a00d74 arg mem_usb_kb_multikey ,contw 
-02fa 20400307 call p_g24_data_type2_copy_data2 
-02fb 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
-02fc 245a030a ncall p_g24_kb_mul_enable_blank_data_forcibly ,blank 
-02fd 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
-02fe 205a030e call p_g24_kb_mul_disable_blank_data_forcibly ,blank 
-02ff 68018d74 fetch 3 ,mem_usb_kb_multikey 
-0300 6001c8cf store 3 ,mem_24g_kb_multikey_sta_data 
-0301 6809c8d2 fetcht 3 ,mem_24g_kb_multikey_last_data 
-0302 98467c00 isub temp ,null 
-0303 2442b207 ncall g24_kb_mul_data_into_ep2_fifo ,zero 
-0304 6801c8cf fetch 3 ,mem_24g_kb_multikey_sta_data 
-0305 6001c8d2 store 3 ,mem_24g_kb_multikey_last_data 
-0306 202000e4 branch p_g24_rx_interrupt_clear 
+031d d8a00d74 arg mem_usb_kb_multikey ,contw 
+031e 2040032b call p_g24_data_type2_copy_data2 
+031f 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
+0320 245a032e ncall p_g24_kb_mul_enable_blank_data_forcibly ,blank 
+0321 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
+0322 205a0332 call p_g24_kb_mul_disable_blank_data_forcibly ,blank 
+0323 68018d74 fetch 3 ,mem_usb_kb_multikey 
+0324 6001c8cf store 3 ,mem_24g_kb_multikey_sta_data 
+0325 6809c8d2 fetcht 3 ,mem_24g_kb_multikey_last_data 
+0326 98467c00 isub temp ,null 
+0327 2442b207 ncall g24_kb_mul_data_into_ep2_fifo ,zero 
+0328 6801c8cf fetch 3 ,mem_24g_kb_multikey_sta_data 
+0329 6001c8d2 store 3 ,mem_24g_kb_multikey_last_data 
+032a 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_data_type2_copy_data2:
-0307 d8c04882 arg mem_24g_rxdata_temp + 3 ,contr 
-0308 df200003 arg 3 ,loopcnt 
-0309 20207f01 branch memcpy 
+032b d8c04882 arg mem_24g_rxdata_temp + 3 ,contr 
+032c df200003 arg 3 ,loopcnt 
+032d 20207f01 branch memcpy 
 
 p_g24_kb_mul_enable_blank_data_forcibly:
-030a 7048d601 jam 1 ,mem_24g_kb_mul_blank_data_enable 
-030b 58000180 setarg timer_new_kb_mul_blank_delay 
-030c d8e0000c arg timer_new_kb_mul_blank ,queue 
-030d 20207f08 branch timer_init 
+032e 7048d601 jam 1 ,mem_24g_kb_mul_blank_data_enable 
+032f 58000180 setarg timer_new_kb_mul_blank_delay 
+0330 d8e0000c arg timer_new_kb_mul_blank ,queue 
+0331 20207f08 branch timer_init 
 
 p_g24_kb_mul_disable_blank_data_forcibly:
-030e 7048d600 jam 0 ,mem_24g_kb_mul_blank_data_enable 
-030f 58000000 setarg 0 
-0310 d8e0000c arg timer_new_kb_mul_blank ,queue 
-0311 20207f08 branch timer_init 
+0332 7048d600 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+0333 58000000 setarg 0 
+0334 d8e0000c arg timer_new_kb_mul_blank ,queue 
+0335 20207f08 branch timer_init 
+
+p_g24_data_type2_data3:
+0336 d8a013bc arg mem_usb_kb_system ,contw 
+0337 20400340 call p_g24_data_type2_copy_data3 
+0338 680113bc fetch 2 ,mem_usb_kb_system 
+0339 600113cc store 2 ,mem_usb_kb_system_sta_data 
+033a 680913cf fetcht 2 ,mem_usb_kb_system_last_data 
+033b 98467c00 isub temp ,null 
+033c 2442834b ncall p_g24_kb_sys_data_into_ep2_fifo ,zero 
+033d 680113cc fetch 2 ,mem_usb_kb_system_sta_data 
+033e 600113cf store 2 ,mem_usb_kb_system_last_data 
+033f 20200103 branch p_g24_rx_interrupt_clear 
+
+p_g24_data_type2_copy_data3:
+0340 d8c04882 arg mem_24g_rxdata_temp + 3 ,contr 
+0341 df200002 arg 2 ,loopcnt 
+0342 20207f01 branch memcpy 
+
+p_g24_kb_sys_enable_blank_data_forcibly:
+0343 7048d601 jam 1 ,mem_24g_kb_mul_blank_data_enable 
+0344 58000180 setarg timer_new_kb_mul_blank_delay 
+0345 d8e0000c arg timer_new_kb_mul_blank ,queue 
+0346 20207f08 branch timer_init 
+
+p_g24_kb_sys_disable_blank_data_forcibly:
+0347 7048d600 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+0348 58000000 setarg 0 
+0349 d8e0000c arg timer_new_kb_mul_blank ,queue 
+034a 20207f08 branch timer_init 
+
+p_g24_kb_sys_data_into_ep2_fifo:
+034b 700d5222 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+034c 202031b9 branch g24_data_type1_usbtx_enable_ep2 
 
 p_g24_data_attemp:
-0312 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
-0313 c0008316 beq datatype_mouse ,p_g24_data_attemp_mouse 
-0314 c0010318 beq datatype_keyboard ,p_g24_data_attemp_kbd 
-0315 20600000 rtn 
+034d 6800c882 fetch 1 ,mem_24g_rxdata_temp + 3 
+034e c0008351 beq datatype_mouse ,p_g24_data_attemp_mouse 
+034f c0010353 beq datatype_keyboard ,p_g24_data_attemp_kbd 
+0350 20600000 rtn 
 
 p_g24_data_attemp_mouse:
-0316 68024883 fetch 4 ,mem_24g_rxdata_temp + 4 
-0317 20200121 branch p_g24_store_mouse_addr 
+0351 68024883 fetch 4 ,mem_24g_rxdata_temp + 4 
+0352 20200140 branch p_g24_store_mouse_addr 
 
 p_g24_data_attemp_kbd:
-0318 68024883 fetch 4 ,mem_24g_rxdata_temp + 4 
-0319 20200124 branch p_g24_store_kbd_addr 
+0353 68024883 fetch 4 ,mem_24g_rxdata_temp + 4 
+0354 20200143 branch p_g24_store_kbd_addr 
 
 p_g24_data_attemp_mouse_abort:
-031a 68024889 fetch 4 ,mem_24g_rxdata_temp + 10 
-031b 20200121 branch p_g24_store_mouse_addr 
+0355 68024889 fetch 4 ,mem_24g_rxdata_temp + 10 
+0356 20200140 branch p_g24_store_mouse_addr 
 
 p_g24_data_attemp_kbd_abort:
-031c 68024889 fetch 4 ,mem_24g_rxdata_temp + 10 
-031d 20200124 branch p_g24_store_kbd_addr 
+0357 68024889 fetch 4 ,mem_24g_rxdata_temp + 10 
+0358 20200143 branch p_g24_store_kbd_addr 
 
 p_g24_ota_process:
-031e 68014884 fetch 2 ,mem_24g_rxdata_temp + 5 
-031f 680948ed fetcht 2 ,mem_24g_ota_sta_pid 
-0320 98467c00 isub temp ,null 
-0321 20228323 branch p_g24_ota_next_pac ,zero 
-0322 20600000 rtn 
+0359 68014884 fetch 2 ,mem_24g_rxdata_temp + 5 
+035a 680948ed fetcht 2 ,mem_24g_ota_sta_pid 
+035b 98467c00 isub temp ,null 
+035c 2022835e branch p_g24_ota_next_pac ,zero 
+035d 20600000 rtn 
 
 p_g24_ota_next_pac:
-0323 6800c883 fetch 1 ,mem_24g_rxdata_temp + 4 
-0324 c0610330 beq cmd_ota_exit ,p_g24_ota_exit_process 
-0325 6800c902 fetch 1 ,mem_queue_ele_num 
-0326 207a0000 rtn blank 
-0327 58004903 setarg mem_queue_read 
-0328 20400135 call p_g24_queue_increase 
-0329 6800c902 fetch 1 ,mem_queue_ele_num 
-032a 1fe0ffff increase -1 ,pdata 
-032b 6000c902 store 1 ,mem_queue_ele_num 
-032c 6800c883 fetch 1 ,mem_24g_rxdata_temp + 4 
-032d c0608176 beq cmd_ota_data ,p_user_defined_queue_buff_free 
-032e c0610330 beq cmd_ota_exit ,p_g24_ota_exit_process 
-032f 20600000 rtn 
+035e 6800c883 fetch 1 ,mem_24g_rxdata_temp + 4 
+035f c061036b beq cmd_ota_exit ,p_g24_ota_exit_process 
+0360 6800c902 fetch 1 ,mem_queue_ele_num 
+0361 207a0000 rtn blank 
+0362 58004903 setarg mem_queue_read 
+0363 20400154 call p_g24_queue_increase 
+0364 6800c902 fetch 1 ,mem_queue_ele_num 
+0365 1fe0ffff increase -1 ,pdata 
+0366 6000c902 store 1 ,mem_queue_ele_num 
+0367 6800c883 fetch 1 ,mem_24g_rxdata_temp + 4 
+0368 c0608195 beq cmd_ota_data ,p_user_defined_queue_buff_free 
+0369 c061036b beq cmd_ota_exit ,p_g24_ota_exit_process 
+036a 20600000 rtn 
 
 p_g24_ota_exit_process:
-0330 58000000 setarg 0 
-0331 600148ed store 2 ,mem_24g_ota_sta_pid 
-0332 6000c8ba store 1 ,mem_24g_ackpayload_enable 
-0333 20400126 call p_g24_queue_init 
-0334 6800c886 fetch 1 ,mem_24g_rxdata_temp + 7 
-0335 c02a8338 beq ota_sta_success ,p_g24_ota_exit_success 
-0336 c055033a beq ota_sta_fail ,p_g24_ota_exit_fail 
-0337 20600000 rtn 
+036b 58000000 setarg 0 
+036c 600148ed store 2 ,mem_24g_ota_sta_pid 
+036d 6000c8ba store 1 ,mem_24g_ackpayload_enable 
+036e 20400145 call p_g24_queue_init 
+036f 6800c886 fetch 1 ,mem_24g_rxdata_temp + 7 
+0370 c02a8373 beq ota_sta_success ,p_g24_ota_exit_success 
+0371 c0550375 beq ota_sta_fail ,p_g24_ota_exit_fail 
+0372 20600000 rtn 
 
 p_g24_ota_exit_success:
-0338 700cf702 jam 2 ,mem_usb0_get_report_data + 1 
-0339 2020303f branch usb0_data_ready_report_set1 
+0373 700cf702 jam 2 ,mem_usb0_get_report_data + 1 
+0374 2020303f branch usb0_data_ready_report_set1 
 
 p_g24_ota_exit_fail:
-033a 700cf703 jam 3 ,mem_usb0_get_report_data + 1 
-033b 2020303f branch usb0_data_ready_report_set1 
+0375 700cf703 jam 3 ,mem_usb0_get_report_data + 1 
+0376 2020303f branch usb0_data_ready_report_set1 
 
 p_set_freq_tx:
-033c 60088017 storet 1 ,mem_last_freq 
-033d 1840a200 add temp ,0 ,rega 
-033e 20402981 call rf_write_freq 
-033f 58000500 setarg param_pll_setup 
-0340 20402a8f call sleep 
+0377 60088017 storet 1 ,mem_last_freq 
+0378 1840a200 add temp ,0 ,rega 
+0379 20402981 call rf_write_freq 
+037a 58000500 setarg param_pll_setup 
+037b 20402a8f call sleep 
 
 p_rf_tx_enable:
-0341 70890601 jam 0x1 ,rfen_adc 
-0342 7089003c jam 0x3c ,rfen_rx 
-0343 708901e0 jam 0xe0 ,rfen_tx 
-0344 2000000a nop 10 
-0345 70890201 jam 0x01 ,rfen_mdm 
-0346 7089023d jam 0x3d ,rfen_mdm 
-0347 2000000a nop 10 
-0348 708903b7 jam 0xb7 ,rfen_sn 
-0349 2000000a nop 10 
-034a 7089027d jam 0x7d ,rfen_mdm 
-034b 6800c1de fetch 1 ,mem_tx_power 
-034c c0020355 beq tx_power_f5db ,p_set_tx_power_f5db 
-034d 2020034e branch p_set_tx_power_5db 
+037c 70890601 jam 0x1 ,rfen_adc 
+037d 7089003c jam 0x3c ,rfen_rx 
+037e 708901e0 jam 0xe0 ,rfen_tx 
+037f 2000000a nop 10 
+0380 70890201 jam 0x01 ,rfen_mdm 
+0381 7089023d jam 0x3d ,rfen_mdm 
+0382 2000000a nop 10 
+0383 708903b7 jam 0xb7 ,rfen_sn 
+0384 2000000a nop 10 
+0385 7089027d jam 0x7d ,rfen_mdm 
+0386 6800c1de fetch 1 ,mem_tx_power 
+0387 c0020390 beq tx_power_f5db ,p_set_tx_power_f5db 
+0388 20200389 branch p_set_tx_power_5db 
 
 p_set_tx_power_5db:
-034e 70894bba jam 0xba ,0x894b 
-034f 708955d0 jam 0xd0 ,0x8955 
-0350 708956e0 jam 0xe0 ,0x8956 
-0351 70895788 jam 0x88 ,0x8957 
-0352 7089583c jam 0x3c ,0x8958 
-0353 70895910 jam 0x10 ,0x8959 
-0354 20202953 branch set_tx_power_5db 
+0389 70894bba jam 0xba ,0x894b 
+038a 708955d0 jam 0xd0 ,0x8955 
+038b 708956e0 jam 0xe0 ,0x8956 
+038c 70895788 jam 0x88 ,0x8957 
+038d 7089583c jam 0x3c ,0x8958 
+038e 70895910 jam 0x10 ,0x8959 
+038f 20202953 branch set_tx_power_5db 
 
 p_set_tx_power_f5db:
-0355 70894bba jam 0xba ,0x894b 
-0356 708955d0 jam 0xd0 ,0x8955 
-0357 708956c0 jam 0xc0 ,0x8956 
-0358 70895788 jam 0x88 ,0x8957 
-0359 7089586c jam 0x6c ,0x8958 
-035a 70895910 jam 0x10 ,0x8959 
-035b 2020295b branch set_tx_power_f5db 
+0390 70894bba jam 0xba ,0x894b 
+0391 708955d0 jam 0xd0 ,0x8955 
+0392 708956c0 jam 0xc0 ,0x8956 
+0393 70895788 jam 0x88 ,0x8957 
+0394 7089586c jam 0x6c ,0x8958 
+0395 70895910 jam 0x10 ,0x8959 
+0396 2020295b branch set_tx_power_f5db 
 
 p_soft_reset:
-035c 20800000 clear_stack 
-035d 68108043 hfetch 1 ,core_config 
-035e 79207e03 set1 watchdog_bit ,pdata 
-035f 60108043 hstore 1 ,core_config 
-0360 20202003 branch soft_reset + 2 
+0397 20800000 clear_stack 
+0398 68108043 hfetch 1 ,core_config 
+0399 79207e03 set1 watchdog_bit ,pdata 
+039a 60108043 hstore 1 ,core_config 
+039b 20202003 branch soft_reset + 2 
 
 p_shutdown_radio:
-0361 18002a08 force 8 ,radio_ctrl 
-0362 202028fa branch shutdown_radio + 1 
+039c 18002a08 force 8 ,radio_ctrl 
+039d 202028fa branch shutdown_radio + 1 
 
 p_initialize_radio_cont:
-0363 20402978 call initialize_radio_cont + 1 
-0364 70804205 jam clksel_dpll ,core_clksel 
-0365 20600000 rtn 
+039e 20402978 call initialize_radio_cont + 1 
+039f 70804205 jam clksel_dpll ,core_clksel 
+03a0 20600000 rtn 
 
 p_rssi_noise:
-0366 204029bb call save_rssi 
-0367 207a0000 rtn blank 
-0368 6808c8f2 fetcht 1 ,mem_rssi_noise_index 
-0369 da200d9e arg mem_rssi_noise_buffer ,rega 
-036a 2040036d call p_rssi_store 
-036b 6008c8f2 storet 1 ,mem_rssi_noise_index 
-036c 20600000 rtn 
+03a1 204029bb call save_rssi 
+03a2 207a0000 rtn blank 
+03a3 6808c8f2 fetcht 1 ,mem_rssi_noise_index 
+03a4 da200d9e arg mem_rssi_noise_buffer ,rega 
+03a5 204003a8 call p_rssi_store 
+03a6 6008c8f2 storet 1 ,mem_rssi_noise_index 
+03a7 20600000 rtn 
 
 p_rssi_store:
-036d 1a227e00 copy rega ,pdata 
-036e 98408a00 iadd temp ,contw 
-036f 68008018 fetch 1 ,mem_rssi 
-0370 e0a08000 istore 1 ,contw 
-0371 18408401 increase 1 ,temp 
-0372 184104ff and_into rssi_buf_len_noise ,temp 
-0373 20600000 rtn 
+03a8 1a227e00 copy rega ,pdata 
+03a9 98408a00 iadd temp ,contw 
+03aa 68008018 fetch 1 ,mem_rssi 
+03ab e0a08000 istore 1 ,contw 
+03ac 18408401 increase 1 ,temp 
+03ad 184104ff and_into rssi_buf_len_noise ,temp 
+03ae 20600000 rtn 
 
 p_rssi_average:
-0374 d8400000 arg 0 ,temp 
-0375 df200100 arg rssi_buf_len_noise + 1 ,loopcnt 
-0376 1a220c00 copy rega ,contr 
-0377 20202e64 branch rssi_average_loop 
-0378 20600000 rtn 
+03af d8400000 arg 0 ,temp 
+03b0 df200100 arg rssi_buf_len_noise + 1 ,loopcnt 
+03b1 1a220c00 copy rega ,contr 
+03b2 20202e64 branch rssi_average_loop 
+03b3 20600000 rtn 
 
 p_g24_update_addr_and_synccrc8:
-0379 60024860 store 4 ,mem_24g_addr 
+03b4 60024860 store 4 ,mem_24g_addr 
 
 p_g24_syncword_crc8:
-037a da200000 arg 0 ,rega 
-037b df200004 arg 4 ,loopcnt 
-037c d8c04860 arg mem_24g_addr ,contr 
+03b5 da200000 arg 0 ,rega 
+03b6 df200004 arg 4 ,loopcnt 
+03b7 d8c04860 arg mem_24g_addr ,contr 
 
 p_g24_syncword_crc8_loop:
-037d e8c08000 ifetch 1 ,contr 
-037e 9a20a200 iadd rega ,rega 
-037f c200037d loop p_g24_syncword_crc8_loop 
-0380 1a227e00 copy rega ,pdata 
-0381 600148e9 store 2 ,mem_24g_syncword 
-0382 6800c8e9 fetch 1 ,mem_24g_syncword 
-0383 6808c8ea fetcht 1 ,mem_24g_syncword + 1 
-0384 9840fe00 iadd temp ,pdata 
-0385 6000c8eb store 1 ,mem_24g_syncword_crc8 
-0386 20600000 rtn 
+03b8 e8c08000 ifetch 1 ,contr 
+03b9 9a20a200 iadd rega ,rega 
+03ba c20003b8 loop p_g24_syncword_crc8_loop 
+03bb 1a227e00 copy rega ,pdata 
+03bc 600148e9 store 2 ,mem_24g_syncword 
+03bd 6800c8e9 fetch 1 ,mem_24g_syncword 
+03be 6808c8ea fetcht 1 ,mem_24g_syncword + 1 
+03bf 9840fe00 iadd temp ,pdata 
+03c0 6000c8eb store 1 ,mem_24g_syncword_crc8 
+03c1 20600000 rtn 
 
 p_g24_transmit_prep:
-0387 6800c838 fetch 1 ,mem_24g_datalen 
-0388 1fe0fe02 increase 2 ,pdata 
-0389 6000c83a store 1 ,mem_24g_txlen 
-038a 6800c839 fetch 1 ,mem_24g_data_type 
-038b 6000c7f4 store 1 ,mem_24g_txpayload 
-038c 6800c838 fetch 1 ,mem_24g_datalen 
-038d 1fe9fe00 lshift3 pdata ,pdata 
-038e 6808c837 fetcht 1 ,mem_24g_pid 
-038f 18410403 and temp ,0x03 ,temp 
-0390 18438400 lshift temp ,temp 
-0391 9841fe00 ior temp ,pdata 
-0392 6808c874 fetcht 1 ,mem_24g_no_ack 
-0393 9840fe00 iadd temp ,pdata 
-0394 e0a08000 istore 1 ,contw 
-0395 6800c838 fetch 1 ,mem_24g_datalen 
-0396 98007200 iforce loopcnt 
-0397 d8c047d4 arg mem_24g_txbuf ,contr 
-0398 20207f01 branch memcpy 
+03c2 6800c838 fetch 1 ,mem_24g_datalen 
+03c3 1fe0fe02 increase 2 ,pdata 
+03c4 6000c83a store 1 ,mem_24g_txlen 
+03c5 6800c839 fetch 1 ,mem_24g_data_type 
+03c6 6000c7f4 store 1 ,mem_24g_txpayload 
+03c7 6800c838 fetch 1 ,mem_24g_datalen 
+03c8 1fe9fe00 lshift3 pdata ,pdata 
+03c9 6808c837 fetcht 1 ,mem_24g_pid 
+03ca 18410403 and temp ,0x03 ,temp 
+03cb 18438400 lshift temp ,temp 
+03cc 9841fe00 ior temp ,pdata 
+03cd 6808c874 fetcht 1 ,mem_24g_no_ack 
+03ce 9840fe00 iadd temp ,pdata 
+03cf e0a08000 istore 1 ,contw 
+03d0 6800c838 fetch 1 ,mem_24g_datalen 
+03d1 98007200 iforce loopcnt 
+03d2 d8c047d4 arg mem_24g_txbuf ,contr 
+03d3 20207f01 branch memcpy 
 
 p_g24_ch:
-0399 6808c843 fetcht 1 ,mem_24g_current_ch_number 
-039a 2040039d call p_g24_ch_map_size 
-039b 6008c843 storet 1 ,mem_24g_current_ch_number 
-039c 20600000 rtn 
+03d4 6808c843 fetcht 1 ,mem_24g_current_ch_number 
+03d5 204003d8 call p_g24_ch_map_size 
+03d6 6008c843 storet 1 ,mem_24g_current_ch_number 
+03d7 20600000 rtn 
 
 p_g24_ch_map_size:
-039d 204003a1 call p_g24_ch_calc 
-039e 18408401 increase 1 ,temp 
-039f 18410403 and_into 3 ,temp 
-03a0 20600000 rtn 
+03d8 204003dc call p_g24_ch_calc 
+03d9 18408401 increase 1 ,temp 
+03da 18410403 and_into 3 ,temp 
+03db 20600000 rtn 
 
 p_g24_ch_calc:
-03a1 6800c860 fetch 1 ,mem_24g_addr 
-03a2 1fe17e03 and_into 0x03 ,pdata 
-03a3 1fefa204 mul32 pdata ,4 ,rega 
-03a4 58004849 setarg mem_24g_ch_map1 
-03a5 9a20fe00 iadd rega ,pdata 
-03a6 98408c00 iadd temp ,contr 
-03a7 e8c08000 ifetch 1 ,contr 
-03a8 6000c842 store 1 ,mem_24g_ch 
-03a9 20600000 rtn 
+03dc 6800c860 fetch 1 ,mem_24g_addr 
+03dd 1fe17e03 and_into 0x03 ,pdata 
+03de 1fefa204 mul32 pdata ,4 ,rega 
+03df 58004849 setarg mem_24g_ch_map1 
+03e0 9a20fe00 iadd rega ,pdata 
+03e1 98408c00 iadd temp ,contr 
+03e2 e8c08000 ifetch 1 ,contr 
+03e3 6000c842 store 1 ,mem_24g_ch 
+03e4 20600000 rtn 
 
 p_g24_prep:
-03aa 7844fc00 disable enable_crc 
-03ab 7843fc00 disable enable_white 
-03ac 58555555 setarg 0x555555 
-03ad 98001e00 iforce crc24_init 
-03ae 6800c842 fetch 1 ,mem_24g_ch 
-03af 1fed8400 reverse pdata ,temp 
-03b0 79200401 set1 1 ,temp 
-03b1 18431c00 rshift temp ,white_init 
-03b2 20600000 rtn 
+03e5 7844fc00 disable enable_crc 
+03e6 7843fc00 disable enable_white 
+03e7 58555555 setarg 0x555555 
+03e8 98001e00 iforce crc24_init 
+03e9 6800c842 fetch 1 ,mem_24g_ch 
+03ea 1fed8400 reverse pdata ,temp 
+03eb 79200401 set1 1 ,temp 
+03ec 18431c00 rshift temp ,white_init 
+03ed 20600000 rtn 
 
 p_g24_receive_packet:
-03b3 204053c4 call le_enable 
-03b4 68024860 fetch 4 ,mem_24g_addr 
-03b5 98001200 iforce access 
-03b6 20402918 call set_sync_on 
-03b7 6808c842 fetcht 1 ,mem_24g_ch 
-03b8 2040291f call set_freq_rx 
-03b9 58000500 setarg param_pll_setup 
-03ba 20402a8f call sleep 
-03bb 20402924 call rf_rx_enable 
+03ee 204053c4 call le_enable 
+03ef 68024860 fetch 4 ,mem_24g_addr 
+03f0 98001200 iforce access 
+03f1 20402918 call set_sync_on 
+03f2 6808c842 fetcht 1 ,mem_24g_ch 
+03f3 2040291f call set_freq_rx 
+03f4 58000500 setarg param_pll_setup 
+03f5 20402a8f call sleep 
+03f6 20402924 call rf_rx_enable 
 
 p_g24_receive_rxon:
-03bc 204003aa call p_g24_prep 
-03bd 7857fc00 disable user3 
-03be 7826fc00 enable decode_fec0 
-03bf 7830fc00 enable is_rx 
-03c0 78507c00 disable is_tx 
-03c1 78287c00 enable swfine 
-03c2 6801483b fetch 2 ,mem_24g_rx_window 
-03c3 98003600 iforce stop_watch 
-03c4 37c18400 correlate null ,timeout 
-03c5 242c03f8 nbranch p_g24_sync_timeout ,sync 
-03c6 7846fc00 disable decode_fec0 
-03c7 7825fc00 enable decode_fec1 
-03c8 7823fc00 enable enable_white 
-03c9 7824fc00 enable enable_crc 
-03ca 09800008 parse demod ,bucket ,8 
-03cb 19897e00 rshift3 pwindow ,pdata 
-03cc 6000c8ec store 1 ,mem_24g_get_syncword_crc8 
-03cd 6808c8eb fetcht 1 ,mem_24g_syncword_crc8 
-03ce 98467c00 isub temp ,null 
-03cf 242283f5 nbranch p_g24_end_of_packet ,zero 
-03d0 09800008 parse demod ,bucket ,8 
-03d1 19897e00 rshift3 pwindow ,pdata 
-03d2 6000c7b2 store 1 ,mem_24g_rxbuf 
-03d3 6800c87e fetch 1 ,mem_24g_mode 
-03d4 1fe67c02 sub pdata ,rx_24g ,null 
-03d5 202283da branch p_g24_receive_skip ,zero 
-03d6 6800c7b2 fetch 1 ,mem_24g_rxbuf 
-03d7 6808c839 fetcht 1 ,mem_24g_data_type 
-03d8 a8400e00 icompare bits_data ,temp 
-03d9 242083f5 nbranch p_g24_end_of_packet ,true 
+03f7 204003e5 call p_g24_prep 
+03f8 7857fc00 disable user3 
+03f9 7826fc00 enable decode_fec0 
+03fa 7830fc00 enable is_rx 
+03fb 78507c00 disable is_tx 
+03fc 78287c00 enable swfine 
+03fd 6801483b fetch 2 ,mem_24g_rx_window 
+03fe 98003600 iforce stop_watch 
+03ff 37c18400 correlate null ,timeout 
+0400 242c0433 nbranch p_g24_sync_timeout ,sync 
+0401 7846fc00 disable decode_fec0 
+0402 7825fc00 enable decode_fec1 
+0403 7823fc00 enable enable_white 
+0404 7824fc00 enable enable_crc 
+0405 09800008 parse demod ,bucket ,8 
+0406 19897e00 rshift3 pwindow ,pdata 
+0407 6000c8ec store 1 ,mem_24g_get_syncword_crc8 
+0408 6808c8eb fetcht 1 ,mem_24g_syncword_crc8 
+0409 98467c00 isub temp ,null 
+040a 24228430 nbranch p_g24_end_of_packet ,zero 
+040b 09800008 parse demod ,bucket ,8 
+040c 19897e00 rshift3 pwindow ,pdata 
+040d 6000c7b2 store 1 ,mem_24g_rxbuf 
+040e 6800c87e fetch 1 ,mem_24g_mode 
+040f 1fe67c02 sub pdata ,rx_24g ,null 
+0410 20228415 branch p_g24_receive_skip ,zero 
+0411 6800c7b2 fetch 1 ,mem_24g_rxbuf 
+0412 6808c839 fetcht 1 ,mem_24g_data_type 
+0413 a8400e00 icompare bits_data ,temp 
+0414 24208430 nbranch p_g24_end_of_packet ,true 
 
 p_g24_receive_skip:
-03da 09800008 parse demod ,bucket ,8 
-03db 19897e00 rshift3 pwindow ,pdata 
-03dc e0a08000 istore 1 ,contw 
-03dd 1fe97e00 rshift3 pdata ,pdata 
-03de 1fe1721f and pdata ,0x1f ,loopcnt 
-03df 202283e4 branch p_g24rx_nopayload ,zero 
+0415 09800008 parse demod ,bucket ,8 
+0416 19897e00 rshift3 pwindow ,pdata 
+0417 e0a08000 istore 1 ,contw 
+0418 1fe97e00 rshift3 pdata ,pdata 
+0419 1fe1721f and pdata ,0x1f ,loopcnt 
+041a 2022841f branch p_g24rx_nopayload ,zero 
 
 p_g24rx_loop:
-03e0 09800008 parse demod ,bucket ,8 
-03e1 19897e00 rshift3 pwindow ,pdata 
-03e2 e0a08000 istore 1 ,contw 
-03e3 c20003e0 loop p_g24rx_loop 
+041b 09800008 parse demod ,bucket ,8 
+041c 19897e00 rshift3 pwindow ,pdata 
+041d e0a08000 istore 1 ,contw 
+041e c200041b loop p_g24rx_loop 
 
 p_g24rx_nopayload:
-03e4 09800018 parse demod ,bucket ,24 
-03e5 78287c00 enable swfine 
-03e6 db600664 arg param_sifs ,stop_watch 
-03e7 1fef7e00 rshift32 pdata ,pdata 
-03e8 1ff17e00 rshift16 pdata ,pdata 
-03e9 e0a18000 istore 3 ,contw 
-03ea 7845fc00 disable decode_fec1 
-03eb 204029bb call save_rssi 
-03ec 202303f5 branch p_g24_end_of_packet ,crc_failed 
-03ed 7837fc00 enable user3 
-03ee 68008017 fetch 1 ,mem_last_freq 
-03ef 1fe0a200 add pdata ,0 ,rega 
-03f0 20402981 call rf_write_freq 
-03f1 7846fc00 disable decode_fec0 
-03f2 20402918 call set_sync_on 
-03f3 20600000 rtn 
-03f4 20600000 rtn 
+041f 09800018 parse demod ,bucket ,24 
+0420 78287c00 enable swfine 
+0421 db600664 arg param_sifs ,stop_watch 
+0422 1fef7e00 rshift32 pdata ,pdata 
+0423 1ff17e00 rshift16 pdata ,pdata 
+0424 e0a18000 istore 3 ,contw 
+0425 7845fc00 disable decode_fec1 
+0426 204029bb call save_rssi 
+0427 20230430 branch p_g24_end_of_packet ,crc_failed 
+0428 7837fc00 enable user3 
+0429 68008017 fetch 1 ,mem_last_freq 
+042a 1fe0a200 add pdata ,0 ,rega 
+042b 20402981 call rf_write_freq 
+042c 7846fc00 disable decode_fec0 
+042d 20402918 call set_sync_on 
+042e 20600000 rtn 
+042f 20600000 rtn 
 
 p_g24_end_of_packet:
-03f5 784dfc00 disable encode_fec1 
-03f6 7845fc00 disable decode_fec1 
-03f7 2020264d branch end_of_packet 
+0430 784dfc00 disable encode_fec1 
+0431 7845fc00 disable decode_fec1 
+0432 2020264d branch end_of_packet 
 
 p_g24_sync_timeout:
-03f8 20400366 call p_rssi_noise 
-03f9 202003f5 branch p_g24_end_of_packet 
+0433 204003a1 call p_rssi_noise 
+0434 20200430 branch p_g24_end_of_packet 
 
 p_g24_set_freq_tx:
-03fa 20402918 call set_sync_on 
-03fb 6808c842 fetcht 1 ,mem_24g_ch 
-03fc 20202933 branch set_freq_tx 
+0435 20402918 call set_sync_on 
+0436 6808c842 fetcht 1 ,mem_24g_ch 
+0437 20202933 branch set_freq_tx 
 
 p_g24_transmit:
-03fd 204053c4 call le_enable 
-03fe 68024860 fetch 4 ,mem_24g_addr 
-03ff 98001200 iforce access 
-0400 204003aa call p_g24_prep 
-0401 204003fa call p_g24_set_freq_tx 
-0402 79202a00 set1 txgfsk ,radio_ctrl 
-0403 782efc00 enable encode_fec0 
-0404 78307c00 enable is_tx 
-0405 7850fc00 disable is_rx 
-0406 19317e00 rshift16 access ,pdata 
-0407 1fecfe00 rshift8 pdata ,pdata 
-0408 1ff1fe00 rshift4 pdata ,pdata 
-0409 08008628 inject mod ,40 
-040a 784efc00 disable encode_fec0 
-040b 782dfc00 enable encode_fec1 
-040c 7823fc00 enable enable_white 
-040d 7824fc00 enable enable_crc 
-040e 6800c8eb fetch 1 ,mem_24g_syncword_crc8 
-040f 08008608 inject mod ,8 
-0410 6800c83a fetch 1 ,mem_24g_txlen 
-0411 98007200 iforce loopcnt 
-0412 d8c047f4 arg mem_24g_txpayload ,contr 
+0438 204053c4 call le_enable 
+0439 68024860 fetch 4 ,mem_24g_addr 
+043a 98001200 iforce access 
+043b 204003e5 call p_g24_prep 
+043c 20400435 call p_g24_set_freq_tx 
+043d 79202a00 set1 txgfsk ,radio_ctrl 
+043e 782efc00 enable encode_fec0 
+043f 78307c00 enable is_tx 
+0440 7850fc00 disable is_rx 
+0441 19317e00 rshift16 access ,pdata 
+0442 1fecfe00 rshift8 pdata ,pdata 
+0443 1ff1fe00 rshift4 pdata ,pdata 
+0444 08008628 inject mod ,40 
+0445 784efc00 disable encode_fec0 
+0446 782dfc00 enable encode_fec1 
+0447 7823fc00 enable enable_white 
+0448 7824fc00 enable enable_crc 
+0449 6800c8eb fetch 1 ,mem_24g_syncword_crc8 
+044a 08008608 inject mod ,8 
+044b 6800c83a fetch 1 ,mem_24g_txlen 
+044c 98007200 iforce loopcnt 
+044d d8c047f4 arg mem_24g_txpayload ,contr 
 
 p_g24tr_loop:
-0413 e8c08000 ifetch 1 ,contr 
-0414 08008608 inject mod ,8 
-0415 c2000413 loop p_g24tr_loop 
-0416 6800c8f0 fetch 1 ,mem_rssi_hex 
-0417 08008608 inject mod ,8 
-0418 78247c00 enable enable_parity 
-0419 08008618 inject mod ,24 
-041a 78447c00 disable enable_parity 
-041b 37d38200 until null ,tx_clear 
-041c 20000064 nop 100 
-041d 784efc00 disable encode_fec0 
-041e 784dfc00 disable encode_fec1 
-041f 20600000 rtn 
+044e e8c08000 ifetch 1 ,contr 
+044f 08008608 inject mod ,8 
+0450 c200044e loop p_g24tr_loop 
+0451 6800c8f0 fetch 1 ,mem_rssi_hex 
+0452 08008608 inject mod ,8 
+0453 78247c00 enable enable_parity 
+0454 08008618 inject mod ,24 
+0455 78447c00 disable enable_parity 
+0456 37d38200 until null ,tx_clear 
+0457 20000064 nop 100 
+0458 784efc00 disable encode_fec0 
+0459 784dfc00 disable encode_fec1 
+045a 20600000 rtn 
 org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /branch/USB/dongle_16M/program/patch.prog	(revision 2088)
+++ /branch/USB/dongle_16M/program/patch.prog	(working copy)
@@ -13,6 +13,7 @@
 	beq patch18_4,p_app_init
 	beq patch1e_7,p_usb_init
 	beq patch1f_0,p_usb_status1
+	beq patch1f_4,p_usb_tx
 endif
 	branch loop
 pf_patch_ext:
@@ -60,9 +61,48 @@
 	store 2,mem_hidreportdesc_m
 	//confdesc
 	jam 0x1a,mem_confdesc+26//hid_descriptor--keyboard length
-	jam 0xa9,mem_confdesc+51//hid_descriptor--mouse length
+	jam 0xa3,mem_confdesc+51//hid_descriptor--mouse length
 	rtn
 
+
+p_usb_tx:
+	fetch 1,mem_usb_tx_enable
+	rtn blank
+	fetch 1,mem_usb_tx_wait
+	nbranch usb_inwake_state_tx_dispose,blank
+	fetch 1,mem_usb_device_enumeration_endflag
+	branch usb_tx_fifo_release,blank
+	fetch 1,mem_usb_state
+	beq USB_SLEEP,usb_windows_wakeup
+	bne USB_CONNECTED,usb_tx_fifo_release
+	fetch 1,mem_usb_clear_remote_wakeup
+	nbranch usb_tx_fifo_release,blank
+	call usb_tx_data_ep1
+	branch p_usb_tx_data_ep2
+
+
+p_usb_tx_data_ep2:
+	fetch 1,mem_usb_tx_enable
+	rtnbit0 2
+	fetch 1,mem_usb_tx_wait
+	rtnbit1 2
+	fetch 1,mem_usb_tx_enable
+	set0 2,pdata
+	store 1,mem_usb_tx_enable
+	fetch 1,mem_usb_ep2_data
+	rtn blank
+	beq USB_EP2_MS,usb_tx_ms_data
+	beq USB_EP2_MULTIKEY,usb_tx_kb_multikey_data
+	beq USB_EP2_SYSTEMKEY,p_usb_tx_kb_systemkey_data
+	branch assert
+
+p_usb_tx_kb_systemkey_data:
+	jam 0,mem_usb_ep2_data
+	arg 2,loopcnt
+	arg mem_usb_kb_system,contr
+	branch usb_tx_ep2
+
+
 p_new_kb_hidreportdesc:
 	setarg mem_hidreportdesc_kb_new_temp
 	store 2,mem_hidreportdesc_kb
@@ -97,13 +137,13 @@
 p_usb_set_report:
 	jam 1,mem_usb0_get_set_report
 	call usb_set_report_resume_judge
-	fetch 1,mem_usb_tx_win_enable
-	ncall p_usb_get_output_data,blank
 	fetch 2,mem_usb_setup_bValue
 	store 2,mem_usb_setup_bValue_temp
 	nop 15000	//delay 1ms
 	hfetch 1,core_usb_ep_len
 	ncall p_usb_set_report_rxdata,blank
+	fetch 1,mem_usb_tx_win_enable
+	ncall p_usb_get_output_data,blank
 	branch usb_set_report+4
 p_usb_set_report_rxdata:
 	copy pdata,loopcnt
@@ -881,7 +921,7 @@
 	rtn
 
 p_g24_kb_led_ackpayload_prep:
-	jam 0,mem_24g_ackpayload_enable
+	//jam 0,mem_24g_ackpayload_enable
 	jam 0,mem_usb_tx_win_enable
 	jam 0x01,mem_24g_datalen
 	arg 0x01,loopcnt
@@ -974,10 +1014,14 @@
 	branch p_g24_data_attemp_kbd_abort,true
 	fetch 1,mem_24g_rxdata_temp+3
 	beq 0,p_g24_data_type2_data1	//normal key
+	beq 2,p_g24_data_type2_data3 	//system key
 	beq 3,p_g24_data_type2_data2	//multikey
 	branch p_g24_rx_interrupt_clear
 
 p_g24_data_type2_data1:
+	fetch 1,mem_24g_rxdata_temp+5
+	call p_g24_kb_led_clear_flag,blank
+	jam 0,mem_24g_rxdata_temp+5
 	arg mem_usb_kb_data,contw
 	call p_g24_data_type2_copy_data1
 	fetch 8,mem_usb_kb_data
@@ -993,6 +1037,10 @@
 	store 8,mem_24g_kb_data_last_data
 	branch p_g24_rx_interrupt_clear
 
+p_g24_kb_led_clear_flag:
+	jam 0,mem_24g_ackpayload_enable
+	rtn
+
 p_g24_data_type2_copy_data1:
 	arg mem_24g_rxdata_temp+4,contr
 	arg 8,loopcnt
@@ -1044,6 +1092,40 @@
 	arg TIMER_NEW_KB_MUL_BLANK,queue
 	branch timer_init
 
+p_g24_data_type2_data3:
+	arg mem_usb_kb_system,contw
+	call p_g24_data_type2_copy_data3
+	fetch 2,mem_usb_kb_system
+	store 2,mem_usb_kb_system_sta_data
+	fetcht 2,mem_usb_kb_system_last_data
+	isub temp,null
+	ncall p_g24_kb_sys_data_into_ep2_fifo,zero
+	fetch 2,mem_usb_kb_system_sta_data
+	store 2,mem_usb_kb_system_last_data
+	branch p_g24_rx_interrupt_clear
+
+p_g24_data_type2_copy_data3:
+	arg mem_24g_rxdata_temp+3,contr
+	arg 2,loopcnt
+	branch memcpy
+
+
+p_g24_kb_sys_enable_blank_data_forcibly:
+	jam 1,mem_24g_kb_mul_blank_data_enable
+	setarg TIMER_NEW_KB_MUL_BLANK_DELAY
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	branch timer_init
+	
+p_g24_kb_sys_disable_blank_data_forcibly:
+	jam 0,mem_24g_kb_mul_blank_data_enable
+	setarg 0
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	branch timer_init
+
+p_g24_kb_sys_data_into_ep2_fifo:
+	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
+	branch g24_data_type1_usbtx_enable_ep2
+
 	
 p_g24_data_attemp:
 	fetch 1,mem_24g_rxdata_temp+3
Index: sched/usb.dat
===================================================================
--- /branch/USB/dongle_16M/sched/usb.dat	(revision 2088)
+++ /branch/USB/dongle_16M/sched/usb.dat	(working copy)
@@ -3,7 +3,7 @@
 mem_patch11:46
 mem_patch18:10
 mem_patch1e:80
-mem_patch1f:01
+mem_patch1f:11
 
 mem_rf_init_data_new:
 # tx power
@@ -98,7 +98,7 @@
 
 mem_hidreportdesc_m_temp:
 #mouse hid
-a9				# total length
+a3				# total length
 #====================���====75====================================
 05 01	#USAGE_PAGE (Generic Desktop)
 09 02	#USAGE (Mouse)
@@ -145,15 +145,15 @@
 85 02	#Report ID (2)
 05 01	#Usage Page (Generic Desktop),
 19 81	#Usage Minimum (), 
-29 83	#Usage Maximum (),
+29 88	#Usage Maximum (),
 15 00	#Logical Minimum (0),
 25 01	#Logical Maximum (1),
-95 03	#Report Count (3),
+95 08	#Report Count (8),
 75 01	#Report Size (1),
 81 06	#Input (Data,Var,Rel)
-95 01	#Report Count (1),  
-75 05	#Report Size (5),	
-81 01	#Input (Const,Ary,Abs)
+#95 01	#Report Count (1),  
+#75 05	#Report Size (5),	
+#81 01	#Input (Const,Ary,Abs)
 c0		#END_COLLECTION
    
 #===============��ý�尴������=======25========================
