Index: format/app_dongle.format
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/app_dongle.format	(revision 4491)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/app_dongle.format	(working copy)
@@ -109,6 +109,16 @@
 3 mem_usb_system_ctrl_release
 3 mem_usb_multkey_release
 3 mem_usb_win_task_windows_release
+//mac
+3 mem_usb_mac_ctrl_a
+3 mem_usb_mac_boss
+3 mem_usb_mac_sleep
+3 mem_usb_mac_powerdown
+3 mem_usb_mac_play
+3 mem_usb_mac_forword_play
+3 mem_usb_mac_next_play
+3 mem_usb_mac_task_windows
+//key flag
 1 mem_usb_normal_key_flag
 1 mem_usb_multikey_key_flag
 1 mem_usb_system_key_flag
@@ -117,6 +127,11 @@
 )
 
 (
+0x00 OS_WIN
+0x01 OS_MAC
+)
+
+(
 0x55 RELEASE
 0xaa PRESS
 0xff LONG_PRESS
Index: output/eeprom.dat
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/eeprom.dat	(revision 4491)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-6a
+96
 17
 c2
 84
@@ -23,7 +23,7 @@
 c0
 0a
 04
-ea
+f5
 c0
 0a
 81
@@ -43,7 +43,7 @@
 c0
 1b
 85
-c6
+d1
 c0
 1c
 00
@@ -55,7 +55,7 @@
 c0
 1e
 85
-44
+4f
 c0
 1f
 00
@@ -67,11 +67,11 @@
 c0
 6d
 04
-bb
+c6
 c0
 6e
 04
-cb
+d6
 c0
 7f
 01
@@ -103,19 +103,19 @@
 c0
 1c
 85
-06
+11
 c0
 26
 85
-0a
+15
 c0
 37
 85
-d0
+db
 c0
 41
 05
-0c
+17
 c0
 42
 02
@@ -123,11 +123,11 @@
 c0
 44
 05
-2c
+37
 c0
 45
 05
-39
+44
 c1
 7f
 80
@@ -243,7 +243,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 c6
@@ -295,7 +295,7 @@
 20
 20
 03
-ba
+c5
 6f
 e0
 c6
@@ -347,7 +347,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 c6
@@ -399,7 +399,7 @@
 20
 20
 03
-b1
+bc
 20
 40
 75
@@ -631,11 +631,11 @@
 20
 40
 04
-8d
+98
 20
 40
 04
-b8
+c3
 20
 40
 00
@@ -651,7 +651,7 @@
 20
 20
 04
-ba
+c5
 20
 75
 80
@@ -1467,7 +1467,7 @@
 20
 20
 03
-b1
+bc
 70
 48
 9c
@@ -1507,7 +1507,7 @@
 20
 20
 03
-b1
+bc
 70
 48
 55
@@ -1543,7 +1543,7 @@
 20
 20
 03
-b1
+bc
 70
 48
 dd
@@ -1583,7 +1583,7 @@
 20
 20
 03
-b1
+bc
 70
 48
 55
@@ -1611,7 +1611,7 @@
 20
 20
 03
-b1
+bc
 70
 49
 18
@@ -1639,7 +1639,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 c8
@@ -1687,7 +1687,7 @@
 20
 20
 03
-b1
+bc
 70
 48
 14
@@ -1719,7 +1719,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 88
@@ -2367,7 +2367,7 @@
 20
 40
 03
-c3
+ce
 6f
 e0
 c9
@@ -2379,7 +2379,7 @@
 20
 20
 04
-50
+5b
 70
 09
 14
@@ -2495,7 +2495,7 @@
 20
 20
 03
-ba
+c5
 6f
 e0
 c5
@@ -2591,7 +2591,7 @@
 20
 20
 03
-ba
+c5
 d8
 a0
 09
@@ -2655,7 +2655,7 @@
 20
 20
 03
-b1
+bc
 d8
 a0
 09
@@ -2719,7 +2719,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 c5
@@ -2731,19 +2731,19 @@
 c2
 81
 83
-78
+83
 c2
 82
 83
-80
+8b
 c2
 83
 03
-9a
+a5
 c2
 83
 83
-ab
+b6
 20
 20
 02
@@ -2803,19 +2803,19 @@
 c2
 81
 83
-78
+83
 c2
 82
 83
-80
+8b
 c2
 83
 03
-9a
+a5
 c2
 83
 83
-ab
+b6
 20
 60
 00
@@ -2923,7 +2923,7 @@
 6f
 e0
 ca
-06
+1e
 24
 3a
 03
@@ -2947,7 +2947,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 c9
@@ -3031,7 +3031,7 @@
 20
 20
 83
-26
+1f
 20
 20
 03
@@ -3091,7 +3091,7 @@
 20
 20
 83
-23
+1c
 20
 20
 03
@@ -3099,7 +3099,7 @@
 6f
 e0
 ca
-02
+1a
 24
 5a
 03
@@ -3107,115 +3107,87 @@
 6f
 e0
 ca
-03
+1b
 24
 5a
 03
-13
+12
 6f
 e0
 ca
-04
+1c
 24
 5a
 03
-18
+15
 6f
 e0
 ca
-05
+1d
 24
 5a
 03
-1d
+18
 20
 60
 00
 00
 70
 4a
-06
+1e
 00
 70
 4a
-02
+1a
 00
 d8
-a0
-09
-23
-20
 40
-7c
-99
+00
+00
 20
 20
 03
-43
+3e
 70
 4a
-03
+1b
 00
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+68
+49
 c9
 fc
 20
 20
 03
-56
+4b
 70
 4a
-04
+1c
 00
-d8
-a0
-09
-43
-20
-40
-7c
-99
-6f
-e1
+68
+49
 c9
 f9
 20
 20
 03
-75
+5e
 70
 4a
-05
+1d
 00
 70
 4a
-06
+1e
 01
-d8
-a0
-09
-23
-20
-40
-7c
-99
-6f
-e1
+68
+49
 c9
 ff
 20
 20
 03
-43
+3e
 6f
 e0
 c9
@@ -3227,7 +3199,7 @@
 20
 20
 03
-28
+21
 6f
 e0
 c9
@@ -3238,64 +3210,80 @@
 cc
 6f
 e0
+88
+fa
+c0
+00
+03
+25
+c0
+00
+83
+63
+20
+60
+00
+00
+6f
+e0
 c9
 cc
 c0
 00
 83
-38
+35
 c0
 01
 03
-3c
+39
 c0
 01
 83
-3f
+3c
 c0
 02
 03
-49
+44
 c0
 02
 83
-52
+49
 c0
 03
 03
-59
+50
 c0
 03
 83
-45
+42
 c0
 04
 03
-5d
+52
 c0
 04
 83
-61
+54
 c0
 05
 03
-71
+5c
 c0
 05
 83
-65
+56
 c0
 06
 03
-69
+58
 c0
 06
 83
-6d
+5a
 c0
 07
 03
-4d
+46
 20
 60
 00
@@ -3307,7 +3295,7 @@
 79
 20
 7e
-03
+04
 67
 e0
 89
@@ -3323,11 +3311,19 @@
 79
 20
 7e
-04
+03
 20
 20
 03
-3a
+37
+68
+49
+c9
+d5
+70
+4a
+1a
+01
 d8
 a0
 09
@@ -3336,74 +3332,50 @@
 40
 7c
 99
-6f
-e1
-c9
-d5
-70
-4a
-02
-01
-67
-e1
+60
+49
 89
 23
 20
 20
 02
 85
-d8
-a0
-09
-23
-20
-40
-7c
-99
-6f
-e1
+68
+49
 c9
 e1
 20
 20
 03
-42
-d8
-a0
-09
-23
-20
-40
-7c
-99
-6f
-e1
-c9
+3d
+68
+49
+c9
 d8
 20
 20
 03
-42
-d8
-a0
-09
-23
-20
-40
-7c
-99
+3d
 70
 4a
-05
+1d
 01
-6f
-e1
+68
+49
 c9
 f6
 20
 20
 03
-43
+3e
+68
+49
+c9
+db
+70
+4a
+1b
+01
 d8
 a0
 09
@@ -3412,16 +3384,8 @@
 40
 7c
 99
-6f
-e1
-c9
-db
-70
-4a
-03
-01
-67
-e1
+60
+49
 89
 33
 70
@@ -3431,103 +3395,63 @@
 20
 20
 03
-b1
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+bc
+68
+49
 c9
 de
 20
 20
 03
-55
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+4a
+68
+49
 c9
 e4
 20
 20
 03
-55
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+4a
+68
+49
 c9
 e7
 20
 20
 03
-55
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+4a
+68
+49
 c9
 ed
 20
 20
 03
-55
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+4a
+68
+49
 c9
 f0
 20
 20
 03
-55
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+4a
+68
+49
 c9
 f3
 20
 20
 03
-55
+4a
+68
+49
+c9
+ea
+70
+4a
+1c
+01
 d8
 a0
 09
@@ -3536,16 +3460,8 @@
 40
 7c
 99
-6f
-e1
-c9
-ea
-70
-4a
-04
-01
-67
-e1
+60
+49
 89
 43
 70
@@ -3555,7 +3471,135 @@
 20
 20
 03
-b1
+bc
+6f
+e0
+c9
+cc
+c0
+00
+83
+35
+c0
+01
+03
+39
+c0
+01
+83
+73
+c0
+02
+03
+75
+c0
+02
+83
+49
+c0
+03
+03
+50
+c0
+03
+83
+77
+c0
+04
+03
+52
+c0
+04
+83
+54
+c0
+05
+03
+79
+c0
+05
+83
+7b
+c0
+06
+03
+7d
+c0
+06
+83
+7f
+c0
+07
+03
+81
+20
+60
+00
+00
+68
+49
+ca
+02
+20
+20
+03
+3d
+68
+49
+ca
+05
+20
+20
+03
+3d
+68
+49
+ca
+08
+20
+20
+03
+3d
+68
+49
+ca
+0b
+20
+20
+03
+3d
+68
+49
+ca
+0e
+20
+20
+03
+3d
+68
+49
+ca
+11
+20
+20
+03
+3d
+68
+49
+ca
+14
+20
+20
+03
+3d
+68
+49
+ca
+17
+20
+20
+03
+3d
 6f
 e0
 c5
@@ -3611,7 +3655,7 @@
 24
 42
 83
-8b
+96
 6f
 e0
 c8
@@ -3627,7 +3671,7 @@
 24
 42
 83
-8e
+99
 20
 60
 00
@@ -3655,11 +3699,11 @@
 c0
 2a
 83
-93
+9e
 c0
 55
 03
-96
+a1
 20
 60
 00
@@ -3675,7 +3719,7 @@
 20
 20
 03
-98
+a3
 6f
 e0
 c9
@@ -3751,7 +3795,7 @@
 20
 40
 03
-82
+8d
 6f
 e0
 c5
@@ -3759,7 +3803,7 @@
 20
 20
 03
-ac
+b7
 6f
 e0
 c5
@@ -3919,7 +3963,7 @@
 c0
 08
 83
-d4
+df
 20
 20
 23
@@ -3931,43 +3975,43 @@
 c0
 00
 03
-e0
+eb
 c0
 00
 83
-e2
+ed
 c0
 01
 03
-f0
+fb
 c0
 01
 83
-f4
+ff
 c0
 02
 04
-04
+0f
 c0
 02
 84
-0b
+16
 c0
 03
-03
-fa
+04
+05
 c0
 03
-83
-fe
+84
+09
 c0
 04
 04
-00
+0b
 c0
 04
 84
-02
+0d
 20
 60
 00
@@ -3995,11 +4039,11 @@
 c0
 00
 03
-e8
+f3
 c0
 00
 83
-ec
+f7
 20
 60
 00
@@ -4098,24 +4142,24 @@
 08
 20
 20
-03
-f5
+04
+00
 70
 49
 7d
 09
 20
 20
-03
-fb
+04
+06
 70
 49
 7d
 00
 20
 20
-03
-f5
+04
+00
 6f
 e0
 c9
@@ -4150,12 +4194,12 @@
 7f
 c0
 00
-83
-f5
+84
+00
 c0
 00
 04
-11
+1c
 20
 60
 00
@@ -4191,15 +4235,15 @@
 20
 22
 84
-0f
+1a
 20
 40
 04
-21
+2c
 20
 40
 04
-43
+4e
 6f
 e0
 c9
@@ -4247,7 +4291,7 @@
 24
 21
 04
-28
+33
 da
 40
 00
@@ -4259,7 +4303,7 @@
 20
 21
 04
-3f
+4a
 ef
 e0
 80
@@ -4271,7 +4315,7 @@
 24
 21
 04
-2e
+39
 da
 40
 00
@@ -4283,7 +4327,7 @@
 20
 21
 04
-41
+4c
 1f
 e6
 7c
@@ -4291,7 +4335,7 @@
 20
 22
 84
-37
+42
 1f
 e6
 7c
@@ -4299,7 +4343,7 @@
 20
 22
 84
-39
+44
 1f
 e6
 7c
@@ -4307,7 +4351,7 @@
 20
 22
 84
-3b
+46
 1f
 e6
 7c
@@ -4315,7 +4359,7 @@
 20
 22
 84
-3d
+48
 20
 60
 00
@@ -4403,11 +4447,11 @@
 20
 22
 84
-4e
+59
 c2
 00
 04
-49
+54
 20
 60
 00
@@ -4483,27 +4527,27 @@
 c0
 12
 04
-78
+83
 c0
 13
 04
-70
+7b
 c0
 14
 84
-70
+7b
 c0
 11
 84
-70
+7b
 c0
 18
 04
-86
+91
 c0
 12
 84
-7f
+8a
 c0
 10
 fc
@@ -4515,7 +4559,7 @@
 c0
 13
 84
-69
+74
 20
 20
 23
@@ -4547,7 +4591,7 @@
 20
 20
 04
-76
+81
 6f
 e0
 c8
@@ -4607,7 +4651,7 @@
 20
 20
 04
-76
+81
 6f
 e0
 c8
@@ -4635,7 +4679,7 @@
 20
 20
 04
-76
+81
 6f
 e0
 c9
@@ -4663,7 +4707,7 @@
 20
 20
 04
-76
+81
 20
 75
 80
@@ -4715,7 +4759,7 @@
 20
 40
 04
-aa
+b5
 2a
 2f
 fe
@@ -4747,7 +4791,7 @@
 20
 40
 04
-aa
+b5
 d8
 a0
 8a
@@ -4775,7 +4819,7 @@
 20
 21
 04
-9f
+aa
 20
 20
 21
@@ -4879,7 +4923,7 @@
 20
 40
 04
-e3
+ee
 70
 8a
 08
@@ -4915,7 +4959,7 @@
 20
 40
 04
-d9
+e4
 6f
 f0
 8a
@@ -4959,7 +5003,7 @@
 20
 40
 04
-e3
+ee
 70
 80
 cd
@@ -5019,7 +5063,7 @@
 c3
 02
 84
-e4
+ef
 68
 59
 01
@@ -5055,7 +5099,7 @@
 c0
 08
 05
-03
+0e
 58
 00
 57
@@ -5099,7 +5143,7 @@
 c0
 08
 05
-00
+0b
 58
 00
 2b
@@ -5134,8 +5178,8 @@
 07
 20
 20
-04
-fc
+05
+07
 58
 00
 83
@@ -5147,7 +5191,7 @@
 20
 20
 04
-f1
+fc
 6f
 e0
 c3
@@ -5187,7 +5231,7 @@
 c0
 11
 05
-12
+1d
 c0
 7f
 b5
@@ -5203,7 +5247,7 @@
 20
 3a
 05
-18
+23
 6f
 e2
 45
@@ -5227,11 +5271,11 @@
 c0
 00
 85
-1c
+27
 c0
 01
 05
-24
+2f
 20
 60
 00
@@ -5251,7 +5295,7 @@
 c0
 01
 05
-21
+2c
 20
 60
 00
@@ -5283,7 +5327,7 @@
 c0
 80
 05
-29
+34
 20
 60
 00
@@ -5363,7 +5407,7 @@
 20
 40
 05
-3d
+48
 20
 20
 34
@@ -5399,11 +5443,11 @@
 20
 40
 05
-51
+5c
 20
 40
 05
-53
+5e
 6f
 e0
 89
@@ -5471,19 +5515,19 @@
 20
 40
 05
-5d
+68
 20
 40
 05
-60
+6b
 20
 40
 05
-70
+7b
 20
 40
 05
-87
+92
 d8
 e0
 00
@@ -5579,7 +5623,7 @@
 da
 40
 05
-73
+7e
 20
 20
 42
@@ -5595,7 +5639,7 @@
 20
 40
 05
-a8
+b3
 6f
 e0
 c9
@@ -5603,7 +5647,7 @@
 20
 3a
 05
-7f
+8a
 67
 e0
 c9
@@ -5631,7 +5675,7 @@
 20
 20
 05
-75
+80
 68
 48
 c9
@@ -5671,7 +5715,7 @@
 da
 40
 05
-8a
+95
 20
 20
 42
@@ -5687,7 +5731,7 @@
 20
 40
 05
-bd
+c8
 6f
 e0
 c9
@@ -5695,7 +5739,7 @@
 20
 3a
 05
-96
+a1
 67
 e0
 c9
@@ -5723,7 +5767,7 @@
 20
 20
 05
-8c
+97
 68
 48
 c9
@@ -5747,7 +5791,7 @@
 20
 20
 05
-84
+8f
 6a
 41
 49
@@ -5759,7 +5803,7 @@
 20
 40
 05
-a8
+b3
 6f
 e0
 c9
@@ -5767,7 +5811,7 @@
 20
 3a
 05
-ab
+b6
 67
 e0
 c9
@@ -5787,7 +5831,7 @@
 24
 21
 05
-ab
+b6
 1a
 62
 24
@@ -5795,7 +5839,7 @@
 20
 20
 05
-9e
+a9
 df
 20
 00
@@ -5815,7 +5859,7 @@
 20
 5a
 05
-af
+ba
 67
 e0
 c9
@@ -5843,7 +5887,7 @@
 20
 40
 05
-bd
+c8
 6f
 e0
 c9
@@ -5851,7 +5895,7 @@
 20
 3a
 05
-c0
+cb
 67
 e0
 c9
@@ -5871,7 +5915,7 @@
 24
 21
 05
-c0
+cb
 1a
 62
 24
@@ -5879,7 +5923,7 @@
 20
 20
 05
-b3
+be
 df
 20
 00
@@ -5899,7 +5943,7 @@
 20
 5a
 05
-c4
+cf
 67
 e0
 c9
@@ -5931,11 +5975,11 @@
 20
 40
 05
-9c
+a7
 20
 40
 05
-b1
+bc
 20
 40
 32
@@ -5996,8 +6040,8 @@
 20
 31
 95
-aa
-3c
+c9
+76
 aa
 55
 40
@@ -6441,7 +6485,7 @@
 00
 aa
 55
-2d
+45
 00
 d5
 49
@@ -6466,9 +6510,9 @@
 03
 70
 00
-02
-01
+04
 00
+3d
 03
 cd
 00
@@ -6490,6 +6534,30 @@
 04
 00
 00
+01
+00
+04
+00
+00
+44
+03
+00
+66
+01
+00
+66
+00
+00
+2c
+00
+65
+50
+00
+65
+4f
+01
+00
+52
 aa
 55
 08
@@ -6762,78 +6830,10 @@
 aa
 aa
 55
-94
-a3
-dc
-d3
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+eb
+a6
+73
+8d
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-45
-83
+b3
+f1
Index: output/memmap.format
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/memmap.format	(revision 4491)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/memmap.format	(working copy)
@@ -1557,11 +1557,19 @@
 0x49f9 mem_usb_system_ctrl_release
 0x49fc mem_usb_multkey_release
 0x49ff mem_usb_win_task_windows_release
-0x4a02 mem_usb_normal_key_flag
-0x4a03 mem_usb_multikey_key_flag
-0x4a04 mem_usb_system_key_flag
-0x4a05 mem_usb_task_windows_key_flag
-0x4a06 mem_usb_task_release_normal_flag
+0x4a02 mem_usb_mac_ctrl_a
+0x4a05 mem_usb_mac_boss
+0x4a08 mem_usb_mac_sleep
+0x4a0b mem_usb_mac_powerdown
+0x4a0e mem_usb_mac_play
+0x4a11 mem_usb_mac_forword_play
+0x4a14 mem_usb_mac_next_play
+0x4a17 mem_usb_mac_task_windows
+0x4a1a mem_usb_normal_key_flag
+0x4a1b mem_usb_multikey_key_flag
+0x4a1c mem_usb_system_key_flag
+0x4a1d mem_usb_task_windows_key_flag
+0x4a1e mem_usb_task_release_normal_flag
 0x45d3 mem_rssi_hex_received
 0x45d4 mem_24g_pair_sm
 0x45d5 mem_24g_pair_no_ack
Index: output/otp.dat
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/otp.dat	(revision 4491)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/otp.dat	(working copy)
@@ -11,7 +11,7 @@
 00
 aa
 55
-6a
+96
 17
 c2
 84
@@ -32,7 +32,7 @@
 c0
 0a
 04
-ea
+f5
 c0
 0a
 81
@@ -52,7 +52,7 @@
 c0
 1b
 85
-c6
+d1
 c0
 1c
 00
@@ -64,7 +64,7 @@
 c0
 1e
 85
-44
+4f
 c0
 1f
 00
@@ -76,11 +76,11 @@
 c0
 6d
 04
-bb
+c6
 c0
 6e
 04
-cb
+d6
 c0
 7f
 01
@@ -112,19 +112,19 @@
 c0
 1c
 85
-06
+11
 c0
 26
 85
-0a
+15
 c0
 37
 85
-d0
+db
 c0
 41
 05
-0c
+17
 c0
 42
 02
@@ -132,11 +132,11 @@
 c0
 44
 05
-2c
+37
 c0
 45
 05
-39
+44
 c1
 7f
 80
@@ -252,7 +252,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 c6
@@ -304,7 +304,7 @@
 20
 20
 03
-ba
+c5
 6f
 e0
 c6
@@ -356,7 +356,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 c6
@@ -408,7 +408,7 @@
 20
 20
 03
-b1
+bc
 20
 40
 75
@@ -640,11 +640,11 @@
 20
 40
 04
-8d
+98
 20
 40
 04
-b8
+c3
 20
 40
 00
@@ -660,7 +660,7 @@
 20
 20
 04
-ba
+c5
 20
 75
 80
@@ -1476,7 +1476,7 @@
 20
 20
 03
-b1
+bc
 70
 48
 9c
@@ -1516,7 +1516,7 @@
 20
 20
 03
-b1
+bc
 70
 48
 55
@@ -1552,7 +1552,7 @@
 20
 20
 03
-b1
+bc
 70
 48
 dd
@@ -1592,7 +1592,7 @@
 20
 20
 03
-b1
+bc
 70
 48
 55
@@ -1620,7 +1620,7 @@
 20
 20
 03
-b1
+bc
 70
 49
 18
@@ -1648,7 +1648,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 c8
@@ -1696,7 +1696,7 @@
 20
 20
 03
-b1
+bc
 70
 48
 14
@@ -1728,7 +1728,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 88
@@ -2376,7 +2376,7 @@
 20
 40
 03
-c3
+ce
 6f
 e0
 c9
@@ -2388,7 +2388,7 @@
 20
 20
 04
-50
+5b
 70
 09
 14
@@ -2504,7 +2504,7 @@
 20
 20
 03
-ba
+c5
 6f
 e0
 c5
@@ -2600,7 +2600,7 @@
 20
 20
 03
-ba
+c5
 d8
 a0
 09
@@ -2664,7 +2664,7 @@
 20
 20
 03
-b1
+bc
 d8
 a0
 09
@@ -2728,7 +2728,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 c5
@@ -2740,19 +2740,19 @@
 c2
 81
 83
-78
+83
 c2
 82
 83
-80
+8b
 c2
 83
 03
-9a
+a5
 c2
 83
 83
-ab
+b6
 20
 20
 02
@@ -2812,19 +2812,19 @@
 c2
 81
 83
-78
+83
 c2
 82
 83
-80
+8b
 c2
 83
 03
-9a
+a5
 c2
 83
 83
-ab
+b6
 20
 60
 00
@@ -2932,7 +2932,7 @@
 6f
 e0
 ca
-06
+1e
 24
 3a
 03
@@ -2956,7 +2956,7 @@
 20
 20
 03
-b1
+bc
 6f
 e0
 c9
@@ -3040,7 +3040,7 @@
 20
 20
 83
-26
+1f
 20
 20
 03
@@ -3100,7 +3100,7 @@
 20
 20
 83
-23
+1c
 20
 20
 03
@@ -3108,7 +3108,7 @@
 6f
 e0
 ca
-02
+1a
 24
 5a
 03
@@ -3116,115 +3116,87 @@
 6f
 e0
 ca
-03
+1b
 24
 5a
 03
-13
+12
 6f
 e0
 ca
-04
+1c
 24
 5a
 03
-18
+15
 6f
 e0
 ca
-05
+1d
 24
 5a
 03
-1d
+18
 20
 60
 00
 00
 70
 4a
-06
+1e
 00
 70
 4a
-02
+1a
 00
 d8
-a0
-09
-23
-20
 40
-7c
-99
+00
+00
 20
 20
 03
-43
+3e
 70
 4a
-03
+1b
 00
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+68
+49
 c9
 fc
 20
 20
 03
-56
+4b
 70
 4a
-04
+1c
 00
-d8
-a0
-09
-43
-20
-40
-7c
-99
-6f
-e1
+68
+49
 c9
 f9
 20
 20
 03
-75
+5e
 70
 4a
-05
+1d
 00
 70
 4a
-06
+1e
 01
-d8
-a0
-09
-23
-20
-40
-7c
-99
-6f
-e1
+68
+49
 c9
 ff
 20
 20
 03
-43
+3e
 6f
 e0
 c9
@@ -3236,7 +3208,7 @@
 20
 20
 03
-28
+21
 6f
 e0
 c9
@@ -3247,64 +3219,80 @@
 cc
 6f
 e0
+88
+fa
+c0
+00
+03
+25
+c0
+00
+83
+63
+20
+60
+00
+00
+6f
+e0
 c9
 cc
 c0
 00
 83
-38
+35
 c0
 01
 03
-3c
+39
 c0
 01
 83
-3f
+3c
 c0
 02
 03
-49
+44
 c0
 02
 83
-52
+49
 c0
 03
 03
-59
+50
 c0
 03
 83
-45
+42
 c0
 04
 03
-5d
+52
 c0
 04
 83
-61
+54
 c0
 05
 03
-71
+5c
 c0
 05
 83
-65
+56
 c0
 06
 03
-69
+58
 c0
 06
 83
-6d
+5a
 c0
 07
 03
-4d
+46
 20
 60
 00
@@ -3316,7 +3304,7 @@
 79
 20
 7e
-03
+04
 67
 e0
 89
@@ -3332,11 +3320,19 @@
 79
 20
 7e
-04
+03
 20
 20
 03
-3a
+37
+68
+49
+c9
+d5
+70
+4a
+1a
+01
 d8
 a0
 09
@@ -3345,74 +3341,50 @@
 40
 7c
 99
-6f
-e1
-c9
-d5
-70
-4a
-02
-01
-67
-e1
+60
+49
 89
 23
 20
 20
 02
 85
-d8
-a0
-09
-23
-20
-40
-7c
-99
-6f
-e1
+68
+49
 c9
 e1
 20
 20
 03
-42
-d8
-a0
-09
-23
-20
-40
-7c
-99
-6f
-e1
-c9
+3d
+68
+49
+c9
 d8
 20
 20
 03
-42
-d8
-a0
-09
-23
-20
-40
-7c
-99
+3d
 70
 4a
-05
+1d
 01
-6f
-e1
+68
+49
 c9
 f6
 20
 20
 03
-43
+3e
+68
+49
+c9
+db
+70
+4a
+1b
+01
 d8
 a0
 09
@@ -3421,16 +3393,8 @@
 40
 7c
 99
-6f
-e1
-c9
-db
-70
-4a
-03
-01
-67
-e1
+60
+49
 89
 33
 70
@@ -3440,103 +3404,63 @@
 20
 20
 03
-b1
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+bc
+68
+49
 c9
 de
 20
 20
 03
-55
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+4a
+68
+49
 c9
 e4
 20
 20
 03
-55
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+4a
+68
+49
 c9
 e7
 20
 20
 03
-55
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+4a
+68
+49
 c9
 ed
 20
 20
 03
-55
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+4a
+68
+49
 c9
 f0
 20
 20
 03
-55
-d8
-a0
-09
-33
-20
-40
-7c
-99
-6f
-e1
+4a
+68
+49
 c9
 f3
 20
 20
 03
-55
+4a
+68
+49
+c9
+ea
+70
+4a
+1c
+01
 d8
 a0
 09
@@ -3545,16 +3469,8 @@
 40
 7c
 99
-6f
-e1
-c9
-ea
-70
-4a
-04
-01
-67
-e1
+60
+49
 89
 43
 70
@@ -3564,7 +3480,135 @@
 20
 20
 03
-b1
+bc
+6f
+e0
+c9
+cc
+c0
+00
+83
+35
+c0
+01
+03
+39
+c0
+01
+83
+73
+c0
+02
+03
+75
+c0
+02
+83
+49
+c0
+03
+03
+50
+c0
+03
+83
+77
+c0
+04
+03
+52
+c0
+04
+83
+54
+c0
+05
+03
+79
+c0
+05
+83
+7b
+c0
+06
+03
+7d
+c0
+06
+83
+7f
+c0
+07
+03
+81
+20
+60
+00
+00
+68
+49
+ca
+02
+20
+20
+03
+3d
+68
+49
+ca
+05
+20
+20
+03
+3d
+68
+49
+ca
+08
+20
+20
+03
+3d
+68
+49
+ca
+0b
+20
+20
+03
+3d
+68
+49
+ca
+0e
+20
+20
+03
+3d
+68
+49
+ca
+11
+20
+20
+03
+3d
+68
+49
+ca
+14
+20
+20
+03
+3d
+68
+49
+ca
+17
+20
+20
+03
+3d
 6f
 e0
 c5
@@ -3620,7 +3664,7 @@
 24
 42
 83
-8b
+96
 6f
 e0
 c8
@@ -3636,7 +3680,7 @@
 24
 42
 83
-8e
+99
 20
 60
 00
@@ -3664,11 +3708,11 @@
 c0
 2a
 83
-93
+9e
 c0
 55
 03
-96
+a1
 20
 60
 00
@@ -3684,7 +3728,7 @@
 20
 20
 03
-98
+a3
 6f
 e0
 c9
@@ -3760,7 +3804,7 @@
 20
 40
 03
-82
+8d
 6f
 e0
 c5
@@ -3768,7 +3812,7 @@
 20
 20
 03
-ac
+b7
 6f
 e0
 c5
@@ -3928,7 +3972,7 @@
 c0
 08
 83
-d4
+df
 20
 20
 23
@@ -3940,43 +3984,43 @@
 c0
 00
 03
-e0
+eb
 c0
 00
 83
-e2
+ed
 c0
 01
 03
-f0
+fb
 c0
 01
 83
-f4
+ff
 c0
 02
 04
-04
+0f
 c0
 02
 84
-0b
+16
 c0
 03
-03
-fa
+04
+05
 c0
 03
-83
-fe
+84
+09
 c0
 04
 04
-00
+0b
 c0
 04
 84
-02
+0d
 20
 60
 00
@@ -4004,11 +4048,11 @@
 c0
 00
 03
-e8
+f3
 c0
 00
 83
-ec
+f7
 20
 60
 00
@@ -4107,24 +4151,24 @@
 08
 20
 20
-03
-f5
+04
+00
 70
 49
 7d
 09
 20
 20
-03
-fb
+04
+06
 70
 49
 7d
 00
 20
 20
-03
-f5
+04
+00
 6f
 e0
 c9
@@ -4159,12 +4203,12 @@
 7f
 c0
 00
-83
-f5
+84
+00
 c0
 00
 04
-11
+1c
 20
 60
 00
@@ -4200,15 +4244,15 @@
 20
 22
 84
-0f
+1a
 20
 40
 04
-21
+2c
 20
 40
 04
-43
+4e
 6f
 e0
 c9
@@ -4256,7 +4300,7 @@
 24
 21
 04
-28
+33
 da
 40
 00
@@ -4268,7 +4312,7 @@
 20
 21
 04
-3f
+4a
 ef
 e0
 80
@@ -4280,7 +4324,7 @@
 24
 21
 04
-2e
+39
 da
 40
 00
@@ -4292,7 +4336,7 @@
 20
 21
 04
-41
+4c
 1f
 e6
 7c
@@ -4300,7 +4344,7 @@
 20
 22
 84
-37
+42
 1f
 e6
 7c
@@ -4308,7 +4352,7 @@
 20
 22
 84
-39
+44
 1f
 e6
 7c
@@ -4316,7 +4360,7 @@
 20
 22
 84
-3b
+46
 1f
 e6
 7c
@@ -4324,7 +4368,7 @@
 20
 22
 84
-3d
+48
 20
 60
 00
@@ -4412,11 +4456,11 @@
 20
 22
 84
-4e
+59
 c2
 00
 04
-49
+54
 20
 60
 00
@@ -4492,27 +4536,27 @@
 c0
 12
 04
-78
+83
 c0
 13
 04
-70
+7b
 c0
 14
 84
-70
+7b
 c0
 11
 84
-70
+7b
 c0
 18
 04
-86
+91
 c0
 12
 84
-7f
+8a
 c0
 10
 fc
@@ -4524,7 +4568,7 @@
 c0
 13
 84
-69
+74
 20
 20
 23
@@ -4556,7 +4600,7 @@
 20
 20
 04
-76
+81
 6f
 e0
 c8
@@ -4616,7 +4660,7 @@
 20
 20
 04
-76
+81
 6f
 e0
 c8
@@ -4644,7 +4688,7 @@
 20
 20
 04
-76
+81
 6f
 e0
 c9
@@ -4672,7 +4716,7 @@
 20
 20
 04
-76
+81
 20
 75
 80
@@ -4724,7 +4768,7 @@
 20
 40
 04
-aa
+b5
 2a
 2f
 fe
@@ -4756,7 +4800,7 @@
 20
 40
 04
-aa
+b5
 d8
 a0
 8a
@@ -4784,7 +4828,7 @@
 20
 21
 04
-9f
+aa
 20
 20
 21
@@ -4888,7 +4932,7 @@
 20
 40
 04
-e3
+ee
 70
 8a
 08
@@ -4924,7 +4968,7 @@
 20
 40
 04
-d9
+e4
 6f
 f0
 8a
@@ -4968,7 +5012,7 @@
 20
 40
 04
-e3
+ee
 70
 80
 cd
@@ -5028,7 +5072,7 @@
 c3
 02
 84
-e4
+ef
 68
 59
 01
@@ -5064,7 +5108,7 @@
 c0
 08
 05
-03
+0e
 58
 00
 57
@@ -5108,7 +5152,7 @@
 c0
 08
 05
-00
+0b
 58
 00
 2b
@@ -5143,8 +5187,8 @@
 07
 20
 20
-04
-fc
+05
+07
 58
 00
 83
@@ -5156,7 +5200,7 @@
 20
 20
 04
-f1
+fc
 6f
 e0
 c3
@@ -5196,7 +5240,7 @@
 c0
 11
 05
-12
+1d
 c0
 7f
 b5
@@ -5212,7 +5256,7 @@
 20
 3a
 05
-18
+23
 6f
 e2
 45
@@ -5236,11 +5280,11 @@
 c0
 00
 85
-1c
+27
 c0
 01
 05
-24
+2f
 20
 60
 00
@@ -5260,7 +5304,7 @@
 c0
 01
 05
-21
+2c
 20
 60
 00
@@ -5292,7 +5336,7 @@
 c0
 80
 05
-29
+34
 20
 60
 00
@@ -5372,7 +5416,7 @@
 20
 40
 05
-3d
+48
 20
 20
 34
@@ -5408,11 +5452,11 @@
 20
 40
 05
-51
+5c
 20
 40
 05
-53
+5e
 6f
 e0
 89
@@ -5480,19 +5524,19 @@
 20
 40
 05
-5d
+68
 20
 40
 05
-60
+6b
 20
 40
 05
-70
+7b
 20
 40
 05
-87
+92
 d8
 e0
 00
@@ -5588,7 +5632,7 @@
 da
 40
 05
-73
+7e
 20
 20
 42
@@ -5604,7 +5648,7 @@
 20
 40
 05
-a8
+b3
 6f
 e0
 c9
@@ -5612,7 +5656,7 @@
 20
 3a
 05
-7f
+8a
 67
 e0
 c9
@@ -5640,7 +5684,7 @@
 20
 20
 05
-75
+80
 68
 48
 c9
@@ -5680,7 +5724,7 @@
 da
 40
 05
-8a
+95
 20
 20
 42
@@ -5696,7 +5740,7 @@
 20
 40
 05
-bd
+c8
 6f
 e0
 c9
@@ -5704,7 +5748,7 @@
 20
 3a
 05
-96
+a1
 67
 e0
 c9
@@ -5732,7 +5776,7 @@
 20
 20
 05
-8c
+97
 68
 48
 c9
@@ -5756,7 +5800,7 @@
 20
 20
 05
-84
+8f
 6a
 41
 49
@@ -5768,7 +5812,7 @@
 20
 40
 05
-a8
+b3
 6f
 e0
 c9
@@ -5776,7 +5820,7 @@
 20
 3a
 05
-ab
+b6
 67
 e0
 c9
@@ -5796,7 +5840,7 @@
 24
 21
 05
-ab
+b6
 1a
 62
 24
@@ -5804,7 +5848,7 @@
 20
 20
 05
-9e
+a9
 df
 20
 00
@@ -5824,7 +5868,7 @@
 20
 5a
 05
-af
+ba
 67
 e0
 c9
@@ -5852,7 +5896,7 @@
 20
 40
 05
-bd
+c8
 6f
 e0
 c9
@@ -5860,7 +5904,7 @@
 20
 3a
 05
-c0
+cb
 67
 e0
 c9
@@ -5880,7 +5924,7 @@
 24
 21
 05
-c0
+cb
 1a
 62
 24
@@ -5888,7 +5932,7 @@
 20
 20
 05
-b3
+be
 df
 20
 00
@@ -5908,7 +5952,7 @@
 20
 5a
 05
-c4
+cf
 67
 e0
 c9
@@ -5940,11 +5984,11 @@
 20
 40
 05
-9c
+a7
 20
 40
 05
-b1
+bc
 20
 40
 32
@@ -6005,8 +6049,8 @@
 20
 31
 95
-aa
-3c
+c9
+76
 aa
 55
 40
@@ -6450,7 +6494,7 @@
 00
 aa
 55
-2d
+45
 00
 d5
 49
@@ -6475,9 +6519,9 @@
 03
 70
 00
-02
-01
+04
 00
+3d
 03
 cd
 00
@@ -6499,6 +6543,30 @@
 04
 00
 00
+01
+00
+04
+00
+00
+44
+03
+00
+66
+01
+00
+66
+00
+00
+2c
+00
+65
+50
+00
+65
+4f
+01
+00
+52
 aa
 55
 08
@@ -6771,8 +6839,8 @@
 aa
 aa
 55
-94
-a3
-dc
-d3
+eb
+a6
+73
+8d
 f0
Index: output/program.lis
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/program.lis	(revision 4491)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/program.lis	(working copy)
@@ -4,19 +4,19 @@
 0001 c0000021 beq patch00_0 ,p_soft_reset 
 0002 c0010063 beq patch00_2 ,p_main_loop 
 0003 c008806c beq patch02_1 ,p_set_sync_on 
-0004 c00a04ea beq patch02_4 ,p_set_lemode 
+0004 c00a04f5 beq patch02_4 ,p_set_lemode 
 0005 c00a810d beq patch02_5 ,p_rf_rx_enable 
 0006 c00c011b beq patch03_0 ,p_txon 
 0007 c00c80c1 beq patch03_1 ,p_set_tx_power 
 0008 c00d007d beq patch03_2 ,p_initialize_radio_cont 
-0009 c01b85c6 beq patch06_7 ,p_dongle_default_init 
+0009 c01b85d1 beq patch06_7 ,p_dongle_default_init 
 000a c01c00e0 beq patch07_0 ,p_dongle_read_kb_bind_status 
 000b c01c80dc beq patch07_1 ,p_dongle_write_kb_bind_status 
-000c c01e8544 beq patch07_5 ,p_dongle_usb_dispatch 
+000c c01e854f beq patch07_5 ,p_dongle_usb_dispatch 
 000d c01f0027 beq patch07_6 ,p_dongle_work_mode_auto 
 000e c06280d9 beq patch18_5 ,p_otp_read_data 
-000f c06d04bb beq patch1b_2 ,p_sadc_calibration 
-0010 c06e04cb beq patch1b_4 ,p_enable_adc 
+000f c06d04c6 beq patch1b_2 ,p_sadc_calibration 
+0010 c06e04d6 beq patch1b_4 ,p_enable_adc 
 0011 c07f0126 beq patch1f_6 ,p_usb_init 
 0012 c07f81b5 beq patch1f_7 ,p_usb_rx 
 0013 c07e8122 beq patch1f_5 ,p_usb_isr 
@@ -26,13 +26,13 @@
 0015 c00001d9 beq patch20_0 ,p_usb_class_type 
 0016 c0010218 beq patch20_2 ,p_usb0_request_get_descriptor 
 0017 c0030240 beq patch20_6 ,p_usb_tx 
-0018 c01c8506 beq patch27_1 ,p_le_parse 
-0019 c026850a beq patch29_5 ,p_le_init_adv 
-001a c03785d0 beq patch2d_7 ,p_g24_receive_skip_end 
-001b c041050c beq patch30_2 ,p_g24_bind_data_parse_next 
+0018 c01c8511 beq patch27_1 ,p_le_parse 
+0019 c0268515 beq patch29_5 ,p_le_init_adv 
+001a c03785db beq patch2d_7 ,p_g24_receive_skip_end 
+001b c0410517 beq patch30_2 ,p_g24_bind_data_parse_next 
 001c c042025a beq patch30_4 ,p_g24_receive_packet_start1 
-001d c044052c beq patch31_0 ,p_g24_mode_switch_bind_search 
-001e c0450539 beq patch31_2 ,p_g24_bind_mode_auto 
+001d c0440537 beq patch31_0 ,p_g24_mode_switch_bind_search 
+001e c0450544 beq patch31_2 ,p_g24_bind_mode_auto 
 001f c17f8000 rtneq patch3f_7 
 0020 2020235a branch assert 
 
@@ -71,7 +71,7 @@
 0038 58000000 setarg 0 
 0039 e7e38005 istore 7 ,contw 
 003a 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
-003b 202003b1 branch p_dongle_usb_tx_enable_ep2 
+003b 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_g24_kb_blank_data:
 003c 6fe0c665 fetch 1 ,mem_dg_kb_blank_data_enable 
@@ -86,7 +86,7 @@
 0045 67e44651 store 8 ,mem_dg_kb_data_last_data 
 0046 70092300 jam kb_normal_report_id ,mem_usb_kb_data 
 0047 70090b10 jam usb_ep1_kb ,mem_usb_ep1_data 
-0048 202003ba branch p_dongle_usb_tx_enable_ep1 
+0048 202003c5 branch p_dongle_usb_tx_enable_ep1 
 
 p_dongle_g24_kb_sys_ctrl_blank_data:
 0049 6fe0c667 fetch 1 ,mem_dg_kb_system_crtl_blank_data_enable 
@@ -101,7 +101,7 @@
 0052 6fe10943 fetch 2 ,mem_usb_kb_system 
 0053 67e1465f store 2 ,mem_dg_kb_system_sta_data 
 0054 70090c22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
-0055 202003b1 branch p_dongle_usb_tx_enable_ep2 
+0055 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_g24_kb_mul_blank_data:
 0056 6fe0c666 fetch 1 ,mem_dg_kb_mul_blank_data_enable 
@@ -116,7 +116,7 @@
 005f 6fe18933 fetch 3 ,mem_usb_kb_multikey 
 0060 67e1c65c store 3 ,mem_dg_kb_multikey_last_data 
 0061 70090c21 jam usb_ep2_multikey ,mem_usb_ep2_data 
-0062 202003b1 branch p_dongle_usb_tx_enable_ep2 
+0062 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_main_loop:
 0063 20407552 call sp_calc_sequence_256 
@@ -184,12 +184,12 @@
 0099 58557474 setarg 0x557474 
 009a 67f18968 store 3 ,0x8968 
 009b 7089606e jam 0x6e ,0x8960 
-009c 2040048d call p_rx_dcoc 
-009d 204004b8 call p_rfpll_aac_ghpc 
+009c 20400498 call p_rx_dcoc 
+009d 204004c3 call p_rfpll_aac_ghpc 
 009e 204000a2 call p_set_xtal_cap 
 009f 7041480c jam system_clk_12m ,mem_system_clk 
 00a0 20406f4e call sadc_calibration 
-00a1 202004ba branch p_dpll_ring_ibias_calc 
+00a1 202004c5 branch p_dpll_ring_ibias_calc 
 
 p_set_xtal_cap:
 00a2 20758000 rtn wake 
@@ -441,7 +441,7 @@
 016a 6fe1480a fetch 2 ,mem_usb_get_report_code_data 
 016b 67e14864 store 2 ,mem_dongle_usb_ep2_data + 15 
 016c 70090c23 jam usb_ep2_device_info ,mem_usb_ep2_data 
-016d 202003b1 branch p_dongle_usb_tx_enable_ep2 
+016d 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_dpi:
 016e 70489c01 jam 0x01 ,mem_usb_dpi_info_data + 6 
@@ -455,7 +455,7 @@
 0174 6fe0c805 fetch 1 ,mem_usb_get_report_dpi_data 
 0175 67e0c89b store 1 ,mem_usb_dpi_info_data + 5 
 0176 70090c24 jam usb_ep2_dpi ,mem_usb_ep2_data 
-0177 202003b1 branch p_dongle_usb_tx_enable_ep2 
+0177 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_sn:
 0178 70485540 jam 0x40 ,mem_dongle_usb_ep2_data 
@@ -466,7 +466,7 @@
 017d 6fe347ff fetch 6 ,mem_usb_get_report_sn_data 
 017e 67e3485a store 6 ,mem_dongle_usb_ep2_data + 5 
 017f 70090c26 jam usb_ep2_sn ,mem_usb_ep2_data 
-0180 202003b1 branch p_dongle_usb_tx_enable_ep2 
+0180 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_battery:
 0181 7048dd01 jam 0x01 ,mem_usb_battery_info_data + 6 
@@ -480,7 +480,7 @@
 0187 6fe0c807 fetch 1 ,mem_usb_get_report_battery_data 
 0188 67e0c8dc store 1 ,mem_usb_battery_info_data + 5 
 0189 70090c25 jam usb_ep2_battery ,mem_usb_ep2_data 
-018a 202003b1 branch p_dongle_usb_tx_enable_ep2 
+018a 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_tx_ep2_app_data:
 018b 70485540 jam 0x40 ,mem_dongle_usb_ep2_data 
@@ -489,7 +489,7 @@
 018e 70485808 jam 0x08 ,mem_dongle_usb_ep2_data + 3 
 018f 70485900 jam 0x00 ,mem_dongle_usb_ep2_data + 4 
 0190 70090c29 jam usb_ep2_app ,mem_usb_ep2_data 
-0191 202003b1 branch p_dongle_usb_tx_enable_ep2 
+0191 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_tx_ep2_key_data:
 0192 70491840 jam 0x40 ,mem_usb_key_info_data 
@@ -498,7 +498,7 @@
 0195 70491b04 jam 0x04 ,mem_usb_key_info_data + 3 
 0196 70491c01 jam 0x01 ,mem_usb_key_info_data + 4 
 0197 70090c30 jam usb_ep2_key ,mem_usb_ep2_data 
-0198 202003b1 branch p_dongle_usb_tx_enable_ep2 
+0198 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_get_connect_state:
 0199 6fe0c80f fetch 1 ,mem_dongle_connect_mouse_flag 
@@ -514,7 +514,7 @@
 01a1 70481801 jam 0x01 ,mem_usb_rf_state_data + 4 
 01a2 70481901 jam 0x01 ,mem_usb_rf_state_data + 5 
 01a3 70090c27 jam usb_ep2_mskb_state ,mem_usb_ep2_data 
-01a4 202003b1 branch p_dongle_usb_tx_enable_ep2 
+01a4 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_device_disconnect:
 01a5 70481440 jam 0x40 ,mem_usb_rf_state_data 
@@ -524,7 +524,7 @@
 01a9 70481801 jam 0x01 ,mem_usb_rf_state_data + 4 
 01aa 70481900 jam 0x00 ,mem_usb_rf_state_data + 5 
 01ab 70090c27 jam usb_ep2_mskb_state ,mem_usb_ep2_data 
-01ac 202003b1 branch p_dongle_usb_tx_enable_ep2 
+01ac 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_hci_cmd_set_ms_b4_fuction:
 01ad 6fe0887a fetch 1 ,mem_usb0_set_report_data + 5 
@@ -728,10 +728,10 @@
 024b c0817c06 bne usb_connected ,usb_tx_fifo_release 
 024c 6fe08902 fetch 1 ,mem_usb_clear_remote_wakeup 
 024d 243a7c06 nbranch usb_tx_fifo_release ,blank 
-024e 204003c3 call p_usb_tx_data_ep1 
+024e 204003ce call p_usb_tx_data_ep1 
 024f 6fe0c97d fetch 1 ,mem_usb_website_step 
 0250 245a0252 ncall p_usb_ms_data_clear_key_value ,blank 
-0251 20200450 branch p_usb_tx_data_ep2 
+0251 2020045b branch p_usb_tx_data_ep2 
 
 p_usb_ms_data_clear_key_value:
 0252 70091400 jam 0 ,mem_usb_mouse_data + 1 
@@ -770,7 +770,7 @@
 026b d8a00923 arg mem_usb_kb_data ,contw 
 026c 20407c9a call memset0_8 
 026d 70090b11 jam usb_ep1_kb_http ,mem_usb_ep1_data 
-026e 202003ba branch p_dongle_usb_tx_enable_ep1 
+026e 202003c5 branch p_dongle_usb_tx_enable_ep1 
 
 p_dongle_g24_kb:
 026f 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
@@ -800,7 +800,7 @@
 
 p_dongle_usb_tx_normal_data_enable:
 0285 70090b10 jam usb_ep1_kb ,mem_usb_ep1_data 
-0286 202003ba branch p_dongle_usb_tx_enable_ep1 
+0286 202003c5 branch p_dongle_usb_tx_enable_ep1 
 
 p_dongle_g24_kb_type2:
 0287 d8a00943 arg mem_usb_kb_system ,contw 
@@ -820,7 +820,7 @@
 
 p_dongle_usb_tx_system_data_enable:
 0295 70090c22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
-0296 202003b1 branch p_dongle_usb_tx_enable_ep2 
+0296 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_g24_kb_type3:
 0297 d8a00933 arg mem_usb_kb_multikey ,contw 
@@ -840,15 +840,15 @@
 
 p_dongle_usb_tx_multikey_data_enable:
 02a5 70090c21 jam usb_ep2_multikey ,mem_usb_ep2_data 
-02a6 202003b1 branch p_dongle_usb_tx_enable_ep2 
+02a6 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_g24_mouse:
 02a7 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
 02a8 c282026b bbit1 data_http ,p_dongle_usb_tx_http_data 
-02a9 c2818378 bbit1 data_app ,p_dongle_receive_app_data 
-02aa c2828380 bbit1 data_dpi ,p_dongle_receive_dpi_data 
-02ab c283039a bbit1 data_device_info ,p_dongle_receive_device_info_data 
-02ac c28383ab bbit1 data_battery ,p_dongle_receive_battery_data 
+02a9 c2818383 bbit1 data_app ,p_dongle_receive_app_data 
+02aa c282838b bbit1 data_dpi ,p_dongle_receive_dpi_data 
+02ab c28303a5 bbit1 data_device_info ,p_dongle_receive_device_info_data 
+02ac c28383b6 bbit1 data_battery ,p_dongle_receive_battery_data 
 02ad 202002ae branch p_dongle_g24_mouse_next 
 
 p_dongle_g24_mouse_next:
@@ -865,10 +865,10 @@
 02b8 20407cda call memcpy 
 02b9 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
 02ba c282026b bbit1 data_http ,p_dongle_usb_tx_http_data 
-02bb c2818378 bbit1 data_app ,p_dongle_receive_app_data 
-02bc c2828380 bbit1 data_dpi ,p_dongle_receive_dpi_data 
-02bd c283039a bbit1 data_device_info ,p_dongle_receive_device_info_data 
-02be c28383ab bbit1 data_battery ,p_dongle_receive_battery_data 
+02bb c2818383 bbit1 data_app ,p_dongle_receive_app_data 
+02bc c282838b bbit1 data_dpi ,p_dongle_receive_dpi_data 
+02bd c28303a5 bbit1 data_device_info ,p_dongle_receive_device_info_data 
+02be c28383b6 bbit1 data_battery ,p_dongle_receive_battery_data 
 02bf 20600000 rtn 
 
 p_dongle_g24_mouse_data:
@@ -903,7 +903,7 @@
 02d6 67e0c972 store 1 ,mem_usb_mouse_data_last 
 02d7 98467c00 isub temp ,null 
 02d8 202282dc branch p_dongle_receive_mouse_data_check ,zero 
-02d9 6fe0ca06 fetch 1 ,mem_usb_task_release_normal_flag 
+02d9 6fe0ca1e fetch 1 ,mem_usb_task_release_normal_flag 
 02da 243a030e nbranch p_dongle_ms_normal_key_release ,blank 
 02db 202002de branch p_dongle_mouse_data_tx_enable 
 
@@ -913,7 +913,7 @@
 
 p_dongle_mouse_data_tx_enable:
 02de 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
-02df 202003b1 branch p_dongle_usb_tx_enable_ep2 
+02df 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_receive_b4_b5_flag_check:
 02e0 6fe0c9c0 fetch 1 ,mem_ms_b4_function_flag 
@@ -938,7 +938,7 @@
 02f1 20628000 rtn zero 
 02f2 6fe0c9c3 fetch 1 ,mem_ms_b4_key_val 
 02f3 2feffe04 isolate1 b4_bit ,pdata 
-02f4 20208326 branch p_donge_ms_b4_key_press_set ,true 
+02f4 2020831f branch p_donge_ms_b4_key_press_set ,true 
 02f5 20200305 branch p_donge_ms_fuction_key_release_set 
 
 p_dongle_b5_fuction_flag_change:
@@ -955,991 +955,1022 @@
 0300 20628000 rtn zero 
 0301 6fe0c9c8 fetch 1 ,mem_ms_b5_key_val 
 0302 2feffe03 isolate1 b5_bit ,pdata 
-0303 20208323 branch p_donge_ms_b5_key_press_set ,true 
+0303 2020831c branch p_donge_ms_b5_key_press_set ,true 
 0304 20200305 branch p_donge_ms_fuction_key_release_set 
 
 p_donge_ms_fuction_key_release_set:
-0305 6fe0ca02 fetch 1 ,mem_usb_normal_key_flag 
+0305 6fe0ca1a fetch 1 ,mem_usb_normal_key_flag 
 0306 245a030e ncall p_dongle_ms_normal_key_release ,blank 
-0307 6fe0ca03 fetch 1 ,mem_usb_multikey_key_flag 
-0308 245a0313 ncall p_dongle_ms_multikey_key_release ,blank 
-0309 6fe0ca04 fetch 1 ,mem_usb_system_key_flag 
-030a 245a0318 ncall p_dongle_ms_system_key_release ,blank 
-030b 6fe0ca05 fetch 1 ,mem_usb_task_windows_key_flag 
-030c 245a031d ncall p_dongle_ms_task_windows_key_release ,blank 
+0307 6fe0ca1b fetch 1 ,mem_usb_multikey_key_flag 
+0308 245a0312 ncall p_dongle_ms_multikey_key_release ,blank 
+0309 6fe0ca1c fetch 1 ,mem_usb_system_key_flag 
+030a 245a0315 ncall p_dongle_ms_system_key_release ,blank 
+030b 6fe0ca1d fetch 1 ,mem_usb_task_windows_key_flag 
+030c 245a0318 ncall p_dongle_ms_task_windows_key_release ,blank 
 030d 20600000 rtn 
 
 p_dongle_ms_normal_key_release:
-030e 704a0600 jam 0 ,mem_usb_task_release_normal_flag 
-030f 704a0200 jam 0 ,mem_usb_normal_key_flag 
-0310 d8a00923 arg mem_usb_kb_data ,contw 
-0311 20407c99 call memset0_16 
-0312 20200343 branch p_dongle_ms_tx_normal_data + 1 
+030e 704a1e00 jam 0 ,mem_usb_task_release_normal_flag 
+030f 704a1a00 jam 0 ,mem_usb_normal_key_flag 
+0310 d8400000 arg 0 ,temp 
+0311 2020033e branch p_dongle_ms_tx_normal_data + 1 
 
 p_dongle_ms_multikey_key_release:
-0313 704a0300 jam 0 ,mem_usb_multikey_key_flag 
-0314 d8a00933 arg mem_usb_kb_multikey ,contw 
-0315 20407c99 call memset0_16 
-0316 6fe1c9fc fetch 3 ,mem_usb_multkey_release 
-0317 20200356 branch p_dongle_ms_tx_multikey_data + 1 
+0312 704a1b00 jam 0 ,mem_usb_multikey_key_flag 
+0313 6849c9fc fetcht 3 ,mem_usb_multkey_release 
+0314 2020034b branch p_dongle_ms_tx_multikey_data + 1 
 
 p_dongle_ms_system_key_release:
-0318 704a0400 jam 0 ,mem_usb_system_key_flag 
-0319 d8a00943 arg mem_usb_kb_system ,contw 
-031a 20407c99 call memset0_16 
-031b 6fe1c9f9 fetch 3 ,mem_usb_system_ctrl_release 
-031c 20200375 branch p_dongle_ms_tx_system_data + 1 
+0315 704a1c00 jam 0 ,mem_usb_system_key_flag 
+0316 6849c9f9 fetcht 3 ,mem_usb_system_ctrl_release 
+0317 2020035e branch p_dongle_ms_tx_system_data + 1 
 
 p_dongle_ms_task_windows_key_release:
-031d 704a0500 jam 0 ,mem_usb_task_windows_key_flag 
-031e 704a0601 jam 1 ,mem_usb_task_release_normal_flag 
-031f d8a00923 arg mem_usb_kb_data ,contw 
-0320 20407c99 call memset0_16 
-0321 6fe1c9ff fetch 3 ,mem_usb_win_task_windows_release 
-0322 20200343 branch p_dongle_ms_tx_normal_data + 1 
+0318 704a1d00 jam 0 ,mem_usb_task_windows_key_flag 
+0319 704a1e01 jam 1 ,mem_usb_task_release_normal_flag 
+031a 6849c9ff fetcht 3 ,mem_usb_win_task_windows_release 
+031b 2020033e branch p_dongle_ms_tx_normal_data + 1 
 
 p_donge_ms_b5_key_press_set:
-0323 6fe0c9c5 fetch 1 ,mem_ms_b5_function_flag 
-0324 67e0c9cc store 1 ,mem_ms_key_function_flag_temp 
-0325 20200328 branch p_dongle_ms_key_press_val_set 
+031c 6fe0c9c5 fetch 1 ,mem_ms_b5_function_flag 
+031d 67e0c9cc store 1 ,mem_ms_key_function_flag_temp 
+031e 20200321 branch p_dongle_ms_key_press_val_set 
 
 p_donge_ms_b4_key_press_set:
-0326 6fe0c9c0 fetch 1 ,mem_ms_b4_function_flag 
-0327 67e0c9cc store 1 ,mem_ms_key_function_flag_temp 
+031f 6fe0c9c0 fetch 1 ,mem_ms_b4_function_flag 
+0320 67e0c9cc store 1 ,mem_ms_key_function_flag_temp 
 
 p_dongle_ms_key_press_val_set:
-0328 6fe0c9cc fetch 1 ,mem_ms_key_function_flag_temp 
-0329 c0008338 beq forword ,p_dongle_ms_forword_val_set 
-032a c001033c beq backword ,p_dongle_ms_back_val_set 
-032b c001833f beq alt_a ,p_dongle_ms_alt_a_val_set 
-032c c0020349 beq boss ,p_dongle_ms_boss_val_set 
-032d c0028352 beq vol_add ,p_dongle_ms_vol_add_val_set 
-032e c0030359 beq vol_down ,p_dongle_ms_vol_down_val_set 
-032f c0038345 beq pc_sleep ,p_dongle_ms_pc_sleep_val_set 
-0330 c004035d beq light_add ,p_dongle_ms_light_add_val_set 
-0331 c0048361 beq light_down ,p_dongle_ms_light_down_val_set 
-0332 c0050371 beq powerdown ,p_dongle_ms_powerdown_val_set 
-0333 c0058365 beq play ,p_dongle_ms_play_set 
-0334 c0060369 beq paly_forword ,p_dongle_ms_play_forword_set 
-0335 c006836d beq play_next ,p_dongle_ms_play_next_set 
-0336 c007034d beq task_windows ,p_dongle_ms_task_windows_set 
-0337 20600000 rtn 
+0321 6fe088fa fetch 1 ,mem_usb_tx_mac_enable 
+0322 c0000325 beq os_win ,p_dongle_ms_key_press_win_val_set 
+0323 c0008363 beq os_mac ,p_dongle_ms_key_press_mac_val_set 
+0324 20600000 rtn 
+
+p_dongle_ms_key_press_win_val_set:
+0325 6fe0c9cc fetch 1 ,mem_ms_key_function_flag_temp 
+0326 c0008335 beq forword ,p_dongle_ms_forword_val_set 
+0327 c0010339 beq backword ,p_dongle_ms_back_val_set 
+0328 c001833c beq alt_a ,p_dongle_ms_alt_a_val_set 
+0329 c0020344 beq boss ,p_dongle_ms_boss_val_set 
+032a c0028349 beq vol_add ,p_dongle_ms_vol_add_val_set 
+032b c0030350 beq vol_down ,p_dongle_ms_vol_down_val_set 
+032c c0038342 beq pc_sleep ,p_dongle_ms_pc_sleep_val_set 
+032d c0040352 beq light_add ,p_dongle_ms_light_add_val_set 
+032e c0048354 beq light_down ,p_dongle_ms_light_down_val_set 
+032f c005035c beq powerdown ,p_dongle_ms_powerdown_val_set 
+0330 c0058356 beq play ,p_dongle_ms_play_set 
+0331 c0060358 beq paly_forword ,p_dongle_ms_play_forword_set 
+0332 c006835a beq play_next ,p_dongle_ms_play_next_set 
+0333 c0070346 beq task_windows ,p_dongle_ms_task_windows_set 
+0334 20600000 rtn 
 
 p_dongle_ms_forword_val_set:
-0338 6fe08914 fetch 1 ,mem_usb_mouse_data + 1 
-0339 79207e03 set1 b5_bit ,pdata 
+0335 6fe08914 fetch 1 ,mem_usb_mouse_data + 1 
+0336 79207e04 set1 b4_bit ,pdata 
 
 p_dongle_usb_mouse_dat_store:
-033a 67e08914 store 1 ,mem_usb_mouse_data + 1 
-033b 20600000 rtn 
+0337 67e08914 store 1 ,mem_usb_mouse_data + 1 
+0338 20600000 rtn 
 
 p_dongle_ms_back_val_set:
-033c 6fe08914 fetch 1 ,mem_usb_mouse_data + 1 
-033d 79207e04 set1 b4_bit ,pdata 
-033e 2020033a branch p_dongle_usb_mouse_dat_store 
+0339 6fe08914 fetch 1 ,mem_usb_mouse_data + 1 
+033a 79207e03 set1 b5_bit ,pdata 
+033b 20200337 branch p_dongle_usb_mouse_dat_store 
 
 p_dongle_ms_alt_a_val_set:
-033f d8a00923 arg mem_usb_kb_data ,contw 
-0340 20407c99 call memset0_16 
-0341 6fe1c9d5 fetch 3 ,mem_usb_win_alt_a 
+033c 6849c9d5 fetcht 3 ,mem_usb_win_alt_a 
 
 p_dongle_ms_tx_normal_data:
-0342 704a0201 jam 1 ,mem_usb_normal_key_flag 
-0343 67e18923 store 3 ,mem_usb_kb_data 
-0344 20200285 branch p_dongle_usb_tx_normal_data_enable 
+033d 704a1a01 jam 1 ,mem_usb_normal_key_flag 
+033e d8a00923 arg mem_usb_kb_data ,contw 
+033f 20407c99 call memset0_16 
+0340 60498923 storet 3 ,mem_usb_kb_data 
+0341 20200285 branch p_dongle_usb_tx_normal_data_enable 
 
 p_dongle_ms_pc_sleep_val_set:
-0345 d8a00923 arg mem_usb_kb_data ,contw 
-0346 20407c99 call memset0_16 
-0347 6fe1c9e1 fetch 3 ,mem_usb_win_sleep 
-0348 20200342 branch p_dongle_ms_tx_normal_data 
+0342 6849c9e1 fetcht 3 ,mem_usb_win_sleep 
+0343 2020033d branch p_dongle_ms_tx_normal_data 
 
 p_dongle_ms_boss_val_set:
-0349 d8a00923 arg mem_usb_kb_data ,contw 
-034a 20407c99 call memset0_16 
-034b 6fe1c9d8 fetch 3 ,mem_usb_win_win_d 
-034c 20200342 branch p_dongle_ms_tx_normal_data 
+0344 6849c9d8 fetcht 3 ,mem_usb_win_win_d 
+0345 2020033d branch p_dongle_ms_tx_normal_data 
 
 p_dongle_ms_task_windows_set:
-034d d8a00923 arg mem_usb_kb_data ,contw 
-034e 20407c99 call memset0_16 
-034f 704a0501 jam 1 ,mem_usb_task_windows_key_flag 
-0350 6fe1c9f6 fetch 3 ,mem_usb_win_task_windows 
-0351 20200343 branch p_dongle_ms_tx_normal_data + 1 
+0346 704a1d01 jam 1 ,mem_usb_task_windows_key_flag 
+0347 6849c9f6 fetcht 3 ,mem_usb_win_task_windows 
+0348 2020033e branch p_dongle_ms_tx_normal_data + 1 
 
 p_dongle_ms_vol_add_val_set:
-0352 d8a00933 arg mem_usb_kb_multikey ,contw 
-0353 20407c99 call memset0_16 
-0354 6fe1c9db fetch 3 ,mem_usb_win_vol_add 
+0349 6849c9db fetcht 3 ,mem_usb_win_vol_add 
 
 p_dongle_ms_tx_multikey_data:
-0355 704a0301 jam 1 ,mem_usb_multikey_key_flag 
-0356 67e18933 store 3 ,mem_usb_kb_multikey 
-0357 70090c21 jam usb_ep2_multikey ,mem_usb_ep2_data 
-0358 202003b1 branch p_dongle_usb_tx_enable_ep2 
+034a 704a1b01 jam 1 ,mem_usb_multikey_key_flag 
+034b d8a00933 arg mem_usb_kb_multikey ,contw 
+034c 20407c99 call memset0_16 
+034d 60498933 storet 3 ,mem_usb_kb_multikey 
+034e 70090c21 jam usb_ep2_multikey ,mem_usb_ep2_data 
+034f 202003bc branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_ms_vol_down_val_set:
-0359 d8a00933 arg mem_usb_kb_multikey ,contw 
-035a 20407c99 call memset0_16 
-035b 6fe1c9de fetch 3 ,mem_usb_win_vol_decrease 
-035c 20200355 branch p_dongle_ms_tx_multikey_data 
+0350 6849c9de fetcht 3 ,mem_usb_win_vol_decrease 
+0351 2020034a branch p_dongle_ms_tx_multikey_data 
 
 p_dongle_ms_light_add_val_set:
-035d d8a00933 arg mem_usb_kb_multikey ,contw 
-035e 20407c99 call memset0_16 
-035f 6fe1c9e4 fetch 3 ,mem_usb_win_light_add 
-0360 20200355 branch p_dongle_ms_tx_multikey_data 
+0352 6849c9e4 fetcht 3 ,mem_usb_win_light_add 
+0353 2020034a branch p_dongle_ms_tx_multikey_data 
 
 p_dongle_ms_light_down_val_set:
-0361 d8a00933 arg mem_usb_kb_multikey ,contw 
-0362 20407c99 call memset0_16 
-0363 6fe1c9e7 fetch 3 ,mem_usb_win_light_decrease 
-0364 20200355 branch p_dongle_ms_tx_multikey_data 
+0354 6849c9e7 fetcht 3 ,mem_usb_win_light_decrease 
+0355 2020034a branch p_dongle_ms_tx_multikey_data 
 
 p_dongle_ms_play_set:
-0365 d8a00933 arg mem_usb_kb_multikey ,contw 
-0366 20407c99 call memset0_16 
-0367 6fe1c9ed fetch 3 ,mem_usb_win_play 
-0368 20200355 branch p_dongle_ms_tx_multikey_data 
+0356 6849c9ed fetcht 3 ,mem_usb_win_play 
+0357 2020034a branch p_dongle_ms_tx_multikey_data 
 
 p_dongle_ms_play_forword_set:
-0369 d8a00933 arg mem_usb_kb_multikey ,contw 
-036a 20407c99 call memset0_16 
-036b 6fe1c9f0 fetch 3 ,mem_usb_win_forword_play 
-036c 20200355 branch p_dongle_ms_tx_multikey_data 
+0358 6849c9f0 fetcht 3 ,mem_usb_win_forword_play 
+0359 2020034a branch p_dongle_ms_tx_multikey_data 
 
 p_dongle_ms_play_next_set:
-036d d8a00933 arg mem_usb_kb_multikey ,contw 
-036e 20407c99 call memset0_16 
-036f 6fe1c9f3 fetch 3 ,mem_usb_win_next_play 
-0370 20200355 branch p_dongle_ms_tx_multikey_data 
+035a 6849c9f3 fetcht 3 ,mem_usb_win_next_play 
+035b 2020034a branch p_dongle_ms_tx_multikey_data 
 
 p_dongle_ms_powerdown_val_set:
-0371 d8a00943 arg mem_usb_kb_system ,contw 
-0372 20407c99 call memset0_16 
-0373 6fe1c9ea fetch 3 ,mem_usb_win_powerdown 
+035c 6849c9ea fetcht 3 ,mem_usb_win_powerdown 
 
 p_dongle_ms_tx_system_data:
-0374 704a0401 jam 1 ,mem_usb_system_key_flag 
-0375 67e18943 store 3 ,mem_usb_kb_system 
-0376 70090c22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
-0377 202003b1 branch p_dongle_usb_tx_enable_ep2 
+035d 704a1c01 jam 1 ,mem_usb_system_key_flag 
+035e d8a00943 arg mem_usb_kb_system ,contw 
+035f 20407c99 call memset0_16 
+0360 60498943 storet 3 ,mem_usb_kb_system 
+0361 70090c22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+0362 202003bc branch p_dongle_usb_tx_enable_ep2 
+
+p_dongle_ms_key_press_mac_val_set:
+0363 6fe0c9cc fetch 1 ,mem_ms_key_function_flag_temp 
+0364 c0008335 beq forword ,p_dongle_ms_forword_val_set 
+0365 c0010339 beq backword ,p_dongle_ms_back_val_set 
+0366 c0018373 beq alt_a ,p_dongle_ms_mac_alt_a_val_set 
+0367 c0020375 beq boss ,p_dongle_ms_mac_boss_val_set 
+0368 c0028349 beq vol_add ,p_dongle_ms_vol_add_val_set 
+0369 c0030350 beq vol_down ,p_dongle_ms_vol_down_val_set 
+036a c0038377 beq pc_sleep ,p_dongle_ms_mac_pc_sleep_val_set 
+036b c0040352 beq light_add ,p_dongle_ms_light_add_val_set 
+036c c0048354 beq light_down ,p_dongle_ms_light_down_val_set 
+036d c0050379 beq powerdown ,p_dongle_ms_mac_powerdown_val_set 
+036e c005837b beq play ,p_dongle_ms_mac_play_set 
+036f c006037d beq paly_forword ,p_dongle_ms_mac_play_forword_set 
+0370 c006837f beq play_next ,p_dongle_ms_mac_play_next_set 
+0371 c0070381 beq task_windows ,p_dongle_ms_mac_task_windows_set 
+0372 20600000 rtn 
+
+p_dongle_ms_mac_alt_a_val_set:
+0373 6849ca02 fetcht 3 ,mem_usb_mac_ctrl_a 
+0374 2020033d branch p_dongle_ms_tx_normal_data 
+
+p_dongle_ms_mac_boss_val_set:
+0375 6849ca05 fetcht 3 ,mem_usb_mac_boss 
+0376 2020033d branch p_dongle_ms_tx_normal_data 
+
+p_dongle_ms_mac_pc_sleep_val_set:
+0377 6849ca08 fetcht 3 ,mem_usb_mac_sleep 
+0378 2020033d branch p_dongle_ms_tx_normal_data 
+
+p_dongle_ms_mac_powerdown_val_set:
+0379 6849ca0b fetcht 3 ,mem_usb_mac_powerdown 
+037a 2020033d branch p_dongle_ms_tx_normal_data 
+
+p_dongle_ms_mac_play_set:
+037b 6849ca0e fetcht 3 ,mem_usb_mac_play 
+037c 2020033d branch p_dongle_ms_tx_normal_data 
+
+p_dongle_ms_mac_play_forword_set:
+037d 6849ca11 fetcht 3 ,mem_usb_mac_forword_play 
+037e 2020033d branch p_dongle_ms_tx_normal_data 
+
+p_dongle_ms_mac_play_next_set:
+037f 6849ca14 fetcht 3 ,mem_usb_mac_next_play 
+0380 2020033d branch p_dongle_ms_tx_normal_data 
+
+p_dongle_ms_mac_task_windows_set:
+0381 6849ca17 fetcht 3 ,mem_usb_mac_task_windows 
+0382 2020033d branch p_dongle_ms_tx_normal_data 
 
 p_dongle_receive_app_data:
-0378 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-0379 6848c80e fetcht 1 ,mem_dongle_app_data 
-037a 98467c00 isub temp ,null 
-037b 20628000 rtn zero 
-037c 67e0c80e store 1 ,mem_dongle_app_data 
-037d 6fe0c80e fetch 1 ,mem_dongle_app_data 
-037e c1ff8000 rtnne long_press 
-037f 2020018b branch p_dongle_usb_tx_ep2_app_data 
+0383 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+0384 6848c80e fetcht 1 ,mem_dongle_app_data 
+0385 98467c00 isub temp ,null 
+0386 20628000 rtn zero 
+0387 67e0c80e store 1 ,mem_dongle_app_data 
+0388 6fe0c80e fetch 1 ,mem_dongle_app_data 
+0389 c1ff8000 rtnne long_press 
+038a 2020018b branch p_dongle_usb_tx_ep2_app_data 
 
 p_dongle_receive_dpi_data:
-0380 6fe145eb fetch 2 ,mem_24g_rxdata_temp + 3 
-0381 67e14805 store 2 ,mem_usb_get_report_dpi_data 
+038b 6fe145eb fetch 2 ,mem_24g_rxdata_temp + 3 
+038c 67e14805 store 2 ,mem_usb_get_report_dpi_data 
 
 p_dongle_receive_dpi_data_compare:
-0382 6fe0c805 fetch 1 ,mem_usb_get_report_dpi_data 
-0383 6848c812 fetcht 1 ,mem_dongle_receive_dpi_data 
-0384 98467c00 isub temp ,null 
-0385 2442838b ncall p_dongle_usb_ep2_tx_dpi_data_enable ,zero 
-0386 6fe0c806 fetch 1 ,mem_usb_get_report_dpi_data + 1 
-0387 6848c813 fetcht 1 ,mem_dongle_receive_dpi_data + 1 
-0388 98467c00 isub temp ,null 
-0389 2442838e ncall p_dongle_usb_ep2_tx_dpi_state_data_enable ,zero 
-038a 20600000 rtn 
+038d 6fe0c805 fetch 1 ,mem_usb_get_report_dpi_data 
+038e 6848c812 fetcht 1 ,mem_dongle_receive_dpi_data 
+038f 98467c00 isub temp ,null 
+0390 24428396 ncall p_dongle_usb_ep2_tx_dpi_data_enable ,zero 
+0391 6fe0c806 fetch 1 ,mem_usb_get_report_dpi_data + 1 
+0392 6848c813 fetcht 1 ,mem_dongle_receive_dpi_data + 1 
+0393 98467c00 isub temp ,null 
+0394 24428399 ncall p_dongle_usb_ep2_tx_dpi_state_data_enable ,zero 
+0395 20600000 rtn 
 
 p_dongle_usb_ep2_tx_dpi_data_enable:
-038b 6fe0c805 fetch 1 ,mem_usb_get_report_dpi_data 
-038c 67e0c812 store 1 ,mem_dongle_receive_dpi_data 
-038d 2020016f branch p_dongle_usb_tx_ep2_dpi_data 
+0396 6fe0c805 fetch 1 ,mem_usb_get_report_dpi_data 
+0397 67e0c812 store 1 ,mem_dongle_receive_dpi_data 
+0398 2020016f branch p_dongle_usb_tx_ep2_dpi_data 
 
 p_dongle_usb_ep2_tx_dpi_state_data_enable:
-038e 6fe0c806 fetch 1 ,mem_usb_get_report_dpi_data + 1 
-038f 67e0c813 store 1 ,mem_dongle_receive_dpi_data + 1 
-0390 c02a8393 beq release ,p_dongle_dpi_key_release 
-0391 c0550396 beq press ,p_dongle_dpi_key_press 
-0392 20600000 rtn 
+0399 6fe0c806 fetch 1 ,mem_usb_get_report_dpi_data + 1 
+039a 67e0c813 store 1 ,mem_dongle_receive_dpi_data + 1 
+039b c02a839e beq release ,p_dongle_dpi_key_release 
+039c c05503a1 beq press ,p_dongle_dpi_key_press 
+039d 20600000 rtn 
 
 p_dongle_dpi_key_release:
-0393 6fe0c91d fetch 1 ,mem_usb_key_info_data + 5 
-0394 793ffe05 set0 5 ,pdata 
-0395 20200398 branch p_dongle_dpi_key_press + 2 
+039e 6fe0c91d fetch 1 ,mem_usb_key_info_data + 5 
+039f 793ffe05 set0 5 ,pdata 
+03a0 202003a3 branch p_dongle_dpi_key_press + 2 
 
 p_dongle_dpi_key_press:
-0396 6fe0c91d fetch 1 ,mem_usb_key_info_data + 5 
-0397 79207e05 set1 5 ,pdata 
-0398 67e0c91d store 1 ,mem_usb_key_info_data + 5 
-0399 20200192 branch p_dongle_usb_tx_ep2_key_data 
+03a1 6fe0c91d fetch 1 ,mem_usb_key_info_data + 5 
+03a2 79207e05 set1 5 ,pdata 
+03a3 67e0c91d store 1 ,mem_usb_key_info_data + 5 
+03a4 20200192 branch p_dongle_usb_tx_ep2_key_data 
 
 p_dongle_receive_device_info_data:
-039a 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-039b 1f20f3ff increase -1 ,loopcnt 
-039c da2045eb arg mem_24g_rxdata_temp + 3 ,rega 
-039d da4047ff arg mem_usb_get_report_sn_data ,regb 
-039e 20407d64 call compare_loop 
-039f 20628000 rtn zero 
-03a0 6fe345eb fetch 6 ,mem_24g_rxdata_temp + 3 
-03a1 67e347ff store 6 ,mem_usb_get_report_sn_data 
-03a2 6fe145f4 fetch 2 ,mem_24g_rxdata_temp + 12 
-03a3 67e14808 store 2 ,mem_usb_get_report_mouse_version_data 
-03a4 6fe145f1 fetch 2 ,mem_24g_rxdata_temp + 9 
-03a5 67e14805 store 2 ,mem_usb_get_report_dpi_data 
-03a6 6fe145f6 fetch 2 ,mem_24g_rxdata_temp + 14 
-03a7 67e1480a store 2 ,mem_usb_get_report_code_data 
-03a8 20400382 call p_dongle_receive_dpi_data_compare 
-03a9 6fe0c5f3 fetch 1 ,mem_24g_rxdata_temp + 11 
-03aa 202003ac branch p_dongle_receive_battery_data_compare 
+03a5 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+03a6 1f20f3ff increase -1 ,loopcnt 
+03a7 da2045eb arg mem_24g_rxdata_temp + 3 ,rega 
+03a8 da4047ff arg mem_usb_get_report_sn_data ,regb 
+03a9 20407d64 call compare_loop 
+03aa 20628000 rtn zero 
+03ab 6fe345eb fetch 6 ,mem_24g_rxdata_temp + 3 
+03ac 67e347ff store 6 ,mem_usb_get_report_sn_data 
+03ad 6fe145f4 fetch 2 ,mem_24g_rxdata_temp + 12 
+03ae 67e14808 store 2 ,mem_usb_get_report_mouse_version_data 
+03af 6fe145f1 fetch 2 ,mem_24g_rxdata_temp + 9 
+03b0 67e14805 store 2 ,mem_usb_get_report_dpi_data 
+03b1 6fe145f6 fetch 2 ,mem_24g_rxdata_temp + 14 
+03b2 67e1480a store 2 ,mem_usb_get_report_code_data 
+03b3 2040038d call p_dongle_receive_dpi_data_compare 
+03b4 6fe0c5f3 fetch 1 ,mem_24g_rxdata_temp + 11 
+03b5 202003b7 branch p_dongle_receive_battery_data_compare 
 
 p_dongle_receive_battery_data:
-03ab 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+03b6 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
 
 p_dongle_receive_battery_data_compare:
-03ac 6848c807 fetcht 1 ,mem_usb_get_report_battery_data 
-03ad 98467c00 isub temp ,null 
-03ae 20628000 rtn zero 
-03af 67e0c807 store 1 ,mem_usb_get_report_battery_data 
-03b0 20200182 branch p_dongle_usb_tx_ep2_battery_data 
+03b7 6848c807 fetcht 1 ,mem_usb_get_report_battery_data 
+03b8 98467c00 isub temp ,null 
+03b9 20628000 rtn zero 
+03ba 67e0c807 store 1 ,mem_usb_get_report_battery_data 
+03bb 20200182 branch p_dongle_usb_tx_ep2_battery_data 
 
 p_dongle_usb_tx_enable_ep2:
-03b1 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
-03b2 207a0000 rtn blank 
-03b3 da204959 arg mem_usb_ep2_fifo ,rega 
-03b4 20407da5 call fifo_is_full 
-03b5 247a0000 nrtn blank 
-03b6 6fe0890c fetch 1 ,mem_usb_ep2_data 
-03b7 67e0866f store 1 ,mem_fifo_temp 
-03b8 da204959 arg mem_usb_ep2_fifo ,rega 
-03b9 20207d8b branch fifo_in 
+03bc 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+03bd 207a0000 rtn blank 
+03be da204959 arg mem_usb_ep2_fifo ,rega 
+03bf 20407da5 call fifo_is_full 
+03c0 247a0000 nrtn blank 
+03c1 6fe0890c fetch 1 ,mem_usb_ep2_data 
+03c2 67e0866f store 1 ,mem_fifo_temp 
+03c3 da204959 arg mem_usb_ep2_fifo ,rega 
+03c4 20207d8b branch fifo_in 
 
 p_dongle_usb_tx_enable_ep1:
-03ba 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
-03bb 207a0000 rtn blank 
-03bc da204961 arg mem_usb_ep1_fifo ,rega 
-03bd 20407da5 call fifo_is_full 
-03be 247a0000 nrtn blank 
-03bf 6fe0890b fetch 1 ,mem_usb_ep1_data 
-03c0 67e0866f store 1 ,mem_fifo_temp 
-03c1 da204961 arg mem_usb_ep1_fifo ,rega 
-03c2 20207d8b branch fifo_in 
+03c5 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+03c6 207a0000 rtn blank 
+03c7 da204961 arg mem_usb_ep1_fifo ,rega 
+03c8 20407da5 call fifo_is_full 
+03c9 247a0000 nrtn blank 
+03ca 6fe0890b fetch 1 ,mem_usb_ep1_data 
+03cb 67e0866f store 1 ,mem_fifo_temp 
+03cc da204961 arg mem_usb_ep1_fifo ,rega 
+03cd 20207d8b branch fifo_in 
 
 p_usb_tx_data_ep1:
-03c3 da204961 arg mem_usb_ep1_fifo ,rega 
-03c4 20407da3 call fifo_is_empty 
-03c5 207a0000 rtn blank 
-03c6 6ff08c25 fetch 1 ,core_usb_txbusy 
-03c7 1fe17e0f and_into 0x0f ,pdata 
-03c8 247a0000 nrtn blank 
-03c9 6fe0890d fetch 1 ,mem_usb_tx_enable 
-03ca c4008000 rtnbit0 1 
-03cb 6fe0890d fetch 1 ,mem_usb_tx_enable 
-03cc 793ffe01 set0 1 ,pdata 
-03cd 67e0890d store 1 ,mem_usb_tx_enable 
 03ce da204961 arg mem_usb_ep1_fifo ,rega 
-03cf 20407d97 call fifo_out 
+03cf 20407da3 call fifo_is_empty 
 03d0 207a0000 rtn blank 
-03d1 c0087c28 beq usb_ep1_kb ,usb_tx_kb_normal_data 
-03d2 c00883d4 beq usb_ep1_kb_http ,p_usb_tx_http_data_set 
-03d3 2020235a branch assert 
+03d1 6ff08c25 fetch 1 ,core_usb_txbusy 
+03d2 1fe17e0f and_into 0x0f ,pdata 
+03d3 247a0000 nrtn blank 
+03d4 6fe0890d fetch 1 ,mem_usb_tx_enable 
+03d5 c4008000 rtnbit0 1 
+03d6 6fe0890d fetch 1 ,mem_usb_tx_enable 
+03d7 793ffe01 set0 1 ,pdata 
+03d8 67e0890d store 1 ,mem_usb_tx_enable 
+03d9 da204961 arg mem_usb_ep1_fifo ,rega 
+03da 20407d97 call fifo_out 
+03db 207a0000 rtn blank 
+03dc c0087c28 beq usb_ep1_kb ,usb_tx_kb_normal_data 
+03dd c00883df beq usb_ep1_kb_http ,p_usb_tx_http_data_set 
+03de 2020235a branch assert 
 
 p_usb_tx_http_data_set:
-03d4 6fe0c97d fetch 1 ,mem_usb_website_step 
-03d5 c00003e0 beq key_release ,p_usb_webstie_key_release_data 
-03d6 c00083e2 beq website_win ,p_usb_website_winr_data 
-03d7 c00103f0 beq website_r_space_release ,p_usb_website_r_space_release_data 
-03d8 c00183f4 beq website_win_release ,p_usb_website_win_release_data 
-03d9 c0020404 beq website_wait ,p_usb_website_wait_tx_data 
-03da c002840b beq website_data ,p_usb_website_data 
-03db c00303fa beq website_enter_1 ,p_usb_website_enter_data1 
-03dc c00383fe beq website_enter_release_1 ,p_usb_website_enter_release_data1 
-03dd c0040400 beq website_enter_2 ,p_usb_website_enter_data2 
-03de c0048402 beq website_enter_release_2 ,p_usb_website_enter_release_data2 
-03df 20600000 rtn 
+03df 6fe0c97d fetch 1 ,mem_usb_website_step 
+03e0 c00003eb beq key_release ,p_usb_webstie_key_release_data 
+03e1 c00083ed beq website_win ,p_usb_website_winr_data 
+03e2 c00103fb beq website_r_space_release ,p_usb_website_r_space_release_data 
+03e3 c00183ff beq website_win_release ,p_usb_website_win_release_data 
+03e4 c002040f beq website_wait ,p_usb_website_wait_tx_data 
+03e5 c0028416 beq website_data ,p_usb_website_data 
+03e6 c0030405 beq website_enter_1 ,p_usb_website_enter_data1 
+03e7 c0038409 beq website_enter_release_1 ,p_usb_website_enter_release_data1 
+03e8 c004040b beq website_enter_2 ,p_usb_website_enter_data2 
+03e9 c004840d beq website_enter_release_2 ,p_usb_website_enter_release_data2 
+03ea 20600000 rtn 
 
 p_usb_webstie_key_release_data:
-03e0 70497d01 jam website_win ,mem_usb_website_step 
-03e1 20204832 branch dongle_g24_ms_blank_data_tx_ep2 
+03eb 70497d01 jam website_win ,mem_usb_website_step 
+03ec 20204832 branch dongle_g24_ms_blank_data_tx_ep2 
 
 p_usb_website_winr_data:
-03e2 dfe04983 arg mem_usb_website_info + 1 ,pdata 
-03e3 67e14980 store 2 ,mem_usb_website_ptr 
-03e4 6fe088fa fetch 1 ,mem_usb_tx_mac_enable 
-03e5 c00003e8 beq 0 ,p_usb_tx_winos_winr_data 
-03e6 c00083ec beq 1 ,p_usb_tx_macos_winr_data 
-03e7 20600000 rtn 
+03ed dfe04983 arg mem_usb_website_info + 1 ,pdata 
+03ee 67e14980 store 2 ,mem_usb_website_ptr 
+03ef 6fe088fa fetch 1 ,mem_usb_tx_mac_enable 
+03f0 c00003f3 beq 0 ,p_usb_tx_winos_winr_data 
+03f1 c00083f7 beq 1 ,p_usb_tx_macos_winr_data 
+03f2 20600000 rtn 
 
 p_usb_tx_winos_winr_data:
-03e8 70497d02 jam website_r_space_release ,mem_usb_website_step 
-03e9 6fe1c973 fetch 3 ,mem_usb_win_cmd 
-03ea 67e18923 store 3 ,mem_usb_kb_data 
-03eb 20207c28 branch usb_tx_kb_normal_data 
+03f3 70497d02 jam website_r_space_release ,mem_usb_website_step 
+03f4 6fe1c973 fetch 3 ,mem_usb_win_cmd 
+03f5 67e18923 store 3 ,mem_usb_kb_data 
+03f6 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_tx_macos_winr_data:
-03ec 70497d02 jam website_r_space_release ,mem_usb_website_step 
-03ed 6fe1c976 fetch 3 ,mem_usb_mac_cmd 
-03ee 67e18923 store 3 ,mem_usb_kb_data 
-03ef 20207c28 branch usb_tx_kb_normal_data 
+03f7 70497d02 jam website_r_space_release ,mem_usb_website_step 
+03f8 6fe1c976 fetch 3 ,mem_usb_mac_cmd 
+03f9 67e18923 store 3 ,mem_usb_kb_data 
+03fa 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_r_space_release_data:
-03f0 70497d03 jam website_win_release ,mem_usb_website_step 
-03f1 6fe0c973 fetch 1 ,mem_usb_win_cmd 
-03f2 67e08923 store 1 ,mem_usb_kb_data 
-03f3 20207c28 branch usb_tx_kb_normal_data 
+03fb 70497d03 jam website_win_release ,mem_usb_website_step 
+03fc 6fe0c973 fetch 1 ,mem_usb_win_cmd 
+03fd 67e08923 store 1 ,mem_usb_kb_data 
+03fe 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_win_release_data:
-03f4 70497d04 jam website_wait ,mem_usb_website_step 
+03ff 70497d04 jam website_wait ,mem_usb_website_step 
 
 p_usb_webstie_release_data:
-03f5 d8a00923 arg mem_usb_kb_data ,contw 
-03f6 df200008 arg 8 ,loopcnt 
-03f7 20407ca3 call memset0 
-03f8 70497f00 jam 0 ,mem_usb_website_release_flag 
-03f9 20207c28 branch usb_tx_kb_normal_data 
+0400 d8a00923 arg mem_usb_kb_data ,contw 
+0401 df200008 arg 8 ,loopcnt 
+0402 20407ca3 call memset0 
+0403 70497f00 jam 0 ,mem_usb_website_release_flag 
+0404 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_enter_data1:
-03fa 70497d07 jam website_enter_release_1 ,mem_usb_website_step 
+0405 70497d07 jam website_enter_release_1 ,mem_usb_website_step 
 
 p_usb_webstie_enter_data:
-03fb 6fe1c979 fetch 3 ,mem_usb_kb_enter 
-03fc 67e18923 store 3 ,mem_usb_kb_data 
-03fd 20207c28 branch usb_tx_kb_normal_data 
+0406 6fe1c979 fetch 3 ,mem_usb_kb_enter 
+0407 67e18923 store 3 ,mem_usb_kb_data 
+0408 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_enter_release_data1:
-03fe 70497d08 jam website_enter_2 ,mem_usb_website_step 
-03ff 202003f5 branch p_usb_webstie_release_data 
+0409 70497d08 jam website_enter_2 ,mem_usb_website_step 
+040a 20200400 branch p_usb_webstie_release_data 
 
 p_usb_website_enter_data2:
-0400 70497d09 jam website_enter_release_2 ,mem_usb_website_step 
-0401 202003fb branch p_usb_webstie_enter_data 
+040b 70497d09 jam website_enter_release_2 ,mem_usb_website_step 
+040c 20200406 branch p_usb_webstie_enter_data 
 
 p_usb_website_enter_release_data2:
-0402 70497d00 jam website_done ,mem_usb_website_step 
-0403 202003f5 branch p_usb_webstie_release_data 
+040d 70497d00 jam website_done ,mem_usb_website_step 
+040e 20200400 branch p_usb_webstie_release_data 
 
 p_usb_website_wait_tx_data:
-0404 6fe0c97c fetch 1 ,mem_usb_website_wait_count 
-0405 1fe0fe01 increase 1 ,pdata 
-0406 67e0c97c store 1 ,mem_usb_website_wait_count 
-0407 c1878000 rtnne website_wait_count 
-0408 70497c00 jam 0 ,mem_usb_website_wait_count 
-0409 70497d05 jam website_data ,mem_usb_website_step 
-040a 20600000 rtn 
+040f 6fe0c97c fetch 1 ,mem_usb_website_wait_count 
+0410 1fe0fe01 increase 1 ,pdata 
+0411 67e0c97c store 1 ,mem_usb_website_wait_count 
+0412 c1878000 rtnne website_wait_count 
+0413 70497c00 jam 0 ,mem_usb_website_wait_count 
+0414 70497d05 jam website_data ,mem_usb_website_step 
+0415 20600000 rtn 
 
 p_usb_website_data:
-040b 6fe0c97f fetch 1 ,mem_usb_website_release_flag 
-040c c00083f5 beq 1 ,p_usb_webstie_release_data 
-040d c0000411 beq 0 ,p_usb_website_info_data 
-040e 20600000 rtn 
+0416 6fe0c97f fetch 1 ,mem_usb_website_release_flag 
+0417 c0008400 beq 1 ,p_usb_webstie_release_data 
+0418 c000041c beq 0 ,p_usb_website_info_data 
+0419 20600000 rtn 
 
 p_usb_webstie_info_data_done:
-040f 70497d06 jam website_enter_1 ,mem_usb_website_step 
-0410 20600000 rtn 
+041a 70497d06 jam website_enter_1 ,mem_usb_website_step 
+041b 20600000 rtn 
 
 p_usb_website_info_data:
-0411 d8404983 arg mem_usb_website_info + 1 ,temp 
-0412 6fe0c982 fetch 1 ,mem_usb_website_info 
-0413 98408400 iadd temp ,temp 
-0414 6fe14980 fetch 2 ,mem_usb_website_ptr 
-0415 98467c00 isub temp ,null 
-0416 2022840f branch p_usb_webstie_info_data_done ,zero 
-0417 20400421 call p_usb_tx_website_acii2hidkey 
-0418 20400443 call p_usb_tx_website_need_shift 
-0419 6fe0c97e fetch 1 ,mem_usb_website_shift_flag 
-041a 67e08923 store 1 ,mem_usb_kb_data 
-041b 62208925 storer rega ,1 ,mem_usb_kb_data + 2 
-041c 6fe14980 fetch 2 ,mem_usb_website_ptr 
-041d 1fe0fe01 increase 1 ,pdata 
-041e 67e14980 store 2 ,mem_usb_website_ptr 
-041f 70497f01 jam 1 ,mem_usb_website_release_flag 
-0420 20207c28 branch usb_tx_kb_normal_data 
+041c d8404983 arg mem_usb_website_info + 1 ,temp 
+041d 6fe0c982 fetch 1 ,mem_usb_website_info 
+041e 98408400 iadd temp ,temp 
+041f 6fe14980 fetch 2 ,mem_usb_website_ptr 
+0420 98467c00 isub temp ,null 
+0421 2022841a branch p_usb_webstie_info_data_done ,zero 
+0422 2040042c call p_usb_tx_website_acii2hidkey 
+0423 2040044e call p_usb_tx_website_need_shift 
+0424 6fe0c97e fetch 1 ,mem_usb_website_shift_flag 
+0425 67e08923 store 1 ,mem_usb_kb_data 
+0426 62208925 storer rega ,1 ,mem_usb_kb_data + 2 
+0427 6fe14980 fetch 2 ,mem_usb_website_ptr 
+0428 1fe0fe01 increase 1 ,pdata 
+0429 67e14980 store 2 ,mem_usb_website_ptr 
+042a 70497f01 jam 1 ,mem_usb_website_release_flag 
+042b 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_tx_website_acii2hidkey:
-0421 68494980 fetcht 2 ,mem_usb_website_ptr 
-0422 efe08002 ifetch 1 ,temp 
-0423 1fe67c7a sub pdata ,0x7a ,null 
-0424 24210428 nbranch p_usb_tx_website_acii2hidkey1 ,positive 
-0425 da400061 arg 0x61 ,regb 
-0426 9a462200 isub regb ,rega 
-0427 2021043f branch p_usb_tx_website_acii2keycode_a2z ,positive 
+042c 68494980 fetcht 2 ,mem_usb_website_ptr 
+042d efe08002 ifetch 1 ,temp 
+042e 1fe67c7a sub pdata ,0x7a ,null 
+042f 24210433 nbranch p_usb_tx_website_acii2hidkey1 ,positive 
+0430 da400061 arg 0x61 ,regb 
+0431 9a462200 isub regb ,rega 
+0432 2021044a branch p_usb_tx_website_acii2keycode_a2z ,positive 
 
 p_usb_tx_website_acii2hidkey1:
-0428 efe08002 ifetch 1 ,temp 
-0429 1fe67c39 sub pdata ,0x39 ,null 
-042a 2421042e nbranch p_usb_tx_website_acii2keycode_sign ,positive 
-042b da400030 arg 0x30 ,regb 
-042c 9a462200 isub regb ,rega 
-042d 20210441 branch p_usb_tx_website_acii2keycode_029 ,positive 
+0433 efe08002 ifetch 1 ,temp 
+0434 1fe67c39 sub pdata ,0x39 ,null 
+0435 24210439 nbranch p_usb_tx_website_acii2keycode_sign ,positive 
+0436 da400030 arg 0x30 ,regb 
+0437 9a462200 isub regb ,rega 
+0438 2021044c branch p_usb_tx_website_acii2keycode_029 ,positive 
 
 p_usb_tx_website_acii2keycode_sign:
-042e 1fe67c3a sub pdata ,0x3a ,null 
-042f 20228437 branch p_usb_tx_website_acii2keycode_sign_3a ,zero 
-0430 1fe67c2f sub pdata ,0x2f ,null 
-0431 20228439 branch p_usb_tx_website_acii2keycode_sign_2f ,zero 
-0432 1fe67c2e sub pdata ,0x2e ,null 
-0433 2022843b branch p_usb_tx_website_acii2keycode_sign_2e ,zero 
-0434 1fe67c2d sub pdata ,0x2d ,null 
-0435 2022843d branch p_usb_tx_website_acii2keycode_sign_2d ,zero 
-0436 20600000 rtn 
+0439 1fe67c3a sub pdata ,0x3a ,null 
+043a 20228442 branch p_usb_tx_website_acii2keycode_sign_3a ,zero 
+043b 1fe67c2f sub pdata ,0x2f ,null 
+043c 20228444 branch p_usb_tx_website_acii2keycode_sign_2f ,zero 
+043d 1fe67c2e sub pdata ,0x2e ,null 
+043e 20228446 branch p_usb_tx_website_acii2keycode_sign_2e ,zero 
+043f 1fe67c2d sub pdata ,0x2d ,null 
+0440 20228448 branch p_usb_tx_website_acii2keycode_sign_2d ,zero 
+0441 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_3a:
-0437 da200033 arg 0x33 ,rega 
-0438 20600000 rtn 
+0442 da200033 arg 0x33 ,rega 
+0443 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_2f:
-0439 da200038 arg 0x38 ,rega 
-043a 20600000 rtn 
+0444 da200038 arg 0x38 ,rega 
+0445 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_2e:
-043b da200037 arg 0x37 ,rega 
-043c 20600000 rtn 
+0446 da200037 arg 0x37 ,rega 
+0447 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_sign_2d:
-043d da20002d arg 0x2d ,rega 
-043e 20600000 rtn 
+0448 da20002d arg 0x2d ,rega 
+0449 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_a2z:
-043f 1a20a204 add rega ,4 ,rega 
-0440 20600000 rtn 
+044a 1a20a204 add rega ,4 ,rega 
+044b 20600000 rtn 
 
 p_usb_tx_website_acii2keycode_029:
-0441 1a20a227 add rega ,0x27 ,rega 
-0442 20600000 rtn 
+044c 1a20a227 add rega ,0x27 ,rega 
+044d 20600000 rtn 
 
 p_usb_tx_website_need_shift:
-0443 70497e00 jam 0 ,mem_usb_website_shift_flag 
-0444 6fe14980 fetch 2 ,mem_usb_website_ptr 
-0445 efe0803f ifetch 1 ,pdata 
-0446 d8c049ab arg mem_usb_website_info_sign + 1 ,contr 
-0447 6848c9aa fetcht 1 ,mem_usb_website_info_sign 
-0448 18427200 copy temp ,loopcnt 
+044e 70497e00 jam 0 ,mem_usb_website_shift_flag 
+044f 6fe14980 fetch 2 ,mem_usb_website_ptr 
+0450 efe0803f ifetch 1 ,pdata 
+0451 d8c049ab arg mem_usb_website_info_sign + 1 ,contr 
+0452 6848c9aa fetcht 1 ,mem_usb_website_info_sign 
+0453 18427200 copy temp ,loopcnt 
 
 p_usb_tx_website_need_shift_check_loop:
-0449 e8408006 ifetcht 1 ,contr 
-044a 98467c00 isub temp ,null 
-044b 2022844e branch p_usb_tx_website_need_shift_setflag ,zero 
-044c c2000449 loop p_usb_tx_website_need_shift_check_loop 
-044d 20600000 rtn 
+0454 e8408006 ifetcht 1 ,contr 
+0455 98467c00 isub temp ,null 
+0456 20228459 branch p_usb_tx_website_need_shift_setflag ,zero 
+0457 c2000454 loop p_usb_tx_website_need_shift_check_loop 
+0458 20600000 rtn 
 
 p_usb_tx_website_need_shift_setflag:
-044e 70497e02 jam 2 ,mem_usb_website_shift_flag 
-044f 20600000 rtn 
+0459 70497e02 jam 2 ,mem_usb_website_shift_flag 
+045a 20600000 rtn 
 
 p_usb_tx_data_ep2:
-0450 da204959 arg mem_usb_ep2_fifo ,rega 
-0451 20407da3 call fifo_is_empty 
-0452 207a0000 rtn blank 
-0453 6ff08c25 fetch 1 ,core_usb_txbusy 
-0454 1fe17e0f and_into 0x0f ,pdata 
-0455 247a0000 nrtn blank 
-0456 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0457 c4010000 rtnbit0 2 
-0458 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0459 793ffe02 set0 2 ,pdata 
-045a 67e0890d store 1 ,mem_usb_tx_enable 
 045b da204959 arg mem_usb_ep2_fifo ,rega 
-045c 20407d97 call fifo_out 
+045c 20407da3 call fifo_is_empty 
 045d 207a0000 rtn blank 
-045e c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
-045f c0120478 beq usb_ep2_dpi ,p_usb_tx_dongle_ep2_dpi_data 
-0460 c0130470 beq usb_ep2_sn ,p_usb_tx_dongle_ep2_data 
-0461 c0148470 beq usb_ep2_app ,p_usb_tx_dongle_ep2_data 
-0462 c0118470 beq usb_ep2_device_info ,p_usb_tx_dongle_ep2_data 
-0463 c0180486 beq usb_ep2_key ,p_usb_tx_dongle_ep2_key_data 
-0464 c012847f beq usb_ep2_battery ,p_usb_tx_dongle_ep2_battery_data 
-0465 c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
-0466 c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
-0467 c0138469 beq usb_ep2_mskb_state ,p_usb_tx_rf_state_data 
-0468 2020235a branch assert 
+045e 6ff08c25 fetch 1 ,core_usb_txbusy 
+045f 1fe17e0f and_into 0x0f ,pdata 
+0460 247a0000 nrtn blank 
+0461 6fe0890d fetch 1 ,mem_usb_tx_enable 
+0462 c4010000 rtnbit0 2 
+0463 6fe0890d fetch 1 ,mem_usb_tx_enable 
+0464 793ffe02 set0 2 ,pdata 
+0465 67e0890d store 1 ,mem_usb_tx_enable 
+0466 da204959 arg mem_usb_ep2_fifo ,rega 
+0467 20407d97 call fifo_out 
+0468 207a0000 rtn blank 
+0469 c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
+046a c0120483 beq usb_ep2_dpi ,p_usb_tx_dongle_ep2_dpi_data 
+046b c013047b beq usb_ep2_sn ,p_usb_tx_dongle_ep2_data 
+046c c014847b beq usb_ep2_app ,p_usb_tx_dongle_ep2_data 
+046d c011847b beq usb_ep2_device_info ,p_usb_tx_dongle_ep2_data 
+046e c0180491 beq usb_ep2_key ,p_usb_tx_dongle_ep2_key_data 
+046f c012848a beq usb_ep2_battery ,p_usb_tx_dongle_ep2_battery_data 
+0470 c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+0471 c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+0472 c0138474 beq usb_ep2_mskb_state ,p_usb_tx_rf_state_data 
+0473 2020235a branch assert 
 
 p_usb_tx_rf_state_data:
-0469 6fe0c814 fetch 1 ,mem_usb_rf_state_data 
-046a 207a0000 rtn blank 
-046b 1fe27200 copy pdata ,loopcnt 
-046c d8c04815 arg mem_usb_rf_state_data + 1 ,contr 
-046d 20407bdb call usb_tx_ep2 
-046e d8a04814 arg mem_usb_rf_state_data ,contw 
-046f 20200476 branch p_usb_tx_buff_clr 
+0474 6fe0c814 fetch 1 ,mem_usb_rf_state_data 
+0475 207a0000 rtn blank 
+0476 1fe27200 copy pdata ,loopcnt 
+0477 d8c04815 arg mem_usb_rf_state_data + 1 ,contr 
+0478 20407bdb call usb_tx_ep2 
+0479 d8a04814 arg mem_usb_rf_state_data ,contw 
+047a 20200481 branch p_usb_tx_buff_clr 
 
 p_usb_tx_dongle_ep2_data:
-0470 6fe0c855 fetch 1 ,mem_dongle_usb_ep2_data 
-0471 207a0000 rtn blank 
-0472 1fe27200 copy pdata ,loopcnt 
-0473 d8c04856 arg mem_dongle_usb_ep2_data + 1 ,contr 
-0474 20407bdb call usb_tx_ep2 
-0475 d8a04855 arg mem_dongle_usb_ep2_data ,contw 
+047b 6fe0c855 fetch 1 ,mem_dongle_usb_ep2_data 
+047c 207a0000 rtn blank 
+047d 1fe27200 copy pdata ,loopcnt 
+047e d8c04856 arg mem_dongle_usb_ep2_data + 1 ,contr 
+047f 20407bdb call usb_tx_ep2 
+0480 d8a04855 arg mem_dongle_usb_ep2_data ,contw 
 
 p_usb_tx_buff_clr:
-0476 df200041 arg 65 ,loopcnt 
-0477 20207ca1 branch clear_mem 
+0481 df200041 arg 65 ,loopcnt 
+0482 20207ca1 branch clear_mem 
 
 p_usb_tx_dongle_ep2_dpi_data:
-0478 6fe0c896 fetch 1 ,mem_usb_dpi_info_data 
-0479 207a0000 rtn blank 
-047a 1fe27200 copy pdata ,loopcnt 
-047b d8c04897 arg mem_usb_dpi_info_data + 1 ,contr 
-047c 20407bdb call usb_tx_ep2 
-047d d8a04896 arg mem_usb_dpi_info_data ,contw 
-047e 20200476 branch p_usb_tx_buff_clr 
+0483 6fe0c896 fetch 1 ,mem_usb_dpi_info_data 
+0484 207a0000 rtn blank 
+0485 1fe27200 copy pdata ,loopcnt 
+0486 d8c04897 arg mem_usb_dpi_info_data + 1 ,contr 
+0487 20407bdb call usb_tx_ep2 
+0488 d8a04896 arg mem_usb_dpi_info_data ,contw 
+0489 20200481 branch p_usb_tx_buff_clr 
 
 p_usb_tx_dongle_ep2_battery_data:
-047f 6fe0c8d7 fetch 1 ,mem_usb_battery_info_data 
-0480 207a0000 rtn blank 
-0481 1fe27200 copy pdata ,loopcnt 
-0482 d8c048d8 arg mem_usb_battery_info_data + 1 ,contr 
-0483 20407bdb call usb_tx_ep2 
-0484 d8a048d7 arg mem_usb_battery_info_data ,contw 
-0485 20200476 branch p_usb_tx_buff_clr 
+048a 6fe0c8d7 fetch 1 ,mem_usb_battery_info_data 
+048b 207a0000 rtn blank 
+048c 1fe27200 copy pdata ,loopcnt 
+048d d8c048d8 arg mem_usb_battery_info_data + 1 ,contr 
+048e 20407bdb call usb_tx_ep2 
+048f d8a048d7 arg mem_usb_battery_info_data ,contw 
+0490 20200481 branch p_usb_tx_buff_clr 
 
 p_usb_tx_dongle_ep2_key_data:
-0486 6fe0c918 fetch 1 ,mem_usb_key_info_data 
-0487 207a0000 rtn blank 
-0488 1fe27200 copy pdata ,loopcnt 
-0489 d8c04919 arg mem_usb_key_info_data + 1 ,contr 
-048a 20407bdb call usb_tx_ep2 
-048b d8a04918 arg mem_usb_key_info_data ,contw 
-048c 20200476 branch p_usb_tx_buff_clr 
+0491 6fe0c918 fetch 1 ,mem_usb_key_info_data 
+0492 207a0000 rtn blank 
+0493 1fe27200 copy pdata ,loopcnt 
+0494 d8c04919 arg mem_usb_key_info_data + 1 ,contr 
+0495 20407bdb call usb_tx_ep2 
+0496 d8a04918 arg mem_usb_key_info_data ,contw 
+0497 20200481 branch p_usb_tx_buff_clr 
 
 p_rx_dcoc:
-048d 20758000 rtn wake 
-048e 20402160 call set_sync_on 
-048f d8400027 arg 39 ,temp 
-0490 2040216f call set_freq_rx 
-0491 204021a6 call rf_rx_enable 
-0492 708a257f jam 0x7f ,0x8a25 
-0493 708a301a jam 0x1a ,0x8a30 
-0494 708a3178 jam 0x78 ,0x8a31 
-0495 708a8fb2 jam 0xb2 ,0x8a8f 
-0496 708ac200 jam 0 ,0x8ac2 
-0497 708ac300 jam 0 ,0x8ac3 
-0498 d8e00006 arg 6 ,queue 
-0499 204004aa call p_rx_dcoc_avg 
-049a 2a2ffe0d isolate1 13 ,rega 
-049b 2040211d call qset_start 
-049c 2a4ffe0d isolate1 13 ,regb 
-049d 2040211e call qset_p 
-049e d8e00005 arg 5 ,queue 
+0498 20758000 rtn wake 
+0499 20402160 call set_sync_on 
+049a d8400027 arg 39 ,temp 
+049b 2040216f call set_freq_rx 
+049c 204021a6 call rf_rx_enable 
+049d 708a257f jam 0x7f ,0x8a25 
+049e 708a301a jam 0x1a ,0x8a30 
+049f 708a3178 jam 0x78 ,0x8a31 
+04a0 708a8fb2 jam 0xb2 ,0x8a8f 
+04a1 708ac200 jam 0 ,0x8ac2 
+04a2 708ac300 jam 0 ,0x8ac3 
+04a3 d8e00006 arg 6 ,queue 
+04a4 204004b5 call p_rx_dcoc_avg 
+04a5 2a2ffe0d isolate1 13 ,rega 
+04a6 2040211d call qset_start 
+04a7 2a4ffe0d isolate1 13 ,regb 
+04a8 2040211e call qset_p 
+04a9 d8e00005 arg 5 ,queue 
 
 p_rx_dcoc_loop2:
-049f 2040211c call qset1_p 
-04a0 2040211e call qset_p 
-04a1 204004aa call p_rx_dcoc_avg 
-04a2 d8a08ac2 arg 0x8ac2 ,contw 
-04a3 1a31fe00 rshift4 rega ,pdata 
-04a4 20402117 call qsetxor 
-04a5 1a51fe00 rshift4 regb ,pdata 
-04a6 20402117 call qsetxor 
-04a7 18e08fff increase -1 ,queue 
-04a8 2021049f branch p_rx_dcoc_loop2 ,positive 
-04a9 2020214f branch rx_dcoc_loop2 + 10 
+04aa 2040211c call qset1_p 
+04ab 2040211e call qset_p 
+04ac 204004b5 call p_rx_dcoc_avg 
+04ad d8a08ac2 arg 0x8ac2 ,contw 
+04ae 1a31fe00 rshift4 rega ,pdata 
+04af 20402117 call qsetxor 
+04b0 1a51fe00 rshift4 regb ,pdata 
+04b1 20402117 call qsetxor 
+04b2 18e08fff increase -1 ,queue 
+04b3 202104aa branch p_rx_dcoc_loop2 ,positive 
+04b4 2020214f branch rx_dcoc_loop2 + 10 
 
 p_rx_dcoc_avg:
-04aa 2000003c nop 60 
-04ab 58000f00 setarg mem_dcoc_buf 
-04ac 67f10982 store 2 ,0x8982 
-04ad 58000ff0 setarg mem_dcoc_buf_end 
-04ae 67f10984 store 2 ,0x8984 
-04af 70898109 jam 0x9 ,0x8981 
-04b0 70898103 jam 0x3 ,0x8981 
-04b1 70898006 jam 0x6 ,0x8980 
-04b2 2000003c nop 60 
-04b3 da200000 arg 0 ,rega 
-04b4 da400000 arg 0 ,regb 
-04b5 df200010 arg 16 ,loopcnt 
-04b6 d8c00f00 arg mem_dcoc_buf ,contr 
-04b7 2020212d branch rx_dcoc_loop 
+04b5 2000003c nop 60 
+04b6 58000f00 setarg mem_dcoc_buf 
+04b7 67f10982 store 2 ,0x8982 
+04b8 58000ff0 setarg mem_dcoc_buf_end 
+04b9 67f10984 store 2 ,0x8984 
+04ba 70898109 jam 0x9 ,0x8981 
+04bb 70898103 jam 0x3 ,0x8981 
+04bc 70898006 jam 0x6 ,0x8980 
+04bd 2000003c nop 60 
+04be da200000 arg 0 ,rega 
+04bf da400000 arg 0 ,regb 
+04c0 df200010 arg 16 ,loopcnt 
+04c1 d8c00f00 arg mem_dcoc_buf ,contr 
+04c2 2020212d branch rx_dcoc_loop 
 
 p_rfpll_aac_ghpc:
-04b8 20758000 rtn wake 
-04b9 20202272 branch rfpll_aac_ghpc + 1 
+04c3 20758000 rtn wake 
+04c4 20202272 branch rfpll_aac_ghpc + 1 
 
 p_dpll_ring_ibias_calc:
-04ba 20600000 rtn 
+04c5 20600000 rtn 
 
 p_sadc_calibration:
-04bb 20758000 rtn wake 
-04bc 708a0777 jam 0x77 ,core_gpadc_ctrl 
-04bd 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
-04be 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-04bf 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-04c0 67f080cd store 1 ,core_sadc_clkdiv 
-04c1 20000bb8 nop 3000 
-04c2 204004e3 call p_sadc_read 
-04c3 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-04c4 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-04c5 df200008 arg 8 ,loopcnt 
-04c6 20406f58 call sadc_cal_read + 1 
-04c7 6fe0c419 fetch 1 ,mem_spi_write_addr 
-04c8 67e0c433 store 1 ,mem_adc_cal_c7 
-04c9 6240c419 storer regb ,1 ,mem_spi_write_addr 
-04ca 20600000 rtn 
+04c6 20758000 rtn wake 
+04c7 708a0777 jam 0x77 ,core_gpadc_ctrl 
+04c8 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
+04c9 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+04ca 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+04cb 67f080cd store 1 ,core_sadc_clkdiv 
+04cc 20000bb8 nop 3000 
+04cd 204004ee call p_sadc_read 
+04ce 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+04cf 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+04d0 df200008 arg 8 ,loopcnt 
+04d1 20406f58 call sadc_cal_read + 1 
+04d2 6fe0c419 fetch 1 ,mem_spi_write_addr 
+04d3 67e0c433 store 1 ,mem_adc_cal_c7 
+04d4 6240c419 storer regb ,1 ,mem_spi_write_addr 
+04d5 20600000 rtn 
 
 p_enable_adc:
-04cb 204004d9 call p_sadc_cal_write 
-04cc 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-04cd 793ffe07 set0 7 ,pdata 
-04ce 67f08a09 store 1 ,core_gpadc_cfg1 
-04cf 708a0777 jam 0x77 ,core_gpadc_ctrl 
-04d0 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-04d1 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-04d2 20406f90 call sadc_channel 
-04d3 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-04d4 67f080cd store 1 ,core_sadc_clkdiv 
-04d5 20000bb8 nop 3000 
-04d6 204004e3 call p_sadc_read 
-04d7 7080cd00 jam 0 ,core_sadc_clkdiv 
-04d8 20206fa1 branch sadc_dma 
+04d6 204004e4 call p_sadc_cal_write 
+04d7 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+04d8 793ffe07 set0 7 ,pdata 
+04d9 67f08a09 store 1 ,core_gpadc_cfg1 
+04da 708a0777 jam 0x77 ,core_gpadc_ctrl 
+04db 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+04dc 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+04dd 20406f90 call sadc_channel 
+04de 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+04df 67f080cd store 1 ,core_sadc_clkdiv 
+04e0 20000bb8 nop 3000 
+04e1 204004ee call p_sadc_read 
+04e2 7080cd00 jam 0 ,core_sadc_clkdiv 
+04e3 20206fa1 branch sadc_dma 
 
 p_sadc_cal_write:
-04d9 6ff080cc fetch 1 ,core_sadc_ctrl 
-04da 79207e01 set1 1 ,pdata 
-04db 67f080cc store 1 ,core_sadc_ctrl 
-04dc 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-04dd 6fe0c433 fetch 1 ,mem_adc_cal_c7 
-04de 67e0c419 store 1 ,mem_spi_write_addr 
-04df df200008 arg 8 ,loopcnt 
-04e0 20406f67 call sadc_cal_write + 4 
-04e1 6240c419 storer regb ,1 ,mem_spi_write_addr 
-04e2 20600000 rtn 
+04e4 6ff080cc fetch 1 ,core_sadc_ctrl 
+04e5 79207e01 set1 1 ,pdata 
+04e6 67f080cc store 1 ,core_sadc_ctrl 
+04e7 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+04e8 6fe0c433 fetch 1 ,mem_adc_cal_c7 
+04e9 67e0c419 store 1 ,mem_spi_write_addr 
+04ea df200008 arg 8 ,loopcnt 
+04eb 20406f67 call sadc_cal_write + 4 
+04ec 6240c419 storer regb ,1 ,mem_spi_write_addr 
+04ed 20600000 rtn 
 
 p_sadc_read:
-04e3 7080cc03 jam 0x03 ,core_sadc_ctrl 
+04ee 7080cc03 jam 0x03 ,core_sadc_ctrl 
 
 p_sadc_read_wait:
-04e4 6ff08129 fetch 1 ,core_perf_status 
-04e5 c30284e4 bbit0 saradc_done ,p_sadc_read_wait 
-04e6 68590164 fetcht 2 ,core_sadc_data 
-04e7 6049440a storet 2 ,mem_adc_current_value 
-04e8 7080cc00 jam 0x00 ,core_sadc_ctrl 
-04e9 20600000 rtn 
+04ef 6ff08129 fetch 1 ,core_perf_status 
+04f0 c30284ef bbit0 saradc_done ,p_sadc_read_wait 
+04f1 68590164 fetcht 2 ,core_sadc_data 
+04f2 6049440a storet 2 ,mem_adc_current_value 
+04f3 7080cc00 jam 0x00 ,core_sadc_ctrl 
+04f4 20600000 rtn 
 
 p_set_lemode:
-04ea 708a8211 jam 0x11 ,0x8a82 
-04eb 708a8d12 jam 0x12 ,0x8a8d 
-04ec 708a8e0a jam 0x0a ,0x8a8e 
-04ed 6fe0c099 fetch 1 ,mem_fcomp_div 
-04ee c0080503 beq xtal_16m ,p_set_lemode_2m_16m 
-04ef 58005762 setarg 0x5762 
-04f0 67f10907 store 2 ,0x8907 
-
-p_set_lemode_2m:
-04f1 70890103 jam 3 ,0x8901 
-04f2 70893003 jam 3 ,0x8930 
-04f3 c6168000 rtnmark1 mark_ble_2m 
-04f4 70890101 jam 1 ,0x8901 
-04f5 708a8207 jam 0x07 ,0x8a82 
-04f6 708a8d44 jam 0x44 ,0x8a8d 
+04f5 708a8211 jam 0x11 ,0x8a82 
+04f6 708a8d12 jam 0x12 ,0x8a8d 
 04f7 708a8e0a jam 0x0a ,0x8a8e 
 04f8 6fe0c099 fetch 1 ,mem_fcomp_div 
-04f9 c0080500 beq xtal_16m ,p_set_lemode_1m_16m 
-04fa 58002bb1 setarg 0x2bb1 
+04f9 c008050e beq xtal_16m ,p_set_lemode_2m_16m 
+04fa 58005762 setarg 0x5762 
 04fb 67f10907 store 2 ,0x8907 
 
+p_set_lemode_2m:
+04fc 70890103 jam 3 ,0x8901 
+04fd 70893003 jam 3 ,0x8930 
+04fe c6168000 rtnmark1 mark_ble_2m 
+04ff 70890101 jam 1 ,0x8901 
+0500 708a8207 jam 0x07 ,0x8a82 
+0501 708a8d44 jam 0x44 ,0x8a8d 
+0502 708a8e0a jam 0x0a ,0x8a8e 
+0503 6fe0c099 fetch 1 ,mem_fcomp_div 
+0504 c008050b beq xtal_16m ,p_set_lemode_1m_16m 
+0505 58002bb1 setarg 0x2bb1 
+0506 67f10907 store 2 ,0x8907 
+
 p_set_lemode_1m:
-04fc c6978000 rtnmark0 mark_ble_lr 
-04fd 70893024 jam 0x24 ,0x8930 
-04fe 70890105 jam 5 ,0x8901 
-04ff 20600000 rtn 
+0507 c6978000 rtnmark0 mark_ble_lr 
+0508 70893024 jam 0x24 ,0x8930 
+0509 70890105 jam 5 ,0x8901 
+050a 20600000 rtn 
 
 p_set_lemode_1m_16m:
-0500 58004189 setarg 0x4189 
-0501 67f10907 store 2 ,0x8907 
-0502 202004fc branch p_set_lemode_1m 
+050b 58004189 setarg 0x4189 
+050c 67f10907 store 2 ,0x8907 
+050d 20200507 branch p_set_lemode_1m 
 
 p_set_lemode_2m_16m:
-0503 58008312 setarg 0x8312 
-0504 67f10907 store 2 ,0x8907 
-0505 202004f1 branch p_set_lemode_2m 
+050e 58008312 setarg 0x8312 
+050f 67f10907 store 2 ,0x8907 
+0510 202004fc branch p_set_lemode_2m 
 
 p_le_parse:
-0506 6fe0c334 fetch 1 ,mem_le_packet_llid 
-0507 c1000000 rtneq llid_reserved 
-0508 c001b04a beq llid_le_ll ,le_parse_ll 
-0509 202028e1 branch le_parse_l2cap 
+0511 6fe0c334 fetch 1 ,mem_le_packet_llid 
+0512 c1000000 rtneq llid_reserved 
+0513 c001b04a beq llid_le_ll ,le_parse_ll 
+0514 202028e1 branch le_parse_l2cap 
 
 p_le_init_adv:
-050a 793f8030 set0 mark_ble_crc_fail ,mark 
-050b 20202af6 branch le_init_adv + 1 
+0515 793f8030 set0 mark_ble_crc_fail ,mark 
+0516 20202af6 branch le_init_adv + 1 
 
 p_g24_bind_data_parse_next:
-050c 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-050d c0553329 beq datatype_bind ,g24_bind_first_step 
-050e c02ab33a beq datatype_config ,g24_bind_second_step 
-050f c0110512 beq datatype_ok ,p_g24_bind_third_step 
-0510 c07fb59b beq datatype_attemp ,g24_data_attemp 
-0511 20600000 rtn 
+0517 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+0518 c0553329 beq datatype_bind ,g24_bind_first_step 
+0519 c02ab33a beq datatype_config ,g24_bind_second_step 
+051a c011051d beq datatype_ok ,p_g24_bind_third_step 
+051b c07fb59b beq datatype_attemp ,g24_data_attemp 
+051c 20600000 rtn 
 
 p_g24_bind_third_step:
-0512 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
-0513 203a0518 branch p_g24_bind_third_step_skip ,blank 
-0514 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
-0515 684a462c fetcht 4 ,mem_24g_transmitter_addr 
-0516 98467c00 isub temp ,null 
-0517 24628000 nrtn zero 
+051d 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+051e 203a0523 branch p_g24_bind_third_step_skip ,blank 
+051f 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
+0520 684a462c fetcht 4 ,mem_24g_transmitter_addr 
+0521 98467c00 isub temp ,null 
+0522 24628000 nrtn zero 
 
 p_g24_bind_third_step_skip:
-0518 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-0519 c000851c beq datatype_device1 ,p_g24_bind_third_step_device1 
-051a c0010524 beq datatype_device2 ,p_g24_bind_third_step_device2 
-051b 20600000 rtn 
+0523 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+0524 c0008527 beq datatype_device1 ,p_g24_bind_third_step_device1 
+0525 c001052f beq datatype_device2 ,p_g24_bind_third_step_device2 
+0526 20600000 rtn 
 
 p_g24_bind_third_step_device1:
-051c 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
-051d 247a0000 nrtn blank 
-051e 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
-051f c0010521 beq 2 ,p_g24_bind_dvc1_step_success 
-0520 20600000 rtn 
+0527 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+0528 247a0000 nrtn blank 
+0529 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+052a c001052c beq 2 ,p_g24_bind_dvc1_step_success 
+052b 20600000 rtn 
 
 p_g24_bind_dvc1_step_success:
-0521 7045de01 jam 1 ,mem_24g_device1_bind_disable 
-0522 2040338d call g24_binding_dvc1_living 
-0523 2020336b branch g24_bind_dvc1_step_success + 1 
+052c 7045de01 jam 1 ,mem_24g_device1_bind_disable 
+052d 2040338d call g24_binding_dvc1_living 
+052e 2020336b branch g24_bind_dvc1_step_success + 1 
 
 p_g24_bind_third_step_device2:
-0524 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
-0525 247a0000 nrtn blank 
-0526 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-0527 c0800529 bne 0 ,p_g24_bind_dvc2_step_success 
-0528 20600000 rtn 
+052f 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
+0530 247a0000 nrtn blank 
+0531 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+0532 c0800534 bne 0 ,p_g24_bind_dvc2_step_success 
+0533 20600000 rtn 
 
 p_g24_bind_dvc2_step_success:
-0529 7045df01 jam 1 ,mem_24g_device2_bind_disable 
-052a 20403393 call g24_binding_dvc2_living 
-052b 20203378 branch g24_bind_dvc2_step_success + 1 
+0534 7045df01 jam 1 ,mem_24g_device2_bind_disable 
+0535 20403393 call g24_binding_dvc2_living 
+0536 20203378 branch g24_bind_dvc2_step_success + 1 
 
 p_g24_mode_switch_bind_search:
-052c 6fe0c616 fetch 1 ,mem_24g_work_mode 
-052d c1000000 rtneq dongle_work 
-052e 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
-052f 247a0000 nrtn blank 
-0530 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
-0531 247a0000 nrtn blank 
-0532 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
-0533 207a0000 rtn blank 
-0534 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
-0535 c1800000 rtnne 0 
-0536 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-0537 c1800000 rtnne 0 
-0538 20203436 branch g24_mode_switch_bind_search + 9 
+0537 6fe0c616 fetch 1 ,mem_24g_work_mode 
+0538 c1000000 rtneq dongle_work 
+0539 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
+053a 247a0000 nrtn blank 
+053b 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+053c 247a0000 nrtn blank 
+053d 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
+053e 207a0000 rtn blank 
+053f 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+0540 c1800000 rtnne 0 
+0541 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+0542 c1800000 rtnne 0 
+0543 20203436 branch g24_mode_switch_bind_search + 9 
 
 p_g24_bind_mode_auto:
-0539 6fe0c616 fetch 1 ,mem_24g_work_mode 
-053a c1808000 rtnne dongle_bind 
-053b 2040053d call p_g24_bind_init 
-053c 2020346d branch g24_bind_mode_auto + 4 
+0544 6fe0c616 fetch 1 ,mem_24g_work_mode 
+0545 c1808000 rtnne dongle_bind 
+0546 20400548 call p_g24_bind_init 
+0547 2020346d branch g24_bind_mode_auto + 4 
 
 p_g24_bind_init:
-053d 6fe0c615 fetch 1 ,mem_24g_mode_init 
-053e c3808000 rtnbit1 dongle_bind 
-053f 79207e01 set1 dongle_bind ,pdata 
-0540 67e0c615 store 1 ,mem_24g_mode_init 
-0541 58000000 setarg 0 
-0542 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
-0543 20203307 branch g24_bind_init + 8 
+0548 6fe0c615 fetch 1 ,mem_24g_mode_init 
+0549 c3808000 rtnbit1 dongle_bind 
+054a 79207e01 set1 dongle_bind ,pdata 
+054b 67e0c615 store 1 ,mem_24g_mode_init 
+054c 58000000 setarg 0 
+054d 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
+054e 20203307 branch g24_bind_init + 8 
 
 p_dongle_usb_dispatch:
-0544 20400551 call p_wdt_kick 
-0545 20400553 call p_g24_100ms_timer_event 
-0546 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
-0547 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
-0548 20407906 call usb_isr 
-0549 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
-054a 207a0000 rtn blank 
-054b 7008f700 jam 0 ,mem_usb0_get_set_report 
-054c 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
-054d d84003a2 arg pc_set_report_protocol ,temp 
-054e 98467c00 isub temp ,null 
-054f 24628000 nrtn zero 
-0550 202001c6 branch p_dongle_usb_data_received_analysis 
+054f 2040055c call p_wdt_kick 
+0550 2040055e call p_g24_100ms_timer_event 
+0551 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
+0552 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
+0553 20407906 call usb_isr 
+0554 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
+0555 207a0000 rtn blank 
+0556 7008f700 jam 0 ,mem_usb0_get_set_report 
+0557 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
+0558 d84003a2 arg pc_set_report_protocol ,temp 
+0559 98467c00 isub temp ,null 
+055a 24628000 nrtn zero 
+055b 202001c6 branch p_dongle_usb_data_received_analysis 
 
 p_wdt_kick:
-0551 58000010 setarg 16 
-0552 202070c8 branch wdt_init_config 
+055c 58000010 setarg 16 
+055d 202070c8 branch wdt_init_config 
 
 p_g24_100ms_timer_event:
-0553 d8e00006 arg usb_timer_100ms ,queue 
-0554 20407cef call timer_check 
-0555 247a0000 nrtn blank 
-0556 2040055d call p_g24_http_over_pack_check 
-0557 20400560 call p_g24_dongle_disconnect_state_check 
-0558 20400570 call p_g24_dongle_store_b4_flag_check 
-0559 20400587 call p_g24_dongle_store_b5_flag_check 
+055e d8e00006 arg usb_timer_100ms ,queue 
+055f 20407cef call timer_check 
+0560 247a0000 nrtn blank 
+0561 20400568 call p_g24_http_over_pack_check 
+0562 2040056b call p_g24_dongle_disconnect_state_check 
+0563 2040057b call p_g24_dongle_store_b4_flag_check 
+0564 20400592 call p_g24_dongle_store_b5_flag_check 
 
 p_g24_100ms_timer_init:
-055a d8e00006 arg usb_timer_100ms ,queue 
-055b 58000028 setarg 40 
-055c 20207ce1 branch timer_init 
+0565 d8e00006 arg usb_timer_100ms ,queue 
+0566 58000028 setarg 40 
+0567 20207ce1 branch timer_init 
 
 p_g24_http_over_pack_check:
-055d 6fe0c97d fetch 1 ,mem_usb_website_step 
-055e 207a0000 rtn blank 
-055f 2020026b branch p_dongle_usb_tx_http_data 
+0568 6fe0c97d fetch 1 ,mem_usb_website_step 
+0569 207a0000 rtn blank 
+056a 2020026b branch p_dongle_usb_tx_http_data 
 
 p_g24_dongle_disconnect_state_check:
-0560 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
-0561 c4000000 rtnbit0 0 
-0562 6fe0c80f fetch 1 ,mem_dongle_connect_mouse_flag 
-0563 207a0000 rtn blank 
-0564 6fe14810 fetch 2 ,mem_dongle_no_data_count 
-0565 1fe0fe01 increase 1 ,pdata 
-0566 67e14810 store 2 ,mem_dongle_no_data_count 
-0567 d84004b0 arg 0x4b0 ,temp 
-0568 98467c00 isub temp ,null 
-0569 24610000 nrtn positive 
-056a 58000000 setarg 0 
-056b 67e14810 store 2 ,mem_dongle_no_data_count 
-056c 6fe0c80f fetch 1 ,mem_dongle_connect_mouse_flag 
-056d 207a0000 rtn blank 
-056e 70480f00 jam 0 ,mem_dongle_connect_mouse_flag 
-056f 20600000 rtn 
+056b 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
+056c c4000000 rtnbit0 0 
+056d 6fe0c80f fetch 1 ,mem_dongle_connect_mouse_flag 
+056e 207a0000 rtn blank 
+056f 6fe14810 fetch 2 ,mem_dongle_no_data_count 
+0570 1fe0fe01 increase 1 ,pdata 
+0571 67e14810 store 2 ,mem_dongle_no_data_count 
+0572 d84004b0 arg 0x4b0 ,temp 
+0573 98467c00 isub temp ,null 
+0574 24610000 nrtn positive 
+0575 58000000 setarg 0 
+0576 67e14810 store 2 ,mem_dongle_no_data_count 
+0577 6fe0c80f fetch 1 ,mem_dongle_connect_mouse_flag 
+0578 207a0000 rtn blank 
+0579 70480f00 jam 0 ,mem_dongle_connect_mouse_flag 
+057a 20600000 rtn 
 
 p_g24_dongle_store_b4_flag_check:
-0570 da6049ca arg mem_usb_delay_store_b4_flag_count ,regc 
-0571 da400573 arg p_g24_dongle_store_b4_flag ,regb 
-0572 202042e0 branch timer_single_step 
+057b da6049ca arg mem_usb_delay_store_b4_flag_count ,regc 
+057c da40057e arg p_g24_dongle_store_b4_flag ,regb 
+057d 202042e0 branch timer_single_step 
 
 p_g24_dongle_store_b4_flag:
-0573 6a4149cd fetchr regb ,2 ,mem_otp_offset_b4_addr 
-0574 1a422600 copy regb ,regc 
+057e 6a4149cd fetchr regb ,2 ,mem_otp_offset_b4_addr 
+057f 1a422600 copy regb ,regc 
 
 p_g24_dongle_store_b4_flag_loop:
-0575 204005a8 call p_g24_dongle_load_b4_flag_comon 
-0576 6fe0c9c2 fetch 1 ,mem_ms_b4_function_flag_temp 
-0577 203a057f branch p_g24_dongle_store_b4_flag_store ,blank 
-0578 67e0c9c1 store 1 ,mem_ms_b4_function_flag_last 
-0579 1a60a601 increase 1 ,regc 
-057a 6fe149cf fetch 2 ,mem_otp_offset_b4_addr_end 
-057b 9a667c00 isub regc ,null 
-057c 24610000 nrtn positive 
-057d 1a622400 copy regc ,regb 
-057e 20200575 branch p_g24_dongle_store_b4_flag_loop 
+0580 204005b3 call p_g24_dongle_load_b4_flag_comon 
+0581 6fe0c9c2 fetch 1 ,mem_ms_b4_function_flag_temp 
+0582 203a058a branch p_g24_dongle_store_b4_flag_store ,blank 
+0583 67e0c9c1 store 1 ,mem_ms_b4_function_flag_last 
+0584 1a60a601 increase 1 ,regc 
+0585 6fe149cf fetch 2 ,mem_otp_offset_b4_addr_end 
+0586 9a667c00 isub regc ,null 
+0587 24610000 nrtn positive 
+0588 1a622400 copy regc ,regb 
+0589 20200580 branch p_g24_dongle_store_b4_flag_loop 
 
 p_g24_dongle_store_b4_flag_store:
-057f 6848c9c1 fetcht 1 ,mem_ms_b4_function_flag_last 
-0580 6fe0c9c0 fetch 1 ,mem_ms_b4_function_flag 
-0581 98467c00 isub temp ,null 
-0582 20628000 rtn zero 
-0583 da2049c0 arg mem_ms_b4_function_flag ,rega 
+058a 6848c9c1 fetcht 1 ,mem_ms_b4_function_flag_last 
+058b 6fe0c9c0 fetch 1 ,mem_ms_b4_function_flag 
+058c 98467c00 isub temp ,null 
+058d 20628000 rtn zero 
+058e da2049c0 arg mem_ms_b4_function_flag ,rega 
 
 p_otp_store_data:
-0584 df200001 arg 1 ,loopcnt 
-0585 1a622400 copy regc ,regb 
-0586 20206b45 branch otp_write 
+058f df200001 arg 1 ,loopcnt 
+0590 1a622400 copy regc ,regb 
+0591 20206b45 branch otp_write 
 
 p_g24_dongle_store_b5_flag_check:
-0587 da6049cb arg mem_usb_delay_store_b5_flag_count ,regc 
-0588 da40058a arg p_g24_dongle_store_b5_flag ,regb 
-0589 202042e0 branch timer_single_step 
+0592 da6049cb arg mem_usb_delay_store_b5_flag_count ,regc 
+0593 da400595 arg p_g24_dongle_store_b5_flag ,regb 
+0594 202042e0 branch timer_single_step 
 
 p_g24_dongle_store_b5_flag:
-058a 6a4149d1 fetchr regb ,2 ,mem_otp_offset_b5_addr 
-058b 1a422600 copy regb ,regc 
+0595 6a4149d1 fetchr regb ,2 ,mem_otp_offset_b5_addr 
+0596 1a422600 copy regb ,regc 
 
 p_g24_dongle_store_b5_flag_loop:
-058c 204005bd call p_g24_dongle_load_b5_flag_comon 
-058d 6fe0c9c7 fetch 1 ,mem_ms_b5_function_flag_temp 
-058e 203a0596 branch p_g24_dongle_store_b5_flag_store ,blank 
-058f 67e0c9c6 store 1 ,mem_ms_b5_function_flag_last 
-0590 1a60a601 increase 1 ,regc 
-0591 6fe149d3 fetch 2 ,mem_otp_offset_b5_addr_end 
-0592 9a667c00 isub regc ,null 
-0593 24610000 nrtn positive 
-0594 1a622400 copy regc ,regb 
-0595 2020058c branch p_g24_dongle_store_b5_flag_loop 
+0597 204005c8 call p_g24_dongle_load_b5_flag_comon 
+0598 6fe0c9c7 fetch 1 ,mem_ms_b5_function_flag_temp 
+0599 203a05a1 branch p_g24_dongle_store_b5_flag_store ,blank 
+059a 67e0c9c6 store 1 ,mem_ms_b5_function_flag_last 
+059b 1a60a601 increase 1 ,regc 
+059c 6fe149d3 fetch 2 ,mem_otp_offset_b5_addr_end 
+059d 9a667c00 isub regc ,null 
+059e 24610000 nrtn positive 
+059f 1a622400 copy regc ,regb 
+05a0 20200597 branch p_g24_dongle_store_b5_flag_loop 
 
 p_g24_dongle_store_b5_flag_store:
-0596 6848c9c6 fetcht 1 ,mem_ms_b5_function_flag_last 
-0597 6fe0c9c5 fetch 1 ,mem_ms_b5_function_flag 
-0598 98467c00 isub temp ,null 
-0599 20628000 rtn zero 
-059a da2049c5 arg mem_ms_b5_function_flag ,rega 
-059b 20200584 branch p_otp_store_data 
+05a1 6848c9c6 fetcht 1 ,mem_ms_b5_function_flag_last 
+05a2 6fe0c9c5 fetch 1 ,mem_ms_b5_function_flag 
+05a3 98467c00 isub temp ,null 
+05a4 20628000 rtn zero 
+05a5 da2049c5 arg mem_ms_b5_function_flag ,rega 
+05a6 2020058f branch p_otp_store_data 
 
 p_g24_dongle_load_b4_flag:
-059c 6a4149cd fetchr regb ,2 ,mem_otp_offset_b4_addr 
-059d 1a422600 copy regb ,regc 
+05a7 6a4149cd fetchr regb ,2 ,mem_otp_offset_b4_addr 
+05a8 1a422600 copy regb ,regc 
 
 p_g24_dongle_load_b4_flag_loop:
-059e 204005a8 call p_g24_dongle_load_b4_flag_comon 
-059f 6fe0c9c2 fetch 1 ,mem_ms_b4_function_flag_temp 
-05a0 203a05ab branch p_g24_dongle_load_b4_flag_load ,blank 
-05a1 67e0c9c1 store 1 ,mem_ms_b4_function_flag_last 
-05a2 1a60a601 increase 1 ,regc 
-05a3 6fe149cf fetch 2 ,mem_otp_offset_b4_addr_end 
-05a4 9a667c00 isub regc ,null 
-05a5 242105ab nbranch p_g24_dongle_load_b4_flag_load ,positive 
-05a6 1a622400 copy regc ,regb 
-05a7 2020059e branch p_g24_dongle_load_b4_flag_loop 
+05a9 204005b3 call p_g24_dongle_load_b4_flag_comon 
+05aa 6fe0c9c2 fetch 1 ,mem_ms_b4_function_flag_temp 
+05ab 203a05b6 branch p_g24_dongle_load_b4_flag_load ,blank 
+05ac 67e0c9c1 store 1 ,mem_ms_b4_function_flag_last 
+05ad 1a60a601 increase 1 ,regc 
+05ae 6fe149cf fetch 2 ,mem_otp_offset_b4_addr_end 
+05af 9a667c00 isub regc ,null 
+05b0 242105b6 nbranch p_g24_dongle_load_b4_flag_load ,positive 
+05b1 1a622400 copy regc ,regb 
+05b2 202005a9 branch p_g24_dongle_load_b4_flag_loop 
 
 p_g24_dongle_load_b4_flag_comon:
-05a8 df200001 arg 1 ,loopcnt 
-05a9 da2049c2 arg mem_ms_b4_function_flag_temp ,rega 
-05aa 20206b74 branch otp_read_data 
+05b3 df200001 arg 1 ,loopcnt 
+05b4 da2049c2 arg mem_ms_b4_function_flag_temp ,rega 
+05b5 20206b74 branch otp_read_data 
 
 p_g24_dongle_load_b4_flag_load:
-05ab 6fe0c9c1 fetch 1 ,mem_ms_b4_function_flag_last 
-05ac 205a05af call p_g24_donge_b4_default_set ,blank 
-05ad 67e0c9c0 store 1 ,mem_ms_b4_function_flag 
-05ae 20600000 rtn 
+05b6 6fe0c9c1 fetch 1 ,mem_ms_b4_function_flag_last 
+05b7 205a05ba call p_g24_donge_b4_default_set ,blank 
+05b8 67e0c9c0 store 1 ,mem_ms_b4_function_flag 
+05b9 20600000 rtn 
 
 p_g24_donge_b4_default_set:
-05af 58000001 setarg b4_default 
-05b0 20600000 rtn 
+05ba 58000001 setarg b4_default 
+05bb 20600000 rtn 
 
 p_g24_dongle_load_b5_flag:
-05b1 6a4149d1 fetchr regb ,2 ,mem_otp_offset_b5_addr 
-05b2 1a422600 copy regb ,regc 
+05bc 6a4149d1 fetchr regb ,2 ,mem_otp_offset_b5_addr 
+05bd 1a422600 copy regb ,regc 
 
 p_g24_dongle_load_b5_flag_loop:
-05b3 204005bd call p_g24_dongle_load_b5_flag_comon 
-05b4 6fe0c9c7 fetch 1 ,mem_ms_b5_function_flag_temp 
-05b5 203a05c0 branch p_g24_dongle_load_b5_flag_load ,blank 
-05b6 67e0c9c6 store 1 ,mem_ms_b5_function_flag_last 
-05b7 1a60a601 increase 1 ,regc 
-05b8 6fe149d3 fetch 2 ,mem_otp_offset_b5_addr_end 
-05b9 9a667c00 isub regc ,null 
-05ba 242105c0 nbranch p_g24_dongle_load_b5_flag_load ,positive 
-05bb 1a622400 copy regc ,regb 
-05bc 202005b3 branch p_g24_dongle_load_b5_flag_loop 
+05be 204005c8 call p_g24_dongle_load_b5_flag_comon 
+05bf 6fe0c9c7 fetch 1 ,mem_ms_b5_function_flag_temp 
+05c0 203a05cb branch p_g24_dongle_load_b5_flag_load ,blank 
+05c1 67e0c9c6 store 1 ,mem_ms_b5_function_flag_last 
+05c2 1a60a601 increase 1 ,regc 
+05c3 6fe149d3 fetch 2 ,mem_otp_offset_b5_addr_end 
+05c4 9a667c00 isub regc ,null 
+05c5 242105cb nbranch p_g24_dongle_load_b5_flag_load ,positive 
+05c6 1a622400 copy regc ,regb 
+05c7 202005be branch p_g24_dongle_load_b5_flag_loop 
 
 p_g24_dongle_load_b5_flag_comon:
-05bd df200001 arg 1 ,loopcnt 
-05be da2049c7 arg mem_ms_b5_function_flag_temp ,rega 
-05bf 20206b74 branch otp_read_data 
+05c8 df200001 arg 1 ,loopcnt 
+05c9 da2049c7 arg mem_ms_b5_function_flag_temp ,rega 
+05ca 20206b74 branch otp_read_data 
 
 p_g24_dongle_load_b5_flag_load:
-05c0 6fe0c9c6 fetch 1 ,mem_ms_b5_function_flag_last 
-05c1 205a05c4 call p_g24_donge_b5_default_set ,blank 
-05c2 67e0c9c5 store 1 ,mem_ms_b5_function_flag 
-05c3 20600000 rtn 
+05cb 6fe0c9c6 fetch 1 ,mem_ms_b5_function_flag_last 
+05cc 205a05cf call p_g24_donge_b5_default_set ,blank 
+05cd 67e0c9c5 store 1 ,mem_ms_b5_function_flag 
+05ce 20600000 rtn 
 
 p_g24_donge_b5_default_set:
-05c4 58000002 setarg b5_default 
-05c5 20600000 rtn 
+05cf 58000002 setarg b5_default 
+05d0 20600000 rtn 
 
 p_dongle_default_init:
-05c6 204047c3 call dongle_default_init + 1 
-05c7 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
-05c8 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
-05c9 2040059c call p_g24_dongle_load_b4_flag 
-05ca 204005b1 call p_g24_dongle_load_b5_flag 
-05cb 20403281 call g24_enable_1m 
-05cc 6fe0c669 fetch 1 ,mem_dg_sys_config 
-05cd c4000000 rtnbit0 dg_enable_new_revision 
-05ce 7045ca01 jam on ,mem_24g_disable_fec1 
-05cf 20203284 branch g24_enable_2m 
+05d1 204047c3 call dongle_default_init + 1 
+05d2 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
+05d3 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
+05d4 204005a7 call p_g24_dongle_load_b4_flag 
+05d5 204005bc call p_g24_dongle_load_b5_flag 
+05d6 20403281 call g24_enable_1m 
+05d7 6fe0c669 fetch 1 ,mem_dg_sys_config 
+05d8 c4000000 rtnbit0 dg_enable_new_revision 
+05d9 7045ca01 jam on ,mem_24g_disable_fec1 
+05da 20203284 branch g24_enable_2m 
 
 p_g24_receive_skip_end:
-05d0 6fe0c669 fetch 1 ,mem_dg_sys_config 
-05d1 c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
-05d2 7837fc00 enable user3 
-05d3 20000018 nop 24 
-05d4 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
-05d5 79207e00 set1 bit_ack_24g ,pdata 
-05d6 67e0c4f8 store 1 ,mem_24g_rxbuf + 1 
-05d7 204033a5 call g24_ackpayload_prep 
-05d8 204031e5 call g24_transmit_prep 
-05d9 20203195 branch g24_transmit 
+05db 6fe0c669 fetch 1 ,mem_dg_sys_config 
+05dc c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
+05dd 7837fc00 enable user3 
+05de 20000018 nop 24 
+05df 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+05e0 79207e00 set1 bit_ack_24g ,pdata 
+05e1 67e0c4f8 store 1 ,mem_24g_rxbuf + 1 
+05e2 204033a5 call g24_ackpayload_prep 
+05e3 204031e5 call g24_transmit_prep 
+05e4 20203195 branch g24_transmit 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/program/patch.prog	(revision 4491)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/program/patch.prog	(working copy)
@@ -1003,30 +1003,23 @@
 p_dongle_ms_normal_key_release:
 	jam 0,mem_usb_task_release_normal_flag
 	jam 0,mem_usb_normal_key_flag
-	arg mem_usb_kb_data,contw
-	call memset0_16
+	arg 0,temp
 	branch p_dongle_ms_tx_normal_data+1
 	
 p_dongle_ms_multikey_key_release:
 	jam 0,mem_usb_multikey_key_flag
-	arg mem_usb_kb_multikey,contw
-	call memset0_16
-	fetch 3,mem_usb_multkey_release
+	fetcht 3,mem_usb_multkey_release
 	branch p_dongle_ms_tx_multikey_data+1
 
 p_dongle_ms_system_key_release:
 	jam 0,mem_usb_system_key_flag
-	arg mem_usb_kb_system,contw
-	call memset0_16
-	fetch 3,mem_usb_system_ctrl_release
+	fetcht 3,mem_usb_system_ctrl_release
 	branch p_dongle_ms_tx_system_data+1
 
 p_dongle_ms_task_windows_key_release:
 	jam 0,mem_usb_task_windows_key_flag
 	jam 1,mem_usb_task_release_normal_flag
-	arg mem_usb_kb_data,contw
-	call memset0_16
-	fetch 3,mem_usb_win_task_windows_release
+	fetcht 3,mem_usb_win_task_windows_release
 	branch p_dongle_ms_tx_normal_data+1
 
 //==================fuction key press===================//
@@ -1040,14 +1033,19 @@
 	fetch 1,mem_ms_b4_function_flag
 	store 1,mem_ms_key_function_flag_temp
 p_dongle_ms_key_press_val_set:
+	fetch 1,mem_usb_tx_mac_enable
+	beq OS_WIN,p_dongle_ms_key_press_win_val_set
+	beq OS_MAC,p_dongle_ms_key_press_mac_val_set
+	rtn
+p_dongle_ms_key_press_win_val_set:
 	fetch 1,mem_ms_key_function_flag_temp
 	beq FORWORD,p_dongle_ms_forword_val_set
 	beq BACKWORD,p_dongle_ms_back_val_set
-	beq ALT_A,p_dongle_ms_alt_a_val_set
-	beq BOSS,p_dongle_ms_boss_val_set
-	beq VOL_ADD,p_dongle_ms_vol_add_val_set
+	beq ALT_A,p_dongle_ms_alt_a_val_set				//alt+a
+	beq BOSS,p_dongle_ms_boss_val_set				//win+d
+	beq VOL_ADD,p_dongle_ms_vol_add_val_set		
 	beq VOL_DOWN,p_dongle_ms_vol_down_val_set
-	beq PC_SLEEP,p_dongle_ms_pc_sleep_val_set
+	beq PC_SLEEP,p_dongle_ms_pc_sleep_val_set		//win+L
 	beq LIGHT_ADD,p_dongle_ms_light_add_val_set
 	beq LIGHT_DOWN,p_dongle_ms_light_down_val_set
 	beq POWERDOWN,p_dongle_ms_powerdown_val_set
@@ -1060,102 +1058,137 @@
 //======================ms key==========================//
 p_dongle_ms_forword_val_set:
 	fetch 1,mem_usb_mouse_data+1
-	set1 B5_BIT,pdata
+	set1 B4_BIT,pdata
 p_dongle_usb_mouse_dat_store:
 	store 1,mem_usb_mouse_data+1
 	rtn
 p_dongle_ms_back_val_set:
 	fetch 1,mem_usb_mouse_data+1
-	set1 B4_BIT,pdata
+	set1 B5_BIT,pdata
 	branch p_dongle_usb_mouse_dat_store
 
-//======================normal key==========================//
+//======================win normal key==========================//
 p_dongle_ms_alt_a_val_set:
-	arg mem_usb_kb_data,contw
-	call memset0_16
-	fetch 3,mem_usb_win_alt_a
+	fetcht 3,mem_usb_win_alt_a
 p_dongle_ms_tx_normal_data:
 	jam 1,mem_usb_normal_key_flag
-	store 3,mem_usb_kb_data
+	arg mem_usb_kb_data,contw
+	call memset0_16
+	storet 3,mem_usb_kb_data
 	branch p_dongle_usb_tx_normal_data_enable
 
 p_dongle_ms_pc_sleep_val_set:
-	arg mem_usb_kb_data,contw
-	call memset0_16
-	fetch 3,mem_usb_win_sleep
+	fetcht 3,mem_usb_win_sleep
 	branch p_dongle_ms_tx_normal_data
 
 p_dongle_ms_boss_val_set:
-	arg mem_usb_kb_data,contw
-	call memset0_16
-	fetch 3,mem_usb_win_win_d
+	fetcht 3,mem_usb_win_win_d
 	branch p_dongle_ms_tx_normal_data
 
 p_dongle_ms_task_windows_set:
-	arg mem_usb_kb_data,contw
-	call memset0_16
 	jam 1,mem_usb_task_windows_key_flag
-	fetch 3,mem_usb_win_task_windows
+	fetcht 3,mem_usb_win_task_windows
 	branch p_dongle_ms_tx_normal_data+1
 
-//======================multikey key==========================//
+//======================win multikey key==========================//
 p_dongle_ms_vol_add_val_set:
-	arg mem_usb_kb_multikey,contw
-	call memset0_16
-	fetch 3,mem_usb_win_vol_add
+	fetcht 3,mem_usb_win_vol_add
 p_dongle_ms_tx_multikey_data:
 	jam 1,mem_usb_multikey_key_flag
-	store 3,mem_usb_kb_multikey
+	arg mem_usb_kb_multikey,contw
+	call memset0_16
+	storet 3,mem_usb_kb_multikey
 	jam USB_EP2_MULTIKEY,mem_usb_ep2_data
 	branch p_dongle_usb_tx_enable_ep2
 
 p_dongle_ms_vol_down_val_set:
-	arg mem_usb_kb_multikey,contw
-	call memset0_16
-	fetch 3,mem_usb_win_vol_decrease
+	fetcht 3,mem_usb_win_vol_decrease
 	branch p_dongle_ms_tx_multikey_data
 
 p_dongle_ms_light_add_val_set:
-	arg mem_usb_kb_multikey,contw
-	call memset0_16
-	fetch 3,mem_usb_win_light_add
+	fetcht 3,mem_usb_win_light_add
 	branch p_dongle_ms_tx_multikey_data
 
 p_dongle_ms_light_down_val_set:
-	arg mem_usb_kb_multikey,contw
-	call memset0_16
-	fetch 3,mem_usb_win_light_decrease
+	fetcht 3,mem_usb_win_light_decrease
 	branch p_dongle_ms_tx_multikey_data
 
 p_dongle_ms_play_set:
-	arg mem_usb_kb_multikey,contw
-	call memset0_16
-	fetch 3,mem_usb_win_play
+	fetcht 3,mem_usb_win_play
 	branch p_dongle_ms_tx_multikey_data
 
 p_dongle_ms_play_forword_set:
-	arg mem_usb_kb_multikey,contw
-	call memset0_16
-	fetch 3,mem_usb_win_forword_play
+	fetcht 3,mem_usb_win_forword_play
 	branch p_dongle_ms_tx_multikey_data
 
 p_dongle_ms_play_next_set:
-	arg mem_usb_kb_multikey,contw
-	call memset0_16
-	fetch 3,mem_usb_win_next_play
+	fetcht 3,mem_usb_win_next_play
 	branch p_dongle_ms_tx_multikey_data
 
-//======================system key==========================//
+//======================win system key==========================//
 p_dongle_ms_powerdown_val_set:
-	arg mem_usb_kb_system,contw
-	call memset0_16
-	fetch 3,mem_usb_win_powerdown
+	fetcht 3,mem_usb_win_powerdown
 p_dongle_ms_tx_system_data:
 	jam 1,mem_usb_system_key_flag
-	store 3,mem_usb_kb_system
+	arg mem_usb_kb_system,contw
+	call memset0_16
+	storet 3,mem_usb_kb_system
 	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
 	branch p_dongle_usb_tx_enable_ep2
 
+
+//======================mac multikey key==========================//
+
+p_dongle_ms_key_press_mac_val_set:
+	fetch 1,mem_ms_key_function_flag_temp
+	beq FORWORD,p_dongle_ms_forword_val_set
+	beq BACKWORD,p_dongle_ms_back_val_set
+	beq ALT_A,p_dongle_ms_mac_alt_a_val_set
+	beq BOSS,p_dongle_ms_mac_boss_val_set
+	beq VOL_ADD,p_dongle_ms_vol_add_val_set
+	beq VOL_DOWN,p_dongle_ms_vol_down_val_set
+	beq PC_SLEEP,p_dongle_ms_mac_pc_sleep_val_set
+	beq LIGHT_ADD,p_dongle_ms_light_add_val_set
+	beq LIGHT_DOWN,p_dongle_ms_light_down_val_set
+	beq POWERDOWN,p_dongle_ms_mac_powerdown_val_set
+	beq PLAY,p_dongle_ms_mac_play_set
+	beq PALY_FORWORD,p_dongle_ms_mac_play_forword_set
+	beq PLAY_NEXT,p_dongle_ms_mac_play_next_set
+	beq TASK_WINDOWS,p_dongle_ms_mac_task_windows_set
+	rtn
+
+p_dongle_ms_mac_alt_a_val_set:			//ctrl+a
+	fetcht 3,mem_usb_mac_ctrl_a
+	branch p_dongle_ms_tx_normal_data
+
+p_dongle_ms_mac_boss_val_set:			//f11
+	fetcht 3,mem_usb_mac_boss
+	branch p_dongle_ms_tx_normal_data
+
+p_dongle_ms_mac_pc_sleep_val_set:		//ctrl+shift+powerdown
+	fetcht 3,mem_usb_mac_sleep
+	branch p_dongle_ms_tx_normal_data
+
+p_dongle_ms_mac_powerdown_val_set:	//ctrl+powerdown
+	fetcht 3,mem_usb_mac_powerdown
+	branch p_dongle_ms_tx_normal_data
+
+p_dongle_ms_mac_play_set:				//space
+	fetcht 3,mem_usb_mac_play
+	branch p_dongle_ms_tx_normal_data
+
+p_dongle_ms_mac_play_forword_set:		//command+<--
+	fetcht 3,mem_usb_mac_forword_play
+	branch p_dongle_ms_tx_normal_data
+
+p_dongle_ms_mac_play_next_set:			//command+-->
+	fetcht 3,mem_usb_mac_next_play
+	branch p_dongle_ms_tx_normal_data
+
+p_dongle_ms_mac_task_windows_set:	//f3
+	fetcht 3,mem_usb_mac_task_windows
+	branch p_dongle_ms_tx_normal_data
+
 //=================tx app data===================//
 p_dongle_receive_app_data:
 	fetch 1,mem_24g_rxdata_temp+3
Index: sched/dongle.dat
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/sched/dongle.dat	(revision 4490)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/sched/dongle.dat	(working copy)
@@ -132,7 +132,7 @@
 mem_usb_win_sleep:08 00 0f
 mem_usb_win_light_add:03 6f 00
 mem_usb_win_light_decrease:03 70 00
-mem_usb_win_powerdown:02 01 00
+mem_usb_win_powerdown:04 00 3d
 mem_usb_win_play:03 cd 00
 mem_usb_win_forword_play:03 b6 00
 mem_usb_win_next_play:03 b5 00
@@ -141,6 +141,16 @@
 mem_usb_multkey_release:03 00 00
 mem_usb_win_task_windows_release:04 00 00
 
+mem_usb_mac_ctrl_a:01 00 04
+mem_usb_mac_boss:00 00 44
+mem_usb_mac_sleep:03 00 66
+mem_usb_mac_powerdown:01 00 66
+mem_usb_mac_play:00 00 2c
+mem_usb_mac_forword_play:00 65 50
+mem_usb_mac_next_play:00 65 4f
+mem_usb_mac_task_windows:01 00 52
+
+
 mem_otp_offset_b4_addr:dd 1e		#7901
 mem_otp_offset_b4_addr_end:40 1f  #8000
 mem_otp_offset_b5_addr:41 1f 		#8001
