Index: format/g24.format
===================================================================
--- /branch/USB/dongle/format/g24.format	(revision 2963)
+++ /branch/USB/dongle/format/g24.format	(working copy)
@@ -130,6 +130,13 @@
 1 mem_24g_bind_delay_count
 1 mem_24g_work_delay_count
 
+1 mem_24g_mode_switch_2
+1 mem_24g_mode_switch_2_init
+2 mem_24g_mode_switch_cnt_2
+1 mem_24g_mode_switch_exit_2
+1 mem_24g_time_slice_2
+
+1 mem_dongle_bind_device_living
 )
 
 (
Index: output/eeprom.dat
===================================================================
--- /branch/USB/dongle/output/eeprom.dat	(revision 2963)
+++ /branch/USB/dongle/output/eeprom.dat	(working copy)
@@ -2,8 +2,8 @@
 02
 aa
 55
-7a
-11
+be
+12
 c2
 84
 00
@@ -11,15 +11,15 @@
 c0
 42
 83
-a2
+f3
 c0
 44
 83
-7a
+cb
 c0
 00
 03
-9a
+eb
 c0
 47
 00
@@ -466,6 +466,10 @@
 00
 70
 49
+81
+00
+70
+49
 79
 07
 20
@@ -491,15 +495,15 @@
 20
 40
 00
-88
+89
 20
 40
 01
-46
+64
 20
 40
 00
-81
+82
 68
 00
 c8
@@ -507,15 +511,15 @@
 c0
 00
 01
-9a
+b8
 c0
 00
 80
-92
+93
 c0
 07
 80
-8e
+8f
 20
 60
 00
@@ -527,7 +531,7 @@
 20
 40
 00
-84
+85
 20
 20
 65
@@ -575,39 +579,39 @@
 20
 40
 00
-97
+98
 20
 40
 00
-9b
+9c
 20
 40
 01
-64
+82
 20
 20
 00
-8f
+90
 20
 40
 00
-97
+98
 20
 40
 00
-9b
+9c
 20
 40
 00
-e6
+e7
 20
 40
 01
-64
+82
 20
 20
 00
-93
+94
 70
 48
 b8
@@ -635,19 +639,19 @@
 20
 40
 00
-a1
+a2
 20
 40
 00
-af
+b0
 20
 40
-02
-bb
+03
+08
 20
 20
 00
-ce
+cf
 68
 00
 c8
@@ -694,16 +698,16 @@
 9f
 20
 40
-03
-b7
+04
+08
 20
 40
-03
-d7
+04
+28
 20
 20
 01
-02
+03
 68
 00
 c8
@@ -711,7 +715,7 @@
 c0
 00
 80
-c8
+c9
 68
 00
 c8
@@ -719,7 +723,7 @@
 c0
 00
 80
-c2
+c3
 68
 0a
 48
@@ -778,16 +782,16 @@
 01
 20
 20
-03
-d7
+04
+28
 70
 48
 b9
 00
 20
 20
-03
-d7
+04
+28
 1c
 42
 7e
@@ -810,8 +814,8 @@
 9e
 20
 40
+04
 03
-b2
 60
 08
 c8
@@ -826,20 +830,20 @@
 00
 20
 20
-03
-d7
+04
+28
 20
 40
 00
-d1
+d2
 20
 40
 00
-d8
+d9
 20
 20
 00
-df
+e0
 68
 00
 c8
@@ -935,11 +939,11 @@
 20
 40
 00
-ea
+eb
 20
 20
 00
-f6
+f7
 68
 00
 c8
@@ -986,16 +990,16 @@
 42
 20
 20
-03
-b7
+04
+08
 20
 40
-01
-f2
+02
+3b
 24
 37
 81
-02
+03
 70
 49
 7a
@@ -1023,19 +1027,19 @@
 c0
 55
 01
-05
+21
 c0
 2a
 81
-12
+2e
 c0
 11
 01
-22
+3e
 c0
 7f
 81
-3c
+5a
 d8
 a0
 47
@@ -1051,15 +1055,123 @@
 68
 00
 c8
+a4
+c1
+80
 80
+00
+68
+00
+c8
+ba
+24
+7a
+00
+00
+68
+00
+c7
+b3
 c0
 00
 81
-09
+0e
 c0
 01
 01
-0f
+12
+20
+60
+00
+00
+68
+00
+c9
+81
+c4
+00
+00
+00
+78
+57
+fc
+00
+20
+60
+00
+00
+68
+00
+c9
+81
+c4
+00
+80
+00
+20
+20
+01
+10
+68
+00
+c8
+ba
+24
+7a
+00
+00
+68
+00
+c9
+81
+1f
+e1
+fe
+01
+60
+00
+c9
+81
+20
+60
+00
+00
+68
+00
+c8
+ba
+24
+7a
+00
+00
+68
+00
+c9
+81
+1f
+e1
+fe
+02
+60
+00
+c9
+81
+20
+60
+00
+00
+68
+00
+c8
+80
+c0
+00
+81
+25
+c0
+01
+01
+2b
 20
 60
 00
@@ -1099,7 +1211,7 @@
 20
 20
 01
-0b
+27
 68
 00
 c8
@@ -1107,11 +1219,11 @@
 c0
 00
 81
-16
+32
 c0
 01
 01
-1c
+38
 20
 60
 00
@@ -1119,7 +1231,7 @@
 20
 40
 01
-0a
+26
 68
 00
 c8
@@ -1127,7 +1239,7 @@
 c0
 00
 81
-1a
+36
 20
 60
 00
@@ -1143,7 +1255,7 @@
 20
 40
 01
-10
+2c
 68
 00
 c8
@@ -1151,7 +1263,7 @@
 c0
 00
 81
-20
+3c
 20
 60
 00
@@ -1171,11 +1283,11 @@
 c0
 00
 81
-26
+42
 c0
 01
 01
-2f
+4c
 20
 60
 00
@@ -1187,11 +1299,15 @@
 c0
 01
 01
-29
+45
 20
 60
 00
 00
+20
+40
+01
+15
 68
 00
 c8
@@ -1215,7 +1331,7 @@
 20
 20
 01
-02
+03
 68
 00
 c8
@@ -1223,11 +1339,15 @@
 c0
 80
 01
-32
+4f
 20
 60
 00
 00
+20
+40
+01
+1b
 68
 00
 c8
@@ -1243,7 +1363,7 @@
 20
 40
 01
-2c
+49
 68
 00
 91
@@ -1259,7 +1379,7 @@
 20
 40
 00
-84
+85
 20
 40
 65
@@ -1275,11 +1395,11 @@
 c0
 00
 81
-40
+5e
 c0
 01
 01
-43
+61
 20
 60
 00
@@ -1391,7 +1511,7 @@
 24
 21
 01
-5c
+7a
 58
 00
 49
@@ -1479,11 +1599,11 @@
 c0
 50
 01
-81
+9f
 c0
 50
 81
-77
+95
 c0
 53
 30
@@ -1491,15 +1611,15 @@
 c0
 53
 81
-86
+a4
 c0
 54
 81
-8c
+aa
 c0
 58
 01
-8e
+ac
 20
 20
 30
@@ -1511,11 +1631,11 @@
 c0
 00
 81
-7c
+9a
 c0
 42
 01
-7f
+9d
 c0
 53
 b0
@@ -1539,11 +1659,11 @@
 20
 40
 00
-98
+99
 20
 20
 01
-7c
+9a
 68
 00
 8c
@@ -1551,7 +1671,7 @@
 c0
 40
 81
-84
+a2
 20
 20
 30
@@ -1559,7 +1679,7 @@
 20
 40
 01
-e0
+ff
 20
 20
 30
@@ -1571,7 +1691,7 @@
 c0
 00
 01
-8a
+a8
 c0
 00
 b0
@@ -1615,11 +1735,11 @@
 c0
 01
 81
-98
+b6
 20
 40
 01
-4b
+69
 68
 00
 c9
@@ -1627,7 +1747,7 @@
 c0
 01
 81
-98
+b6
 70
 0c
 f7
@@ -1647,31 +1767,35 @@
 20
 40
 01
-be
+dd
 20
 40
 01
-c4
+e3
 20
 40
-01
-a1
+02
+0e
 20
 40
 01
-a5
+c0
 20
 40
 01
-f6
+c4
+20
+40
+02
+3f
 20
 40
 01
-64
+82
 20
 20
 01
-9b
+b9
 68
 00
 c8
@@ -1683,11 +1807,11 @@
 20
 40
 00
-9d
+9e
 20
 20
-01
-e5
+02
+2d
 68
 00
 c8
@@ -1699,11 +1823,11 @@
 20
 40
 00
-ea
+eb
 20
 40
 00
-f6
+f7
 68
 00
 c8
@@ -1719,15 +1843,15 @@
 20
 40
 00
-97
+98
 20
 40
-01
-e3
+02
+2b
 20
 20
 01
-c1
+e0
 20
 40
 7f
@@ -1823,7 +1947,7 @@
 20
 40
 01
-af
+ce
 24
 74
 00
@@ -1831,11 +1955,11 @@
 20
 40
 01
-d9
+f8
 20
 40
 01
-d1
+f0
 68
 00
 c8
@@ -1855,11 +1979,11 @@
 c0
 00
 01
-d6
+f5
 c0
 00
 81
-de
+fd
 20
 60
 00
@@ -1891,11 +2015,11 @@
 24
 3a
 01
-e0
+ff
 20
 20
 00
-97
+98
 68
 00
 c9
@@ -1923,7 +2047,7 @@
 24
 3a
 00
-97
+98
 70
 48
 a4
@@ -1936,6 +2060,170 @@
 60
 00
 00
+68
+00
+c9
+7f
+20
+5a
+02
+29
+68
+00
+c9
+7c
+c3
+80
+00
+00
+79
+20
+7e
+00
+60
+00
+c9
+7c
+70
+49
+7b
+01
+70
+49
+80
+00
+58
+00
+00
+00
+60
+01
+49
+7d
+70
+48
+5b
+60
+20
+20
+01
+e0
+68
+00
+c9
+7f
+24
+7a
+00
+00
+68
+00
+c9
+7b
+20
+7a
+00
+00
+20
+40
+01
+ce
+24
+74
+00
+00
+68
+01
+49
+7d
+1f
+e0
+fe
+01
+60
+01
+49
+7d
+d8
+40
+07
+d0
+98
+46
+7c
+00
+20
+21
+02
+25
+20
+40
+01
+f0
+68
+00
+c9
+80
+1f
+e0
+fe
+01
+1f
+e1
+7e
+01
+60
+00
+c9
+80
+c0
+00
+02
+22
+c0
+00
+81
+ff
+20
+60
+00
+00
+68
+00
+c9
+7a
+24
+3a
+01
+ff
+20
+20
+02
+38
+70
+49
+7f
+01
+20
+20
+02
+38
+70
+49
+7b
+00
+20
+60
+00
+00
+70
+49
+7b
+01
+20
+60
+00
+00
 70
 48
 bb
@@ -1984,6 +2272,10 @@
 49
 7a
 00
+20
+40
+02
+02
 70
 48
 a4
@@ -1995,15 +2287,15 @@
 20
 20
 01
-02
+03
 20
 40
 01
-02
+03
 20
 40
-03
-f1
+04
+42
 24
 77
 80
@@ -2011,7 +2303,7 @@
 20
 20
 02
-91
+dc
 68
 00
 c8
@@ -2023,27 +2315,35 @@
 20
 40
 02
-1b
+66
 20
 40
 02
-2f
+7a
 20
 40
-01
-f2
+02
+3b
 24
 37
 81
-02
+03
 20
 40
 02
-2b
+76
 20
 42
-82
-be
+83
+0b
+68
+00
+c8
+b0
+20
+5a
+02
+27
 70
 48
 a4
@@ -2071,23 +2371,23 @@
 24
 42
 82
-12
+5d
 20
 40
 01
-02
+03
 20
 40
-01
-e3
+02
+2b
 20
 40
 02
-2b
+76
 20
 22
 82
-14
+5f
 68
 02
 48
@@ -2103,7 +2403,7 @@
 20
 22
 82
-17
+62
 68
 02
 48
@@ -2119,7 +2419,7 @@
 20
 22
 82
-19
+64
 20
 60
 00
@@ -2151,7 +2451,7 @@
 20
 20
 02
-15
+60
 68
 00
 c8
@@ -2159,7 +2459,7 @@
 20
 20
 02
-15
+60
 68
 00
 c8
@@ -2199,7 +2499,7 @@
 20
 40
 02
-2b
+76
 24
 62
 80
@@ -2259,19 +2559,19 @@
 c0
 00
 02
-52
+9d
 c0
 00
 82
-6c
+b7
 c0
 01
 02
-38
+83
 c0
 01
 82
-6c
+b7
 20
 60
 00
@@ -2279,7 +2579,7 @@
 20
 40
 01
-0a
+26
 68
 02
 48
@@ -2287,11 +2587,11 @@
 20
 3a
 02
-2f
+7a
 20
 40
-03
-b7
+04
+08
 68
 00
 c8
@@ -2299,7 +2599,7 @@
 20
 5a
 02
-4d
+98
 68
 00
 c8
@@ -2319,15 +2619,15 @@
 20
 40
 03
-ab
+fc
 60
 08
 c8
 f7
 20
 40
+04
 03
-b2
 60
 08
 c8
@@ -2346,8 +2646,8 @@
 e5
 20
 40
-03
-db
+04
+2c
 60
 08
 c8
@@ -2370,8 +2670,8 @@
 00
 20
 40
-03
-df
+04
+30
 60
 00
 c8
@@ -2383,7 +2683,7 @@
 20
 40
 01
-10
+2c
 68
 02
 48
@@ -2391,11 +2691,11 @@
 20
 3a
 02
-2f
+7a
 20
 40
-03
-b7
+04
+08
 68
 00
 c8
@@ -2403,7 +2703,7 @@
 20
 5a
 02
-67
+b2
 68
 00
 c8
@@ -2423,15 +2723,15 @@
 20
 40
 03
-ab
+fc
 60
 08
 c8
 f6
 20
 40
+04
 03
-b2
 60
 08
 c8
@@ -2450,8 +2750,8 @@
 e2
 20
 40
-03
-db
+04
+2c
 60
 08
 c8
@@ -2474,8 +2774,8 @@
 00
 20
 40
-03
-df
+04
+30
 60
 00
 c8
@@ -2487,15 +2787,15 @@
 20
 40
 01
-0a
+26
 68
 02
 48
 9f
 20
 40
-03
-b7
+04
+08
 68
 00
 c8
@@ -2503,7 +2803,7 @@
 20
 5a
 02
-80
+cb
 68
 00
 c8
@@ -2523,15 +2823,15 @@
 20
 40
 03
-ab
+fc
 60
 08
 c8
 f5
 20
 40
+04
 03
-b2
 60
 08
 c8
@@ -2550,8 +2850,8 @@
 df
 20
 40
-03
-db
+04
+2c
 60
 08
 c8
@@ -2643,7 +2943,7 @@
 20
 40
 02
-84
+cf
 68
 00
 c7
@@ -2655,23 +2955,23 @@
 20
 20
 82
-9a
+e5
 20
 40
 02
-9b
+e6
 20
 40
-03
-c5
+04
+16
 20
 40
 04
-3b
+8c
 20
 20
 04
-33
+84
 70
 48
 36
@@ -2687,15 +2987,15 @@
 c0
 00
 82
-a2
+ed
 c0
 01
 02
-a8
+f5
 c0
 01
 82
-b2
+ff
 20
 60
 00
@@ -2704,6 +3004,14 @@
 48
 b8
 01
+20
+40
+01
+06
+24
+77
+80
+00
 70
 48
 36
@@ -2727,7 +3035,7 @@
 20
 40
 01
-5e
+7c
 24
 74
 00
@@ -2771,11 +3079,11 @@
 c0
 00
 82
-a2
+ed
 c0
 7f
 82
-a2
+ed
 70
 0d
 43
@@ -2802,24 +3110,24 @@
 01
 20
 40
-01
-f2
+02
+3b
 24
 37
 81
-02
+03
 20
 20
-02
-be
+03
+0b
 20
 40
-02
-cf
+03
+1c
 24
 34
 01
-02
+03
 68
 00
 c8
@@ -2827,7 +3135,7 @@
 20
 3a
 01
-02
+03
 1f
 e0
 fe
@@ -2858,28 +3166,28 @@
 ba
 20
 5a
-01
-e3
+02
+2b
 68
 00
 c8
 7f
 c0
 00
-82
-dd
+83
+2a
 c0
 01
-02
-fc
+03
+4a
 c0
 7f
 83
-50
+9f
 20
 20
 01
-02
+03
 20
 40
 7f
@@ -2938,8 +3246,12 @@
 00
 20
 40
+01
+15
+20
+40
 00
-c4
+c5
 68
 00
 c8
@@ -2963,7 +3275,7 @@
 c0
 00
 83
-58
+a9
 68
 00
 c8
@@ -2991,7 +3303,7 @@
 c0
 67
 83
-5c
+ad
 58
 00
 00
@@ -3014,16 +3326,16 @@
 80
 24
 5a
-02
-f4
+03
+42
 68
 00
 c8
 80
 20
 5a
-02
-f8
+03
+46
 20
 20
 31
@@ -3060,6 +3372,10 @@
 20
 7f
 08
+20
+40
+01
+1b
 68
 08
 c8
@@ -3071,7 +3387,7 @@
 20
 20
 83
-5a
+ab
 68
 00
 c8
@@ -3079,19 +3395,19 @@
 c0
 00
 03
-04
+53
 c0
 01
 03
-39
+88
 c0
 01
 83
-20
+6f
 20
 20
 01
-02
+03
 68
 00
 c8
@@ -3111,7 +3427,7 @@
 20
 40
 03
-15
+64
 68
 04
 0d
@@ -3119,7 +3435,7 @@
 24
 5a
 03
-18
+67
 68
 04
 0d
@@ -3127,7 +3443,7 @@
 20
 5a
 03
-1c
+6b
 68
 04
 0d
@@ -3159,7 +3475,7 @@
 20
 20
 01
-02
+03
 d8
 c0
 48
@@ -3211,7 +3527,7 @@
 20
 40
 03
-2e
+7d
 68
 01
 0d
@@ -3219,7 +3535,7 @@
 24
 5a
 03
-31
+80
 68
 01
 0d
@@ -3227,7 +3543,7 @@
 20
 5a
 03
-35
+84
 68
 01
 8d
@@ -3259,7 +3575,7 @@
 20
 20
 01
-02
+03
 d8
 c0
 48
@@ -3311,7 +3627,7 @@
 20
 40
 03
-43
+92
 68
 01
 13
@@ -3331,7 +3647,7 @@
 24
 42
 83
-4e
+9d
 68
 01
 13
@@ -3343,7 +3659,7 @@
 20
 20
 01
-02
+03
 d8
 c0
 48
@@ -3403,15 +3719,19 @@
 c0
 00
 83
-54
+a3
 c0
 01
 03
-56
+a6
 20
 60
 00
 00
+20
+40
+01
+15
 68
 02
 48
@@ -3419,7 +3739,11 @@
 20
 20
 01
-41
+5f
+20
+40
+01
+1b
 68
 02
 48
@@ -3427,7 +3751,7 @@
 20
 20
 01
-44
+62
 68
 02
 48
@@ -3435,7 +3759,7 @@
 20
 20
 01
-41
+5f
 68
 02
 48
@@ -3443,7 +3767,7 @@
 20
 20
 01
-44
+62
 68
 01
 48
@@ -3459,7 +3783,7 @@
 20
 22
 83
-61
+b2
 20
 60
 00
@@ -3471,7 +3795,7 @@
 c0
 61
 03
-6e
+bf
 68
 00
 c9
@@ -3487,7 +3811,7 @@
 20
 40
 01
-55
+73
 68
 00
 c9
@@ -3507,11 +3831,11 @@
 c0
 60
 81
-96
+b4
 c0
 61
 03
-6e
+bf
 20
 60
 00
@@ -3531,7 +3855,7 @@
 20
 40
 01
-46
+64
 68
 00
 c8
@@ -3539,11 +3863,11 @@
 c0
 2a
 83
-76
+c7
 c0
 55
 03
-78
+c9
 20
 60
 00
@@ -3631,11 +3955,11 @@
 c0
 02
 03
-93
+e4
 20
 20
 03
-8c
+dd
 70
 89
 4b
@@ -3751,7 +4075,7 @@
 20
 40
 03
-ab
+fc
 60
 08
 c8
@@ -3834,8 +4158,8 @@
 00
 c2
 00
-03
-bb
+04
+0c
 1a
 22
 7e
@@ -3942,8 +4266,8 @@
 41
 20
 40
-03
-db
+04
+2c
 60
 08
 c8
@@ -3954,8 +4278,8 @@
 00
 20
 40
-03
-df
+04
+30
 18
 40
 84
@@ -4078,8 +4402,8 @@
 24
 20
 40
-03
-e8
+04
+39
 78
 57
 fc
@@ -4115,7 +4439,7 @@
 24
 2c
 04
-36
+87
 78
 46
 fc
@@ -4155,7 +4479,7 @@
 24
 22
 84
-33
+84
 09
 80
 00
@@ -4179,7 +4503,7 @@
 20
 22
 84
-18
+69
 68
 00
 c7
@@ -4195,7 +4519,7 @@
 24
 20
 84
-33
+84
 09
 80
 00
@@ -4219,7 +4543,7 @@
 20
 22
 84
-22
+73
 09
 80
 00
@@ -4235,7 +4559,7 @@
 c2
 00
 04
-1e
+6f
 09
 80
 00
@@ -4271,7 +4595,7 @@
 20
 23
 04
-33
+84
 78
 37
 fc
@@ -4319,11 +4643,11 @@
 20
 40
 03
-a4
+f5
 20
 20
 04
-33
+84
 20
 40
 29
@@ -4350,12 +4674,12 @@
 00
 20
 40
-03
-e8
+04
+39
 20
 40
 04
-38
+89
 79
 20
 2a
@@ -4435,7 +4759,7 @@
 c2
 00
 04
-51
+a2
 68
 00
 c8
@@ -4476,8 +4800,8 @@
 60
 00
 00
-0f
-3b
+21
+9e
 aa
 55
 01
@@ -4794,585 +5118,261 @@
 38
 02
 95
-01
-81
-06
-c0
-c0
-05
-01
-09
-80
-a1
-01
-85
-02
-05
-01
-19
-81
-29
-88
-15
-00
-25
-01
-95
-08
-75
-01
-81
-06
-c0
-05
-0c
-09
-01
-a1
-01
-85
-03
-15
-00
-26
-80
-03
-19
-00
-2a
-80
-03
-75
-10
-95
-01
-81
-00
-c0
-06
-00
-ff
-09
-0e
-a1
-01
-85
-ba
-95
-1f
-75
-08
-26
-ff
-00
-15
-00
-09
-01
-91
-02
-85
-ba
-95
-1f
-75
-08
-26
-ff
-00
-15
-00
-09
-01
-81
-02
-c0
-aa
-55
-01
-00
-de
-41
-02
-aa
-55
-01
-00
-7c
-48
-02
-aa
-55
-01
-00
-ba
-48
-00
-aa
-55
-01
-00
-72
-48
-00
-aa
-55
-02
-00
-39
-48
-30
-75
-aa
-55
-01
-00
-b6
-48
-1e
-aa
-55
-01
-00
-b8
-48
-00
-aa
-55
-10
-00
-47
-48
-00
-13
-2c
-42
-06
-15
-36
-48
-0f
-1a
-3a
-4c
-11
-23
-31
-4d
-aa
-55
-04
-00
-42
-48
-20
-15
-10
-05
-aa
-55
-06
-00
-a0
-40
-36
-26
-10
-09
-07
-2b
-aa
-55
-02
-00
-03
-42
-80
-1f
-aa
-55
-01
-00
-11
-42
-20
-aa
-55
-01
-00
-3a
-42
-14
-aa
-55
-08
-00
-75
-41
-8f
-1d
-ca
-00
-0a
-0b
-ef
-07
-aa
-55
-01
-00
-57
-41
-00
-aa
-55
-02
-00
-bd
-40
-02
-24
-aa
-55
-01
-00
-75
-49
-00
-aa
-55
-02
-00
-41
-42
-00
-84
-01
-23
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+01
+81
+06
+c0
+c0
+05
+01
+09
+80
+a1
+01
+85
+02
+05
+01
+19
+81
+29
+88
+15
+00
+25
+01
+95
+08
+75
+01
+81
+06
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+26
+80
+03
+19
+00
+2a
+80
+03
+75
+10
+95
+01
+81
+00
+c0
+06
+00
 ff
+09
+0e
+a1
+01
+85
+ba
+95
+1f
+75
+08
+26
 ff
+00
+15
+00
+09
+01
+91
+02
+85
+ba
+95
+1f
+75
+08
+26
 ff
+00
+15
+00
+09
+01
+81
+02
+c0
+aa
+55
+01
+00
+de
+41
+02
+aa
+55
+01
+00
+7c
+48
+02
+aa
+55
+01
+00
+ba
+48
+00
+aa
+55
+01
+00
+72
+48
+00
+aa
+55
+02
+00
+39
+48
+30
+75
+aa
+55
+01
+00
+b6
+48
+1e
+aa
+55
+01
+00
+b8
+48
+00
+aa
+55
+10
+00
+47
+48
+00
+13
+2c
+42
+06
+15
+36
+48
+0f
+1a
+3a
+4c
+11
+23
+31
+4d
+aa
+55
+04
+00
+42
+48
+20
+15
+10
+05
+aa
+55
+06
+00
+a0
+40
+36
+26
+10
+09
+07
+2b
+aa
+55
+02
+00
+03
+42
+80
+1f
+aa
+55
+01
+00
+11
+42
+20
+aa
+55
+01
+00
+3a
+42
+14
+aa
+55
+08
+00
+75
+41
+8f
+1d
+ca
+00
+0a
+0b
+ef
+07
+aa
+55
+01
+00
+57
+41
+00
+aa
+55
+02
+00
+bd
+40
+02
+24
+aa
+55
+01
+00
+75
+49
+00
+aa
+55
+02
+00
+41
+42
+00
+84
+8f
+69
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-09
-4b
+a6
+c9
Index: output/memmap.format
===================================================================
--- /branch/USB/dongle/output/memmap.format	(revision 2963)
+++ /branch/USB/dongle/output/memmap.format	(working copy)
@@ -1869,3 +1869,9 @@
 0x4978 mem_24g_led_status
 0x4979 mem_24g_bind_delay_count
 0x497a mem_24g_work_delay_count
+0x497b mem_24g_mode_switch_2
+0x497c mem_24g_mode_switch_2_init
+0x497d mem_24g_mode_switch_cnt_2
+0x497f mem_24g_mode_switch_exit_2
+0x4980 mem_24g_time_slice_2
+0x4981 mem_dongle_bind_device_living
Index: output/program.lis
===================================================================
--- /branch/USB/dongle/output/program.lis	(revision 2963)
+++ /branch/USB/dongle/output/program.lis	(working copy)
@@ -1,9 +1,9 @@
               include "bt_format "
               org 0x0000
 0000 c284000a bbit1 8 ,pf_patch_ext 
-0001 c04283a2 beq patch10_5 ,p_shutdown_radio 
-0002 c044837a beq patch11_1 ,p_set_freq_tx 
-0003 c000039a beq patch00_0 ,p_soft_reset 
+0001 c04283f3 beq patch10_5 ,p_shutdown_radio 
+0002 c04483cb beq patch11_1 ,p_set_freq_tx 
+0003 c00003eb beq patch00_0 ,p_soft_reset 
 0004 c047000b beq patch11_6 ,p_save_rssi 
 0005 c0620073 beq patch18_4 ,p_app_init 
 0006 c07b8012 beq patch1e_7 ,p_usb_init 
@@ -151,1331 +151,1438 @@
 0072 20600000 rtn 
 
 p_app_init:
-0073 70497907 jam g24_bind_mode_delay ,mem_24g_bind_delay_count 
-0074 204074b9 call enable_authrom 
-0075 680240a0 fetch 4 ,mem_lap 
-0076 6002489f store 4 ,mem_24g_rx_addr 
-0077 6808c23a fetcht 1 ,mem_eeprom_wp_gpio 
-0078 2040680e call gpio_config_output 
-0079 20400088 call p_dongle_init 
-007a 20400146 call p_g24_queue_init 
-007b 20400081 call p_dongle_iic_init 
-007c 6800c8ba fetch 1 ,mem_24g_pair_mode 
-007d c000019a beq 0x00 ,p_dongle_auto_bind 
-007e c0008092 beq 0x01 ,p_dongle_pc_bind 
-007f c007808e beq 0x0f ,p_dongle_all_powerful 
-0080 20600000 rtn 
+0073 70498100 jam 0 ,mem_dongle_bind_device_living 
+0074 70497907 jam g24_bind_mode_delay ,mem_24g_bind_delay_count 
+0075 204074b9 call enable_authrom 
+0076 680240a0 fetch 4 ,mem_lap 
+0077 6002489f 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 20400164 call p_g24_queue_init 
+007c 20400082 call p_dongle_iic_init 
+007d 6800c8ba fetch 1 ,mem_24g_pair_mode 
+007e c00001b8 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:
-0081 2040659c call iic_init_390k 
-0082 20400084 call p_dongle_set_kb_bind_eeprom 
-0083 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:
-0084 da2011c7 arg mem_dongle_kb_bind_flag ,rega 
-0085 da400000 arg dongle_kb_bind_eeprom_offect ,regb 
-0086 d8400001 arg 1 ,temp 
-0087 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:
-0088 6800c1de fetch 1 ,mem_tx_power 
-0089 6000c8ed store 1 ,mem_tx_power_temp 
-008a df200080 arg 0x80 ,loopcnt 
-008b d8a00d9e arg mem_rssi_noise_buffer ,contw 
-008c 20407ec6 call memset0 
-008d 202048ea branch usb_init 
+0089 6800c1de fetch 1 ,mem_tx_power 
+008a 6000c8ed 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:
-008e 20400097 call p_dongle_check_mode 
+008f 20400098 call p_dongle_check_mode 
 
 p_dongle_all_powerful_loop:
-008f 2040009b call p_g24_dongle_work_mode 
-0090 20400164 call p_dongle_usb_dispatch 
-0091 2020008f branch p_dongle_all_powerful_loop 
+0090 2040009c call p_g24_dongle_work_mode 
+0091 20400182 call p_dongle_usb_dispatch 
+0092 20200090 branch p_dongle_all_powerful_loop 
 
 p_dongle_pc_bind:
-0092 20400097 call p_dongle_check_mode 
+0093 20400098 call p_dongle_check_mode 
 
 p_dongle_pc_bind_loop:
-0093 2040009b call p_g24_dongle_work_mode 
-0094 204000e6 call p_g24_dongle_bind_mode 
-0095 20400164 call p_dongle_usb_dispatch 
-0096 20200093 branch p_dongle_pc_bind_loop 
+0094 2040009c call p_g24_dongle_work_mode 
+0095 204000e7 call p_g24_dongle_bind_mode 
+0096 20400182 call p_dongle_usb_dispatch 
+0097 20200094 branch p_dongle_pc_bind_loop 
 
 p_dongle_check_mode:
-0097 7048b800 jam 0 ,mem_24g_ackpayload_enable 
+0098 7048b800 jam 0 ,mem_24g_ackpayload_enable 
 
 p_dongle_work_mode_enable:
-0098 7048a400 jam dongle_work ,mem_dongle_work_mode 
-0099 7048a300 jam clear_init ,mem_dongle_mode_init 
-009a 20600000 rtn 
+0099 7048a400 jam dongle_work ,mem_dongle_work_mode 
+009a 7048a300 jam clear_init ,mem_dongle_mode_init 
+009b 20600000 rtn 
 
 p_g24_dongle_work_mode:
-009b 6800c8a4 fetch 1 ,mem_dongle_work_mode 
-009c c1800000 rtnne dongle_work 
+009c 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+009d c1800000 rtnne dongle_work 
 
 p_g24_dongle_work_mode_start:
-009d 204000a1 call p_g24_dongle_work_init 
-009e 204000af call p_g24_ch_process 
-009f 204002bb call p_g24_receive_packet_start 
-00a0 202000ce branch p_g24_blank_data_process 
+009e 204000a2 call p_g24_dongle_work_init 
+009f 204000b0 call p_g24_ch_process 
+00a0 20400308 call p_g24_receive_packet_start 
+00a1 202000cf branch p_g24_blank_data_process 
 
 p_g24_dongle_work_init:
-00a1 6800c8a3 fetch 1 ,mem_dongle_mode_init 
-00a2 c3800000 rtnbit1 dongle_work 
-00a3 79207e00 set1 dongle_work ,pdata 
-00a4 6000c8a3 store 1 ,mem_dongle_mode_init 
-00a5 6800c8ed fetch 1 ,mem_tx_power_temp 
-00a6 6000c1de store 1 ,mem_tx_power 
-00a7 7048b800 jam 0 ,mem_24g_ackpayload_enable 
-00a8 700d3800 jam 0 ,mem_usb_tx_enable 
-00a9 7048b001 jam 1 ,mem_24g_abort_packet 
-00aa 70483500 jam 0 ,mem_24g_pid 
-00ab 6802489f fetch 4 ,mem_24g_rx_addr 
-00ac 204003b7 call p_g24_update_addr_and_synccrc8 
-00ad 204003d7 call p_g24_ch 
-00ae 20200102 branch p_g24_rx_interrupt_clear 
+00a2 6800c8a3 fetch 1 ,mem_dongle_mode_init 
+00a3 c3800000 rtnbit1 dongle_work 
+00a4 79207e00 set1 dongle_work ,pdata 
+00a5 6000c8a3 store 1 ,mem_dongle_mode_init 
+00a6 6800c8ed fetch 1 ,mem_tx_power_temp 
+00a7 6000c1de store 1 ,mem_tx_power 
+00a8 7048b800 jam 0 ,mem_24g_ackpayload_enable 
+00a9 700d3800 jam 0 ,mem_usb_tx_enable 
+00aa 7048b001 jam 1 ,mem_24g_abort_packet 
+00ab 70483500 jam 0 ,mem_24g_pid 
+00ac 6802489f fetch 4 ,mem_24g_rx_addr 
+00ad 20400408 call p_g24_update_addr_and_synccrc8 
+00ae 20400428 call p_g24_ch 
+00af 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_ch_process:
-00af 6800c8b0 fetch 1 ,mem_24g_abort_packet 
-00b0 c00080c8 beq 1 ,p_g24_noise_rssi 
-00b1 6800c8b9 fetch 1 ,mem_24g_hop_packet 
-00b2 c00080c2 beq 1 ,p_g24_ch_receive_hop_pac 
-00b3 680a48b2 fetcht 4 ,mem_24g_hop_btclk 
-00b4 1c427e00 copy clkn_bt ,pdata 
-00b5 98467c00 isub temp ,null 
-00b6 24412d18 ncall g24_timer_timeout ,positive 
-00b7 1fe22400 copy pdata ,regb 
-00b8 680248b2 fetch 4 ,mem_24g_hop_btclk 
-00b9 6808c8b6 fetcht 1 ,mem_24g_hop_interval 
-00ba 98408400 iadd temp ,temp 
-00bb 1a427e00 copy regb ,pdata 
-00bc 98467c00 isub temp ,null 
-00bd 24610000 nrtn positive 
-00be 793ffe1c set0 28 ,pdata 
-00bf 600248b2 store 4 ,mem_24g_hop_btclk 
-00c0 7048b001 jam 1 ,mem_24g_abort_packet 
-00c1 202003d7 branch p_g24_ch 
+00b0 6800c8b0 fetch 1 ,mem_24g_abort_packet 
+00b1 c00080c9 beq 1 ,p_g24_noise_rssi 
+00b2 6800c8b9 fetch 1 ,mem_24g_hop_packet 
+00b3 c00080c3 beq 1 ,p_g24_ch_receive_hop_pac 
+00b4 680a48b2 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 680248b2 fetch 4 ,mem_24g_hop_btclk 
+00ba 6808c8b6 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 600248b2 store 4 ,mem_24g_hop_btclk 
+00c1 7048b001 jam 1 ,mem_24g_abort_packet 
+00c2 20200428 branch p_g24_ch 
 
 p_g24_ch_receive_hop_pac:
-00c2 7048b900 jam 0 ,mem_24g_hop_packet 
-00c3 202003d7 branch p_g24_ch 
+00c3 7048b900 jam 0 ,mem_24g_hop_packet 
+00c4 20200428 branch p_g24_ch 
 
 p_g24_ch_timer_reinit:
-00c4 1c427e00 copy clkn_bt ,pdata 
-00c5 600248b2 store 4 ,mem_24g_hop_btclk 
-00c6 7048b100 jam 0 ,mem_24g_rf_laststa 
-00c7 20600000 rtn 
+00c5 1c427e00 copy clkn_bt ,pdata 
+00c6 600248b2 store 4 ,mem_24g_hop_btclk 
+00c7 7048b100 jam 0 ,mem_24g_rf_laststa 
+00c8 20600000 rtn 
 
 p_g24_noise_rssi:
-00c8 da200d9e arg mem_rssi_noise_buffer ,rega 
-00c9 204003b2 call p_rssi_average 
-00ca 6008c8ef storet 1 ,mem_rssi_noise_avg 
-00cb 18467c50 sub temp ,rssi_thresh_noise ,null 
-00cc 24610000 nrtn positive 
-00cd 202003d7 branch p_g24_ch 
+00c9 da200d9e arg mem_rssi_noise_buffer ,rega 
+00ca 20400403 call p_rssi_average 
+00cb 6008c8ef storet 1 ,mem_rssi_noise_avg 
+00cc 18467c50 sub temp ,rssi_thresh_noise ,null 
+00cd 24610000 nrtn positive 
+00ce 20200428 branch p_g24_ch 
 
 p_g24_blank_data_process:
-00ce 204000d1 call p_g24_ms_blank_data 
-00cf 204000d8 call p_g24_kb_blank_data 
-00d0 202000df 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:
-00d1 6800c8d5 fetch 1 ,mem_24g_ms_blank_data_enable 
-00d2 207a0000 rtn blank 
-00d3 d8e0000b arg timer_new_ms_blank ,queue 
-00d4 20407f16 call timer_check 
-00d5 247a0000 nrtn blank 
-00d6 7048d500 jam 0 ,mem_24g_ms_blank_data_enable 
-00d7 20202fa0 branch g24_ms_blank_data_2usb 
+00d2 6800c8d5 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 7048d500 jam 0 ,mem_24g_ms_blank_data_enable 
+00d8 20202fa0 branch g24_ms_blank_data_2usb 
 
 p_g24_kb_blank_data:
-00d8 6800c8d3 fetch 1 ,mem_24g_kb_blank_data_enable 
-00d9 207a0000 rtn blank 
-00da d8e0000e arg timer_new_kb_blank ,queue 
-00db 20407f16 call timer_check 
-00dc 247a0000 nrtn blank 
-00dd 7048d300 jam 0 ,mem_24g_kb_blank_data_enable 
-00de 20202fac branch g24_kb_blank_data_2usb 
+00d9 6800c8d3 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 7048d300 jam 0 ,mem_24g_kb_blank_data_enable 
+00df 20202fac branch g24_kb_blank_data_2usb 
 
 p_g24_kb_mul_blank_data:
-00df 6800c8d4 fetch 1 ,mem_24g_kb_mul_blank_data_enable 
-00e0 207a0000 rtn blank 
-00e1 d8e0000c arg timer_new_kb_mul_blank ,queue 
-00e2 20407f16 call timer_check 
-00e3 247a0000 nrtn blank 
-00e4 7048d400 jam 0 ,mem_24g_kb_mul_blank_data_enable 
-00e5 20202fb8 branch g24_kb_mul_blank_data_2usb 
+00e0 6800c8d4 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 7048d400 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+00e6 20202fb8 branch g24_kb_mul_blank_data_2usb 
 
 p_g24_dongle_bind_mode:
-00e6 6800c8a4 fetch 1 ,mem_dongle_work_mode 
-00e7 c1808000 rtnne dongle_bind 
-00e8 204000ea call p_g24_dongle_bind_init 
-00e9 202000f6 branch p_g24_dongle_bind_data_process 
+00e7 6800c8a4 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:
-00ea 6800c8a3 fetch 1 ,mem_dongle_mode_init 
-00eb c3808000 rtnbit1 dongle_bind 
-00ec 79207e01 set1 dongle_bind ,pdata 
-00ed 6000c8a3 store 1 ,mem_dongle_mode_init 
-00ee 58000000 setarg 0 
-00ef 6001c8a5 store 3 ,mem_dongle_ms_bind_step 
-00f0 7041de04 jam tx_power_f5db ,mem_tx_power 
-00f1 7048b801 jam 1 ,mem_24g_ackpayload_enable 
-00f2 70483500 jam 0 ,mem_24g_pid 
-00f3 7048404e jam g24_pair_ch ,mem_24g_ch 
-00f4 68024842 fetch 4 ,mem_24g_paring_addr 
-00f5 202003b7 branch p_g24_update_addr_and_synccrc8 
+00eb 6800c8a3 fetch 1 ,mem_dongle_mode_init 
+00ec c3808000 rtnbit1 dongle_bind 
+00ed 79207e01 set1 dongle_bind ,pdata 
+00ee 6000c8a3 store 1 ,mem_dongle_mode_init 
+00ef 58000000 setarg 0 
+00f0 6001c8a5 store 3 ,mem_dongle_ms_bind_step 
+00f1 7041de04 jam tx_power_f5db ,mem_tx_power 
+00f2 7048b801 jam 1 ,mem_24g_ackpayload_enable 
+00f3 70483500 jam 0 ,mem_24g_pid 
+00f4 7048404e jam g24_pair_ch ,mem_24g_ch 
+00f5 68024842 fetch 4 ,mem_24g_paring_addr 
+00f6 20200408 branch p_g24_update_addr_and_synccrc8 
 
 p_g24_dongle_bind_data_process:
-00f6 204001f2 call p_g24_receive_transmit_ack 
-00f7 24378102 nbranch p_g24_rx_interrupt_clear ,user3 
-00f8 70497a05 jam g24_work_mode_delay ,mem_24g_work_delay_count 
-00f9 d8c047b0 arg mem_24g_rxbuf ,contr 
-00fa d8a0487d arg mem_24g_rxdata_temp ,contw 
-00fb df200008 arg 8 ,loopcnt 
-00fc 20407f01 call memcpy 
-00fd 6800c87f fetch 1 ,mem_24g_rxdata_temp + 2 
-00fe c0550105 beq datatype_bind ,p_g24_dongle_bind_first_step 
-00ff c02a8112 beq datatype_config ,p_g24_dongle_bind_second_step 
-0100 c0110122 beq datatype_ok ,p_g24_dongle_bind_third_step 
-0101 c07f813c beq 0xff ,p_g24_data_attemp_bind 
+00f7 2040023b call p_g24_receive_transmit_ack 
+00f8 24378103 nbranch p_g24_rx_interrupt_clear ,user3 
+00f9 70497a05 jam g24_work_mode_delay ,mem_24g_work_delay_count 
+00fa d8c047b0 arg mem_24g_rxbuf ,contr 
+00fb d8a0487d arg mem_24g_rxdata_temp ,contw 
+00fc df200008 arg 8 ,loopcnt 
+00fd 20407f01 call memcpy 
+00fe 6800c87f fetch 1 ,mem_24g_rxdata_temp + 2 
+00ff c0550121 beq datatype_bind ,p_g24_dongle_bind_first_step 
+0100 c02a812e beq datatype_config ,p_g24_dongle_bind_second_step 
+0101 c011013e beq datatype_ok ,p_g24_dongle_bind_third_step 
+0102 c07f815a beq 0xff ,p_g24_data_attemp_bind 
 
 p_g24_rx_interrupt_clear:
-0102 d8a047b0 arg mem_24g_rxbuf ,contw 
-0103 df200042 arg 66 ,loopcnt 
-0104 20207ed4 branch clear_mem 
+0103 d8a047b0 arg mem_24g_rxbuf ,contw 
+0104 df200042 arg 66 ,loopcnt 
+0105 20207ed4 branch clear_mem 
+
+p_g24_dongle_binding_device_check:
+0106 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+0107 c1808000 rtnne dongle_bind 
+0108 6800c8ba fetch 1 ,mem_24g_pair_mode 
+0109 247a0000 nrtn blank 
+010a 6800c7b3 fetch 1 ,mem_24g_rxbuf + 3 
+010b c000810e beq bind_mouse ,p_g24_dongle_binding_mouse_status 
+010c c0010112 beq bind_keyboard ,p_g24_dongle_binding_keyboard_status 
+010d 20600000 rtn 
+
+p_g24_dongle_binding_mouse_status:
+010e 6800c981 fetch 1 ,mem_dongle_bind_device_living 
+010f c4000000 rtnbit0 0 
+
+disable_user3:
+0110 7857fc00 disable user3 
+0111 20600000 rtn 
+
+p_g24_dongle_binding_keyboard_status:
+0112 6800c981 fetch 1 ,mem_dongle_bind_device_living 
+0113 c4008000 rtnbit0 1 
+0114 20200110 branch disable_user3 
+
+p_g24_dongle_binding_mouse_living:
+0115 6800c8ba fetch 1 ,mem_24g_pair_mode 
+0116 247a0000 nrtn blank 
+0117 6800c981 fetch 1 ,mem_dongle_bind_device_living 
+0118 1fe1fe01 or_into 0x01 ,pdata 
+0119 6000c981 store 1 ,mem_dongle_bind_device_living 
+011a 20600000 rtn 
+
+p_g24_dongle_binding_keyboard_living:
+011b 6800c8ba fetch 1 ,mem_24g_pair_mode 
+011c 247a0000 nrtn blank 
+011d 6800c981 fetch 1 ,mem_dongle_bind_device_living 
+011e 1fe1fe02 or_into 0x02 ,pdata 
+011f 6000c981 store 1 ,mem_dongle_bind_device_living 
+0120 20600000 rtn 
 
 p_g24_dongle_bind_first_step:
-0105 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
-0106 c0008109 beq bind_mouse ,p_g24_dongle_bind_first_step_mouse 
-0107 c001010f beq bind_keyboard ,p_g24_dongle_bind_first_step_keyboard 
-0108 20600000 rtn 
+0121 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+0122 c0008125 beq bind_mouse ,p_g24_dongle_bind_first_step_mouse 
+0123 c001012b beq bind_keyboard ,p_g24_dongle_bind_first_step_keyboard 
+0124 20600000 rtn 
 
 p_g24_dongle_bind_first_step_mouse:
-0109 7048a501 jam 1 ,mem_dongle_ms_bind_step 
+0125 7048a501 jam 1 ,mem_dongle_ms_bind_step 
 
 p_g24_dongle_bind_ms_payload_cfg:
-010a 7048a801 jam datatype_mouse ,mem_24g_bind_payload 
+0126 7048a801 jam datatype_mouse ,mem_24g_bind_payload 
 
 p_g24_dongle_bind_payload_cfg:
-010b 7048a980 jam 0x80 ,mem_24g_bind_payload + 1 
-010c 6803489f fetch 6 ,mem_24g_rx_addr 
-010d 600348aa store 6 ,mem_24g_bind_payload + 2 
-010e 20600000 rtn 
+0127 7048a980 jam 0x80 ,mem_24g_bind_payload + 1 
+0128 6803489f fetch 6 ,mem_24g_rx_addr 
+0129 600348aa store 6 ,mem_24g_bind_payload + 2 
+012a 20600000 rtn 
 
 p_g24_dongle_bind_first_step_keyboard:
-010f 7048a601 jam 1 ,mem_dongle_kb_bind_step 
+012b 7048a601 jam 1 ,mem_dongle_kb_bind_step 
 
 p_g24_dongle_bind_kb_payload_cfg:
-0110 7048a802 jam datatype_keyboard ,mem_24g_bind_payload 
-0111 2020010b branch p_g24_dongle_bind_payload_cfg 
+012c 7048a802 jam datatype_keyboard ,mem_24g_bind_payload 
+012d 20200127 branch p_g24_dongle_bind_payload_cfg 
 
 p_g24_dongle_bind_second_step:
-0112 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
-0113 c0008116 beq bind_mouse ,p_g24_dongle_bind_second_step_mouse 
-0114 c001011c beq bind_keyboard ,p_g24_dongle_bind_second_step_keyboard 
-0115 20600000 rtn 
+012e 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+012f c0008132 beq bind_mouse ,p_g24_dongle_bind_second_step_mouse 
+0130 c0010138 beq bind_keyboard ,p_g24_dongle_bind_second_step_keyboard 
+0131 20600000 rtn 
 
 p_g24_dongle_bind_second_step_mouse:
-0116 2040010a call p_g24_dongle_bind_ms_payload_cfg 
-0117 6800c8a5 fetch 1 ,mem_dongle_ms_bind_step 
-0118 c000811a beq 1 ,p_g24_dongle_ms_bind_step_set2 
-0119 20600000 rtn 
+0132 20400126 call p_g24_dongle_bind_ms_payload_cfg 
+0133 6800c8a5 fetch 1 ,mem_dongle_ms_bind_step 
+0134 c0008136 beq 1 ,p_g24_dongle_ms_bind_step_set2 
+0135 20600000 rtn 
 
 p_g24_dongle_ms_bind_step_set2:
-011a 7048a502 jam 2 ,mem_dongle_ms_bind_step 
-011b 20600000 rtn 
+0136 7048a502 jam 2 ,mem_dongle_ms_bind_step 
+0137 20600000 rtn 
 
 p_g24_dongle_bind_second_step_keyboard:
-011c 20400110 call p_g24_dongle_bind_kb_payload_cfg 
-011d 6800c8a6 fetch 1 ,mem_dongle_kb_bind_step 
-011e c0008120 beq 1 ,p_g24_dongle_kb_bind_step_set2 
-011f 20600000 rtn 
+0138 2040012c call p_g24_dongle_bind_kb_payload_cfg 
+0139 6800c8a6 fetch 1 ,mem_dongle_kb_bind_step 
+013a c000813c beq 1 ,p_g24_dongle_kb_bind_step_set2 
+013b 20600000 rtn 
 
 p_g24_dongle_kb_bind_step_set2:
-0120 7048a602 jam 2 ,mem_dongle_kb_bind_step 
-0121 20600000 rtn 
+013c 7048a602 jam 2 ,mem_dongle_kb_bind_step 
+013d 20600000 rtn 
 
 p_g24_dongle_bind_third_step:
-0122 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
-0123 c0008126 beq bind_mouse ,p_g24_dongle_bind_third_step_mouse 
-0124 c001012f beq bind_keyboard ,p_g24_dongle_bind_third_step_keyboard 
-0125 20600000 rtn 
+013e 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+013f c0008142 beq bind_mouse ,p_g24_dongle_bind_third_step_mouse 
+0140 c001014c beq bind_keyboard ,p_g24_dongle_bind_third_step_keyboard 
+0141 20600000 rtn 
 
 p_g24_dongle_bind_third_step_mouse:
-0126 6800c8a5 fetch 1 ,mem_dongle_ms_bind_step 
-0127 c0010129 beq 2 ,p_g24_dongle_ms_bind_step_success 
-0128 20600000 rtn 
+0142 6800c8a5 fetch 1 ,mem_dongle_ms_bind_step 
+0143 c0010145 beq 2 ,p_g24_dongle_ms_bind_step_success 
+0144 20600000 rtn 
 
 p_g24_dongle_ms_bind_step_success:
-0129 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
-012a 1fe1fe01 or_into 0x01 ,pdata 
-012b 6000c8a7 store 1 ,mem_dongle_bind_device_status 
+0145 20400115 call p_g24_dongle_binding_mouse_living 
+0146 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
+0147 1fe1fe01 or_into 0x01 ,pdata 
+0148 6000c8a7 store 1 ,mem_dongle_bind_device_status 
 
 p_g24_dongle_bind_exit:
-012c 58000000 setarg 0 
-012d 600148a5 store 2 ,mem_dongle_ms_bind_step 
-012e 20200102 branch p_g24_rx_interrupt_clear 
+0149 58000000 setarg 0 
+014a 600148a5 store 2 ,mem_dongle_ms_bind_step 
+014b 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_dongle_bind_third_step_keyboard:
-012f 6800c8a6 fetch 1 ,mem_dongle_kb_bind_step 
-0130 c0800132 bne 0 ,p_g24_dongle_kb_bind_step_success 
-0131 20600000 rtn 
+014c 6800c8a6 fetch 1 ,mem_dongle_kb_bind_step 
+014d c080014f bne 0 ,p_g24_dongle_kb_bind_step_success 
+014e 20600000 rtn 
 
 p_g24_dongle_kb_bind_step_success:
-0132 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
-0133 1fe1fe02 or_into 0x02 ,pdata 
-0134 6000c8a7 store 1 ,mem_dongle_bind_device_status 
-0135 2040012c call p_g24_dongle_bind_exit 
+014f 2040011b call p_g24_dongle_binding_keyboard_living 
+0150 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
+0151 1fe1fe02 or_into 0x02 ,pdata 
+0152 6000c8a7 store 1 ,mem_dongle_bind_device_status 
+0153 20400149 call p_g24_dongle_bind_exit 
 
 p_g24_dongle_store_kb_bind_flag:
-0136 680091c7 fetch 1 ,mem_dongle_kb_bind_flag 
-0137 c12d0000 rtneq dongle_kb_bind_success 
-0138 7011c75a jam dongle_kb_bind_success ,mem_dongle_kb_bind_flag 
-0139 20400084 call p_dongle_set_kb_bind_eeprom 
-013a 204065d1 call iicd_write_protect_eep_data 
-013b 2020659a branch soft_reset_chip 
+0154 680091c7 fetch 1 ,mem_dongle_kb_bind_flag 
+0155 c12d0000 rtneq dongle_kb_bind_success 
+0156 7011c75a jam dongle_kb_bind_success ,mem_dongle_kb_bind_flag 
+0157 20400085 call p_dongle_set_kb_bind_eeprom 
+0158 204065d1 call iicd_write_protect_eep_data 
+0159 2020659a branch soft_reset_chip 
 
 p_g24_data_attemp_bind:
-013c 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
-013d c0008140 beq datatype_mouse ,p_g24_data_attemp_mouse_bind 
-013e c0010143 beq datatype_keyboard ,p_g24_data_attemp_kbd_bind 
-013f 20600000 rtn 
+015a 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+015b c000815e beq datatype_mouse ,p_g24_data_attemp_mouse_bind 
+015c c0010161 beq datatype_keyboard ,p_g24_data_attemp_kbd_bind 
+015d 20600000 rtn 
 
 p_g24_data_attemp_mouse_bind:
-0140 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
+015e 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
 
 p_g24_store_mouse_addr:
-0141 600248da store 4 ,mem_24g_ms_addr 
-0142 20600000 rtn 
+015f 600248da store 4 ,mem_24g_ms_addr 
+0160 20600000 rtn 
 
 p_g24_data_attemp_kbd_bind:
-0143 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
+0161 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
 
 p_g24_store_kbd_addr:
-0144 600248d6 store 4 ,mem_24g_kb_addr 
-0145 20600000 rtn 
+0162 600248d6 store 4 ,mem_24g_kb_addr 
+0163 20600000 rtn 
 
 p_g24_queue_init:
-0146 70490000 jam 0 ,mem_queue_ele_num 
-0147 58004905 setarg mem_queue_start 
-0148 60014901 store 2 ,mem_queue_read 
-0149 60014903 store 2 ,mem_queue_write 
-014a 20600000 rtn 
+0164 70490000 jam 0 ,mem_queue_ele_num 
+0165 58004905 setarg mem_queue_start 
+0166 60014901 store 2 ,mem_queue_read 
+0167 60014903 store 2 ,mem_queue_write 
+0168 20600000 rtn 
 
 p_g24_queue_put:
-014b df20001f arg 0x1f ,loopcnt 
-014c d8400cb6 arg mem_usb0_set_report_data ,temp 
-014d 68014903 fetch 2 ,mem_queue_write 
-014e 1fe20a00 copy pdata ,contw 
-014f 18420c00 copy temp ,contr 
-0150 20407f01 call memcpy 
-0151 6800c900 fetch 1 ,mem_queue_ele_num 
-0152 1fe0fe01 increase 1 ,pdata 
-0153 6000c900 store 1 ,mem_queue_ele_num 
-0154 58004903 setarg mem_queue_write 
+0169 df20001f arg 0x1f ,loopcnt 
+016a d8400cb6 arg mem_usb0_set_report_data ,temp 
+016b 68014903 fetch 2 ,mem_queue_write 
+016c 1fe20a00 copy pdata ,contw 
+016d 18420c00 copy temp ,contr 
+016e 20407f01 call memcpy 
+016f 6800c900 fetch 1 ,mem_queue_ele_num 
+0170 1fe0fe01 increase 1 ,pdata 
+0171 6000c900 store 1 ,mem_queue_ele_num 
+0172 58004903 setarg mem_queue_write 
 
 p_g24_queue_increase:
-0155 1fe22200 copy pdata ,rega 
-0156 d8404965 arg mem_queue_end ,temp 
-0157 ea210000 ifetch 2 ,rega 
-0158 1fe0fe20 increase queue_ele_length ,pdata 
-0159 98467c00 isub temp ,null 
-015a 2421015c nbranch p_g24_queue_put_end ,positive 
-015b 58004905 setarg mem_queue_start 
+0173 1fe22200 copy pdata ,rega 
+0174 d8404965 arg mem_queue_end ,temp 
+0175 ea210000 ifetch 2 ,rega 
+0176 1fe0fe20 increase queue_ele_length ,pdata 
+0177 98467c00 isub temp ,null 
+0178 2421017a nbranch p_g24_queue_put_end ,positive 
+0179 58004905 setarg mem_queue_start 
 
 p_g24_queue_put_end:
-015c e2210000 istore 2 ,rega 
-015d 20600000 rtn 
+017a e2210000 istore 2 ,rega 
+017b 20600000 rtn 
 
 p_g24_queue_read_point:
-015e 78547c00 disable user 
-015f 6800c900 fetch 1 ,mem_queue_ele_num 
-0160 207a0000 rtn blank 
-0161 78347c00 enable user 
-0162 68014901 fetch 2 ,mem_queue_read 
-0163 20600000 rtn 
+017c 78547c00 disable user 
+017d 6800c900 fetch 1 ,mem_queue_ele_num 
+017e 207a0000 rtn blank 
+017f 78347c00 enable user 
+0180 68014901 fetch 2 ,mem_queue_read 
+0181 20600000 rtn 
 
 p_dongle_usb_dispatch:
-0164 708004ff jam 0xff ,core_write_watchdog 
-0165 204048d3 call usb_isr 
-0166 68008d50 fetch 1 ,mem_usb0_get_set_report 
-0167 207a0000 rtn blank 
-0168 700d5000 jam 0 ,mem_usb0_get_set_report 
-0169 68010d4e fetch 2 ,mem_usb_setup_bvalue_temp 
-016a d84002ba arg pc_set_report ,temp 
-016b 98467c00 isub temp ,null 
-016c 24628000 nrtn zero 
-016d 68008cb6 fetch 1 ,mem_usb0_set_report_data 
-016e c1dd0000 rtnne pc_report_id 
-016f 68008cb7 fetch 1 ,mem_usb0_set_report_data + 1 
-0170 c0500181 beq command_mode ,p_dongle_dispose_cmd_mode 
-0171 c0508177 beq command_bind ,p_dongle_dispose_cmd_bind 
-0172 c0533041 beq command_current_project ,dongle_dispose_cmd_current_project 
-0173 c0538186 beq command_current_mode ,p_dongle_dispose_cmd_current_mode 
-0174 c054818c beq command_current_fw_version ,p_dongle_dispose_cmd_current_fw_version 
-0175 c058018e beq command_user_defined ,p_dongle_dispose_cmd_user_defined 
-0176 2020302a branch usb0_data_ready_report_set0 
+0182 708004ff jam 0xff ,core_write_watchdog 
+0183 204048d3 call usb_isr 
+0184 68008d50 fetch 1 ,mem_usb0_get_set_report 
+0185 207a0000 rtn blank 
+0186 700d5000 jam 0 ,mem_usb0_get_set_report 
+0187 68010d4e fetch 2 ,mem_usb_setup_bvalue_temp 
+0188 d84002ba arg pc_set_report ,temp 
+0189 98467c00 isub temp ,null 
+018a 24628000 nrtn zero 
+018b 68008cb6 fetch 1 ,mem_usb0_set_report_data 
+018c c1dd0000 rtnne pc_report_id 
+018d 68008cb7 fetch 1 ,mem_usb0_set_report_data + 1 
+018e c050019f beq command_mode ,p_dongle_dispose_cmd_mode 
+018f c0508195 beq command_bind ,p_dongle_dispose_cmd_bind 
+0190 c0533041 beq command_current_project ,dongle_dispose_cmd_current_project 
+0191 c05381a4 beq command_current_mode ,p_dongle_dispose_cmd_current_mode 
+0192 c05481aa beq command_current_fw_version ,p_dongle_dispose_cmd_current_fw_version 
+0193 c05801ac beq command_user_defined ,p_dongle_dispose_cmd_user_defined 
+0194 2020302a branch usb0_data_ready_report_set0 
 
 p_dongle_dispose_cmd_bind:
-0177 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
-0178 c000817c beq com_bind_get ,p_dongle_dispose_cmd_get_bind 
-0179 c042017f beq com_bind_exit ,p_dongle_dispose_cmd_exit_bind 
-017a c053b039 beq com_read_mode ,dongle_dispose_cmd_read_mode 
-017b 2020302a branch usb0_data_ready_report_set0 
+0195 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+0196 c000819a beq com_bind_get ,p_dongle_dispose_cmd_get_bind 
+0197 c042019d beq com_bind_exit ,p_dongle_dispose_cmd_exit_bind 
+0198 c053b039 beq com_read_mode ,dongle_dispose_cmd_read_mode 
+0199 2020302a branch usb0_data_ready_report_set0 
 
 p_dongle_dispose_cmd_get_bind:
-017c 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
-017d 60008cf7 store 1 ,mem_usb0_get_report_data + 1 
-017e 2020303f branch usb0_data_ready_report_set1 
+019a 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
+019b 60008cf7 store 1 ,mem_usb0_get_report_data + 1 
+019c 2020303f branch usb0_data_ready_report_set1 
 
 p_dongle_dispose_cmd_exit_bind:
-017f 20400098 call p_dongle_work_mode_enable 
-0180 2020017c branch p_dongle_dispose_cmd_get_bind 
+019d 20400099 call p_dongle_work_mode_enable 
+019e 2020019a branch p_dongle_dispose_cmd_get_bind 
 
 p_dongle_dispose_cmd_mode:
-0181 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
-0182 c0408184 beq com_mode_bind ,p_dongle_enter_bind_mode 
-0183 2020302a branch usb0_data_ready_report_set0 
+019f 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+01a0 c04081a2 beq com_mode_bind ,p_dongle_enter_bind_mode 
+01a1 2020302a branch usb0_data_ready_report_set0 
 
 p_dongle_enter_bind_mode:
-0184 204001e0 call p_g24_bind_mode_enable 
-0185 2020303f branch usb0_data_ready_report_set1 
+01a2 204001ff call p_g24_bind_mode_enable 
+01a3 2020303f branch usb0_data_ready_report_set1 
 
 p_dongle_dispose_cmd_current_mode:
-0186 6800c8a4 fetch 1 ,mem_dongle_work_mode 
-0187 c000018a beq dongle_work ,p_dongle_dispose_in_work_mode 
-0188 c000b039 beq dongle_bind ,dongle_dispose_in_bind_mode 
-0189 20600000 rtn 
+01a4 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+01a5 c00001a8 beq dongle_work ,p_dongle_dispose_in_work_mode 
+01a6 c000b039 beq dongle_bind ,dongle_dispose_in_bind_mode 
+01a7 20600000 rtn 
 
 p_dongle_dispose_in_work_mode:
-018a 700cf7a0 jam command_mode ,mem_usb0_get_report_data + 1 
-018b 2020303f branch usb0_data_ready_report_set1 
+01a8 700cf7a0 jam command_mode ,mem_usb0_get_report_data + 1 
+01a9 2020303f branch usb0_data_ready_report_set1 
 
 p_dongle_dispose_cmd_current_fw_version:
-018c 700cfa07 jam fw_version3 ,mem_usb0_get_report_data + 4 
-018d 20203049 branch dongle_dispose_cmd_current_fw_version 
+01aa 700cfa07 jam fw_version3 ,mem_usb0_get_report_data + 4 
+01ab 20203049 branch dongle_dispose_cmd_current_fw_version 
 
 p_dongle_dispose_cmd_user_defined:
-018e 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
-018f c07fe59a beq 0xff ,soft_reset_chip 
+01ac 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+01ad c07fe59a beq 0xff ,soft_reset_chip 
 
 p_dongle_dispose_cmd_ota:
-0190 7048b802 jam 2 ,mem_24g_ackpayload_enable 
-0191 6800c900 fetch 1 ,mem_queue_ele_num 
-0192 c0018198 beq queue_ele_count ,p_user_defined_queue_buff_full 
-0193 2040014b call p_g24_queue_put 
-0194 6800c900 fetch 1 ,mem_queue_ele_num 
-0195 c0018198 beq queue_ele_count ,p_user_defined_queue_buff_full 
+01ae 7048b802 jam 2 ,mem_24g_ackpayload_enable 
+01af 6800c900 fetch 1 ,mem_queue_ele_num 
+01b0 c00181b6 beq queue_ele_count ,p_user_defined_queue_buff_full 
+01b1 20400169 call p_g24_queue_put 
+01b2 6800c900 fetch 1 ,mem_queue_ele_num 
+01b3 c00181b6 beq queue_ele_count ,p_user_defined_queue_buff_full 
 
 p_user_defined_queue_buff_free:
-0196 700cf700 jam 0 ,mem_usb0_get_report_data + 1 
-0197 2020303f branch usb0_data_ready_report_set1 
+01b4 700cf700 jam 0 ,mem_usb0_get_report_data + 1 
+01b5 2020303f branch usb0_data_ready_report_set1 
 
 p_user_defined_queue_buff_full:
-0198 700cf701 jam 1 ,mem_usb0_get_report_data + 1 
-0199 2020303f branch usb0_data_ready_report_set1 
+01b6 700cf701 jam 1 ,mem_usb0_get_report_data + 1 
+01b7 2020303f branch usb0_data_ready_report_set1 
 
 p_dongle_auto_bind:
-019a 204001be call p_g24_mode_switch_init 
+01b8 204001dd call p_g24_mode_switch_init 
 
 p_dongle_auto_bind_loop:
-019b 204001c4 call p_g24_mode_switch 
-019c 204001a1 call p_g24_dongle_work_mode_auto 
-019d 204001a5 call p_g24_dongle_bind_mode_auto 
-019e 204001f6 call p_g24_dongle_search_mode_auto 
-019f 20400164 call p_dongle_usb_dispatch 
-01a0 2020019b branch p_dongle_auto_bind_loop 
+01b9 204001e3 call p_g24_mode_switch 
+01ba 2040020e call p_g24_mode_switch_2 
+01bb 204001c0 call p_g24_dongle_work_mode_auto 
+01bc 204001c4 call p_g24_dongle_bind_mode_auto 
+01bd 2040023f call p_g24_dongle_search_mode_auto 
+01be 20400182 call p_dongle_usb_dispatch 
+01bf 202001b9 branch p_dongle_auto_bind_loop 
 
 p_g24_dongle_work_mode_auto:
-01a1 6800c8a4 fetch 1 ,mem_dongle_work_mode 
-01a2 c1800000 rtnne dongle_work 
-01a3 2040009d call p_g24_dongle_work_mode_start 
-01a4 202001e5 branch p_g24_rx_nodata_process 
+01c0 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+01c1 c1800000 rtnne dongle_work 
+01c2 2040009e call p_g24_dongle_work_mode_start 
+01c3 2020022d branch p_g24_rx_nodata_process 
 
 p_g24_dongle_bind_mode_auto:
-01a5 6800c8a4 fetch 1 ,mem_dongle_work_mode 
-01a6 c1808000 rtnne dongle_bind 
-01a7 204000ea call p_g24_dongle_bind_init 
-01a8 204000f6 call p_g24_dongle_bind_data_process 
-01a9 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
-01aa 207a0000 rtn blank 
-01ab 7048b700 jam 0 ,mem_24g_mode_switch 
-01ac 20400097 call p_dongle_check_mode 
-01ad 204001e3 call p_g24_enable_nodata_timer 
-01ae 202001c1 branch p_g24_timer_init 
+01c4 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+01c5 c1808000 rtnne dongle_bind 
+01c6 204000eb call p_g24_dongle_bind_init 
+01c7 204000f7 call p_g24_dongle_bind_data_process 
+01c8 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
+01c9 207a0000 rtn blank 
+01ca 7048b700 jam 0 ,mem_24g_mode_switch 
+01cb 20400098 call p_dongle_check_mode 
+01cc 2040022b call p_g24_enable_nodata_timer 
+01cd 202001e0 branch p_g24_timer_init 
 
 p_g24_timer_check:
-01af 20407fe9 call disable_user 
-01b0 680a4857 fetcht 4 ,mem_24g_tx_btclk 
-01b1 1c427e00 copy clkn_bt ,pdata 
-01b2 98467c00 isub temp ,null 
-01b3 24412d18 ncall g24_timer_timeout ,positive 
-01b4 1fe22400 copy pdata ,regb 
-01b5 68024857 fetch 4 ,mem_24g_tx_btclk 
-01b6 6808c85b fetcht 1 ,mem_24g_interval 
-01b7 98408400 iadd temp ,temp 
-01b8 1a427e00 copy regb ,pdata 
-01b9 98467c00 isub temp ,null 
-01ba 24610000 nrtn positive 
-01bb 793ffe1c set0 28 ,pdata 
-01bc 60024857 store 4 ,mem_24g_tx_btclk 
-01bd 20207fe7 branch enable_user 
+01ce 20407fe9 call disable_user 
+01cf 680a4857 fetcht 4 ,mem_24g_tx_btclk 
+01d0 1c427e00 copy clkn_bt ,pdata 
+01d1 98467c00 isub temp ,null 
+01d2 24412d18 ncall g24_timer_timeout ,positive 
+01d3 1fe22400 copy pdata ,regb 
+01d4 68024857 fetch 4 ,mem_24g_tx_btclk 
+01d5 6808c85b fetcht 1 ,mem_24g_interval 
+01d6 98408400 iadd temp ,temp 
+01d7 1a427e00 copy regb ,pdata 
+01d8 98467c00 isub temp ,null 
+01d9 24610000 nrtn positive 
+01da 793ffe1c set0 28 ,pdata 
+01db 60024857 store 4 ,mem_24g_tx_btclk 
+01dc 20207fe7 branch enable_user 
 
 p_g24_mode_switch_init:
-01be 7048b701 jam 1 ,mem_24g_mode_switch 
-01bf 7048bc00 jam 0 ,mem_24g_time_slice 
-01c0 70485bff jam 0xff ,mem_24g_interval 
+01dd 7048b701 jam 1 ,mem_24g_mode_switch 
+01de 7048bc00 jam 0 ,mem_24g_time_slice 
+01df 70485bff jam 0xff ,mem_24g_interval 
 
 p_g24_timer_init:
-01c1 58000000 setarg 0 
-01c2 60024857 store 4 ,mem_24g_tx_btclk 
-01c3 20600000 rtn 
+01e0 58000000 setarg 0 
+01e1 60024857 store 4 ,mem_24g_tx_btclk 
+01e2 20600000 rtn 
 
 p_g24_mode_switch:
-01c4 6800c8b7 fetch 1 ,mem_24g_mode_switch 
-01c5 207a0000 rtn blank 
-01c6 204001af call p_g24_timer_check 
-01c7 24740000 nrtn user 
-01c8 204001d9 call p_g24_bind_mode_delay 
-01c9 204001d1 call p_g24_work_mode_delay 
-01ca 6800c8bc fetch 1 ,mem_24g_time_slice 
-01cb 1fe0fe01 increase 1 ,pdata 
-01cc 1fe17e01 and_into 1 ,pdata 
-01cd 6000c8bc store 1 ,mem_24g_time_slice 
-01ce c00001d6 beq 0 ,p_g24_mode_switch_work 
-01cf c00081de beq 1 ,p_g24_mode_switch_bind 
-01d0 20600000 rtn 
+01e3 6800c8b7 fetch 1 ,mem_24g_mode_switch 
+01e4 207a0000 rtn blank 
+01e5 204001ce call p_g24_timer_check 
+01e6 24740000 nrtn user 
+01e7 204001f8 call p_g24_bind_mode_delay 
+01e8 204001f0 call p_g24_work_mode_delay 
+01e9 6800c8bc fetch 1 ,mem_24g_time_slice 
+01ea 1fe0fe01 increase 1 ,pdata 
+01eb 1fe17e01 and_into 1 ,pdata 
+01ec 6000c8bc store 1 ,mem_24g_time_slice 
+01ed c00001f5 beq 0 ,p_g24_mode_switch_work 
+01ee c00081fd beq 1 ,p_g24_mode_switch_bind 
+01ef 20600000 rtn 
 
 p_g24_work_mode_delay:
-01d1 6800c97a fetch 1 ,mem_24g_work_delay_count 
-01d2 207a0000 rtn blank 
-01d3 1fe0ffff increase -1 ,pdata 
-01d4 6000c97a store 1 ,mem_24g_work_delay_count 
-01d5 20600000 rtn 
+01f0 6800c97a fetch 1 ,mem_24g_work_delay_count 
+01f1 207a0000 rtn blank 
+01f2 1fe0ffff increase -1 ,pdata 
+01f3 6000c97a store 1 ,mem_24g_work_delay_count 
+01f4 20600000 rtn 
 
 p_g24_mode_switch_work:
-01d6 6800c97a fetch 1 ,mem_24g_work_delay_count 
-01d7 243a01e0 nbranch p_g24_bind_mode_enable ,blank 
-01d8 20200097 branch p_dongle_check_mode 
+01f5 6800c97a fetch 1 ,mem_24g_work_delay_count 
+01f6 243a01ff nbranch p_g24_bind_mode_enable ,blank 
+01f7 20200098 branch p_dongle_check_mode 
 
 p_g24_bind_mode_delay:
-01d9 6800c979 fetch 1 ,mem_24g_bind_delay_count 
-01da 207a0000 rtn blank 
-01db 1fe0ffff increase -1 ,pdata 
-01dc 6000c979 store 1 ,mem_24g_bind_delay_count 
-01dd 20600000 rtn 
+01f8 6800c979 fetch 1 ,mem_24g_bind_delay_count 
+01f9 207a0000 rtn blank 
+01fa 1fe0ffff increase -1 ,pdata 
+01fb 6000c979 store 1 ,mem_24g_bind_delay_count 
+01fc 20600000 rtn 
 
 p_g24_mode_switch_bind:
-01de 6800c979 fetch 1 ,mem_24g_bind_delay_count 
-01df 243a0097 nbranch p_dongle_check_mode ,blank 
+01fd 6800c979 fetch 1 ,mem_24g_bind_delay_count 
+01fe 243a0098 nbranch p_dongle_check_mode ,blank 
 
 p_g24_bind_mode_enable:
-01e0 7048a401 jam dongle_bind ,mem_dongle_work_mode 
-01e1 7048a300 jam clear_init ,mem_dongle_mode_init 
-01e2 20600000 rtn 
+01ff 7048a401 jam dongle_bind ,mem_dongle_work_mode 
+0200 7048a300 jam clear_init ,mem_dongle_mode_init 
+0201 20600000 rtn 
+
+p_g24_mode_switch_init_2:
+0202 6800c97f fetch 1 ,mem_24g_mode_switch_exit_2 
+0203 205a0229 call p_g24_mode_switch_start_2 ,blank 
+0204 6800c97c fetch 1 ,mem_24g_mode_switch_2_init 
+0205 c3800000 rtnbit1 0 
+0206 79207e00 set1 0 ,pdata 
+0207 6000c97c store 1 ,mem_24g_mode_switch_2_init 
+0208 70497b01 jam 1 ,mem_24g_mode_switch_2 
+0209 70498000 jam 0 ,mem_24g_time_slice_2 
+020a 58000000 setarg 0 
+020b 6001497d store 2 ,mem_24g_mode_switch_cnt_2 
+020c 70485b60 jam 0x60 ,mem_24g_interval 
+020d 202001e0 branch p_g24_timer_init 
+
+p_g24_mode_switch_2:
+020e 6800c97f fetch 1 ,mem_24g_mode_switch_exit_2 
+020f 247a0000 nrtn blank 
+0210 6800c97b fetch 1 ,mem_24g_mode_switch_2 
+0211 207a0000 rtn blank 
+0212 204001ce call p_g24_timer_check 
+0213 24740000 nrtn user 
+0214 6801497d fetch 2 ,mem_24g_mode_switch_cnt_2 
+0215 1fe0fe01 increase 1 ,pdata 
+0216 6001497d store 2 ,mem_24g_mode_switch_cnt_2 
+0217 d84007d0 arg 0x7d0 ,temp 
+0218 98467c00 isub temp ,null 
+0219 20210225 branch p_g24_mode_switch_exit_2 ,positive 
+021a 204001f0 call p_g24_work_mode_delay 
+021b 6800c980 fetch 1 ,mem_24g_time_slice_2 
+021c 1fe0fe01 increase 1 ,pdata 
+021d 1fe17e01 and_into 1 ,pdata 
+021e 6000c980 store 1 ,mem_24g_time_slice_2 
+021f c0000222 beq 0 ,p_g24_mode_switch_search 
+0220 c00081ff beq 1 ,p_g24_bind_mode_enable 
+0221 20600000 rtn 
+
+p_g24_mode_switch_search:
+0222 6800c97a fetch 1 ,mem_24g_work_delay_count 
+0223 243a01ff nbranch p_g24_bind_mode_enable ,blank 
+0224 20200238 branch p_g24_search_mode_enable 
+
+p_g24_mode_switch_exit_2:
+0225 70497f01 jam 1 ,mem_24g_mode_switch_exit_2 
+0226 20200238 branch p_g24_search_mode_enable 
+
+p_g24_mode_switch_stop_2:
+0227 70497b00 jam 0 ,mem_24g_mode_switch_2 
+0228 20600000 rtn 
+
+p_g24_mode_switch_start_2:
+0229 70497b01 jam 1 ,mem_24g_mode_switch_2 
+022a 20600000 rtn 
 
 p_g24_enable_nodata_timer:
-01e3 7048bb01 jam 1 ,mem_24g_nodata_timer_enable 
-01e4 20203095 branch g24_enable_nodata_timer_init 
+022b 7048bb01 jam 1 ,mem_24g_nodata_timer_enable 
+022c 20203095 branch g24_enable_nodata_timer_init 
 
 p_g24_rx_nodata_process:
-01e5 6800c8b8 fetch 1 ,mem_24g_ackpayload_enable 
-01e6 c1010000 rtneq 2 
-01e7 6800c8bb fetch 1 ,mem_24g_nodata_timer_enable 
-01e8 207a0000 rtn blank 
-01e9 d8e00008 arg timer_nodata ,queue 
-01ea 20407f16 call timer_check 
-01eb 247a0000 nrtn blank 
-01ec 7048bb00 jam 0 ,mem_24g_nodata_timer_enable 
-01ed 70497900 jam 0 ,mem_24g_bind_delay_count 
-01ee 70497a00 jam 0 ,mem_24g_work_delay_count 
-01ef 7048a407 jam dongle_search ,mem_dongle_work_mode 
-01f0 7048a300 jam clear_init ,mem_dongle_mode_init 
-01f1 20200102 branch p_g24_rx_interrupt_clear 
+022d 6800c8b8 fetch 1 ,mem_24g_ackpayload_enable 
+022e c1010000 rtneq 2 
+022f 6800c8bb fetch 1 ,mem_24g_nodata_timer_enable 
+0230 207a0000 rtn blank 
+0231 d8e00008 arg timer_nodata ,queue 
+0232 20407f16 call timer_check 
+0233 247a0000 nrtn blank 
+0234 7048bb00 jam 0 ,mem_24g_nodata_timer_enable 
+0235 70497900 jam 0 ,mem_24g_bind_delay_count 
+0236 70497a00 jam 0 ,mem_24g_work_delay_count 
+0237 20400202 call p_g24_mode_switch_init_2 
+
+p_g24_search_mode_enable:
+0238 7048a407 jam dongle_search ,mem_dongle_work_mode 
+0239 7048a300 jam clear_init ,mem_dongle_mode_init 
+023a 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_receive_transmit_ack:
-01f2 20400102 call p_g24_rx_interrupt_clear 
-01f3 204003f1 call p_g24_receive_packet 
-01f4 24778000 nrtn user3 
-01f5 20200291 branch p_g24_transmit_ack 
+023b 20400103 call p_g24_rx_interrupt_clear 
+023c 20400442 call p_g24_receive_packet 
+023d 24778000 nrtn user3 
+023e 202002dc branch p_g24_transmit_ack 
 
 p_g24_dongle_search_mode_auto:
-01f6 6800c8a4 fetch 1 ,mem_dongle_work_mode 
-01f7 c1838000 rtnne dongle_search 
-01f8 2040021b call p_g24_dongle_search_mode_init 
-01f9 2040022f call p_g24_rx_auto_addr_ch_search 
-01fa 204001f2 call p_g24_receive_transmit_ack 
-01fb 24378102 nbranch p_g24_rx_interrupt_clear ,user3 
-01fc 2040022b call p_g24_rx_addr_check 
-01fd 204282be call p_g24_receive_packet_parse ,zero 
-01fe 7048a400 jam dongle_work ,mem_dongle_work_mode 
-01ff 6800c8a3 fetch 1 ,mem_dongle_mode_init 
-0200 79207e00 set1 dongle_work ,pdata 
-0201 6000c8a3 store 1 ,mem_dongle_mode_init 
-0202 6800c8b8 fetch 1 ,mem_24g_ackpayload_enable 
-0203 1fe67c02 sub pdata ,2 ,null 
-0204 24428212 ncall p_g24_ackpayload_disable ,zero 
-0205 20400102 call p_g24_rx_interrupt_clear 
-0206 204001e3 call p_g24_enable_nodata_timer 
-0207 2040022b call p_g24_rx_addr_check 
-0208 20228214 branch p_g24_dg_ch_num_reinit ,zero 
-0209 6802485e fetch 4 ,mem_24g_addr 
-020a 680a48d6 fetcht 4 ,mem_24g_kb_addr 
-020b 98467c00 isub temp ,null 
-020c 20228217 branch p_g24_kb_ch_num_reinit ,zero 
-020d 6802485e fetch 4 ,mem_24g_addr 
-020e 680a48da fetcht 4 ,mem_24g_ms_addr 
-020f 98467c00 isub temp ,null 
-0210 20228219 branch p_g24_ms_ch_num_reinit ,zero 
-0211 20600000 rtn 
+023f 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+0240 c1838000 rtnne dongle_search 
+0241 20400266 call p_g24_dongle_search_mode_init 
+0242 2040027a call p_g24_rx_auto_addr_ch_search 
+0243 2040023b call p_g24_receive_transmit_ack 
+0244 24378103 nbranch p_g24_rx_interrupt_clear ,user3 
+0245 20400276 call p_g24_rx_addr_check 
+0246 2042830b call p_g24_receive_packet_parse ,zero 
+0247 6800c8b0 fetch 1 ,mem_24g_abort_packet 
+0248 205a0227 call p_g24_mode_switch_stop_2 ,blank 
+0249 7048a400 jam dongle_work ,mem_dongle_work_mode 
+024a 6800c8a3 fetch 1 ,mem_dongle_mode_init 
+024b 79207e00 set1 dongle_work ,pdata 
+024c 6000c8a3 store 1 ,mem_dongle_mode_init 
+024d 6800c8b8 fetch 1 ,mem_24g_ackpayload_enable 
+024e 1fe67c02 sub pdata ,2 ,null 
+024f 2442825d ncall p_g24_ackpayload_disable ,zero 
+0250 20400103 call p_g24_rx_interrupt_clear 
+0251 2040022b call p_g24_enable_nodata_timer 
+0252 20400276 call p_g24_rx_addr_check 
+0253 2022825f branch p_g24_dg_ch_num_reinit ,zero 
+0254 6802485e fetch 4 ,mem_24g_addr 
+0255 680a48d6 fetcht 4 ,mem_24g_kb_addr 
+0256 98467c00 isub temp ,null 
+0257 20228262 branch p_g24_kb_ch_num_reinit ,zero 
+0258 6802485e fetch 4 ,mem_24g_addr 
+0259 680a48da fetcht 4 ,mem_24g_ms_addr 
+025a 98467c00 isub temp ,null 
+025b 20228264 branch p_g24_ms_ch_num_reinit ,zero 
+025c 20600000 rtn 
 
 p_g24_ackpayload_disable:
-0212 7048b800 jam 0 ,mem_24g_ackpayload_enable 
-0213 20600000 rtn 
+025d 7048b800 jam 0 ,mem_24g_ackpayload_enable 
+025e 20600000 rtn 
 
 p_g24_dg_ch_num_reinit:
-0214 6800c8df fetch 1 ,mem_24g_dg_ch_number 
+025f 6800c8df fetch 1 ,mem_24g_dg_ch_number 
 
 p_g24_current_ch_num_reinit:
-0215 6000c841 store 1 ,mem_24g_current_ch_number 
-0216 20600000 rtn 
+0260 6000c841 store 1 ,mem_24g_current_ch_number 
+0261 20600000 rtn 
 
 p_g24_kb_ch_num_reinit:
-0217 6800c8e2 fetch 1 ,mem_24g_kb_ch_number 
-0218 20200215 branch p_g24_current_ch_num_reinit 
+0262 6800c8e2 fetch 1 ,mem_24g_kb_ch_number 
+0263 20200260 branch p_g24_current_ch_num_reinit 
 
 p_g24_ms_ch_num_reinit:
-0219 6800c8e5 fetch 1 ,mem_24g_ms_ch_number 
-021a 20200215 branch p_g24_current_ch_num_reinit 
+0264 6800c8e5 fetch 1 ,mem_24g_ms_ch_number 
+0265 20200260 branch p_g24_current_ch_num_reinit 
 
 p_g24_dongle_search_mode_init:
-021b 6800c8a3 fetch 1 ,mem_dongle_mode_init 
-021c c3838000 rtnbit1 dongle_search 
-021d 79207e07 set1 dongle_search ,pdata 
-021e 6000c8a3 store 1 ,mem_dongle_mode_init 
-021f 7048bc00 jam 0 ,mem_24g_time_slice 
-0220 7048b801 jam 1 ,mem_24g_ackpayload_enable 
-0221 58000000 setarg 0 
-0222 6001c8f5 store 3 ,mem_rssi_noise_dg_index 
-0223 6003c8e0 store 7 ,mem_24g_dg_config_ch_once 
-0224 2040022b call p_g24_rx_addr_check 
-0225 24628000 nrtn zero 
-0226 6800c841 fetch 1 ,mem_24g_current_ch_number 
-0227 6000c8df store 1 ,mem_24g_dg_ch_number 
-0228 6800c840 fetch 1 ,mem_24g_ch 
-0229 6000c8de store 1 ,mem_24g_dg_last_ch 
-022a 20600000 rtn 
+0266 6800c8a3 fetch 1 ,mem_dongle_mode_init 
+0267 c3838000 rtnbit1 dongle_search 
+0268 79207e07 set1 dongle_search ,pdata 
+0269 6000c8a3 store 1 ,mem_dongle_mode_init 
+026a 7048bc00 jam 0 ,mem_24g_time_slice 
+026b 7048b801 jam 1 ,mem_24g_ackpayload_enable 
+026c 58000000 setarg 0 
+026d 6001c8f5 store 3 ,mem_rssi_noise_dg_index 
+026e 6003c8e0 store 7 ,mem_24g_dg_config_ch_once 
+026f 20400276 call p_g24_rx_addr_check 
+0270 24628000 nrtn zero 
+0271 6800c841 fetch 1 ,mem_24g_current_ch_number 
+0272 6000c8df store 1 ,mem_24g_dg_ch_number 
+0273 6800c840 fetch 1 ,mem_24g_ch 
+0274 6000c8de store 1 ,mem_24g_dg_last_ch 
+0275 20600000 rtn 
 
 p_g24_rx_addr_check:
-022b 6802485e fetch 4 ,mem_24g_addr 
-022c 680a489f fetcht 4 ,mem_24g_rx_addr 
-022d 98467c00 isub temp ,null 
-022e 20600000 rtn 
+0276 6802485e fetch 4 ,mem_24g_addr 
+0277 680a489f fetcht 4 ,mem_24g_rx_addr 
+0278 98467c00 isub temp ,null 
+0279 20600000 rtn 
 
 p_g24_rx_auto_addr_ch_search:
-022f 6800c8bc fetch 1 ,mem_24g_time_slice 
-0230 1fe0fe01 increase 1 ,pdata 
-0231 1fe17e03 and_into 3 ,pdata 
-0232 6000c8bc store 1 ,mem_24g_time_slice 
-0233 c0000252 beq 0 ,p_g24_rx_auto_bind_config_kb 
-0234 c000826c beq 1 ,p_g24_rx_auto_bind_config_dongle 
-0235 c0010238 beq 2 ,p_g24_rx_auto_bind_config_mouse 
-0236 c001826c beq 3 ,p_g24_rx_auto_bind_config_dongle 
-0237 20600000 rtn 
+027a 6800c8bc fetch 1 ,mem_24g_time_slice 
+027b 1fe0fe01 increase 1 ,pdata 
+027c 1fe17e03 and_into 3 ,pdata 
+027d 6000c8bc store 1 ,mem_24g_time_slice 
+027e c000029d beq 0 ,p_g24_rx_auto_bind_config_kb 
+027f c00082b7 beq 1 ,p_g24_rx_auto_bind_config_dongle 
+0280 c0010283 beq 2 ,p_g24_rx_auto_bind_config_mouse 
+0281 c00182b7 beq 3 ,p_g24_rx_auto_bind_config_dongle 
+0282 20600000 rtn 
 
 p_g24_rx_auto_bind_config_mouse:
-0238 2040010a call p_g24_dongle_bind_ms_payload_cfg 
-0239 680248da fetch 4 ,mem_24g_ms_addr 
-023a 203a022f branch p_g24_rx_auto_addr_ch_search ,blank 
-023b 204003b7 call p_g24_update_addr_and_synccrc8 
-023c 6800c8e6 fetch 1 ,mem_24g_ms_config_ch_once 
-023d 205a024d call p_g24_ms_config_ch_once ,blank 
-023e 6800c8e4 fetch 1 ,mem_24g_ms_last_ch 
-023f 6000c840 store 1 ,mem_24g_ch 
-0240 6808c8f7 fetcht 1 ,mem_rssi_noise_ms_index 
-0241 da200f9e arg mem_rssi_noise_ms_buffer ,rega 
-0242 204003ab call p_rssi_store 
-0243 6008c8f7 storet 1 ,mem_rssi_noise_ms_index 
-0244 204003b2 call p_rssi_average 
-0245 6008c8f4 storet 1 ,mem_rssi_noise_ms_avg 
-0246 18467c50 sub temp ,rssi_thresh_noise ,null 
-0247 24610000 nrtn positive 
-0248 6808c8e5 fetcht 1 ,mem_24g_ms_ch_number 
-0249 204003db call p_g24_ch_map_size 
-024a 6008c8e5 storet 1 ,mem_24g_ms_ch_number 
-024b 6000c8e4 store 1 ,mem_24g_ms_last_ch 
-024c 20600000 rtn 
+0283 20400126 call p_g24_dongle_bind_ms_payload_cfg 
+0284 680248da fetch 4 ,mem_24g_ms_addr 
+0285 203a027a branch p_g24_rx_auto_addr_ch_search ,blank 
+0286 20400408 call p_g24_update_addr_and_synccrc8 
+0287 6800c8e6 fetch 1 ,mem_24g_ms_config_ch_once 
+0288 205a0298 call p_g24_ms_config_ch_once ,blank 
+0289 6800c8e4 fetch 1 ,mem_24g_ms_last_ch 
+028a 6000c840 store 1 ,mem_24g_ch 
+028b 6808c8f7 fetcht 1 ,mem_rssi_noise_ms_index 
+028c da200f9e arg mem_rssi_noise_ms_buffer ,rega 
+028d 204003fc call p_rssi_store 
+028e 6008c8f7 storet 1 ,mem_rssi_noise_ms_index 
+028f 20400403 call p_rssi_average 
+0290 6008c8f4 storet 1 ,mem_rssi_noise_ms_avg 
+0291 18467c50 sub temp ,rssi_thresh_noise ,null 
+0292 24610000 nrtn positive 
+0293 6808c8e5 fetcht 1 ,mem_24g_ms_ch_number 
+0294 2040042c call p_g24_ch_map_size 
+0295 6008c8e5 storet 1 ,mem_24g_ms_ch_number 
+0296 6000c8e4 store 1 ,mem_24g_ms_last_ch 
+0297 20600000 rtn 
 
 p_g24_ms_config_ch_once:
-024d 7048e601 jam 1 ,mem_24g_ms_config_ch_once 
-024e d8400000 arg 0 ,temp 
-024f 204003df call p_g24_ch_calc 
-0250 6000c8e4 store 1 ,mem_24g_ms_last_ch 
-0251 20600000 rtn 
+0298 7048e601 jam 1 ,mem_24g_ms_config_ch_once 
+0299 d8400000 arg 0 ,temp 
+029a 20400430 call p_g24_ch_calc 
+029b 6000c8e4 store 1 ,mem_24g_ms_last_ch 
+029c 20600000 rtn 
 
 p_g24_rx_auto_bind_config_kb:
-0252 20400110 call p_g24_dongle_bind_kb_payload_cfg 
-0253 680248d6 fetch 4 ,mem_24g_kb_addr 
-0254 203a022f branch p_g24_rx_auto_addr_ch_search ,blank 
-0255 204003b7 call p_g24_update_addr_and_synccrc8 
-0256 6800c8e3 fetch 1 ,mem_24g_kb_config_ch_once 
-0257 205a0267 call p_g24_kb_config_ch_once ,blank 
-0258 6800c8e1 fetch 1 ,mem_24g_kb_last_ch 
-0259 6000c840 store 1 ,mem_24g_ch 
-025a 6808c8f6 fetcht 1 ,mem_rssi_noise_kb_index 
-025b da20109e arg mem_rssi_noise_kb_buffer ,rega 
-025c 204003ab call p_rssi_store 
-025d 6008c8f6 storet 1 ,mem_rssi_noise_kb_index 
-025e 204003b2 call p_rssi_average 
-025f 6008c8f3 storet 1 ,mem_rssi_noise_kb_avg 
-0260 18467c50 sub temp ,rssi_thresh_noise ,null 
-0261 24610000 nrtn positive 
-0262 6808c8e2 fetcht 1 ,mem_24g_kb_ch_number 
-0263 204003db call p_g24_ch_map_size 
-0264 6008c8e2 storet 1 ,mem_24g_kb_ch_number 
-0265 6000c8e1 store 1 ,mem_24g_kb_last_ch 
-0266 20600000 rtn 
+029d 2040012c call p_g24_dongle_bind_kb_payload_cfg 
+029e 680248d6 fetch 4 ,mem_24g_kb_addr 
+029f 203a027a branch p_g24_rx_auto_addr_ch_search ,blank 
+02a0 20400408 call p_g24_update_addr_and_synccrc8 
+02a1 6800c8e3 fetch 1 ,mem_24g_kb_config_ch_once 
+02a2 205a02b2 call p_g24_kb_config_ch_once ,blank 
+02a3 6800c8e1 fetch 1 ,mem_24g_kb_last_ch 
+02a4 6000c840 store 1 ,mem_24g_ch 
+02a5 6808c8f6 fetcht 1 ,mem_rssi_noise_kb_index 
+02a6 da20109e arg mem_rssi_noise_kb_buffer ,rega 
+02a7 204003fc call p_rssi_store 
+02a8 6008c8f6 storet 1 ,mem_rssi_noise_kb_index 
+02a9 20400403 call p_rssi_average 
+02aa 6008c8f3 storet 1 ,mem_rssi_noise_kb_avg 
+02ab 18467c50 sub temp ,rssi_thresh_noise ,null 
+02ac 24610000 nrtn positive 
+02ad 6808c8e2 fetcht 1 ,mem_24g_kb_ch_number 
+02ae 2040042c call p_g24_ch_map_size 
+02af 6008c8e2 storet 1 ,mem_24g_kb_ch_number 
+02b0 6000c8e1 store 1 ,mem_24g_kb_last_ch 
+02b1 20600000 rtn 
 
 p_g24_kb_config_ch_once:
-0267 7048e301 jam 1 ,mem_24g_kb_config_ch_once 
-0268 d8400000 arg 0 ,temp 
-0269 204003df call p_g24_ch_calc 
-026a 6000c8e1 store 1 ,mem_24g_kb_last_ch 
-026b 20600000 rtn 
+02b2 7048e301 jam 1 ,mem_24g_kb_config_ch_once 
+02b3 d8400000 arg 0 ,temp 
+02b4 20400430 call p_g24_ch_calc 
+02b5 6000c8e1 store 1 ,mem_24g_kb_last_ch 
+02b6 20600000 rtn 
 
 p_g24_rx_auto_bind_config_dongle:
-026c 2040010a call p_g24_dongle_bind_ms_payload_cfg 
-026d 6802489f fetch 4 ,mem_24g_rx_addr 
-026e 204003b7 call p_g24_update_addr_and_synccrc8 
-026f 6800c8e0 fetch 1 ,mem_24g_dg_config_ch_once 
-0270 205a0280 call p_g24_dg_config_ch_once ,blank 
-0271 6800c8de fetch 1 ,mem_24g_dg_last_ch 
-0272 6000c840 store 1 ,mem_24g_ch 
-0273 6808c8f5 fetcht 1 ,mem_rssi_noise_dg_index 
-0274 da200e9e arg mem_rssi_noise_dg_buffer ,rega 
-0275 204003ab call p_rssi_store 
-0276 6008c8f5 storet 1 ,mem_rssi_noise_dg_index 
-0277 204003b2 call p_rssi_average 
-0278 6008c8f2 storet 1 ,mem_rssi_noise_dg_avg 
-0279 18467c50 sub temp ,rssi_thresh_noise ,null 
-027a 24610000 nrtn positive 
-027b 6808c8df fetcht 1 ,mem_24g_dg_ch_number 
-027c 204003db call p_g24_ch_map_size 
-027d 6008c8df storet 1 ,mem_24g_dg_ch_number 
-027e 6000c8de store 1 ,mem_24g_dg_last_ch 
-027f 20600000 rtn 
+02b7 20400126 call p_g24_dongle_bind_ms_payload_cfg 
+02b8 6802489f fetch 4 ,mem_24g_rx_addr 
+02b9 20400408 call p_g24_update_addr_and_synccrc8 
+02ba 6800c8e0 fetch 1 ,mem_24g_dg_config_ch_once 
+02bb 205a02cb call p_g24_dg_config_ch_once ,blank 
+02bc 6800c8de fetch 1 ,mem_24g_dg_last_ch 
+02bd 6000c840 store 1 ,mem_24g_ch 
+02be 6808c8f5 fetcht 1 ,mem_rssi_noise_dg_index 
+02bf da200e9e arg mem_rssi_noise_dg_buffer ,rega 
+02c0 204003fc call p_rssi_store 
+02c1 6008c8f5 storet 1 ,mem_rssi_noise_dg_index 
+02c2 20400403 call p_rssi_average 
+02c3 6008c8f2 storet 1 ,mem_rssi_noise_dg_avg 
+02c4 18467c50 sub temp ,rssi_thresh_noise ,null 
+02c5 24610000 nrtn positive 
+02c6 6808c8df fetcht 1 ,mem_24g_dg_ch_number 
+02c7 2040042c call p_g24_ch_map_size 
+02c8 6008c8df storet 1 ,mem_24g_dg_ch_number 
+02c9 6000c8de store 1 ,mem_24g_dg_last_ch 
+02ca 20600000 rtn 
 
 p_g24_dg_config_ch_once:
-0280 7048e001 jam 1 ,mem_24g_dg_config_ch_once 
-0281 6800c8de fetch 1 ,mem_24g_dg_last_ch 
-0282 6000c840 store 1 ,mem_24g_ch 
-0283 20600000 rtn 
+02cb 7048e001 jam 1 ,mem_24g_dg_config_ch_once 
+02cc 6800c8de fetch 1 ,mem_24g_dg_last_ch 
+02cd 6000c840 store 1 ,mem_24g_ch 
+02ce 20600000 rtn 
 
 p_g24_read_len_pid_crc:
-0284 6800c7b1 fetch 1 ,mem_24g_rxbuf + 1 
-0285 1fe97e00 rshift3 pdata ,pdata 
-0286 6000c834 store 1 ,mem_24g_rxdata_length 
-0287 1fe0fe01 increase 1 ,pdata 
-0288 d8c047b1 arg mem_24g_rxbuf + 1 ,contr 
-0289 98c08c00 iadd contr ,contr 
-028a e8c18000 ifetch 3 ,contr 
-028b 6001c873 store 3 ,mem_24g_sta_crc 
-028c 6800c7b1 fetch 1 ,mem_24g_rxbuf + 1 
-028d 1fe37e00 rshift pdata ,pdata 
-028e 1fe17e03 and pdata ,0x03 ,pdata 
-028f 6000c879 store 1 ,mem_24g_sta_pid 
-0290 20600000 rtn 
+02cf 6800c7b1 fetch 1 ,mem_24g_rxbuf + 1 
+02d0 1fe97e00 rshift3 pdata ,pdata 
+02d1 6000c834 store 1 ,mem_24g_rxdata_length 
+02d2 1fe0fe01 increase 1 ,pdata 
+02d3 d8c047b1 arg mem_24g_rxbuf + 1 ,contr 
+02d4 98c08c00 iadd contr ,contr 
+02d5 e8c18000 ifetch 3 ,contr 
+02d6 6001c873 store 3 ,mem_24g_sta_crc 
+02d7 6800c7b1 fetch 1 ,mem_24g_rxbuf + 1 
+02d8 1fe37e00 rshift pdata ,pdata 
+02d9 1fe17e03 and pdata ,0x03 ,pdata 
+02da 6000c879 store 1 ,mem_24g_sta_pid 
+02db 20600000 rtn 
 
 p_g24_transmit_ack:
-0291 6800c7b0 fetch 1 ,mem_24g_rxbuf 
-0292 6000c837 store 1 ,mem_24g_data_type 
-0293 20400284 call p_g24_read_len_pid_crc 
-0294 6800c7b1 fetch 1 ,mem_24g_rxbuf + 1 
-0295 2feffe00 isolate1 bit_ack_24g ,pdata 
-0296 2020829a branch p_g24tx_no_ack ,true 
+02dc 6800c7b0 fetch 1 ,mem_24g_rxbuf 
+02dd 6000c837 store 1 ,mem_24g_data_type 
+02de 204002cf call p_g24_read_len_pid_crc 
+02df 6800c7b1 fetch 1 ,mem_24g_rxbuf + 1 
+02e0 2feffe00 isolate1 bit_ack_24g ,pdata 
+02e1 202082e5 branch p_g24tx_no_ack ,true 
 
 p_g24tx_with_ack:
-0297 2040029b call p_g24_ackpayload_prep 
-0298 204003c5 call p_g24_transmit_prep 
-0299 2040043b call p_g24_transmit 
+02e2 204002e6 call p_g24_ackpayload_prep 
+02e3 20400416 call p_g24_transmit_prep 
+02e4 2040048c call p_g24_transmit 
 
 p_g24tx_no_ack:
-029a 20200433 branch p_g24_end_of_packet 
+02e5 20200484 branch p_g24_end_of_packet 
 
 p_g24_ackpayload_prep:
-029b 70483600 jam 0 ,mem_24g_datalen 
-029c 6800c8b8 fetch 1 ,mem_24g_ackpayload_enable 
-029d 207a0000 rtn blank 
-029e c00082a2 beq bind_ackpayload ,p_g24_bind_ackpayload_prep 
-029f c00102a8 beq user_ackpayload ,p_g24_user_ackpayload_prep 
-02a0 c00182b2 beq kb_led_ackpayload ,p_g24_kb_led_ackpayload_prep 
-02a1 20600000 rtn 
+02e6 70483600 jam 0 ,mem_24g_datalen 
+02e7 6800c8b8 fetch 1 ,mem_24g_ackpayload_enable 
+02e8 207a0000 rtn blank 
+02e9 c00082ed beq bind_ackpayload ,p_g24_bind_ackpayload_prep 
+02ea c00102f5 beq user_ackpayload ,p_g24_user_ackpayload_prep 
+02eb c00182ff beq kb_led_ackpayload ,p_g24_kb_led_ackpayload_prep 
+02ec 20600000 rtn 
 
 p_g24_bind_ackpayload_prep:
-02a2 7048b801 jam 1 ,mem_24g_ackpayload_enable 
-02a3 70483608 jam 0x08 ,mem_24g_datalen 
-02a4 df200008 arg 0x08 ,loopcnt 
-02a5 d8c048a8 arg mem_24g_bind_payload ,contr 
-02a6 d8a047d2 arg mem_24g_txbuf ,contw 
-02a7 20207f01 branch memcpy 
+02ed 7048b801 jam 1 ,mem_24g_ackpayload_enable 
+02ee 20400106 call p_g24_dongle_binding_device_check 
+02ef 24778000 nrtn user3 
+02f0 70483608 jam 0x08 ,mem_24g_datalen 
+02f1 df200008 arg 0x08 ,loopcnt 
+02f2 d8c048a8 arg mem_24g_bind_payload ,contr 
+02f3 d8a047d2 arg mem_24g_txbuf ,contw 
+02f4 20207f01 branch memcpy 
 
 p_g24_user_ackpayload_prep:
-02a8 2040015e call p_g24_queue_read_point 
-02a9 24740000 nrtn user 
-02aa 7048361f jam 0x1f ,mem_24g_datalen 
-02ab df20001f arg 0x1f ,loopcnt 
-02ac 1fe20c00 copy pdata ,contr 
-02ad d8a047d2 arg mem_24g_txbuf ,contw 
-02ae 20407f01 call memcpy 
-02af 680147d5 fetch 2 ,mem_24g_txbuf + 3 
-02b0 600148eb store 2 ,mem_24g_ota_sta_pid 
-02b1 20600000 rtn 
+02f5 2040017c call p_g24_queue_read_point 
+02f6 24740000 nrtn user 
+02f7 7048361f jam 0x1f ,mem_24g_datalen 
+02f8 df20001f arg 0x1f ,loopcnt 
+02f9 1fe20c00 copy pdata ,contr 
+02fa d8a047d2 arg mem_24g_txbuf ,contw 
+02fb 20407f01 call memcpy 
+02fc 680147d5 fetch 2 ,mem_24g_txbuf + 3 
+02fd 600148eb store 2 ,mem_24g_ota_sta_pid 
+02fe 20600000 rtn 
 
 p_g24_kb_led_ackpayload_prep:
-02b2 6800c7b2 fetch 1 ,mem_24g_rxbuf + 2 
-02b3 c00082a2 beq 0x01 ,p_g24_bind_ackpayload_prep 
-02b4 c07f82a2 beq 0xff ,p_g24_bind_ackpayload_prep 
-02b5 700d4300 jam 0 ,mem_usb_tx_win_enable 
-02b6 70483601 jam 0x01 ,mem_24g_datalen 
-02b7 df200001 arg 0x01 ,loopcnt 
-02b8 d8c04978 arg mem_24g_led_status ,contr 
-02b9 d8a047d2 arg mem_24g_txbuf ,contw 
-02ba 20207f01 branch memcpy 
+02ff 6800c7b2 fetch 1 ,mem_24g_rxbuf + 2 
+0300 c00082ed beq 0x01 ,p_g24_bind_ackpayload_prep 
+0301 c07f82ed beq 0xff ,p_g24_bind_ackpayload_prep 
+0302 700d4300 jam 0 ,mem_usb_tx_win_enable 
+0303 70483601 jam 0x01 ,mem_24g_datalen 
+0304 df200001 arg 0x01 ,loopcnt 
+0305 d8c04978 arg mem_24g_led_status ,contr 
+0306 d8a047d2 arg mem_24g_txbuf ,contw 
+0307 20207f01 branch memcpy 
 
 p_g24_receive_packet_start:
-02bb 204001f2 call p_g24_receive_transmit_ack 
-02bc 24378102 nbranch p_g24_rx_interrupt_clear ,user3 
-02bd 202002be branch p_g24_receive_packet_parse 
+0308 2040023b call p_g24_receive_transmit_ack 
+0309 24378103 nbranch p_g24_rx_interrupt_clear ,user3 
+030a 2020030b branch p_g24_receive_packet_parse 
 
 p_g24_receive_packet_parse:
-02be 204002cf call p_g24_receive_packet_parse_pid_crc 
-02bf 24340102 nbranch p_g24_rx_interrupt_clear ,user 
-02c0 6800c834 fetch 1 ,mem_24g_rxdata_length 
-02c1 203a0102 branch p_g24_rx_interrupt_clear ,blank 
-02c2 1fe0fe02 increase 2 ,pdata 
-02c3 98007200 iforce loopcnt 
-02c4 d8c047b0 arg mem_24g_rxbuf ,contr 
-02c5 d8a0487d arg mem_24g_rxdata_temp ,contw 
-02c6 20407f01 call memcpy 
-02c7 7048b700 jam 0 ,mem_24g_mode_switch 
-02c8 6800c8ba fetch 1 ,mem_24g_pair_mode 
-02c9 205a01e3 call p_g24_enable_nodata_timer ,blank 
-02ca 6800c87f fetch 1 ,mem_24g_rxdata_temp + 2 
-02cb c00082dd beq 0x01 ,p_g24_data_type1 
-02cc c00102fc beq 0x02 ,p_g24_data_type2 
-02cd c07f8350 beq 0xff ,p_g24_data_attemp 
-02ce 20200102 branch p_g24_rx_interrupt_clear 
+030b 2040031c call p_g24_receive_packet_parse_pid_crc 
+030c 24340103 nbranch p_g24_rx_interrupt_clear ,user 
+030d 6800c834 fetch 1 ,mem_24g_rxdata_length 
+030e 203a0103 branch p_g24_rx_interrupt_clear ,blank 
+030f 1fe0fe02 increase 2 ,pdata 
+0310 98007200 iforce loopcnt 
+0311 d8c047b0 arg mem_24g_rxbuf ,contr 
+0312 d8a0487d arg mem_24g_rxdata_temp ,contw 
+0313 20407f01 call memcpy 
+0314 7048b700 jam 0 ,mem_24g_mode_switch 
+0315 6800c8ba fetch 1 ,mem_24g_pair_mode 
+0316 205a022b call p_g24_enable_nodata_timer ,blank 
+0317 6800c87f fetch 1 ,mem_24g_rxdata_temp + 2 
+0318 c000832a beq 0x01 ,p_g24_data_type1 
+0319 c001034a beq 0x02 ,p_g24_data_type2 
+031a c07f839f beq 0xff ,p_g24_data_attemp 
+031b 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_receive_packet_parse_pid_crc:
-02cf 20407fe9 call disable_user 
-02d0 6800c879 fetch 1 ,mem_24g_sta_pid 
-02d1 6808c87a fetcht 1 ,mem_24g_last_pid 
-02d2 98467c00 isub temp ,null 
-02d3 2442ffe7 ncall enable_user ,zero 
-02d4 6800c879 fetch 1 ,mem_24g_sta_pid 
-02d5 6000c87a store 1 ,mem_24g_last_pid 
-02d6 6801c873 fetch 3 ,mem_24g_sta_crc 
-02d7 6809c876 fetcht 3 ,mem_24g_last_crc 
-02d8 98467c00 isub temp ,null 
-02d9 2442ffe7 ncall enable_user ,zero 
-02da 6801c873 fetch 3 ,mem_24g_sta_crc 
-02db 6001c876 store 3 ,mem_24g_last_crc 
-02dc 20600000 rtn 
+031c 20407fe9 call disable_user 
+031d 6800c879 fetch 1 ,mem_24g_sta_pid 
+031e 6808c87a fetcht 1 ,mem_24g_last_pid 
+031f 98467c00 isub temp ,null 
+0320 2442ffe7 ncall enable_user ,zero 
+0321 6800c879 fetch 1 ,mem_24g_sta_pid 
+0322 6000c87a store 1 ,mem_24g_last_pid 
+0323 6801c873 fetch 3 ,mem_24g_sta_crc 
+0324 6809c876 fetcht 3 ,mem_24g_last_crc 
+0325 98467c00 isub temp ,null 
+0326 2442ffe7 ncall enable_user ,zero 
+0327 6801c873 fetch 3 ,mem_24g_sta_crc 
+0328 6001c876 store 3 ,mem_24g_last_crc 
+0329 20600000 rtn 
 
 p_g24_data_type1:
-02dd 204000c4 call p_g24_ch_timer_reinit 
-02de 6800c8b0 fetch 1 ,mem_24g_abort_packet 
-02df 6808c87d fetcht 1 ,mem_24g_rxdata_temp 
-02e0 284ffe03 isolate1 bit_abort ,temp 
-02e1 7920fe00 setflag true ,0 ,pdata 
-02e2 6000c8b0 store 1 ,mem_24g_abort_packet 
-02e3 c0008358 beq 1 ,p_g24_data_attemp_mouse_abort 
-02e4 6800c8b9 fetch 1 ,mem_24g_hop_packet 
-02e5 6808c87d fetcht 1 ,mem_24g_rxdata_temp 
-02e6 284ffe04 isolate1 bit_hop ,temp 
-02e7 7920fe00 setflag true ,0 ,pdata 
-02e8 6000c8b9 store 1 ,mem_24g_hop_packet 
-02e9 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
-02ea c067835c beq cmd_ota ,p_g24_ota_process 
-02eb 58000001 setarg ms_report_id 
-02ec 60008d54 store 1 ,mem_usb_mouse_data 
-02ed 6803c880 fetch 7 ,mem_24g_rxdata_temp + 3 
-02ee e0a38000 istore 7 ,contw 
-02ef 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
-02f0 245a02f4 ncall p_g24_ms_enable_blank_data_forcibly ,blank 
-02f1 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
-02f2 205a02f8 call p_g24_ms_disable_blank_data_forcibly ,blank 
-02f3 202031b8 branch g24_data_type1_usbtx_enable 
+032a 20400115 call p_g24_dongle_binding_mouse_living 
+032b 204000c5 call p_g24_ch_timer_reinit 
+032c 6800c8b0 fetch 1 ,mem_24g_abort_packet 
+032d 6808c87d fetcht 1 ,mem_24g_rxdata_temp 
+032e 284ffe03 isolate1 bit_abort ,temp 
+032f 7920fe00 setflag true ,0 ,pdata 
+0330 6000c8b0 store 1 ,mem_24g_abort_packet 
+0331 c00083a9 beq 1 ,p_g24_data_attemp_mouse_abort 
+0332 6800c8b9 fetch 1 ,mem_24g_hop_packet 
+0333 6808c87d fetcht 1 ,mem_24g_rxdata_temp 
+0334 284ffe04 isolate1 bit_hop ,temp 
+0335 7920fe00 setflag true ,0 ,pdata 
+0336 6000c8b9 store 1 ,mem_24g_hop_packet 
+0337 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+0338 c06783ad beq cmd_ota ,p_g24_ota_process 
+0339 58000001 setarg ms_report_id 
+033a 60008d54 store 1 ,mem_usb_mouse_data 
+033b 6803c880 fetch 7 ,mem_24g_rxdata_temp + 3 
+033c e0a38000 istore 7 ,contw 
+033d 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+033e 245a0342 ncall p_g24_ms_enable_blank_data_forcibly ,blank 
+033f 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+0340 205a0346 call p_g24_ms_disable_blank_data_forcibly ,blank 
+0341 202031b8 branch g24_data_type1_usbtx_enable 
 
 p_g24_ms_enable_blank_data_forcibly:
-02f4 7048d501 jam 1 ,mem_24g_ms_blank_data_enable 
-02f5 58000180 setarg timer_new_ms_blank_delay 
-02f6 d8e0000b arg timer_new_ms_blank ,queue 
-02f7 20207f08 branch timer_init 
+0342 7048d501 jam 1 ,mem_24g_ms_blank_data_enable 
+0343 58000180 setarg timer_new_ms_blank_delay 
+0344 d8e0000b arg timer_new_ms_blank ,queue 
+0345 20207f08 branch timer_init 
 
 p_g24_ms_disable_blank_data_forcibly:
-02f8 7048d500 jam 0 ,mem_24g_ms_blank_data_enable 
-02f9 58000000 setarg 0 
-02fa d8e0000b arg timer_new_ms_blank ,queue 
-02fb 20207f08 branch timer_init 
+0346 7048d500 jam 0 ,mem_24g_ms_blank_data_enable 
+0347 58000000 setarg 0 
+0348 d8e0000b arg timer_new_ms_blank ,queue 
+0349 20207f08 branch timer_init 
 
 p_g24_data_type2:
-02fc 6808c87d fetcht 1 ,mem_24g_rxdata_temp 
-02fd 284ffe03 isolate1 bit_abort ,temp 
-02fe 2020835a branch p_g24_data_attemp_kbd_abort ,true 
-02ff 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
-0300 c0000304 beq 0 ,p_g24_data_type2_data1 
-0301 c0010339 beq 2 ,p_g24_data_type2_data3 
-0302 c0018320 beq 3 ,p_g24_data_type2_data2 
-0303 20200102 branch p_g24_rx_interrupt_clear 
+034a 2040011b call p_g24_dongle_binding_keyboard_living 
+034b 6808c87d fetcht 1 ,mem_24g_rxdata_temp 
+034c 284ffe03 isolate1 bit_abort ,temp 
+034d 202083ab branch p_g24_data_attemp_kbd_abort ,true 
+034e 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+034f c0000353 beq 0 ,p_g24_data_type2_data1 
+0350 c0010388 beq 2 ,p_g24_data_type2_data3 
+0351 c001836f beq 3 ,p_g24_data_type2_data2 
+0352 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_data_type2_data1:
-0304 6800c882 fetch 1 ,mem_24g_rxdata_temp + 5 
-0305 6000c8b8 store 1 ,mem_24g_ackpayload_enable 
-0306 70488200 jam 0 ,mem_24g_rxdata_temp + 5 
-0307 d8a00d64 arg mem_usb_kb_data ,contw 
-0308 20400315 call p_g24_data_type2_copy_data1 
-0309 68040d64 fetch 8 ,mem_usb_kb_data 
-030a 245a0318 ncall p_g24_kb_enable_blank_data_forcibly ,blank 
-030b 68040d64 fetch 8 ,mem_usb_kb_data 
-030c 205a031c call p_g24_kb_disable_blank_data_forcibly ,blank 
-030d 68040d64 fetch 8 ,mem_usb_kb_data 
-030e 600448bd store 8 ,mem_24g_kb_data_sta_data 
-030f 680c48c5 fetcht 8 ,mem_24g_kb_data_last_data 
-0310 98467c00 isub temp ,null 
-0311 2442b1ed ncall g24_kb_data_into_ep1_fifo ,zero 
-0312 680448bd fetch 8 ,mem_24g_kb_data_sta_data 
-0313 600448c5 store 8 ,mem_24g_kb_data_last_data 
-0314 20200102 branch p_g24_rx_interrupt_clear 
+0353 6800c882 fetch 1 ,mem_24g_rxdata_temp + 5 
+0354 6000c8b8 store 1 ,mem_24g_ackpayload_enable 
+0355 70488200 jam 0 ,mem_24g_rxdata_temp + 5 
+0356 d8a00d64 arg mem_usb_kb_data ,contw 
+0357 20400364 call p_g24_data_type2_copy_data1 
+0358 68040d64 fetch 8 ,mem_usb_kb_data 
+0359 245a0367 ncall p_g24_kb_enable_blank_data_forcibly ,blank 
+035a 68040d64 fetch 8 ,mem_usb_kb_data 
+035b 205a036b call p_g24_kb_disable_blank_data_forcibly ,blank 
+035c 68040d64 fetch 8 ,mem_usb_kb_data 
+035d 600448bd store 8 ,mem_24g_kb_data_sta_data 
+035e 680c48c5 fetcht 8 ,mem_24g_kb_data_last_data 
+035f 98467c00 isub temp ,null 
+0360 2442b1ed ncall g24_kb_data_into_ep1_fifo ,zero 
+0361 680448bd fetch 8 ,mem_24g_kb_data_sta_data 
+0362 600448c5 store 8 ,mem_24g_kb_data_last_data 
+0363 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_data_type2_copy_data1:
-0315 d8c04881 arg mem_24g_rxdata_temp + 4 ,contr 
-0316 df200008 arg 8 ,loopcnt 
-0317 20207f01 branch memcpy 
+0364 d8c04881 arg mem_24g_rxdata_temp + 4 ,contr 
+0365 df200008 arg 8 ,loopcnt 
+0366 20207f01 branch memcpy 
 
 p_g24_kb_enable_blank_data_forcibly:
-0318 7048d301 jam 1 ,mem_24g_kb_blank_data_enable 
-0319 58000180 setarg timer_new_kb_blank_delay 
-031a d8e0000e arg timer_new_kb_blank ,queue 
-031b 20207f08 branch timer_init 
+0367 7048d301 jam 1 ,mem_24g_kb_blank_data_enable 
+0368 58000180 setarg timer_new_kb_blank_delay 
+0369 d8e0000e arg timer_new_kb_blank ,queue 
+036a 20207f08 branch timer_init 
 
 p_g24_kb_disable_blank_data_forcibly:
-031c 7048d300 jam 0 ,mem_24g_kb_blank_data_enable 
-031d 58000000 setarg 0 
-031e d8e0000e arg timer_new_kb_blank ,queue 
-031f 20207f08 branch timer_init 
+036b 7048d300 jam 0 ,mem_24g_kb_blank_data_enable 
+036c 58000000 setarg 0 
+036d d8e0000e arg timer_new_kb_blank ,queue 
+036e 20207f08 branch timer_init 
 
 p_g24_data_type2_data2:
-0320 d8a00d74 arg mem_usb_kb_multikey ,contw 
-0321 2040032e call p_g24_data_type2_copy_data2 
-0322 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
-0323 245a0331 ncall p_g24_kb_mul_enable_blank_data_forcibly ,blank 
-0324 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
-0325 205a0335 call p_g24_kb_mul_disable_blank_data_forcibly ,blank 
-0326 68018d74 fetch 3 ,mem_usb_kb_multikey 
-0327 6001c8cd store 3 ,mem_24g_kb_multikey_sta_data 
-0328 6809c8d0 fetcht 3 ,mem_24g_kb_multikey_last_data 
-0329 98467c00 isub temp ,null 
-032a 2442b207 ncall g24_kb_mul_data_into_ep2_fifo ,zero 
-032b 6801c8cd fetch 3 ,mem_24g_kb_multikey_sta_data 
-032c 6001c8d0 store 3 ,mem_24g_kb_multikey_last_data 
-032d 20200102 branch p_g24_rx_interrupt_clear 
+036f d8a00d74 arg mem_usb_kb_multikey ,contw 
+0370 2040037d call p_g24_data_type2_copy_data2 
+0371 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
+0372 245a0380 ncall p_g24_kb_mul_enable_blank_data_forcibly ,blank 
+0373 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
+0374 205a0384 call p_g24_kb_mul_disable_blank_data_forcibly ,blank 
+0375 68018d74 fetch 3 ,mem_usb_kb_multikey 
+0376 6001c8cd store 3 ,mem_24g_kb_multikey_sta_data 
+0377 6809c8d0 fetcht 3 ,mem_24g_kb_multikey_last_data 
+0378 98467c00 isub temp ,null 
+0379 2442b207 ncall g24_kb_mul_data_into_ep2_fifo ,zero 
+037a 6801c8cd fetch 3 ,mem_24g_kb_multikey_sta_data 
+037b 6001c8d0 store 3 ,mem_24g_kb_multikey_last_data 
+037c 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_data_type2_copy_data2:
-032e d8c04880 arg mem_24g_rxdata_temp + 3 ,contr 
-032f df200003 arg 3 ,loopcnt 
-0330 20207f01 branch memcpy 
+037d d8c04880 arg mem_24g_rxdata_temp + 3 ,contr 
+037e df200003 arg 3 ,loopcnt 
+037f 20207f01 branch memcpy 
 
 p_g24_kb_mul_enable_blank_data_forcibly:
-0331 7048d401 jam 1 ,mem_24g_kb_mul_blank_data_enable 
-0332 58000180 setarg timer_new_kb_mul_blank_delay 
-0333 d8e0000c arg timer_new_kb_mul_blank ,queue 
-0334 20207f08 branch timer_init 
+0380 7048d401 jam 1 ,mem_24g_kb_mul_blank_data_enable 
+0381 58000180 setarg timer_new_kb_mul_blank_delay 
+0382 d8e0000c arg timer_new_kb_mul_blank ,queue 
+0383 20207f08 branch timer_init 
 
 p_g24_kb_mul_disable_blank_data_forcibly:
-0335 7048d400 jam 0 ,mem_24g_kb_mul_blank_data_enable 
-0336 58000000 setarg 0 
-0337 d8e0000c arg timer_new_kb_mul_blank ,queue 
-0338 20207f08 branch timer_init 
+0384 7048d400 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+0385 58000000 setarg 0 
+0386 d8e0000c arg timer_new_kb_mul_blank ,queue 
+0387 20207f08 branch timer_init 
 
 p_g24_data_type2_data3:
-0339 d8a013bc arg mem_usb_kb_system ,contw 
-033a 20400343 call p_g24_data_type2_copy_data3 
-033b 680113bc fetch 2 ,mem_usb_kb_system 
-033c 600113cc store 2 ,mem_usb_kb_system_sta_data 
-033d 680913cf fetcht 2 ,mem_usb_kb_system_last_data 
-033e 98467c00 isub temp ,null 
-033f 2442834e ncall p_g24_kb_sys_data_into_ep2_fifo ,zero 
-0340 680113cc fetch 2 ,mem_usb_kb_system_sta_data 
-0341 600113cf store 2 ,mem_usb_kb_system_last_data 
-0342 20200102 branch p_g24_rx_interrupt_clear 
+0388 d8a013bc arg mem_usb_kb_system ,contw 
+0389 20400392 call p_g24_data_type2_copy_data3 
+038a 680113bc fetch 2 ,mem_usb_kb_system 
+038b 600113cc store 2 ,mem_usb_kb_system_sta_data 
+038c 680913cf fetcht 2 ,mem_usb_kb_system_last_data 
+038d 98467c00 isub temp ,null 
+038e 2442839d ncall p_g24_kb_sys_data_into_ep2_fifo ,zero 
+038f 680113cc fetch 2 ,mem_usb_kb_system_sta_data 
+0390 600113cf store 2 ,mem_usb_kb_system_last_data 
+0391 20200103 branch p_g24_rx_interrupt_clear 
 
 p_g24_data_type2_copy_data3:
-0343 d8c04880 arg mem_24g_rxdata_temp + 3 ,contr 
-0344 df200002 arg 2 ,loopcnt 
-0345 20207f01 branch memcpy 
+0392 d8c04880 arg mem_24g_rxdata_temp + 3 ,contr 
+0393 df200002 arg 2 ,loopcnt 
+0394 20207f01 branch memcpy 
 
 p_g24_kb_sys_enable_blank_data_forcibly:
-0346 7048d401 jam 1 ,mem_24g_kb_mul_blank_data_enable 
-0347 58000180 setarg timer_new_kb_mul_blank_delay 
-0348 d8e0000c arg timer_new_kb_mul_blank ,queue 
-0349 20207f08 branch timer_init 
+0395 7048d401 jam 1 ,mem_24g_kb_mul_blank_data_enable 
+0396 58000180 setarg timer_new_kb_mul_blank_delay 
+0397 d8e0000c arg timer_new_kb_mul_blank ,queue 
+0398 20207f08 branch timer_init 
 
 p_g24_kb_sys_disable_blank_data_forcibly:
-034a 7048d400 jam 0 ,mem_24g_kb_mul_blank_data_enable 
-034b 58000000 setarg 0 
-034c d8e0000c arg timer_new_kb_mul_blank ,queue 
-034d 20207f08 branch timer_init 
+0399 7048d400 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+039a 58000000 setarg 0 
+039b d8e0000c arg timer_new_kb_mul_blank ,queue 
+039c 20207f08 branch timer_init 
 
 p_g24_kb_sys_data_into_ep2_fifo:
-034e 700d5222 jam usb_ep2_systemkey ,mem_usb_ep2_data 
-034f 202031b9 branch g24_data_type1_usbtx_enable_ep2 
+039d 700d5222 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+039e 202031b9 branch g24_data_type1_usbtx_enable_ep2 
 
 p_g24_data_attemp:
-0350 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
-0351 c0008354 beq datatype_mouse ,p_g24_data_attemp_mouse 
-0352 c0010356 beq datatype_keyboard ,p_g24_data_attemp_kbd 
-0353 20600000 rtn 
+039f 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+03a0 c00083a3 beq datatype_mouse ,p_g24_data_attemp_mouse 
+03a1 c00103a6 beq datatype_keyboard ,p_g24_data_attemp_kbd 
+03a2 20600000 rtn 
 
 p_g24_data_attemp_mouse:
-0354 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
-0355 20200141 branch p_g24_store_mouse_addr 
+03a3 20400115 call p_g24_dongle_binding_mouse_living 
+03a4 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
+03a5 2020015f branch p_g24_store_mouse_addr 
 
 p_g24_data_attemp_kbd:
-0356 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
-0357 20200144 branch p_g24_store_kbd_addr 
+03a6 2040011b call p_g24_dongle_binding_keyboard_living 
+03a7 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
+03a8 20200162 branch p_g24_store_kbd_addr 
 
 p_g24_data_attemp_mouse_abort:
-0358 68024887 fetch 4 ,mem_24g_rxdata_temp + 10 
-0359 20200141 branch p_g24_store_mouse_addr 
+03a9 68024887 fetch 4 ,mem_24g_rxdata_temp + 10 
+03aa 2020015f branch p_g24_store_mouse_addr 
 
 p_g24_data_attemp_kbd_abort:
-035a 68024887 fetch 4 ,mem_24g_rxdata_temp + 10 
-035b 20200144 branch p_g24_store_kbd_addr 
+03ab 68024887 fetch 4 ,mem_24g_rxdata_temp + 10 
+03ac 20200162 branch p_g24_store_kbd_addr 
 
 p_g24_ota_process:
-035c 68014882 fetch 2 ,mem_24g_rxdata_temp + 5 
-035d 680948eb fetcht 2 ,mem_24g_ota_sta_pid 
-035e 98467c00 isub temp ,null 
-035f 20228361 branch p_g24_ota_next_pac ,zero 
-0360 20600000 rtn 
+03ad 68014882 fetch 2 ,mem_24g_rxdata_temp + 5 
+03ae 680948eb fetcht 2 ,mem_24g_ota_sta_pid 
+03af 98467c00 isub temp ,null 
+03b0 202283b2 branch p_g24_ota_next_pac ,zero 
+03b1 20600000 rtn 
 
 p_g24_ota_next_pac:
-0361 6800c881 fetch 1 ,mem_24g_rxdata_temp + 4 
-0362 c061036e beq cmd_ota_exit ,p_g24_ota_exit_process 
-0363 6800c900 fetch 1 ,mem_queue_ele_num 
-0364 207a0000 rtn blank 
-0365 58004901 setarg mem_queue_read 
-0366 20400155 call p_g24_queue_increase 
-0367 6800c900 fetch 1 ,mem_queue_ele_num 
-0368 1fe0ffff increase -1 ,pdata 
-0369 6000c900 store 1 ,mem_queue_ele_num 
-036a 6800c881 fetch 1 ,mem_24g_rxdata_temp + 4 
-036b c0608196 beq cmd_ota_data ,p_user_defined_queue_buff_free 
-036c c061036e beq cmd_ota_exit ,p_g24_ota_exit_process 
-036d 20600000 rtn 
+03b2 6800c881 fetch 1 ,mem_24g_rxdata_temp + 4 
+03b3 c06103bf beq cmd_ota_exit ,p_g24_ota_exit_process 
+03b4 6800c900 fetch 1 ,mem_queue_ele_num 
+03b5 207a0000 rtn blank 
+03b6 58004901 setarg mem_queue_read 
+03b7 20400173 call p_g24_queue_increase 
+03b8 6800c900 fetch 1 ,mem_queue_ele_num 
+03b9 1fe0ffff increase -1 ,pdata 
+03ba 6000c900 store 1 ,mem_queue_ele_num 
+03bb 6800c881 fetch 1 ,mem_24g_rxdata_temp + 4 
+03bc c06081b4 beq cmd_ota_data ,p_user_defined_queue_buff_free 
+03bd c06103bf beq cmd_ota_exit ,p_g24_ota_exit_process 
+03be 20600000 rtn 
 
 p_g24_ota_exit_process:
-036e 58000000 setarg 0 
-036f 600148eb store 2 ,mem_24g_ota_sta_pid 
-0370 6000c8b8 store 1 ,mem_24g_ackpayload_enable 
-0371 20400146 call p_g24_queue_init 
-0372 6800c884 fetch 1 ,mem_24g_rxdata_temp + 7 
-0373 c02a8376 beq ota_sta_success ,p_g24_ota_exit_success 
-0374 c0550378 beq ota_sta_fail ,p_g24_ota_exit_fail 
-0375 20600000 rtn 
+03bf 58000000 setarg 0 
+03c0 600148eb store 2 ,mem_24g_ota_sta_pid 
+03c1 6000c8b8 store 1 ,mem_24g_ackpayload_enable 
+03c2 20400164 call p_g24_queue_init 
+03c3 6800c884 fetch 1 ,mem_24g_rxdata_temp + 7 
+03c4 c02a83c7 beq ota_sta_success ,p_g24_ota_exit_success 
+03c5 c05503c9 beq ota_sta_fail ,p_g24_ota_exit_fail 
+03c6 20600000 rtn 
 
 p_g24_ota_exit_success:
-0376 700cf702 jam 2 ,mem_usb0_get_report_data + 1 
-0377 2020303f branch usb0_data_ready_report_set1 
+03c7 700cf702 jam 2 ,mem_usb0_get_report_data + 1 
+03c8 2020303f branch usb0_data_ready_report_set1 
 
 p_g24_ota_exit_fail:
-0378 700cf703 jam 3 ,mem_usb0_get_report_data + 1 
-0379 2020303f branch usb0_data_ready_report_set1 
+03c9 700cf703 jam 3 ,mem_usb0_get_report_data + 1 
+03ca 2020303f branch usb0_data_ready_report_set1 
 
 p_set_freq_tx:
-037a 60088017 storet 1 ,mem_last_freq 
-037b 1840a200 add temp ,0 ,rega 
-037c 20402981 call rf_write_freq 
-037d 58000500 setarg param_pll_setup 
-037e 20402a8f call sleep 
+03cb 60088017 storet 1 ,mem_last_freq 
+03cc 1840a200 add temp ,0 ,rega 
+03cd 20402981 call rf_write_freq 
+03ce 58000500 setarg param_pll_setup 
+03cf 20402a8f call sleep 
 
 p_rf_tx_enable:
-037f 70890601 jam 0x1 ,rfen_adc 
-0380 7089003c jam 0x3c ,rfen_rx 
-0381 708901e0 jam 0xe0 ,rfen_tx 
-0382 2000000a nop 10 
-0383 70890201 jam 0x01 ,rfen_mdm 
-0384 7089023d jam 0x3d ,rfen_mdm 
-0385 2000000a nop 10 
-0386 708903b7 jam 0xb7 ,rfen_sn 
-0387 2000000a nop 10 
-0388 7089027d jam 0x7d ,rfen_mdm 
-0389 6800c1de fetch 1 ,mem_tx_power 
-038a c0020393 beq tx_power_f5db ,p_set_tx_power_f5db 
-038b 2020038c branch p_set_tx_power_5db 
+03d0 70890601 jam 0x1 ,rfen_adc 
+03d1 7089003c jam 0x3c ,rfen_rx 
+03d2 708901e0 jam 0xe0 ,rfen_tx 
+03d3 2000000a nop 10 
+03d4 70890201 jam 0x01 ,rfen_mdm 
+03d5 7089023d jam 0x3d ,rfen_mdm 
+03d6 2000000a nop 10 
+03d7 708903b7 jam 0xb7 ,rfen_sn 
+03d8 2000000a nop 10 
+03d9 7089027d jam 0x7d ,rfen_mdm 
+03da 6800c1de fetch 1 ,mem_tx_power 
+03db c00203e4 beq tx_power_f5db ,p_set_tx_power_f5db 
+03dc 202003dd branch p_set_tx_power_5db 
 
 p_set_tx_power_5db:
-038c 70894bba jam 0xba ,0x894b 
-038d 708955d0 jam 0xd0 ,0x8955 
-038e 708956e0 jam 0xe0 ,0x8956 
-038f 70895788 jam 0x88 ,0x8957 
-0390 7089583c jam 0x3c ,0x8958 
-0391 70895910 jam 0x10 ,0x8959 
-0392 20202953 branch set_tx_power_5db 
+03dd 70894bba jam 0xba ,0x894b 
+03de 708955d0 jam 0xd0 ,0x8955 
+03df 708956e0 jam 0xe0 ,0x8956 
+03e0 70895788 jam 0x88 ,0x8957 
+03e1 7089583c jam 0x3c ,0x8958 
+03e2 70895910 jam 0x10 ,0x8959 
+03e3 20202953 branch set_tx_power_5db 
 
 p_set_tx_power_f5db:
-0393 70894bba jam 0xba ,0x894b 
-0394 708955d0 jam 0xd0 ,0x8955 
-0395 708956c0 jam 0xc0 ,0x8956 
-0396 70895788 jam 0x88 ,0x8957 
-0397 7089586c jam 0x6c ,0x8958 
-0398 70895910 jam 0x10 ,0x8959 
-0399 2020295b branch set_tx_power_f5db 
+03e4 70894bba jam 0xba ,0x894b 
+03e5 708955d0 jam 0xd0 ,0x8955 
+03e6 708956c0 jam 0xc0 ,0x8956 
+03e7 70895788 jam 0x88 ,0x8957 
+03e8 7089586c jam 0x6c ,0x8958 
+03e9 70895910 jam 0x10 ,0x8959 
+03ea 2020295b branch set_tx_power_f5db 
 
 p_soft_reset:
-039a 20800000 clear_stack 
-039b 68108043 hfetch 1 ,core_config 
-039c 79207e03 set1 watchdog_bit ,pdata 
-039d 60108043 hstore 1 ,core_config 
-039e 2040640d call spi_ncs_gpio_init 
-039f 70895b86 jam 0x86 ,0x895b 
-03a0 70895ca0 jam 0xa0 ,0x895c 
-03a1 20202004 branch soft_reset + 3 
+03eb 20800000 clear_stack 
+03ec 68108043 hfetch 1 ,core_config 
+03ed 79207e03 set1 watchdog_bit ,pdata 
+03ee 60108043 hstore 1 ,core_config 
+03ef 2040640d call spi_ncs_gpio_init 
+03f0 70895b86 jam 0x86 ,0x895b 
+03f1 70895ca0 jam 0xa0 ,0x895c 
+03f2 20202004 branch soft_reset + 3 
 
 p_shutdown_radio:
-03a2 18002a08 force 8 ,radio_ctrl 
-03a3 202028fa branch shutdown_radio + 1 
+03f3 18002a08 force 8 ,radio_ctrl 
+03f4 202028fa branch shutdown_radio + 1 
 
 p_rssi_noise:
-03a4 204029bb call save_rssi 
-03a5 207a0000 rtn blank 
-03a6 6808c8f0 fetcht 1 ,mem_rssi_noise_index 
-03a7 da200d9e arg mem_rssi_noise_buffer ,rega 
-03a8 204003ab call p_rssi_store 
-03a9 6008c8f0 storet 1 ,mem_rssi_noise_index 
-03aa 20600000 rtn 
+03f5 204029bb call save_rssi 
+03f6 207a0000 rtn blank 
+03f7 6808c8f0 fetcht 1 ,mem_rssi_noise_index 
+03f8 da200d9e arg mem_rssi_noise_buffer ,rega 
+03f9 204003fc call p_rssi_store 
+03fa 6008c8f0 storet 1 ,mem_rssi_noise_index 
+03fb 20600000 rtn 
 
 p_rssi_store:
-03ab 1a227e00 copy rega ,pdata 
-03ac 98408a00 iadd temp ,contw 
-03ad 68008018 fetch 1 ,mem_rssi 
-03ae e0a08000 istore 1 ,contw 
-03af 18408401 increase 1 ,temp 
-03b0 184104ff and_into rssi_buf_len_noise ,temp 
-03b1 20600000 rtn 
+03fc 1a227e00 copy rega ,pdata 
+03fd 98408a00 iadd temp ,contw 
+03fe 68008018 fetch 1 ,mem_rssi 
+03ff e0a08000 istore 1 ,contw 
+0400 18408401 increase 1 ,temp 
+0401 184104ff and_into rssi_buf_len_noise ,temp 
+0402 20600000 rtn 
 
 p_rssi_average:
-03b2 d8400000 arg 0 ,temp 
-03b3 df200100 arg rssi_buf_len_noise + 1 ,loopcnt 
-03b4 1a220c00 copy rega ,contr 
-03b5 20202e64 branch rssi_average_loop 
-03b6 20600000 rtn 
+0403 d8400000 arg 0 ,temp 
+0404 df200100 arg rssi_buf_len_noise + 1 ,loopcnt 
+0405 1a220c00 copy rega ,contr 
+0406 20202e64 branch rssi_average_loop 
+0407 20600000 rtn 
 
 p_g24_update_addr_and_synccrc8:
-03b7 6002485e store 4 ,mem_24g_addr 
+0408 6002485e store 4 ,mem_24g_addr 
 
 p_g24_syncword_crc8:
-03b8 da200000 arg 0 ,rega 
-03b9 df200004 arg 4 ,loopcnt 
-03ba d8c0485e arg mem_24g_addr ,contr 
+0409 da200000 arg 0 ,rega 
+040a df200004 arg 4 ,loopcnt 
+040b d8c0485e arg mem_24g_addr ,contr 
 
 p_g24_syncword_crc8_loop:
-03bb e8c08000 ifetch 1 ,contr 
-03bc 9a20a200 iadd rega ,rega 
-03bd c20003bb loop p_g24_syncword_crc8_loop 
-03be 1a227e00 copy rega ,pdata 
-03bf 600148e7 store 2 ,mem_24g_syncword 
-03c0 6800c8e7 fetch 1 ,mem_24g_syncword 
-03c1 6808c8e8 fetcht 1 ,mem_24g_syncword + 1 
-03c2 9840fe00 iadd temp ,pdata 
-03c3 6000c8e9 store 1 ,mem_24g_syncword_crc8 
-03c4 20600000 rtn 
+040c e8c08000 ifetch 1 ,contr 
+040d 9a20a200 iadd rega ,rega 
+040e c200040c loop p_g24_syncword_crc8_loop 
+040f 1a227e00 copy rega ,pdata 
+0410 600148e7 store 2 ,mem_24g_syncword 
+0411 6800c8e7 fetch 1 ,mem_24g_syncword 
+0412 6808c8e8 fetcht 1 ,mem_24g_syncword + 1 
+0413 9840fe00 iadd temp ,pdata 
+0414 6000c8e9 store 1 ,mem_24g_syncword_crc8 
+0415 20600000 rtn 
 
 p_g24_transmit_prep:
-03c5 6800c836 fetch 1 ,mem_24g_datalen 
-03c6 1fe0fe02 increase 2 ,pdata 
-03c7 6000c838 store 1 ,mem_24g_txlen 
-03c8 6800c837 fetch 1 ,mem_24g_data_type 
-03c9 6000c7f2 store 1 ,mem_24g_txpayload 
-03ca 6800c836 fetch 1 ,mem_24g_datalen 
-03cb 1fe9fe00 lshift3 pdata ,pdata 
-03cc 6808c835 fetcht 1 ,mem_24g_pid 
-03cd 18410403 and temp ,0x03 ,temp 
-03ce 18438400 lshift temp ,temp 
-03cf 9841fe00 ior temp ,pdata 
-03d0 6808c872 fetcht 1 ,mem_24g_no_ack 
-03d1 9840fe00 iadd temp ,pdata 
-03d2 e0a08000 istore 1 ,contw 
-03d3 6800c836 fetch 1 ,mem_24g_datalen 
-03d4 98007200 iforce loopcnt 
-03d5 d8c047d2 arg mem_24g_txbuf ,contr 
-03d6 20207f01 branch memcpy 
+0416 6800c836 fetch 1 ,mem_24g_datalen 
+0417 1fe0fe02 increase 2 ,pdata 
+0418 6000c838 store 1 ,mem_24g_txlen 
+0419 6800c837 fetch 1 ,mem_24g_data_type 
+041a 6000c7f2 store 1 ,mem_24g_txpayload 
+041b 6800c836 fetch 1 ,mem_24g_datalen 
+041c 1fe9fe00 lshift3 pdata ,pdata 
+041d 6808c835 fetcht 1 ,mem_24g_pid 
+041e 18410403 and temp ,0x03 ,temp 
+041f 18438400 lshift temp ,temp 
+0420 9841fe00 ior temp ,pdata 
+0421 6808c872 fetcht 1 ,mem_24g_no_ack 
+0422 9840fe00 iadd temp ,pdata 
+0423 e0a08000 istore 1 ,contw 
+0424 6800c836 fetch 1 ,mem_24g_datalen 
+0425 98007200 iforce loopcnt 
+0426 d8c047d2 arg mem_24g_txbuf ,contr 
+0427 20207f01 branch memcpy 
 
 p_g24_ch:
-03d7 6808c841 fetcht 1 ,mem_24g_current_ch_number 
-03d8 204003db call p_g24_ch_map_size 
-03d9 6008c841 storet 1 ,mem_24g_current_ch_number 
-03da 20600000 rtn 
+0428 6808c841 fetcht 1 ,mem_24g_current_ch_number 
+0429 2040042c call p_g24_ch_map_size 
+042a 6008c841 storet 1 ,mem_24g_current_ch_number 
+042b 20600000 rtn 
 
 p_g24_ch_map_size:
-03db 204003df call p_g24_ch_calc 
-03dc 18408401 increase 1 ,temp 
-03dd 18410403 and_into 3 ,temp 
-03de 20600000 rtn 
+042c 20400430 call p_g24_ch_calc 
+042d 18408401 increase 1 ,temp 
+042e 18410403 and_into 3 ,temp 
+042f 20600000 rtn 
 
 p_g24_ch_calc:
-03df 6800c85e fetch 1 ,mem_24g_addr 
-03e0 1fe17e03 and_into 0x03 ,pdata 
-03e1 1fefa204 mul32 pdata ,4 ,rega 
-03e2 58004847 setarg mem_24g_ch_map1 
-03e3 9a20fe00 iadd rega ,pdata 
-03e4 98408c00 iadd temp ,contr 
-03e5 e8c08000 ifetch 1 ,contr 
-03e6 6000c840 store 1 ,mem_24g_ch 
-03e7 20600000 rtn 
+0430 6800c85e fetch 1 ,mem_24g_addr 
+0431 1fe17e03 and_into 0x03 ,pdata 
+0432 1fefa204 mul32 pdata ,4 ,rega 
+0433 58004847 setarg mem_24g_ch_map1 
+0434 9a20fe00 iadd rega ,pdata 
+0435 98408c00 iadd temp ,contr 
+0436 e8c08000 ifetch 1 ,contr 
+0437 6000c840 store 1 ,mem_24g_ch 
+0438 20600000 rtn 
 
 p_g24_prep:
-03e8 7844fc00 disable enable_crc 
-03e9 7843fc00 disable enable_white 
-03ea 58555555 setarg 0x555555 
-03eb 98001e00 iforce crc24_init 
-03ec 6800c840 fetch 1 ,mem_24g_ch 
-03ed 1fed8400 reverse pdata ,temp 
-03ee 79200401 set1 1 ,temp 
-03ef 18431c00 rshift temp ,white_init 
-03f0 20600000 rtn 
+0439 7844fc00 disable enable_crc 
+043a 7843fc00 disable enable_white 
+043b 58555555 setarg 0x555555 
+043c 98001e00 iforce crc24_init 
+043d 6800c840 fetch 1 ,mem_24g_ch 
+043e 1fed8400 reverse pdata ,temp 
+043f 79200401 set1 1 ,temp 
+0440 18431c00 rshift temp ,white_init 
+0441 20600000 rtn 
 
 p_g24_receive_packet:
-03f1 204053c4 call le_enable 
-03f2 6802485e fetch 4 ,mem_24g_addr 
-03f3 98001200 iforce access 
-03f4 20402918 call set_sync_on 
-03f5 6808c840 fetcht 1 ,mem_24g_ch 
-03f6 2040291f call set_freq_rx 
-03f7 58000500 setarg param_pll_setup 
-03f8 20402a8f call sleep 
-03f9 20402924 call rf_rx_enable 
+0442 204053c4 call le_enable 
+0443 6802485e fetch 4 ,mem_24g_addr 
+0444 98001200 iforce access 
+0445 20402918 call set_sync_on 
+0446 6808c840 fetcht 1 ,mem_24g_ch 
+0447 2040291f call set_freq_rx 
+0448 58000500 setarg param_pll_setup 
+0449 20402a8f call sleep 
+044a 20402924 call rf_rx_enable 
 
 p_g24_receive_rxon:
-03fa 204003e8 call p_g24_prep 
-03fb 7857fc00 disable user3 
-03fc 7826fc00 enable decode_fec0 
-03fd 7830fc00 enable is_rx 
-03fe 78507c00 disable is_tx 
-03ff 78287c00 enable swfine 
-0400 68014839 fetch 2 ,mem_24g_rx_window 
-0401 98003600 iforce stop_watch 
-0402 37c18400 correlate null ,timeout 
-0403 242c0436 nbranch p_g24_sync_timeout ,sync 
-0404 7846fc00 disable decode_fec0 
-0405 7825fc00 enable decode_fec1 
-0406 7823fc00 enable enable_white 
-0407 7824fc00 enable enable_crc 
-0408 09800008 parse demod ,bucket ,8 
-0409 19897e00 rshift3 pwindow ,pdata 
-040a 6000c8ea store 1 ,mem_24g_get_syncword_crc8 
-040b 6808c8e9 fetcht 1 ,mem_24g_syncword_crc8 
-040c 98467c00 isub temp ,null 
-040d 24228433 nbranch p_g24_end_of_packet ,zero 
-040e 09800008 parse demod ,bucket ,8 
-040f 19897e00 rshift3 pwindow ,pdata 
-0410 6000c7b0 store 1 ,mem_24g_rxbuf 
-0411 6800c87c fetch 1 ,mem_24g_mode 
-0412 1fe67c02 sub pdata ,rx_24g ,null 
-0413 20228418 branch p_g24_receive_skip ,zero 
-0414 6800c7b0 fetch 1 ,mem_24g_rxbuf 
-0415 6808c837 fetcht 1 ,mem_24g_data_type 
-0416 a8400e00 icompare bits_data ,temp 
-0417 24208433 nbranch p_g24_end_of_packet ,true 
+044b 20400439 call p_g24_prep 
+044c 7857fc00 disable user3 
+044d 7826fc00 enable decode_fec0 
+044e 7830fc00 enable is_rx 
+044f 78507c00 disable is_tx 
+0450 78287c00 enable swfine 
+0451 68014839 fetch 2 ,mem_24g_rx_window 
+0452 98003600 iforce stop_watch 
+0453 37c18400 correlate null ,timeout 
+0454 242c0487 nbranch p_g24_sync_timeout ,sync 
+0455 7846fc00 disable decode_fec0 
+0456 7825fc00 enable decode_fec1 
+0457 7823fc00 enable enable_white 
+0458 7824fc00 enable enable_crc 
+0459 09800008 parse demod ,bucket ,8 
+045a 19897e00 rshift3 pwindow ,pdata 
+045b 6000c8ea store 1 ,mem_24g_get_syncword_crc8 
+045c 6808c8e9 fetcht 1 ,mem_24g_syncword_crc8 
+045d 98467c00 isub temp ,null 
+045e 24228484 nbranch p_g24_end_of_packet ,zero 
+045f 09800008 parse demod ,bucket ,8 
+0460 19897e00 rshift3 pwindow ,pdata 
+0461 6000c7b0 store 1 ,mem_24g_rxbuf 
+0462 6800c87c fetch 1 ,mem_24g_mode 
+0463 1fe67c02 sub pdata ,rx_24g ,null 
+0464 20228469 branch p_g24_receive_skip ,zero 
+0465 6800c7b0 fetch 1 ,mem_24g_rxbuf 
+0466 6808c837 fetcht 1 ,mem_24g_data_type 
+0467 a8400e00 icompare bits_data ,temp 
+0468 24208484 nbranch p_g24_end_of_packet ,true 
 
 p_g24_receive_skip:
-0418 09800008 parse demod ,bucket ,8 
-0419 19897e00 rshift3 pwindow ,pdata 
-041a e0a08000 istore 1 ,contw 
-041b 1fe97e00 rshift3 pdata ,pdata 
-041c 1fe1721f and pdata ,0x1f ,loopcnt 
-041d 20228422 branch p_g24rx_nopayload ,zero 
+0469 09800008 parse demod ,bucket ,8 
+046a 19897e00 rshift3 pwindow ,pdata 
+046b e0a08000 istore 1 ,contw 
+046c 1fe97e00 rshift3 pdata ,pdata 
+046d 1fe1721f and pdata ,0x1f ,loopcnt 
+046e 20228473 branch p_g24rx_nopayload ,zero 
 
 p_g24rx_loop:
-041e 09800008 parse demod ,bucket ,8 
-041f 19897e00 rshift3 pwindow ,pdata 
-0420 e0a08000 istore 1 ,contw 
-0421 c200041e loop p_g24rx_loop 
+046f 09800008 parse demod ,bucket ,8 
+0470 19897e00 rshift3 pwindow ,pdata 
+0471 e0a08000 istore 1 ,contw 
+0472 c200046f loop p_g24rx_loop 
 
 p_g24rx_nopayload:
-0422 09800018 parse demod ,bucket ,24 
-0423 78287c00 enable swfine 
-0424 db600664 arg param_sifs ,stop_watch 
-0425 1fef7e00 rshift32 pdata ,pdata 
-0426 1ff17e00 rshift16 pdata ,pdata 
-0427 e0a18000 istore 3 ,contw 
-0428 7845fc00 disable decode_fec1 
-0429 204029bb call save_rssi 
-042a 20230433 branch p_g24_end_of_packet ,crc_failed 
-042b 7837fc00 enable user3 
-042c 68008017 fetch 1 ,mem_last_freq 
-042d 1fe0a200 add pdata ,0 ,rega 
-042e 20402981 call rf_write_freq 
-042f 7846fc00 disable decode_fec0 
-0430 20402918 call set_sync_on 
-0431 20600000 rtn 
-0432 20600000 rtn 
+0473 09800018 parse demod ,bucket ,24 
+0474 78287c00 enable swfine 
+0475 db600664 arg param_sifs ,stop_watch 
+0476 1fef7e00 rshift32 pdata ,pdata 
+0477 1ff17e00 rshift16 pdata ,pdata 
+0478 e0a18000 istore 3 ,contw 
+0479 7845fc00 disable decode_fec1 
+047a 204029bb call save_rssi 
+047b 20230484 branch p_g24_end_of_packet ,crc_failed 
+047c 7837fc00 enable user3 
+047d 68008017 fetch 1 ,mem_last_freq 
+047e 1fe0a200 add pdata ,0 ,rega 
+047f 20402981 call rf_write_freq 
+0480 7846fc00 disable decode_fec0 
+0481 20402918 call set_sync_on 
+0482 20600000 rtn 
+0483 20600000 rtn 
 
 p_g24_end_of_packet:
-0433 784dfc00 disable encode_fec1 
-0434 7845fc00 disable decode_fec1 
-0435 2020264d branch end_of_packet 
+0484 784dfc00 disable encode_fec1 
+0485 7845fc00 disable decode_fec1 
+0486 2020264d branch end_of_packet 
 
 p_g24_sync_timeout:
-0436 204003a4 call p_rssi_noise 
-0437 20200433 branch p_g24_end_of_packet 
+0487 204003f5 call p_rssi_noise 
+0488 20200484 branch p_g24_end_of_packet 
 
 p_g24_set_freq_tx:
-0438 20402918 call set_sync_on 
-0439 6808c840 fetcht 1 ,mem_24g_ch 
-043a 20202933 branch set_freq_tx 
+0489 20402918 call set_sync_on 
+048a 6808c840 fetcht 1 ,mem_24g_ch 
+048b 20202933 branch set_freq_tx 
 
 p_g24_transmit:
-043b 204053c4 call le_enable 
-043c 6802485e fetch 4 ,mem_24g_addr 
-043d 98001200 iforce access 
-043e 204003e8 call p_g24_prep 
-043f 20400438 call p_g24_set_freq_tx 
-0440 79202a00 set1 txgfsk ,radio_ctrl 
-0441 782efc00 enable encode_fec0 
-0442 78307c00 enable is_tx 
-0443 7850fc00 disable is_rx 
-0444 19317e00 rshift16 access ,pdata 
-0445 1fecfe00 rshift8 pdata ,pdata 
-0446 1ff1fe00 rshift4 pdata ,pdata 
-0447 08008628 inject mod ,40 
-0448 784efc00 disable encode_fec0 
-0449 782dfc00 enable encode_fec1 
-044a 7823fc00 enable enable_white 
-044b 7824fc00 enable enable_crc 
-044c 6800c8e9 fetch 1 ,mem_24g_syncword_crc8 
-044d 08008608 inject mod ,8 
-044e 6800c838 fetch 1 ,mem_24g_txlen 
-044f 98007200 iforce loopcnt 
-0450 d8c047f2 arg mem_24g_txpayload ,contr 
+048c 204053c4 call le_enable 
+048d 6802485e fetch 4 ,mem_24g_addr 
+048e 98001200 iforce access 
+048f 20400439 call p_g24_prep 
+0490 20400489 call p_g24_set_freq_tx 
+0491 79202a00 set1 txgfsk ,radio_ctrl 
+0492 782efc00 enable encode_fec0 
+0493 78307c00 enable is_tx 
+0494 7850fc00 disable is_rx 
+0495 19317e00 rshift16 access ,pdata 
+0496 1fecfe00 rshift8 pdata ,pdata 
+0497 1ff1fe00 rshift4 pdata ,pdata 
+0498 08008628 inject mod ,40 
+0499 784efc00 disable encode_fec0 
+049a 782dfc00 enable encode_fec1 
+049b 7823fc00 enable enable_white 
+049c 7824fc00 enable enable_crc 
+049d 6800c8e9 fetch 1 ,mem_24g_syncword_crc8 
+049e 08008608 inject mod ,8 
+049f 6800c838 fetch 1 ,mem_24g_txlen 
+04a0 98007200 iforce loopcnt 
+04a1 d8c047f2 arg mem_24g_txpayload ,contr 
 
 p_g24tr_loop:
-0451 e8c08000 ifetch 1 ,contr 
-0452 08008608 inject mod ,8 
-0453 c2000451 loop p_g24tr_loop 
-0454 6800c8ee fetch 1 ,mem_rssi_hex 
-0455 08008608 inject mod ,8 
-0456 78247c00 enable enable_parity 
-0457 08008618 inject mod ,24 
-0458 78447c00 disable enable_parity 
-0459 37d38200 until null ,tx_clear 
-045a 20000064 nop 100 
-045b 784efc00 disable encode_fec0 
-045c 784dfc00 disable encode_fec1 
-045d 20600000 rtn 
+04a2 e8c08000 ifetch 1 ,contr 
+04a3 08008608 inject mod ,8 
+04a4 c20004a2 loop p_g24tr_loop 
+04a5 6800c8ee fetch 1 ,mem_rssi_hex 
+04a6 08008608 inject mod ,8 
+04a7 78247c00 enable enable_parity 
+04a8 08008618 inject mod ,24 
+04a9 78447c00 disable enable_parity 
+04aa 37d38200 until null ,tx_clear 
+04ab 20000064 nop 100 
+04ac 784efc00 disable encode_fec0 
+04ad 784dfc00 disable encode_fec1 
+04ae 20600000 rtn 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /branch/USB/dongle/program/patch.prog	(revision 2963)
+++ /branch/USB/dongle/program/patch.prog	(working copy)
@@ -155,6 +155,7 @@
 	rtn
 
 p_app_init:
+	jam 0,mem_dongle_bind_device_living
 	jam G24_BIND_MODE_DELAY,mem_24g_bind_delay_count		//G24_BIND_MODE_DELAY*80ms
 	call enable_authrom
 	fetch 4,mem_lap
@@ -345,6 +346,43 @@
 	arg 66,loopcnt
 	branch clear_mem
 
+p_g24_dongle_binding_device_check:	//works on auto pair
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_BIND
+	fetch 1,mem_24g_pair_mode
+	nrtn blank	
+	fetch 1,mem_24g_rxbuf+3
+	beq BIND_MOUSE,p_g24_dongle_binding_mouse_status	//bit0
+	beq BIND_KEYBOARD,p_g24_dongle_binding_keyboard_status	//bit1
+	rtn
+p_g24_dongle_binding_mouse_status:
+	fetch 1,mem_dongle_bind_device_living
+	rtnbit0 0
+disable_user3:
+	disable user3
+	rtn 
+p_g24_dongle_binding_keyboard_status:
+	fetch 1,mem_dongle_bind_device_living
+	rtnbit0 1
+	branch disable_user3
+
+p_g24_dongle_binding_mouse_living:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_dongle_bind_device_living
+	or_into 0x01,pdata
+	store 1,mem_dongle_bind_device_living
+	rtn
+
+p_g24_dongle_binding_keyboard_living:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_dongle_bind_device_living
+	or_into 0x02,pdata
+	store 1,mem_dongle_bind_device_living
+	rtn
+	
+
 p_g24_dongle_bind_first_step:
 	fetch 1,mem_24g_rxdata_temp+3
 	beq BIND_MOUSE,p_g24_dongle_bind_first_step_mouse
@@ -398,6 +436,7 @@
 	beq 2,p_g24_dongle_ms_bind_step_success
 	rtn
 p_g24_dongle_ms_bind_step_success:
+	call p_g24_dongle_binding_mouse_living		//works on auto pair only
 	fetch 1,mem_dongle_bind_device_status
 	or_into 0x01,pdata
 	store 1,mem_dongle_bind_device_status
@@ -411,6 +450,7 @@
 	bne 0,p_g24_dongle_kb_bind_step_success
 	rtn
 p_g24_dongle_kb_bind_step_success:
+	call p_g24_dongle_binding_keyboard_living	//works on auto pair only
 	fetch 1,mem_dongle_bind_device_status
 	or_into 0x02,pdata
 	store 1,mem_dongle_bind_device_status
@@ -556,7 +596,8 @@
 p_dongle_auto_bind:
 	call p_g24_mode_switch_init
 p_dongle_auto_bind_loop:
-	call p_g24_mode_switch
+	call p_g24_mode_switch		//work or bind
+	call p_g24_mode_switch_2	//search or bind
 	call p_g24_dongle_work_mode_auto
 	call p_g24_dongle_bind_mode_auto
 	call p_g24_dongle_search_mode_auto
@@ -652,6 +693,62 @@
 	jam CLEAR_INIT,mem_dongle_mode_init
 	rtn
 
+
+p_g24_mode_switch_init_2:
+	fetch 1,mem_24g_mode_switch_exit_2
+	call p_g24_mode_switch_start_2,blank
+	fetch 1,mem_24g_mode_switch_2_init
+	rtnbit1 0
+	set1 0,pdata
+	store 1,mem_24g_mode_switch_2_init
+	jam 1,mem_24g_mode_switch_2
+	jam 0,mem_24g_time_slice_2
+	setarg 0
+	store 2,mem_24g_mode_switch_cnt_2
+	jam 0x60,mem_24g_interval	//30ms
+	branch p_g24_timer_init
+
+p_g24_mode_switch_2:
+	fetch 1,mem_24g_mode_switch_exit_2
+	nrtn blank
+	fetch 1,mem_24g_mode_switch_2
+	rtn blank
+	call p_g24_timer_check
+	nrtn user
+
+	fetch 2,mem_24g_mode_switch_cnt_2
+	increase 1,pdata
+	store 2,mem_24g_mode_switch_cnt_2
+	arg 0x7d0,temp	//1min
+	isub temp,null
+	branch p_g24_mode_switch_exit_2,positive
+
+	call p_g24_work_mode_delay
+
+	fetch 1,mem_24g_time_slice_2
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_24g_time_slice_2
+	beq 0,p_g24_mode_switch_search
+	beq 1,p_g24_bind_mode_enable
+	rtn
+
+p_g24_mode_switch_search:
+	fetch 1,mem_24g_work_delay_count
+	nbranch p_g24_bind_mode_enable,blank
+	branch p_g24_search_mode_enable
+
+p_g24_mode_switch_exit_2:
+	jam 1,mem_24g_mode_switch_exit_2
+	branch p_g24_search_mode_enable
+
+p_g24_mode_switch_stop_2:
+	jam 0,mem_24g_mode_switch_2
+	rtn
+p_g24_mode_switch_start_2:
+	jam 1,mem_24g_mode_switch_2
+	rtn	
+
 p_g24_enable_nodata_timer:
 	jam 1,mem_24g_nodata_timer_enable
 	branch g24_enable_nodata_timer_init
@@ -668,7 +765,10 @@
 
 	jam 0,mem_24g_bind_delay_count
 	jam 0,mem_24g_work_delay_count
-	
+
+	call p_g24_mode_switch_init_2	//works on auto pair only
+
+p_g24_search_mode_enable:
 	//no data for more than 100ms,then go to search
 	jam DONGLE_SEARCH,mem_dongle_work_mode
 	jam CLEAR_INIT,mem_dongle_mode_init
@@ -692,6 +792,10 @@
 	call p_g24_rx_addr_check
 	call p_g24_receive_packet_parse,zero
 	//receive data,then go to paired
+
+	fetch 1,mem_24g_abort_packet
+	call p_g24_mode_switch_stop_2,blank	//works on auto pair only
+	
 	jam DONGLE_WORK,mem_dongle_work_mode
 	fetch 1,mem_dongle_mode_init
 	set1 DONGLE_WORK,pdata
@@ -903,6 +1007,8 @@
 
 p_g24_bind_ackpayload_prep:
 	jam 1,mem_24g_ackpayload_enable
+	call p_g24_dongle_binding_device_check	//works on auto pair only
+	nrtn user3
 	jam 0x08,mem_24g_datalen
 	arg 0x08,loopcnt
 	arg mem_24g_bind_payload,contr
@@ -976,6 +1082,7 @@
 	rtn
 
 p_g24_data_type1:
+	call p_g24_dongle_binding_mouse_living	//works on auto pair only
 	call p_g24_ch_timer_reinit
 	fetch 1,mem_24g_abort_packet
 	fetcht 1,mem_24g_rxdata_temp
@@ -1014,6 +1121,7 @@
 	branch timer_init
 
 p_g24_data_type2:
+	call p_g24_dongle_binding_keyboard_living
 	fetcht 1,mem_24g_rxdata_temp
 	isolate1 bit_abort,temp
 	branch p_g24_data_attemp_kbd_abort,true
@@ -1135,9 +1243,11 @@
 	beq DATATYPE_KEYBOARD,p_g24_data_attemp_kbd
 	rtn
 p_g24_data_attemp_mouse:
+	call p_g24_dongle_binding_mouse_living		//works on auto pair only
 	fetch 4,mem_24g_rxdata_temp+4
 	branch p_g24_store_mouse_addr
 p_g24_data_attemp_kbd:
+	call p_g24_dongle_binding_keyboard_living	//works on auto pair only
 	fetch 4,mem_24g_rxdata_temp+4
 	branch p_g24_store_kbd_addr
 p_g24_data_attemp_mouse_abort:
