Index: format/app_quickconn_24g.format
===================================================================
--- /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/format/app_quickconn_24g.format	(revision 7372)
+++ /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/format/app_quickconn_24g.format	(working copy)
@@ -119,6 +119,10 @@
 
 1 mem_24g_nodata_timer_enable
 1 mem_24g_connected_flag
+1 mem_24g_receive_audio_data_flag
+1 mem_24g_release_ai_key_count
+1 mem_24g_tx_ai_key_release_flag
+4 mem_24g_release_ai_key_data
 )
 
 (
Index: format/app_usb.format
===================================================================
--- /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/format/app_usb.format	(revision 7377)
+++ /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/format/app_usb.format	(working copy)
@@ -112,6 +112,7 @@
 
 (
 7 DATATYPE_AUDIO
+5 DATATYPE_HEART
 4 DATATYPE_AI_KEY
 )
 
Index: output/eeprom.dat
===================================================================
--- /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/output/eeprom.dat	(revision 7390)
+++ /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-0a
+7a
 1c
 c2
 84
@@ -167,7 +167,7 @@
 68
 08
 c8
-5f
+66
 20
 40
 67
@@ -175,7 +175,7 @@
 68
 08
 c8
-60
+67
 20
 40
 67
@@ -183,7 +183,7 @@
 68
 08
 c8
-61
+68
 20
 40
 68
@@ -191,7 +191,7 @@
 68
 08
 c8
-62
+69
 20
 40
 68
@@ -199,7 +199,7 @@
 68
 08
 c8
-63
+6a
 20
 20
 68
@@ -211,7 +211,7 @@
 68
 08
 c8
-5f
+66
 20
 40
 68
@@ -223,7 +223,7 @@
 68
 08
 c8
-60
+67
 20
 40
 68
@@ -267,11 +267,11 @@
 60
 00
 c8
-5d
+64
 68
 08
 c8
-61
+68
 20
 40
 68
@@ -279,15 +279,15 @@
 20
 20
 04
-d5
+ed
 60
 00
 c8
-5d
+64
 68
 08
 c8
-61
+68
 20
 40
 68
@@ -295,7 +295,7 @@
 68
 08
 c8
-62
+69
 20
 40
 68
@@ -303,7 +303,7 @@
 68
 08
 c8
-63
+6a
 20
 40
 68
@@ -315,7 +315,7 @@
 60
 00
 c8
-5d
+64
 20
 20
 01
@@ -323,7 +323,7 @@
 60
 00
 c8
-5d
+64
 20
 20
 02
@@ -331,7 +331,7 @@
 68
 00
 c8
-5d
+64
 c1
 00
 00
@@ -343,7 +343,7 @@
 68
 08
 c8
-5d
+64
 98
 46
 7c
@@ -495,7 +495,7 @@
 60
 01
 48
-4e
+55
 20
 40
 02
@@ -519,10 +519,10 @@
 60
 00
 c8
-36
+3d
 70
 48
-37
+3e
 02
 20
 40
@@ -1043,11 +1043,11 @@
 60
 00
 c8
-5e
+65
 68
 00
 c8
-5d
+64
 c0
 00
 82
@@ -1059,7 +1059,7 @@
 c0
 00
 06
-22
+3e
 20
 60
 00
@@ -1643,7 +1643,7 @@
 da
 60
 48
-38
+3f
 20
 20
 00
@@ -1719,7 +1719,7 @@
 68
 0b
 48
-0f
+16
 98
 46
 7c
@@ -1751,7 +1751,7 @@
 60
 00
 c8
-15
+1c
 1f
 e2
 72
@@ -1759,7 +1759,7 @@
 d8
 a0
 48
-16
+1d
 d8
 c0
 02
@@ -1775,7 +1775,7 @@
 60
 03
 48
-09
+10
 70
 43
 67
@@ -1806,7 +1806,7 @@
 c4
 70
 48
-15
+1c
 00
 20
 20
@@ -1850,7 +1850,7 @@
 00
 70
 48
-35
+3c
 01
 c1
 61
@@ -1858,7 +1858,7 @@
 00
 70
 48
-35
+3c
 00
 c1
 60
@@ -1899,7 +1899,7 @@
 68
 00
 c8
-15
+1c
 60
 00
 93
@@ -1919,7 +1919,7 @@
 d8
 c0
 48
-16
+1d
 20
 40
 7f
@@ -2083,7 +2083,7 @@
 68
 00
 c8
-35
+3c
 20
 3a
 02
@@ -2183,10 +2183,10 @@
 60
 01
 49
-75
+7c
 70
 49
-74
+7b
 00
 68
 02
@@ -2203,7 +2203,7 @@
 68
 01
 49
-75
+7c
 60
 01
 13
@@ -2219,7 +2219,7 @@
 68
 08
 c9
-74
+7b
 18
 40
 84
@@ -2227,7 +2227,7 @@
 60
 08
 c9
-74
+7b
 18
 46
 7c
@@ -2487,7 +2487,7 @@
 60
 01
 49
-75
+7c
 20
 60
 00
@@ -2627,7 +2627,7 @@
 60
 01
 49
-75
+7c
 20
 60
 00
@@ -2703,7 +2703,7 @@
 68
 03
 48
-09
+10
 60
 03
 44
@@ -2715,14 +2715,14 @@
 68
 00
 c8
-36
+3d
 20
 7a
 00
 00
 70
 48
-08
+0f
 00
 18
 00
@@ -2751,7 +2751,7 @@
 68
 00
 c8
-5e
+65
 e0
 a1
 00
@@ -2767,7 +2767,7 @@
 da
 60
 48
-43
+4a
 20
 20
 00
@@ -2779,7 +2779,7 @@
 68
 00
 c8
-5d
+64
 c1
 81
 00
@@ -2951,10 +2951,10 @@
 60
 01
 49
-75
+7c
 70
 49
-74
+7b
 00
 1a
 22
@@ -2971,7 +2971,7 @@
 68
 01
 49
-75
+7c
 60
 01
 13
@@ -2987,7 +2987,7 @@
 68
 01
 48
-4e
+55
 20
 3a
 02
@@ -3055,7 +3055,7 @@
 68
 01
 48
-4e
+55
 20
 3a
 03
@@ -3103,7 +3103,7 @@
 60
 01
 48
-4e
+55
 20
 40
 01
@@ -3151,7 +3151,7 @@
 60
 01
 48
-4e
+55
 20
 20
 03
@@ -3223,7 +3223,7 @@
 68
 01
 48
-4e
+55
 20
 3a
 5e
@@ -3363,7 +3363,7 @@
 68
 00
 c8
-5d
+64
 c0
 00
 04
@@ -3711,7 +3711,7 @@
 20
 20
 06
-48
+64
 70
 11
 9e
@@ -3747,7 +3747,7 @@
 20
 20
 06
-63
+7f
 60
 08
 c7
@@ -3847,7 +3847,7 @@
 20
 20
 06
-48
+64
 68
 02
 47
@@ -3879,11 +3879,11 @@
 20
 40
 06
-49
+65
 20
 20
 06
-80
+9c
 68
 02
 47
@@ -3995,7 +3995,7 @@
 20
 20
 06
-80
+9c
 68
 00
 c7
@@ -4023,7 +4023,7 @@
 20
 40
 06
-80
+9c
 70
 47
 65
@@ -4167,7 +4167,7 @@
 20
 40
 06
-80
+9c
 70
 47
 65
@@ -4191,7 +4191,7 @@
 20
 40
 06
-80
+9c
 70
 47
 65
@@ -4215,7 +4215,7 @@
 20
 40
 06
-63
+7f
 70
 47
 25
@@ -4362,8 +4362,8 @@
 00
 20
 40
-06
-e4
+07
+00
 18
 00
 2a
@@ -4391,11 +4391,11 @@
 20
 40
 06
-a3
+bf
 20
 57
 86
-df
+fb
 20
 60
 00
@@ -4475,7 +4475,7 @@
 24
 21
 06
-80
+9c
 1f
 e0
 fe
@@ -4507,7 +4507,7 @@
 20
 40
 06
-56
+72
 68
 00
 c7
@@ -4711,7 +4711,7 @@
 20
 40
 06
-48
+64
 20
 20
 04
@@ -4935,7 +4935,7 @@
 20
 40
 04
-df
+f7
 20
 40
 00
@@ -4943,15 +4943,111 @@
 20
 40
 04
-e3
+fb
 20
 40
 01
 95
 20
+40
+04
+d6
+20
 20
 04
 d1
+d8
+e0
+00
+06
+20
+40
+7f
+16
+24
+7a
+00
+00
+20
+40
+04
+dd
+d8
+e0
+00
+06
+58
+00
+00
+20
+20
+20
+7f
+08
+68
+00
+c8
+08
+20
+3a
+04
+e0
+20
+60
+00
+00
+68
+00
+c8
+09
+1f
+e0
+fe
+01
+60
+00
+c8
+09
+1f
+e6
+7c
+0a
+24
+62
+80
+00
+70
+48
+09
+00
+68
+00
+c8
+0a
+20
+7a
+00
+00
+70
+48
+0a
+00
+20
+40
+01
+53
+68
+02
+48
+0b
+60
+02
+13
+d6
+20
+20
+01
+96
 79
 20
 00
@@ -5018,24 +5114,24 @@
 00
 20
 40
-04
-ea
+05
+02
 20
 40
-04
-f6
+05
+0f
 20
 40
 05
-67
+7f
 20
 40
 05
-15
+2e
 20
 20
 05
-59
+71
 68
 00
 c7
@@ -5075,15 +5171,19 @@
 20
 40
 06
-48
+64
 20
 40
 06
-80
+9c
+20
+40
+04
+da
 20
 20
 05
-7b
+94
 68
 00
 c7
@@ -5091,7 +5191,7 @@
 c0
 00
 85
-0f
+28
 68
 00
 c7
@@ -5099,7 +5199,7 @@
 c0
 00
 85
-09
+22
 68
 0a
 47
@@ -5159,7 +5259,7 @@
 20
 20
 06
-80
+9c
 70
 47
 a3
@@ -5167,7 +5267,7 @@
 20
 20
 06
-80
+9c
 1c
 42
 7e
@@ -5191,7 +5291,7 @@
 20
 40
 06
-3c
+58
 60
 08
 c7
@@ -5207,19 +5307,19 @@
 20
 20
 06
-80
+9c
 20
 40
 05
-18
+31
 20
 40
 05
-23
+3c
 20
 20
 05
-2c
+45
 68
 00
 c7
@@ -5247,7 +5347,7 @@
 20
 40
 05
-21
+3a
 20
 40
 01
@@ -5291,7 +5391,7 @@
 20
 40
 05
-21
+3a
 20
 40
 01
@@ -5327,7 +5427,7 @@
 20
 40
 05
-21
+3a
 20
 40
 01
@@ -5339,19 +5439,15 @@
 20
 40
 05
-7b
+94
 20
 40
 06
-9a
+b6
 24
 77
 80
 00
-20
-20
-05
-39
 68
 00
 c6
@@ -5363,23 +5459,23 @@
 20
 40
 06
-56
+72
 20
 40
 05
-40
+58
 20
 40
 06
-63
+7f
 20
 40
-06
-e4
+07
+00
 20
 20
 06
-df
+fb
 70
 47
 20
@@ -5395,11 +5491,11 @@
 c0
 00
 85
-46
+5e
 c0
 01
 85
-4c
+64
 20
 60
 00
@@ -5435,11 +5531,11 @@
 c0
 00
 85
-46
+5e
 c0
 7f
 85
-46
+5e
 70
 47
 a2
@@ -5455,7 +5551,7 @@
 d8
 c0
 48
-5e
+65
 d8
 a0
 46
@@ -5536,26 +5632,30 @@
 20
 01
 96
+70
+48
+08
+00
 20
 40
 05
-35
+4e
 24
 37
 85
-7b
+94
 20
 20
 05
-6a
+83
 20
 40
 05
-7e
+97
 24
 34
 05
-7b
+94
 68
 00
 c7
@@ -5563,7 +5663,7 @@
 20
 3a
 05
-7b
+94
 1f
 e0
 fe
@@ -5587,11 +5687,11 @@
 20
 40
 05
-55
+6d
 20
 40
 05
-62
+7a
 68
 00
 c7
@@ -5599,23 +5699,23 @@
 c0
 00
 85
-8c
+a5
 c0
 01
 05
-c4
+e0
 c0
 7f
 86
-14
+30
 c2
 82
 05
-8c
+a5
 c2
 83
 85
-8c
+a5
 d8
 a0
 46
@@ -5687,7 +5787,7 @@
 20
 40
 05
-0b
+24
 68
 00
 c7
@@ -5711,7 +5811,7 @@
 c0
 00
 86
-1e
+3a
 68
 00
 c7
@@ -5739,11 +5839,11 @@
 c2
 82
 05
-b2
+cb
 c2
 83
 85
-b6
+cf
 68
 00
 c7
@@ -5755,11 +5855,11 @@
 20
 22
 85
-aa
+c3
 20
 40
 05
-aa
+c3
 68
 00
 c7
@@ -5795,11 +5895,11 @@
 c2
 82
 05
-b2
+cb
 c2
 83
 85
-b6
+cf
 20
 60
 00
@@ -5823,7 +5923,7 @@
 24
 5a
 05
-bc
+d8
 68
 00
 c7
@@ -5831,7 +5931,7 @@
 20
 5a
 05
-c0
+dc
 20
 20
 01
@@ -5852,6 +5952,18 @@
 20
 01
 96
+70
+48
+08
+01
+70
+48
+0a
+01
+70
+48
+09
+00
 20
 40
 01
@@ -5919,7 +6031,7 @@
 20
 20
 86
-20
+3c
 68
 00
 c7
@@ -5927,19 +6039,19 @@
 c0
 00
 05
-cc
+e8
 c0
 01
 06
-06
+22
 c0
 01
-85
-e9
+86
+05
 20
 20
 05
-7b
+94
 68
 00
 c7
@@ -5963,7 +6075,7 @@
 20
 40
 05
-de
+fa
 68
 04
 13
@@ -5971,15 +6083,15 @@
 24
 5a
 05
-e1
+fd
 68
 04
 13
 d6
 20
 5a
-05
-e5
+06
+01
 68
 04
 13
@@ -6011,7 +6123,7 @@
 20
 20
 05
-7b
+94
 d8
 c0
 47
@@ -6075,10 +6187,10 @@
 60
 01
 49
-75
+7c
 70
 49
-74
+7b
 00
 68
 02
@@ -6091,7 +6203,7 @@
 68
 01
 49
-75
+7c
 60
 01
 13
@@ -6127,7 +6239,7 @@
 20
 20
 05
-7b
+94
 d8
 c0
 47
@@ -6183,7 +6295,7 @@
 20
 40
 06
-11
+2d
 68
 01
 13
@@ -6215,7 +6327,7 @@
 20
 20
 05
-7b
+94
 d8
 c0
 47
@@ -6235,11 +6347,11 @@
 c0
 00
 86
-18
+34
 c0
 01
 06
-1b
+37
 20
 60
 00
@@ -6275,7 +6387,7 @@
 20
 20
 06
-19
+35
 68
 02
 47
@@ -6283,7 +6395,7 @@
 20
 20
 06
-1c
+38
 70
 47
 a2
@@ -6311,7 +6423,7 @@
 20
 40
 06
-2b
+47
 60
 08
 c7
@@ -6399,7 +6511,7 @@
 c5
 16
 06
-40
+5c
 df
 20
 00
@@ -6423,7 +6535,7 @@
 c2
 00
 06
-42
+5e
 18
 49
 7e
@@ -6463,7 +6575,7 @@
 c2
 00
 06
-4c
+68
 1a
 22
 7e
@@ -6587,7 +6699,7 @@
 20
 40
 86
-7e
+9a
 68
 08
 c7
@@ -6667,7 +6779,7 @@
 20
 40
 06
-84
+a0
 60
 08
 c7
@@ -6679,7 +6791,7 @@
 20
 40
 06
-88
+a4
 18
 40
 84
@@ -6803,7 +6915,7 @@
 20
 40
 06
-91
+ad
 78
 57
 fc
@@ -6839,7 +6951,7 @@
 24
 2c
 06
-dd
+f9
 78
 23
 fc
@@ -6851,7 +6963,7 @@
 20
 40
 06
-da
+f6
 60
 00
 c7
@@ -6867,11 +6979,11 @@
 24
 22
 86
-df
+fb
 20
 40
 06
-da
+f6
 60
 00
 c6
@@ -6879,7 +6991,7 @@
 c5
 16
 06
-bb
+d7
 68
 00
 c6
@@ -6895,11 +7007,11 @@
 24
 20
 86
-df
+fb
 20
 40
 06
-da
+f6
 e0
 a0
 80
@@ -6915,11 +7027,11 @@
 20
 22
 86
-c3
+df
 20
 40
 06
-da
+f6
 e0
 a0
 80
@@ -6927,11 +7039,11 @@
 c2
 00
 06
-c0
+dc
 c5
 16
 06
-c8
+e4
 18
 a2
 22
@@ -6939,7 +7051,7 @@
 20
 40
 06
-da
+f6
 60
 00
 c7
@@ -6983,7 +7095,7 @@
 20
 23
 06
-df
+fb
 78
 37
 fc
@@ -7019,7 +7131,7 @@
 20
 20
 06
-32
+4e
 09
 80
 00
@@ -7039,7 +7151,7 @@
 20
 40
 86
-24
+40
 78
 4d
 fc
@@ -7075,11 +7187,11 @@
 20
 40
 06
-91
+ad
 20
 40
 06
-e1
+fd
 79
 20
 2a
@@ -7142,12 +7254,12 @@
 08
 c2
 00
-06
-f6
+07
+12
 c5
 96
-06
-fa
+07
+16
 78
 24
 7c
@@ -7180,8 +7292,8 @@
 60
 00
 00
-22
-43
+23
+33
 aa
 55
 01
@@ -7335,6 +7447,23 @@
 84
 aa
 55
+04
+00
+0b
+48
+02
+03
+01
+00
+aa
+55
+01
+00
+09
+48
+00
+aa
+55
 01
 00
 de
@@ -7344,7 +7473,7 @@
 55
 01
 00
-50
+57
 48
 ff
 aa
@@ -7353,7 +7482,7 @@
 00
 c3
 40
-50
+57
 48
 aa
 55
@@ -7626,7 +7755,7 @@
 55
 05
 00
-5f
+66
 48
 1b
 1c
@@ -7639,7 +7768,7 @@
 00
 1b
 42
-64
+6b
 48
 aa
 55
@@ -7669,7 +7798,7 @@
 55
 16
 00
-38
+3f
 48
 01
 ff
@@ -7699,13 +7828,13 @@
 00
 18
 42
-6f
+76
 48
 aa
 55
 02
 00
-6f
+76
 48
 40
 04
@@ -7824,7 +7953,7 @@
 55
 06
 00
-0f
+16
 48
 0f
 0f
@@ -7836,7 +7965,7 @@
 55
 01
 00
-37
+3e
 48
 02
 aa
@@ -7892,7 +8021,7 @@
 aa
 aa
 55
-e4
-a2
-40
-a7
+d0
+a5
+67
+61
Index: output/memmap.format
===================================================================
--- /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/output/memmap.format	(revision 7372)
+++ /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/output/memmap.format	(working copy)
@@ -1861,55 +1861,59 @@
 0x4804 mem_24g_led_cb_off
 0x4806 mem_24g_nodata_timer_enable
 0x4807 mem_24g_connected_flag
-0x4808 mem_le_conn_sm
-0x4809 mem_app_peer_addr
-0x480f mem_le_slave_peer_addr
-0x4815 mem_le_rx_adv_data_len
-0x4816 mem_le_rx_adv_data
-0x4835 mem_le_connect_device_type
-0x4836 mem_le_master_connected
-0x4837 mem_le_send_write_request_count
-0x4838 mem_le_scan_led_style
-0x4838 mem_le_scan_led_type
-0x4839 mem_le_scan_led_blink_count
-0x483a mem_le_scan_led_gpio
-0x483b mem_le_scan_led_on_time
-0x483d mem_le_scan_led_off_time
-0x483f mem_le_scan_led_on_callback
-0x4841 mem_le_scan_led_off_callback
-0x4843 mem_classic_page_scan_led_style
-0x4843 mem_classic_page_scan_led_type
-0x4844 mem_classic_page_scan_led_blink_count
-0x4845 mem_classic_page_scan_led_gpio
-0x4846 mem_classic_page_scan_led_on_time
-0x4848 mem_classic_page_scan_led_off_time
-0x484a mem_classic_page_scan_led_on_callback
-0x484c mem_classic_page_scan_led_off_callback
-0x484e mem_rx_data_report_id
-0x4850 mem_rf_init_data_new
-0x485d mem_app_mode_select
-0x485e mem_usb_rx_kb_led_data
-0x485f mem_quickconn_sel_27_gpio
-0x4860 mem_quickconn_sel_28_gpio
-0x4861 mem_quickconn_24g_led_gpio
-0x4862 mem_quickconn_ble_led_gpio
-0x4863 mem_quickconn_classic_led_gpio
-0x4864 mem_quickconn_led_style
-0x4864 mem_quickconn_led_type
-0x4865 mem_quickconn_led_blink_count
-0x4866 mem_quickconn_led_gpio
-0x4867 mem_quickconn_led_on_time
-0x4869 mem_quickconn_led_off_time
-0x486b mem_quickconn_led_cb_on
-0x486d mem_quickconn_led_cb_off
-0x486f mem_quickconn_queue_each_size
-0x4870 mem_quickconn_queue_length
-0x4871 mem_quickconn_queue_curr_num
-0x4872 mem_quickconn_queue_read_ptr
-0x4873 mem_quickconn_queue_write_ptr
-0x4874 mem_quickconn_queue_ele0
-0x48b4 mem_quickconn_queue_ele1
-0x48f4 mem_quickconn_queue_ele2
-0x4934 mem_quickconn_queue_ele3
-0x4974 mem_quickconn_data_bit1_count
-0x4975 mem_quickconn_media_data
+0x4808 mem_24g_receive_audio_data_flag
+0x4809 mem_24g_release_ai_key_count
+0x480a mem_24g_tx_ai_key_release_flag
+0x480b mem_24g_release_ai_key_data
+0x480f mem_le_conn_sm
+0x4810 mem_app_peer_addr
+0x4816 mem_le_slave_peer_addr
+0x481c mem_le_rx_adv_data_len
+0x481d mem_le_rx_adv_data
+0x483c mem_le_connect_device_type
+0x483d mem_le_master_connected
+0x483e mem_le_send_write_request_count
+0x483f mem_le_scan_led_style
+0x483f mem_le_scan_led_type
+0x4840 mem_le_scan_led_blink_count
+0x4841 mem_le_scan_led_gpio
+0x4842 mem_le_scan_led_on_time
+0x4844 mem_le_scan_led_off_time
+0x4846 mem_le_scan_led_on_callback
+0x4848 mem_le_scan_led_off_callback
+0x484a mem_classic_page_scan_led_style
+0x484a mem_classic_page_scan_led_type
+0x484b mem_classic_page_scan_led_blink_count
+0x484c mem_classic_page_scan_led_gpio
+0x484d mem_classic_page_scan_led_on_time
+0x484f mem_classic_page_scan_led_off_time
+0x4851 mem_classic_page_scan_led_on_callback
+0x4853 mem_classic_page_scan_led_off_callback
+0x4855 mem_rx_data_report_id
+0x4857 mem_rf_init_data_new
+0x4864 mem_app_mode_select
+0x4865 mem_usb_rx_kb_led_data
+0x4866 mem_quickconn_sel_27_gpio
+0x4867 mem_quickconn_sel_28_gpio
+0x4868 mem_quickconn_24g_led_gpio
+0x4869 mem_quickconn_ble_led_gpio
+0x486a mem_quickconn_classic_led_gpio
+0x486b mem_quickconn_led_style
+0x486b mem_quickconn_led_type
+0x486c mem_quickconn_led_blink_count
+0x486d mem_quickconn_led_gpio
+0x486e mem_quickconn_led_on_time
+0x4870 mem_quickconn_led_off_time
+0x4872 mem_quickconn_led_cb_on
+0x4874 mem_quickconn_led_cb_off
+0x4876 mem_quickconn_queue_each_size
+0x4877 mem_quickconn_queue_length
+0x4878 mem_quickconn_queue_curr_num
+0x4879 mem_quickconn_queue_read_ptr
+0x487a mem_quickconn_queue_write_ptr
+0x487b mem_quickconn_queue_ele0
+0x48bb mem_quickconn_queue_ele1
+0x48fb mem_quickconn_queue_ele2
+0x493b mem_quickconn_queue_ele3
+0x497b mem_quickconn_data_bit1_count
+0x497c mem_quickconn_media_data
Index: output/program.lis
===================================================================
--- /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/output/program.lis	(revision 7390)
+++ /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/output/program.lis	(working copy)
@@ -46,23 +46,23 @@
 0027 2020003b branch p_app_mode_select 
 
 p_app_ui_init:
-0028 6808c85f fetcht 1 ,mem_quickconn_sel_27_gpio 
+0028 6808c866 fetcht 1 ,mem_quickconn_sel_27_gpio 
 0029 204067fb call gpio_config_input 
-002a 6808c860 fetcht 1 ,mem_quickconn_sel_28_gpio 
+002a 6808c867 fetcht 1 ,mem_quickconn_sel_28_gpio 
 002b 204067fb call gpio_config_input 
-002c 6808c861 fetcht 1 ,mem_quickconn_24g_led_gpio 
+002c 6808c868 fetcht 1 ,mem_quickconn_24g_led_gpio 
 002d 2040680e call gpio_config_output 
-002e 6808c862 fetcht 1 ,mem_quickconn_ble_led_gpio 
+002e 6808c869 fetcht 1 ,mem_quickconn_ble_led_gpio 
 002f 2040680e call gpio_config_output 
-0030 6808c863 fetcht 1 ,mem_quickconn_classic_led_gpio 
+0030 6808c86a fetcht 1 ,mem_quickconn_classic_led_gpio 
 0031 2020680e branch gpio_config_output 
 
 p_app_check_key_gpio:
 0032 da200000 arg 0 ,rega 
-0033 6808c85f fetcht 1 ,mem_quickconn_sel_27_gpio 
+0033 6808c866 fetcht 1 ,mem_quickconn_sel_27_gpio 
 0034 2040681d call gpio_get_bit 
 0035 7920a200 setflag true ,0 ,rega 
-0036 6808c860 fetcht 1 ,mem_quickconn_sel_28_gpio 
+0036 6808c867 fetcht 1 ,mem_quickconn_sel_28_gpio 
 0037 2040681d call gpio_get_bit 
 0038 7920a201 setflag true ,1 ,rega 
 0039 1a227e00 copy rega ,pdata 
@@ -77,36 +77,36 @@
 0040 20600000 rtn 
 
 p_app_mode_select_24g_receiver:
-0041 6000c85d store 1 ,mem_app_mode_select 
-0042 6808c861 fetcht 1 ,mem_quickconn_24g_led_gpio 
+0041 6000c864 store 1 ,mem_app_mode_select 
+0042 6808c868 fetcht 1 ,mem_quickconn_24g_led_gpio 
 0043 20406829 call gpio_out_active 
-0044 202004d5 branch p_g24_receiver_init 
+0044 202004ed branch p_g24_receiver_init 
 
 p_app_mode_select_24g_transmitter:
-0045 6000c85d store 1 ,mem_app_mode_select 
-0046 6808c861 fetcht 1 ,mem_quickconn_24g_led_gpio 
+0045 6000c864 store 1 ,mem_app_mode_select 
+0046 6808c868 fetcht 1 ,mem_quickconn_24g_led_gpio 
 0047 20406829 call gpio_out_active 
-0048 6808c862 fetcht 1 ,mem_quickconn_ble_led_gpio 
+0048 6808c869 fetcht 1 ,mem_quickconn_ble_led_gpio 
 0049 20406829 call gpio_out_active 
-004a 6808c863 fetcht 1 ,mem_quickconn_classic_led_gpio 
+004a 6808c86a fetcht 1 ,mem_quickconn_classic_led_gpio 
 004b 20406829 call gpio_out_active 
 004c 2020034b branch p_g24_transmitter_init 
 
 p_app_mode_select_ble:
-004d 6000c85d store 1 ,mem_app_mode_select 
+004d 6000c864 store 1 ,mem_app_mode_select 
 004e 20200198 branch p_le_start_scan 
 
 p_app_mode_select_classic:
-004f 6000c85d store 1 ,mem_app_mode_select 
+004f 6000c864 store 1 ,mem_app_mode_select 
 0050 202002b1 branch p_classic_start_page_scan 
 
 p_app_mode_check_again:
-0051 6800c85d fetch 1 ,mem_app_mode_select 
+0051 6800c864 fetch 1 ,mem_app_mode_select 
 0052 c1000000 rtneq quick_conn_24g_receiver 
 
 p_app_mode_check:
 0053 20400032 call p_app_check_key_gpio 
-0054 6808c85d fetcht 1 ,mem_app_mode_select 
+0054 6808c864 fetcht 1 ,mem_app_mode_select 
 0055 98467c00 isub temp ,null 
 0056 20628000 rtn zero 
 0057 2040659a call soft_reset_chip 
@@ -160,7 +160,7 @@
 
 p_classic_master_disconnected:
 0079 58000000 setarg 0x00 
-007a 6001484e store 2 ,mem_rx_data_report_id 
+007a 60014855 store 2 ,mem_rx_data_report_id 
 007b 204002b1 call p_classic_start_page_scan 
 007c 20400182 call p_usb_classic_disconnected 
 007d 20200196 branch p_usb_in_data_push 
@@ -168,8 +168,8 @@
 p_le_master_disconnected:
 007e 58000000 setarg 0 
 007f 6003448f store 6 ,mem_le_conn_peer_addr 
-0080 6000c836 store 1 ,mem_le_master_connected 
-0081 70483702 jam 2 ,mem_le_send_write_request_count 
+0080 6000c83d store 1 ,mem_le_master_connected 
+0081 70483e02 jam 2 ,mem_le_send_write_request_count 
 0082 20400198 call p_le_start_scan 
 0083 20400176 call p_usb_ble_disconnected 
 0084 20200196 branch p_usb_in_data_push 
@@ -337,11 +337,11 @@
 
 p_usb_get_kb_led_ctrl:
 0102 68009418 fetch 1 ,mem_usb_out_data + 6 
-0103 6000c85e store 1 ,mem_usb_rx_kb_led_data 
-0104 6800c85d fetch 1 ,mem_app_mode_select 
+0103 6000c865 store 1 ,mem_usb_rx_kb_led_data 
+0104 6800c864 fetch 1 ,mem_app_mode_select 
 0105 c00082a5 beq quick_conn_ble ,p_le_send_kb_led_ctrl 
 0106 c001033d beq quick_conn_classic ,p_classic_send_kb_led_ctrl 
-0107 c0000622 beq quick_conn_24g_receiver ,p_g24_send_kb_led_ctrl 
+0107 c000063e beq quick_conn_24g_receiver ,p_g24_send_kb_led_ctrl 
 0108 20600000 rtn 
 
 p_usb_init:
@@ -537,7 +537,7 @@
 
 p_le_start_scan:
 0198 70436901 jam on ,mem_le_scan_enable 
-0199 da604838 arg mem_le_scan_led_style ,regc 
+0199 da60483f arg mem_le_scan_led_style ,regc 
 019a 20200059 branch p_app_led_config 
 
 p_le_master_dispatch:
@@ -564,7 +564,7 @@
 01ab 2022d608 branch le_create_conn ,zero 
 
 p_le_addr_compare:
-01ac 680b480f fetcht 6 ,mem_le_slave_peer_addr 
+01ac 680b4816 fetcht 6 ,mem_le_slave_peer_addr 
 01ad 98467c00 isub temp ,null 
 01ae 24628000 nrtn zero 
 01af 680082ec fetch 1 ,mem_le_rxbuf + 19 
@@ -572,15 +572,15 @@
 01b1 1fe67c14 sub pdata ,20 ,null 
 01b2 242101c2 nbranch p_le_no_device_name_process ,positive 
 01b3 1fe0ffff increase -1 ,pdata 
-01b4 6000c815 store 1 ,mem_le_rx_adv_data_len 
+01b4 6000c81c store 1 ,mem_le_rx_adv_data_len 
 01b5 1fe27200 copy pdata ,loopcnt 
-01b6 d8a04816 arg mem_le_rx_adv_data ,contw 
+01b6 d8a0481d arg mem_le_rx_adv_data ,contw 
 01b7 d8c002ee arg mem_le_rxbuf + 21 ,contr 
 01b8 20407f01 call memcpy 
 
 p_le_no_device_name:
 01b9 6803044f fetch 6 ,mem_le_plap 
-01ba 60034809 store 6 ,mem_app_peer_addr 
+01ba 60034810 store 6 ,mem_app_peer_addr 
 01bb 7043671c jam 28 ,mem_le_conn_interval 
 01bc 58000050 setarg 0x50 
 01bd 6001449c store 2 ,mem_le_timeout 
@@ -590,7 +590,7 @@
 01c1 202001c4 branch p_le_search_adv_type_loop 
 
 p_le_no_device_name_process:
-01c2 70481500 jam 0 ,mem_le_rx_adv_data_len 
+01c2 70481c00 jam 0 ,mem_le_rx_adv_data_len 
 01c3 202001b9 branch p_le_no_device_name 
 
 p_le_search_adv_type_loop:
@@ -605,9 +605,9 @@
 
 p_le_adv_type_found_appearance:
 01cc e8c08000 ifetch 1 ,contr 
-01cd 70483501 jam 1 ,mem_le_connect_device_type 
+01cd 70483c01 jam 1 ,mem_le_connect_device_type 
 01ce c1610000 rtneq 0xc2 
-01cf 70483500 jam 0 ,mem_le_connect_device_type 
+01cf 70483c00 jam 0 ,mem_le_connect_device_type 
 01d0 c1608000 rtneq 0xc1 
 01d1 20600000 rtn 
 
@@ -621,12 +621,12 @@
 01d6 20400171 call p_usb_ble_connected 
 01d7 20400196 call p_usb_in_data_push 
 01d8 20400191 call p_usb_bt_device_name 
-01d9 6800c815 fetch 1 ,mem_le_rx_adv_data_len 
+01d9 6800c81c fetch 1 ,mem_le_rx_adv_data_len 
 01da 600093d5 store 1 ,mem_usb_in_data + 3 
 01db 203a0196 branch p_usb_in_data_push ,blank 
 01dc 1fe27200 copy pdata ,loopcnt 
 01dd d8a013d6 arg mem_usb_in_data + 4 ,contw 
-01de d8c04816 arg mem_le_rx_adv_data ,contr 
+01de d8c0481d arg mem_le_rx_adv_data ,contr 
 01df 20407f01 call memcpy 
 01e0 20200196 branch p_usb_in_data_push 
 
@@ -681,7 +681,7 @@
 0206 20600000 rtn 
 
 p_le_parse_0x19_handle_value:
-0207 6800c835 fetch 1 ,mem_le_connect_device_type 
+0207 6800c83c fetch 1 ,mem_le_connect_device_type 
 0208 203a0217 branch p_le_usb_tx_0x19_handle_kb_data ,blank 
 
 p_le_usb_tx_mouse_data:
@@ -718,20 +718,20 @@
 p_le_usb_tx_kb_multimedia:
 021e 20400167 call p_usb_kb_multimedia_data_header 
 021f 680102e2 fetch 2 ,mem_le_rxbuf + 9 
-0220 60014975 store 2 ,mem_quickconn_media_data 
-0221 70497400 jam 0 ,mem_quickconn_data_bit1_count 
+0220 6001497c store 2 ,mem_quickconn_media_data 
+0221 70497b00 jam 0 ,mem_quickconn_data_bit1_count 
 0222 680202e2 fetch 4 ,mem_le_rxbuf + 9 
 0223 20400228 call p_usb_tx_kb_multimedia_data_bit1_check 
 0224 7013d603 jam 3 ,mem_usb_in_data + 4 
-0225 68014975 fetch 2 ,mem_quickconn_media_data 
+0225 6801497c fetch 2 ,mem_quickconn_media_data 
 0226 600113d7 store 2 ,mem_usb_in_data + 5 
 0227 20200196 branch p_usb_in_data_push 
 
 p_usb_tx_kb_multimedia_data_bit1_check:
 0228 1fe22400 copy pdata ,regb 
-0229 6808c974 fetcht 1 ,mem_quickconn_data_bit1_count 
+0229 6808c97b fetcht 1 ,mem_quickconn_data_bit1_count 
 022a 18408401 increase 1 ,temp 
-022b 6008c974 storet 1 ,mem_quickconn_data_bit1_count 
+022b 6008c97b storet 1 ,mem_quickconn_data_bit1_count 
 022c 18467c01 sub temp ,1 ,null 
 022d 24628000 nrtn zero 
 022e 1fe20400 copy pdata ,temp 
@@ -822,7 +822,7 @@
 
 p_usb_tx_kb_multimedia_ac_favorites:
 026b 5800022a setarg 0x022a 
-026c 60014975 store 2 ,mem_quickconn_media_data 
+026c 6001497c store 2 ,mem_quickconn_media_data 
 026d 20600000 rtn 
 
 p_usb_tx_kb_multimedia_samsung_setup_shortcuts:
@@ -897,7 +897,7 @@
 028e 580001ae setarg 0x01ae 
 
 p_quickconn_media_data_store:
-028f 60014975 store 2 ,mem_quickconn_media_data 
+028f 6001497c store 2 ,mem_quickconn_media_data 
 0290 20600000 rtn 
 
 p_le_usb_tx_kb_sysctrl:
@@ -924,32 +924,32 @@
 02a1 20207daf branch check_51cmd_once + 8 
 
 p_check_51cmd_le_start_con:
-02a2 68034809 fetch 6 ,mem_app_peer_addr 
+02a2 68034810 fetch 6 ,mem_app_peer_addr 
 02a3 6003448f store 6 ,mem_le_conn_peer_addr 
 02a4 20207e15 branch check_51cmd_le_start_con 
 
 p_le_send_kb_led_ctrl:
-02a5 6800c836 fetch 1 ,mem_le_master_connected 
+02a5 6800c83d fetch 1 ,mem_le_master_connected 
 02a6 207a0000 rtn blank 
-02a7 70480800 jam conn_sm_null ,mem_le_conn_sm 
+02a7 70480f00 jam conn_sm_null ,mem_le_conn_sm 
 02a8 18002204 force 4 ,rega 
 02a9 20405a82 call le_fifo_malloc_tx_l2cap_gatt 
 02aa 58000052 setarg attop_write_command 
 02ab e0a08000 istore 1 ,contw 
 02ac 58000021 setarg 0x21 
 02ad e0a10000 istore 2 ,contw 
-02ae 6800c85e fetch 1 ,mem_usb_rx_kb_led_data 
+02ae 6800c865 fetch 1 ,mem_usb_rx_kb_led_data 
 02af e0a10000 istore 2 ,contw 
 02b0 20600000 rtn 
 
 p_classic_start_page_scan:
 02b1 70409302 jam 2 ,mem_scan_mode 
-02b2 da604843 arg mem_classic_page_scan_led_style ,regc 
+02b2 da60484a arg mem_classic_page_scan_led_style ,regc 
 02b3 20200059 branch p_app_led_config 
 
 p_newconn_init:
 02b4 20402441 call newconn_init + 1 
-02b5 6800c85d fetch 1 ,mem_app_mode_select 
+02b5 6800c864 fetch 1 ,mem_app_mode_select 
 02b6 c1810000 rtnne quick_conn_classic 
 02b7 58000300 setarg 0x0300 
 02b8 60010051 store 2 ,mem_supervision_to 
@@ -1008,18 +1008,18 @@
 02dd 7013d603 jam 0x03 ,mem_usb_in_data + 4 
 02de 1a220c00 copy rega ,contr 
 02df e8c10000 ifetch 2 ,contr 
-02e0 60014975 store 2 ,mem_quickconn_media_data 
-02e1 70497400 jam 0 ,mem_quickconn_data_bit1_count 
+02e0 6001497c store 2 ,mem_quickconn_media_data 
+02e1 70497b00 jam 0 ,mem_quickconn_data_bit1_count 
 02e2 1a220c00 copy rega ,contr 
 02e3 e8c20000 ifetch 4 ,contr 
 02e4 20400228 call p_usb_tx_kb_multimedia_data_bit1_check 
-02e5 68014975 fetch 2 ,mem_quickconn_media_data 
+02e5 6801497c fetch 2 ,mem_quickconn_media_data 
 02e6 600113d7 store 2 ,mem_usb_in_data + 5 
 02e7 20400196 call p_usb_in_data_push 
 02e8 20204dfc branch l2cap_rx_reset_state 
 
 p_classic_usb_tx_report_id2_data:
-02e9 6801484e fetch 2 ,mem_rx_data_report_id 
+02e9 68014855 fetch 2 ,mem_rx_data_report_id 
 02ea 203a02dc branch p_classic_usb_tx_kb_multimedia ,blank 
 
 p_classic_usb_tx_mouse_data_8b:
@@ -1042,7 +1042,7 @@
 02f9 20204dfc branch l2cap_rx_reset_state 
 
 p_classic_usb_tx_report_id3_data:
-02fa 6801484e fetch 2 ,mem_rx_data_report_id 
+02fa 68014855 fetch 2 ,mem_rx_data_report_id 
 02fb 203a0302 branch p_classic_usb_tx_report_id3_kb_data ,blank 
 
 p_classic_usb_tx_mouse_data:
@@ -1060,7 +1060,7 @@
 
 p_classic_usb_tx_mouse_name:
 0305 58000001 setarg 0x01 
-0306 6001484e store 2 ,mem_rx_data_report_id 
+0306 60014855 store 2 ,mem_rx_data_report_id 
 
 p_classic_usb_tx_device_name:
 0307 20400191 call p_usb_bt_device_name 
@@ -1078,7 +1078,7 @@
 
 p_classic_usb_tx_kb_name:
 0311 58000000 setarg 0x00 
-0312 6001484e store 2 ,mem_rx_data_report_id 
+0312 60014855 store 2 ,mem_rx_data_report_id 
 0313 20200307 branch p_classic_usb_tx_device_name 
 
 p_hid_rx_process:
@@ -1104,7 +1104,7 @@
 0323 20205d1e branch parse_lmp0 
 
 p_parse_lmp_sniff_req:
-0324 6801484e fetch 2 ,mem_rx_data_report_id 
+0324 68014855 fetch 2 ,mem_rx_data_report_id 
 0325 203a5ef0 branch lmp_reject_sniff ,blank 
 0326 20205ed6 branch parse_lmp_sniff_req 
 
@@ -1149,7 +1149,7 @@
 
 p_g24_dispatch:
 0346 c5930195 bmark0 mark_24g ,p_usb_dispatch 
-0347 6800c85d fetch 1 ,mem_app_mode_select 
+0347 6800c864 fetch 1 ,mem_app_mode_select 
 0348 c00004d0 beq quick_conn_24g_receiver ,p_g24_receiver 
 0349 c0018358 beq quick_conn_24g_transmitter ,p_g24_transmitter 
 034a 20600000 rtn 
@@ -1262,7 +1262,7 @@
 
 p_g24_store_dongle_addr:
 039d 68024700 fetch 4 ,mem_24g_rxpayload + 2 
-039e 20200648 branch p_g24_update_addr_and_synccrc8 
+039e 20200664 branch p_g24_update_addr_and_synccrc8 
 
 p_g24_tx_attemp_data_prep:
 039f 70119eff jam 0xff ,mem_24g_common_temp 
@@ -1273,7 +1273,7 @@
 03a4 d8400006 arg 6 ,temp 
 03a5 da20119e arg mem_24g_common_temp ,rega 
 03a6 204003a8 call p_g24_put_data_in_buff 
-03a7 20200663 branch p_g24_transmit_prep 
+03a7 2020067f branch p_g24_transmit_prep 
 
 p_g24_put_data_in_buff:
 03a8 6008c720 storet 1 ,mem_24g_datalen 
@@ -1310,7 +1310,7 @@
 p_g24_pair_init:
 03be 70472a4e jam g24_pair_ch ,mem_24g_ch 
 03bf 6802472c fetch 4 ,mem_24g_paring_addr 
-03c0 20200648 branch p_g24_update_addr_and_synccrc8 
+03c0 20200664 branch p_g24_update_addr_and_synccrc8 
 
 p_g24_auto_pair_first_attemp:
 03c1 68024757 fetch 4 ,mem_24g_device_addr 
@@ -1322,8 +1322,8 @@
 03c7 20600000 rtn 
 
 p_g24_ch_syncword_crc8_init:
-03c8 20400649 call p_g24_syncword_crc8 
-03c9 20200680 branch p_g24_ch 
+03c8 20400665 call p_g24_syncword_crc8 
+03c9 2020069c branch p_g24_ch 
 
 p_g24_auto_pair_all_powerful:
 03ca 680247ed fetch 4 ,mem_24g_allpowerful_addr 
@@ -1365,7 +1365,7 @@
 03e2 793ffe04 set0 bit_hop ,pdata 
 03e3 6000c721 store 1 ,mem_24g_data_type 
 03e4 6000c6dc store 1 ,mem_24g_txpayload 
-03e5 20200680 branch p_g24_ch 
+03e5 2020069c branch p_g24_ch 
 
 p_g24_rf_hop_attemp_again:
 03e6 6800c7db fetch 1 ,mem_24g_rf_hop_ch 
@@ -1376,7 +1376,7 @@
 03e9 1fe0fe01 increase 1 ,pdata 
 03ea 6000c7d9 store 1 ,mem_24g_hop_fastly_cnt 
 03eb c00203ef beq 4 ,p_g24_rf_hop_fastly_exit 
-03ec 20400680 call p_g24_ch 
+03ec 2040069c call p_g24_ch 
 03ed 70476502 jam 2 ,mem_24g_max_retry 
 03ee 2020042d branch p_g24_transmit_packet 
 
@@ -1426,7 +1426,7 @@
 040d 1fe0ffff increase -1 ,pdata 
 040e 6000c7de store 1 ,mem_24g_sync_cnt 
 040f 7047dd02 jam 2 ,mem_24g_rf_work_stage 
-0410 20400680 call p_g24_ch 
+0410 2040069c call p_g24_ch 
 0411 70476504 jam 4 ,mem_24g_max_retry 
 0412 20600000 rtn 
 
@@ -1434,7 +1434,7 @@
 0413 7047dd03 jam 3 ,mem_24g_rf_work_stage 
 0414 6800c7db fetch 1 ,mem_24g_rf_hop_ch 
 0415 243a03e6 nbranch p_g24_rf_hop_attemp_again ,blank 
-0416 20400680 call p_g24_ch 
+0416 2040069c call p_g24_ch 
 0417 70476502 jam 2 ,mem_24g_max_retry 
 0418 20600000 rtn 
 
@@ -1446,7 +1446,7 @@
 041b 2040041f call p_g24_package_data 
 
 p_g24_txdata_enable_tx:
-041c 20400663 call p_g24_transmit_prep 
+041c 2040067f call p_g24_transmit_prep 
 041d 70472501 jam ensure_on_24g ,mem_24g_ensure 
 041e 20600000 rtn 
 
@@ -1497,15 +1497,15 @@
 
 p_g24_transmit_receive_ack:
 0440 7857fc00 disable user3 
-0441 204006e4 call p_g24_transmit 
+0441 20400700 call p_g24_transmit 
 0442 18002a00 force 0 ,radio_ctrl 
 0443 68024748 fetch 4 ,mem_24g_addr 
 0444 98001200 iforce access 
 0445 68088017 fetcht 1 ,mem_last_freq 
 0446 2040291f call set_freq_rx 
 0447 20402924 call rf_rx_enable 
-0448 204006a3 call p_g24_receive_rxon 
-0449 205786df call p_g24_end_of_packet ,user3 
+0448 204006bf call p_g24_receive_rxon 
+0449 205786fb call p_g24_end_of_packet ,user3 
 044a 20600000 rtn 
 
 p_g24_retransmit:
@@ -1533,7 +1533,7 @@
 p_g24_tx_hop_ch_process:
 045b 6800c729 fetch 1 ,mem_24g_retry 
 045c 1fe67c0b sub pdata ,11 ,null 
-045d 24210680 nbranch p_g24_ch ,positive 
+045d 2421069c nbranch p_g24_ch ,positive 
 045e 1fe0fe01 increase 1 ,pdata 
 045f 6000c729 store 1 ,mem_24g_retry 
 0460 c00103da beq 2 ,p_g24_hop_ch_enable 
@@ -1543,7 +1543,7 @@
 0464 20600000 rtn 
 
 p_g24_ackpayload_parse:
-0465 20400656 call p_g24_read_len_pid_crc 
+0465 20400672 call p_g24_read_len_pid_crc 
 0466 6800c71e fetch 1 ,mem_24g_rxdata_length 
 0467 207a0000 rtn blank 
 0468 98007200 iforce loopcnt 
@@ -1618,7 +1618,7 @@
 0495 700a9939 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
 0496 20407d86 call ui_ipc_send_event 
 0497 68024700 fetch 4 ,mem_24g_rxpayload + 2 
-0498 20400648 call p_g24_update_addr_and_synccrc8 
+0498 20400664 call p_g24_update_addr_and_synccrc8 
 0499 2020043c branch p_g24_transmit_abandon 
 
 p_g24_check_51cmd_stop_24g:
@@ -1692,742 +1692,778 @@
 04cf 202004c6 branch p_ms_y_down + 2 
 
 p_g24_receiver:
-04d0 204004df call p_dongle_check_mode 
+04d0 204004f7 call p_dongle_check_mode 
 
 p_g24_receiver_main_loop:
 04d1 20400053 call p_app_mode_check 
-04d2 204004e3 call p_g24_dongle_work_mode 
+04d2 204004fb call p_g24_dongle_work_mode 
 04d3 20400195 call p_usb_dispatch 
-04d4 202004d1 branch p_g24_receiver_main_loop 
+04d4 204004d6 call p_g24_10ms_timer_event 
+04d5 202004d1 branch p_g24_receiver_main_loop 
+
+p_g24_10ms_timer_event:
+04d6 d8e00006 arg 6 ,queue 
+04d7 20407f16 call timer_check 
+04d8 247a0000 nrtn blank 
+04d9 204004dd call p_g24_ai_key_release_check 
+
+p_g24_10ms_timer_init:
+04da d8e00006 arg 6 ,queue 
+04db 58000020 setarg 32 
+04dc 20207f08 branch timer_init 
+
+p_g24_ai_key_release_check:
+04dd 6800c808 fetch 1 ,mem_24g_receive_audio_data_flag 
+04de 203a04e0 branch p_g24_no_recv_audio_data ,blank 
+04df 20600000 rtn 
+
+p_g24_no_recv_audio_data:
+04e0 6800c809 fetch 1 ,mem_24g_release_ai_key_count 
+04e1 1fe0fe01 increase 1 ,pdata 
+04e2 6000c809 store 1 ,mem_24g_release_ai_key_count 
+04e3 1fe67c0a sub pdata ,10 ,null 
+04e4 24628000 nrtn zero 
+04e5 70480900 jam 0 ,mem_24g_release_ai_key_count 
+04e6 6800c80a fetch 1 ,mem_24g_tx_ai_key_release_flag 
+04e7 207a0000 rtn blank 
+04e8 70480a00 jam 0 ,mem_24g_tx_ai_key_release_flag 
+04e9 20400153 call p_usb_ai_key_data_header 
+04ea 6802480b fetch 4 ,mem_24g_release_ai_key_data 
+04eb 600213d6 store 4 ,mem_usb_in_data + 4 
+04ec 20200196 branch p_usb_in_data_push 
 
 p_g24_receiver_init:
-04d5 79200026 set1 mark_24g ,mark 
-04d6 7920002c set1 mark_24g_rxmode ,mark 
-04d7 58007300 setarg 0x7300 
-04d8 60014723 store 2 ,mem_24g_rx_window 
-04d9 680247ed fetch 4 ,mem_24g_allpowerful_addr 
-04da 6002478d store 4 ,mem_24g_rx_addr 
-04db 7047a11e jam 0x1e ,mem_24g_hop_interval 
-04dc df200080 arg 0x80 ,loopcnt 
-04dd d8a00d9e arg mem_rssi_noise_buffer ,contw 
-04de 20207ec6 branch memset0 
+04ed 79200026 set1 mark_24g ,mark 
+04ee 7920002c set1 mark_24g_rxmode ,mark 
+04ef 58007300 setarg 0x7300 
+04f0 60014723 store 2 ,mem_24g_rx_window 
+04f1 680247ed fetch 4 ,mem_24g_allpowerful_addr 
+04f2 6002478d store 4 ,mem_24g_rx_addr 
+04f3 7047a11e jam 0x1e ,mem_24g_hop_interval 
+04f4 df200080 arg 0x80 ,loopcnt 
+04f5 d8a00d9e arg mem_rssi_noise_buffer ,contw 
+04f6 20207ec6 branch memset0 
 
 p_dongle_check_mode:
-04df 7047a200 jam 0 ,mem_24g_ackpayload_enable 
+04f7 7047a200 jam 0 ,mem_24g_ackpayload_enable 
 
 p_dongle_work_mode_enable:
-04e0 70479200 jam dongle_work ,mem_dongle_work_mode 
-04e1 70479100 jam clear_init ,mem_dongle_mode_init 
-04e2 20600000 rtn 
+04f8 70479200 jam dongle_work ,mem_dongle_work_mode 
+04f9 70479100 jam clear_init ,mem_dongle_mode_init 
+04fa 20600000 rtn 
 
 p_g24_dongle_work_mode:
-04e3 6800c792 fetch 1 ,mem_dongle_work_mode 
-04e4 c1800000 rtnne dongle_work 
+04fb 6800c792 fetch 1 ,mem_dongle_work_mode 
+04fc c1800000 rtnne dongle_work 
 
 p_g24_dongle_work_mode_start:
-04e5 204004ea call p_g24_dongle_work_init 
-04e6 204004f6 call p_g24_ch_process 
-04e7 20400567 call p_g24_receive_packet_start 
-04e8 20400515 call p_g24_blank_data_process 
-04e9 20200559 branch p_g24_rx_nodata_process 
+04fd 20400502 call p_g24_dongle_work_init 
+04fe 2040050f call p_g24_ch_process 
+04ff 2040057f call p_g24_receive_packet_start 
+0500 2040052e call p_g24_blank_data_process 
+0501 20200571 branch p_g24_rx_nodata_process 
 
 p_g24_dongle_work_init:
-04ea 6800c791 fetch 1 ,mem_dongle_mode_init 
-04eb c3800000 rtnbit1 dongle_work 
-04ec 79207e00 set1 dongle_work ,pdata 
-04ed 6000c791 store 1 ,mem_dongle_mode_init 
-04ee 7047a200 jam 0 ,mem_24g_ackpayload_enable 
-04ef 700d3800 jam 0 ,mem_usb_tx_enable 
-04f0 70479b01 jam 1 ,mem_24g_abort_packet 
-04f1 70471f00 jam 0 ,mem_24g_pid 
-04f2 6802478d fetch 4 ,mem_24g_rx_addr 
-04f3 20400648 call p_g24_update_addr_and_synccrc8 
-04f4 20400680 call p_g24_ch 
-04f5 2020057b branch p_g24_rx_interrupt_clear 
+0502 6800c791 fetch 1 ,mem_dongle_mode_init 
+0503 c3800000 rtnbit1 dongle_work 
+0504 79207e00 set1 dongle_work ,pdata 
+0505 6000c791 store 1 ,mem_dongle_mode_init 
+0506 7047a200 jam 0 ,mem_24g_ackpayload_enable 
+0507 700d3800 jam 0 ,mem_usb_tx_enable 
+0508 70479b01 jam 1 ,mem_24g_abort_packet 
+0509 70471f00 jam 0 ,mem_24g_pid 
+050a 6802478d fetch 4 ,mem_24g_rx_addr 
+050b 20400664 call p_g24_update_addr_and_synccrc8 
+050c 2040069c call p_g24_ch 
+050d 204004da call p_g24_10ms_timer_init 
+050e 20200594 branch p_g24_rx_interrupt_clear 
 
 p_g24_ch_process:
-04f6 6800c79b fetch 1 ,mem_24g_abort_packet 
-04f7 c000850f beq 1 ,p_g24_noise_rssi 
-04f8 6800c7a3 fetch 1 ,mem_24g_hop_packet 
-04f9 c0008509 beq 1 ,p_g24_ch_receive_hop_pac 
-04fa 680a479d fetcht 4 ,mem_24g_hop_btclk 
-04fb 1c427e00 copy clkn_bt ,pdata 
-04fc 98467c00 isub temp ,null 
-04fd 24412d18 ncall g24_timer_timeout ,positive 
-04fe 1fe22400 copy pdata ,regb 
-04ff 6802479d fetch 4 ,mem_24g_hop_btclk 
-0500 6808c7a1 fetcht 1 ,mem_24g_hop_interval 
-0501 98408400 iadd temp ,temp 
-0502 1a427e00 copy regb ,pdata 
-0503 98467c00 isub temp ,null 
-0504 24610000 nrtn positive 
-0505 793ffe1c set0 28 ,pdata 
-0506 6002479d store 4 ,mem_24g_hop_btclk 
-0507 70479b01 jam 1 ,mem_24g_abort_packet 
-0508 20200680 branch p_g24_ch 
+050f 6800c79b fetch 1 ,mem_24g_abort_packet 
+0510 c0008528 beq 1 ,p_g24_noise_rssi 
+0511 6800c7a3 fetch 1 ,mem_24g_hop_packet 
+0512 c0008522 beq 1 ,p_g24_ch_receive_hop_pac 
+0513 680a479d fetcht 4 ,mem_24g_hop_btclk 
+0514 1c427e00 copy clkn_bt ,pdata 
+0515 98467c00 isub temp ,null 
+0516 24412d18 ncall g24_timer_timeout ,positive 
+0517 1fe22400 copy pdata ,regb 
+0518 6802479d fetch 4 ,mem_24g_hop_btclk 
+0519 6808c7a1 fetcht 1 ,mem_24g_hop_interval 
+051a 98408400 iadd temp ,temp 
+051b 1a427e00 copy regb ,pdata 
+051c 98467c00 isub temp ,null 
+051d 24610000 nrtn positive 
+051e 793ffe1c set0 28 ,pdata 
+051f 6002479d store 4 ,mem_24g_hop_btclk 
+0520 70479b01 jam 1 ,mem_24g_abort_packet 
+0521 2020069c branch p_g24_ch 
 
 p_g24_ch_receive_hop_pac:
-0509 7047a300 jam 0 ,mem_24g_hop_packet 
-050a 20200680 branch p_g24_ch 
+0522 7047a300 jam 0 ,mem_24g_hop_packet 
+0523 2020069c branch p_g24_ch 
 
 p_g24_ch_timer_reinit:
-050b 1c427e00 copy clkn_bt ,pdata 
-050c 6002479d store 4 ,mem_24g_hop_btclk 
-050d 70479c00 jam 0 ,mem_24g_rf_laststa 
-050e 20600000 rtn 
+0524 1c427e00 copy clkn_bt ,pdata 
+0525 6002479d store 4 ,mem_24g_hop_btclk 
+0526 70479c00 jam 0 ,mem_24g_rf_laststa 
+0527 20600000 rtn 
 
 p_g24_noise_rssi:
-050f da200d9e arg mem_rssi_noise_buffer ,rega 
-0510 2040063c call p_rssi_average 
-0511 6008c7c6 storet 1 ,mem_rssi_noise_avg 
-0512 18467c50 sub temp ,rssi_thresh_noise ,null 
-0513 24610000 nrtn positive 
-0514 20200680 branch p_g24_ch 
+0528 da200d9e arg mem_rssi_noise_buffer ,rega 
+0529 20400658 call p_rssi_average 
+052a 6008c7c6 storet 1 ,mem_rssi_noise_avg 
+052b 18467c50 sub temp ,rssi_thresh_noise ,null 
+052c 24610000 nrtn positive 
+052d 2020069c branch p_g24_ch 
 
 p_g24_blank_data_process:
-0515 20400518 call p_g24_ms_blank_data 
-0516 20400523 call p_g24_kb_blank_data 
-0517 2020052c branch p_g24_kb_mul_blank_data 
+052e 20400531 call p_g24_ms_blank_data 
+052f 2040053c call p_g24_kb_blank_data 
+0530 20200545 branch p_g24_kb_mul_blank_data 
 
 p_g24_ms_blank_data:
-0518 6800c7bc fetch 1 ,mem_24g_ms_blank_data_enable 
-0519 207a0000 rtn blank 
-051a d8e0000b arg timer_new_ms_blank ,queue 
-051b 20407f16 call timer_check 
-051c 247a0000 nrtn blank 
-051d 7047bc00 jam 0 ,mem_24g_ms_blank_data_enable 
-051e 20400521 call p_usb_pc_blank_data2ep2 
-051f 2040015d call p_usb_ms_data_header 
-0520 20200196 branch p_usb_in_data_push 
+0531 6800c7bc fetch 1 ,mem_24g_ms_blank_data_enable 
+0532 207a0000 rtn blank 
+0533 d8e0000b arg timer_new_ms_blank ,queue 
+0534 20407f16 call timer_check 
+0535 247a0000 nrtn blank 
+0536 7047bc00 jam 0 ,mem_24g_ms_blank_data_enable 
+0537 2040053a call p_usb_pc_blank_data2ep2 
+0538 2040015d call p_usb_ms_data_header 
+0539 20200196 branch p_usb_in_data_push 
 
 p_usb_pc_blank_data2ep2:
-0521 d8a013d2 arg mem_usb_in_data ,contw 
-0522 20207ed2 branch clear_mem_512 
+053a d8a013d2 arg mem_usb_in_data ,contw 
+053b 20207ed2 branch clear_mem_512 
 
 p_g24_kb_blank_data:
-0523 6800c7ba fetch 1 ,mem_24g_kb_blank_data_enable 
-0524 207a0000 rtn blank 
-0525 d8e0000e arg timer_new_kb_blank ,queue 
-0526 20407f16 call timer_check 
-0527 247a0000 nrtn blank 
-0528 7047ba00 jam 0 ,mem_24g_kb_blank_data_enable 
-0529 20400521 call p_usb_pc_blank_data2ep2 
-052a 20400162 call p_usb_kb_normal_data_header 
-052b 20200196 branch p_usb_in_data_push 
+053c 6800c7ba fetch 1 ,mem_24g_kb_blank_data_enable 
+053d 207a0000 rtn blank 
+053e d8e0000e arg timer_new_kb_blank ,queue 
+053f 20407f16 call timer_check 
+0540 247a0000 nrtn blank 
+0541 7047ba00 jam 0 ,mem_24g_kb_blank_data_enable 
+0542 2040053a call p_usb_pc_blank_data2ep2 
+0543 20400162 call p_usb_kb_normal_data_header 
+0544 20200196 branch p_usb_in_data_push 
 
 p_g24_kb_mul_blank_data:
-052c 6800c7bb fetch 1 ,mem_24g_kb_mul_blank_data_enable 
-052d 207a0000 rtn blank 
-052e d8e0000c arg timer_new_kb_mul_blank ,queue 
-052f 20407f16 call timer_check 
-0530 247a0000 nrtn blank 
-0531 7047bb00 jam 0 ,mem_24g_kb_mul_blank_data_enable 
-0532 20400521 call p_usb_pc_blank_data2ep2 
-0533 20400167 call p_usb_kb_multimedia_data_header 
-0534 20200196 branch p_usb_in_data_push 
+0545 6800c7bb fetch 1 ,mem_24g_kb_mul_blank_data_enable 
+0546 207a0000 rtn blank 
+0547 d8e0000c arg timer_new_kb_mul_blank ,queue 
+0548 20407f16 call timer_check 
+0549 247a0000 nrtn blank 
+054a 7047bb00 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+054b 2040053a call p_usb_pc_blank_data2ep2 
+054c 20400167 call p_usb_kb_multimedia_data_header 
+054d 20200196 branch p_usb_in_data_push 
 
 p_g24_receive_transmit_ack:
-0535 2040057b call p_g24_rx_interrupt_clear 
-0536 2040069a call p_g24_receive_packet 
-0537 24778000 nrtn user3 
-0538 20200539 branch p_g24_transmit_ack 
+054e 20400594 call p_g24_rx_interrupt_clear 
+054f 204006b6 call p_g24_receive_packet 
+0550 24778000 nrtn user3 
 
 p_g24_transmit_ack:
-0539 6800c69a fetch 1 ,mem_24g_rxbuf 
-053a 6000c721 store 1 ,mem_24g_data_type 
-053b 20400656 call p_g24_read_len_pid_crc 
+0551 6800c69a fetch 1 ,mem_24g_rxbuf 
+0552 6000c721 store 1 ,mem_24g_data_type 
+0553 20400672 call p_g24_read_len_pid_crc 
 
 p_g24tx_with_ack:
-053c 20400540 call p_g24_ackpayload_prep 
-053d 20400663 call p_g24_transmit_prep 
-053e 204006e4 call p_g24_transmit 
+0554 20400558 call p_g24_ackpayload_prep 
+0555 2040067f call p_g24_transmit_prep 
+0556 20400700 call p_g24_transmit 
 
 p_g24tx_no_ack:
-053f 202006df branch p_g24_end_of_packet 
+0557 202006fb branch p_g24_end_of_packet 
 
 p_g24_ackpayload_prep:
-0540 70472000 jam 0 ,mem_24g_datalen 
-0541 6800c7a2 fetch 1 ,mem_24g_ackpayload_enable 
-0542 207a0000 rtn blank 
-0543 c0008546 beq bind_ackpayload ,p_g24_bind_ackpayload_prep 
-0544 c001854c beq kb_led_ackpayload ,p_g24_kb_led_ackpayload_prep 
-0545 20600000 rtn 
+0558 70472000 jam 0 ,mem_24g_datalen 
+0559 6800c7a2 fetch 1 ,mem_24g_ackpayload_enable 
+055a 207a0000 rtn blank 
+055b c000855e beq bind_ackpayload ,p_g24_bind_ackpayload_prep 
+055c c0018564 beq kb_led_ackpayload ,p_g24_kb_led_ackpayload_prep 
+055d 20600000 rtn 
 
 p_g24_bind_ackpayload_prep:
-0546 7047a200 jam 0 ,mem_24g_ackpayload_enable 
-0547 70472008 jam 0x08 ,mem_24g_datalen 
-0548 df200008 arg 0x08 ,loopcnt 
-0549 d8c04793 arg mem_24g_bind_payload ,contr 
-054a d8a046bc arg mem_24g_txbuf ,contw 
-054b 20207f01 branch memcpy 
+055e 7047a200 jam 0 ,mem_24g_ackpayload_enable 
+055f 70472008 jam 0x08 ,mem_24g_datalen 
+0560 df200008 arg 0x08 ,loopcnt 
+0561 d8c04793 arg mem_24g_bind_payload ,contr 
+0562 d8a046bc arg mem_24g_txbuf ,contw 
+0563 20207f01 branch memcpy 
 
 p_g24_kb_led_ackpayload_prep:
-054c 6800c69c fetch 1 ,mem_24g_rxbuf + 2 
-054d c0008546 beq 0x01 ,p_g24_bind_ackpayload_prep 
-054e c07f8546 beq 0xff ,p_g24_bind_ackpayload_prep 
-054f 7047a200 jam 0 ,mem_24g_ackpayload_enable 
-0550 70472001 jam 0x01 ,mem_24g_datalen 
-0551 df200001 arg 0x01 ,loopcnt 
-0552 d8c0485e arg mem_usb_rx_kb_led_data ,contr 
-0553 d8a046bc arg mem_24g_txbuf ,contw 
-0554 20207f01 branch memcpy 
+0564 6800c69c fetch 1 ,mem_24g_rxbuf + 2 
+0565 c000855e beq 0x01 ,p_g24_bind_ackpayload_prep 
+0566 c07f855e beq 0xff ,p_g24_bind_ackpayload_prep 
+0567 7047a200 jam 0 ,mem_24g_ackpayload_enable 
+0568 70472001 jam 0x01 ,mem_24g_datalen 
+0569 df200001 arg 0x01 ,loopcnt 
+056a d8c04865 arg mem_usb_rx_kb_led_data ,contr 
+056b d8a046bc arg mem_24g_txbuf ,contw 
+056c 20207f01 branch memcpy 
 
 p_g24_enable_nodata_timer:
-0555 70480601 jam 1 ,mem_24g_nodata_timer_enable 
-0556 58001f40 setarg 8000 
-0557 d8e00008 arg timer_nodata ,queue 
-0558 20207f08 branch timer_init 
+056d 70480601 jam 1 ,mem_24g_nodata_timer_enable 
+056e 58001f40 setarg 8000 
+056f d8e00008 arg timer_nodata ,queue 
+0570 20207f08 branch timer_init 
 
 p_g24_rx_nodata_process:
-0559 6800c806 fetch 1 ,mem_24g_nodata_timer_enable 
-055a 207a0000 rtn blank 
-055b d8e00008 arg timer_nodata ,queue 
-055c 20407f16 call timer_check 
-055d 247a0000 nrtn blank 
-055e 70480600 jam 0 ,mem_24g_nodata_timer_enable 
-055f 70480700 jam 0 ,mem_24g_connected_flag 
-0560 2040018c call p_usb_g24_disconnected 
-0561 20200196 branch p_usb_in_data_push 
+0571 6800c806 fetch 1 ,mem_24g_nodata_timer_enable 
+0572 207a0000 rtn blank 
+0573 d8e00008 arg timer_nodata ,queue 
+0574 20407f16 call timer_check 
+0575 247a0000 nrtn blank 
+0576 70480600 jam 0 ,mem_24g_nodata_timer_enable 
+0577 70480700 jam 0 ,mem_24g_connected_flag 
+0578 2040018c call p_usb_g24_disconnected 
+0579 20200196 branch p_usb_in_data_push 
 
 p_g24_connected_upload:
-0562 6800c807 fetch 1 ,mem_24g_connected_flag 
-0563 247a0000 nrtn blank 
-0564 70480701 jam 1 ,mem_24g_connected_flag 
-0565 20400187 call p_usb_g24_connected 
-0566 20200196 branch p_usb_in_data_push 
+057a 6800c807 fetch 1 ,mem_24g_connected_flag 
+057b 247a0000 nrtn blank 
+057c 70480701 jam 1 ,mem_24g_connected_flag 
+057d 20400187 call p_usb_g24_connected 
+057e 20200196 branch p_usb_in_data_push 
 
 p_g24_receive_packet_start:
-0567 20400535 call p_g24_receive_transmit_ack 
-0568 2437857b nbranch p_g24_rx_interrupt_clear ,user3 
-0569 2020056a branch p_g24_receive_packet_parse 
+057f 70480800 jam 0 ,mem_24g_receive_audio_data_flag 
+0580 2040054e call p_g24_receive_transmit_ack 
+0581 24378594 nbranch p_g24_rx_interrupt_clear ,user3 
+0582 20200583 branch p_g24_receive_packet_parse 
 
 p_g24_receive_packet_parse:
-056a 2040057e call p_g24_receive_packet_parse_pid_crc 
-056b 2434057b nbranch p_g24_rx_interrupt_clear ,user 
-056c 6800c71e fetch 1 ,mem_24g_rxdata_length 
-056d 203a057b branch p_g24_rx_interrupt_clear ,blank 
-056e 1fe0fe02 increase 2 ,pdata 
-056f 98007200 iforce loopcnt 
-0570 d8c0469a arg mem_24g_rxbuf ,contr 
-0571 d8a0476b arg mem_24g_rxdata_temp ,contw 
-0572 20407f01 call memcpy 
-0573 20400555 call p_g24_enable_nodata_timer 
-0574 20400562 call p_g24_connected_upload 
-0575 6800c76d fetch 1 ,mem_24g_rxdata_temp + 2 
-0576 c000858c beq 0x01 ,p_g24_data_type1 
-0577 c00105c4 beq 0x02 ,p_g24_data_type2 
-0578 c07f8614 beq 0xff ,p_g24_data_attemp 
-0579 c282058c bbit1 datatype_ai_key ,p_g24_data_type1 
-057a c283858c bbit1 datatype_audio ,p_g24_data_type1 
+0583 20400597 call p_g24_receive_packet_parse_pid_crc 
+0584 24340594 nbranch p_g24_rx_interrupt_clear ,user 
+0585 6800c71e fetch 1 ,mem_24g_rxdata_length 
+0586 203a0594 branch p_g24_rx_interrupt_clear ,blank 
+0587 1fe0fe02 increase 2 ,pdata 
+0588 98007200 iforce loopcnt 
+0589 d8c0469a arg mem_24g_rxbuf ,contr 
+058a d8a0476b arg mem_24g_rxdata_temp ,contw 
+058b 20407f01 call memcpy 
+058c 2040056d call p_g24_enable_nodata_timer 
+058d 2040057a call p_g24_connected_upload 
+058e 6800c76d fetch 1 ,mem_24g_rxdata_temp + 2 
+058f c00085a5 beq 0x01 ,p_g24_data_type1 
+0590 c00105e0 beq 0x02 ,p_g24_data_type2 
+0591 c07f8630 beq 0xff ,p_g24_data_attemp 
+0592 c28205a5 bbit1 datatype_ai_key ,p_g24_data_type1 
+0593 c28385a5 bbit1 datatype_audio ,p_g24_data_type1 
 
 p_g24_rx_interrupt_clear:
-057b d8a0469a arg mem_24g_rxbuf ,contw 
-057c df200042 arg 66 ,loopcnt 
-057d 20207ed4 branch clear_mem 
+0594 d8a0469a arg mem_24g_rxbuf ,contw 
+0595 df200042 arg 66 ,loopcnt 
+0596 20207ed4 branch clear_mem 
 
 p_g24_receive_packet_parse_pid_crc:
-057e 20407fe9 call disable_user 
-057f 6800c763 fetch 1 ,mem_24g_sta_pid 
-0580 6808c764 fetcht 1 ,mem_24g_last_pid 
-0581 98467c00 isub temp ,null 
-0582 2442ffe7 ncall enable_user ,zero 
-0583 6800c763 fetch 1 ,mem_24g_sta_pid 
-0584 6000c764 store 1 ,mem_24g_last_pid 
-0585 6801c75d fetch 3 ,mem_24g_sta_crc 
-0586 6809c760 fetcht 3 ,mem_24g_last_crc 
-0587 98467c00 isub temp ,null 
-0588 2442ffe7 ncall enable_user ,zero 
-0589 6801c75d fetch 3 ,mem_24g_sta_crc 
-058a 6001c760 store 3 ,mem_24g_last_crc 
-058b 20600000 rtn 
+0597 20407fe9 call disable_user 
+0598 6800c763 fetch 1 ,mem_24g_sta_pid 
+0599 6808c764 fetcht 1 ,mem_24g_last_pid 
+059a 98467c00 isub temp ,null 
+059b 2442ffe7 ncall enable_user ,zero 
+059c 6800c763 fetch 1 ,mem_24g_sta_pid 
+059d 6000c764 store 1 ,mem_24g_last_pid 
+059e 6801c75d fetch 3 ,mem_24g_sta_crc 
+059f 6809c760 fetcht 3 ,mem_24g_last_crc 
+05a0 98467c00 isub temp ,null 
+05a1 2442ffe7 ncall enable_user ,zero 
+05a2 6801c75d fetch 3 ,mem_24g_sta_crc 
+05a3 6001c760 store 3 ,mem_24g_last_crc 
+05a4 20600000 rtn 
 
 p_g24_data_type1:
-058c 2040050b call p_g24_ch_timer_reinit 
-058d 6800c79b fetch 1 ,mem_24g_abort_packet 
-058e 6808c76b fetcht 1 ,mem_24g_rxdata_temp 
-058f 284ffe03 isolate1 bit_abort ,temp 
-0590 7920fe00 setflag true ,0 ,pdata 
-0591 6000c79b store 1 ,mem_24g_abort_packet 
-0592 c000861e beq 1 ,p_g24_data_attemp_mouse_abort 
-0593 6800c7a3 fetch 1 ,mem_24g_hop_packet 
-0594 6808c76b fetcht 1 ,mem_24g_rxdata_temp 
-0595 284ffe04 isolate1 bit_hop ,temp 
-0596 7920fe00 setflag true ,0 ,pdata 
-0597 6000c7a3 store 1 ,mem_24g_hop_packet 
+05a5 20400524 call p_g24_ch_timer_reinit 
+05a6 6800c79b fetch 1 ,mem_24g_abort_packet 
+05a7 6808c76b fetcht 1 ,mem_24g_rxdata_temp 
+05a8 284ffe03 isolate1 bit_abort ,temp 
+05a9 7920fe00 setflag true ,0 ,pdata 
+05aa 6000c79b store 1 ,mem_24g_abort_packet 
+05ab c000863a beq 1 ,p_g24_data_attemp_mouse_abort 
+05ac 6800c7a3 fetch 1 ,mem_24g_hop_packet 
+05ad 6808c76b fetcht 1 ,mem_24g_rxdata_temp 
+05ae 284ffe04 isolate1 bit_hop ,temp 
+05af 7920fe00 setflag true ,0 ,pdata 
+05b0 6000c7a3 store 1 ,mem_24g_hop_packet 
 
 p_dongle_g24_mouse:
-0598 6800c76d fetch 1 ,mem_24g_rxdata_temp + 2 
-0599 c28205b2 bbit1 datatype_ai_key ,p_g24_data_receive_ai_key_data 
-059a c28385b6 bbit1 datatype_audio ,p_dongle_g24_mouse_audio_data 
+05b1 6800c76d fetch 1 ,mem_24g_rxdata_temp + 2 
+05b2 c28205cb bbit1 datatype_ai_key ,p_g24_data_receive_ai_key_data 
+05b3 c28385cf bbit1 datatype_audio ,p_dongle_g24_mouse_audio_data 
 
 p_dongle_g24_mouse_next:
-059b 6800c71e fetch 1 ,mem_24g_rxdata_length 
-059c 1fe67c09 sub pdata ,0x09 ,null 
-059d 202285aa branch p_dongle_g24_mouse_data ,zero 
-059e 204005aa call p_dongle_g24_mouse_data 
-059f 6800c71e fetch 1 ,mem_24g_rxdata_length 
-05a0 1fe0fff8 add pdata ,-8 ,pdata 
-05a1 6000c71e store 1 ,mem_24g_rxdata_length 
-05a2 1fe27200 copy pdata ,loopcnt 
-05a3 d8a0476d arg mem_24g_rxdata_temp + 2 ,contw 
-05a4 d8c04775 arg mem_24g_rxdata_temp + 10 ,contr 
-05a5 20407f01 call memcpy 
-05a6 6800c76d fetch 1 ,mem_24g_rxdata_temp + 2 
-05a7 c28205b2 bbit1 datatype_ai_key ,p_g24_data_receive_ai_key_data 
-05a8 c28385b6 bbit1 datatype_audio ,p_dongle_g24_mouse_audio_data 
-05a9 20600000 rtn 
+05b4 6800c71e fetch 1 ,mem_24g_rxdata_length 
+05b5 1fe67c09 sub pdata ,0x09 ,null 
+05b6 202285c3 branch p_dongle_g24_mouse_data ,zero 
+05b7 204005c3 call p_dongle_g24_mouse_data 
+05b8 6800c71e fetch 1 ,mem_24g_rxdata_length 
+05b9 1fe0fff8 add pdata ,-8 ,pdata 
+05ba 6000c71e store 1 ,mem_24g_rxdata_length 
+05bb 1fe27200 copy pdata ,loopcnt 
+05bc d8a0476d arg mem_24g_rxdata_temp + 2 ,contw 
+05bd d8c04775 arg mem_24g_rxdata_temp + 10 ,contr 
+05be 20407f01 call memcpy 
+05bf 6800c76d fetch 1 ,mem_24g_rxdata_temp + 2 
+05c0 c28205cb bbit1 datatype_ai_key ,p_g24_data_receive_ai_key_data 
+05c1 c28385cf bbit1 datatype_audio ,p_dongle_g24_mouse_audio_data 
+05c2 20600000 rtn 
 
 p_dongle_g24_mouse_data:
-05aa 2040015d call p_usb_ms_data_header 
-05ab 6803c76e fetch 7 ,mem_24g_rxdata_temp + 3 
-05ac 600393d6 store 7 ,mem_usb_in_data + 4 
-05ad 6800c76e fetch 1 ,mem_24g_rxdata_temp + 3 
-05ae 245a05bc ncall p_g24_ms_enable_blank_data_forcibly ,blank 
-05af 6800c76e fetch 1 ,mem_24g_rxdata_temp + 3 
-05b0 205a05c0 call p_g24_ms_disable_blank_data_forcibly ,blank 
-05b1 20200196 branch p_usb_in_data_push 
+05c3 2040015d call p_usb_ms_data_header 
+05c4 6803c76e fetch 7 ,mem_24g_rxdata_temp + 3 
+05c5 600393d6 store 7 ,mem_usb_in_data + 4 
+05c6 6800c76e fetch 1 ,mem_24g_rxdata_temp + 3 
+05c7 245a05d8 ncall p_g24_ms_enable_blank_data_forcibly ,blank 
+05c8 6800c76e fetch 1 ,mem_24g_rxdata_temp + 3 
+05c9 205a05dc call p_g24_ms_disable_blank_data_forcibly ,blank 
+05ca 20200196 branch p_usb_in_data_push 
 
 p_g24_data_receive_ai_key_data:
-05b2 20400153 call p_usb_ai_key_data_header 
-05b3 6802476e fetch 4 ,mem_24g_rxdata_temp + 3 
-05b4 600213d6 store 4 ,mem_usb_in_data + 4 
-05b5 20200196 branch p_usb_in_data_push 
+05cb 20400153 call p_usb_ai_key_data_header 
+05cc 6802476e fetch 4 ,mem_24g_rxdata_temp + 3 
+05cd 600213d6 store 4 ,mem_usb_in_data + 4 
+05ce 20200196 branch p_usb_in_data_push 
 
 p_dongle_g24_mouse_audio_data:
-05b6 20400158 call p_usb_audio_data_header 
-05b7 df200014 arg 20 ,loopcnt 
-05b8 d8c0476e arg mem_24g_rxdata_temp + 3 ,contr 
-05b9 d8a013d6 arg mem_usb_in_data + 4 ,contw 
-05ba 20407f01 call memcpy 
-05bb 20200196 branch p_usb_in_data_push 
+05cf 70480801 jam 1 ,mem_24g_receive_audio_data_flag 
+05d0 70480a01 jam 1 ,mem_24g_tx_ai_key_release_flag 
+05d1 70480900 jam 0 ,mem_24g_release_ai_key_count 
+05d2 20400158 call p_usb_audio_data_header 
+05d3 df200014 arg 20 ,loopcnt 
+05d4 d8c0476e arg mem_24g_rxdata_temp + 3 ,contr 
+05d5 d8a013d6 arg mem_usb_in_data + 4 ,contw 
+05d6 20407f01 call memcpy 
+05d7 20200196 branch p_usb_in_data_push 
 
 p_g24_ms_enable_blank_data_forcibly:
-05bc 7047bc01 jam 1 ,mem_24g_ms_blank_data_enable 
-05bd 58000180 setarg timer_new_ms_blank_delay 
-05be d8e0000b arg timer_new_ms_blank ,queue 
-05bf 20207f08 branch timer_init 
+05d8 7047bc01 jam 1 ,mem_24g_ms_blank_data_enable 
+05d9 58000180 setarg timer_new_ms_blank_delay 
+05da d8e0000b arg timer_new_ms_blank ,queue 
+05db 20207f08 branch timer_init 
 
 p_g24_ms_disable_blank_data_forcibly:
-05c0 7047bc00 jam 0 ,mem_24g_ms_blank_data_enable 
-05c1 58000000 setarg 0 
-05c2 d8e0000b arg timer_new_ms_blank ,queue 
-05c3 20207f08 branch timer_init 
+05dc 7047bc00 jam 0 ,mem_24g_ms_blank_data_enable 
+05dd 58000000 setarg 0 
+05de d8e0000b arg timer_new_ms_blank ,queue 
+05df 20207f08 branch timer_init 
 
 p_g24_data_type2:
-05c4 6808c76b fetcht 1 ,mem_24g_rxdata_temp 
-05c5 284ffe03 isolate1 bit_abort ,temp 
-05c6 20208620 branch p_g24_data_attemp_kbd_abort ,true 
-05c7 6800c76e fetch 1 ,mem_24g_rxdata_temp + 3 
-05c8 c00005cc beq 0 ,p_g24_data_type2_data1 
-05c9 c0010606 beq 2 ,p_g24_data_type2_data3 
-05ca c00185e9 beq 3 ,p_g24_data_type2_data2 
-05cb 2020057b branch p_g24_rx_interrupt_clear 
+05e0 6808c76b fetcht 1 ,mem_24g_rxdata_temp 
+05e1 284ffe03 isolate1 bit_abort ,temp 
+05e2 2020863c branch p_g24_data_attemp_kbd_abort ,true 
+05e3 6800c76e fetch 1 ,mem_24g_rxdata_temp + 3 
+05e4 c00005e8 beq 0 ,p_g24_data_type2_data1 
+05e5 c0010622 beq 2 ,p_g24_data_type2_data3 
+05e6 c0018605 beq 3 ,p_g24_data_type2_data2 
+05e7 20200594 branch p_g24_rx_interrupt_clear 
 
 p_g24_data_type2_data1:
-05cc 6800c770 fetch 1 ,mem_24g_rxdata_temp + 5 
-05cd 6000c7a2 store 1 ,mem_24g_ackpayload_enable 
-05ce 70477000 jam 0 ,mem_24g_rxdata_temp + 5 
-05cf 20400162 call p_usb_kb_normal_data_header 
-05d0 d8a013d6 arg mem_usb_in_data + 4 ,contw 
-05d1 204005de call p_g24_data_type2_copy_data1 
-05d2 680413d6 fetch 8 ,mem_usb_in_data + 4 
-05d3 245a05e1 ncall p_g24_kb_enable_blank_data_forcibly ,blank 
-05d4 680413d6 fetch 8 ,mem_usb_in_data + 4 
-05d5 205a05e5 call p_g24_kb_disable_blank_data_forcibly ,blank 
-05d6 680413d6 fetch 8 ,mem_usb_in_data + 4 
-05d7 600447a4 store 8 ,mem_24g_kb_data_sta_data 
-05d8 680c47ac fetcht 8 ,mem_24g_kb_data_last_data 
-05d9 98467c00 isub temp ,null 
-05da 24428196 ncall p_usb_in_data_push ,zero 
-05db 680447a4 fetch 8 ,mem_24g_kb_data_sta_data 
-05dc 600447ac store 8 ,mem_24g_kb_data_last_data 
-05dd 2020057b branch p_g24_rx_interrupt_clear 
+05e8 6800c770 fetch 1 ,mem_24g_rxdata_temp + 5 
+05e9 6000c7a2 store 1 ,mem_24g_ackpayload_enable 
+05ea 70477000 jam 0 ,mem_24g_rxdata_temp + 5 
+05eb 20400162 call p_usb_kb_normal_data_header 
+05ec d8a013d6 arg mem_usb_in_data + 4 ,contw 
+05ed 204005fa call p_g24_data_type2_copy_data1 
+05ee 680413d6 fetch 8 ,mem_usb_in_data + 4 
+05ef 245a05fd ncall p_g24_kb_enable_blank_data_forcibly ,blank 
+05f0 680413d6 fetch 8 ,mem_usb_in_data + 4 
+05f1 205a0601 call p_g24_kb_disable_blank_data_forcibly ,blank 
+05f2 680413d6 fetch 8 ,mem_usb_in_data + 4 
+05f3 600447a4 store 8 ,mem_24g_kb_data_sta_data 
+05f4 680c47ac fetcht 8 ,mem_24g_kb_data_last_data 
+05f5 98467c00 isub temp ,null 
+05f6 24428196 ncall p_usb_in_data_push ,zero 
+05f7 680447a4 fetch 8 ,mem_24g_kb_data_sta_data 
+05f8 600447ac store 8 ,mem_24g_kb_data_last_data 
+05f9 20200594 branch p_g24_rx_interrupt_clear 
 
 p_g24_data_type2_copy_data1:
-05de d8c0476f arg mem_24g_rxdata_temp + 4 ,contr 
-05df df200008 arg 8 ,loopcnt 
-05e0 20207f01 branch memcpy 
+05fa d8c0476f arg mem_24g_rxdata_temp + 4 ,contr 
+05fb df200008 arg 8 ,loopcnt 
+05fc 20207f01 branch memcpy 
 
 p_g24_kb_enable_blank_data_forcibly:
-05e1 7047ba01 jam 1 ,mem_24g_kb_blank_data_enable 
-05e2 58000180 setarg timer_new_kb_blank_delay 
-05e3 d8e0000e arg timer_new_kb_blank ,queue 
-05e4 20207f08 branch timer_init 
+05fd 7047ba01 jam 1 ,mem_24g_kb_blank_data_enable 
+05fe 58000180 setarg timer_new_kb_blank_delay 
+05ff d8e0000e arg timer_new_kb_blank ,queue 
+0600 20207f08 branch timer_init 
 
 p_g24_kb_disable_blank_data_forcibly:
-05e5 7047ba00 jam 0 ,mem_24g_kb_blank_data_enable 
-05e6 58000000 setarg 0 
-05e7 d8e0000e arg timer_new_kb_blank ,queue 
-05e8 20207f08 branch timer_init 
+0601 7047ba00 jam 0 ,mem_24g_kb_blank_data_enable 
+0602 58000000 setarg 0 
+0603 d8e0000e arg timer_new_kb_blank ,queue 
+0604 20207f08 branch timer_init 
 
 p_g24_data_type2_data2:
-05e9 20400167 call p_usb_kb_multimedia_data_header 
-05ea 6800c76e fetch 1 ,mem_24g_rxdata_temp + 3 
-05eb 600093d6 store 1 ,mem_usb_in_data + 4 
-05ec 6801476f fetch 2 ,mem_24g_rxdata_temp + 4 
-05ed 60014975 store 2 ,mem_quickconn_media_data 
-05ee 70497400 jam 0 ,mem_quickconn_data_bit1_count 
-05ef 6802476f fetch 4 ,mem_24g_rxdata_temp + 4 
-05f0 20400228 call p_usb_tx_kb_multimedia_data_bit1_check 
-05f1 68014975 fetch 2 ,mem_quickconn_media_data 
-05f2 600113d7 store 2 ,mem_usb_in_data + 5 
-05f3 680193d6 fetch 3 ,mem_usb_in_data + 4 
-05f4 6001c7b4 store 3 ,mem_24g_kb_multikey_sta_data 
-05f5 6809c7b7 fetcht 3 ,mem_24g_kb_multikey_last_data 
-05f6 98467c00 isub temp ,null 
-05f7 24428196 ncall p_usb_in_data_push ,zero 
-05f8 6801c7b4 fetch 3 ,mem_24g_kb_multikey_sta_data 
-05f9 6001c7b7 store 3 ,mem_24g_kb_multikey_last_data 
-05fa 2020057b branch p_g24_rx_interrupt_clear 
+0605 20400167 call p_usb_kb_multimedia_data_header 
+0606 6800c76e fetch 1 ,mem_24g_rxdata_temp + 3 
+0607 600093d6 store 1 ,mem_usb_in_data + 4 
+0608 6801476f fetch 2 ,mem_24g_rxdata_temp + 4 
+0609 6001497c store 2 ,mem_quickconn_media_data 
+060a 70497b00 jam 0 ,mem_quickconn_data_bit1_count 
+060b 6802476f fetch 4 ,mem_24g_rxdata_temp + 4 
+060c 20400228 call p_usb_tx_kb_multimedia_data_bit1_check 
+060d 6801497c fetch 2 ,mem_quickconn_media_data 
+060e 600113d7 store 2 ,mem_usb_in_data + 5 
+060f 680193d6 fetch 3 ,mem_usb_in_data + 4 
+0610 6001c7b4 store 3 ,mem_24g_kb_multikey_sta_data 
+0611 6809c7b7 fetcht 3 ,mem_24g_kb_multikey_last_data 
+0612 98467c00 isub temp ,null 
+0613 24428196 ncall p_usb_in_data_push ,zero 
+0614 6801c7b4 fetch 3 ,mem_24g_kb_multikey_sta_data 
+0615 6001c7b7 store 3 ,mem_24g_kb_multikey_last_data 
+0616 20200594 branch p_g24_rx_interrupt_clear 
 
 p_g24_data_type2_copy_data2:
-05fb d8c0476e arg mem_24g_rxdata_temp + 3 ,contr 
-05fc df200003 arg 3 ,loopcnt 
-05fd 20207f01 branch memcpy 
+0617 d8c0476e arg mem_24g_rxdata_temp + 3 ,contr 
+0618 df200003 arg 3 ,loopcnt 
+0619 20207f01 branch memcpy 
 
 p_g24_kb_mul_enable_blank_data_forcibly:
-05fe 7047bb01 jam 1 ,mem_24g_kb_mul_blank_data_enable 
-05ff 58000180 setarg timer_new_kb_mul_blank_delay 
-0600 d8e0000c arg timer_new_kb_mul_blank ,queue 
-0601 20207f08 branch timer_init 
+061a 7047bb01 jam 1 ,mem_24g_kb_mul_blank_data_enable 
+061b 58000180 setarg timer_new_kb_mul_blank_delay 
+061c d8e0000c arg timer_new_kb_mul_blank ,queue 
+061d 20207f08 branch timer_init 
 
 p_g24_kb_mul_disable_blank_data_forcibly:
-0602 7047bb00 jam 0 ,mem_24g_kb_mul_blank_data_enable 
-0603 58000000 setarg 0 
-0604 d8e0000c arg timer_new_kb_mul_blank ,queue 
-0605 20207f08 branch timer_init 
+061e 7047bb00 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+061f 58000000 setarg 0 
+0620 d8e0000c arg timer_new_kb_mul_blank ,queue 
+0621 20207f08 branch timer_init 
 
 p_g24_data_type2_data3:
-0606 2040016c call p_usb_kb_sysctrl_data_header 
-0607 d8a013d6 arg mem_usb_in_data + 4 ,contw 
-0608 20400611 call p_g24_data_type2_copy_data3 
-0609 680113d6 fetch 2 ,mem_usb_in_data + 4 
-060a 600113cc store 2 ,mem_usb_kb_system_sta_data 
-060b 680913cf fetcht 2 ,mem_usb_kb_system_last_data 
-060c 98467c00 isub temp ,null 
-060d 24428196 ncall p_usb_in_data_push ,zero 
-060e 680113cc fetch 2 ,mem_usb_kb_system_sta_data 
-060f 600113cf store 2 ,mem_usb_kb_system_last_data 
-0610 2020057b branch p_g24_rx_interrupt_clear 
+0622 2040016c call p_usb_kb_sysctrl_data_header 
+0623 d8a013d6 arg mem_usb_in_data + 4 ,contw 
+0624 2040062d call p_g24_data_type2_copy_data3 
+0625 680113d6 fetch 2 ,mem_usb_in_data + 4 
+0626 600113cc store 2 ,mem_usb_kb_system_sta_data 
+0627 680913cf fetcht 2 ,mem_usb_kb_system_last_data 
+0628 98467c00 isub temp ,null 
+0629 24428196 ncall p_usb_in_data_push ,zero 
+062a 680113cc fetch 2 ,mem_usb_kb_system_sta_data 
+062b 600113cf store 2 ,mem_usb_kb_system_last_data 
+062c 20200594 branch p_g24_rx_interrupt_clear 
 
 p_g24_data_type2_copy_data3:
-0611 d8c0476e arg mem_24g_rxdata_temp + 3 ,contr 
-0612 df200002 arg 2 ,loopcnt 
-0613 20207f01 branch memcpy 
+062d d8c0476e arg mem_24g_rxdata_temp + 3 ,contr 
+062e df200002 arg 2 ,loopcnt 
+062f 20207f01 branch memcpy 
 
 p_g24_data_attemp:
-0614 6800c76e fetch 1 ,mem_24g_rxdata_temp + 3 
-0615 c0008618 beq datatype_mouse ,p_g24_data_attemp_mouse 
-0616 c001061b beq datatype_keyboard ,p_g24_data_attemp_kbd 
-0617 20600000 rtn 
+0630 6800c76e fetch 1 ,mem_24g_rxdata_temp + 3 
+0631 c0008634 beq datatype_mouse ,p_g24_data_attemp_mouse 
+0632 c0010637 beq datatype_keyboard ,p_g24_data_attemp_kbd 
+0633 20600000 rtn 
 
 p_g24_data_attemp_mouse:
-0618 6802476f fetch 4 ,mem_24g_rxdata_temp + 4 
+0634 6802476f fetch 4 ,mem_24g_rxdata_temp + 4 
 
 p_g24_store_mouse_addr:
-0619 600247c1 store 4 ,mem_24g_ms_addr 
-061a 20600000 rtn 
+0635 600247c1 store 4 ,mem_24g_ms_addr 
+0636 20600000 rtn 
 
 p_g24_data_attemp_kbd:
-061b 6802476f fetch 4 ,mem_24g_rxdata_temp + 4 
+0637 6802476f fetch 4 ,mem_24g_rxdata_temp + 4 
 
 p_g24_store_kbd_addr:
-061c 600247bd store 4 ,mem_24g_kb_addr 
-061d 20600000 rtn 
+0638 600247bd store 4 ,mem_24g_kb_addr 
+0639 20600000 rtn 
 
 p_g24_data_attemp_mouse_abort:
-061e 68024775 fetch 4 ,mem_24g_rxdata_temp + 10 
-061f 20200619 branch p_g24_store_mouse_addr 
+063a 68024775 fetch 4 ,mem_24g_rxdata_temp + 10 
+063b 20200635 branch p_g24_store_mouse_addr 
 
 p_g24_data_attemp_kbd_abort:
-0620 68024775 fetch 4 ,mem_24g_rxdata_temp + 10 
-0621 2020061c branch p_g24_store_kbd_addr 
+063c 68024775 fetch 4 ,mem_24g_rxdata_temp + 10 
+063d 20200638 branch p_g24_store_kbd_addr 
 
 p_g24_send_kb_led_ctrl:
-0622 7047a203 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
-0623 20600000 rtn 
+063e 7047a203 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
+063f 20600000 rtn 
 
 p_rssi_noise:
-0624 204029bb call save_rssi 
-0625 207a0000 rtn blank 
-0626 6808c7c7 fetcht 1 ,mem_rssi_noise_index 
-0627 da200d9e arg mem_rssi_noise_buffer ,rega 
-0628 2040062b call p_rssi_store 
-0629 6008c7c7 storet 1 ,mem_rssi_noise_index 
-062a 20600000 rtn 
+0640 204029bb call save_rssi 
+0641 207a0000 rtn blank 
+0642 6808c7c7 fetcht 1 ,mem_rssi_noise_index 
+0643 da200d9e arg mem_rssi_noise_buffer ,rega 
+0644 20400647 call p_rssi_store 
+0645 6008c7c7 storet 1 ,mem_rssi_noise_index 
+0646 20600000 rtn 
 
 p_rssi_store:
-062b 1a227e00 copy rega ,pdata 
-062c 98408a00 iadd temp ,contw 
-062d 68008018 fetch 1 ,mem_rssi 
-062e e0a08000 istore 1 ,contw 
-062f 18408401 increase 1 ,temp 
-0630 184104ff and_into rssi_buf_len_noise ,temp 
-0631 20600000 rtn 
+0647 1a227e00 copy rega ,pdata 
+0648 98408a00 iadd temp ,contw 
+0649 68008018 fetch 1 ,mem_rssi 
+064a e0a08000 istore 1 ,contw 
+064b 18408401 increase 1 ,temp 
+064c 184104ff and_into rssi_buf_len_noise ,temp 
+064d 20600000 rtn 
 
 p_rssi_signal:
-0632 1fe22200 copy pdata ,rega 
-0633 6808c7c8 fetcht 1 ,mem_rssi_signal_index 
-0634 580047cf setarg mem_rssi_signal_buf 
-0635 98408a00 iadd temp ,contw 
-0636 1a227e00 copy rega ,pdata 
-0637 e0a08000 istore 1 ,contw 
-0638 18408401 increase 1 ,temp 
-0639 18410407 and_into rssi_buf_len_signal ,temp 
-063a 6008c7c8 storet 1 ,mem_rssi_signal_index 
-063b 20600000 rtn 
+064e 1fe22200 copy pdata ,rega 
+064f 6808c7c8 fetcht 1 ,mem_rssi_signal_index 
+0650 580047cf setarg mem_rssi_signal_buf 
+0651 98408a00 iadd temp ,contw 
+0652 1a227e00 copy rega ,pdata 
+0653 e0a08000 istore 1 ,contw 
+0654 18408401 increase 1 ,temp 
+0655 18410407 and_into rssi_buf_len_signal ,temp 
+0656 6008c7c8 storet 1 ,mem_rssi_signal_index 
+0657 20600000 rtn 
 
 p_rssi_average:
-063c d8400000 arg 0 ,temp 
-063d df200100 arg rssi_buf_len_noise + 1 ,loopcnt 
-063e c5160640 bmark1 mark_24g_rxmode ,p_rssi_average2 
-063f df200008 arg rssi_buf_len_signal + 1 ,loopcnt 
+0658 d8400000 arg 0 ,temp 
+0659 df200100 arg rssi_buf_len_noise + 1 ,loopcnt 
+065a c516065c bmark1 mark_24g_rxmode ,p_rssi_average2 
+065b df200008 arg rssi_buf_len_signal + 1 ,loopcnt 
 
 p_rssi_average2:
-0640 1a220c00 copy rega ,contr 
-0641 c5162e64 bmark1 mark_24g_rxmode ,rssi_average_loop 
+065c 1a220c00 copy rega ,contr 
+065d c5162e64 bmark1 mark_24g_rxmode ,rssi_average_loop 
 
 p_rssi_average_loop:
-0642 e8c08000 ifetch 1 ,contr 
-0643 98408400 iadd temp ,temp 
-0644 c2000642 loop p_rssi_average_loop 
-0645 18497e00 rshift3 temp ,pdata 
-0646 1fe20400 copy pdata ,temp 
-0647 20600000 rtn 
+065e e8c08000 ifetch 1 ,contr 
+065f 98408400 iadd temp ,temp 
+0660 c200065e loop p_rssi_average_loop 
+0661 18497e00 rshift3 temp ,pdata 
+0662 1fe20400 copy pdata ,temp 
+0663 20600000 rtn 
 
 p_g24_update_addr_and_synccrc8:
-0648 60024748 store 4 ,mem_24g_addr 
+0664 60024748 store 4 ,mem_24g_addr 
 
 p_g24_syncword_crc8:
-0649 da200000 arg 0 ,rega 
-064a df200004 arg 4 ,loopcnt 
-064b d8c04748 arg mem_24g_addr ,contr 
+0665 da200000 arg 0 ,rega 
+0666 df200004 arg 4 ,loopcnt 
+0667 d8c04748 arg mem_24g_addr ,contr 
 
 p_g24_syncword_crc8_loop:
-064c e8c08000 ifetch 1 ,contr 
-064d 9a20a200 iadd rega ,rega 
-064e c200064c loop p_g24_syncword_crc8_loop 
-064f 1a227e00 copy rega ,pdata 
-0650 60014767 store 2 ,mem_24g_syncword 
-0651 6800c767 fetch 1 ,mem_24g_syncword 
-0652 6808c768 fetcht 1 ,mem_24g_syncword + 1 
-0653 9840fe00 iadd temp ,pdata 
-0654 6000c769 store 1 ,mem_24g_syncword_crc8 
-0655 20600000 rtn 
+0668 e8c08000 ifetch 1 ,contr 
+0669 9a20a200 iadd rega ,rega 
+066a c2000668 loop p_g24_syncword_crc8_loop 
+066b 1a227e00 copy rega ,pdata 
+066c 60014767 store 2 ,mem_24g_syncword 
+066d 6800c767 fetch 1 ,mem_24g_syncword 
+066e 6808c768 fetcht 1 ,mem_24g_syncword + 1 
+066f 9840fe00 iadd temp ,pdata 
+0670 6000c769 store 1 ,mem_24g_syncword_crc8 
+0671 20600000 rtn 
 
 p_g24_read_len_pid_crc:
-0656 6800c69b fetch 1 ,mem_24g_rxbuf + 1 
-0657 1fe97e00 rshift3 pdata ,pdata 
-0658 6000c71e store 1 ,mem_24g_rxdata_length 
-0659 1fe0fe01 increase 1 ,pdata 
-065a d8c0469b arg mem_24g_rxbuf + 1 ,contr 
-065b 98c08c00 iadd contr ,contr 
-065c e8c18000 ifetch 3 ,contr 
-065d 6001c75d store 3 ,mem_24g_sta_crc 
-065e 6800c69b fetch 1 ,mem_24g_rxbuf + 1 
-065f 1fe37e00 rshift pdata ,pdata 
-0660 1fe17e03 and pdata ,0x03 ,pdata 
-0661 6000c763 store 1 ,mem_24g_sta_pid 
-0662 20600000 rtn 
+0672 6800c69b fetch 1 ,mem_24g_rxbuf + 1 
+0673 1fe97e00 rshift3 pdata ,pdata 
+0674 6000c71e store 1 ,mem_24g_rxdata_length 
+0675 1fe0fe01 increase 1 ,pdata 
+0676 d8c0469b arg mem_24g_rxbuf + 1 ,contr 
+0677 98c08c00 iadd contr ,contr 
+0678 e8c18000 ifetch 3 ,contr 
+0679 6001c75d store 3 ,mem_24g_sta_crc 
+067a 6800c69b fetch 1 ,mem_24g_rxbuf + 1 
+067b 1fe37e00 rshift pdata ,pdata 
+067c 1fe17e03 and pdata ,0x03 ,pdata 
+067d 6000c763 store 1 ,mem_24g_sta_pid 
+067e 20600000 rtn 
 
 p_g24_transmit_prep:
-0663 6800c720 fetch 1 ,mem_24g_datalen 
-0664 1fe0fe03 increase 3 ,pdata 
-0665 6000c722 store 1 ,mem_24g_txlen 
-0666 6800c769 fetch 1 ,mem_24g_syncword_crc8 
-0667 6000c6dc store 1 ,mem_24g_txpayload 
-0668 6800c721 fetch 1 ,mem_24g_data_type 
-0669 e0a08000 istore 1 ,contw 
-066a 6800c720 fetch 1 ,mem_24g_datalen 
-066b 2feffe05 isolate1 5 ,pdata 
+067f 6800c720 fetch 1 ,mem_24g_datalen 
+0680 1fe0fe03 increase 3 ,pdata 
+0681 6000c722 store 1 ,mem_24g_txlen 
+0682 6800c769 fetch 1 ,mem_24g_syncword_crc8 
+0683 6000c6dc store 1 ,mem_24g_txpayload 
+0684 6800c721 fetch 1 ,mem_24g_data_type 
+0685 e0a08000 istore 1 ,contw 
+0686 6800c720 fetch 1 ,mem_24g_datalen 
+0687 2feffe05 isolate1 5 ,pdata 
 
 p_g24_transmit_prep_pdu:
-066c 1fe9fe00 lshift3 pdata ,pdata 
-066d 2040867e call p_g24_tx_transmit_data_prep_ext_len ,true 
-066e 6808c71f fetcht 1 ,mem_24g_pid 
-066f 18410403 and temp ,0x03 ,temp 
-0670 18438400 lshift temp ,temp 
-0671 9841fe00 ior temp ,pdata 
-0672 e0a08000 istore 1 ,contw 
-0673 6800c720 fetch 1 ,mem_24g_datalen 
-0674 98007200 iforce loopcnt 
-0675 d8c046bc arg mem_24g_txbuf ,contr 
-0676 20407f01 call memcpy 
-0677 c6960000 rtnmark0 mark_24g_rxmode 
-0678 6800c7c5 fetch 1 ,mem_rssi_hex 
-0679 e0a08000 istore 1 ,contw 
-067a 6800c722 fetch 1 ,mem_24g_txlen 
-067b 1fe0fe01 increase 1 ,pdata 
-067c 6000c722 store 1 ,mem_24g_txlen 
-067d 20600000 rtn 
+0688 1fe9fe00 lshift3 pdata ,pdata 
+0689 2040869a call p_g24_tx_transmit_data_prep_ext_len ,true 
+068a 6808c71f fetcht 1 ,mem_24g_pid 
+068b 18410403 and temp ,0x03 ,temp 
+068c 18438400 lshift temp ,temp 
+068d 9841fe00 ior temp ,pdata 
+068e e0a08000 istore 1 ,contw 
+068f 6800c720 fetch 1 ,mem_24g_datalen 
+0690 98007200 iforce loopcnt 
+0691 d8c046bc arg mem_24g_txbuf ,contr 
+0692 20407f01 call memcpy 
+0693 c6960000 rtnmark0 mark_24g_rxmode 
+0694 6800c7c5 fetch 1 ,mem_rssi_hex 
+0695 e0a08000 istore 1 ,contw 
+0696 6800c722 fetch 1 ,mem_24g_txlen 
+0697 1fe0fe01 increase 1 ,pdata 
+0698 6000c722 store 1 ,mem_24g_txlen 
+0699 20600000 rtn 
 
 p_g24_tx_transmit_data_prep_ext_len:
-067e 79207e00 set1 0 ,pdata 
-067f 20600000 rtn 
+069a 79207e00 set1 0 ,pdata 
+069b 20600000 rtn 
 
 p_g24_ch:
-0680 6808c72b fetcht 1 ,mem_24g_current_ch_number 
-0681 20400684 call p_g24_ch_map_size 
-0682 6008c72b storet 1 ,mem_24g_current_ch_number 
-0683 20600000 rtn 
+069c 6808c72b fetcht 1 ,mem_24g_current_ch_number 
+069d 204006a0 call p_g24_ch_map_size 
+069e 6008c72b storet 1 ,mem_24g_current_ch_number 
+069f 20600000 rtn 
 
 p_g24_ch_map_size:
-0684 20400688 call p_g24_ch_calc 
-0685 18408401 increase 1 ,temp 
-0686 18410403 and_into 3 ,temp 
-0687 20600000 rtn 
+06a0 204006a4 call p_g24_ch_calc 
+06a1 18408401 increase 1 ,temp 
+06a2 18410403 and_into 3 ,temp 
+06a3 20600000 rtn 
 
 p_g24_ch_calc:
-0688 6800c748 fetch 1 ,mem_24g_addr 
-0689 1fe17e03 and_into 0x03 ,pdata 
-068a 1fefa204 mul32 pdata ,4 ,rega 
-068b 58004731 setarg mem_24g_ch_map1 
-068c 9a20fe00 iadd rega ,pdata 
-068d 98408c00 iadd temp ,contr 
-068e e8c08000 ifetch 1 ,contr 
-068f 6000c72a store 1 ,mem_24g_ch 
-0690 20600000 rtn 
+06a4 6800c748 fetch 1 ,mem_24g_addr 
+06a5 1fe17e03 and_into 0x03 ,pdata 
+06a6 1fefa204 mul32 pdata ,4 ,rega 
+06a7 58004731 setarg mem_24g_ch_map1 
+06a8 9a20fe00 iadd rega ,pdata 
+06a9 98408c00 iadd temp ,contr 
+06aa e8c08000 ifetch 1 ,contr 
+06ab 6000c72a store 1 ,mem_24g_ch 
+06ac 20600000 rtn 
 
 p_g24_prep:
-0691 7844fc00 disable enable_crc 
-0692 7843fc00 disable enable_white 
-0693 58555555 setarg 0x555555 
-0694 98001e00 iforce crc24_init 
-0695 6800c72a fetch 1 ,mem_24g_ch 
-0696 1fed8400 reverse pdata ,temp 
-0697 79200401 set1 1 ,temp 
-0698 18431c00 rshift temp ,white_init 
-0699 20600000 rtn 
+06ad 7844fc00 disable enable_crc 
+06ae 7843fc00 disable enable_white 
+06af 58555555 setarg 0x555555 
+06b0 98001e00 iforce crc24_init 
+06b1 6800c72a fetch 1 ,mem_24g_ch 
+06b2 1fed8400 reverse pdata ,temp 
+06b3 79200401 set1 1 ,temp 
+06b4 18431c00 rshift temp ,white_init 
+06b5 20600000 rtn 
 
 p_g24_receive_packet:
-069a 204053c4 call le_enable 
-069b 68024748 fetch 4 ,mem_24g_addr 
-069c 98001200 iforce access 
-069d 20402918 call set_sync_on 
-069e 6808c72a fetcht 1 ,mem_24g_ch 
-069f 2040291f call set_freq_rx 
-06a0 58000500 setarg param_pll_setup 
-06a1 20402a8f call sleep 
-06a2 20402924 call rf_rx_enable 
+06b6 204053c4 call le_enable 
+06b7 68024748 fetch 4 ,mem_24g_addr 
+06b8 98001200 iforce access 
+06b9 20402918 call set_sync_on 
+06ba 6808c72a fetcht 1 ,mem_24g_ch 
+06bb 2040291f call set_freq_rx 
+06bc 58000500 setarg param_pll_setup 
+06bd 20402a8f call sleep 
+06be 20402924 call rf_rx_enable 
 
 p_g24_receive_rxon:
-06a3 20400691 call p_g24_prep 
-06a4 7857fc00 disable user3 
-06a5 7826fc00 enable decode_fec0 
-06a6 7830fc00 enable is_rx 
-06a7 78507c00 disable is_tx 
-06a8 78287c00 enable swfine 
-06a9 68014723 fetch 2 ,mem_24g_rx_window 
-06aa 98003600 iforce stop_watch 
-06ab 37c18400 correlate null ,timeout 
-06ac 242c06dd nbranch p_g24_sync_timeout ,sync 
-06ad 7823fc00 enable enable_white 
-06ae 7824fc00 enable enable_crc 
-06af 204006da call p_g24_receive_byte 
-06b0 6000c76a store 1 ,mem_24g_get_syncword_crc8 
-06b1 6808c769 fetcht 1 ,mem_24g_syncword_crc8 
-06b2 98467c00 isub temp ,null 
-06b3 242286df nbranch p_g24_end_of_packet ,zero 
-06b4 204006da call p_g24_receive_byte 
-06b5 6000c69a store 1 ,mem_24g_rxbuf 
-06b6 c51606bb bmark1 mark_24g_rxmode ,p_g24_receive_skip 
-06b7 6800c69a fetch 1 ,mem_24g_rxbuf 
-06b8 6808c721 fetcht 1 ,mem_24g_data_type 
-06b9 a8400e00 icompare bits_data ,temp 
-06ba 242086df nbranch p_g24_end_of_packet ,true 
+06bf 204006ad call p_g24_prep 
+06c0 7857fc00 disable user3 
+06c1 7826fc00 enable decode_fec0 
+06c2 7830fc00 enable is_rx 
+06c3 78507c00 disable is_tx 
+06c4 78287c00 enable swfine 
+06c5 68014723 fetch 2 ,mem_24g_rx_window 
+06c6 98003600 iforce stop_watch 
+06c7 37c18400 correlate null ,timeout 
+06c8 242c06f9 nbranch p_g24_sync_timeout ,sync 
+06c9 7823fc00 enable enable_white 
+06ca 7824fc00 enable enable_crc 
+06cb 204006f6 call p_g24_receive_byte 
+06cc 6000c76a store 1 ,mem_24g_get_syncword_crc8 
+06cd 6808c769 fetcht 1 ,mem_24g_syncword_crc8 
+06ce 98467c00 isub temp ,null 
+06cf 242286fb nbranch p_g24_end_of_packet ,zero 
+06d0 204006f6 call p_g24_receive_byte 
+06d1 6000c69a store 1 ,mem_24g_rxbuf 
+06d2 c51606d7 bmark1 mark_24g_rxmode ,p_g24_receive_skip 
+06d3 6800c69a fetch 1 ,mem_24g_rxbuf 
+06d4 6808c721 fetcht 1 ,mem_24g_data_type 
+06d5 a8400e00 icompare bits_data ,temp 
+06d6 242086fb nbranch p_g24_end_of_packet ,true 
 
 p_g24_receive_skip:
-06bb 204006da call p_g24_receive_byte 
-06bc e0a08000 istore 1 ,contw 
-06bd 1fe97e00 rshift3 pdata ,pdata 
-06be 1fe1721f and pdata ,0x1f ,loopcnt 
-06bf 202286c3 branch p_g24rx_nopayload ,zero 
+06d7 204006f6 call p_g24_receive_byte 
+06d8 e0a08000 istore 1 ,contw 
+06d9 1fe97e00 rshift3 pdata ,pdata 
+06da 1fe1721f and pdata ,0x1f ,loopcnt 
+06db 202286df branch p_g24rx_nopayload ,zero 
 
 p_g24rx_loop:
-06c0 204006da call p_g24_receive_byte 
-06c1 e0a08000 istore 1 ,contw 
-06c2 c20006c0 loop p_g24rx_loop 
+06dc 204006f6 call p_g24_receive_byte 
+06dd e0a08000 istore 1 ,contw 
+06de c20006dc loop p_g24rx_loop 
 
 p_g24rx_nopayload:
-06c3 c51606c8 bmark1 mark_24g_rxmode ,p_g24rx_crc 
-06c4 18a22200 copy contw ,rega 
-06c5 204006da call p_g24_receive_byte 
-06c6 6000c7e1 store 1 ,mem_rssi_hex_received 
-06c7 1a220a00 copy rega ,contw 
+06df c51606e4 bmark1 mark_24g_rxmode ,p_g24rx_crc 
+06e0 18a22200 copy contw ,rega 
+06e1 204006f6 call p_g24_receive_byte 
+06e2 6000c7e1 store 1 ,mem_rssi_hex_received 
+06e3 1a220a00 copy rega ,contw 
 
 p_g24rx_crc:
-06c8 09800018 parse demod ,bucket ,24 
-06c9 78287c00 enable swfine 
-06ca db600664 arg param_sifs ,stop_watch 
-06cb 1fef7e00 rshift32 pdata ,pdata 
-06cc 1ff17e00 rshift16 pdata ,pdata 
-06cd e0a18000 istore 3 ,contw 
-06ce 280ffe2c isolate1 mark_24g_rxmode ,mark 
-06cf 2040a9bb call save_rssi ,true 
-06d0 202306df branch p_g24_end_of_packet ,crc_failed 
-06d1 7837fc00 enable user3 
-06d2 68008017 fetch 1 ,mem_last_freq 
-06d3 1fe0a200 add pdata ,0 ,rega 
-06d4 20402981 call rf_write_freq 
-06d5 7846fc00 disable decode_fec0 
-06d6 20402918 call set_sync_on 
-06d7 c6160000 rtnmark1 mark_24g_rxmode 
-06d8 6800c7e1 fetch 1 ,mem_rssi_hex_received 
-06d9 20200632 branch p_rssi_signal 
+06e4 09800018 parse demod ,bucket ,24 
+06e5 78287c00 enable swfine 
+06e6 db600664 arg param_sifs ,stop_watch 
+06e7 1fef7e00 rshift32 pdata ,pdata 
+06e8 1ff17e00 rshift16 pdata ,pdata 
+06e9 e0a18000 istore 3 ,contw 
+06ea 280ffe2c isolate1 mark_24g_rxmode ,mark 
+06eb 2040a9bb call save_rssi ,true 
+06ec 202306fb branch p_g24_end_of_packet ,crc_failed 
+06ed 7837fc00 enable user3 
+06ee 68008017 fetch 1 ,mem_last_freq 
+06ef 1fe0a200 add pdata ,0 ,rega 
+06f0 20402981 call rf_write_freq 
+06f1 7846fc00 disable decode_fec0 
+06f2 20402918 call set_sync_on 
+06f3 c6160000 rtnmark1 mark_24g_rxmode 
+06f4 6800c7e1 fetch 1 ,mem_rssi_hex_received 
+06f5 2020064e branch p_rssi_signal 
 
 p_g24_receive_byte:
-06da 09800008 parse demod ,bucket ,8 
-06db 19897e00 rshift3 pwindow ,pdata 
-06dc 20600000 rtn 
+06f6 09800008 parse demod ,bucket ,8 
+06f7 19897e00 rshift3 pwindow ,pdata 
+06f8 20600000 rtn 
 
 p_g24_sync_timeout:
-06dd 280ffe2c isolate1 mark_24g_rxmode ,mark 
-06de 20408624 call p_rssi_noise ,true 
+06f9 280ffe2c isolate1 mark_24g_rxmode ,mark 
+06fa 20408640 call p_rssi_noise ,true 
 
 p_g24_end_of_packet:
-06df 784dfc00 disable encode_fec1 
-06e0 2020264d branch end_of_packet 
+06fb 784dfc00 disable encode_fec1 
+06fc 2020264d branch end_of_packet 
 
 p_g24_set_freq_tx:
-06e1 20402918 call set_sync_on 
-06e2 6808c72a fetcht 1 ,mem_24g_ch 
-06e3 20202933 branch set_freq_tx 
+06fd 20402918 call set_sync_on 
+06fe 6808c72a fetcht 1 ,mem_24g_ch 
+06ff 20202933 branch set_freq_tx 
 
 p_g24_transmit:
-06e4 204053c4 call le_enable 
-06e5 68024748 fetch 4 ,mem_24g_addr 
-06e6 98001200 iforce access 
-06e7 20400691 call p_g24_prep 
-06e8 204006e1 call p_g24_set_freq_tx 
-06e9 79202a00 set1 txgfsk ,radio_ctrl 
-06ea 782efc00 enable encode_fec0 
-06eb 78307c00 enable is_tx 
-06ec 7850fc00 disable is_rx 
-06ed 19317e00 rshift16 access ,pdata 
-06ee 1fecfe00 rshift8 pdata ,pdata 
-06ef 1ff1fe00 rshift4 pdata ,pdata 
-06f0 08008628 inject mod ,40 
-06f1 7823fc00 enable enable_white 
-06f2 7824fc00 enable enable_crc 
-06f3 6800c722 fetch 1 ,mem_24g_txlen 
-06f4 98007200 iforce loopcnt 
-06f5 d8c046dc arg mem_24g_txpayload ,contr 
+0700 204053c4 call le_enable 
+0701 68024748 fetch 4 ,mem_24g_addr 
+0702 98001200 iforce access 
+0703 204006ad call p_g24_prep 
+0704 204006fd call p_g24_set_freq_tx 
+0705 79202a00 set1 txgfsk ,radio_ctrl 
+0706 782efc00 enable encode_fec0 
+0707 78307c00 enable is_tx 
+0708 7850fc00 disable is_rx 
+0709 19317e00 rshift16 access ,pdata 
+070a 1fecfe00 rshift8 pdata ,pdata 
+070b 1ff1fe00 rshift4 pdata ,pdata 
+070c 08008628 inject mod ,40 
+070d 7823fc00 enable enable_white 
+070e 7824fc00 enable enable_crc 
+070f 6800c722 fetch 1 ,mem_24g_txlen 
+0710 98007200 iforce loopcnt 
+0711 d8c046dc arg mem_24g_txpayload ,contr 
 
 p_g24tr_loop:
-06f6 e8c08000 ifetch 1 ,contr 
-06f7 08008608 inject mod ,8 
-06f8 c20006f6 loop p_g24tr_loop 
-06f9 c59606fa bmark0 mark_24g_rxmode ,p_g24tr_crc 
+0712 e8c08000 ifetch 1 ,contr 
+0713 08008608 inject mod ,8 
+0714 c2000712 loop p_g24tr_loop 
+0715 c5960716 bmark0 mark_24g_rxmode ,p_g24tr_crc 
 
 p_g24tr_crc:
-06fa 78247c00 enable enable_parity 
-06fb 08008618 inject mod ,24 
-06fc 78447c00 disable enable_parity 
-06fd 37d38200 until null ,tx_clear 
-06fe 20000064 nop 100 
-06ff 784efc00 disable encode_fec0 
-0700 784dfc00 disable encode_fec1 
-0701 20600000 rtn 
+0716 78247c00 enable enable_parity 
+0717 08008618 inject mod ,24 
+0718 78447c00 disable enable_parity 
+0719 37d38200 until null ,tx_clear 
+071a 20000064 nop 100 
+071b 784efc00 disable encode_fec0 
+071c 784dfc00 disable encode_fec1 
+071d 20600000 rtn 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/program/patch.prog	(revision 7390)
+++ /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/program/patch.prog	(working copy)
@@ -1828,8 +1828,40 @@
 	call p_app_mode_check
 	call p_g24_dongle_work_mode
 	call p_usb_dispatch
+	call p_g24_10ms_timer_event
 	branch p_g24_receiver_main_loop
 
+p_g24_10ms_timer_event:
+	arg 6,queue
+	call timer_check
+	nrtn blank
+	call p_g24_ai_key_release_check
+p_g24_10ms_timer_init:
+	arg 6,queue
+	setarg 32		//10ms
+	branch timer_init
+
+p_g24_ai_key_release_check:	
+	fetch 1,mem_24g_receive_audio_data_flag
+	branch p_g24_no_recv_audio_data,blank
+	rtn
+
+p_g24_no_recv_audio_data:
+	fetch 1,mem_24g_release_ai_key_count
+	increase 1,pdata
+	store 1,mem_24g_release_ai_key_count
+	sub pdata,10,null
+	nrtn zero
+	jam 0,mem_24g_release_ai_key_count
+	fetch 1,mem_24g_tx_ai_key_release_flag
+	rtn blank
+	jam 0,mem_24g_tx_ai_key_release_flag
+	call p_usb_ai_key_data_header
+	fetch 4,mem_24g_release_ai_key_data
+	store 4,mem_usb_in_data+4
+	branch p_usb_in_data_push
+	
+
 p_g24_receiver_init:
 	set1 mark_24g,mark
 	set1 mark_24g_rxmode,mark
@@ -1871,6 +1903,7 @@
 	fetch 4,mem_24g_rx_addr
 	call p_g24_update_addr_and_synccrc8
 	call p_g24_ch
+	call p_g24_10ms_timer_init
 	branch p_g24_rx_interrupt_clear
 
 p_g24_ch_process:
@@ -1959,9 +1992,6 @@
 	call p_g24_rx_interrupt_clear
 	call p_g24_receive_packet
 	nrtn user3
-	branch p_g24_transmit_ack
-
-
 p_g24_transmit_ack:
 //data type
 	fetch 1,mem_24g_rxbuf
@@ -2034,6 +2064,7 @@
 	
 
 p_g24_receive_packet_start:
+	jam 0,mem_24g_receive_audio_data_flag
 	call p_g24_receive_transmit_ack
 	nbranch p_g24_rx_interrupt_clear,user3
 	branch p_g24_receive_packet_parse
@@ -2129,6 +2160,9 @@
 	branch p_usb_in_data_push
 
 p_dongle_g24_mouse_audio_data:
+	jam 1,mem_24g_receive_audio_data_flag
+	jam 1,mem_24g_tx_ai_key_release_flag
+	jam 0,mem_24g_release_ai_key_count
 	call p_usb_audio_data_header
 	arg 20,loopcnt
 	arg mem_24g_rxdata_temp+3,contr
Index: sched/1021s.dat
===================================================================
--- /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/sched/1021s.dat	(revision 7372)
+++ /branch/mouse_project/TestTools/1021s_quick_connector_ai_mingjian/sched/1021s.dat	(working copy)
@@ -35,6 +35,9 @@
 mem_spi_ncs_gpio:ff
 mem_24g_head_ptr:00 84
 
+mem_24g_release_ai_key_data:02 03 01 00
+
+mem_24g_release_ai_key_count:00
 
 mem_tx_power:04
 mem_rf_init_data_new:
