Index: do.bat
===================================================================
--- /branch/mouse_project/Standard/do.bat	(revision 710)
+++ /branch/mouse_project/Standard/do.bat	(working copy)
@@ -90,6 +90,11 @@
 
 :genromrevc
 echo off
+
+perl ..\util\DeleteNote.pl ..\output\sched.rom
+perl ..\util\transform_name2addr.pl ..\output\sched.rom ..\output\sched.rom ..\output\memmap.format
+perl ..\util\sortsched.pl ..\output\sched.rom ..\output\sched.rom
+
 @echo Start to generate EEPROM code
 
 geneep -n ramcode.rom sched.rom 0 %enckey% c
Index: format/app_mouse.format
===================================================================
--- /branch/mouse_project/Standard/format/app_mouse.format	(revision 710)
+++ /branch/mouse_project/Standard/format/app_mouse.format	(working copy)
@@ -217,6 +217,14 @@
 
 1 mem_mouse_bt_send_first_package_timer
 1 mem_mouse_bt_send_first_package_flag
+
+1 mem_mouse_asm_flag
+1 mem_mouse_x_abs
+1 mem_mouse_y_abs
+3 mem_mouse_x_sum
+3 mem_mouse_y_sum
+2 mem_mouse_x_pre
+2 mem_mouse_y_pre
 )
 
 (
Index: output/eeprom.dat
===================================================================
--- /branch/mouse_project/Standard/output/eeprom.dat	(revision 710)
+++ /branch/mouse_project/Standard/output/eeprom.dat	(working copy)
@@ -2,156 +2,160 @@
 02
 aa
 55
-fa
+ba
 1b
 c2
 84
 00
-18
+19
 c0
 42
 86
-0c
+ec
 c0
 44
-85
-d1
+86
+bd
 c0
 00
 80
-30
+31
+c0
+01
+00
+3a
 c0
 0d
-83
-67
+85
+b8
 c0
 13
-03
-74
+05
+c5
 c0
 25
-03
-8f
+05
+e0
 c0
 2c
-83
-8d
+85
+de
 c0
 28
-83
-98
+85
+e9
 c0
 53
-83
-9d
+85
+ee
 c0
 65
-83
-b2
+86
+04
 c0
 74
-83
-b3
+86
+05
 c0
 50
 80
-39
-c0
-54
-00
-3e
+3f
 c0
 58
 80
-41
+44
 c0
 59
 00
-49
+4e
 c0
 62
-00
-c3
+02
+de
 c0
 64
-81
-55
+83
+72
 c0
 65
-01
-59
+03
+76
 c0
 71
-82
-82
+84
+cc
+c0
+73
+04
+d8
 c0
 75
-02
-8f
+04
+e1
 c0
 75
-82
-9d
+84
+f6
 c0
 76
-02
-c6
+05
+17
 20
 20
 2a
 8e
 c0
 1c
-82
-ca
+85
+1b
 c0
 21
-82
-d2
+85
+23
 c0
 25
-02
-d8
+05
+29
 c0
 2b
-82
-db
+85
+2c
 c0
 31
-82
-ed
+85
+3e
 c0
 33
-83
-17
+85
+68
 c0
 35
-03
-40
+05
+91
 c0
 3b
-83
-4b
+85
+9c
 c0
 02
-83
-c6
+86
+18
 c0
 40
-03
-d5
+06
+27
 c0
 41
-03
-df
+06
+31
 c0
 44
-04
-0a
+06
+5c
 c0
 46
-03
-5b
+05
+ac
 20
 20
 2a
@@ -163,11 +167,11 @@
 68
 08
 cc
-4c
+59
 58
 00
 4c
-53
+60
 98
 40
 8a
@@ -191,7 +195,7 @@
 60
 08
 cc
-4c
+59
 20
 60
 00
@@ -210,8 +214,8 @@
 d4
 20
 40
-00
-b7
+03
+b5
 20
 40
 6a
@@ -232,6 +236,26 @@
 20
 20
 0c
+20
+55
+b2
+e3
+20
+40
+00
+3d
+20
+20
+20
+11
+c6
+13
+00
+00
+20
+20
+75
+6a
 58
 00
 0a
@@ -252,18 +276,6 @@
 20
 2a
 a2
-68
-00
-c8
-06
-24
-7a
-00
-00
-20
-20
-2b
-7f
 c6
 13
 00
@@ -292,6 +304,14 @@
 3a
 7f
 ef
+68
+00
+c8
+06
+24
+3a
+7f
+ef
 20
 20
 7f
@@ -303,75 +323,59 @@
 68
 00
 cc
-d1
+de
 c0
 00
 80
-5e
+5f
 20
 40
-04
-87
+00
+f0
 24
 34
 00
 79
 20
 40
-04
-6c
+00
+d7
 20
 40
-04
-ab
+01
+12
 68
 00
 cb
-a1
+ae
 c1
 ff
 80
 00
 20
 40
-05
-0a
+06
+91
 68
 00
 cc
-d1
+de
 c1
 00
 80
 00
 20
 40
-2a
-fa
-68
-01
-c1
-6f
-20
-7a
-00
-00
-68
-00
-c0
-91
-20
-7a
 00
+81
+24
+74
 00
-20
-40
 00
-9e
 20
 40
-00
-9b
+02
+cf
 58
 00
 ec
@@ -382,8 +386,8 @@
 93
 20
 40
-06
-0e
+02
+9a
 24
 74
 00
@@ -395,7 +399,7 @@
 68
 00
 cc
-d2
+df
 1f
 e0
 fe
@@ -403,7 +407,7 @@
 60
 00
 cc
-d2
+df
 1f
 e6
 7c
@@ -411,31 +415,31 @@
 20
 42
 80
-67
+68
 20
 20
 00
-4c
+51
 70
 4c
-d1
+de
 00
 70
 4c
-d2
+df
 00
 70
 4b
-cc
+d9
 00
 68
 00
 cb
-b7
+c4
 60
 00
 cb
-b6
+c3
 20
 60
 00
@@ -443,19 +447,15 @@
 68
 00
 cb
-b8
-60
-00
-cb
-b6
+c5
+20
 20
-60
-00
 00
+6c
 68
 00
 cb
-cc
+d9
 1f
 e0
 fe
@@ -463,26 +463,26 @@
 60
 00
 cb
-cc
+d9
 c0
 02
 00
-6d
+6e
 c0
 02
 80
-69
+6a
 20
 60
 00
 00
 70
 4c
-d1
+de
 01
 70
 4c
-d2
+df
 00
 20
 60
@@ -491,39 +491,23 @@
 68
 00
 cb
-bd
+ca
 20
 5a
 00
-85
+88
 20
 40
-2a
-fa
-68
-01
-c1
-6f
-20
-7a
-00
-00
-68
-00
-c0
-91
-20
-7a
 00
+81
+24
+74
 00
-20
-40
 00
-9e
 68
-04
-4b
-c0
+01
+cb
+cd
 20
 40
 7f
@@ -536,22 +520,50 @@
 20
 2b
 2a
+78
+34
+7c
+00
+20
+40
+2a
+fa
+68
+01
+c1
+6f
+20
+3a
+7f
+e9
+68
+00
+c0
+91
+20
+3a
+7f
+e9
+20
+20
+02
+d2
 70
 4b
-bd
+ca
 01
 70
 4c
-c6
+d3
 00
 20
 40
-04
-34
+00
+9f
 60
 00
 cb
-2d
+3a
 58
 00
 00
@@ -559,23 +571,23 @@
 60
 03
 cb
-2e
+3b
 68
 02
 4b
-c8
+d5
 60
 02
 4b
-35
+42
 70
 4b
-91
+9e
 0c
 68
 00
 cb
-92
+9f
 79
 20
 7e
@@ -583,2259 +595,2491 @@
 60
 00
 cb
-92
-20
-40
-06
-4a
+9f
 20
 40
-04
-8b
-20
-20
-00
-4f
-c6
-13
-00
 00
+f3
+20
 20
-40
 00
-aa
+54
 20
 40
-00
-9e
 68
-00
-c0
-40
-c3
-00
-00
-9b
+a8
 68
-00
-80
-a0
+02
+42
+21
+60
+02
+4b
+d5
 24
 7a
 00
 00
-58
-00
-00
-00
+68
+02
+40
+a0
 60
-04
-00
-a1
+02
+4b
+d5
 20
 60
 00
 00
-20
-40
+70
+4c
+d4
+01
+70
+4c
+d6
 00
-a7
-20
-40
+68
 00
-9b
+cb
+9f
+1f
+e1
+7e
+07
+60
+00
+cb
+9f
 20
-40
-3e
-bf
-68
-12
+60
 00
-70
-68
-1a
 00
-78
-98
-41
-84
+68
 00
-18
-44
+cb
+9f
+79
+20
+7e
 04
+60
 00
+cb
+9f
 60
-1a
 00
-7c
+cb
+5a
 20
 60
 00
 00
 68
 00
-ca
+cb
+9f
+79
+3f
 fe
+04
+60
+00
+cb
+9f
 20
-7a
+60
 00
 00
 20
-20
-02
-83
-d8
+40
+06
+87
+68
+00
+cc
+d5
 c0
-18
 00
-d8
-a0
-48
-0a
-20
-40
+80
+b1
+c0
+01
 00
 b5
-d8
-c0
-19
+20
+60
 00
-d8
-a0
-48
-25
-20
-40
-00
-b5
-d8
-c0
-1a
 00
-d8
-a0
-48
-40
-20
-40
+70
+4c
+d6
+02
+70
+4c
+d2
 00
-b5
-d8
-c0
-1b
+70
+4c
+d4
 00
-d8
-a0
-48
-5b
-df
+20
 20
 00
-1b
+9f
+70
+4c
+d3
+00
 20
 20
-7f
-01
-d8
-c0
-48
-0a
-d8
-a0
-18
 00
-20
-40
+b2
+68
+01
+4b
+a4
+1f
+e0
+fe
+01
+60
+01
+4b
+a4
+c2
+85
+01
+55
+68
 00
-b5
-d8
+cc
+d3
 c0
-48
-25
-d8
-a0
-19
 00
-20
-40
-00
-b5
-d8
+80
 c0
-48
-40
-d8
-a0
-1a
-00
-20
-40
+70
+4c
+d3
+01
+68
 00
-b5
-d8
+cc
+d3
 c0
-48
-5b
-d8
-a0
-1b
-00
-20
-20
-00
-b5
-20
-40
-34
-16
-20
-35
 80
-cd
-70
 80
-78
-20
-20
-40
-06
-e4
+9f
 68
 00
-c1
-de
+cc
+d1
+1f
+e0
+fe
+01
 60
 00
 cc
-48
-20
-40
-04
-f9
-68
-00
-c6
-85
-60
+d1
+c0
+02
 00
-c6
-da
+c7
 20
 40
-43
-ca
+02
+12
+70
+4b
+e3
+02
+20
+20
+01
+12
 20
 40
+06
+87
+70
+4c
+d1
 00
-d2
 20
 20
-74
-b9
-68
 00
-cc
-48
-60
+9f
+70
+4c
+d6
+02
+70
+4c
+d4
+01
+70
+4c
+d3
 00
-c1
-de
 20
-60
+20
 00
+9f
+68
 00
-24
-55
-81
-23
-20
-40
+cc
+d5
+c0
 01
-02
-20
-75
 80
+cb
+68
 00
+cb
+9f
+2f
+ec
+00
+04
 20
-40
-01
-74
 20
-40
-40
-83
-c0
-02
 80
-f0
-20
-20
-01
-5d
-20
-40
-00
-cf
+9d
 68
 00
-c2
-10
+cc
+d5
 c0
-19
+00
 80
-de
+ca
 c0
-1a
+01
 00
-e1
+cb
 20
 60
 00
 00
 68
-03
-41
-d0
-20
-3a
-33
-eb
-20
-20
-42
-74
-70
-47
-9f
-01
-68
-01
-46
-a8
-60
-01
-46
-ae
-20
-40
-34
-18
+00
+cb
+ae
+c1
+ff
+80
+00
 20
 40
 00
-e9
-58
-00
-00
-04
-e0
-c0
-80
-00
-20
-20
-7d
-f4
-da
-20
-43
-70
-ea
-20
-80
+dc
+24
+56
 00
+e4
 20
-7a
+60
 00
 00
-98
-c0
-a2
+78
+56
+7c
 00
-e8
-c0
-80
+68
 00
+cc
+d4
 c1
-00
+80
 80
 00
-20
-20
-00
-ea
 68
-02
-46
-d3
-c4
-08
-80
 00
-c3
-81
+cc
+d6
+c1
 80
 00
-c6
-13
-00
 00
+70
+4c
+d5
+01
+70
+4b
+e3
+04
 20
-40
-44
-82
-d8
-e0
-00
-03
 20
-40
-43
-ce
-58
-00
+7f
+eb
+68
 00
+cc
+d6
+20
+3a
 00
-60
-01
-46
-ae
+eb
+1f
+e0
+ff
+ff
 60
 00
-c6
-b4
-60
-01
+cc
+d6
+70
+4c
+d5
+02
+70
 4b
-be
-20
-40
-42
-ca
+e3
+04
 20
 20
-05
-3e
-68
 02
-46
-d3
-c3
-0a
-3d
-66
+12
+70
+4c
+d5
+03
 68
 00
-c7
-7a
-c0
-7f
-bd
-66
-20
-20
-3d
-80
+cc
+d3
+24
+3a
+00
+be
 70
-42
-12
-76
-20
+4b
+e3
+02
 20
-3d
-36
 20
-40
-01
 02
-20
-40
-40
-c0
+12
 68
 00
-c6
-e0
-c0
-02
+cb
+ae
 c0
-d5
+ff
+81
+69
 20
 40
+00
+f6
+20
 40
-d9
-c0
-18
+02
+00
+70
+4b
+a3
 01
-12
-c0
-18
-81
-14
+20
+60
+00
+00
+68
+01
+4c
+cf
 20
 40
-40
-d1
+7f
+9c
 20
+34
 00
+fc
+68
 03
-e8
+cb
+3b
 20
+7a
+00
+00
 20
-01
-08
+20
+7f
+e7
 70
-4a
+4b
+ca
+00
+1a
+20
 fe
 01
+60
+00
+cb
+9e
 20
 40
-64
-0f
-20
+00
+9f
+60
+00
+cb
+3a
+e8
+a8
+80
+00
+ea
 40
+80
+00
+98
+41
+fe
+00
+e0
+a0
+80
+00
+1a
+40
+a4
 01
+ea
+42
+00
+00
+e0
+a2
+00
+00
+1a
+40
+a4
 04
-20
-20
-64
-11
-20
+d8
+a0
+4b
 40
-01
-19
-20
+df
 20
+00
+02
+ea
+40
+80
+00
+e8
+a8
+80
+00
+98
 40
+fe
+00
 e0
-20
+a0
+80
+00
+1a
 40
+a4
 01
-19
-68
+c2
 00
-c6
-de
-c0
-38
-40
-e8
-70
-46
-e0
 01
+0b
 20
 60
 00
 00
-58
+70
+4b
+a7
+00
+d9
+60
+0d
+00
+34
+73
+02
 00
-80
-06
 20
 40
-64
-13
-20
-00
+01
 2e
-e0
-20
-20
-00
-fd
-58
+68
 00
+cb
+da
+c1
 00
-06
-20
-40
-64
-14
-1f
-e1
-fe
-08
-1f
-ed
-7e
+80
 00
-1f
-e0
-fe
-06
-20
-20
-64
-13
+24
+2c
+01
+3d
+24
+37
+81
+3d
 20
 40
-04
-2e
+01
+29
 20
 40
-3e
-6e
+01
+59
 20
 40
-3e
-1e
+06
+83
+68
+00
+cb
+9d
+1f
+e0
+fe
+01
+60
+00
+cb
+9d
+68
+00
+cb
+ae
+c0
+ff
+81
+2c
 20
 40
-01
-36
+00
+ce
 58
 00
 00
 00
 60
 01
-41
-54
+4b
+a4
+60
+00
+cb
+a6
+60
+00
+cc
+d2
+70
+4b
+a3
+00
 20
-40
-3e
-54
+60
+00
+00
+df
 20
-40
-58
-10
+00
+04
+d8
+a0
+4b
+3a
 20
-40
-58
-39
 20
-40
-58
-2c
+7e
+c6
 20
 40
-58
-18
+06
+80
+20
+20
+01
+83
+78
+57
+fc
+00
 20
 40
-65
-9c
+02
+79
+68
+00
+cb
+da
+c0
+00
+81
+3b
+18
+00
+2a
+00
 68
 02
-46
-d3
-2f
-ef
-fe
-19
-24
+4b
+c6
+98
+00
+12
+00
+68
+08
+80
+17
+20
 40
-e5
-c2
+29
+1f
 20
 40
-44
-3f
-20
-40
-01
-51
+29
+24
 20
 40
 02
-22
-20
+35
 20
-65
-df
+57
+82
+71
 20
-40
-74
-b9
-d8
-c0
-8c
+60
+00
 00
-d8
-a0
-48
-76
-df
 20
-01
+40
+02
 71
 20
-40
-7f
+20
 01
-58
-0f
-02
-09
+1d
+68
+00
+cb
+a6
+1f
 e0
-a1
-80
+fe
+01
+60
 00
-58
-12
+cb
+a6
+68
 00
-09
-e0
-a1
-80
+cb
+ae
+c0
+ff
+81
+51
+68
+08
+cb
+a7
+18
+40
+84
+01
+60
+08
+cb
+a7
+68
 00
-58
-10
-02
-09
-e0
-a1
-80
+cb
+e3
+98
+46
+7e
 00
-58
+24
+3a
+01
+13
+68
 00
+cc
+d5
+c0
+01
+80
+b7
+68
 00
-09
+cc
+d2
+1f
 e0
-a1
-80
+fe
+01
+60
 00
-d8
+cc
+d2
 c0
-8d
-71
-df
-20
 01
-09
+00
+ac
 20
 40
-7f
-01
+00
+a3
 70
-48
-8d
+4b
+e3
+01
+20
+20
+01
+12
+68
+00
+cb
+a6
+c1
+ff
+80
 00
 70
-48
-85
-6d
-58
+4b
+a6
 00
-40
-1f
-60
+20
+20
 01
-49
-db
+57
 58
 00
-6d
-04
-60
-01
-4a
-44
-58
 00
-16
-b0
-60
-01
-4a
-4a
-58
 00
-48
-76
 60
 01
-45
-75
-20
-60
-00
-00
-20
-40
-33
-c4
-20
-22
-c3
-16
+4b
+a4
+70
+0a
+99
+3a
 20
-40
-02
-95
 20
+7d
+86
 20
-3d
-cb
-d8
 40
+01
+e5
+68
 00
-02
-da
+cb
+9c
 20
-0a
-aa
-da
-40
+7a
 00
-62
+00
+98
+00
+72
+00
+d8
+c0
+4b
+1a
+d8
+a0
+4b
+7c
 20
 20
-65
-d1
-d8
-40
-00
-02
-da
+7f
+01
+79
 20
-0a
-9a
-da
-40
 00
-62
-20
+26
 20
-33
-c8
-68
-02
-46
-d3
-c3
-0f
+40
 01
 64
-68
+70
+4b
+ae
+01
+20
+60
 00
-8a
-bd
-2f
-ec
 00
-03
-24
+70
+41
+de
+20
+70
+4b
+9d
+00
+70
+4b
+a8
+4e
+68
+02
+4b
+aa
+20
 20
+01
+f2
+68
+00
+cb
+a3
+c0
+00
+ff
+e7
+68
+00
+cb
+ae
+c0
+00
 81
-64
+70
+c0
+01
+01
+73
+c0
+01
+81
+76
+20
+20
+2a
+8c
+70
+4b
+ae
+11
+70
+11
+9e
+aa
+20
 20
-40
 01
-04
+78
+70
+4b
+ae
+12
+70
+11
+9e
+55
+20
 20
-40
 01
-1d
+78
+70
+4b
+ae
+13
+70
+11
+9e
+22
 68
 00
-c7
+cb
+9f
 1f
+e1
+7e
+07
 60
 00
-c7
-1e
+91
+9f
 68
 02
-46
-d3
-c4
-08
-80
+4b
+d5
+60
+02
+11
+a0
+70
+11
+a4
+00
+da
+20
+11
+9e
+d8
+40
 00
+07
 20
 40
 01
-6b
-20
-34
-05
-95
-20
-20
-05
-72
-df
+e0
 20
+40
 00
-02
-d8
-c0
-4b
-b9
+f3
+20
 20
-40
 7f
 e7
-58
-00
-ff
-ff
-e8
-c9
-00
-00
-98
-46
-7c
+68
 00
-24
-42
-ff
-e9
-c2
+cb
+ae
+c1
+7f
+80
 00
+c0
+08
+81
+89
+c0
+09
 01
-6f
+8b
+c0
+09
+81
+8d
 20
 60
 00
 00
-58
-00
+70
+4b
+ae
+02
+20
+20
 01
-87
-60
+23
+70
+4b
+ae
+03
+20
+20
 01
-4c
-c2
-58
-00
+23
+70
+4b
+ae
+ff
+70
+0a
+99
+39
+20
+40
+7d
+86
+68
+02
+4b
+7e
+20
+40
 01
-8b
-60
+f2
+20
+20
 01
-41
-ef
-58
-00
-03
-55
-60
+23
+79
+3f
+80
+26
+20
+40
 01
-41
-f9
-58
+d6
+68
 00
+cb
+ae
+c1
+ff
+80
+00
+20
+40
 01
-9d
-60
-01
-41
-f1
+a8
 58
 00
 00
-94
-60
-01
-41
-ed
-58
 00
-01
-c6
 60
 01
-41
-f5
-58
+4b
+cb
+20
+40
+2a
+fa
+20
+00
+07
+d0
+68
 00
+cb
+cb
+c0
+7f
+81
+57
+20
+40
 01
-c3
-60
+2e
+24
+2c
 01
-41
-f3
-58
+b1
+24
+37
+81
+b1
+79
+20
 00
-02
-36
-60
-01
-41
-eb
+26
 58
 00
-02
-44
+00
+00
 60
 01
-41
-fd
+4b
+cb
+70
+0a
+99
+3c
 20
-60
-00
-00
+40
+7d
+86
 20
 40
-44
-01
-68
 01
-46
-9f
-20
-7a
-00
-00
+29
 20
 20
 00
 76
-20
-40
-58
-92
-24
-7a
-00
-00
+70
+11
+9e
+ff
 68
 00
-c6
-c5
-1f
-e1
-7e
-03
-c1
-81
-80
-00
-68
+cb
+9f
+60
 00
-c7
-9c
-20
-5a
-01
-c0
+91
+9f
 68
 02
-46
-d3
-c2
-82
-c1
-79
-20
+4b
+d5
+60
+02
+11
+a0
+d8
 40
-3f
-97
-24
-74
-00
 00
+06
+da
+20
+11
+9e
 20
 40
 01
-98
+e0
 20
 20
-06
-e9
+02
+00
 68
 01
-46
-9f
-20
-7a
-00
-00
-70
-48
-06
+4b
+cb
+1f
+e0
+fe
 01
-70
-48
-07
-02
-20
 60
-00
-00
+01
+4b
+cb
 20
-77
-00
-00
-68
-00
-c1
-e2
+40
+02
+12
 20
-7a
-00
-00
 20
-40
-52
-71
-24
-7a
-00
-00
-68
-00
-c7
-9c
+01
+9a
+79
+3f
+80
+26
 20
-5a
+40
 01
-c0
-68
-02
-46
-d3
-c2
-82
-bf
-8a
-c2
-84
-bf
-8a
+d2
 20
 40
-3f
-97
-24
-74
-00
+01
+a8
+70
+4b
+cb
 00
 20
 40
-01
-98
+2a
+fa
+20
+00
+07
+d0
 68
 00
 cb
-03
+cb
 c0
-00
+7f
 81
-af
-68
-00
-cb
-0a
+57
 20
-7a
-00
-00
+40
+01
+2e
+24
+2c
+01
+c8
+24
+37
+81
+c8
 20
+40
+01
+59
 20
-3f
-81
+40
+02
+e9
 68
-00
+02
+4b
 c6
-9a
-60
+68
+0a
+4b
+aa
+98
+46
+7c
 00
-cb
-04
+20
+22
+81
+60
+20
+20
+01
+a1
 68
 00
-c6
-9b
+cb
+cb
+1f
 e0
-a0
-80
+fe
+01
+60
 00
+cb
+cb
 68
 00
-c6
-9d
+cc
+dc
+1f
 e0
-a0
-80
-00
-68
+fe
 01
-46
-9f
-e0
-a1
+1f
+e1
+7e
+01
+60
+00
+cc
+dc
+c0
 00
+01
+d8
+c0
 00
+81
 da
 20
-00
-07
-20
-40
-4d
-63
-68
-01
-42
-4e
-e0
-a1
+60
 00
 00
+70
+41
+de
+20
 58
 00
-02
-a1
+0f
+0f
+60
+01
+4b
+c6
 e0
 a1
 00
 00
-68
-02
-cb
-04
-e0
-a2
-80
-00
 20
-60
-00
-00
+40
+01
+f3
+20
+20
+02
+12
 20
 40
-58
-14
-70
-47
-9c
 01
+d2
 20
 20
 01
-19
+ba
 20
 40
-7e
-34
+01
+64
 20
-40
-3d
-6a
 20
+01
+ba
+79
+3f
+80
+26
 20
-3e
+40
+53
+ce
+d8
 e0
+00
+03
+20
+20
+43
+d2
+60
+08
+cb
+9e
+18
+42
+72
+00
+d8
+a0
+4b
+3a
 1a
-62
+22
+0c
+00
+20
+20
+7f
+01
+68
+00
+cb
+19
+1f
+e9
 7e
 00
-c0
-0a
+60
+00
+cb
+9c
+1f
+e0
+fe
 01
 d8
 c0
-0a
-81
-db
-c0
-14
-81
-e4
-c0
+4b
 19
-01
-e6
+98
 c0
-20
+8c
+00
+e8
+c1
+80
+00
+60
 01
-ed
-c0
+cb
+db
+68
+00
+cb
+19
+1f
+e3
+7e
+00
+1f
+e1
+7e
+03
+60
+00
+cb
+e1
+20
+60
+00
+00
+60
 02
-01
-f8
-c0
-09
-81
-f8
-c0
-13
-81
-ff
-c0
-0c
-b3
+4b
+c6
+da
+20
+00
+00
 df
+20
+00
+04
+d8
 c0
-10
-82
-01
+4b
+c6
+e8
 c0
+80
+00
+9a
+20
+a2
+00
+c2
 00
-82
-07
-c0
 01
-02
-0a
-c0
-15
-82
-0f
-c0
-1c
-82
-14
-c0
-1d
-02
-26
-c0
-1e
-02
-34
-20
-20
-41
-7d
-20
-40
+f6
+1a
+22
+7e
+00
+60
 01
-0e
-20
+4c
+4f
+68
+00
+cc
+4f
+68
+08
+cc
+50
+98
 40
-06
-e4
-20
-20
-41
-c3
+fe
+00
+60
+00
+cc
+51
 20
-40
-02
-40
-58
+60
 00
 00
-07
+68
+00
+cb
+9e
+1f
+e0
+fe
+02
 60
-01
-44
-96
+00
+cb
+a0
+68
+00
+cb
+9f
 60
-01
-44
-98
-70
-47
-c4
 00
-70
-47
-9c
+cb
+5a
+68
 00
-20
-40
-06
-e4
-20
-40
-58
-16
-20
-20
+cb
+9e
+1f
+e9
+fe
+00
+68
+08
+cb
+9d
+18
 41
-d9
-70
-0a
-99
-12
-20
-20
-7d
-8f
+04
+03
+18
+43
+84
+00
+98
+41
+fe
+00
 68
+08
+cb
+da
+98
+40
+fe
 00
-c7
-9f
-c0
+e0
+a0
+80
 00
-81
-e9
+68
+00
+cb
+9e
+98
+00
+72
+00
+d8
+c0
+4b
+3a
 20
 20
+7f
 01
-eb
+68
+08
+cb
+a9
 20
 40
-01
-e4
-70
-46
-c6
-14
-d8
-e0
-00
-01
+02
+16
+60
+08
+cb
+a9
 20
+60
+00
+00
 20
-41
-b9
-68
+40
+02
+1a
+18
+40
+84
 01
-45
-09
-c1
-00
+18
+41
+04
+03
+20
+60
 00
 00
 68
 00
-84
-41
+cb
+c6
 1f
-eb
+e1
 7e
-00
+03
 1f
-e6
-7c
-0c
-20
-61
-00
-00
+ef
+a2
+04
 58
 00
+4b
+af
+9a
+20
+fe
 00
-09
-60
-01
-44
-96
-60
-01
-44
 98
-20
 40
-01
-e4
-20
-20
-02
-e1
-68
-01
-46
-82
-c3
-86
+8c
 00
+e8
+c0
+80
 00
-c3
-83
+60
 00
+cb
+a8
+20
+60
 00
-c3
-85
-80
 00
-68
-02
-46
-d3
-c3
-82
-80
+78
+44
+fc
 00
-20
-20
-33
-a7
-20
-40
+78
 43
-8e
-20
-20
-33
-a7
-68
+fc
 00
-c8
-08
-c1
-01
+58
+55
+55
+55
+98
+00
+1e
 00
+68
 00
+cb
+a8
 1f
-e0
-fe
-01
-60
+ed
+84
 00
-c8
-08
-70
-41
-e3
-12
+79
 20
+04
+01
+18
+43
+1c
+00
 20
-34
-0e
-70
-48
-09
+60
+00
 00
 20
 40
-01
-0e
-20
-20
-42
-ca
-70
-4a
-ff
-00
-70
+53
+c4
+68
+02
 4b
-01
+c6
+98
 00
-70
-4b
-0a
+12
 00
 20
 40
-02
-40
-20
-20
-41
-d9
+29
+18
 68
-00
-c8
 08
-c1
-81
-00
+cb
+a8
+20
+40
+29
+1f
+58
 00
-70
-48
-08
+05
 00
-70
-41
-e3
-0e
 20
-20
-34
-0e
+40
+2a
+8f
 20
 40
-01
-0e
-70
-47
-8b
-01
-d8
-e0
-00
-03
+29
+24
 20
 40
-43
-d2
-58
+02
+23
+78
+57
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
 00
+78
+50
+7c
 00
+78
+28
+7c
 00
-60
+68
 01
-47
-07
-70
+4b
+a1
+98
+00
+36
+00
+37
+c1
+84
+00
+24
+2c
+02
+75
+78
 46
-a7
+fc
 00
-68
+78
+25
+fc
 00
-c6
-e0
-1f
-e6
-7c
-05
-20
-42
-c0
-39
+78
+23
+fc
+00
+78
 24
-42
-c0
-5d
-20
-40
+fc
 00
-cf
 20
 40
 02
-22
-20
-20
-65
-d1
-da
-20
-4b
-b9
-da
-40
-00
-5b
-d8
-40
-00
-04
-20
+6e
 60
 00
+cc
+52
+68
+08
+cc
+51
+98
+46
+7c
 00
+24
+22
+82
+71
 20
 40
 02
-40
-70
-4c
-d1
+6e
+60
 00
-20
-40
+cb
+18
+68
 00
-cf
+cb
+e4
+1f
+e6
+7c
+02
 20
-40
-05
-bb
-70
-41
-bd
+22
+82
+51
+68
 00
-20
+cb
+18
+68
+08
+cb
+9f
+a8
 40
-43
-16
-df
-20
+0e
 00
-03
-d8
-c0
-47
-22
+24
 20
-40
-01
-6d
+82
+71
 20
-34
+40
 02
-31
+6e
+e0
+a0
+80
+00
+1f
+e9
+7e
+00
+1f
+e1
+72
+1f
 20
+22
+82
+59
 20
+40
+02
+6e
+e0
+a0
+80
 00
-d9
-70
-47
-9d
-01
-70
-47
-9e
-28
-20
-60
+c2
 00
+02
+56
+18
+a2
+22
 00
 20
 40
-01
-0e
-20
-20
-3f
-8d
+02
+6e
+60
+00
+cc
+d9
+1a
+22
+0a
+00
+09
+80
+00
+18
 78
-34
+28
 7c
 00
-68
-12
-01
-38
-79
-34
-7e
-1a
+db
 60
-12
+06
+64
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e0
+a1
+80
+00
+78
+45
+fc
 00
-4c
-20
-40
-2c
-21
 20
-40
+23
 02
-40
+71
+78
+37
+fc
+00
+68
+00
+80
+17
+1f
+e0
+a2
+00
 20
 40
-74
-bd
+29
+81
+78
+46
+fc
+00
 20
 40
-44
-82
+29
+18
+68
+00
+cc
+d9
 20
 40
-3e
-9f
-20
-20
-3e
-bf
-68
 00
-ca
-fe
+27
 20
-7a
+60
 00
 00
-70
-4a
-fe
+09
+80
+00
+08
+19
+89
+7e
 00
 20
-20
-01
-1d
+60
+00
+00
+78
+4d
+fc
+00
+78
+45
+fc
+00
 20
 40
-02
-4e
+26
+4d
 20
-40
-02
-51
+60
+00
+00
 20
-40
-02
-79
 20
-40
 02
-5e
+71
 20
 40
-42
-31
+29
+18
+68
+08
+cb
+a8
 20
-40
-42
-34
 20
-40
-42
-37
+29
+33
 20
 40
-42
-3a
+53
+c4
+68
+02
+4b
+c6
+98
+00
+12
+00
 20
 40
 02
-56
-20
+23
 20
-02
-5b
-da
-60
-48
-09
-da
 40
-63
-7a
-20
+02
+76
+79
 20
-33
-6d
-da
-60
-48
-07
-da
-40
-02
-54
-20
-20
-33
-6d
-70
-48
-06
+2a
 00
-20
-60
+78
+2e
+fc
+00
+78
+30
+7c
 00
+78
+50
+fc
 00
-da
-60
+19
+31
+7e
+00
+1f
+ec
+fe
+00
+1f
+f1
+fe
+00
+08
+00
+86
+28
+78
+4e
+fc
+00
+78
+2d
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+68
+00
+cc
+51
+08
+00
+86
+08
+68
+00
+cb
+a0
+98
+00
+72
+00
+d8
+c0
 4b
-09
-da
-40
+5a
+e8
+c0
+80
+00
+08
+00
+86
+08
+c2
+00
 02
-59
-20
-20
-33
-6d
-70
-4b
-0a
-01
-20
-60
+8f
+78
+24
+7c
+00
+08
 00
+86
+18
+78
+44
+7c
+00
+37
+d3
+82
 00
-da
-60
-46
-c6
-da
-40
-3d
-60
 20
+00
+00
+64
+78
+4e
+fc
+00
+78
+4d
+fc
+00
 20
-33
-6d
-68
+60
+00
 00
-c6
-f5
-c2
-82
-43
-94
 20
 40
-40
-83
-c0
-03
-82
-6a
+7f
+e9
 68
+0a
+4b
+bf
+1c
+42
+7e
 00
-c6
-85
-60
+98
+46
+7c
 00
-c6
-da
-68
+24
+41
+2d
+18
+1f
+e2
+24
 00
-c6
-db
-c1
+68
+02
+4b
+bf
+68
+08
+cb
+c3
+98
+40
+84
 00
-80
+1a
+42
+7e
 00
-70
+98
 46
-db
-01
-d8
-e0
+7c
 00
-09
+24
+61
+00
+00
+79
+3f
+fe
+1c
+60
+02
+4b
+bf
+20
+20
+7f
+e7
 20
 40
-43
-d2
+29
+bb
 20
+7a
+00
+00
+68
+08
+cc
+58
+da
 20
-43
-ca
-70
-47
+0d
 9e
-28
 20
 40
 02
-6d
-20
-20
-43
 b0
-da
 60
-46
-da
-da
-40
-02
-70
-20
-20
-33
-6d
-68
-01
-46
-82
-2f
-ef
-fe
-0b
+08
+cc
+58
 20
+60
+00
+00
+1a
+22
+7e
+00
+98
 40
-c2
-d4
+8a
+00
 68
+00
+80
+18
+e0
+a0
+80
+00
+18
+40
+84
 01
-46
-82
-2f
-ef
-fe
+18
+41
+04
 07
 20
-40
-c3
-92
+60
+00
+00
 d8
-e0
+40
 00
-09
+00
+df
 20
+00
+08
+1a
+22
+0c
+00
+e8
+c0
+80
+00
+98
 40
-43
-ce
-20
-20
-43
-b8
-68
+84
 00
-c7
-9d
-20
-7a
+c2
+00
+02
+ba
+18
+49
+7e
 00
+1f
+e2
+04
 00
-68
+c6
+93
 00
-c7
-9e
+00
+1f
+e6
+fc
+0a
 20
-3a
-02
-80
+40
+7f
+86
+18
+07
+fe
+00
 1f
-e0
-ff
-ff
+f2
+7e
+00
+18
+07
+04
+00
+98
+41
+84
+00
+20
 60
 00
-c7
-9e
+00
 20
 60
 00
 00
-70
-47
-9d
+c6
+13
+00
 00
 20
-20
-34
-0a
+40
+03
+ab
 20
 40
-42
-4a
+02
+d2
 68
 00
-c6
-e0
 c0
-03
+40
+c3
+00
 02
-86
-20
-20
-3d
-81
+cf
 68
 00
-c7
+80
+a0
+24
 7a
+00
+00
+58
+00
+00
+00
+60
+04
+00
+a1
 20
-5a
-02
-8d
-68
+60
 00
-c7
-7a
-c0
 00
-bd
-8a
-c0
-01
-3d
-8c
-c0
-01
-bd
-8e
 20
+40
+02
+db
 20
-3d
-8c
+40
+02
+cf
+20
+40
+3e
+bf
+68
+12
+00
 70
-47
-7a
-01
+68
+1a
+00
+78
+98
+41
+84
+00
+18
+44
+04
+00
+60
+1a
+00
+7c
 20
 60
 00
 00
-70
-47
-9d
+68
+00
+ca
+fe
+20
+7a
 00
-70
-47
-9e
 00
-c5
-13
-02
-93
 20
 20
-42
-6d
+04
+cd
 20
 40
-05
-bb
-20
+34
+16
 20
-42
-6d
+35
+82
+e7
 20
 40
+03
+cb
 68
-a2
-68
-01
-42
-1d
-20
-3a
-02
-9a
-60
-01
-47
-c2
-20
-20
-02
-b9
-58
 00
-11
-22
+c1
+de
 60
-01
-47
-c2
-20
-20
-02
-99
+00
+cc
+55
 20
 40
-00
-cf
-70
-47
-9c
-00
+06
+80
 68
-01
-46
-82
-c2
+00
+c6
 85
-82
-ab
-68
-02
-46
-d3
-c3
-0c
-02
-ab
+60
+00
+c6
+da
 20
 40
-02
-bd
-68
-09
-47
-c2
-18
-40
-84
-01
-60
-09
-47
-c2
-60
-09
-44
-a1
+43
+ca
 20
 40
 02
+ec
+20
+20
+74
 b9
-18
-0a
-7e
+68
 00
+cc
+55
 60
 00
-c4
-a0
+c1
+de
 20
-40
-34
-18
-68
-01
-46
-87
 60
-01
-46
-ac
-70
-01
-6d
-06
-58
-00
 00
 00
-60
-01
-46
-b0
-60
-01
-46
-ae
-d8
-e0
-00
-07
+24
+55
+83
+3d
 20
 40
-43
-ce
+03
+1c
 20
-40
-43
-ca
-68
+75
+80
 00
-c0
-92
-2f
-ef
-fe
-01
 20
 40
-82
-c1
-20
+03
+94
 20
-42
-c4
-d8
 40
-00
+40
+83
+c0
 02
-da
+83
+0a
 20
-47
-c2
-da
-40
-00
-5f
 20
+03
+7a
 20
-65
-d1
-d8
 40
+02
+e9
+68
 00
+c2
+10
+c0
+19
+82
+f8
+c0
+1a
 02
-da
+fb
 20
-47
-c2
-da
-40
+60
 00
-5f
+00
+68
+03
+41
+d0
+20
+3a
+33
+eb
 20
 20
-65
-df
+42
+74
 70
 47
 9f
-00
+01
+68
+01
+46
+a8
+60
+01
+46
+ae
 20
 40
-00
-e9
+34
+18
+20
+40
+03
+03
 58
 00
 00
-05
+04
 e0
 c0
 80
@@ -2844,4349 +3088,4020 @@
 20
 7d
 f4
-58
+da
+20
+43
+70
+ea
+20
+80
+00
+20
+7a
 00
 00
+98
+c0
+a2
+00
+e8
+c0
+80
+00
+c1
+00
+80
 00
-60
-01
-46
-ac
-20
-40
-01
-19
 20
 20
-42
-cb
+03
+04
 68
+02
+46
+d3
+c4
+08
+80
+00
+c3
+81
+80
+00
+c6
+13
 00
-c5
-0f
-1f
-e0
-fe
-01
-60
 00
-c5
-0f
-c0
-06
-53
-95
 20
 40
-55
-aa
+44
+82
+d8
+e0
+00
+03
 20
 40
-56
-1e
+43
+ce
+58
+00
+00
+00
+60
+01
+46
+ae
+60
+00
+c6
+b4
+60
+01
+4b
+cb
 20
 40
-05
-0a
+42
+ca
 20
 20
-53
-8f
-68
-00
-80
-16
-1f
-e0
-fe
 01
 60
+68
+02
+46
+d3
+c3
+0a
+3d
+66
+68
 00
+c7
+7a
+c0
+7f
+bd
+66
+20
+20
+3d
 80
-16
-c1
-94
-00
-00
 70
-00
-16
-25
+42
+12
+76
 20
-60
-00
+20
+3d
+36
+20
+40
+03
+1c
+20
+40
+40
+c0
+68
 00
+c6
+e0
+c0
+02
+c0
+d5
 20
 40
-29
-bb
+40
+d9
+c0
+18
+03
+2c
+c0
+18
+83
+2e
 20
 40
+40
+d1
+20
 00
-26
+03
+e8
 20
 20
-54
-a3
+03
+22
+70
+4a
+fe
+01
 20
 40
-02
-e3
+64
+0f
+20
+40
+03
+1e
 20
 20
-55
-7d
+64
+11
+20
+40
+03
+33
+20
+20
+40
+e0
+20
+40
+03
+33
 68
 00
-c7
-c5
-60
-00
-c1
-72
+c6
+de
+c0
+38
+40
+e8
 70
-47
-c4
-00
+46
+e0
+01
 20
 60
 00
 00
-70
-47
-c4
-01
+58
+00
+80
+06
+20
+40
+64
+13
 20
-60
 00
+2e
+e0
+20
+20
+03
+17
+58
 00
-68
 00
-c3
-d6
+06
+20
+40
+64
+14
 1f
-e6
-7c
-0c
-24
-21
-02
 e1
-68
-00
-c3
-d8
-68
+fe
 08
-c7
-c5
-98
-46
-7c
+1f
+ed
+7e
 00
+1f
+e0
+fe
+06
 20
-21
-02
-dd
+20
+64
+13
+20
+40
+00
+96
 68
+10
+8a
 00
-c3
-d8
+79
+3f
+fe
+04
 60
+10
+8a
 00
-c1
-72
 20
+40
+3e
+6e
 20
-02
-df
-68
-00
-84
-56
-c2
-82
-83
-01
+40
+3e
+1e
 20
 40
-04
-fc
-68
+03
+53
+58
 00
-c7
-8e
-24
-3a
-02
-f7
-68
 00
-84
-3f
-c3
-02
-02
-fb
-68
 00
-82
-da
+60
+01
+41
+54
 20
-3a
-02
-fb
+40
+3e
+54
 20
+40
+58
+10
 20
-56
-64
-68
-00
-c7
-8e
-1f
-e0
-ff
-ff
-60
-00
-c7
-8e
+40
+58
+39
+20
+40
+58
+2c
 20
+40
+58
+18
 20
-56
-64
+40
+65
+9c
 68
-00
-c4
-c4
-c0
-82
-82
+02
+46
+d3
+2f
+ef
 fe
-70
-47
-8e
-03
+19
+24
+40
+e5
+c2
 20
 40
-58
-92
+44
+3f
 20
-5a
-06
-f1
+40
+03
+6e
+20
+40
+04
+6c
 20
 20
-56
-22
+65
+df
 20
 40
-03
-03
+74
+b9
+d8
+c0
+8c
+00
+d8
+a0
+48
+76
+df
 20
+01
+71
 20
-03
+40
+7f
+01
+58
 0f
-68
+02
+09
+e0
+a1
+80
 00
-c6
-c5
-1f
-e1
-7e
-03
-c1
-81
+58
+12
+00
+09
+e0
+a1
 80
 00
-68
+58
+10
+02
+09
+e0
+a1
+80
 00
-c7
-c1
-20
-7a
+58
 00
 00
-68
+09
+e0
+a1
+80
 00
-c3
-dd
+d8
+c0
+8d
+71
+df
 20
-7a
+01
+09
+20
+40
+7f
+01
+70
+48
+8d
 00
+70
+48
+85
+6d
+58
 00
-68
+40
+1f
+60
+01
+49
+db
+58
 00
-c3
-dc
-79
-20
-7e
+6d
 04
 60
+01
+4a
+44
+58
+00
+16
+b0
+60
+01
+4a
+4a
+58
 00
-c3
-dc
-20
-40
-56
-50
+48
+76
+60
+01
+45
+75
 20
 60
 00
 00
 20
+40
+33
+c4
 20
-05
-00
-68
-00
-c7
-9f
+22
+c3
+16
 20
-7a
-00
-00
-68
+40
+04
+e6
+20
+20
+3d
+cb
+d8
+40
 00
-c6
-c5
-1f
-e1
-7e
-03
-c1
-01
-80
-00
-70
-46
-c6
-0a
+02
+da
 20
-60
-00
+0a
+aa
+da
+40
 00
-e8
-c1
+62
+20
+20
+65
+d1
+d8
+40
 00
+02
+da
+20
+0a
+9a
+da
+40
 00
-c0
+62
+20
+20
+33
+c8
+68
 02
+46
+d3
+c3
+0f
 03
-1b
-c0
-03
+81
+68
+00
+8a
+bd
+2f
+ec
+00
 03
-38
-20
-20
-56
-98
+24
 20
-40
-7e
-a5
+83
+81
 20
 40
 03
-10
+1e
 20
 40
-7e
-9f
-e8
-c1
-80
-00
-60
-01
-84
-77
-c0
-08
 03
-2a
+37
+68
+00
+c7
 1f
-ec
-84
+60
 00
-18
+c7
+1e
+68
+00
+c6
+f5
+c3
+82
+80
+00
+c3
+83
+00
+00
+68
+02
 46
-7c
-24
+d3
+c4
+08
+80
+00
 20
-21
-58
-ad
-d8
 40
-47
-c6
-60
-09
-44
-bc
+03
+8b
 20
-40
-58
-ad
-58
-00
-8e
-7a
-60
+34
 01
-44
-bc
+b6
 20
-60
-00
-00
 20
-40
-59
-fa
+01
+93
+df
+20
+00
+02
+d8
+c0
+4b
+c6
 20
 40
+7f
+e7
 58
-79
-18
-c0
-8c
-07
-e8
-c0
-80
-00
-c1
-88
-80
 00
-18
-c0
-8c
-05
+ff
+ff
 e8
-c1
+c9
 00
 00
-d8
-40
-18
-12
 98
 46
 7c
 00
 24
-62
-80
+42
+ff
+e9
+c2
 00
-18
-c0
-8d
-fc
-58
+03
+8f
+20
+60
 00
 00
-2b
-e0
-c1
+58
 00
+03
+a7
+60
+01
+4c
+cf
+58
 00
-20
+03
+be
 60
+01
+41
+ef
+58
 00
+05
+a6
+60
+01
+41
+f9
+58
 00
-e8
-c0
-80
+03
+ea
+60
+01
+41
+f1
+58
 00
-c0
 02
-83
-3b
-20
-20
-5a
-f5
-20
-40
-5b
-5a
-68
-00
-84
-3f
-79
-3f
-fe
-05
+c8
 60
+01
+41
+ed
+58
 00
-84
-3f
-20
+04
+13
+60
+01
+41
+f5
+58
+00
+04
+10
+60
+01
+41
+f3
+58
+00
+04
+7d
+60
+01
+41
+eb
+58
+00
+04
+8b
+60
+01
+41
+fd
 20
-5c
-8e
-68
+60
+00
 00
-80
-16
-c0
-93
-d6
-f2
 20
 40
-03
+44
+01
+68
+01
 46
-d8
-e0
+9f
+20
+7a
 00
 00
-68
-01
-44
-82
 20
 20
-7f
-08
+00
+76
+d8
+c0
 18
+00
+d8
+a0
+48
 0a
-7e
+20
+40
+03
+b3
+d8
+c0
+19
 00
+20
+40
+03
+b3
 d8
+c0
+1a
+00
+20
 40
-01
-ff
-98
-41
-7e
+03
+b3
+d8
+c0
+1b
 00
-1f
-e0
-fe
-fa
+df
 20
+00
+1b
 20
-3c
-be
-78
-55
-fc
+20
+7f
+01
+d8
+c0
+48
+0a
+d8
+a0
+18
 00
 20
-37
+40
 03
-4e
-24
-36
+b3
 d8
-06
+a0
+19
+00
 20
 40
-2b
-cb
-68
-01
-40
-c1
-60
-01
-04
-4d
-68
+03
+b3
+d8
+a0
+1a
 00
-c6
-c5
-2f
-e0
-06
+20
+40
 03
-24
+b3
+d8
+a0
+1b
+00
 20
-ab
-de
 20
+03
+b3
 20
-57
-fb
-68
-00
-c7
-9f
+40
+58
+92
 24
 7a
 00
 00
 68
 00
-84
-78
+c6
+c5
 1f
-e6
+e1
 7e
-1a
-24
-62
+03
+c1
+81
 80
 00
-20
-20
-3d
-60
 68
-10
-80
-77
-1f
-e1
-7e
-fd
-60
-10
-80
-77
+00
+c7
+9c
+20
+5a
+04
+0d
 68
-18
-80
-73
-18
-41
-84
 02
-60
-18
-80
-73
+46
+d3
+c2
+82
+c1
+79
 20
 40
-63
-ee
-18
-41
-04
-fd
-20
+3f
+97
+24
+74
 00
 00
-0d
 20
 40
-63
-f2
+03
+e5
+20
+20
+03
+d0
+70
+47
+a0
+07
+70
+47
+a1
+04
+58
+00
+47
+a0
 60
+01
+42
 18
-80
-73
 20
-60
-00
-00
+20
+7e
+38
+da
+20
+46
+9a
+20
+40
+7e
+3d
+20
+54
+03
+d4
+20
+60
+00
+00
 68
 00
-80
-0e
+c7
+c1
 1f
 e0
 fe
 01
 60
 00
-80
-0e
-20
-40
-24
-35
-79
+c7
+c1
 20
+60
 00
-2c
+00
+da
+20
+46
+9a
 20
 40
-22
-f2
+7e
+54
 20
-2c
+34
 03
-72
-79
-3f
-80
-2c
+dc
+20
+60
+00
+00
 20
 40
+56
+52
+68
+00
+c7
+c1
+1f
+e6
+7c
+01
 24
-55
-24
-3a
-03
-6b
+41
+56
+50
+68
+00
+c7
+c1
 20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+c7
+c1
 20
 20
-fc
-79
 3f
-80
-2c
-20
-20
-21
-5f
+90
+68
+01
+46
+9f
 20
-40
-21
-c9
-24
-74
-00
+7a
 00
-78
-54
-7c
 00
 70
-00
-11
+48
+06
+01
+70
+48
+07
+02
 20
-79
-3f
-80
-0b
-79
-3f
-80
-2d
+60
+00
+00
 20
-40
-2a
-4f
+77
+00
+00
+68
+00
+c1
+e2
 20
-40
-22
-e6
-c5
-05
-83
-81
+7a
+00
+00
 20
 40
+52
+71
 24
-55
-24
-3a
-03
 7a
-c5
-16
-83
-89
-20
+00
+00
+68
+00
+c7
+9c
 20
-21
-ec
+5a
+04
+0d
+68
+02
+46
+d3
+c2
+82
+bf
+8a
+c2
+84
+bf
+8a
 20
 40
-2a
-4d
-d8
-20
+3f
+97
+24
+74
+00
 00
-10
 20
 40
-22
-dc
-79
-20
+03
+e5
+68
 00
-2d
-79
-3f
-80
-0b
-18
+cb
+03
+c0
 00
-08
-01
-70
+83
+fc
+68
 00
-11
-02
-20
+cb
+0a
 20
-03
 7a
-68
-02
-01
-65
-1f
-e0
-fe
-08
-60
-02
-01
-65
-20
-20
-21
-f8
-c5
-16
-26
-4d
-20
-20
-25
-8f
-68
 00
-80
-30
-2f
-ef
-fe
 00
 20
-40
-83
-93
 20
-20
-24
-8a
+3f
+81
 68
 00
-80
-47
-2f
-ef
-fe
-03
-20
-40
-85
-00
-24
-40
-84
-fc
-20
-20
-05
-0a
-20
-40
-24
-f0
-24
-2c
-28
-f9
-20
-40
-29
-bb
-20
-40
+c6
+9a
+60
 00
-26
-20
-20
-25
-18
-20
-40
-2a
-fa
+cb
+04
 68
-01
-c1
-6f
-20
-7a
 00
+c6
+9b
+e0
+a0
+80
 00
 68
 00
-c0
-91
-20
-7a
-00
+c6
+9d
+e0
+a0
+80
 00
 68
+01
+46
+9f
+e0
+a1
 00
-c6
-5a
-20
-3a
-03
-a6
-68
 00
-c5
-b1
+da
 20
-7a
-00
 00
+07
+20
+40
+4d
+63
 68
+01
+42
+4e
+e0
+a1
 00
-c4
-c0
-24
-7a
 00
+58
 00
-20
-40
-2c
-3a
-24
-7a
+02
+a1
+e0
+a1
 00
 00
 68
-00
-c0
-40
-2f
+02
+cb
+04
 e0
-0e
-03
-24
-20
-ab
-9d
-68
-01
-40
-42
-d8
-40
-ff
-ff
-98
-46
-7c
-00
-20
-62
+a2
 80
 00
 20
-20
-2b
-7d
-20
-20
-33
-e4
-70
-48
-08
+60
+00
 00
-70
-41
-e3
-0e
 20
 40
-41
-e7
-68
+58
+14
+70
+47
+9c
 01
-42
-08
-c2
-83
-c1
-f5
-c2
-80
-33
-a9
-c2
-80
-83
-bd
-c2
-81
-03
-c0
-c2
-81
-83
-c0
-20
-20
-42
-b0
-c2
-82
-83
-c0
-c2
-81
-83
-c0
-20
 20
-42
-b0
-68
-01
-46
-82
-c2
-86
-42
-b0
 20
-40
+03
 33
-a9
 20
 40
+7e
+34
+20
 40
-83
-c0
-03
-82
-31
+3d
+6a
 20
 20
-33
-a7
-68
-01
-02
-64
-1f
-e2
-0c
+3e
+e0
+1a
+62
+7e
 00
-e8
 c0
-80
-00
-60
-00
-cb
-02
-1f
-e1
+0a
 04
-0f
-1f
-f1
-fe
-00
+25
+c0
+0a
+84
+28
+c0
+14
+84
+31
+c0
+19
+04
+33
 c0
-03
-83
-ce
-20
-20
-4d
-39
 20
-40
-4d
-53
-70
-4b
-03
-00
-68
-00
-cb
+04
+3a
+c0
 02
-2f
-ef
-fe
-00
-20
-60
-80
+04
+45
+c0
+09
+84
+45
+c0
+13
+84
+4c
+c0
+0c
+b3
+df
+c0
+10
+84
+4e
+c0
 00
-70
-4b
-03
+84
+54
+c0
 01
-20
-60
-00
-00
-68
-00
-85
-52
-60
-00
+04
+57
+c0
+15
 84
-c9
+5c
 c0
-09
-83
-d9
+1c
+84
+61
+c0
+1d
+04
+70
+c0
+1e
+04
+7b
 20
 20
-5d
-b4
+41
+7d
 20
 40
-5d
-cf
-70
-4a
-ff
-01
-68
-00
+03
+28
+20
+40
+03
 cb
-01
 20
-7a
+20
+41
+c3
+20
+40
+04
+87
+58
 00
 00
-70
-4b
+07
+60
 01
-02
-20
+44
+96
 60
+01
+44
+98
+70
+47
+c4
 00
-00
-78
-54
-7c
+70
+47
+9c
 00
 20
 40
-62
-c1
-68
-00
-80
-48
-20
-7a
-00
-00
-c2
-83
-83
-e8
-c0
-01
-83
-f8
-c0
-18
-83
-f4
-c0
-0b
-83
-f6
-20
-20
-60
-10
-c0
-42
 03
-eb
-c0
-41
-83
-ee
-20
-20
-60
-3f
+cb
 20
 40
-03
-f1
-68
-00
-80
-48
+58
+16
 20
 20
-60
+41
+d9
+70
+0a
 99
-20
-40
-03
-f1
-68
-00
-80
-48
+12
 20
 20
-61
-0d
+7d
+8f
 68
 00
-c6
-5a
+c7
+9f
+c0
+00
+84
+36
 20
-3a
-61
-2b
 20
+04
+38
 20
-61
-24
+40
+04
+31
 70
-4b
-01
+46
+c6
+14
+d8
+e0
+00
 01
 20
 20
-61
-c3
-70
-4b
+41
+b9
+68
+01
+45
 09
-04
-20
-20
-61
-a4
-18
+c1
+00
+00
 00
-7e
-02
-20
-40
-62
-98
 68
 00
-80
-49
-e0
-a0
-80
-00
-60
-00
-ca
-fc
-20
-40
-62
-a7
-68
-00
-ca
-fc
-c0
-17
-04
-01
-20
-20
-60
-51
-68
+84
+41
+1f
+eb
+7e
 00
-ca
-ff
+1f
+e6
+7c
+0c
 20
-7a
-00
-00
-70
-4a
-ff
-00
-68
-00
-cb
-01
-c1
-81
+61
 00
 00
-70
-4b
+58
 00
-01
-1c
-42
-7e
 00
+09
 60
-02
-04
-e9
-20
+01
+44
+96
 60
-00
-00
+01
+44
+98
 20
 40
-62
-bc
-24
-7a
-00
-00
-68
-00
-80
-55
-20
-7a
-00
-00
-c0
-02
 04
-2c
-c0
-08
-04
-11
-20
+31
 20
-63
 20
+05
+32
 68
-00
-c5
-5b
-c1
+01
+46
+82
+c3
+86
 00
 00
+c3
+83
 00
-c0
 00
-84
-15
-20
-20
-63
-5f
-20
-74
+c3
+85
 80
 00
 68
-00
-81
-6d
-c2
+02
+46
+d3
+c3
+82
 80
-04
-19
+00
 20
 20
-63
-99
-68
-00
-cb
-01
-c0
-00
-e3
-9d
-68
-00
-c1
-bd
+33
+a7
 20
-3a
-63
-a9
+40
+43
+8e
+20
+20
+33
+a7
 68
 00
-84
-d1
-c4
-01
-80
-00
-c4
+c8
+08
+c1
 01
 00
 00
-68
-00
-cb
+1f
+e0
+fe
+01
+60
 00
+c8
+08
+70
+41
+e3
+12
 20
-7a
+20
+34
+0e
+70
+48
+09
 00
+20
+40
+03
+28
+20
+20
+42
+ca
+70
+4a
+ff
 00
 70
 4b
+01
 00
+70
+4b
+0a
 00
-68
-02
-04
-e9
-d8
-40
-00
-14
-98
+20
 40
-84
-00
-1c
-42
-7e
-00
-98
-46
-7c
-00
-24
-21
 04
-2a
+87
 20
 20
-63
-49
-70
-4b
+41
+d9
+68
 00
-01
-20
-60
+c8
+08
+c1
+81
 00
 00
 70
 48
-09
-14
+08
+00
+70
+41
+e3
+0e
 20
 20
-63
-6f
+34
+0e
 20
 40
-68
-a8
-68
-02
-40
-a0
-60
-02
-4b
-c8
-20
-60
-00
-00
+03
+28
 70
-4c
-c7
+47
+8b
 01
-70
-4c
-c9
-00
-68
-00
-cb
-92
-1f
-e1
-7e
-07
-60
+d8
+e0
 00
-cb
-92
+03
 20
-60
-00
+40
+43
+d2
+58
 00
-68
 00
-cb
-92
-79
-20
-7e
-04
-60
 00
-cb
-92
 60
+01
+47
+07
+70
+46
+a7
 00
-cb
-4d
 20
-60
-00
-00
-68
-00
-cb
-92
-79
-3f
-fe
+40
+40
+5d
+20
+40
+02
+e9
+20
+40
 04
-60
-00
-cb
-92
+6c
 20
-60
-00
-00
 20
+65
+d1
+da
+20
+4b
+c6
+da
 40
-05
-00
-68
 00
-cc
-c8
-c0
+5b
+d8
+40
 00
-84
-46
-c0
-01
 04
-4a
 20
 60
 00
 00
-70
-4c
-c9
-02
-70
-4c
-c5
-00
-70
-4c
-c7
-00
-20
 20
+40
 04
-34
+87
 70
 4c
-c6
+de
 00
 20
+40
+02
+e9
 20
-04
-47
-68
-01
-4b
-97
-1f
-e0
-fe
-01
-60
+40
 01
-4b
-97
-c2
-85
-04
-ee
-68
-00
-cc
-c6
-c0
-00
-84
-55
+dc
 70
-4c
-c6
-01
-68
-00
-cc
-c6
-c0
-80
-84
-34
-68
-00
-cc
-c4
-1f
-e0
-fe
-01
-60
+41
+bd
 00
-cc
-c4
-c0
-02
-04
-5c
 20
 40
-06
-5c
-70
-4b
-d6
-02
-20
-20
-04
-ab
+43
+16
+df
 20
-40
-05
-00
-70
-4c
-c4
 00
+03
+d8
+c0
+47
+22
 20
+40
+03
+8d
 20
-04
 34
-70
-4c
+04
 c9
+20
+20
 02
-70
-4c
-c7
-01
-70
-4c
-c6
-00
+f3
+20
+40
+03
+28
 20
 20
-04
+3f
+8d
+78
 34
-68
+7c
 00
-cc
-c8
-c0
+68
+12
 01
-84
+38
+79
+34
+7e
+1a
 60
-68
-00
-cb
-92
-2f
-ec
+12
 00
-04
+4c
 20
+40
+2c
+21
 20
-84
-32
-68
-00
-cc
-c8
-c0
-00
-84
-5f
-c0
-01
+40
 04
-60
+87
 20
-60
+40
+74
+bd
+20
+40
+44
+82
+20
+40
+3e
+9f
+20
+20
+3e
+bf
+68
 00
+ca
+fe
+20
+7a
 00
-68
 00
-cb
-a1
-c1
-ff
-80
+70
+4a
+fe
 00
 20
+20
+03
+37
+20
 40
 04
-71
-24
-56
+a0
+20
+40
 04
-79
+c0
 20
-60
-00
-00
-78
-56
-7c
-00
-68
-00
-cc
-c7
-c1
-80
-80
-00
-68
-00
-cc
-c9
-c1
-80
-00
-00
-70
-4c
-c8
-01
-70
-4b
-d6
+40
 04
+a5
 20
+40
+42
+34
 20
-7f
-eb
-68
-00
-cc
-c9
+40
+42
+37
 20
-3a
+40
 04
-81
-1f
-e0
-ff
-ff
-60
-00
-cc
-c9
-70
-4c
-c8
-02
+9d
 20
 40
-06
-5c
-70
-4b
-d6
 04
+95
 20
-60
-00
-00
-70
-4c
-c8
-03
-68
-00
-cc
-c6
-24
-3a
-04
-53
+40
+42
+31
 20
 40
-06
-5c
-70
-4b
-d6
-02
+04
+98
 20
+20
+42
+3a
+da
 60
-00
-00
-68
-00
-cb
-a1
-c0
-ff
-85
-47
+48
+09
+da
+40
+63
+7a
 20
+20
+33
+6d
+da
+60
+4b
+09
+da
 40
 04
-8d
+9b
 20
-40
-06
-4a
+20
+33
+6d
 70
 4b
-96
+0a
 01
 20
 60
 00
 00
-68
-01
-4c
-c2
-20
+da
+60
+46
+c6
+da
 40
-7f
-9c
+3d
+60
 20
-34
-04
-93
-68
-03
-cb
-2e
 20
-7a
-00
-00
+33
+6d
+da
+60
+48
+07
+da
+40
+04
+a3
 20
 20
-7f
-e7
+33
+6d
 70
-4b
-bd
+48
+06
 00
-1a
 20
-fe
-01
 60
 00
-cb
-91
-20
-40
-04
-34
-60
 00
-cb
-2d
-e8
-a8
-80
+68
 00
-ea
+c6
+f5
+c2
+82
+43
+94
+20
 40
-80
-00
-98
-41
-fe
+40
+83
+c0
+03
+84
+b1
+68
 00
-e0
-a0
-80
+c6
+85
+60
 00
-1a
-40
-a4
-01
-df
-20
+c6
+da
+68
 00
-02
-ea
-41
+c6
+db
+c1
 00
+80
 00
+70
+46
+db
+01
+d8
 e0
-a1
 00
-00
-1a
+09
+20
 40
-a4
-02
-c2
-00
-04
+43
+d2
+20
+20
+43
+ca
+70
+47
 9e
-d8
-a0
-4b
-33
-df
+28
 20
-00
-02
-ea
-40
-80
-00
-e8
-a8
-80
-00
-98
-40
-fe
-00
-e0
-a0
-80
-00
-1a
 40
-a4
-01
-c2
-00
 04
-a4
+b4
 20
-60
-00
-00
-70
-4b
-9a
-00
-d9
-60
-0d
-00
-34
-73
-02
-00
 20
+43
+b0
+da
+60
+46
+da
+da
 40
 04
-c7
+b7
+20
+20
+33
+6d
 68
-00
-cb
-cd
-c1
-00
-80
-00
-24
-2c
-04
-d6
-24
-37
-84
-d6
+01
+46
+82
+2f
+ef
+fe
+0b
 20
 40
-04
 c2
+d4
+68
+01
+46
+82
+2f
+ef
+fe
+07
 20
 40
-04
-f2
+c3
+92
+d8
+e0
+00
+09
 20
 40
-04
-fc
+43
+ce
+20
+20
+43
+b8
 68
 00
-cb
-90
-1f
-e0
-fe
-01
-60
+c7
+9d
+20
+7a
+00
 00
-cb
-90
 68
 00
-cb
-a1
-c0
-ff
-84
-c5
+c7
+9e
 20
-40
+3a
 04
-63
-58
-00
-00
-00
-60
-01
-4b
-97
+c7
+1f
+e0
+ff
+ff
 60
 00
-cb
-99
+c7
+9e
+20
 60
 00
-cc
-c5
+00
 70
-4b
-96
+47
+9d
 00
 20
+20
+34
+0a
+70
+47
+9d
+01
+70
+47
+9e
+28
+20
 60
 00
 00
-df
 20
+40
+42
+4a
+68
 00
-04
-d8
-a0
-4b
-2d
-20
-20
-7e
 c6
-20
-40
+e0
+c0
+03
 04
-f9
+d0
 20
 20
-05
-62
-78
-57
-fc
+3d
+81
+68
 00
+c7
+7a
 20
-40
-06
-c3
+5a
+04
+d6
 68
 00
-cb
-cd
+c7
+7a
 c0
 00
-84
-d4
-18
+bd
+8a
+c0
+01
+bd
+8e
+20
+20
+3d
+8c
+70
+47
+7a
+01
+20
+60
 00
-2a
 00
-68
-02
-4b
-b9
-98
+78
+54
+7c
 00
-12
+58
 00
-68
-08
-80
-17
+00
+00
+60
+03
+46
+9b
 20
 40
-29
-1f
+3f
+b5
 20
 40
-29
-24
+40
+79
 20
 40
-06
-7f
+40
+7e
 20
-57
-86
-bb
+40
+40
+99
+24
+74
+00
+00
 20
-60
+20
+3f
+a0
+70
+47
+9d
 00
+70
+47
+9e
 00
+28
+0f
+fe
+26
 20
 40
-06
-bb
+81
+dc
 20
 20
-04
-b6
-68
-00
-cb
-99
-1f
-e0
-fe
-01
-60
-00
-cb
-99
-68
-00
-cb
-a1
-c0
-ff
-84
-ea
-68
-08
-cb
-9a
-18
+42
+6d
+20
 40
-84
-01
-60
-08
-cb
-9a
-68
-00
-cb
-d6
-98
-46
-7e
-00
-24
-3a
-04
-ac
 68
-00
-cc
-c8
-c0
-01
-84
-4c
+a2
 68
-00
-cc
-c5
-1f
-e0
-fe
 01
-60
-00
-cc
-c5
-c0
-01
-04
-41
+42
+1d
 20
-40
+3a
 04
-38
-70
-4b
-d6
+eb
+60
 01
+47
+c2
 20
 20
 04
-ab
-68
-00
-cb
-99
-c1
-ff
-80
-00
-70
-4b
-99
-00
-20
-20
-04
-f0
+ee
 58
 00
-00
-00
+11
+22
 60
 01
-4b
-97
-70
-0a
-99
-3a
-20
+47
+c2
 20
-7d
-86
 20
+04
+ea
+d8
 40
-05
-c4
-68
 00
-cb
-8f
+02
+da
 20
-7a
-00
-00
-98
-00
-72
+47
+c2
+da
+40
 00
-d8
-c0
-4b
-0d
-d8
-a0
-4b
-6f
+5f
 20
 20
-7f
-01
-70
-4c
-cd
-01
-70
-4c
-ca
+65
+d1
+d8
+40
 00
+02
+da
 20
-60
-00
+47
+c2
+da
+40
 00
-68
-00
-cc
-ca
-1f
-e0
-fe
-01
-60
-00
-cc
-ca
+5f
 20
-60
-00
+20
+65
+df
+20
+40
+02
+e9
+70
+47
+9c
 00
 68
-00
-cc
-ca
-1f
-e6
-7c
+01
+46
+82
+c2
+85
+85
+04
+68
 02
-24
-41
+46
+d3
+c3
+0c
 05
-08
+04
+20
+40
+04
+f2
 68
+09
+47
+c2
+18
+40
+84
+01
+60
+09
+47
+c2
+60
+09
+44
+a1
+20
+40
+04
+ee
+18
+0a
+7e
 00
-cc
-ca
-c1
-00
-00
-00
-1f
-e0
-ff
-ff
 60
 00
-cc
-ca
+c4
+a0
 20
+40
+34
+18
+68
+01
+46
+87
 60
+01
+46
+ac
+70
+01
+6d
+06
+58
 00
 00
-70
-4c
-ca
-03
-20
-60
 00
+60
+01
+46
+b0
+60
+01
+46
+ae
+d8
+e0
 00
+07
+20
+40
+43
+ce
+20
+40
+43
+ca
 68
+00
+c0
+92
+2f
+ef
+fe
 01
-46
-82
-c3
+20
+40
 85
-80
+12
+20
+20
+42
+c4
+70
+47
+9f
 00
-c3
-83
-80
+20
+40
+03
+03
+58
 00
-c3
-83
 00
+05
+e0
+c0
+80
 00
-da
 20
-4c
-53
 20
-40
-06
-2b
+7d
+f4
+58
+00
+00
+00
 60
-08
-cc
+01
+46
+ac
+20
+40
+03
+33
+20
+20
+42
 cb
-28
+68
+00
+c5
 0f
+1f
+e0
 fe
-26
+01
+60
+00
+c5
+0f
+c0
+06
+53
+95
 20
 40
-85
-1c
-24
+55
+aa
+20
 40
-85
+56
+1e
 20
-98
-46
-7c
-00
-24
-21
-05
-34
+40
+06
+91
+20
+20
+53
+8f
 68
 00
-cc
-ca
+80
+16
 1f
-e6
-7c
-02
-24
-21
-05
-24
-68
-00
-cc
-ca
-c0
-00
-05
-35
-20
+e0
+fe
+01
 60
 00
+80
+16
+c1
+94
 00
-58
 00
+70
 00
-82
+16
+25
 20
 60
 00
 00
-58
-00
-00
-77
 20
-60
+40
+29
+bb
+20
+40
 00
+27
+20
+20
+54
+a3
+20
+40
+05
+34
+20
+20
+55
+7d
+68
 00
-58
+c7
+c5
+60
 00
+c1
+72
+70
+47
+c4
 00
-80
 20
 60
 00
 00
-58
-00
-00
-75
+70
+47
+c4
+01
 20
 60
 00
 00
 68
 00
-cc
-ca
-c1
-90
-00
-00
-70
-4c
-ca
+c3
+d6
+1f
+e6
+7c
+0c
+24
+21
+05
+32
+68
 00
+c3
+d8
 68
 08
-cc
-cb
-28
-0f
-fe
-26
-20
-40
-85
-1e
-24
-40
-85
-22
+c7
+c5
 98
 46
 7c
 00
-24
-61
-00
-00
+20
+21
+05
+2e
 68
 00
-cc
-cd
-c0
-00
-05
-3c
-1f
-e0
-ff
-ff
+c3
+d8
 60
 00
-cc
-cd
-c0
-00
+c1
+72
+20
+20
 05
-3c
-70
-41
-de
+30
+68
 00
+84
+56
+c2
+82
+85
+52
 20
-60
+40
+06
+83
+68
 00
+c7
+8e
+24
+3a
+05
+48
+68
 00
-70
+84
+3f
+c3
+02
+05
 4c
-ca
-00
 68
 00
-cc
-cd
-c0
-01
-05
+82
+da
+20
 3a
+05
+4c
+20
+20
+56
+64
+68
+00
+c7
+8e
 1f
 e0
-fe
-01
+ff
+ff
 60
 00
-cc
-cd
-c0
+c7
+8e
+20
+20
+56
+64
+68
 00
+c4
+c4
+c0
+82
 85
-32
+4f
 70
-41
-de
-02
+47
+8e
+03
 20
-60
-00
-00
-70
-41
-de
-04
+40
+58
+92
 20
-60
-00
-00
-79
+5a
+03
+d8
 20
-00
-26
+20
+56
+22
 20
 40
 05
-42
-70
-4b
-a1
-01
+54
 20
+20
+05
 60
+68
+00
+c6
+c5
+1f
+e1
+7e
+03
+c1
+81
+80
 00
+68
 00
-70
-41
-de
+c7
+c1
 20
-70
-4b
-90
+7a
+00
 00
-70
-4b
-9b
-4e
 68
-02
-4b
-9d
-20
+00
+c3
+dd
 20
-06
-3c
-68
+7a
 00
-cb
-96
-c0
 00
-ff
-e7
 68
 00
-cb
-a1
-c0
-00
-85
-4e
-c0
-01
-05
-51
-c0
-01
-85
-54
+c3
+dc
+79
 20
+7e
+04
+60
+00
+c3
+dc
 20
-2a
-8c
-70
-4b
-a1
-11
-70
-11
-9e
-aa
+40
+56
+50
 20
+60
+00
+00
 20
-05
-56
-70
-4b
-a1
-12
-70
-11
-9e
-55
 20
+06
+87
+68
+00
+c7
+9f
 20
-05
-56
-70
-4b
-a1
-13
-70
-11
-9e
-22
+7a
+00
+00
 68
 00
-cb
-92
+c6
+c5
 1f
 e1
 7e
-07
-60
+03
+c1
+01
+80
 00
-91
-9f
-68
-02
-4b
-c8
-60
-02
-11
-a0
 70
-11
-a4
-00
-da
+46
+c6
+0a
 20
-11
-9e
-d8
-40
+60
 00
-07
-20
-40
+00
+e8
+c1
+00
+00
+c0
+02
 05
-bf
+6c
+c0
+03
+05
+89
 20
-40
-06
-4a
+20
+56
+98
 20
 40
-04
-8b
+7e
+a5
 20
+40
+05
+61
 20
-7f
-e7
-68
-00
-cb
-a1
+40
+7e
+9f
+e8
 c1
-7f
 80
 00
+60
+01
+84
+77
 c0
 08
-85
-68
-c0
-09
 05
-6a
-c0
-09
-85
-6c
-20
-60
-00
+7b
+1f
+ec
+84
 00
-70
-4b
-a1
-02
-20
+18
+46
+7c
+24
 20
-04
+21
+58
+ad
+d8
+40
+47
+c6
+60
+09
+44
 bc
-70
-4b
-a1
-03
-20
 20
-04
+40
+58
+ad
+58
+00
+8e
+7a
+60
+01
+44
 bc
-70
-4b
-a1
-ff
-70
-0a
-99
-39
 20
-40
-7d
-86
-68
-02
-4b
-71
+60
+00
+00
 20
 40
-06
-3c
-20
+59
+fa
 20
-04
-bc
+40
+58
 79
-3f
+18
+c0
+8c
+07
+e8
+c0
 80
-26
-20
-40
-05
-b5
-68
 00
-cb
-a1
 c1
-ff
+88
 80
 00
-20
-40
+18
+c0
+8c
 05
-87
-58
-00
+e8
+c1
 00
 00
-60
-01
-4b
-be
-20
+d8
 40
-2a
-fa
-20
-00
-07
-d0
-68
+18
+12
+98
+46
+7c
 00
-cb
-be
-c0
-7f
-84
-f0
-20
-40
-04
-c7
-24
-2c
-05
-90
 24
-37
-85
-90
-79
-20
+62
+80
 00
-26
+18
+c0
+8d
+fc
 58
 00
 00
+2b
+e0
+c1
+00
 00
-60
-01
-4b
-be
-70
-0a
-99
-3c
-20
-40
-7d
-86
-20
-40
-04
-c2
-20
 20
+60
 00
-76
-70
-11
-9e
-ff
-68
 00
-cb
-92
-60
+e8
+c0
+80
 00
-91
-9f
-68
-02
-4b
-c8
-60
+c0
 02
-11
-a0
-d8
-40
-00
-06
-da
-20
-11
-9e
+85
+8c
 20
-40
-05
-bf
 20
+5a
+f5
 20
-06
-4a
+40
+5b
+5a
 68
-01
-4b
-be
-1f
-e0
+00
+84
+3f
+79
+3f
 fe
-01
+05
 60
-01
-4b
-be
-20
-40
-06
-5c
+00
+84
+3f
 20
 20
-05
-79
-79
-3f
+5c
+8e
+68
+00
 80
-26
-20
-40
-05
-b1
+16
+c0
+93
+d6
+f2
 20
 40
 05
-87
-70
-4b
-be
+97
+d8
+e0
 00
+00
+68
+01
+44
+82
 20
-40
-2a
-fa
 20
+7f
+08
+18
+0a
+7e
 00
-07
-d0
-68
+d8
+40
+01
+ff
+98
+41
+7e
 00
-cb
+1f
+e0
+fe
+fa
+20
+20
+3c
 be
-c0
-7f
-84
-f0
+78
+55
+fc
+00
 20
-40
-04
-c7
-24
-2c
+37
 05
-a7
+9f
 24
-37
-85
-a7
-20
-40
-04
-f2
+36
+d8
+06
 20
 40
-00
-cf
+2b
+cb
 68
-02
-4b
-b9
+01
+40
+c1
+60
+01
+04
+4d
 68
-0a
-4b
-9d
-98
-46
-7c
 00
+c6
+c5
+2f
+e0
+06
+03
+24
 20
-22
-85
-3e
+ab
+de
 20
 20
-05
-80
+57
+fb
 68
 00
-cb
-be
-1f
-e0
-fe
-01
-60
+c7
+9f
+24
+7a
+00
 00
-cb
-be
 68
 00
-cc
-cf
-1f
-e0
-fe
-01
+84
+78
 1f
-e1
+e6
 7e
-01
-60
-00
-cc
-cf
-c0
-00
-05
-b7
-c0
-00
-85
-b9
-20
-60
-00
-00
-70
-41
-de
-20
-58
-00
-0f
-0f
-60
-01
-4b
-b9
-e0
-a1
-00
-00
-20
-40
-06
-3d
-20
-20
-06
-5c
-20
-40
-05
-b1
-20
-20
-05
-99
-20
-40
-05
-42
-20
-20
-05
-99
-79
-3f
+1a
+24
+62
 80
-26
-20
-40
-53
-ce
-d8
-e0
 00
-03
 20
 20
-43
-d2
+3d
 60
-08
-cb
-91
-18
-42
-72
-00
-d8
-a0
-4b
-2d
-1a
-22
-0c
-00
-20
-20
-7f
-01
 68
-00
-cb
-0c
-1f
-e9
-7e
-00
-60
-00
-cb
-8f
-1f
-e0
-fe
-01
-d8
-c0
-4b
-0c
-98
-c0
-8c
-00
-e8
-c1
+10
 80
-00
-60
-01
-cb
-ce
-68
-00
-cb
-0c
-1f
-e3
-7e
-00
+77
 1f
 e1
 7e
-03
-60
-00
-cb
-d4
-20
-60
-00
-00
+fd
 60
-08
+10
 80
-17
-18
-40
-a2
-00
-20
-40
-29
-81
-58
-00
-05
-00
-20
-40
-2a
-8f
-70
-89
-06
-01
-70
-89
-00
-3c
-70
-89
-01
-e0
-20
-00
-00
-0a
-70
-89
-02
-01
-70
-89
-02
-3d
-20
-00
-00
-0a
-70
-89
-03
-b7
-20
-00
-00
-0a
-70
-89
-02
-7d
+77
 68
-00
-c1
-de
-c0
-00
-05
-e6
-c0
-01
-05
-ee
-c0
+18
+80
+73
+18
+41
+84
 02
-05
-f6
-c0
-10
-06
-08
-20
-20
-05
-e6
-20
-40
-05
-fe
-70
-89
-4b
-ba
-70
-89
-55
-d0
-70
-89
-56
-e0
-70
-89
-57
-88
-70
-89
-58
-6c
-70
-89
-59
-10
-20
-20
-29
-4b
-20
-40
-06
-03
-70
-89
-4b
-ba
-70
-89
-55
-d0
-70
-89
-56
-e0
-70
-89
-57
-88
-70
-89
-58
-3c
-70
-89
-59
-10
-20
-20
-29
-53
+60
+18
+80
+73
 20
 40
-05
-fe
-70
-89
-4b
-ba
-70
-89
-55
-d0
-70
-89
-56
-c0
-70
-89
-57
-88
-70
-89
-58
-6c
-70
-89
-59
-10
-20
-20
-29
-5b
-70
-89
-4c
-5b
-70
-89
-4d
-96
-70
-89
-4e
-2c
-70
-89
-4f
-46
+63
+ee
+18
+41
+04
+fd
 20
-60
 00
 00
-70
-89
-4c
-fb
-70
-89
-4d
-ef
-70
-89
-4e
-ec
-70
-89
-4f
-5e
+0d
 20
-60
-00
-00
-70
-89
-4b
-ba
-70
-89
-56
-c2
-70
-89
-55
-d0
+40
+63
+f2
+60
+18
+80
+73
 20
 60
 00
 00
-18
+68
 00
-2a
-08
+80
+0e
+1f
+e0
+fe
+01
+60
+00
+80
+0e
 20
+40
+24
+35
+79
 20
-28
-fa
+00
+2c
+20
+40
+22
+f2
+20
+2c
+05
+c3
+79
+3f
+80
+2c
 20
 40
-7f
-e9
-68
-0a
-4b
-b2
-1c
-42
-7e
-00
-98
-46
-7c
-00
 24
-41
-2d
-18
-1f
-e2
+55
 24
-00
-68
-02
-4b
-b2
-68
-08
-cb
-b6
-98
+3a
+05
+bc
+20
+20
+20
+fc
+79
+3f
+80
+2c
+20
+20
+21
+5f
+20
 40
-84
+21
+c9
+24
+74
 00
-1a
-42
-7e
 00
-98
-46
+78
+54
 7c
 00
-24
-61
-00
+70
 00
+11
+20
 79
 3f
-fe
-1c
-60
-02
-4b
-b2
+80
+0b
+79
+3f
+80
+2d
 20
+40
+2a
+4f
 20
-7f
-e7
+40
+22
+e6
+c5
+05
+85
+d2
 20
 40
-29
-bb
+24
+55
+24
+3a
+05
+cb
+c5
+16
+85
+da
+20
+20
+21
+ec
+20
+40
+2a
+4d
+d8
 20
-7a
 00
+10
+20
+40
+22
+dc
+79
+20
+00
+2d
+79
+3f
+80
+0b
+18
 00
-68
 08
-cc
-4b
-da
+01
+70
+00
+11
+02
 20
-0d
-9e
 20
-40
-06
-24
-60
+05
+cb
+68
+02
+01
+65
+1f
+e0
+fe
 08
-cc
-4b
-20
 60
+02
+01
+65
+20
+20
+21
+f8
+c5
+16
+26
+4d
+20
+20
+25
+8f
+68
 00
+80
+30
+2f
+ef
+fe
 00
-1a
-22
-7e
-00
-98
+20
 40
+85
+e4
+20
+20
+24
 8a
-00
 68
 00
 80
-18
-e0
-a0
-80
+47
+2f
+ef
+fe
+03
+20
+40
+86
+87
+24
+40
+86
+83
+20
+20
+06
+91
+20
+40
+24
+f0
+24
+2c
+28
+f9
+20
+40
+29
+bb
+20
+40
 00
+27
+20
+20
+25
 18
+c6
+13
+00
+00
+20
 40
-84
+2a
+fa
+68
 01
-18
-41
-04
-07
+c1
+6f
 20
-60
-00
+7a
 00
-d8
-40
 00
+68
 00
-df
+c0
+91
 20
+7a
 00
-08
-1a
-22
-0c
 00
-e8
-c0
-80
+68
 00
-98
-40
-84
+c6
+5a
+20
+3a
+05
+f8
+68
 00
-c2
+c5
+b1
+20
+7a
 00
-06
-2e
-18
-49
-7e
 00
-1f
-e2
-04
+68
 00
-c6
-93
+c4
+c0
+24
+7a
 00
 00
-1f
-e6
-fc
-0a
 20
 40
-7f
-86
-18
-07
-fe
+2c
+3a
+24
+7a
 00
-1f
-f2
-7e
 00
-18
-07
-04
+68
 00
+c0
+40
+2f
+e0
+0e
+03
+24
+20
+ab
+9d
+68
+01
+40
+42
+d8
+40
+ff
+ff
 98
-41
-84
+46
+7c
 00
 20
-60
-00
+62
+80
 00
 20
-60
-00
-00
-60
-02
-4b
-b9
-da
 20
-00
-00
-df
+2b
+7d
 20
-00
-04
-d8
-c0
-4b
-b9
-e8
-c0
-80
-00
-9a
 20
-a2
-00
-c2
+33
+e4
+70
+48
+08
 00
-06
+70
+41
+e3
+0e
+20
 40
-1a
-22
-7e
-00
-60
+41
+e7
+68
 01
-4c
 42
-68
-00
-cc
+08
+c2
+83
+c1
+f5
+c2
+80
+33
+a9
+c2
+80
+86
+0f
+c2
+81
+06
+12
+c2
+81
+86
+12
+20
+20
+42
+b0
+c2
+82
+86
+12
+c2
+81
+86
+12
+20
+20
 42
+b0
 68
-08
-cc
-43
-98
+01
+46
+82
+c2
+86
+42
+b0
+20
 40
-fe
-00
-60
-00
-cc
-44
+33
+a9
 20
-60
-00
-00
+40
+40
+83
+c0
+03
+84
+c9
+20
+20
+33
+a7
 68
-00
-cb
-91
-1f
-e0
-fe
+01
 02
-60
-00
-cb
-93
-68
+64
+1f
+e2
+0c
 00
-cb
-92
-60
+e8
+c0
+80
 00
-cb
-4d
-68
+60
 00
 cb
-91
+02
 1f
-e9
+e1
+04
+0f
+1f
+f1
 fe
 00
-68
-08
-cb
-90
-18
-41
-04
+c0
+03
+86
+20
+20
+20
+4d
+39
+20
+40
+4d
+53
+70
+4b
 03
-18
-43
-84
-00
-98
-41
-fe
 00
 68
-08
+00
 cb
-cd
-98
-40
+02
+2f
+ef
 fe
 00
-e0
-a0
+20
+60
 80
 00
-68
+70
+4b
+03
+01
+20
+60
 00
-cb
-91
-98
 00
-72
+68
 00
-d8
+85
+52
+60
+00
+84
+c9
 c0
-4b
-2d
+09
+86
+2b
 20
 20
-7f
+5d
+b4
+20
+40
+5d
+cf
+70
+4a
+ff
 01
 68
-08
+00
 cb
-9c
+01
 20
-40
-06
-60
-60
-08
-cb
-9c
+7a
+00
+00
+70
+4b
+01
+02
 20
 60
 00
 00
+78
+54
+7c
+00
 20
 40
-06
-64
-18
-40
-84
+62
+c1
+68
+00
+80
+48
+20
+7a
+00
+00
+c2
+83
+86
+3a
+c0
 01
+86
+4a
+c0
 18
+86
+46
+c0
+0b
+86
+48
+20
+20
+60
+10
+c0
+42
+06
+3d
+c0
 41
-04
-03
+86
+40
+20
 20
 60
+3f
+20
+40
+06
+43
+68
 00
-00
+80
+48
+20
+20
+60
+99
+20
+40
+06
+43
 68
 00
-cb
-b9
-1f
-e1
-7e
-03
-1f
-ef
-a2
-04
-58
+80
+48
+20
+20
+61
+0d
+68
 00
+c6
+5a
+20
+3a
+61
+2b
+20
+20
+61
+24
+70
 4b
-a2
-9a
+01
+01
 20
-fe
+20
+61
+c3
+70
+4b
+09
+04
+20
+20
+61
+a4
+18
 00
-98
+7e
+02
+20
 40
-8c
+62
+98
+68
 00
-e8
-c0
+80
+49
+e0
+a0
 80
 00
 60
 00
-cb
-9b
+ca
+fc
 20
-60
-00
+40
+62
+a7
+68
 00
-78
-44
+ca
 fc
+c0
+17
+06
+53
+20
+20
+60
+51
+68
 00
-78
-43
-fc
+ca
+ff
+20
+7a
 00
-58
-55
-55
-55
-98
 00
-1e
+70
+4a
+ff
 00
 68
 00
 cb
-9b
-1f
-ed
-84
+01
+c1
+81
+00
+00
+70
+4b
 00
-79
-20
-04
 01
-18
-43
 1c
+42
+7e
 00
+60
+02
+04
+e9
 20
 60
 00
 00
 20
 40
-53
-c4
-68
-02
-4b
-b9
-98
+62
+bc
+24
+7a
 00
-12
 00
-20
-40
-29
-18
 68
-08
-cb
-9b
+00
+80
+55
 20
-40
-29
-1f
-58
+7a
 00
-05
 00
+c0
+02
+06
+7e
+c0
+08
+06
+63
 20
-40
-2a
-8f
 20
-40
-29
-24
+63
 20
-40
-06
-6d
-78
-57
-fc
-00
-78
-26
-fc
-00
-78
-30
-fc
-00
-78
-50
-7c
-00
-78
-28
-7c
-00
 68
-01
-4b
-94
-98
-00
-36
 00
-37
+c5
+5b
 c1
-84
-00
-24
-2c
-06
-bf
-78
-46
-fc
 00
-78
-25
-fc
 00
-78
-23
-fc
 00
-78
-24
-fc
+c0
 00
+86
+67
 20
-40
-06
-b8
-60
+20
+63
+5f
+20
+74
+80
 00
-cc
-45
 68
-08
-cc
-44
-98
-46
-7c
 00
-24
-22
-86
-bb
-20
-40
+81
+6d
+c2
+80
 06
-b8
-60
+6b
+20
+20
+63
+99
+68
 00
 cb
-0b
+01
+c0
+00
+e3
+9d
 68
 00
-cb
-d7
-1f
-e6
-7c
-02
+c1
+bd
 20
-22
-86
-9b
+3a
+63
+a9
 68
 00
-cb
-0b
+84
+d1
+c4
+01
+80
+00
+c4
+01
+00
+00
 68
-08
+00
 cb
-92
-a8
-40
-0e
 00
-24
 20
-86
-bb
-20
-40
-06
-b8
-e0
-a0
-80
-00
-1f
-e9
-7e
+7a
 00
-1f
-e1
-72
-1f
-20
-22
-86
-a3
-20
-40
-06
-b8
-e0
-a0
-80
 00
-c2
+70
+4b
 00
-06
-a0
-18
-a2
-22
 00
-20
+68
+02
+04
+e9
+d8
 40
-06
-b8
-60
-00
-cc
-cc
-1a
-22
-0a
 00
-09
-80
+14
+98
+40
+84
 00
-18
-78
-28
+1c
+42
+7e
+00
+98
+46
 7c
 00
-db
-60
+24
+21
 06
-64
-1f
-ef
-7e
+7c
+20
+20
+63
+49
+70
+4b
 00
-1f
-f1
-7e
+01
+20
+60
 00
-e0
-a1
-80
 00
-78
-45
-fc
+70
+48
+09
+14
+20
+20
+63
+6f
+70
+4c
+da
+01
+70
+4c
+d7
 00
 20
-23
-06
-bb
-78
-37
-fc
+60
+00
 00
 68
 00
-80
-17
+cc
+d7
 1f
 e0
-a2
+fe
+01
+60
 00
+cc
+d7
 20
-40
-29
-81
-78
-46
-fc
+60
+00
 00
-20
-40
-29
-18
 68
 00
 cc
+d7
+1f
+e6
+7c
+02
+24
+41
+06
+8f
+68
+00
 cc
-20
-40
+d7
+c1
 00
-26
-20
-60
 00
 00
-09
-80
+1f
+e0
+ff
+ff
+60
 00
-08
-19
-89
-7e
+cc
+d7
+20
+60
 00
+00
+70
+4c
+d7
+03
 20
 60
 00
 00
-78
-4d
-fc
+68
+01
+46
+82
+c3
+85
+80
 00
-78
-45
-fc
+c3
+83
+80
 00
-20
-40
-26
-4d
-20
-60
+c3
+83
 00
 00
+da
 20
-20
-06
-bb
+4c
+60
 20
 40
-29
-18
-68
+02
+b7
+60
 08
-cb
+cc
+d8
+58
+00
+00
+82
+c5
+13
+06
 9b
-20
-20
-29
-33
-20
-40
-53
-c4
-68
-02
-4b
-b9
-98
+58
 00
-12
 00
-20
-40
+80
+98
+46
+7c
+00
+24
+21
 06
-6d
-20
-40
+b3
+68
+00
+cc
+d7
+1f
+e6
+7c
+02
+24
+21
 06
+a3
+68
+00
+cc
+d7
 c0
-79
-20
-2a
 00
-78
-2e
-fc
+06
+b4
+20
+60
 00
-78
-30
-7c
 00
-78
-50
-fc
+68
 00
-19
-31
-7e
+cc
+d7
+c1
+90
 00
-1f
-ec
-fe
 00
-1f
-f1
-fe
+70
+4c
+d7
 00
+68
 08
+cc
+d8
+58
 00
-86
-28
-78
-4e
-fc
 00
-78
-2d
-fc
+77
+c5
+13
+06
+aa
+58
 00
-78
-23
-fc
 00
-78
+75
+98
+46
+7c
+00
 24
-fc
+61
+00
 00
 68
 00
 cc
-44
-08
+da
+c0
 00
-86
-08
-68
+06
+bb
+1f
+e0
+ff
+ff
+60
 00
-cb
-93
-98
+cc
+da
+c0
 00
-72
+06
+bb
+70
+41
+de
 00
-d8
-c0
-4b
-4d
-e8
-c0
-80
+20
+60
 00
-08
 00
-86
-08
-c2
+70
+4c
+d7
+00
+68
 00
+cc
+da
+c0
+01
 06
-d9
-78
-24
-7c
+b9
+1f
+e0
+fe
+01
+60
 00
-08
+cc
+da
+c0
 00
 86
-18
-78
-44
-7c
+b1
+70
+41
+de
+02
+20
+60
 00
-37
-d3
-82
 00
+70
+41
+de
+04
 20
+60
 00
 00
-64
-78
-4e
-fc
-00
-78
-4d
-fc
+60
+08
+80
+17
+18
+40
+a2
 00
 20
-60
+40
+29
+81
+58
 00
+05
 00
+20
+40
+2a
+8f
 70
-47
-a0
-07
+89
+06
+01
 70
-47
-a1
-04
-58
+89
 00
-47
-a0
-60
+3c
+70
+89
 01
-42
-18
-20
-20
-7e
-38
-da
-20
-46
-9a
+e0
 20
-40
-7e
+00
+00
+0a
+70
+89
+02
+01
+70
+89
+02
 3d
 20
-54
-06
-ed
+00
+00
+0a
+70
+89
+03
+b7
 20
-60
 00
 00
+0a
+70
+89
+02
+7d
 68
 00
-c7
 c1
-1f
-e0
-fe
+de
+c0
 01
-60
-00
-c7
-c1
+06
+d5
+c0
+02
+06
+da
+c0
+10
+06
+e9
+20
+40
+06
+df
+70
+89
+55
+d0
+70
+89
+56
+e0
+70
+89
+58
+6c
+20
+20
+29
+4b
+20
+40
+06
+e4
+70
+89
+55
+d0
+70
+89
+56
+e0
+70
+89
+58
+3c
+20
+20
+29
+53
+20
+40
+06
+df
+70
+89
+55
+d0
+70
+89
+56
+c0
+70
+89
+58
+6c
 20
-60
-00
-00
-da
 20
+29
+5b
+70
+89
+4c
+5b
+70
+89
+4d
+96
+70
+89
+4e
+2c
+70
+89
+4f
 46
-9a
-20
-40
-7e
-54
-20
-34
-06
-f5
 20
 60
 00
 00
+70
+89
+4c
+fb
+70
+89
+4d
+ef
+70
+89
+4e
+ec
+70
+89
+4f
+5e
 20
-40
-56
-52
-68
+60
 00
-c7
-c1
-1f
-e6
-7c
-01
-24
-41
-56
-50
-68
 00
-c7
-c1
+70
+89
+56
+c2
+70
+89
+55
+d0
 20
-7a
+60
 00
 00
-1f
-e0
-ff
-ff
-60
+18
 00
-c7
-c1
+2a
+08
 20
 20
-3f
-90
-ad
-9b
-aa
-55
-08
-00
-75
-41
-8f
-1b
-ca
-00
-0a
-0b
-ef
-07
-aa
-55
-01
-00
-57
-41
-00
+28
+fa
+7f
+66
 aa
 55
 08
@@ -7203,162 +7118,62 @@
 00
 aa
 55
-08
-00
-ad
-40
-12
-00
-00
-02
-12
-00
-00
-02
-aa
-55
-02
+0a
 00
-bb
-40
-20
+9e
+11
 00
-aa
-55
-04
 00
-b7
-40
-20
 00
 00
-40
-aa
-55
-04
 00
-bf
-40
-80
-04
 00
-08
-aa
-55
-01
 00
-ce
-4c
 00
-aa
-55
-02
 00
-41
-42
 00
-84
 aa
 55
-01
+21
 00
-de
-41
 00
-aa
-55
-0d
+40
+06
 00
-8f
-47
-4b
-ba
-55
-d0
-56
-e0
-57
-88
-58
-6c
-59
-10
-ff
-aa
-55
-02
 00
-c3
+08
 40
-8f
-47
-aa
-55
-01
 00
 00
-40
-02
-aa
-55
-02
 00
-03
-40
-08
-40
-aa
-55
-03
 00
-09
-40
 04
 02
 02
-aa
-55
-02
 00
-10
-40
+00
+00
+00
 20
 02
-aa
-55
-03
 00
-14
-40
+00
 82
-01
+00
 06
-aa
-55
-02
 00
-18
-40
 10
 0e
-aa
-55
-02
 00
-1c
-40
-08
+00
+48
 1e
-aa
-55
-01
 00
-20
-40
+00
 20
 aa
 55
-04
+0b
 00
 27
 40
@@ -7366,97 +7181,87 @@
 08
 04
 80
-aa
-55
-03
 00
-2c
-40
 88
 04
 80
-aa
-55
-02
 00
-30
-40
 05
 11
 aa
 55
-01
-00
-92
-40
-43
-aa
-55
-01
+02
 00
 91
 40
 01
+42
 aa
 55
-01
+06
 00
-72
-41
+a0
+40
 20
-aa
-55
+51
+17
 01
-00
-c5
-47
+20
 20
 aa
 55
-02
+18
 00
-d5
-46
+ad
+40
 12
-41
-aa
-55
-01
 00
-07
-42
-06
+00
+02
+12
+00
+00
+02
+00
+00
+20
+00
+00
+40
+20
+00
+00
+00
+80
+04
+00
+08
+8f
+47
 aa
 55
-06
+01
 00
-a0
+d1
 40
-26
-10
-19
-20
-18
-10
+01
 aa
 55
-0d
+0b
 00
-15
-45
-0c
-42
-54
-20
-33
-2e
-30
+72
+41
 20
-4d
-6f
-75
-73
-65
+00
+00
+8f
+1b
+ca
+00
+0a
+0b
+ef
+07
 aa
 55
 05
@@ -7470,65 +7275,52 @@
 02
 aa
 55
-01
-00
-5a
-45
-0a
-aa
-55
-01
+05
 00
-62
-46
 03
-aa
-55
-01
-00
-5a
-46
-01
-aa
-55
-01
+42
+90
+1f
 00
-8d
-45
 00
+06
 aa
 55
-01
+04
 00
-5a
-41
+11
+42
+80
 00
+00
+ff
 aa
 55
 03
 00
-5b
-46
-03
-00
-04
+1a
+42
+01
+13
+47
 aa
 55
 01
 00
-84
-46
-01
+3a
+42
+14
 aa
 55
-01
+02
 00
-d1
-40
-01
+41
+42
+00
+84
 aa
 55
-1a
+19
 00
 6f
 43
@@ -7544,11 +7336,10 @@
 03
 12
 18
-0d
+0c
 09
 42
 54
-20
 35
 2e
 30
@@ -7560,16 +7351,15 @@
 65
 aa
 55
-0f
+0e
 00
 8f
 43
 1f
-0d
+0c
 09
 42
 54
-20
 35
 2e
 30
@@ -7581,14 +7371,13 @@
 65
 aa
 55
-0d
+0c
 00
 af
 43
-0c
+0b
 42
 54
-20
 35
 2e
 30
@@ -7600,35 +7389,33 @@
 65
 aa
 55
-08
+02
 00
-96
+6f
 44
-07
-00
-07
-00
-20
+19
 00
-2c
-01
 aa
 55
-04
+01
 00
-82
+8d
 44
-00
-00
-00
-00
+07
 aa
 55
-01
+08
 00
-8d
+96
 44
 07
+00
+07
+00
+20
+00
+2c
+01
 aa
 55
 06
@@ -7652,77 +7439,98 @@
 55
 02
 00
-6f
+fa
 44
-19
+22
 00
 aa
 55
-02
-00
-fa
-44
-22
+0c
 00
+15
+45
+0b
+42
+54
+33
+2e
+30
+20
+4d
+6f
+75
+73
+65
 aa
 55
-02
+01
 00
-87
-46
-08
-07
+5a
+45
+0a
 aa
 55
 04
 00
-a8
+5a
 46
-50
+01
+03
 00
-70
-17
+04
 aa
 55
 01
 00
-14
-42
-ff
+62
+46
+03
 aa
 55
-01
+05
 00
-86
+84
 46
+01
+1e
 ff
+08
+07
 aa
 55
-01
+07
 00
-85
+a5
 46
-1e
+07
+00
+00
+50
+00
+70
+17
 aa
 55
-01
+05
 00
 d2
 46
 02
-aa
-55
-01
 00
-03
-47
-02
+00
+12
+41
 aa
 55
-19
+1e
 00
-e0
+db
 46
+01
+ff
+00
+00
+00
 00
 02
 06
@@ -7752,33 +7560,26 @@
 55
 01
 00
-3a
-42
-14
-aa
-55
-01
-00
-dc
-46
-ff
+03
+47
+02
 aa
 55
-01
+08
 00
-a5
-46
-07
-aa
-55
+20
+47
 01
-00
-f5
-46
-00
+ff
+ff
+ff
+ff
+ff
+ff
+ff
 aa
 55
-08
+04
 00
 7f
 47
@@ -7786,31 +7587,33 @@
 01
 02
 03
-15
-1a
-22
-2a
 aa
 55
-02
+0e
 00
-1b
-42
-13
+8e
 47
-aa
+03
+4b
+ba
 55
-01
-00
-1a
-42
-01
+d0
+56
+e0
+57
+88
+58
+6c
+59
+10
+ff
 aa
 55
-40
+41
 00
-c6
+c5
 47
+20
 25
 00
 02
@@ -7877,55 +7680,25 @@
 02
 aa
 55
-01
-00
-d7
-4b
-01
-aa
-55
-01
-00
-92
-4b
-01
-aa
-55
-01
-00
-d6
-4b
 04
-aa
-55
-01
 00
-cd
+9f
 4b
+01
 00
-aa
-55
-02
-00
-94
-4b
 c0
 12
 aa
 55
-03
+15
 00
-b6
-4b
-19
-19
-1c
 aa
-55
-10
-00
-a2
 4b
+20
+15
+10
+05
+ff
 00
 13
 2c
@@ -7944,109 +7717,29 @@
 4d
 aa
 55
-01
-00
-a1
-4b
-ff
-aa
-55
-04
+03
 00
-9d
+c3
 4b
-20
-15
-10
-05
-aa
-55
-0a
-00
-9e
-11
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
+19
+19
+1c
 aa
 55
-08
+03
 00
-c0
+cd
 4b
 00
 48
 60
-00
-00
-00
-00
-00
-aa
-55
-08
-00
-20
-47
-01
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-03
-00
-00
-47
-00
-70
-00
 aa
 55
 02
 00
-03
-42
-90
-1f
-aa
-55
-01
-00
-11
-42
-80
-aa
-55
-01
-00
-1f
-47
-00
-aa
-55
-01
-00
-db
-46
-01
-aa
-55
+e3
+4b
+04
 01
-00
-8e
-47
-03
-cc
+d8
 b6
Index: output/memmap.format
===================================================================
--- /branch/mouse_project/Standard/output/memmap.format	(revision 710)
+++ /branch/mouse_project/Standard/output/memmap.format	(working copy)
@@ -1760,119 +1760,126 @@
 0x4b04 mem_mouse_bt_boot_data
 0x4b09 mem_mouse_bt_send_first_package_timer
 0x4b0a mem_mouse_bt_send_first_package_flag
-0x4b0b mem_24g_rxbuf
-0x4b2d mem_24g_txbuf
-0x4b4d mem_24g_txpayload
-0x4b6f mem_24g_rxpayload
-0x4b8f mem_24g_rxdata_length
-0x4b90 mem_24g_pid
-0x4b91 mem_24g_datalen
-0x4b92 mem_24g_data_type
-0x4b93 mem_24g_txlen
-0x4b94 mem_24g_rx_window
-0x4b96 mem_24g_ensure
-0x4b97 mem_24g_txfail_cnt
-0x4b99 mem_24g_get_ack_fail
-0x4b9a mem_24g_retry
-0x4b9b mem_24g_ch
-0x4b9c mem_24g_current_ch_number
-0x4b9d mem_24g_paring_addr
-0x4ba1 mem_24g_pairing_sm
-0x4ba2 mem_24g_ch_map1
-0x4ba6 mem_24g_ch_map2
-0x4baa mem_24g_ch_map3
-0x4bae mem_24g_ch_map4
-0x4bb2 mem_24g_tx_btclk
-0x4bb6 mem_24g_interval
-0x4bb7 mem_24g_interval_min
-0x4bb8 mem_24g_interval_max
-0x4bb9 mem_24g_addr
-0x4bbd mem_24g_abort_pac
-0x4bbe mem_24g_check_dongle_times
-0x4bc0 mem_24g_enter_hibernate
-0x4bc8 mem_24g_device_addr
-0x4bcc mem_24g_pac_index
-0x4bcd mem_24g_no_ack
-0x4bce mem_24g_sta_crc
-0x4bd1 mem_24g_last_crc
-0x4bd4 mem_24g_sta_pid
-0x4bd5 mem_24g_last_pid
-0x4bd6 mem_24g_max_retry
-0x4bd7 mem_24g_mode
-0x4bd8 mem_24g_rxdata_temp
-0x4bfa mem_24g_rx_addr
-0x4bfe mem_dongle_mode_init
-0x4bff mem_dongle_work_mode
-0x4c00 mem_dongle_ms_bind_step
-0x4c01 mem_dongle_kb_bind_step
-0x4c02 mem_dongle_bind_device_status
-0x4c03 mem_24g_bind_payload
-0x4c0b mem_24g_abort_packet
-0x4c0c mem_24g_rf_laststa
-0x4c0d mem_24g_hop_btclk
-0x4c11 mem_24g_hop_interval
-0x4c12 mem_24g_mode_switch
-0x4c13 mem_24g_ackpayload_enable
-0x4c14 mem_24g_hop_packet
-0x4c15 mem_24g_pair_mode
-0x4c16 mem_24g_nodata_timer_enable
-0x4c17 mem_24g_time_slice
-0x4c18 mem_24g_kb_data_sta_data
-0x4c20 mem_24g_kb_data_last_data
-0x4c28 mem_24g_kb_multikey_sta_data
-0x4c2b mem_24g_kb_multikey_last_data
-0x4c2e mem_24g_kb_blank_data_enable
-0x4c2f mem_24g_kb_mul_blank_data_enable
-0x4c30 mem_24g_ms_blank_data_enable
-0x4c31 mem_24g_kb_addr
-0x4c35 mem_24g_ms_addr
-0x4c39 mem_24g_dg_last_ch
-0x4c3a mem_24g_dg_ch_number
-0x4c3b mem_24g_dg_config_ch_once
-0x4c3c mem_24g_kb_last_ch
-0x4c3d mem_24g_kb_ch_number
-0x4c3e mem_24g_kb_config_ch_once
-0x4c3f mem_24g_ms_last_ch
-0x4c40 mem_24g_ms_ch_number
-0x4c41 mem_24g_ms_config_ch_once
-0x4c42 mem_24g_syncword
-0x4c44 mem_24g_syncword_crc8
-0x4c45 mem_24g_get_syncword_crc8
-0x4c46 mem_24g_ota_sta_pid
-0x4c48 mem_tx_power_temp
-0x4c49 mem_rssi_hex
-0x4c4a mem_rssi_noise_avg
-0x4c4b mem_rssi_noise_index
-0x4c4c mem_rssi_signal_index
-0x4c4d mem_rssi_noise_dg_avg
-0x4c4e mem_rssi_noise_kb_avg
-0x4c4f mem_rssi_noise_ms_avg
-0x4c50 mem_rssi_noise_dg_index
-0x4c51 mem_rssi_noise_kb_index
-0x4c52 mem_rssi_noise_ms_index
-0x4c53 mem_rssi_signal_buf
-0x4c5b mem_queue_ele_num
-0x4c5c mem_queue_read
-0x4c5e mem_queue_write
-0x4c60 mem_queue_start
-0x4c60 mem_data_ele0
-0x4c80 mem_data_ele1
-0x4ca0 mem_data_ele2
-0x4cc0 mem_queue_end
-0x4cc0 mem_queue_temp
-0x4cc2 mem_cb_24g_data
-0x4cc4 mem_24g_hop_fastly_cnt
-0x4cc5 mem_24g_hop_pac_retry
-0x4cc6 mem_24g_rf_hop_ch
-0x4cc7 mem_24g_rf_last_sta
-0x4cc8 mem_24g_rf_work_stage
-0x4cc9 mem_24g_sync_cnt
-0x4cca mem_power_ctrl_pac_succ_cnt
-0x4ccb mem_rssi_avg_received
-0x4ccc mem_rssi_hex_received
-0x4ccd mem_power_ctrl_level
-0x4cce mem_seqi
-0x4ccf mem_24g_auto_paring_switch
-0x4cd0 mem_24g_paccnt
-0x4cd1 mem_24g_transmit_by_interrupt
-0x4cd2 mem_24g_transmit_by_interrupt_exit_count
+0x4b0b mem_mouse_asm_flag
+0x4b0c mem_mouse_x_abs
+0x4b0d mem_mouse_y_abs
+0x4b0e mem_mouse_x_sum
+0x4b11 mem_mouse_y_sum
+0x4b14 mem_mouse_x_pre
+0x4b16 mem_mouse_y_pre
+0x4b18 mem_24g_rxbuf
+0x4b3a mem_24g_txbuf
+0x4b5a mem_24g_txpayload
+0x4b7c mem_24g_rxpayload
+0x4b9c mem_24g_rxdata_length
+0x4b9d mem_24g_pid
+0x4b9e mem_24g_datalen
+0x4b9f mem_24g_data_type
+0x4ba0 mem_24g_txlen
+0x4ba1 mem_24g_rx_window
+0x4ba3 mem_24g_ensure
+0x4ba4 mem_24g_txfail_cnt
+0x4ba6 mem_24g_get_ack_fail
+0x4ba7 mem_24g_retry
+0x4ba8 mem_24g_ch
+0x4ba9 mem_24g_current_ch_number
+0x4baa mem_24g_paring_addr
+0x4bae mem_24g_pairing_sm
+0x4baf mem_24g_ch_map1
+0x4bb3 mem_24g_ch_map2
+0x4bb7 mem_24g_ch_map3
+0x4bbb mem_24g_ch_map4
+0x4bbf mem_24g_tx_btclk
+0x4bc3 mem_24g_interval
+0x4bc4 mem_24g_interval_min
+0x4bc5 mem_24g_interval_max
+0x4bc6 mem_24g_addr
+0x4bca mem_24g_abort_pac
+0x4bcb mem_24g_check_dongle_times
+0x4bcd mem_24g_enter_hibernate
+0x4bd5 mem_24g_device_addr
+0x4bd9 mem_24g_pac_index
+0x4bda mem_24g_no_ack
+0x4bdb mem_24g_sta_crc
+0x4bde mem_24g_last_crc
+0x4be1 mem_24g_sta_pid
+0x4be2 mem_24g_last_pid
+0x4be3 mem_24g_max_retry
+0x4be4 mem_24g_mode
+0x4be5 mem_24g_rxdata_temp
+0x4c07 mem_24g_rx_addr
+0x4c0b mem_dongle_mode_init
+0x4c0c mem_dongle_work_mode
+0x4c0d mem_dongle_ms_bind_step
+0x4c0e mem_dongle_kb_bind_step
+0x4c0f mem_dongle_bind_device_status
+0x4c10 mem_24g_bind_payload
+0x4c18 mem_24g_abort_packet
+0x4c19 mem_24g_rf_laststa
+0x4c1a mem_24g_hop_btclk
+0x4c1e mem_24g_hop_interval
+0x4c1f mem_24g_mode_switch
+0x4c20 mem_24g_ackpayload_enable
+0x4c21 mem_24g_hop_packet
+0x4c22 mem_24g_pair_mode
+0x4c23 mem_24g_nodata_timer_enable
+0x4c24 mem_24g_time_slice
+0x4c25 mem_24g_kb_data_sta_data
+0x4c2d mem_24g_kb_data_last_data
+0x4c35 mem_24g_kb_multikey_sta_data
+0x4c38 mem_24g_kb_multikey_last_data
+0x4c3b mem_24g_kb_blank_data_enable
+0x4c3c mem_24g_kb_mul_blank_data_enable
+0x4c3d mem_24g_ms_blank_data_enable
+0x4c3e mem_24g_kb_addr
+0x4c42 mem_24g_ms_addr
+0x4c46 mem_24g_dg_last_ch
+0x4c47 mem_24g_dg_ch_number
+0x4c48 mem_24g_dg_config_ch_once
+0x4c49 mem_24g_kb_last_ch
+0x4c4a mem_24g_kb_ch_number
+0x4c4b mem_24g_kb_config_ch_once
+0x4c4c mem_24g_ms_last_ch
+0x4c4d mem_24g_ms_ch_number
+0x4c4e mem_24g_ms_config_ch_once
+0x4c4f mem_24g_syncword
+0x4c51 mem_24g_syncword_crc8
+0x4c52 mem_24g_get_syncword_crc8
+0x4c53 mem_24g_ota_sta_pid
+0x4c55 mem_tx_power_temp
+0x4c56 mem_rssi_hex
+0x4c57 mem_rssi_noise_avg
+0x4c58 mem_rssi_noise_index
+0x4c59 mem_rssi_signal_index
+0x4c5a mem_rssi_noise_dg_avg
+0x4c5b mem_rssi_noise_kb_avg
+0x4c5c mem_rssi_noise_ms_avg
+0x4c5d mem_rssi_noise_dg_index
+0x4c5e mem_rssi_noise_kb_index
+0x4c5f mem_rssi_noise_ms_index
+0x4c60 mem_rssi_signal_buf
+0x4c68 mem_queue_ele_num
+0x4c69 mem_queue_read
+0x4c6b mem_queue_write
+0x4c6d mem_queue_start
+0x4c6d mem_data_ele0
+0x4c8d mem_data_ele1
+0x4cad mem_data_ele2
+0x4ccd mem_queue_end
+0x4ccd mem_queue_temp
+0x4ccf mem_cb_24g_data
+0x4cd1 mem_24g_hop_fastly_cnt
+0x4cd2 mem_24g_hop_pac_retry
+0x4cd3 mem_24g_rf_hop_ch
+0x4cd4 mem_24g_rf_last_sta
+0x4cd5 mem_24g_rf_work_stage
+0x4cd6 mem_24g_sync_cnt
+0x4cd7 mem_power_ctrl_pac_succ_cnt
+0x4cd8 mem_rssi_avg_received
+0x4cd9 mem_rssi_hex_received
+0x4cda mem_power_ctrl_level
+0x4cdb mem_seqi
+0x4cdc mem_24g_auto_paring_switch
+0x4cdd mem_24g_paccnt
+0x4cde mem_24g_transmit_by_interrupt
+0x4cdf mem_24g_transmit_by_interrupt_exit_count
Index: output/program.lis
===================================================================
--- /branch/mouse_project/Standard/output/program.lis	(revision 710)
+++ /branch/mouse_project/Standard/output/program.lis	(working copy)
@@ -1,2413 +1,2399 @@
 include "bt_format "
 org 0x0000
-0000 c2840018 bbit1 8 ,pf_patch_ext 
-0001 c042860c beq patch10_5 ,p_shutdown_radio 
-0002 c04485d1 beq patch11_1 ,p_set_freq_tx 
-0003 c0008030 beq patch00_1 ,p_soft_reset_1 
-0004 c00d8367 beq patch03_3 ,p_page_wait_fhs_reply_ok 
-0005 c0130374 beq patch04_6 ,p_role_switch_master 
-0006 c025038f beq patch09_2 ,p_prepare_tx 
-0007 c02c838d beq patch0b_1 ,p_process_dmh 
-0008 c0288398 beq patch0a_1 ,p_slave_conn_recv_packet 
-0009 c053839d beq patch14_7 ,p_lpm_dispatch 
-000a c06583b2 beq patch19_3 ,p_app_bt_start_reconnect 
-000b c07483b3 beq patch1d_1 ,p_mouse_bb_disconnected 
-000c c0508039 beq patch14_1 ,p_init_param 
-000d c054003e beq patch15_0 ,p_lpm_dispatch_next2 
-000e c0588041 beq patch16_1 ,p_lpm_check_wake_lock 
-000f c0590049 beq patch16_2 ,p_g24_dispatch 
-0010 c06200c3 beq patch18_4 ,p_device_init 
-0011 c0648155 beq patch19_1 ,p_app_flag_store 
-0012 c0650159 beq patch19_2 ,p_app_initflag_check 
-0013 c0718282 beq patch1c_3 ,p_mouse_seting_dpi 
-0014 c075028f beq patch1d_2 ,p_mouse_bb_event_discovery_btn 
-0015 c075829d beq patch1d_3 ,p_mouse_start_discovery 
-0016 c07602c6 beq patch1d_4 ,p_mouse_stop_discovery 
-0017 20202a8e branch loop 
+0000 c2840019 bbit1 8 ,pf_patch_ext 
+0001 c04286ec beq patch10_5 ,p_shutdown_radio 
+0002 c04486bd beq patch11_1 ,p_set_freq_tx 
+0003 c0008031 beq patch00_1 ,p_soft_reset_1 
+0004 c001003a beq patch00_2 ,p_soft_reset_2 
+0005 c00d85b8 beq patch03_3 ,p_page_wait_fhs_reply_ok 
+0006 c01305c5 beq patch04_6 ,p_role_switch_master 
+0007 c02505e0 beq patch09_2 ,p_prepare_tx 
+0008 c02c85de beq patch0b_1 ,p_process_dmh 
+0009 c02885e9 beq patch0a_1 ,p_slave_conn_recv_packet 
+000a c05385ee beq patch14_7 ,p_lpm_dispatch 
+000b c0658604 beq patch19_3 ,p_app_bt_start_reconnect 
+000c c0748605 beq patch1d_1 ,p_mouse_bb_disconnected 
+000d c050803f beq patch14_1 ,p_init_param 
+000e c0588044 beq patch16_1 ,p_lpm_check_wake_lock 
+000f c059004e beq patch16_2 ,p_g24_dispatch 
+0010 c06202de beq patch18_4 ,p_device_init 
+0011 c0648372 beq patch19_1 ,p_app_flag_store 
+0012 c0650376 beq patch19_2 ,p_app_initflag_check 
+0013 c07184cc beq patch1c_3 ,p_mouse_seting_dpi 
+0014 c07304d8 beq patch1c_6 ,p_mouse_motion 
+0015 c07504e1 beq patch1d_2 ,p_mouse_bb_event_discovery_btn 
+0016 c07584f6 beq patch1d_3 ,p_mouse_start_discovery 
+0017 c0760517 beq patch1d_4 ,p_mouse_stop_discovery 
+0018 20202a8e branch loop 
 
 pf_patch_ext:
-0018 c01c82ca beq patch27_1 ,p_le_slave_match 
-0019 c02182d2 beq patch28_3 ,p_le_next_adv_channel 
-001a c02502d8 beq patch29_2 ,p_le_receive_skip 
-001b c02b82db beq patch2a_7 ,p_le_update_param 
-001c c03182ed beq patch2c_3 ,p_le_prepare_tx 
-001d c0338317 beq patch2c_7 ,p_le_parse_l2cap 
-001e c0350340 beq patch2d_2 ,p_le_adv_not_match 
-001f c03b834b beq patch2e_7 ,p_le_lpm_setmult 
-0020 c00283c6 beq patch20_5 ,p_hid_rx_process 
-0021 c04003d5 beq patch30_0 ,p_parse_lmp_accepted 
-0022 c04103df beq patch30_2 ,p_send_lmp 
-0023 c044040a beq patch31_0 ,p_process_conn_sm 
-0024 c046035b beq patch31_4 ,p_twspi_reset 
-0025 20202a8e branch loop 
+0019 c01c851b beq patch27_1 ,p_le_slave_match 
+001a c0218523 beq patch28_3 ,p_le_next_adv_channel 
+001b c0250529 beq patch29_2 ,p_le_receive_skip 
+001c c02b852c beq patch2a_7 ,p_le_update_param 
+001d c031853e beq patch2c_3 ,p_le_prepare_tx 
+001e c0338568 beq patch2c_7 ,p_le_parse_l2cap 
+001f c0350591 beq patch2d_2 ,p_le_adv_not_match 
+0020 c03b859c beq patch2e_7 ,p_le_lpm_setmult 
+0021 c0028618 beq patch20_5 ,p_hid_rx_process 
+0022 c0400627 beq patch30_0 ,p_parse_lmp_accepted 
+0023 c0410631 beq patch30_2 ,p_send_lmp 
+0024 c044065c beq patch31_0 ,p_process_conn_sm 
+0025 c04605ac beq patch31_4 ,p_twspi_reset 
+0026 20202a8e branch loop 
 
 p_rssi_signal:
-0026 1fe22200 copy pdata ,rega 
-0027 6808cc4c fetcht 1 ,mem_rssi_signal_index 
-0028 58004c53 setarg mem_rssi_signal_buf 
-0029 98408a00 iadd temp ,contw 
-002a 1a227e00 copy rega ,pdata 
-002b e0a08000 istore 1 ,contw 
-002c 18408401 increase 1 ,temp 
-002d 18410407 and_into rssi_buf_len_signal ,temp 
-002e 6008cc4c storet 1 ,mem_rssi_signal_index 
-002f 20600000 rtn 
+0027 1fe22200 copy pdata ,rega 
+0028 6808cc59 fetcht 1 ,mem_rssi_signal_index 
+0029 58004c60 setarg mem_rssi_signal_buf 
+002a 98408a00 iadd temp ,contw 
+002b 1a227e00 copy rega ,pdata 
+002c e0a08000 istore 1 ,contw 
+002d 18408401 increase 1 ,temp 
+002e 18410407 and_into rssi_buf_len_signal ,temp 
+002f 6008cc59 storet 1 ,mem_rssi_signal_index 
+0030 20600000 rtn 
 
 p_soft_reset_1:
-0030 d8a009ae arg mem_sp_state ,contw 
-0031 df20000c arg 12 ,loopcnt 
-0032 20407ed4 call clear_mem 
-0033 204000b7 call p_mouse_le_txbuff_load 
-0034 20406a03 call rfcomm_init 
-0035 20405cf6 call init_lmp 
-0036 2455ac65 ncall lpm_disable_exen_output ,wake 
-0037 20407ccd call ui_init + 1 
-0038 2020200c branch soft_reset + 11 
+0031 d8a009ae arg mem_sp_state ,contw 
+0032 df20000c arg 12 ,loopcnt 
+0033 20407ed4 call clear_mem 
+0034 204003b5 call p_mouse_le_txbuff_load 
+0035 20406a03 call rfcomm_init 
+0036 20405cf6 call init_lmp 
+0037 2455ac65 ncall lpm_disable_exen_output ,wake 
+0038 20407ccd call ui_init + 1 
+0039 2020200c branch soft_reset + 11 
+
+p_soft_reset_2:
+003a 2055b2e3 call app_lpm_init ,wake 
+003b 2040003d call p_publickey_init 
+003c 20202011 branch soft_reset_2 
+
+p_publickey_init:
+003d c6130000 rtnmark1 mark_24g 
+003e 2020756a branch publickey_init 
 
 p_init_param:
-0039 58000a06 setarg param_le_version 
-003a 6001c510 store 3 ,mem_lmp_version 
-003b 58001d87 setarg param_le_subversion 
-003c 60014513 store 2 ,mem_lmp_version + 3 
-003d 20202aa2 branch init_param + 12 
-
-p_lpm_dispatch_next2:
-003e 6800c806 fetch 1 ,mem_mouse_wheel_trigger 
-003f 247a0000 nrtn blank 
-0040 20202b7f branch lpm_dispatch_next2 
+003f 58000a06 setarg param_le_version 
+0040 6001c510 store 3 ,mem_lmp_version 
+0041 58001d87 setarg param_le_subversion 
+0042 60014513 store 2 ,mem_lmp_version + 3 
+0043 20202aa2 branch init_param + 12 
 
 p_lpm_check_wake_lock:
-0041 c6130000 rtnmark1 mark_24g 
-0042 6800c79c fetch 1 ,mem_mouse_clear_sensor_data_flag 
-0043 c0007fef beq 0 ,disable_blank 
-0044 6800c7c4 fetch 1 ,mem_mouse_le_conn_param_reject 
-0045 c000ffef beq le_lpm_disable ,disable_blank 
-0046 68014248 fetch 2 ,mem_sdp_remote_cid 
-0047 243a7fef nbranch disable_blank ,blank 
-0048 20207ff1 branch enable_blank 
+0044 c6130000 rtnmark1 mark_24g 
+0045 6800c79c fetch 1 ,mem_mouse_clear_sensor_data_flag 
+0046 c0007fef beq 0 ,disable_blank 
+0047 6800c7c4 fetch 1 ,mem_mouse_le_conn_param_reject 
+0048 c000ffef beq le_lpm_disable ,disable_blank 
+0049 68014248 fetch 2 ,mem_sdp_remote_cid 
+004a 243a7fef nbranch disable_blank ,blank 
+004b 6800c806 fetch 1 ,mem_mouse_wheel_trigger 
+004c 243a7fef nbranch disable_blank ,blank 
+004d 20207ff1 branch enable_blank 
 
 p_g24_dispatch:
-0049 c6930000 rtnmark0 mark_24g 
-004a 6800ccd1 fetch 1 ,mem_24g_transmit_by_interrupt 
-004b c000805e beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
+004e c6930000 rtnmark0 mark_24g 
+004f 6800ccde fetch 1 ,mem_24g_transmit_by_interrupt 
+0050 c000805f beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
 
 p_g24_transmit_process:
-004c 20400487 call p_g24_txdata_prep 
-004d 24340079 nbranch p_g24_nodata_transmit ,user 
-004e 2040046c call p_g24_rf_sta_check 
+0051 204000f0 call p_g24_txdata_prep 
+0052 24340079 nbranch p_g24_nodata_transmit ,user 
+0053 204000d7 call p_g24_rf_sta_check 
 
 p_g24_transmit_start:
-004f 204004ab call p_g24_transmit_packet 
-0050 6800cba1 fetch 1 ,mem_24g_pairing_sm 
-0051 c1ff8000 rtnne state_24g_pairing_success 
-0052 2040050a call power_ctrl_start 
+0054 20400112 call p_g24_transmit_packet 
+0055 6800cbae fetch 1 ,mem_24g_pairing_sm 
+0056 c1ff8000 rtnne state_24g_pairing_success 
+0057 20400691 call power_ctrl_start 
+0058 6800ccde fetch 1 ,mem_24g_transmit_by_interrupt 
+0059 c1008000 rtneq g24_tx_timer_int_enable 
 
 p_g24_short_sleep:
-0053 6800ccd1 fetch 1 ,mem_24g_transmit_by_interrupt 
-0054 c1008000 rtneq g24_tx_timer_int_enable 
-0055 20402afa call lpo_calibration 
-0056 6801c16f fetch 3 ,mem_clks_per_lpo 
-0057 207a0000 rtn blank 
-0058 6800c091 fetch 1 ,mem_lpm_mode 
-0059 207a0000 rtn blank 
-005a 2040009e call p_mouse_setgpio_lpm 
-005b 2040009b call p_clear_wake 
-005c 5800ec54 setarg 60500 
-005d 20202b93 branch lpm_dispatch_sleep 
+005a 20400081 call p_g24_lpm_wait 
+005b 24740000 nrtn user 
+005c 204002cf call p_clear_wake 
+005d 5800ec54 setarg 60500 
+005e 20202b93 branch lpm_dispatch_sleep 
 
 p_g24_transmit_by_interrupt:
-005e 2040060e call p_g24_timer_check 
-005f 24740000 nrtn user 
-0060 20400070 call p_g24_interval_calibrate 
-0061 6800ccd2 fetch 1 ,mem_24g_transmit_by_interrupt_exit_count 
-0062 1fe0fe01 increase 1 ,pdata 
-0063 6000ccd2 store 1 ,mem_24g_transmit_by_interrupt_exit_count 
-0064 1fe67c19 sub pdata ,25 ,null 
-0065 20428067 call p_g24_transmit_by_interrupt_exit ,zero 
-0066 2020004c branch p_g24_transmit_process 
+005f 2040029a call p_g24_timer_check 
+0060 24740000 nrtn user 
+0061 20400070 call p_g24_interval_calibrate 
+0062 6800ccdf fetch 1 ,mem_24g_transmit_by_interrupt_exit_count 
+0063 1fe0fe01 increase 1 ,pdata 
+0064 6000ccdf store 1 ,mem_24g_transmit_by_interrupt_exit_count 
+0065 1fe67c19 sub pdata ,25 ,null 
+0066 20428068 call p_g24_transmit_by_interrupt_exit ,zero 
+0067 20200051 branch p_g24_transmit_process 
 
 p_g24_transmit_by_interrupt_exit:
-0067 704cd100 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
-0068 704cd200 jam 0 ,mem_24g_transmit_by_interrupt_exit_count 
+0068 704cde00 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
+0069 704cdf00 jam 0 ,mem_24g_transmit_by_interrupt_exit_count 
 
 p_g24_interval_min:
-0069 704bcc00 jam 0 ,mem_24g_pac_index 
-006a 6800cbb7 fetch 1 ,mem_24g_interval_min 
-006b 6000cbb6 store 1 ,mem_24g_interval 
-006c 20600000 rtn 
+006a 704bd900 jam 0 ,mem_24g_pac_index 
+006b 6800cbc4 fetch 1 ,mem_24g_interval_min 
+
+p_g24_current_interval_store:
+006c 6000cbc3 store 1 ,mem_24g_interval 
+006d 20600000 rtn 
 
 p_g24_interval_max:
-006d 6800cbb8 fetch 1 ,mem_24g_interval_max 
-006e 6000cbb6 store 1 ,mem_24g_interval 
-006f 20600000 rtn 
+006e 6800cbc5 fetch 1 ,mem_24g_interval_max 
+006f 2020006c branch p_g24_current_interval_store 
 
 p_g24_interval_calibrate:
-0070 6800cbcc fetch 1 ,mem_24g_pac_index 
+0070 6800cbd9 fetch 1 ,mem_24g_pac_index 
 0071 1fe0fe01 increase 1 ,pdata 
-0072 6000cbcc store 1 ,mem_24g_pac_index 
-0073 c002006d beq 4 ,p_g24_interval_max 
-0074 c0028069 beq 5 ,p_g24_interval_min 
+0072 6000cbd9 store 1 ,mem_24g_pac_index 
+0073 c002006e beq 4 ,p_g24_interval_max 
+0074 c002806a beq 5 ,p_g24_interval_min 
 0075 20600000 rtn 
 
 p_g24_transmit_by_interrupt_enable:
-0076 704cd101 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
-0077 704cd200 jam 0 ,mem_24g_transmit_by_interrupt_exit_count 
+0076 704cde01 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
+0077 704cdf00 jam 0 ,mem_24g_transmit_by_interrupt_exit_count 
 0078 20600000 rtn 
 
 p_g24_nodata_transmit:
-0079 6800cbbd fetch 1 ,mem_24g_abort_pac 
-007a 205a0085 call p_g24_send_abort_packet ,blank 
+0079 6800cbca fetch 1 ,mem_24g_abort_pac 
+007a 205a0088 call p_g24_send_abort_packet ,blank 
 
 p_g24_long_sleep:
-007b 20402afa call lpo_calibration 
-007c 6801c16f fetch 3 ,mem_clks_per_lpo 
-007d 207a0000 rtn blank 
-007e 6800c091 fetch 1 ,mem_lpm_mode 
-007f 207a0000 rtn blank 
-0080 2040009e call p_mouse_setgpio_lpm 
-0081 68044bc0 fetch 8 ,mem_24g_enter_hibernate 
-0082 20407f49 call clk2lpo 
-0083 600a415b storet 4 ,mem_sleep_counter 
-0084 20202b2a branch lpm_sleep 
+007b 20400081 call p_g24_lpm_wait 
+007c 24740000 nrtn user 
+007d 6801cbcd fetch 3 ,mem_24g_enter_hibernate 
+007e 20407f49 call clk2lpo 
+007f 600a415b storet 4 ,mem_sleep_counter 
+0080 20202b2a branch lpm_sleep 
+
+p_g24_lpm_wait:
+0081 78347c00 enable user 
+0082 20402afa call lpo_calibration 
+0083 6801c16f fetch 3 ,mem_clks_per_lpo 
+0084 203a7fe9 branch disable_user ,blank 
+0085 6800c091 fetch 1 ,mem_lpm_mode 
+0086 203a7fe9 branch disable_user ,blank 
+0087 202002d2 branch p_mouse_setgpio_lpm 
 
 p_g24_send_abort_packet:
-0085 704bbd01 jam 1 ,mem_24g_abort_pac 
-0086 704cc600 jam 0 ,mem_24g_rf_hop_ch 
-0087 20400434 call p_g24_transmit_rf_ctrl_clear 
-0088 6000cb2d store 1 ,mem_24g_txbuf 
-0089 58000000 setarg 0 
-008a 6003cb2e store 7 ,mem_24g_txbuf + 1 
-008b 68024bc8 fetch 4 ,mem_24g_device_addr 
-008c 60024b35 store 4 ,mem_24g_txbuf + 8 
-008d 704b910c jam 12 ,mem_24g_datalen 
-008e 6800cb92 fetch 1 ,mem_24g_data_type 
-008f 79207e03 set1 bit_abort ,pdata 
-0090 6000cb92 store 1 ,mem_24g_data_type 
-0091 2040064a call p_g24_transmit_prep 
-0092 2040048b call p_g24_txdata_enable_tx 
-0093 2020004f branch p_g24_transmit_start 
+0088 704bca01 jam 1 ,mem_24g_abort_pac 
+0089 704cd300 jam 0 ,mem_24g_rf_hop_ch 
+008a 2040009f call p_g24_transmit_rf_ctrl_clear 
+008b 6000cb3a store 1 ,mem_24g_txbuf 
+008c 58000000 setarg 0 
+008d 6003cb3b store 7 ,mem_24g_txbuf + 1 
+008e 68024bd5 fetch 4 ,mem_24g_device_addr 
+008f 60024b42 store 4 ,mem_24g_txbuf + 8 
+0090 704b9e0c jam 12 ,mem_24g_datalen 
+0091 6800cb9f fetch 1 ,mem_24g_data_type 
+0092 79207e03 set1 bit_abort ,pdata 
+0093 6000cb9f store 1 ,mem_24g_data_type 
+0094 204000f3 call p_g24_txdata_enable_tx 
+0095 20200054 branch p_g24_transmit_start 
+
+p_g24_set_device_addr:
+0096 204068a8 call adc_init_data 
+0097 68024221 fetch 4 ,mem_2v_adc_vinlpm_data 
+0098 60024bd5 store 4 ,mem_24g_device_addr 
+0099 247a0000 nrtn blank 
+009a 680240a0 fetch 4 ,mem_lap 
+009b 60024bd5 store 4 ,mem_24g_device_addr 
+009c 20600000 rtn 
+
+p_g24_transmit_rf_sta_init:
+009d 704cd401 jam 1 ,mem_24g_rf_last_sta 
+009e 704cd600 jam 0 ,mem_24g_sync_cnt 
+
+p_g24_transmit_rf_ctrl_clear:
+009f 6800cb9f fetch 1 ,mem_24g_data_type 
+00a0 1fe17e07 and_into bits_data ,pdata 
+00a1 6000cb9f store 1 ,mem_24g_data_type 
+00a2 20600000 rtn 
+
+p_g24_hop_ch_enable:
+00a3 6800cb9f fetch 1 ,mem_24g_data_type 
+00a4 79207e04 set1 bit_hop ,pdata 
+00a5 6000cb9f store 1 ,mem_24g_data_type 
+00a6 6000cb5a store 1 ,mem_24g_txpayload 
+00a7 20600000 rtn 
+
+p_g24_hop_ch_disable:
+00a8 6800cb9f fetch 1 ,mem_24g_data_type 
+00a9 793ffe04 set0 bit_hop ,pdata 
+00aa 6000cb9f store 1 ,mem_24g_data_type 
+00ab 20600000 rtn 
+
+p_g24_transmit_hop_pac_fail:
+00ac 20400687 call power_ctrl_pac_succ_decrs 
+00ad 6800ccd5 fetch 1 ,mem_24g_rf_work_stage 
+00ae c00080b1 beq 1 ,p_g24_transmit_hop_pac_fail_wo_hop 
+00af c00100b5 beq 2 ,p_g24_transmit_hop_pac_fail_hop_stage2 
+00b0 20600000 rtn 
+
+p_g24_transmit_hop_pac_fail_wo_hop:
+00b1 704cd602 jam 2 ,mem_24g_sync_cnt 
+
+p_g24_transmit_hop_pac_fail_stage1:
+00b2 704cd200 jam 0 ,mem_24g_hop_pac_retry 
+00b3 704cd400 jam 0 ,mem_24g_rf_last_sta 
+00b4 2020009f branch p_g24_transmit_rf_ctrl_clear 
+
+p_g24_transmit_hop_pac_fail_hop_stage2:
+00b5 704cd300 jam 0 ,mem_24g_rf_hop_ch 
+00b6 202000b2 branch p_g24_transmit_hop_pac_fail_stage1 
+
+p_g24_transmit_pac_fail_hop_stage3:
+00b7 68014ba4 fetch 2 ,mem_24g_txfail_cnt 
+00b8 1fe0fe01 increase 1 ,pdata 
+00b9 60014ba4 store 2 ,mem_24g_txfail_cnt 
+00ba c2850155 bbit1 10 ,p_g24_tx_attempt_fail 
+00bb 6800ccd3 fetch 1 ,mem_24g_rf_hop_ch 
+00bc c00080c0 beq 1 ,p_g24_rf_hop_fastly 
+00bd 704cd301 jam 1 ,mem_24g_rf_hop_ch 
+
+p_g24_rf_hop_attemp_again:
+00be 6800ccd3 fetch 1 ,mem_24g_rf_hop_ch 
+00bf c080809f bne 1 ,p_g24_transmit_rf_ctrl_clear 
+
+p_g24_rf_hop_fastly:
+00c0 6800ccd1 fetch 1 ,mem_24g_hop_fastly_cnt 
+00c1 1fe0fe01 increase 1 ,pdata 
+00c2 6000ccd1 store 1 ,mem_24g_hop_fastly_cnt 
+00c3 c00200c7 beq 4 ,p_g24_rf_hop_fastly_exit 
+00c4 20400212 call p_g24_ch 
+00c5 704be302 jam 2 ,mem_24g_max_retry 
+00c6 20200112 branch p_g24_transmit_packet 
+
+p_g24_rf_hop_fastly_exit:
+00c7 20400687 call power_ctrl_pac_succ_decrs 
+00c8 704cd100 jam 0 ,mem_24g_hop_fastly_cnt 
+00c9 2020009f branch p_g24_transmit_rf_ctrl_clear 
+
+p_g24_transmit_hop_pac_succ_wo_hop:
+00ca 704cd602 jam 2 ,mem_24g_sync_cnt 
+
+p_g24_transmit_hop_pac_succ:
+00cb 704cd401 jam 1 ,mem_24g_rf_last_sta 
+00cc 704cd300 jam 0 ,mem_24g_rf_hop_ch 
+00cd 2020009f branch p_g24_transmit_rf_ctrl_clear 
+
+p_g24_transmit_succ_rf_config:
+00ce 6800ccd5 fetch 1 ,mem_24g_rf_work_stage 
+00cf c00180cb beq 3 ,p_g24_transmit_hop_pac_succ 
+00d0 6800cb9f fetch 1 ,mem_24g_data_type 
+00d1 2fec0004 isolate0 bit_hop ,pdata 
+00d2 2020809d branch p_g24_transmit_rf_sta_init ,true 
+00d3 6800ccd5 fetch 1 ,mem_24g_rf_work_stage 
+00d4 c00080ca beq 1 ,p_g24_transmit_hop_pac_succ_wo_hop 
+00d5 c00100cb beq 2 ,p_g24_transmit_hop_pac_succ 
+00d6 20600000 rtn 
+
+p_g24_rf_sta_check:
+00d7 6800cbae fetch 1 ,mem_24g_pairing_sm 
+00d8 c1ff8000 rtnne state_24g_pairing_success 
+00d9 204000dc call p_g24_rf_laststa_synccnt_check 
+00da 245600e4 ncall p_g24_rf_sync_cnt_check ,user2 
+00db 20600000 rtn 
+
+p_g24_rf_laststa_synccnt_check:
+00dc 78567c00 disable user2 
+00dd 6800ccd4 fetch 1 ,mem_24g_rf_last_sta 
+00de c1808000 rtnne 1 
+00df 6800ccd6 fetch 1 ,mem_24g_sync_cnt 
+00e0 c1800000 rtnne 0 
+00e1 704cd501 jam 1 ,mem_24g_rf_work_stage 
+00e2 704be304 jam 4 ,mem_24g_max_retry 
+00e3 20207feb branch enable_user2 
+
+p_g24_rf_sync_cnt_check:
+00e4 6800ccd6 fetch 1 ,mem_24g_sync_cnt 
+00e5 203a00eb branch p_g24_rf_hop_attemp ,blank 
+00e6 1fe0ffff increase -1 ,pdata 
+00e7 6000ccd6 store 1 ,mem_24g_sync_cnt 
+00e8 704cd502 jam 2 ,mem_24g_rf_work_stage 
+00e9 704be304 jam 4 ,mem_24g_max_retry 
+00ea 20200212 branch p_g24_ch 
+
+p_g24_rf_hop_attemp:
+00eb 704cd503 jam 3 ,mem_24g_rf_work_stage 
+00ec 6800ccd3 fetch 1 ,mem_24g_rf_hop_ch 
+00ed 243a00be nbranch p_g24_rf_hop_attemp_again ,blank 
+00ee 704be302 jam 2 ,mem_24g_max_retry 
+00ef 20200212 branch p_g24_ch 
+
+p_g24_txdata_prep:
+00f0 6800cbae fetch 1 ,mem_24g_pairing_sm 
+00f1 c0ff8169 bne state_24g_pairing_success ,p_g24_pairing_sm 
+
+p_g24_txdata_prep_packeage_data:
+00f2 204000f6 call p_g24_package_data 
+
+p_g24_txdata_enable_tx:
+00f3 20400200 call p_g24_transmit_prep 
+00f4 704ba301 jam ensure_on_24g ,mem_24g_ensure 
+00f5 20600000 rtn 
+
+p_g24_package_data:
+00f6 68014ccf fetch 2 ,mem_cb_24g_data 
+00f7 20407f9c call callback_func 
+00f8 203400fc branch p_g24_accumulate_mouse_data ,user 
+00f9 6803cb3b fetch 7 ,mem_24g_txbuf + 1 
+00fa 207a0000 rtn blank 
+00fb 20207fe7 branch enable_user 
+
+p_g24_accumulate_mouse_data:
+00fc 704bca00 jam 0 ,mem_24g_abort_pac 
+00fd 1a20fe01 add rega ,1 ,pdata 
+00fe 6000cb9e store 1 ,mem_24g_datalen 
+00ff 2040009f call p_g24_transmit_rf_ctrl_clear 
+0100 6000cb3a store 1 ,mem_24g_txbuf 
+0101 e8a88000 ifetcht 1 ,contw 
+0102 ea408000 ifetch 1 ,regb 
+0103 9841fe00 ior temp ,pdata 
+0104 e0a08000 istore 1 ,contw 
+0105 1a40a401 increase 1 ,regb 
+0106 ea420000 ifetch 4 ,regb 
+0107 e0a20000 istore 4 ,contw 
+0108 1a40a404 increase 4 ,regb 
+0109 d8a04b40 arg mem_24g_txbuf + 6 ,contw 
+010a df200002 arg 2 ,loopcnt 
+
+p_g24_accumulation_loop:
+010b ea408000 ifetch 1 ,regb 
+010c e8a88000 ifetcht 1 ,contw 
+010d 9840fe00 iadd temp ,pdata 
+010e e0a08000 istore 1 ,contw 
+010f 1a40a401 increase 1 ,regb 
+0110 c200010b loop p_g24_accumulation_loop 
+0111 20600000 rtn 
+
+p_g24_transmit_packet:
+0112 704ba700 jam 0 ,mem_24g_retry 
+
+p_g24_transmit_loop:
+0113 d9600d00 arg param_rx_setup ,timeup 
+0114 34730200 until clkn_rt ,meet 
+0115 2040012e call p_g24_transmit_receive_ack 
+0116 6800cbda fetch 1 ,mem_24g_no_ack 
+0117 c1008000 rtneq no_ack_24g 
+0118 242c013d nbranch p_g24_retransmit ,sync 
+0119 2437813d nbranch p_g24_retransmit ,user3 
+011a 20400129 call p_g24_txbuf_clear 
+011b 20400159 call p_g24_ackpayload_parse 
+011c 20400683 call power_ctrl_pac_succ_incrs 
+
+p_g24_transmit_next_packet:
+011d 6800cb9d fetch 1 ,mem_24g_pid 
+011e 1fe0fe01 increase 1 ,pdata 
+011f 6000cb9d store 1 ,mem_24g_pid 
+0120 6800cbae fetch 1 ,mem_24g_pairing_sm 
+0121 c0ff812c bne state_24g_pairing_success ,p_g24_paring_mode_start 
+0122 204000ce call p_g24_transmit_succ_rf_config 
+
+p_g24_transmit_abandon:
+0123 58000000 setarg 0 
+0124 60014ba4 store 2 ,mem_24g_txfail_cnt 
+0125 6000cba6 store 1 ,mem_24g_get_ack_fail 
+0126 6000ccd2 store 1 ,mem_24g_hop_pac_retry 
+0127 704ba300 jam ensure_off_24g ,mem_24g_ensure 
+0128 20600000 rtn 
+
+p_g24_txbuf_clear:
+0129 df200004 arg 4 ,loopcnt 
+012a d8a04b3a arg mem_24g_txbuf ,contw 
+012b 20207ec6 branch memset0 
+
+p_g24_paring_mode_start:
+012c 20400680 call power_ctrl_pac_succ_cnt_init 
+012d 20200183 branch p_g24_paring_mode 
+
+p_g24_transmit_receive_ack:
+012e 7857fc00 disable user3 
+012f 20400279 call p_g24_transmit 
+0130 6800cbda fetch 1 ,mem_24g_no_ack 
+0131 c000813b beq no_ack_24g ,p_g24_transmit_no_ack 
+0132 18002a00 force 0 ,radio_ctrl 
+0133 68024bc6 fetch 4 ,mem_24g_addr 
+0134 98001200 iforce access 
+0135 68088017 fetcht 1 ,mem_last_freq 
+0136 2040291f call set_freq_rx 
+0137 20402924 call rf_rx_enable 
+0138 20400235 call p_g24_receive_rxon 
+0139 20578271 call p_g24_end_of_packet ,user3 
+013a 20600000 rtn 
+
+p_g24_transmit_no_ack:
+013b 20400271 call p_g24_end_of_packet 
+013c 2020011d branch p_g24_transmit_next_packet 
+
+p_g24_retransmit:
+013d 6800cba6 fetch 1 ,mem_24g_get_ack_fail 
+013e 1fe0fe01 increase 1 ,pdata 
+013f 6000cba6 store 1 ,mem_24g_get_ack_fail 
+0140 6800cbae fetch 1 ,mem_24g_pairing_sm 
+0141 c0ff8151 bne state_24g_pairing_success ,p_g24_tx_paring_retry 
+0142 6808cba7 fetcht 1 ,mem_24g_retry 
+0143 18408401 increase 1 ,temp 
+0144 6008cba7 storet 1 ,mem_24g_retry 
+0145 6800cbe3 fetch 1 ,mem_24g_max_retry 
+0146 98467e00 isub temp ,pdata 
+0147 243a0113 nbranch p_g24_transmit_loop ,blank 
+0148 6800ccd5 fetch 1 ,mem_24g_rf_work_stage 
+0149 c00180b7 beq 3 ,p_g24_transmit_pac_fail_hop_stage3 
+014a 6800ccd2 fetch 1 ,mem_24g_hop_pac_retry 
+014b 1fe0fe01 increase 1 ,pdata 
+014c 6000ccd2 store 1 ,mem_24g_hop_pac_retry 
+014d c00100ac beq 2 ,p_g24_transmit_hop_pac_fail 
+014e 204000a3 call p_g24_hop_ch_enable 
+014f 704be301 jam 1 ,mem_24g_max_retry 
+0150 20200112 branch p_g24_transmit_packet 
+
+p_g24_tx_paring_retry:
+0151 6800cba6 fetch 1 ,mem_24g_get_ack_fail 
+0152 c1ff8000 rtnne 0xff 
+0153 704ba600 jam 0 ,mem_24g_get_ack_fail 
+0154 20200157 branch p_g24_stop_g24_mode 
+
+p_g24_tx_attempt_fail:
+0155 58000000 setarg 0 
+0156 60014ba4 store 2 ,mem_24g_txfail_cnt 
+
+p_g24_stop_g24_mode:
+0157 700a993a jam bt_evt_24g_attempt_fail ,mem_fifo_temp 
+0158 20207d86 branch ui_ipc_send_event 
+
+p_g24_ackpayload_parse:
+0159 204001e5 call p_g24_read_len_pid_crc 
+015a 6800cb9c fetch 1 ,mem_24g_rxdata_length 
+015b 207a0000 rtn blank 
+015c 98007200 iforce loopcnt 
+015d d8c04b1a arg mem_24g_rxbuf + 2 ,contr 
+015e d8a04b7c arg mem_24g_rxpayload ,contw 
+015f 20207f01 branch memcpy 
+
+p_g24_start_pairing_sm1:
+0160 79200026 set1 mark_24g ,mark 
+0161 20400164 call p_g24_pair_init 
+
+p_g24_set_pairing_sm_1:
+0162 704bae01 jam state_24g_pairing_1 ,mem_24g_pairing_sm 
+0163 20600000 rtn 
+
+p_g24_pair_init:
+0164 7041de20 jam tx_power_pair ,mem_tx_power 
+0165 704b9d00 jam 0 ,mem_24g_pid 
+0166 704ba84e jam g24_pair_ch ,mem_24g_ch 
+0167 68024baa fetch 4 ,mem_24g_paring_addr 
+0168 202001f2 branch p_g24_update_addr_and_synccrc8 
+
+p_g24_pairing_sm:
+0169 6800cba3 fetch 1 ,mem_24g_ensure 
+016a c000ffe7 beq ensure_on_24g ,enable_user 
+016b 6800cbae fetch 1 ,mem_24g_pairing_sm 
+016c c0008170 beq state_24g_pairing_1 ,p_g24_pairing_sm_1 
+016d c0010173 beq state_24g_pairing_2 ,p_g24_pairing_sm_2 
+016e c0018176 beq state_24g_pairing_3 ,p_g24_pairing_sm_3 
+016f 20202a8c branch assert 
+
+p_g24_pairing_sm_1:
+0170 704bae11 jam state_24g_pairing_1_waiting_ack ,mem_24g_pairing_sm 
+0171 70119eaa jam 0xaa ,mem_24g_common_temp 
+0172 20200178 branch p_g24_pairing_sm_common 
+
+p_g24_pairing_sm_2:
+0173 704bae12 jam state_24g_pairing_2_waiting_ack ,mem_24g_pairing_sm 
+0174 70119e55 jam 0x55 ,mem_24g_common_temp 
+0175 20200178 branch p_g24_pairing_sm_common 
+
+p_g24_pairing_sm_3:
+0176 704bae13 jam state_24g_pairing_3_waiting_ack ,mem_24g_pairing_sm 
+0177 70119e22 jam 0x22 ,mem_24g_common_temp 
+
+p_g24_pairing_sm_common:
+0178 6800cb9f fetch 1 ,mem_24g_data_type 
+0179 1fe17e07 and_into bits_data ,pdata 
+017a 6000919f store 1 ,mem_24g_common_temp + 1 
+017b 68024bd5 fetch 4 ,mem_24g_device_addr 
+017c 600211a0 store 4 ,mem_24g_common_temp + 2 
+
+p_g24_put_pairing_data_in_buff:
+017d 7011a400 jam 0 ,mem_24g_common_temp + 6 
+017e da20119e arg mem_24g_common_temp ,rega 
+017f d8400007 arg 7 ,temp 
+0180 204001e0 call p_g24_put_data_in_buff 
+0181 204000f3 call p_g24_txdata_enable_tx 
+0182 20207fe7 branch enable_user 
+
+p_g24_paring_mode:
+0183 6800cbae fetch 1 ,mem_24g_pairing_sm 
+0184 c17f8000 rtneq state_24g_pairing_success 
+0185 c0088189 beq state_24g_pairing_1_waiting_ack ,p_g24_pairing_sm_1_waiting_ack 
+0186 c009018b beq state_24g_pairing_2_waiting_ack ,p_g24_pairing_sm_2_waiting_ack 
+0187 c009818d beq state_24g_pairing_3_waiting_ack ,p_g24_pairing_sm_3_waiting_ack 
+0188 20600000 rtn 
+
+p_g24_pairing_sm_1_waiting_ack:
+0189 704bae02 jam state_24g_pairing_2 ,mem_24g_pairing_sm 
+018a 20200123 branch p_g24_transmit_abandon 
+
+p_g24_pairing_sm_2_waiting_ack:
+018b 704bae03 jam state_24g_pairing_3 ,mem_24g_pairing_sm 
+018c 20200123 branch p_g24_transmit_abandon 
+
+p_g24_pairing_sm_3_waiting_ack:
+018d 704baeff jam state_24g_pairing_success ,mem_24g_pairing_sm 
+018e 700a9939 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
+018f 20407d86 call ui_ipc_send_event 
+0190 68024b7e fetch 4 ,mem_24g_rxpayload + 2 
+0191 204001f2 call p_g24_update_addr_and_synccrc8 
+0192 20200123 branch p_g24_transmit_abandon 
+
+p_g24_start_24g_mode:
+0193 793f8026 set0 mark_24g ,mark 
+0194 204001d6 call p_g24_ch_syncword_crc8_init 
+0195 6800cbae fetch 1 ,mem_24g_pairing_sm 
+0196 c1ff8000 rtnne state_24g_pairing_success 
+0197 204001a8 call p_g24_tx_attemp_data_prep 
+
+p_g24_tx_attemp_dongle:
+0198 58000000 setarg 0 
+0199 60014bcb store 2 ,mem_24g_check_dongle_times 
+
+p_g24_tx_attemp_dongle_loop:
+019a 20402afa call lpo_calibration 
+019b 200007d0 nop 2000 
+019c 6800cbcb fetch 1 ,mem_24g_check_dongle_times 
+019d c07f8157 beq 0xff ,p_g24_stop_g24_mode 
+019e 2040012e call p_g24_transmit_receive_ack 
+019f 242c01b1 nbranch p_g24_attemp_txdata_retry ,sync 
+01a0 243781b1 nbranch p_g24_attemp_txdata_retry ,user3 
+
+p_g24_tx_attemp_dongle_succ:
+01a1 79200026 set1 mark_24g ,mark 
+01a2 58000000 setarg 0 
+01a3 60014bcb store 2 ,mem_24g_check_dongle_times 
+01a4 700a993c jam bt_evt_24g_attempt_success ,mem_fifo_temp 
+01a5 20407d86 call ui_ipc_send_event 
+01a6 20400129 call p_g24_txbuf_clear 
+01a7 20200076 branch p_g24_transmit_by_interrupt_enable 
+
+p_g24_tx_attemp_data_prep:
+01a8 70119eff jam 0xff ,mem_24g_common_temp 
+01a9 6800cb9f fetch 1 ,mem_24g_data_type 
+01aa 6000919f store 1 ,mem_24g_common_temp + 1 
+01ab 68024bd5 fetch 4 ,mem_24g_device_addr 
+01ac 600211a0 store 4 ,mem_24g_common_temp + 2 
+01ad d8400006 arg 6 ,temp 
+01ae da20119e arg mem_24g_common_temp ,rega 
+01af 204001e0 call p_g24_put_data_in_buff 
+01b0 20200200 branch p_g24_transmit_prep 
+
+p_g24_attemp_txdata_retry:
+01b1 68014bcb fetch 2 ,mem_24g_check_dongle_times 
+01b2 1fe0fe01 increase 1 ,pdata 
+01b3 60014bcb store 2 ,mem_24g_check_dongle_times 
+01b4 20400212 call p_g24_ch 
+01b5 2020019a branch p_g24_tx_attemp_dongle_loop 
+
+p_g24_auto_pair_start:
+01b6 793f8026 set0 mark_24g ,mark 
+01b7 204001d2 call p_g24_auto_pair_all_powerful 
+01b8 204001a8 call p_g24_tx_attemp_data_prep 
+
+p_g24_auto_pair_restart:
+01b9 704bcb00 jam 0 ,mem_24g_check_dongle_times 
+
+p_g24_auto_pair_start_loop:
+01ba 20402afa call lpo_calibration 
+01bb 200007d0 nop 2000 
+01bc 6800cbcb fetch 1 ,mem_24g_check_dongle_times 
+01bd c07f8157 beq 0xff ,p_g24_stop_g24_mode 
+01be 2040012e call p_g24_transmit_receive_ack 
+01bf 242c01c8 nbranch p_g24_auto_pair_retry ,sync 
+01c0 243781c8 nbranch p_g24_auto_pair_retry ,user3 
+01c1 20400159 call p_g24_ackpayload_parse 
+01c2 204002e9 call p_mouse_tx_power_init 
+01c3 68024bc6 fetch 4 ,mem_24g_addr 
+01c4 680a4baa fetcht 4 ,mem_24g_paring_addr 
+01c5 98467c00 isub temp ,null 
+01c6 20228160 branch p_g24_start_pairing_sm1 ,zero 
+01c7 202001a1 branch p_g24_tx_attemp_dongle_succ 
+
+p_g24_auto_pair_retry:
+01c8 6800cbcb fetch 1 ,mem_24g_check_dongle_times 
+01c9 1fe0fe01 increase 1 ,pdata 
+01ca 6000cbcb store 1 ,mem_24g_check_dongle_times 
+01cb 6800ccdc fetch 1 ,mem_24g_auto_paring_switch 
+01cc 1fe0fe01 increase 1 ,pdata 
+01cd 1fe17e01 and_into 1 ,pdata 
+01ce 6000ccdc store 1 ,mem_24g_auto_paring_switch 
+01cf c00001d8 beq 0 ,p_g24_auto_pair_device_attemp 
+01d0 c00081da beq 1 ,p_g24_auto_pair_pair_attemp 
+01d1 20600000 rtn 
+
+p_g24_auto_pair_all_powerful:
+01d2 7041de20 jam tx_power_pair ,mem_tx_power 
+01d3 58000f0f setarg 0x0f0f 
+01d4 60014bc6 store 2 ,mem_24g_addr 
+01d5 e0a10000 istore 2 ,contw 
+
+p_g24_ch_syncword_crc8_init:
+01d6 204001f3 call p_g24_syncword_crc8 
+01d7 20200212 branch p_g24_ch 
+
+p_g24_auto_pair_device_attemp:
+01d8 204001d2 call p_g24_auto_pair_all_powerful 
+01d9 202001ba branch p_g24_auto_pair_start_loop 
+
+p_g24_auto_pair_pair_attemp:
+01da 20400164 call p_g24_pair_init 
+01db 202001ba branch p_g24_auto_pair_start_loop 
+
+p_g24_check_51cmd_stop_24g:
+01dc 793f8026 set0 mark_24g ,mark 
+01dd 204053ce call le_disable 
+
+p_mouse_disable_g24_pairing_flag:
+01de d8e00003 arg mosue_24g_pairing_flag ,queue 
+01df 202043d2 branch mouse_disable_function_flag 
+
+p_g24_put_data_in_buff:
+01e0 6008cb9e storet 1 ,mem_24g_datalen 
+01e1 18427200 copy temp ,loopcnt 
+01e2 d8a04b3a arg mem_24g_txbuf ,contw 
+01e3 1a220c00 copy rega ,contr 
+01e4 20207f01 branch memcpy 
+
+p_g24_read_len_pid_crc:
+01e5 6800cb19 fetch 1 ,mem_24g_rxbuf + 1 
+01e6 1fe97e00 rshift3 pdata ,pdata 
+01e7 6000cb9c store 1 ,mem_24g_rxdata_length 
+01e8 1fe0fe01 increase 1 ,pdata 
+01e9 d8c04b19 arg mem_24g_rxbuf + 1 ,contr 
+01ea 98c08c00 iadd contr ,contr 
+01eb e8c18000 ifetch 3 ,contr 
+01ec 6001cbdb store 3 ,mem_24g_sta_crc 
+01ed 6800cb19 fetch 1 ,mem_24g_rxbuf + 1 
+01ee 1fe37e00 rshift pdata ,pdata 
+01ef 1fe17e03 and pdata ,0x03 ,pdata 
+01f0 6000cbe1 store 1 ,mem_24g_sta_pid 
+01f1 20600000 rtn 
+
+p_g24_update_addr_and_synccrc8:
+01f2 60024bc6 store 4 ,mem_24g_addr 
+
+p_g24_syncword_crc8:
+01f3 da200000 arg 0 ,rega 
+01f4 df200004 arg 4 ,loopcnt 
+01f5 d8c04bc6 arg mem_24g_addr ,contr 
+
+p_g24_syncword_crc8_loop:
+01f6 e8c08000 ifetch 1 ,contr 
+01f7 9a20a200 iadd rega ,rega 
+01f8 c20001f6 loop p_g24_syncword_crc8_loop 
+01f9 1a227e00 copy rega ,pdata 
+01fa 60014c4f store 2 ,mem_24g_syncword 
+01fb 6800cc4f fetch 1 ,mem_24g_syncword 
+01fc 6808cc50 fetcht 1 ,mem_24g_syncword + 1 
+01fd 9840fe00 iadd temp ,pdata 
+01fe 6000cc51 store 1 ,mem_24g_syncword_crc8 
+01ff 20600000 rtn 
+
+p_g24_transmit_prep:
+0200 6800cb9e fetch 1 ,mem_24g_datalen 
+0201 1fe0fe02 increase 2 ,pdata 
+0202 6000cba0 store 1 ,mem_24g_txlen 
+0203 6800cb9f fetch 1 ,mem_24g_data_type 
+0204 6000cb5a store 1 ,mem_24g_txpayload 
+0205 6800cb9e fetch 1 ,mem_24g_datalen 
+0206 1fe9fe00 lshift3 pdata ,pdata 
+0207 6808cb9d fetcht 1 ,mem_24g_pid 
+0208 18410403 and temp ,0x03 ,temp 
+0209 18438400 lshift temp ,temp 
+020a 9841fe00 ior temp ,pdata 
+020b 6808cbda fetcht 1 ,mem_24g_no_ack 
+020c 9840fe00 iadd temp ,pdata 
+020d e0a08000 istore 1 ,contw 
+020e 6800cb9e fetch 1 ,mem_24g_datalen 
+020f 98007200 iforce loopcnt 
+0210 d8c04b3a arg mem_24g_txbuf ,contr 
+0211 20207f01 branch memcpy 
+
+p_g24_ch:
+0212 6808cba9 fetcht 1 ,mem_24g_current_ch_number 
+0213 20400216 call p_g24_ch_map_size 
+0214 6008cba9 storet 1 ,mem_24g_current_ch_number 
+0215 20600000 rtn 
+
+p_g24_ch_map_size:
+0216 2040021a call p_g24_ch_calc 
+0217 18408401 increase 1 ,temp 
+0218 18410403 and_into 3 ,temp 
+0219 20600000 rtn 
+
+p_g24_ch_calc:
+021a 6800cbc6 fetch 1 ,mem_24g_addr 
+021b 1fe17e03 and_into 0x03 ,pdata 
+021c 1fefa204 mul32 pdata ,4 ,rega 
+021d 58004baf setarg mem_24g_ch_map1 
+021e 9a20fe00 iadd rega ,pdata 
+021f 98408c00 iadd temp ,contr 
+0220 e8c08000 ifetch 1 ,contr 
+0221 6000cba8 store 1 ,mem_24g_ch 
+0222 20600000 rtn 
+
+p_g24_prep:
+0223 7844fc00 disable enable_crc 
+0224 7843fc00 disable enable_white 
+0225 58555555 setarg 0x555555 
+0226 98001e00 iforce crc24_init 
+0227 6800cba8 fetch 1 ,mem_24g_ch 
+0228 1fed8400 reverse pdata ,temp 
+0229 79200401 set1 1 ,temp 
+022a 18431c00 rshift temp ,white_init 
+022b 20600000 rtn 
+
+p_g24_receive_packet:
+022c 204053c4 call le_enable 
+022d 68024bc6 fetch 4 ,mem_24g_addr 
+022e 98001200 iforce access 
+022f 20402918 call set_sync_on 
+0230 6808cba8 fetcht 1 ,mem_24g_ch 
+0231 2040291f call set_freq_rx 
+0232 58000500 setarg param_pll_setup 
+0233 20402a8f call sleep 
+0234 20402924 call rf_rx_enable 
+
+p_g24_receive_rxon:
+0235 20400223 call p_g24_prep 
+0236 7857fc00 disable user3 
+0237 7826fc00 enable decode_fec0 
+0238 7830fc00 enable is_rx 
+0239 78507c00 disable is_tx 
+023a 78287c00 enable swfine 
+023b 68014ba1 fetch 2 ,mem_24g_rx_window 
+023c 98003600 iforce stop_watch 
+023d 37c18400 correlate null ,timeout 
+023e 242c0275 nbranch p_g24_sync_timeout ,sync 
+023f 7846fc00 disable decode_fec0 
+0240 7825fc00 enable decode_fec1 
+0241 7823fc00 enable enable_white 
+0242 7824fc00 enable enable_crc 
+0243 2040026e call p_g24_receive_byte 
+0244 6000cc52 store 1 ,mem_24g_get_syncword_crc8 
+0245 6808cc51 fetcht 1 ,mem_24g_syncword_crc8 
+0246 98467c00 isub temp ,null 
+0247 24228271 nbranch p_g24_end_of_packet ,zero 
+0248 2040026e call p_g24_receive_byte 
+0249 6000cb18 store 1 ,mem_24g_rxbuf 
+024a 6800cbe4 fetch 1 ,mem_24g_mode 
+024b 1fe67c02 sub pdata ,rx_24g ,null 
+024c 20228251 branch p_g24_receive_skip ,zero 
+024d 6800cb18 fetch 1 ,mem_24g_rxbuf 
+024e 6808cb9f fetcht 1 ,mem_24g_data_type 
+024f a8400e00 icompare bits_data ,temp 
+0250 24208271 nbranch p_g24_end_of_packet ,true 
+
+p_g24_receive_skip:
+0251 2040026e call p_g24_receive_byte 
+0252 e0a08000 istore 1 ,contw 
+0253 1fe97e00 rshift3 pdata ,pdata 
+0254 1fe1721f and pdata ,0x1f ,loopcnt 
+0255 20228259 branch p_g24rx_nopayload ,zero 
+
+p_g24rx_loop:
+0256 2040026e call p_g24_receive_byte 
+0257 e0a08000 istore 1 ,contw 
+0258 c2000256 loop p_g24rx_loop 
+
+p_g24rx_nopayload:
+0259 18a22200 copy contw ,rega 
+025a 2040026e call p_g24_receive_byte 
+025b 6000ccd9 store 1 ,mem_rssi_hex_received 
+025c 1a220a00 copy rega ,contw 
+025d 09800018 parse demod ,bucket ,24 
+025e 78287c00 enable swfine 
+025f db600664 arg param_sifs ,stop_watch 
+0260 1fef7e00 rshift32 pdata ,pdata 
+0261 1ff17e00 rshift16 pdata ,pdata 
+0262 e0a18000 istore 3 ,contw 
+0263 7845fc00 disable decode_fec1 
+0264 20230271 branch p_g24_end_of_packet ,crc_failed 
+0265 7837fc00 enable user3 
+0266 68008017 fetch 1 ,mem_last_freq 
+0267 1fe0a200 add pdata ,0 ,rega 
+0268 20402981 call rf_write_freq 
+0269 7846fc00 disable decode_fec0 
+026a 20402918 call set_sync_on 
+026b 6800ccd9 fetch 1 ,mem_rssi_hex_received 
+026c 20400027 call p_rssi_signal 
+026d 20600000 rtn 
+
+p_g24_receive_byte:
+026e 09800008 parse demod ,bucket ,8 
+026f 19897e00 rshift3 pwindow ,pdata 
+0270 20600000 rtn 
+
+p_g24_end_of_packet:
+0271 784dfc00 disable encode_fec1 
+0272 7845fc00 disable decode_fec1 
+0273 2040264d call end_of_packet 
+0274 20600000 rtn 
+
+p_g24_sync_timeout:
+0275 20200271 branch p_g24_end_of_packet 
+
+p_g24_set_freq_tx:
+0276 20402918 call set_sync_on 
+0277 6808cba8 fetcht 1 ,mem_24g_ch 
+0278 20202933 branch set_freq_tx 
+
+p_g24_transmit:
+0279 204053c4 call le_enable 
+027a 68024bc6 fetch 4 ,mem_24g_addr 
+027b 98001200 iforce access 
+027c 20400223 call p_g24_prep 
+027d 20400276 call p_g24_set_freq_tx 
+027e 79202a00 set1 txgfsk ,radio_ctrl 
+027f 782efc00 enable encode_fec0 
+0280 78307c00 enable is_tx 
+0281 7850fc00 disable is_rx 
+0282 19317e00 rshift16 access ,pdata 
+0283 1fecfe00 rshift8 pdata ,pdata 
+0284 1ff1fe00 rshift4 pdata ,pdata 
+0285 08008628 inject mod ,40 
+0286 784efc00 disable encode_fec0 
+0287 782dfc00 enable encode_fec1 
+0288 7823fc00 enable enable_white 
+0289 7824fc00 enable enable_crc 
+028a 6800cc51 fetch 1 ,mem_24g_syncword_crc8 
+028b 08008608 inject mod ,8 
+028c 6800cba0 fetch 1 ,mem_24g_txlen 
+028d 98007200 iforce loopcnt 
+028e d8c04b5a arg mem_24g_txpayload ,contr 
+
+p_g24tr_loop:
+028f e8c08000 ifetch 1 ,contr 
+0290 08008608 inject mod ,8 
+0291 c200028f loop p_g24tr_loop 
+0292 78247c00 enable enable_parity 
+0293 08008618 inject mod ,24 
+0294 78447c00 disable enable_parity 
+0295 37d38200 until null ,tx_clear 
+0296 20000064 nop 100 
+0297 784efc00 disable encode_fec0 
+0298 784dfc00 disable encode_fec1 
+0299 20600000 rtn 
+
+p_g24_timer_check:
+029a 20407fe9 call disable_user 
+029b 680a4bbf fetcht 4 ,mem_24g_tx_btclk 
+029c 1c427e00 copy clkn_bt ,pdata 
+029d 98467c00 isub temp ,null 
+029e 24412d18 ncall g24_timer_timeout ,positive 
+029f 1fe22400 copy pdata ,regb 
+02a0 68024bbf fetch 4 ,mem_24g_tx_btclk 
+02a1 6808cbc3 fetcht 1 ,mem_24g_interval 
+02a2 98408400 iadd temp ,temp 
+02a3 1a427e00 copy regb ,pdata 
+02a4 98467c00 isub temp ,null 
+02a5 24610000 nrtn positive 
+02a6 793ffe1c set0 28 ,pdata 
+02a7 60024bbf store 4 ,mem_24g_tx_btclk 
+02a8 20207fe7 branch enable_user 
+
+p_rssi_noise:
+02a9 204029bb call save_rssi 
+02aa 207a0000 rtn blank 
+02ab 6808cc58 fetcht 1 ,mem_rssi_noise_index 
+02ac da200d9e arg mem_rssi_noise_buffer ,rega 
+02ad 204002b0 call p_rssi_store 
+02ae 6008cc58 storet 1 ,mem_rssi_noise_index 
+02af 20600000 rtn 
+
+p_rssi_store:
+02b0 1a227e00 copy rega ,pdata 
+02b1 98408a00 iadd temp ,contw 
+02b2 68008018 fetch 1 ,mem_rssi 
+02b3 e0a08000 istore 1 ,contw 
+02b4 18408401 increase 1 ,temp 
+02b5 18410407 and_into rssi_buf_len_signal ,temp 
+02b6 20600000 rtn 
+
+p_rssi_average:
+02b7 d8400000 arg 0 ,temp 
+02b8 df200008 arg rssi_buf_len_signal + 1 ,loopcnt 
+02b9 1a220c00 copy rega ,contr 
+
+p_rssi_average_loop:
+02ba e8c08000 ifetch 1 ,contr 
+02bb 98408400 iadd temp ,temp 
+02bc c20002ba loop p_rssi_average_loop 
+02bd 18497e00 rshift3 temp ,pdata 
+02be 1fe20400 copy pdata ,temp 
+02bf c6930000 rtnmark0 mark_24g 
+02c0 1fe6fc0a div pdata ,10 
+02c1 20407f86 call wait_div_end 
+02c2 1807fe00 quotient pdata 
+02c3 1ff27e00 lshift4 pdata ,pdata 
+02c4 18070400 remainder temp 
+02c5 98418400 ior temp ,temp 
+02c6 20600000 rtn 
+02c7 20600000 rtn 
 
 p_mouse_before_lpm:
-0094 c6130000 rtnmark1 mark_24g 
-0095 204000aa call p_mouse_le_txbuff_save 
-0096 2040009e call p_mouse_setgpio_lpm 
-0097 6800c040 fetch 1 ,mem_context 
-0098 c300009b bbit0 state_inconn ,p_clear_wake 
-0099 680080a0 fetch 1 ,mem_lpm_current_mult 
-009a 247a0000 nrtn blank 
+02c8 c6130000 rtnmark1 mark_24g 
+02c9 204003ab call p_mouse_le_txbuff_save 
+02ca 204002d2 call p_mouse_setgpio_lpm 
+02cb 6800c040 fetch 1 ,mem_context 
+02cc c30002cf bbit0 state_inconn ,p_clear_wake 
+02cd 680080a0 fetch 1 ,mem_lpm_current_mult 
+02ce 247a0000 nrtn blank 
 
 p_clear_wake:
-009b 58000000 setarg 0 
-009c 600400a1 store 8 ,mem_gpio_wakeup_low 
-009d 20600000 rtn 
+02cf 58000000 setarg 0 
+02d0 600400a1 store 8 ,mem_gpio_wakeup_low 
+02d1 20600000 rtn 
 
 p_mouse_setgpio_lpm:
-009e 204000a7 call p_mouse_set_sdio_high 
-009f 2040009b call p_clear_wake 
-00a0 20403ebf call mouse_lpm_before_common 
-00a1 68120070 hfetch 4 ,core_gpio_oe0 
-00a2 681a0078 hfetcht 4 ,core_gpio_pu0 
-00a3 98418400 ior temp ,temp 
-00a4 18440400 invert temp ,temp 
-00a5 601a007c hstoret 4 ,core_gpio_pd0 
-00a6 20600000 rtn 
+02d2 204002db call p_mouse_set_sdio_high 
+02d3 204002cf call p_clear_wake 
+02d4 20403ebf call mouse_lpm_before_common 
+02d5 68120070 hfetch 4 ,core_gpio_oe0 
+02d6 681a0078 hfetcht 4 ,core_gpio_pu0 
+02d7 98418400 ior temp ,temp 
+02d8 18440400 invert temp ,temp 
+02d9 601a007c hstoret 4 ,core_gpio_pd0 
+02da 20600000 rtn 
 
 p_mouse_set_sdio_high:
-00a7 6800cafe fetch 1 ,mem_mouse_init_sensor_reset_flag 
-00a8 207a0000 rtn blank 
-00a9 20200283 branch p_mouse_seting_dpi + 1 
-
-p_mouse_le_txbuff_save:
-00aa d8c01800 arg mem_le_tx_buffer0 ,contr 
-00ab d8a0480a arg mem_le_tx_buffer0_omemalloc ,contw 
-00ac 204000b5 call p_mouse_le_txbuff_copy 
-00ad d8c01900 arg mem_le_tx_buffer1 ,contr 
-00ae d8a04825 arg mem_le_tx_buffer1_omemalloc ,contw 
-00af 204000b5 call p_mouse_le_txbuff_copy 
-00b0 d8c01a00 arg mem_le_tx_buffer2 ,contr 
-00b1 d8a04840 arg mem_le_tx_buffer2_omemalloc ,contw 
-00b2 204000b5 call p_mouse_le_txbuff_copy 
-00b3 d8c01b00 arg mem_le_tx_buffer3 ,contr 
-00b4 d8a0485b arg mem_le_tx_buffer3_omemalloc ,contw 
-
-p_mouse_le_txbuff_copy:
-00b5 df20001b arg 27 ,loopcnt 
-00b6 20207f01 branch memcpy 
-
-p_mouse_le_txbuff_load:
-00b7 d8c0480a arg mem_le_tx_buffer0_omemalloc ,contr 
-00b8 d8a01800 arg mem_le_tx_buffer0 ,contw 
-00b9 204000b5 call p_mouse_le_txbuff_copy 
-00ba d8c04825 arg mem_le_tx_buffer1_omemalloc ,contr 
-00bb d8a01900 arg mem_le_tx_buffer1 ,contw 
-00bc 204000b5 call p_mouse_le_txbuff_copy 
-00bd d8c04840 arg mem_le_tx_buffer2_omemalloc ,contr 
-00be d8a01a00 arg mem_le_tx_buffer2 ,contw 
-00bf 204000b5 call p_mouse_le_txbuff_copy 
-00c0 d8c0485b arg mem_le_tx_buffer3_omemalloc ,contr 
-00c1 d8a01b00 arg mem_le_tx_buffer3 ,contw 
-00c2 202000b5 branch p_mouse_le_txbuff_copy 
+02db 6800cafe fetch 1 ,mem_mouse_init_sensor_reset_flag 
+02dc 207a0000 rtn blank 
+02dd 202004cd branch p_mouse_seting_dpi_diff 
 
 p_device_init:
-00c3 20403416 call app_lpm_mult_enable 
-00c4 203580cd branch p_device_init_common ,wake 
-00c5 70807820 jam 0x20 ,core_gpio_pu0 
-00c6 204006e4 call p_mouse_data_init 
-00c7 6800c1de fetch 1 ,mem_tx_power 
-00c8 6000cc48 store 1 ,mem_tx_power_temp 
-00c9 204004f9 call power_ctrl_pac_succ_cnt_init 
-00ca 6800c685 fetch 1 ,mem_ui_button_timeout 
-00cb 6000c6da store 1 ,mem_combination_ui_button_count 
-00cc 204043ca call mouse_bt_discovery_button_down_disable 
+02de 20403416 call app_lpm_mult_enable 
+02df 203582e7 branch p_device_init_common ,wake 
+02e0 204003cb call p_mouse_data_init 
+02e1 6800c1de fetch 1 ,mem_tx_power 
+02e2 6000cc55 store 1 ,mem_tx_power_temp 
+02e3 20400680 call power_ctrl_pac_succ_cnt_init 
+02e4 6800c685 fetch 1 ,mem_ui_button_timeout 
+02e5 6000c6da store 1 ,mem_combination_ui_button_count 
+02e6 204043ca call mouse_bt_discovery_button_down_disable 
 
 p_device_init_common:
-00cd 204000d2 call p_mouse_init 
-00ce 202074b9 branch enable_authrom 
+02e7 204002ec call p_mouse_init 
+02e8 202074b9 branch enable_authrom 
 
 p_mouse_tx_power_init:
-00cf 6800cc48 fetch 1 ,mem_tx_power_temp 
-00d0 6000c1de store 1 ,mem_tx_power 
-00d1 20600000 rtn 
+02e9 6800cc55 fetch 1 ,mem_tx_power_temp 
+02ea 6000c1de store 1 ,mem_tx_power 
+02eb 20600000 rtn 
 
 p_mouse_init:
-00d2 24558123 ncall p_mouse_setting_config ,wake 
-00d3 20400102 call p_mouse_spi_init 
-00d4 20758000 rtn wake 
-00d5 20400174 call p_mouse_cb_fuction 
-00d6 20404083 call mouse_check_key_gpio 
-00d7 c00280f0 beq mouse_lm_button ,p_mouse_24g_pairing_button 
-00d8 2020015d branch p_mouse_wakeup_from_power 
+02ec 2455833d ncall p_mouse_setting_config ,wake 
+02ed 2040031c call p_mouse_spi_init 
+02ee 20758000 rtn wake 
+02ef 20400394 call p_mouse_cb_fuction 
+02f0 20404083 call mouse_check_key_gpio 
+02f1 c002830a beq mouse_lm_button ,p_mouse_24g_pairing_button 
+02f2 2020037a branch p_mouse_wakeup_from_power 
 
 p_mouse_check_reconn_target:
-00d9 204000cf call p_mouse_tx_power_init 
-00da 6800c210 fetch 1 ,mem_xrecord_mode 
-00db c01980de beq rec_3_mode ,p_mouse3_0_check_reconn_target 
-00dc c01a00e1 beq rec_4_mode ,p_mouse4_0_check_reconn_target 
-00dd 20600000 rtn 
+02f3 204002e9 call p_mouse_tx_power_init 
+02f4 6800c210 fetch 1 ,mem_xrecord_mode 
+02f5 c01982f8 beq rec_3_mode ,p_mouse3_0_check_reconn_target 
+02f6 c01a02fb beq rec_4_mode ,p_mouse4_0_check_reconn_target 
+02f7 20600000 rtn 
 
 p_mouse3_0_check_reconn_target:
-00de 680341d0 fetch 6 ,mem_hci_plap 
-00df 203a33eb branch app_bt_start_discovery_short ,blank 
-00e0 20204274 branch mouse3_0_check_reconn_target + 3 
+02f8 680341d0 fetch 6 ,mem_hci_plap 
+02f9 203a33eb branch app_bt_start_discovery_short ,blank 
+02fa 20204274 branch mouse3_0_check_reconn_target + 3 
 
 p_mouse4_0_check_reconn_target:
-00e1 70479f01 jam 1 ,mem_mouse_le_reconnect_flag 
-00e2 680146a8 fetch 2 ,mem_mouse_direct_timeout 
-00e3 600146ae store 2 ,mem_mouse_direct_timer 
-00e4 20403418 call app_lpm_mult_disable 
-00e5 204000e9 call p_le_check_adv_flag 
-00e6 58000004 setarg adv_flag_bredr_not_supported 
-00e7 e0c08000 istore 1 ,contr 
-00e8 20207df4 branch check_51cmd_adv 
+02fb 70479f01 jam 1 ,mem_mouse_le_reconnect_flag 
+02fc 680146a8 fetch 2 ,mem_mouse_direct_timeout 
+02fd 600146ae store 2 ,mem_mouse_direct_timer 
+02fe 20403418 call app_lpm_mult_disable 
+02ff 20400303 call p_le_check_adv_flag 
+0300 58000004 setarg adv_flag_bredr_not_supported 
+0301 e0c08000 istore 1 ,contr 
+0302 20207df4 branch check_51cmd_adv 
 
 p_le_check_adv_flag:
-00e9 da204370 arg mem_le_adv_data ,rega 
+0303 da204370 arg mem_le_adv_data ,rega 
 
 p_le_check_adv_flag_loop:
-00ea ea208000 ifetch 1 ,rega 
-00eb 207a0000 rtn blank 
-00ec 98c0a200 iadd contr ,rega 
-00ed e8c08000 ifetch 1 ,contr 
-00ee c1008000 rtneq 0x01 
-00ef 202000ea branch p_le_check_adv_flag_loop 
+0304 ea208000 ifetch 1 ,rega 
+0305 207a0000 rtn blank 
+0306 98c0a200 iadd contr ,rega 
+0307 e8c08000 ifetch 1 ,contr 
+0308 c1008000 rtneq 0x01 
+0309 20200304 branch p_le_check_adv_flag_loop 
 
 p_mouse_24g_pairing_button:
-00f0 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-00f1 c4088000 rtnbit0 mouse_enable_24g 
-00f2 c3818000 rtnbit1 mosue_24g_pairing_flag 
-00f3 c6130000 rtnmark1 mark_24g 
-00f4 20404482 call mouse_devce_led_off 
-00f5 d8e00003 arg mosue_24g_pairing_flag ,queue 
-00f6 204043ce call mouse_enable_function_flag 
-00f7 58000000 setarg 0 
-00f8 600146ae store 2 ,mem_mouse_direct_timer 
-00f9 6000c6b4 store 1 ,mem_mouse_send_blank_timer 
-00fa 60014bbe store 2 ,mem_24g_check_dongle_times 
-00fb 204042ca call mouse_stop_discovery 
-00fc 2020053e branch p_g24_start_pairing_sm1 
+030a 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+030b c4088000 rtnbit0 mouse_enable_24g 
+030c c3818000 rtnbit1 mosue_24g_pairing_flag 
+030d c6130000 rtnmark1 mark_24g 
+030e 20404482 call mouse_devce_led_off 
+030f d8e00003 arg mosue_24g_pairing_flag ,queue 
+0310 204043ce call mouse_enable_function_flag 
+0311 58000000 setarg 0 
+0312 600146ae store 2 ,mem_mouse_direct_timer 
+0313 6000c6b4 store 1 ,mem_mouse_send_blank_timer 
+0314 60014bcb store 2 ,mem_24g_check_dongle_times 
+0315 204042ca call mouse_stop_discovery 
+0316 20200160 branch p_g24_start_pairing_sm1 
 
 p_mouse_dpi_config:
-00fd 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-00fe c30a3d66 bbit0 mouse_enable_eeprom ,mouse_dpi_config 
-00ff 6800c77a fetch 1 ,mem_mouse_dpi 
-0100 c07fbd66 beq 0xff ,mouse_dpi_config 
-0101 20203d80 branch mouse_seting_dpi + 2 
+0317 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+0318 c30a3d66 bbit0 mouse_enable_eeprom ,mouse_dpi_config 
+0319 6800c77a fetch 1 ,mem_mouse_dpi 
+031a c07fbd66 beq 0xff ,mouse_dpi_config 
+031b 20203d80 branch mouse_seting_dpi + 2 
 
 p_mouse_spi_init:
-0102 70421276 jam 0x76 ,mem_spi_init_clk 
-0103 20203d36 branch mouse_spi_init 
+031c 70421276 jam 0x76 ,mem_spi_init_clk 
+031d 20203d36 branch mouse_spi_init 
 
 p_mouse_init_sunt:
-0104 20400102 call p_mouse_spi_init 
-0105 204040c0 call mouse_spi_sdio_gpio_pollup 
-0106 6800c6e0 fetch 1 ,mem_config_sensor_type 
-0107 c002c0d5 beq p3610 ,mouse_init_3610sensor 
+031e 2040031c call p_mouse_spi_init 
+031f 204040c0 call mouse_spi_sdio_gpio_pollup 
+0320 6800c6e0 fetch 1 ,mem_config_sensor_type 
+0321 c002c0d5 beq p3610 ,mouse_init_3610sensor 
 
 p_mouse_init_sensor:
-0108 204040d9 call mouse_read_sensor_id 
-0109 c0180112 beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
-010a c0188114 beq p3065_id1 ,p_mouse_p3065_init_param 
-010b 204040d1 call mouse_twspi_reset 
-010c 200003e8 nop 1000 
-010d 20200108 branch p_mouse_init_sensor 
+0322 204040d9 call mouse_read_sensor_id 
+0323 c018032c beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
+0324 c018832e beq p3065_id1 ,p_mouse_p3065_init_param 
+0325 204040d1 call mouse_twspi_reset 
+0326 200003e8 nop 1000 
+0327 20200322 branch p_mouse_init_sensor 
 
 p_mouse_init_sensor_reset:
-010e 704afe01 jam 1 ,mem_mouse_init_sensor_reset_flag 
-010f 2040640f call spi_ncs_enable 
-0110 20400104 call p_mouse_init_sunt 
-0111 20206411 branch spi_ncs_disable 
+0328 704afe01 jam 1 ,mem_mouse_init_sensor_reset_flag 
+0329 2040640f call spi_ncs_enable 
+032a 2040031e call p_mouse_init_sunt 
+032b 20206411 branch spi_ncs_disable 
 
 p_mouse_init_p32xx_id2_judge:
-0112 20400119 call p_mouse_sensor_poweron 
-0113 202040e0 branch mouse_init_p32xx_id2_judge 
+032c 20400333 call p_mouse_sensor_poweron 
+032d 202040e0 branch mouse_init_p32xx_id2_judge 
 
 p_mouse_p3065_init_param:
-0114 20400119 call p_mouse_sensor_poweron 
-0115 6800c6de fetch 1 ,mem_sensor_id2 
-0116 c03840e8 beq p3065_xy_id2 ,mouse_p3065xy_init_param 
-0117 7046e001 jam p3065 ,mem_config_sensor_type 
-0118 20600000 rtn 
+032e 20400333 call p_mouse_sensor_poweron 
+032f 6800c6de fetch 1 ,mem_sensor_id2 
+0330 c03840e8 beq p3065_xy_id2 ,mouse_p3065xy_init_param 
+0331 7046e001 jam p3065 ,mem_config_sensor_type 
+0332 20600000 rtn 
 
 p_mouse_sensor_poweron:
-0119 58008006 setarg 0x8006 
-011a 20406413 call twspi_write 
-011b 20002ee0 nop 12000 
-011c 202000fd branch p_mouse_dpi_config 
+0333 58008006 setarg 0x8006 
+0334 20406413 call twspi_write 
+0335 20002ee0 nop 12000 
+0336 20200317 branch p_mouse_dpi_config 
 
 p_mouse_sensor_powerdown:
-011d 58000006 setarg 0x06 
-011e 20406414 call twspi_read 
-011f 1fe1fe08 or pdata ,0x08 ,pdata 
-0120 1fed7e00 lshift8 pdata ,pdata 
-0121 1fe0fe06 add pdata ,0x06 ,pdata 
-0122 20206413 branch twspi_write 
+0337 58000006 setarg 0x06 
+0338 20406414 call twspi_read 
+0339 1fe1fe08 or pdata ,0x08 ,pdata 
+033a 1fed7e00 lshift8 pdata ,pdata 
+033b 1fe0fe06 add pdata ,0x06 ,pdata 
+033c 20206413 branch twspi_write 
 
 p_mouse_setting_config:
-0123 2040042e call p_g24_set_device_addr 
-0124 20403e6e call mouse_gpio_init 
-0125 20403e1e call mouse_param_init 
-0126 20400136 call p_mouse_bt_sdp_update 
-0127 58000000 setarg 0 
-0128 60014154 store 2 ,mem_lpm_interval 
-0129 20403e54 call mouse_adc_init 
-012a 20405810 call le_set_config_fixed_ltk 
-012b 20405839 call le_set_justwork 
-012c 2040582c call le_set_fixed_ltk 
-012d 20405818 call le_set_config_read_authentication 
+033d 20400096 call p_g24_set_device_addr 
+033e 68108a00 hfetch 1 ,core_usb_config 
+033f 793ffe04 set0 4 ,pdata 
+0340 60108a00 hstore 1 ,core_usb_config 
+0341 20403e6e call mouse_gpio_init 
+0342 20403e1e call mouse_param_init 
+0343 20400353 call p_mouse_bt_sdp_update 
+0344 58000000 setarg 0 
+0345 60014154 store 2 ,mem_lpm_interval 
+0346 20403e54 call mouse_adc_init 
+0347 20405810 call le_set_config_fixed_ltk 
+0348 20405839 call le_set_justwork 
+0349 2040582c call le_set_fixed_ltk 
+034a 20405818 call le_set_config_read_authentication 
 
 p_mouse_init_iic:
-012e 2040659c call iic_init_390k 
-012f 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-0130 2feffe19 isolate1 mouse_enable_2k_eeprom ,pdata 
-0131 2440e5c2 ncall clear_eeprom_size_2k ,true 
-0132 2040443f call mouse_load_eeprom_dpi 
-0133 20400151 call p_mouse_init_environment 
-0134 20400222 call p_mouse_set_24g_addr_eeprom 
-0135 202065df branch iicd_read_eep_data 
+034b 2040659c call iic_init_390k 
+034c 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+034d 2feffe19 isolate1 mouse_enable_2k_eeprom ,pdata 
+034e 2440e5c2 ncall clear_eeprom_size_2k ,true 
+034f 2040443f call mouse_load_eeprom_dpi 
+0350 2040036e call p_mouse_init_environment 
+0351 2040046c call p_mouse_set_24g_addr_eeprom 
+0352 202065df branch iicd_read_eep_data 
 
 p_mouse_bt_sdp_update:
-0136 204074b9 call enable_authrom 
-0137 d8c08c00 arg 0x8c00 ,contr 
-0138 d8a04876 arg mem_mouse_uuid_list ,contw 
-0139 df200171 arg 369 ,loopcnt 
-013a 20407f01 call memcpy 
-013b 580f0209 setarg 0x0f0209 
-013c e0a18000 istore 3 ,contw 
-013d 58120009 setarg 0x120009 
-013e e0a18000 istore 3 ,contw 
-013f 58100209 setarg 0x100209 
-0140 e0a18000 istore 3 ,contw 
-0141 58000009 setarg 0x000009 
-0142 e0a18000 istore 3 ,contw 
-0143 d8c08d71 arg 0x8d71 ,contr 
-0144 df200109 arg 265 ,loopcnt 
-0145 20407f01 call memcpy 
-0146 70488d00 jam 0 ,mem_mouse_uuid_list + 23 
-0147 7048856d jam 0x6d ,mem_mouse_uuid_list + 15 
-0148 5800401f setarg 0x401f 
-0149 600149db store 2 ,mem_mouse_uuid_list + 357 
-014a 58006d04 setarg 0x6d04 
-014b 60014a44 store 2 ,mem_mouse_uuid_list + 462 
-014c 580016b0 setarg 0x16b0 
-014d 60014a4a store 2 ,mem_mouse_uuid_list + 468 
-014e 58004876 setarg mem_mouse_uuid_list 
-014f 60014575 store 2 ,mem_ui_uuid_table 
-0150 20600000 rtn 
+0353 204074b9 call enable_authrom 
+0354 d8c08c00 arg 0x8c00 ,contr 
+0355 d8a04876 arg mem_mouse_uuid_list ,contw 
+0356 df200171 arg 369 ,loopcnt 
+0357 20407f01 call memcpy 
+0358 580f0209 setarg 0x0f0209 
+0359 e0a18000 istore 3 ,contw 
+035a 58120009 setarg 0x120009 
+035b e0a18000 istore 3 ,contw 
+035c 58100209 setarg 0x100209 
+035d e0a18000 istore 3 ,contw 
+035e 58000009 setarg 0x000009 
+035f e0a18000 istore 3 ,contw 
+0360 d8c08d71 arg 0x8d71 ,contr 
+0361 df200109 arg 265 ,loopcnt 
+0362 20407f01 call memcpy 
+0363 70488d00 jam 0 ,mem_mouse_uuid_list + 23 
+0364 7048856d jam 0x6d ,mem_mouse_uuid_list + 15 
+0365 5800401f setarg 0x401f 
+0366 600149db store 2 ,mem_mouse_uuid_list + 357 
+0367 58006d04 setarg 0x6d04 
+0368 60014a44 store 2 ,mem_mouse_uuid_list + 462 
+0369 580016b0 setarg 0x16b0 
+036a 60014a4a store 2 ,mem_mouse_uuid_list + 468 
+036b 58004876 setarg mem_mouse_uuid_list 
+036c 60014575 store 2 ,mem_ui_uuid_table 
+036d 20600000 rtn 
 
 p_mouse_init_environment:
-0151 204033c4 call app_initflag_check 
-0152 2022c316 branch mouse_eeprom_load_recon_info ,zero 
-0153 20400295 call p_le_addr_random_config 
-0154 20203dcb branch mouse_init_environment + 2 
+036e 204033c4 call app_initflag_check 
+036f 2022c316 branch mouse_eeprom_load_recon_info ,zero 
+0370 204004e6 call p_le_addr_random_config 
+0371 20203dcb branch mouse_init_environment + 2 
 
 p_app_flag_store:
-0155 d8400002 arg 2 ,temp 
-0156 da200aaa arg mem_timeup ,rega 
-0157 da400062 arg mouse_eeprom_module_init_flag ,regb 
-0158 202065d1 branch iicd_write_protect_eep_data 
+0372 d8400002 arg 2 ,temp 
+0373 da200aaa arg mem_timeup ,rega 
+0374 da400062 arg mouse_eeprom_module_init_flag ,regb 
+0375 202065d1 branch iicd_write_protect_eep_data 
 
 p_app_initflag_check:
-0159 d8400002 arg 2 ,temp 
-015a da200a9a arg mem_pdatatemp ,rega 
-015b da400062 arg mouse_eeprom_module_init_flag ,regb 
-015c 202033c8 branch app_initflag_check + 4 
+0376 d8400002 arg 2 ,temp 
+0377 da200a9a arg mem_pdatatemp ,rega 
+0378 da400062 arg mouse_eeprom_module_init_flag ,regb 
+0379 202033c8 branch app_initflag_check + 4 
 
 p_mouse_wakeup_from_power:
-015d 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-015e c30f0164 bbit0 mouse_enable_wakeup_from_power ,p_mouse_wakeup_no_from_power 
-015f 68008abd fetch 1 ,mem_wakup_from_power_flag 
-0160 2fec0003 isolate0 gpio_latch ,pdata 
-0161 24208164 nbranch p_mouse_wakeup_no_from_power ,true 
-0162 20400104 call p_mouse_init_sunt 
-0163 2040011d call p_mouse_sensor_powerdown 
+037a 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+037b c30f0381 bbit0 mouse_enable_wakeup_from_power ,p_mouse_wakeup_no_from_power 
+037c 68008abd fetch 1 ,mem_wakup_from_power_flag 
+037d 2fec0003 isolate0 gpio_latch ,pdata 
+037e 24208381 nbranch p_mouse_wakeup_no_from_power ,true 
+037f 2040031e call p_mouse_init_sunt 
+0380 20400337 call p_mouse_sensor_powerdown 
 
 p_mouse_wakeup_no_from_power:
-0164 6800c71f fetch 1 ,mem_reconn_times_init 
-0165 6000c71e store 1 ,mem_reconn_times 
+0381 6800c71f fetch 1 ,mem_reconn_times_init 
+0382 6000c71e store 1 ,mem_reconn_times 
+0383 6800c6f5 fetch 1 ,mem_config_function_enable 
+0384 c3828000 rtnbit1 enable_select_device_by_gpio_button 
+0385 c3830000 rtnbit1 enable_select_device_by_switch 
 
 p_mouse_start_24g_mode:
-0166 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-0167 c4088000 rtnbit0 mouse_enable_24g 
-0168 2040016b call p_g24_factory_check 
-0169 20340595 branch p_g24_auto_pair_start ,user 
-016a 20200572 branch p_g24_start_24g_mode 
+0386 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+0387 c4088000 rtnbit0 mouse_enable_24g 
+0388 2040038b call p_g24_factory_check 
+0389 203401b6 branch p_g24_auto_pair_start ,user 
+038a 20200193 branch p_g24_start_24g_mode 
 
 p_g24_factory_check:
-016b df200002 arg 2 ,loopcnt 
-016c d8c04bb9 arg mem_24g_addr ,contr 
+038b df200002 arg 2 ,loopcnt 
+038c d8c04bc6 arg mem_24g_addr ,contr 
 
 p_pdata_0xff_check:
-016d 20407fe7 call enable_user 
-016e 5800ffff setarg 0xffff 
+038d 20407fe7 call enable_user 
+038e 5800ffff setarg 0xffff 
 
 p_pdata_0xff_check_loop:
-016f e8c90000 ifetcht 2 ,contr 
-0170 98467c00 isub temp ,null 
-0171 2442ffe9 ncall disable_user ,zero 
-0172 c200016f loop p_pdata_0xff_check_loop 
-0173 20600000 rtn 
+038f e8c90000 ifetcht 2 ,contr 
+0390 98467c00 isub temp ,null 
+0391 2442ffe9 ncall disable_user ,zero 
+0392 c200038f loop p_pdata_0xff_check_loop 
+0393 20600000 rtn 
 
 p_mouse_cb_fuction:
-0174 58000187 setarg p_mouse_g24_package_data 
-0175 60014cc2 store 2 ,mem_cb_24g_data 
-0176 5800018b setarg p_mouse_le 
-0177 600141ef store 2 ,mem_cb_le_process 
-0178 58000355 setarg p_le_mouse_bb_event_connect_complete 
-0179 600141f9 store 2 ,mem_cb_att_write 
-017a 5800019d setarg p_mouse_bt 
-017b 600141f1 store 2 ,mem_cb_bt_process 
-017c 58000094 setarg p_mouse_before_lpm 
-017d 600141ed store 2 ,mem_cb_before_lpm 
-017e 580001c6 setarg p_mouse_priority_bb_event 
-017f 600141f5 store 2 ,mem_cb_bb_event_process 
-0180 580001c3 setarg p_mouse_idle 
-0181 600141f3 store 2 ,mem_cb_idle_process 
-0182 58000236 setarg p_mouse_before_hibernate 
-0183 600141eb store 2 ,mem_cb_before_hibernate 
-0184 58000244 setarg p_mouse_bb_event_timer 
-0185 600141fd store 2 ,mem_cb_event_timer 
-0186 20600000 rtn 
+0394 580003a7 setarg p_mouse_g24_package_data 
+0395 60014ccf store 2 ,mem_cb_24g_data 
+0396 580003be setarg p_mouse_le 
+0397 600141ef store 2 ,mem_cb_le_process 
+0398 580005a6 setarg p_le_mouse_bb_event_connect_complete 
+0399 600141f9 store 2 ,mem_cb_att_write 
+039a 580003ea setarg p_mouse_bt 
+039b 600141f1 store 2 ,mem_cb_bt_process 
+039c 580002c8 setarg p_mouse_before_lpm 
+039d 600141ed store 2 ,mem_cb_before_lpm 
+039e 58000413 setarg p_mouse_priority_bb_event 
+039f 600141f5 store 2 ,mem_cb_bb_event_process 
+03a0 58000410 setarg p_mouse_idle 
+03a1 600141f3 store 2 ,mem_cb_idle_process 
+03a2 5800047d setarg p_mouse_before_hibernate 
+03a3 600141eb store 2 ,mem_cb_before_hibernate 
+03a4 5800048b setarg p_mouse_bb_event_timer 
+03a5 600141fd store 2 ,mem_cb_event_timer 
+03a6 20600000 rtn 
 
 p_mouse_g24_package_data:
-0187 20404401 call mouse_g24_package_data 
-0188 6801469f fetch 2 ,mem_mouse_z 
-0189 207a0000 rtn blank 
-018a 20200076 branch p_g24_transmit_by_interrupt_enable 
+03a7 20404401 call mouse_g24_package_data 
+03a8 6801469f fetch 2 ,mem_mouse_z 
+03a9 207a0000 rtn blank 
+03aa 20200076 branch p_g24_transmit_by_interrupt_enable 
+
+p_mouse_le_txbuff_save:
+03ab d8c01800 arg mem_le_tx_buffer0 ,contr 
+03ac d8a0480a arg mem_le_tx_buffer0_omemalloc ,contw 
+03ad 204003b3 call p_mouse_le_txbuff_copy 
+03ae d8c01900 arg mem_le_tx_buffer1 ,contr 
+03af 204003b3 call p_mouse_le_txbuff_copy 
+03b0 d8c01a00 arg mem_le_tx_buffer2 ,contr 
+03b1 204003b3 call p_mouse_le_txbuff_copy 
+03b2 d8c01b00 arg mem_le_tx_buffer3 ,contr 
+
+p_mouse_le_txbuff_copy:
+03b3 df20001b arg 27 ,loopcnt 
+03b4 20207f01 branch memcpy 
+
+p_mouse_le_txbuff_load:
+03b5 d8c0480a arg mem_le_tx_buffer0_omemalloc ,contr 
+03b6 d8a01800 arg mem_le_tx_buffer0 ,contw 
+03b7 204003b3 call p_mouse_le_txbuff_copy 
+03b8 d8a01900 arg mem_le_tx_buffer1 ,contw 
+03b9 204003b3 call p_mouse_le_txbuff_copy 
+03ba d8a01a00 arg mem_le_tx_buffer2 ,contw 
+03bb 204003b3 call p_mouse_le_txbuff_copy 
+03bc d8a01b00 arg mem_le_tx_buffer3 ,contw 
+03bd 202003b3 branch p_mouse_le_txbuff_copy 
 
 p_mouse_le:
-018b 20405892 call le_fifo_check_nearly_full 
-018c 247a0000 nrtn blank 
-018d 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-018e 1fe17e03 and pdata ,0x03 ,pdata 
-018f c1818000 rtnne 0x03 
-0190 6800c79c fetch 1 ,mem_mouse_clear_sensor_data_flag 
-0191 205a01c0 call p_mouse_clear_sensor_data ,blank 
-0192 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-0193 c282c179 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
-0194 20403f97 call mouse_motion 
-0195 24740000 nrtn user 
-0196 20400198 call p_mouse_wheel_trigger 
-0197 202006e9 branch p_mouse_data_push 
+03be 20405892 call le_fifo_check_nearly_full 
+03bf 247a0000 nrtn blank 
+03c0 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+03c1 1fe17e03 and pdata ,0x03 ,pdata 
+03c2 c1818000 rtnne 0x03 
+03c3 6800c79c fetch 1 ,mem_mouse_clear_sensor_data_flag 
+03c4 205a040d call p_mouse_clear_sensor_data ,blank 
+03c5 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+03c6 c282c179 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
+03c7 20403f97 call mouse_motion 
+03c8 24740000 nrtn user 
+03c9 204003e5 call p_mouse_wheel_trigger 
+03ca 202003d0 branch p_mouse_data_push 
+
+p_mouse_data_init:
+03cb 7047a007 jam 7 ,mem_mouse_data_queue 
+03cc 7047a104 jam 4 ,mem_mouse_data_queue + 1 
+03cd 580047a0 setarg mem_mouse_data_queue 
+03ce 60014218 store 2 ,mem_queue_ptr 
+03cf 20207e38 branch queue_init 
+
+p_mouse_data_push:
+03d0 da20469a arg mem_mouse_key ,rega 
+03d1 20407e3d call queue_push 
+03d2 205403d4 call p_mouse_queue_increase ,user 
+03d3 20600000 rtn 
+
+p_mouse_queue_increase:
+03d4 6800c7c1 fetch 1 ,mem_mouse_data_queue_num 
+03d5 1fe0fe01 increase 1 ,pdata 
+03d6 6000c7c1 store 1 ,mem_mouse_data_queue_num 
+03d7 20600000 rtn 
+
+p_mouse_data_pull:
+03d8 da20469a arg mem_mouse_key ,rega 
+03d9 20407e54 call queue_pop 
+03da 203403dc branch p_mouse_fill_data_le ,user 
+03db 20600000 rtn 
+
+p_mouse_fill_data_le:
+03dc 20405652 call le_clear_md 
+03dd 6800c7c1 fetch 1 ,mem_mouse_data_queue_num 
+03de 1fe67c01 sub pdata ,1 ,null 
+03df 24415650 ncall le_set_md ,positive 
+03e0 6800c7c1 fetch 1 ,mem_mouse_data_queue_num 
+03e1 207a0000 rtn blank 
+03e2 1fe0ffff increase -1 ,pdata 
+03e3 6000c7c1 store 1 ,mem_mouse_data_queue_num 
+03e4 20203f90 branch mouse_fill_data_le 
 
 p_mouse_wheel_trigger:
-0198 6801469f fetch 2 ,mem_mouse_z 
-0199 207a0000 rtn blank 
-019a 70480601 jam 1 ,mem_mouse_wheel_trigger 
-019b 70480702 jam 2 ,mem_mouse_wheel_trigger_timer 
-019c 20600000 rtn 
+03e5 6801469f fetch 2 ,mem_mouse_z 
+03e6 207a0000 rtn blank 
+03e7 70480601 jam 1 ,mem_mouse_wheel_trigger 
+03e8 70480702 jam 2 ,mem_mouse_wheel_trigger_timer 
+03e9 20600000 rtn 
 
 p_mouse_bt:
-019d 20770000 rtn attempt 
-019e 6800c1e2 fetch 1 ,mem_app_handshake_flag 
-019f 207a0000 rtn blank 
-01a0 20405271 call l2cap_malloc_is_fifo_nearly_full 
-01a1 247a0000 nrtn blank 
-01a2 6800c79c fetch 1 ,mem_mouse_clear_sensor_data_flag 
-01a3 205a01c0 call p_mouse_clear_sensor_data ,blank 
-01a4 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-01a5 c282bf8a bbit1 mouse_bt_discovery_button_down_flag ,mouse_send_empty_data 
-01a6 c284bf8a bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_send_empty_data 
-01a7 20403f97 call mouse_motion 
-01a8 24740000 nrtn user 
-01a9 20400198 call p_mouse_wheel_trigger 
-01aa 6800cb03 fetch 1 ,mem_mouse_bt_boot_mode 
-01ab c00081af beq 1 ,p_mouse_send_data_boot_mode 
-01ac 6800cb0a fetch 1 ,mem_mouse_bt_send_first_package_flag 
-01ad 207a0000 rtn blank 
-01ae 20203f81 branch mouse_send_data 
+03ea 20770000 rtn attempt 
+03eb 6800c1e2 fetch 1 ,mem_app_handshake_flag 
+03ec 207a0000 rtn blank 
+03ed 20405271 call l2cap_malloc_is_fifo_nearly_full 
+03ee 247a0000 nrtn blank 
+03ef 6800c79c fetch 1 ,mem_mouse_clear_sensor_data_flag 
+03f0 205a040d call p_mouse_clear_sensor_data ,blank 
+03f1 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+03f2 c282bf8a bbit1 mouse_bt_discovery_button_down_flag ,mouse_send_empty_data 
+03f3 c284bf8a bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_send_empty_data 
+03f4 20403f97 call mouse_motion 
+03f5 24740000 nrtn user 
+03f6 204003e5 call p_mouse_wheel_trigger 
+03f7 6800cb03 fetch 1 ,mem_mouse_bt_boot_mode 
+03f8 c00083fc beq 1 ,p_mouse_send_data_boot_mode 
+03f9 6800cb0a fetch 1 ,mem_mouse_bt_send_first_package_flag 
+03fa 207a0000 rtn blank 
+03fb 20203f81 branch mouse_send_data 
 
 p_mouse_send_data_boot_mode:
-01af 6800c69a fetch 1 ,mem_mouse_key 
-01b0 6000cb04 store 1 ,mem_mouse_bt_boot_data 
-01b1 6800c69b fetch 1 ,mem_mouse_x 
-01b2 e0a08000 istore 1 ,contw 
-01b3 6800c69d fetch 1 ,mem_mouse_y 
-01b4 e0a08000 istore 1 ,contw 
-01b5 6801469f fetch 2 ,mem_mouse_z 
-01b6 e0a10000 istore 2 ,contw 
-01b7 da200007 arg 7 ,rega 
-01b8 20404d63 call hid_malloc_tx_buff 
-01b9 6801424e fetch 2 ,mem_hid_int_remote_cid 
-01ba e0a10000 istore 2 ,contw 
-01bb 580002a1 setarg 0x02a1 
-01bc e0a10000 istore 2 ,contw 
-01bd 6802cb04 fetch 5 ,mem_mouse_bt_boot_data 
-01be e0a28000 istore 5 ,contw 
-01bf 20600000 rtn 
+03fc 6800c69a fetch 1 ,mem_mouse_key 
+03fd 6000cb04 store 1 ,mem_mouse_bt_boot_data 
+03fe 6800c69b fetch 1 ,mem_mouse_x 
+03ff e0a08000 istore 1 ,contw 
+0400 6800c69d fetch 1 ,mem_mouse_y 
+0401 e0a08000 istore 1 ,contw 
+0402 6801469f fetch 2 ,mem_mouse_z 
+0403 e0a10000 istore 2 ,contw 
+0404 da200007 arg 7 ,rega 
+0405 20404d63 call hid_malloc_tx_buff 
+0406 6801424e fetch 2 ,mem_hid_int_remote_cid 
+0407 e0a10000 istore 2 ,contw 
+0408 580002a1 setarg 0x02a1 
+0409 e0a10000 istore 2 ,contw 
+040a 6802cb04 fetch 5 ,mem_mouse_bt_boot_data 
+040b e0a28000 istore 5 ,contw 
+040c 20600000 rtn 
 
 p_mouse_clear_sensor_data:
-01c0 20405814 call le_set_config_more_data 
-01c1 70479c01 jam 1 ,mem_mouse_clear_sensor_data_flag 
-01c2 20200119 branch p_mouse_sensor_poweron 
+040d 20405814 call le_set_config_more_data 
+040e 70479c01 jam 1 ,mem_mouse_clear_sensor_data_flag 
+040f 20200333 branch p_mouse_sensor_poweron 
 
 p_mouse_idle:
-01c3 20407e34 call ui_check_paring_button 
-01c4 20403d6a call mouse_dpi_cheak 
-01c5 20203ee0 branch mouse_wheel_check 
+0410 20407e34 call ui_check_paring_button 
+0411 20403d6a call mouse_dpi_cheak 
+0412 20203ee0 branch mouse_wheel_check 
 
 p_mouse_priority_bb_event:
-01c6 1a627e00 copy regc ,pdata 
-01c7 c00a01d8 beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
-01c8 c00a81db beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
-01c9 c01481e4 beq bt_evt_le_enc_info ,p_mouse_le_enc_info 
-01ca c01901e6 beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
-01cb c02001ed beq bt_evt_le_parse_conn_papa_update_rsp ,p_mouse_le_conn_param_update_rsp_recieved 
-01cc c00201f8 beq bt_evt_reconn_failed ,p_mouse_bb_event_reconn_failed 
-01cd c00981f8 beq bt_evt_reconn_page_timeout ,p_mouse_bb_event_reconn_timeout 
-01ce c01381ff beq bt_evt_virtual_cable_unplug ,p_mouse_irtual_cable_unplug 
-01cf c00cb3df beq bt_evt_switch_not_accept ,app_bt_role_switch 
-01d0 c0108201 beq bt_evt_sniff_not_accept ,p_mouse_sniff_not_accept 
-01d1 c0008207 beq bt_evt_bb_connected ,p_mouse_bb_event_connected 
-01d2 c001020a beq bt_evt_bb_disconnected ,p_mouse_bb_event_disconnected 
-01d3 c015820f beq bt_evt_switch_success_master ,p_mouse_enter_sniff_check 
-01d4 c01c8214 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
-01d5 c01d0226 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
-01d6 c01e0234 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-01d7 2020417d branch mouse_priority_bb_event + 1 
+0413 1a627e00 copy regc ,pdata 
+0414 c00a0425 beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
+0415 c00a8428 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
+0416 c0148431 beq bt_evt_le_enc_info ,p_mouse_le_enc_info 
+0417 c0190433 beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
+0418 c020043a beq bt_evt_le_parse_conn_papa_update_rsp ,p_mouse_le_conn_param_update_rsp_recieved 
+0419 c0020445 beq bt_evt_reconn_failed ,p_mouse_bb_event_reconn_failed 
+041a c0098445 beq bt_evt_reconn_page_timeout ,p_mouse_bb_event_reconn_timeout 
+041b c013844c beq bt_evt_virtual_cable_unplug ,p_mouse_irtual_cable_unplug 
+041c c00cb3df beq bt_evt_switch_not_accept ,app_bt_role_switch 
+041d c010844e beq bt_evt_sniff_not_accept ,p_mouse_sniff_not_accept 
+041e c0008454 beq bt_evt_bb_connected ,p_mouse_bb_event_connected 
+041f c0010457 beq bt_evt_bb_disconnected ,p_mouse_bb_event_disconnected 
+0420 c015845c beq bt_evt_switch_success_master ,p_mouse_enter_sniff_check 
+0421 c01c8461 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
+0422 c01d0470 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
+0423 c01e047b beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+0424 2020417d branch mouse_priority_bb_event + 1 
 
 p_mouse_le_bb_event_connected:
-01d8 2040010e call p_mouse_init_sensor_reset 
-01d9 204006e4 call p_mouse_data_init 
-01da 202041c3 branch mouse_le_bb_event_connected 
+0425 20400328 call p_mouse_init_sensor_reset 
+0426 204003cb call p_mouse_data_init 
+0427 202041c3 branch mouse_le_bb_event_connected 
 
 p_mouse_le_bb_disconnected:
-01db 20400240 call p_mouse_sensor_powerdown_check 
-01dc 58000007 setarg le_interval_8_75ms 
-01dd 60014496 store 2 ,mem_le_interval_min 
-01de 60014498 store 2 ,mem_le_interval_min + 2 
-01df 7047c400 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
-01e0 70479c00 jam 0 ,mem_mouse_clear_sensor_data_flag 
-01e1 204006e4 call p_mouse_data_init 
-01e2 20405816 call le_clr_config_more_data 
-01e3 202041d9 branch mouse_bb_disconnected 
+0428 20400487 call p_mouse_sensor_powerdown_check 
+0429 58000007 setarg le_interval_8_75ms 
+042a 60014496 store 2 ,mem_le_interval_min 
+042b 60014498 store 2 ,mem_le_interval_min + 2 
+042c 7047c400 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+042d 70479c00 jam 0 ,mem_mouse_clear_sensor_data_flag 
+042e 204003cb call p_mouse_data_init 
+042f 20405816 call le_clr_config_more_data 
+0430 202041d9 branch mouse_bb_disconnected 
 
 p_mouse_le_enc_info:
 
 p_app_updata_le_param:
-01e4 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
-01e5 20207d8f branch ui_ipc_send_cmd 
+0431 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+0432 20207d8f branch ui_ipc_send_cmd 
 
 p_mouse_le_ll_start_encryt:
-01e6 6800c79f fetch 1 ,mem_mouse_le_reconnect_flag 
-01e7 c00081e9 beq 1 ,p_mouse_le_ll_reconn_start_encryt 
-01e8 202001eb branch p_mouse_le_ll_enable_start_enc_flag 
+0433 6800c79f fetch 1 ,mem_mouse_le_reconnect_flag 
+0434 c0008436 beq 1 ,p_mouse_le_ll_reconn_start_encryt 
+0435 20200438 branch p_mouse_le_ll_enable_start_enc_flag 
 
 p_mouse_le_ll_reconn_start_encryt:
-01e9 204001e4 call p_app_updata_le_param 
-01ea 7046c614 jam 20 ,mem_le_start_encrypt_timer 
+0436 20400431 call p_app_updata_le_param 
+0437 7046c614 jam 20 ,mem_le_start_encrypt_timer 
 
 p_mouse_le_ll_enable_start_enc_flag:
-01eb d8e00001 arg ll_start_enc_flag ,queue 
-01ec 202041b9 branch mouse_le_enable_connect_flag 
+0438 d8e00001 arg ll_start_enc_flag ,queue 
+0439 202041b9 branch mouse_le_enable_connect_flag 
 
 p_mouse_le_conn_param_update_rsp_recieved:
-01ed 68014509 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
-01ee c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
-01ef 68008441 fetch 1 ,mem_le_tsniff 
-01f0 1feb7e00 rshift2 pdata ,pdata 
-01f1 1fe67c0c sub pdata ,le_interval_15ms ,null 
-01f2 20610000 rtn positive 
-01f3 58000009 setarg le_interval_11_25ms 
-01f4 60014496 store 2 ,mem_le_interval_min 
-01f5 60014498 store 2 ,mem_le_interval_min + 2 
-01f6 204001e4 call p_app_updata_le_param 
-01f7 202002e1 branch p_mouse_le_conn_param_lpm_disable 
+043a 68014509 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+043b c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
+043c 68008441 fetch 1 ,mem_le_tsniff 
+043d 1feb7e00 rshift2 pdata ,pdata 
+043e 1fe67c0c sub pdata ,le_interval_15ms ,null 
+043f 20610000 rtn positive 
+0440 58000009 setarg le_interval_11_25ms 
+0441 60014496 store 2 ,mem_le_interval_min 
+0442 60014498 store 2 ,mem_le_interval_min + 2 
+0443 20400431 call p_app_updata_le_param 
+0444 20200532 branch p_mouse_le_conn_param_lpm_disable 
 
 p_mouse_bb_event_reconn_timeout:
 
 p_mouse_bb_event_reconn_failed:
-01f8 68014682 fetch 2 ,mem_ui_state_map 
-01f9 c3860000 rtnbit1 ui_state_btn_down 
-01fa c3830000 rtnbit1 ui_state_bt_discovery 
-01fb c3858000 rtnbit1 ui_state_ble_adv 
-01fc 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-01fd c3828000 rtnbit1 mouse_bt_discovery_button_down_flag 
-01fe 202033a7 branch app_bb_hibernate 
+0445 68014682 fetch 2 ,mem_ui_state_map 
+0446 c3860000 rtnbit1 ui_state_btn_down 
+0447 c3830000 rtnbit1 ui_state_bt_discovery 
+0448 c3858000 rtnbit1 ui_state_ble_adv 
+0449 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+044a c3828000 rtnbit1 mouse_bt_discovery_button_down_flag 
+044b 202033a7 branch app_bb_hibernate 
 
 p_mouse_irtual_cable_unplug:
-01ff 2040438e call mouse_irtual_cable_unplug 
-0200 202033a7 branch app_bb_hibernate 
+044c 2040438e call mouse_irtual_cable_unplug 
+044d 202033a7 branch app_bb_hibernate 
 
 p_mouse_sniff_not_accept:
-0201 6800c808 fetch 1 ,mem_mouse_enter_sniff_count 
-0202 c1010000 rtneq 2 
-0203 1fe0fe01 increase 1 ,pdata 
-0204 6000c808 store 1 ,mem_mouse_enter_sniff_count 
-0205 7041e312 jam 0x12 ,mem_sniff_param_interval 
-0206 2020340e branch app_bt_enter_sniff 
+044e 6800c808 fetch 1 ,mem_mouse_enter_sniff_count 
+044f c1010000 rtneq 2 
+0450 1fe0fe01 increase 1 ,pdata 
+0451 6000c808 store 1 ,mem_mouse_enter_sniff_count 
+0452 7041e312 jam 0x12 ,mem_sniff_param_interval 
+0453 2020340e branch app_bt_enter_sniff 
 
 p_mouse_bb_event_connected:
-0207 70480900 jam 0 ,mem_mouse_send_switch_req_timer 
-0208 2040010e call p_mouse_init_sensor_reset 
-0209 202042ca branch mouse_stop_discovery 
+0454 70480900 jam 0 ,mem_mouse_send_switch_req_timer 
+0455 20400328 call p_mouse_init_sensor_reset 
+0456 202042ca branch mouse_stop_discovery 
 
 p_mouse_bb_event_disconnected:
-020a 704aff00 jam 0 ,mem_bt_rcvd_switch_req_accept 
-020b 704b0100 jam 0 ,mem_bt_send_lmp_setup_complete 
-020c 704b0a00 jam 0 ,mem_mouse_bt_send_first_package_flag 
-020d 20400240 call p_mouse_sensor_powerdown_check 
-020e 202041d9 branch mouse_bb_disconnected 
+0457 704aff00 jam 0 ,mem_bt_rcvd_switch_req_accept 
+0458 704b0100 jam 0 ,mem_bt_send_lmp_setup_complete 
+0459 704b0a00 jam 0 ,mem_mouse_bt_send_first_package_flag 
+045a 20400487 call p_mouse_sensor_powerdown_check 
+045b 202041d9 branch mouse_bb_disconnected 
 
 p_mouse_enter_sniff_check:
-020f 6800c808 fetch 1 ,mem_mouse_enter_sniff_count 
-0210 c1810000 rtnne 2 
-0211 70480800 jam 0 ,mem_mouse_enter_sniff_count 
-0212 7041e30e jam 0x0e ,mem_sniff_param_interval 
-0213 2020340e branch app_bt_enter_sniff 
+045c 6800c808 fetch 1 ,mem_mouse_enter_sniff_count 
+045d c1810000 rtnne 2 
+045e 70480800 jam 0 ,mem_mouse_enter_sniff_count 
+045f 7041e30e jam 0x0e ,mem_sniff_param_interval 
+0460 2020340e branch app_bt_enter_sniff 
 
 p_mouse_24g_pairing_complete:
-0214 2040010e call p_mouse_init_sensor_reset 
-0215 70478b01 jam 1 ,mem_mouse_24g_enter_lpm_enable 
-0216 d8e00003 arg mosue_24g_pairing_flag ,queue 
-0217 204043d2 call mouse_disable_function_flag 
-0218 58000000 setarg 0 
-0219 60014707 store 2 ,mem_24g_pairing_timer_count 
-021a 7046a700 jam 0 ,mem_mouse_move_flag 
-021b 6800c6e0 fetch 1 ,mem_config_sensor_type 
-021c 1fe67c05 sub pdata ,p3610 ,null 
-021d 2042c039 call mouse_read_sensor3610_data ,zero 
-021e 2442c05d ncall mouse_read_sensor_common ,zero 
-021f 204000cf call p_mouse_tx_power_init 
-0220 20400222 call p_mouse_set_24g_addr_eeprom 
-0221 202065d1 branch iicd_write_protect_eep_data 
+0461 20400328 call p_mouse_init_sensor_reset 
+0462 70478b01 jam 1 ,mem_mouse_24g_enter_lpm_enable 
+0463 d8e00003 arg mosue_24g_pairing_flag ,queue 
+0464 204043d2 call mouse_disable_function_flag 
+0465 58000000 setarg 0 
+0466 60014707 store 2 ,mem_24g_pairing_timer_count 
+0467 7046a700 jam 0 ,mem_mouse_move_flag 
+0468 2040405d call mouse_read_sensor_common 
+0469 204002e9 call p_mouse_tx_power_init 
+046a 2040046c call p_mouse_set_24g_addr_eeprom 
+046b 202065d1 branch iicd_write_protect_eep_data 
 
 p_mouse_set_24g_addr_eeprom:
-0222 da204bb9 arg mem_24g_addr ,rega 
-0223 da40005b arg mouse_g24_addr_eeprom_offect ,regb 
-0224 d8400004 arg 4 ,temp 
-0225 20600000 rtn 
+046c da204bc6 arg mem_24g_addr ,rega 
+046d da40005b arg mouse_g24_addr_eeprom_offect ,regb 
+046e d8400004 arg 4 ,temp 
+046f 20600000 rtn 
 
 p_mouse_24g_attempt_fail:
-0226 20400240 call p_mouse_sensor_powerdown_check 
-0227 704cd100 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
-0228 204000cf call p_mouse_tx_power_init 
-0229 204005bb call p_g24_check_51cmd_stop_24g 
-022a 7041bd00 jam 0 ,mem_link_key_exists 
-022b 20404316 call mouse_eeprom_load_recon_info 
-022c df200003 arg 3 ,loopcnt 
-022d d8c04722 arg mem_device1_addr ,contr 
-022e 2040016d call p_pdata_0xff_check 
-022f 20340231 branch p_mouse_null_enter_hibernate_count ,user 
-0230 202000d9 branch p_mouse_check_reconn_target 
-
-p_mouse_null_enter_hibernate_count:
-0231 70479d01 jam 1 ,mem_mouse_null_enter_hibernate_flag 
-0232 70479e28 jam 40 ,mem_mouse_null_enter_hibernate_timer 
-0233 20600000 rtn 
+0470 20400487 call p_mouse_sensor_powerdown_check 
+0471 704cde00 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
+0472 204002e9 call p_mouse_tx_power_init 
+0473 204001dc call p_g24_check_51cmd_stop_24g 
+0474 7041bd00 jam 0 ,mem_link_key_exists 
+0475 20404316 call mouse_eeprom_load_recon_info 
+0476 df200003 arg 3 ,loopcnt 
+0477 d8c04722 arg mem_device1_addr ,contr 
+0478 2040038d call p_pdata_0xff_check 
+0479 203404c9 branch p_mouse_null_enter_hibernate_count ,user 
+047a 202002f3 branch p_mouse_check_reconn_target 
 
 p_mouse_24g_attempt_success:
-0234 2040010e call p_mouse_init_sensor_reset 
-0235 20203f8d branch mouse_no_data_timer_init 
+047b 20400328 call p_mouse_init_sensor_reset 
+047c 20203f8d branch mouse_no_data_timer_init 
 
 p_mouse_before_hibernate:
-0236 78347c00 enable user 
-0237 68120138 hfetch 4 ,0x8138 
-0238 79347e1a setflag user ,26 ,pdata 
-0239 6012004c hstore 4 ,core_lpm_reg 
-023a 20402c21 call lpm_write_ctrl 
-023b 20400240 call p_mouse_sensor_powerdown_check 
-023c 204074bd call disable_authrom 
-023d 20404482 call mouse_devce_led_off 
-023e 20403e9f call mouse_before_hibernate_wheel_gpio_set 
-023f 20203ebf branch mouse_lpm_before_common 
+047d 78347c00 enable user 
+047e 68120138 hfetch 4 ,0x8138 
+047f 79347e1a setflag user ,26 ,pdata 
+0480 6012004c hstore 4 ,core_lpm_reg 
+0481 20402c21 call lpm_write_ctrl 
+0482 20400487 call p_mouse_sensor_powerdown_check 
+0483 204074bd call disable_authrom 
+0484 20404482 call mouse_devce_led_off 
+0485 20403e9f call mouse_before_hibernate_wheel_gpio_set 
+0486 20203ebf branch mouse_lpm_before_common 
 
 p_mouse_sensor_powerdown_check:
-0240 6800cafe fetch 1 ,mem_mouse_init_sensor_reset_flag 
-0241 207a0000 rtn blank 
-0242 704afe00 jam 0 ,mem_mouse_init_sensor_reset_flag 
-0243 2020011d branch p_mouse_sensor_powerdown 
+0487 6800cafe fetch 1 ,mem_mouse_init_sensor_reset_flag 
+0488 207a0000 rtn blank 
+0489 704afe00 jam 0 ,mem_mouse_init_sensor_reset_flag 
+048a 20200337 branch p_mouse_sensor_powerdown 
 
 p_mouse_bb_event_timer:
-0244 2040024e call p_mouse_send_switch_req_timer 
-0245 20400251 call p_mouse_wheel_trigger_timer 
-0246 20400279 call p_mouse_null_enter_hibernate_check 
-0247 2040025e call p_mouse_bt_discovery_check 
-0248 20404231 call mouse_check_hid_handshake_timer 
-0249 20404234 call mouse_check_discovery_timeout_timer 
-024a 20404237 call mouse_check_direct_timeout_timer 
-024b 2040423a call mouse_check_no_data_timeout_timer 
-024c 20400256 call p_mouse_bt_check_sniff_req_timeout_timer 
-024d 2020025b branch p_mouse_le_enable_att_list_timer 
+048b 204004a0 call p_mouse_wheel_trigger_timer 
+048c 204004c0 call p_mouse_null_enter_hibernate_check 
+048d 204004a5 call p_mouse_bt_discovery_check 
+048e 20404234 call mouse_check_discovery_timeout_timer 
+048f 20404237 call mouse_check_direct_timeout_timer 
+0490 2040049d call p_mouse_le_enable_att_list_timer 
+0491 20400495 call p_mouse_send_switch_req_timer 
+0492 20404231 call mouse_check_hid_handshake_timer 
+0493 20400498 call p_mouse_bt_check_sniff_req_timeout_timer 
+0494 2020423a branch mouse_check_no_data_timeout_timer 
 
 p_mouse_send_switch_req_timer:
-024e da604809 arg mem_mouse_send_switch_req_timer ,regc 
-024f da40637a arg host_create_conn_resend ,regb 
-0250 2020336d branch timer_single_step 
-
-p_mouse_wheel_trigger_timer:
-0251 da604807 arg mem_mouse_wheel_trigger_timer ,regc 
-0252 da400254 arg p_mouse_wheel_trigger_disable ,regb 
-0253 2020336d branch timer_single_step 
-
-p_mouse_wheel_trigger_disable:
-0254 70480600 jam 0 ,mem_mouse_wheel_trigger 
-0255 20600000 rtn 
+0495 da604809 arg mem_mouse_send_switch_req_timer ,regc 
+0496 da40637a arg host_create_conn_resend ,regb 
+0497 2020336d branch timer_single_step 
 
 p_mouse_bt_check_sniff_req_timeout_timer:
-0256 da604b09 arg mem_mouse_bt_send_first_package_timer ,regc 
-0257 da400259 arg p_mouse_bt_send_first_package ,regb 
-0258 2020336d branch timer_single_step 
+0498 da604b09 arg mem_mouse_bt_send_first_package_timer ,regc 
+0499 da40049b arg p_mouse_bt_send_first_package ,regb 
+049a 2020336d branch timer_single_step 
 
 p_mouse_bt_send_first_package:
-0259 704b0a01 jam 1 ,mem_mouse_bt_send_first_package_flag 
-025a 20600000 rtn 
+049b 704b0a01 jam 1 ,mem_mouse_bt_send_first_package_flag 
+049c 20600000 rtn 
 
 p_mouse_le_enable_att_list_timer:
-025b da6046c6 arg mem_le_start_encrypt_timer ,regc 
-025c da403d60 arg mouse_le_write_enable ,regb 
-025d 2020336d branch timer_single_step 
+049d da6046c6 arg mem_le_start_encrypt_timer ,regc 
+049e da403d60 arg mouse_le_write_enable ,regb 
+049f 2020336d branch timer_single_step 
+
+p_mouse_wheel_trigger_timer:
+04a0 da604807 arg mem_mouse_wheel_trigger_timer ,regc 
+04a1 da4004a3 arg p_mouse_wheel_trigger_disable ,regb 
+04a2 2020336d branch timer_single_step 
+
+p_mouse_wheel_trigger_disable:
+04a3 70480600 jam 0 ,mem_mouse_wheel_trigger 
+04a4 20600000 rtn 
 
 p_mouse_bt_discovery_check:
-025e 6800c6f5 fetch 1 ,mem_config_function_enable 
-025f c2824394 bbit1 enable_bt_button ,mouse_bt_discovery_by_button 
+04a5 6800c6f5 fetch 1 ,mem_config_function_enable 
+04a6 c2824394 bbit1 enable_bt_button ,mouse_bt_discovery_by_button 
 
 p_mouse_bt_discovery_commbination_key:
-0260 20404083 call mouse_check_key_gpio 
-0261 c003826a beq mouse_lmr_button ,p_mouse_bt_discovery_commbination_key_down 
+04a7 20404083 call mouse_check_key_gpio 
+04a8 c00384b1 beq mouse_lmr_button ,p_mouse_bt_discovery_commbination_key_down 
 
 p_mouse_bt_discovery_commbination_key_up:
-0262 6800c685 fetch 1 ,mem_ui_button_timeout 
-0263 6000c6da store 1 ,mem_combination_ui_button_count 
-0264 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
-0265 c1008000 rtneq dpi_button_state_up 
-0266 7046db01 jam dpi_button_state_up ,mem_bt_discovey_button_statue 
-0267 d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
-0268 204043d2 call mouse_disable_function_flag 
-0269 202043ca branch mouse_bt_discovery_button_down_disable 
+04a9 6800c685 fetch 1 ,mem_ui_button_timeout 
+04aa 6000c6da store 1 ,mem_combination_ui_button_count 
+04ab 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
+04ac c1008000 rtneq dpi_button_state_up 
+04ad 7046db01 jam dpi_button_state_up ,mem_bt_discovey_button_statue 
+04ae d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
+04af 204043d2 call mouse_disable_function_flag 
+04b0 202043ca branch mouse_bt_discovery_button_down_disable 
 
 p_mouse_bt_discovery_commbination_key_down:
-026a 70479e28 jam 40 ,mem_mouse_null_enter_hibernate_timer 
-026b 2040026d call p_mouse_bt_discovery_timer 
-026c 202043b0 branch mouse_bt_discovery_commbination_key_down + 1 
+04b1 70479e28 jam 40 ,mem_mouse_null_enter_hibernate_timer 
+04b2 204004b4 call p_mouse_bt_discovery_timer 
+04b3 202043b0 branch mouse_bt_discovery_commbination_key_down + 1 
 
 p_mouse_bt_discovery_timer:
-026d da6046da arg mem_combination_ui_button_count ,regc 
-026e da400270 arg p_mouse_long_button_bt_discovery ,regb 
-026f 2020336d branch timer_single_step 
+04b4 da6046da arg mem_combination_ui_button_count ,regc 
+04b5 da4004b7 arg p_mouse_long_button_bt_discovery ,regb 
+04b6 2020336d branch timer_single_step 
 
 p_mouse_long_button_bt_discovery:
-0270 68014682 fetch 2 ,mem_ui_state_map 
-0271 2feffe0b isolate1 ui_state_ble_adv ,pdata 
-0272 2040c2d4 call mouse_stop_le_adv ,true 
-0273 68014682 fetch 2 ,mem_ui_state_map 
-0274 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
-0275 2040c392 call mouse_cancel_reconnect ,true 
-0276 d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
-0277 204043ce call mouse_enable_function_flag 
-0278 202043b8 branch mouse_long_button_bt_discovry 
+04b7 68014682 fetch 2 ,mem_ui_state_map 
+04b8 2feffe0b isolate1 ui_state_ble_adv ,pdata 
+04b9 2040c2d4 call mouse_stop_le_adv ,true 
+04ba 68014682 fetch 2 ,mem_ui_state_map 
+04bb 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
+04bc 2040c392 call mouse_cancel_reconnect ,true 
+04bd d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
+04be 204043ce call mouse_enable_function_flag 
+04bf 202043b8 branch mouse_long_button_bt_discovry 
 
 p_mouse_null_enter_hibernate_check:
-0279 6800c79d fetch 1 ,mem_mouse_null_enter_hibernate_flag 
-027a 207a0000 rtn blank 
-027b 6800c79e fetch 1 ,mem_mouse_null_enter_hibernate_timer 
-027c 203a0280 branch p_mouse_null_enter_hibernate ,blank 
-027d 1fe0ffff increase -1 ,pdata 
-027e 6000c79e store 1 ,mem_mouse_null_enter_hibernate_timer 
-027f 20600000 rtn 
+04c0 6800c79d fetch 1 ,mem_mouse_null_enter_hibernate_flag 
+04c1 207a0000 rtn blank 
+04c2 6800c79e fetch 1 ,mem_mouse_null_enter_hibernate_timer 
+04c3 203a04c7 branch p_mouse_null_enter_hibernate ,blank 
+04c4 1fe0ffff increase -1 ,pdata 
+04c5 6000c79e store 1 ,mem_mouse_null_enter_hibernate_timer 
+04c6 20600000 rtn 
 
 p_mouse_null_enter_hibernate:
-0280 70479d00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
-0281 2020340a branch app_enter_hibernate 
+04c7 70479d00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
+04c8 2020340a branch app_enter_hibernate 
+
+p_mouse_null_enter_hibernate_count:
+04c9 70479d01 jam 1 ,mem_mouse_null_enter_hibernate_flag 
+04ca 70479e28 jam 40 ,mem_mouse_null_enter_hibernate_timer 
+04cb 20600000 rtn 
 
 p_mouse_seting_dpi:
-0282 2040424a call mosue_dpi_led_blink_init 
-0283 6800c6e0 fetch 1 ,mem_config_sensor_type 
-0284 c0030286 beq p3065_xy ,p_mouse_seting_3065xy_dpi 
-0285 20203d81 branch mouse_seting_dpi + 3 
+04cc 2040424a call mosue_dpi_led_blink_init 
+
+p_mouse_seting_dpi_diff:
+04cd 6800c6e0 fetch 1 ,mem_config_sensor_type 
+04ce c00304d0 beq p3065_xy ,p_mouse_seting_3065xy_dpi 
+04cf 20203d81 branch mouse_seting_dpi + 3 
 
 p_mouse_seting_3065xy_dpi:
-0286 6800c77a fetch 1 ,mem_mouse_dpi 
-0287 205a028d call p_mouse_3065xy_dpi_recount ,blank 
-0288 6800c77a fetch 1 ,mem_mouse_dpi 
-0289 c000bd8a beq mouse_dpi_level2 ,mouse_set_cpi1 
-028a c0013d8c beq mouse_dpi_level3 ,mouse_set_cpi3 
-028b c001bd8e beq mouse_dpi_level4 ,mouse_set_cpi4 
-028c 20203d8c branch mouse_set_cpi3 
+04d0 6800c77a fetch 1 ,mem_mouse_dpi 
+04d1 205a04d6 call p_mouse_3065xy_dpi_recount ,blank 
+04d2 6800c77a fetch 1 ,mem_mouse_dpi 
+04d3 c000bd8a beq mouse_dpi_level2 ,mouse_set_cpi1 
+04d4 c001bd8e beq mouse_dpi_level4 ,mouse_set_cpi4 
+04d5 20203d8c branch mouse_set_cpi3 
 
 p_mouse_3065xy_dpi_recount:
-028d 70477a01 jam 1 ,mem_mouse_dpi 
-028e 20600000 rtn 
+04d6 70477a01 jam 1 ,mem_mouse_dpi 
+04d7 20600000 rtn 
+
+p_mouse_motion:
+04d8 78547c00 disable user 
+04d9 58000000 setarg 0 
+04da 6003469b store 6 ,mem_mouse_x 
+04db 20403fb5 call mouse_cheak_sensor_data 
+04dc 20404079 call mouse_zwheel 
+04dd 2040407e call mouse_t_zwheel 
+04de 20404099 call mouse_key 
+04df 24740000 nrtn user 
+04e0 20203fa0 branch mouse_motion + 9 
 
 p_mouse_bb_event_discovery_btn:
-028f 70479d00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
-0290 70479e00 jam 0 ,mem_mouse_null_enter_hibernate_timer 
-0291 c5130293 bmark1 mark_24g ,p_mouse_switch_to_bt 
-0292 2020426d branch mouse_bb_event_discovery_btn + 1 
-
-p_mouse_switch_to_bt:
-0293 204005bb call p_g24_check_51cmd_stop_24g 
-0294 2020426d branch mouse_bb_event_discovery_btn + 1 
+04e1 70479d00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
+04e2 70479e00 jam 0 ,mem_mouse_null_enter_hibernate_timer 
+04e3 280ffe26 isolate1 mark_24g ,mark 
+04e4 204081dc call p_g24_check_51cmd_stop_24g ,true 
+04e5 2020426d branch mouse_bb_event_discovery_btn + 1 
 
 p_le_addr_random_config:
-0295 204068a2 call load_adc_init 
-0296 6801421d fetch 2 ,mem_0_5_adc_io_data 
-0297 203a029a branch p_le_otp_adc_empty ,blank 
-0298 600147c2 store 2 ,mem_random_addr_increase_count 
+04e6 204068a2 call load_adc_init 
+04e7 6801421d fetch 2 ,mem_0_5_adc_io_data 
+04e8 203a04eb branch p_le_otp_adc_empty ,blank 
+04e9 600147c2 store 2 ,mem_random_addr_increase_count 
 
 p_le_addr_random_store:
-0299 202002b9 branch p_mouse_store_eerpom_random_addr_increase_count 
+04ea 202004ee branch p_mouse_store_eerpom_random_addr_increase_count 
 
 p_le_otp_adc_empty:
-029a 58001122 setarg 0x1122 
-029b 600147c2 store 2 ,mem_random_addr_increase_count 
-029c 20200299 branch p_le_addr_random_store 
-
-p_mouse_start_discovery:
-029d 204000cf call p_mouse_tx_power_init 
-029e 70479c00 jam 0 ,mem_mouse_clear_sensor_data_flag 
-029f 68014682 fetch 2 ,mem_ui_state_map 
-02a0 c28582ab bbit1 ui_state_ble_adv ,p_mouse_start_discovery_norandom 
-02a1 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-02a2 c30c02ab bbit0 mouse_enable_ble_random_addre ,p_mouse_start_discovery_norandom 
-02a3 204002bd call p_mouse_load_eeprom_random_addr_increase_count 
-02a4 680947c2 fetcht 2 ,mem_random_addr_increase_count 
-02a5 18408401 increase 1 ,temp 
-02a6 600947c2 storet 2 ,mem_random_addr_increase_count 
-02a7 600944a1 storet 2 ,mem_le_lap + 1 
-02a8 204002b9 call p_mouse_store_eerpom_random_addr_increase_count 
-02a9 180a7e00 random pdata 
-02aa 6000c4a0 store 1 ,mem_le_lap 
-
-p_mouse_start_discovery_norandom:
-02ab 20403418 call app_lpm_mult_disable 
-02ac 68014687 fetch 2 ,mem_discovery_timeout 
-02ad 600146ac store 2 ,mem_mouse_discovery_timer 
-02ae 70016d06 jam 6 ,mem_connection_options 
-02af 58000000 setarg 0 
-02b0 600146b0 store 2 ,mem_mouse_no_data_timer 
-02b1 600146ae store 2 ,mem_mouse_direct_timer 
-02b2 d8e00007 arg mouse_store_eeprom_flag ,queue 
-02b3 204043ce call mouse_enable_function_flag 
-02b4 204043ca call mouse_bt_discovery_button_down_disable 
-02b5 6800c092 fetch 1 ,mem_device_option 
-02b6 2feffe01 isolate1 mode_4_mouse ,pdata 
-02b7 204082c1 call p_check_51cmd_adv ,true 
-02b8 202042c4 branch mouse_start_discovery_norandom + 13 
+04eb 58001122 setarg 0x1122 
+04ec 600147c2 store 2 ,mem_random_addr_increase_count 
+04ed 202004ea branch p_le_addr_random_store 
 
 p_mouse_store_eerpom_random_addr_increase_count:
-02b9 d8400002 arg 2 ,temp 
-02ba da2047c2 arg mem_random_addr_increase_count ,rega 
-02bb da40005f arg mouse_random_addr_count_eeprom_offset ,regb 
-02bc 202065d1 branch iicd_write_protect_eep_data 
+04ee d8400002 arg 2 ,temp 
+04ef da2047c2 arg mem_random_addr_increase_count ,rega 
+04f0 da40005f arg mouse_random_addr_count_eeprom_offset ,regb 
+04f1 202065d1 branch iicd_write_protect_eep_data 
 
 p_mouse_load_eeprom_random_addr_increase_count:
-02bd d8400002 arg 2 ,temp 
-02be da2047c2 arg mem_random_addr_increase_count ,rega 
-02bf da40005f arg mouse_random_addr_count_eeprom_offset ,regb 
-02c0 202065df branch iicd_read_eep_data 
+04f2 d8400002 arg 2 ,temp 
+04f3 da2047c2 arg mem_random_addr_increase_count ,rega 
+04f4 da40005f arg mouse_random_addr_count_eeprom_offset ,regb 
+04f5 202065df branch iicd_read_eep_data 
+
+p_mouse_start_discovery:
+04f6 204002e9 call p_mouse_tx_power_init 
+04f7 70479c00 jam 0 ,mem_mouse_clear_sensor_data_flag 
+04f8 68014682 fetch 2 ,mem_ui_state_map 
+04f9 c2858504 bbit1 ui_state_ble_adv ,p_mouse_start_discovery_norandom 
+04fa 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+04fb c30c0504 bbit0 mouse_enable_ble_random_addre ,p_mouse_start_discovery_norandom 
+04fc 204004f2 call p_mouse_load_eeprom_random_addr_increase_count 
+04fd 680947c2 fetcht 2 ,mem_random_addr_increase_count 
+04fe 18408401 increase 1 ,temp 
+04ff 600947c2 storet 2 ,mem_random_addr_increase_count 
+0500 600944a1 storet 2 ,mem_le_lap + 1 
+0501 204004ee call p_mouse_store_eerpom_random_addr_increase_count 
+0502 180a7e00 random pdata 
+0503 6000c4a0 store 1 ,mem_le_lap 
+
+p_mouse_start_discovery_norandom:
+0504 20403418 call app_lpm_mult_disable 
+0505 68014687 fetch 2 ,mem_discovery_timeout 
+0506 600146ac store 2 ,mem_mouse_discovery_timer 
+0507 70016d06 jam 6 ,mem_connection_options 
+0508 58000000 setarg 0 
+0509 600146b0 store 2 ,mem_mouse_no_data_timer 
+050a 600146ae store 2 ,mem_mouse_direct_timer 
+050b d8e00007 arg mouse_store_eeprom_flag ,queue 
+050c 204043ce call mouse_enable_function_flag 
+050d 204043ca call mouse_bt_discovery_button_down_disable 
+050e 6800c092 fetch 1 ,mem_device_option 
+050f 2feffe01 isolate1 mode_4_mouse ,pdata 
+0510 20408512 call p_check_51cmd_adv ,true 
+0511 202042c4 branch mouse_start_discovery_norandom + 13 
 
 p_check_51cmd_adv:
-02c1 70479f00 jam 0 ,mem_mouse_le_reconnect_flag 
-02c2 204000e9 call p_le_check_adv_flag 
-02c3 58000005 setarg adv_flag_bredr_not_supported | adv_flag_limited_discoverable 
-02c4 e0c08000 istore 1 ,contr 
-02c5 20207df4 branch check_51cmd_adv 
+0512 70479f00 jam 0 ,mem_mouse_le_reconnect_flag 
+0513 20400303 call p_le_check_adv_flag 
+0514 58000005 setarg adv_flag_bredr_not_supported | adv_flag_limited_discoverable 
+0515 e0c08000 istore 1 ,contr 
+0516 20207df4 branch check_51cmd_adv 
 
 p_mouse_stop_discovery:
-02c6 58000000 setarg 0 
-02c7 600146ac store 2 ,mem_mouse_discovery_timer 
-02c8 20400119 call p_mouse_sensor_poweron 
-02c9 202042cb branch mouse_stop_discovery + 1 
+0517 58000000 setarg 0 
+0518 600146ac store 2 ,mem_mouse_discovery_timer 
+0519 20400333 call p_mouse_sensor_poweron 
+051a 202042cb branch mouse_stop_discovery + 1 
 
 p_le_slave_match:
-02ca 6800c50f fetch 1 ,mem_le_md_count 
-02cb 1fe0fe01 pincrease 1 
-02cc 6000c50f store 1 ,mem_le_md_count 
-02cd c0065395 beq le_md_max_count ,le_slave_cont 
-02ce 204055aa call le_acknowledge 
-02cf 2040561e call le_prepare_tx 
-02d0 2040050a call power_ctrl_start 
-02d1 2020538f branch le_slave_match + 7 
+051b 6800c50f fetch 1 ,mem_le_md_count 
+051c 1fe0fe01 pincrease 1 
+051d 6000c50f store 1 ,mem_le_md_count 
+051e c0065395 beq le_md_max_count ,le_slave_cont 
+051f 204055aa call le_acknowledge 
+0520 2040561e call le_prepare_tx 
+0521 20400691 call power_ctrl_start 
+0522 2020538f branch le_slave_match + 7 
 
 p_le_next_adv_channel:
-02d2 68008016 fetch 1 ,mem_le_ch_mapped 
-02d3 1fe0fe01 increase 1 ,pdata 
-02d4 60008016 store 1 ,mem_le_ch_mapped 
-02d5 c1940000 rtnne 40 
-02d6 70001625 jam 37 ,mem_le_ch_mapped 
-02d7 20600000 rtn 
+0523 68008016 fetch 1 ,mem_le_ch_mapped 
+0524 1fe0fe01 increase 1 ,pdata 
+0525 60008016 store 1 ,mem_le_ch_mapped 
+0526 c1940000 rtnne 40 
+0527 70001625 jam 37 ,mem_le_ch_mapped 
+0528 20600000 rtn 
 
 p_le_receive_skip:
-02d8 204029bb call save_rssi 
-02d9 20400026 call p_rssi_signal 
-02da 202054a3 branch le_receive_skip + 2 
+0529 204029bb call save_rssi 
+052a 20400027 call p_rssi_signal 
+052b 202054a3 branch le_receive_skip + 2 
 
 p_le_update_param:
-02db 204002e3 call p_mouse_le_conn_param_check 
-02dc 2020557d branch le_update_param + 8 
+052c 20400534 call p_mouse_le_conn_param_check 
+052d 2020557d branch le_update_param + 8 
 
 p_mouse_le_lpm_mult_reinit:
-02dd 6800c7c5 fetch 1 ,mem_lpm_mult_init 
-02de 6000c172 store 1 ,mem_lpm_mult 
+052e 6800c7c5 fetch 1 ,mem_lpm_mult_init 
+052f 6000c172 store 1 ,mem_lpm_mult 
 
 p_mouse_le_conn_param_lpm_enable:
-02df 7047c400 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
-02e0 20600000 rtn 
+0530 7047c400 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+0531 20600000 rtn 
 
 p_mouse_le_conn_param_lpm_disable:
-02e1 7047c401 jam le_lpm_disable ,mem_mouse_le_conn_param_reject 
-02e2 20600000 rtn 
+0532 7047c401 jam le_lpm_disable ,mem_mouse_le_conn_param_reject 
+0533 20600000 rtn 
 
 p_mouse_le_conn_param_check:
-02e3 6800c3d6 fetch 1 ,mem_le_new_conninterval 
-02e4 1fe67c0c sub pdata ,le_interval_15ms ,null 
-02e5 242102e1 nbranch p_mouse_le_conn_param_lpm_disable ,positive 
-02e6 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
-02e7 6808c7c5 fetcht 1 ,mem_lpm_mult_init 
-02e8 98467c00 isub temp ,null 
-02e9 202102dd branch p_mouse_le_lpm_mult_reinit ,positive 
-02ea 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
-02eb 6000c172 store 1 ,mem_lpm_mult 
-02ec 202002df branch p_mouse_le_conn_param_lpm_enable 
+0534 6800c3d6 fetch 1 ,mem_le_new_conninterval 
+0535 1fe67c0c sub pdata ,le_interval_15ms ,null 
+0536 24210532 nbranch p_mouse_le_conn_param_lpm_disable ,positive 
+0537 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
+0538 6808c7c5 fetcht 1 ,mem_lpm_mult_init 
+0539 98467c00 isub temp ,null 
+053a 2021052e branch p_mouse_le_lpm_mult_reinit ,positive 
+053b 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
+053c 6000c172 store 1 ,mem_lpm_mult 
+053d 20200530 branch p_mouse_le_conn_param_lpm_enable 
 
 p_le_prepare_tx:
-02ed 68008456 fetch 1 ,mem_le_arq 
-02ee c2828301 bbit1 wak ,p_le_prepare_tx_wak 
-02ef 204004fc call power_ctrl_pac_succ_incrs 
-02f0 6800c78e fetch 1 ,mem_empty_count 
-02f1 243a02f7 nbranch p_le_send_empyt ,blank 
-02f2 6800843f fetch 1 ,mem_le_state 
-02f3 c30202fb bbit0 lestate_encryption ,p_le_tx_4 
-02f4 680082da fetch 1 ,mem_le_rxbuf + 1 
-02f5 203a02fb branch p_le_tx_4 ,blank 
-02f6 20205664 branch le_send_empty 
+053e 68008456 fetch 1 ,mem_le_arq 
+053f c2828552 bbit1 wak ,p_le_prepare_tx_wak 
+0540 20400683 call power_ctrl_pac_succ_incrs 
+0541 6800c78e fetch 1 ,mem_empty_count 
+0542 243a0548 nbranch p_le_send_empyt ,blank 
+0543 6800843f fetch 1 ,mem_le_state 
+0544 c302054c bbit0 lestate_encryption ,p_le_tx_4 
+0545 680082da fetch 1 ,mem_le_rxbuf + 1 
+0546 203a054c branch p_le_tx_4 ,blank 
+0547 20205664 branch le_send_empty 
 
 p_le_send_empyt:
-02f7 6800c78e fetch 1 ,mem_empty_count 
-02f8 1fe0ffff increase -1 ,pdata 
-02f9 6000c78e store 1 ,mem_empty_count 
-02fa 20205664 branch le_send_empty 
+0548 6800c78e fetch 1 ,mem_empty_count 
+0549 1fe0ffff increase -1 ,pdata 
+054a 6000c78e store 1 ,mem_empty_count 
+054b 20205664 branch le_send_empty 
 
 p_le_tx_4:
-02fb 6800c4c4 fetch 1 ,mem_le_pairing_state 
-02fc c08282fe bne flag_le_pairing_after_auth ,p_in_le_tx_4 
-02fd 70478e03 jam 3 ,mem_empty_count 
+054c 6800c4c4 fetch 1 ,mem_le_pairing_state 
+054d c082854f bne flag_le_pairing_after_auth ,p_in_le_tx_4 
+054e 70478e03 jam 3 ,mem_empty_count 
 
 p_in_le_tx_4:
-02fe 20405892 call le_fifo_check_nearly_full 
-02ff 205a06f1 call p_mouse_data_pull ,blank 
-0300 20205622 branch le_prepare_tx + 4 
+054f 20405892 call le_fifo_check_nearly_full 
+0550 205a03d8 call p_mouse_data_pull ,blank 
+0551 20205622 branch le_prepare_tx + 4 
 
 p_le_prepare_tx_wak:
-0301 20400303 call p_le_check_tx_retransmit_setmd 
-0302 2020030f branch p_le_power_ctrl_pac_succ_decrs 
+0552 20400554 call p_le_check_tx_retransmit_setmd 
+0553 20200560 branch p_le_power_ctrl_pac_succ_decrs 
 
 p_le_check_tx_retransmit_setmd:
-0303 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-0304 1fe17e03 and pdata ,0x03 ,pdata 
-0305 c1818000 rtnne 0x03 
-0306 6800c7c1 fetch 1 ,mem_mouse_data_queue_num 
-0307 207a0000 rtn blank 
-0308 6800c3dd fetch 1 ,mem_le_txlen 
-0309 207a0000 rtn blank 
-030a 6800c3dc fetch 1 ,mem_le_txheader 
-030b 79207e04 set1 md ,pdata 
-030c 6000c3dc store 1 ,mem_le_txheader 
-030d 20405650 call le_set_md 
-030e 20600000 rtn 
+0554 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+0555 1fe17e03 and pdata ,0x03 ,pdata 
+0556 c1818000 rtnne 0x03 
+0557 6800c7c1 fetch 1 ,mem_mouse_data_queue_num 
+0558 207a0000 rtn blank 
+0559 6800c3dd fetch 1 ,mem_le_txlen 
+055a 207a0000 rtn blank 
+055b 6800c3dc fetch 1 ,mem_le_txheader 
+055c 79207e04 set1 md ,pdata 
+055d 6000c3dc store 1 ,mem_le_txheader 
+055e 20405650 call le_set_md 
+055f 20600000 rtn 
 
 p_le_power_ctrl_pac_succ_decrs:
-030f 20200500 branch power_ctrl_pac_succ_decrs 
+0560 20200687 branch power_ctrl_pac_succ_decrs 
 
 p_mouse_le_reconn_write_enable_timer_reinit:
-0310 6800c79f fetch 1 ,mem_mouse_le_reconnect_flag 
-0311 207a0000 rtn blank 
-0312 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-0313 1fe17e03 and pdata ,0x03 ,pdata 
-0314 c1018000 rtneq 0x03 
-0315 7046c60a jam 10 ,mem_le_start_encrypt_timer 
-0316 20600000 rtn 
+0561 6800c79f fetch 1 ,mem_mouse_le_reconnect_flag 
+0562 207a0000 rtn blank 
+0563 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+0564 1fe17e03 and pdata ,0x03 ,pdata 
+0565 c1018000 rtneq 0x03 
+0566 7046c60a jam 10 ,mem_le_start_encrypt_timer 
+0567 20600000 rtn 
 
 p_le_parse_l2cap:
-0317 e8c10000 ifetch 2 ,contr 
-0318 c002031b beq le_l2cap_cid_att ,p_le_parse_att 
-0319 c0030338 beq le_l2cap_cid_smp ,p_le_parse_smp 
-031a 20205698 branch le_parse_l2cap + 11 
+0568 e8c10000 ifetch 2 ,contr 
+0569 c002056c beq le_l2cap_cid_att ,p_le_parse_att 
+056a c0030589 beq le_l2cap_cid_smp ,p_le_parse_smp 
+056b 20205698 branch le_parse_l2cap + 11 
 
 p_le_parse_att:
-031b 20407ea5 call store_contr 
-031c 20400310 call p_mouse_le_reconn_write_enable_timer_reinit 
-031d 20407e9f call get_contr 
-031e e8c18000 ifetch 3 ,contr 
-031f 60018477 store 3 ,mem_le_att_opcode 
-0320 c008032a beq attop_read_by_group_type_request ,p_le_parse_att_read_by_group_type_request 
-0321 1fec8400 rshift8 pdata ,temp 
-0322 18467c24 sub temp ,0x24 ,null 
-0323 202158ad branch le_parse_att + 2 ,positive 
-0324 d84047c6 arg mem_mouse_le_uuid_sup ,temp 
-0325 600944bc storet 2 ,mem_ui_le_uuid_table 
-0326 204058ad call le_parse_att + 2 
-0327 58008e7a setarg 0x8e7a 
-0328 600144bc store 2 ,mem_ui_le_uuid_table 
-0329 20600000 rtn 
+056c 20407ea5 call store_contr 
+056d 20400561 call p_mouse_le_reconn_write_enable_timer_reinit 
+056e 20407e9f call get_contr 
+056f e8c18000 ifetch 3 ,contr 
+0570 60018477 store 3 ,mem_le_att_opcode 
+0571 c008057b beq attop_read_by_group_type_request ,p_le_parse_att_read_by_group_type_request 
+0572 1fec8400 rshift8 pdata ,temp 
+0573 18467c24 sub temp ,0x24 ,null 
+0574 202158ad branch le_parse_att + 2 ,positive 
+0575 d84047c6 arg mem_mouse_le_uuid_sup ,temp 
+0576 600944bc storet 2 ,mem_ui_le_uuid_table 
+0577 204058ad call le_parse_att + 2 
+0578 58008e7a setarg 0x8e7a 
+0579 600144bc store 2 ,mem_ui_le_uuid_table 
+057a 20600000 rtn 
 
 p_le_parse_att_read_by_group_type_request:
-032a 204059fa call le_parse_att_read_by_group_type_request 
-032b 20405879 call le_fifo_get_last_tx_ptr 
-032c 18c08c07 increase 7 ,contr 
-032d e8c08000 ifetch 1 ,contr 
-032e c1888000 rtnne attop_read_by_group_type_response 
-032f 18c08c05 increase 5 ,contr 
-0330 e8c10000 ifetch 2 ,contr 
-0331 d8401812 arg uuid_service_hids ,temp 
-0332 98467c00 isub temp ,null 
-0333 24628000 nrtn zero 
-0334 18c08dfc increase -4 ,contr 
-0335 5800002b setarg 0x2b 
-0336 e0c10000 istore 2 ,contr 
-0337 20600000 rtn 
+057b 204059fa call le_parse_att_read_by_group_type_request 
+057c 20405879 call le_fifo_get_last_tx_ptr 
+057d 18c08c07 increase 7 ,contr 
+057e e8c08000 ifetch 1 ,contr 
+057f c1888000 rtnne attop_read_by_group_type_response 
+0580 18c08c05 increase 5 ,contr 
+0581 e8c10000 ifetch 2 ,contr 
+0582 d8401812 arg uuid_service_hids ,temp 
+0583 98467c00 isub temp ,null 
+0584 24628000 nrtn zero 
+0585 18c08dfc increase -4 ,contr 
+0586 5800002b setarg 0x2b 
+0587 e0c10000 istore 2 ,contr 
+0588 20600000 rtn 
 
 p_le_parse_smp:
-0338 e8c08000 ifetch 1 ,contr 
-0339 c002833b beq smp_pairing_failed ,p_le_parse_smp_pairing_failed 
-033a 20205af5 branch le_parse_smp + 1 
+0589 e8c08000 ifetch 1 ,contr 
+058a c002858c beq smp_pairing_failed ,p_le_parse_smp_pairing_failed 
+058b 20205af5 branch le_parse_smp + 1 
 
 p_le_parse_smp_pairing_failed:
-033b 20405b5a call le_parse_smp_pairing_failed 
-033c 6800843f fetch 1 ,mem_le_state 
-033d 793ffe05 set0 lestate_update_param ,pdata 
-033e 6000843f store 1 ,mem_le_state 
-033f 20205c8e branch le_parse_terminate_ind 
+058c 20405b5a call le_parse_smp_pairing_failed 
+058d 6800843f fetch 1 ,mem_le_state 
+058e 793ffe05 set0 lestate_update_param ,pdata 
+058f 6000843f store 1 ,mem_le_state 
+0590 20205c8e branch le_parse_terminate_ind 
 
 p_le_adv_not_match:
-0340 68008016 fetch 1 ,mem_le_ch_mapped 
-0341 c093d6f2 bne 39 ,le_adv_loop 
-0342 20400346 call p_le_adv_random_delay 
-0343 d8e00000 arg le_adv_interval_timer ,queue 
-0344 68014482 fetch 2 ,mem_le_adv_interval 
-0345 20207f08 branch timer_init 
+0591 68008016 fetch 1 ,mem_le_ch_mapped 
+0592 c093d6f2 bne 39 ,le_adv_loop 
+0593 20400597 call p_le_adv_random_delay 
+0594 d8e00000 arg le_adv_interval_timer ,queue 
+0595 68014482 fetch 2 ,mem_le_adv_interval 
+0596 20207f08 branch timer_init 
 
 p_le_adv_random_delay:
-0346 180a7e00 random pdata 
-0347 d84001ff arg 0x1ff ,temp 
-0348 98417e00 iand temp ,pdata 
-0349 1fe0fefa add pdata ,250 ,pdata 
-034a 20203cbe branch delay 
+0597 180a7e00 random pdata 
+0598 d84001ff arg 0x1ff ,temp 
+0599 98417e00 iand temp ,pdata 
+059a 1fe0fefa add pdata ,250 ,pdata 
+059b 20203cbe branch delay 
 
 p_le_lpm_setmult:
-034b 7855fc00 disable wake 
-034c 2037034e branch p_le_lpm_set_mult_attempt ,attempt 
-034d 2436d806 nbranch le_lpm_lost ,match 
+059c 7855fc00 disable wake 
+059d 2037059f branch p_le_lpm_set_mult_attempt ,attempt 
+059e 2436d806 nbranch le_lpm_lost ,match 
 
 p_le_lpm_set_mult_attempt:
-034e 20402bcb call lpm_match 
-034f 680140c1 fetch 2 ,mem_rx_window_sniff 
-0350 6001044d store 2 ,mem_le_receive_window 
-0351 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-0352 2fe00603 compare 3 ,pdata ,3 
-0353 2420abde nbranch lpm_mult_short ,true 
-0354 202057fb branch le_lpm_set_mult_attempt + 3 
+059f 20402bcb call lpm_match 
+05a0 680140c1 fetch 2 ,mem_rx_window_sniff 
+05a1 6001044d store 2 ,mem_le_receive_window 
+05a2 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+05a3 2fe00603 compare 3 ,pdata ,3 
+05a4 2420abde nbranch lpm_mult_short ,true 
+05a5 202057fb branch le_lpm_set_mult_attempt + 3 
 
 p_le_mouse_bb_event_connect_complete:
-0355 6800c79f fetch 1 ,mem_mouse_le_reconnect_flag 
-0356 247a0000 nrtn blank 
-0357 68008478 fetch 1 ,mem_le_att_handle 
-0358 1fe67e1a sub pdata ,26 ,pdata 
-0359 24628000 nrtn zero 
-035a 20203d60 branch mouse_le_write_enable 
+05a6 6800c79f fetch 1 ,mem_mouse_le_reconnect_flag 
+05a7 247a0000 nrtn blank 
+05a8 68008478 fetch 1 ,mem_le_att_handle 
+05a9 1fe67e1a sub pdata ,26 ,pdata 
+05aa 24628000 nrtn zero 
+05ab 20203d60 branch mouse_le_write_enable 
 
 p_twspi_reset:
-035b 68108077 hfetch 1 ,core_gpio_out3 
-035c 1fe17efd and_into 0xfd ,pdata 
-035d 60108077 hstore 1 ,core_gpio_out3 
-035e 68188073 hfetcht 1 ,core_gpio_oe3 
-035f 18418402 or_into 0x2 ,temp 
-0360 60188073 hstoret 1 ,core_gpio_oe3 
-0361 204063ee call twspi_disable 
-0362 184104fd and_into 0xfd ,temp 
-0363 2000000d nop 13 
-0364 204063f2 call twspi_enable 
-0365 60188073 hstoret 1 ,core_gpio_oe3 
-0366 20600000 rtn 
+05ac 68108077 hfetch 1 ,core_gpio_out3 
+05ad 1fe17efd and_into 0xfd ,pdata 
+05ae 60108077 hstore 1 ,core_gpio_out3 
+05af 68188073 hfetcht 1 ,core_gpio_oe3 
+05b0 18418402 or_into 0x2 ,temp 
+05b1 60188073 hstoret 1 ,core_gpio_oe3 
+05b2 204063ee call twspi_disable 
+05b3 184104fd and_into 0xfd ,temp 
+05b4 2000000d nop 13 
+05b5 204063f2 call twspi_enable 
+05b6 60188073 hstoret 1 ,core_gpio_oe3 
+05b7 20600000 rtn 
 
 p_page_wait_fhs_reply_ok:
-0367 6800800e fetch 1 ,mem_page_rcv_fhs 
-0368 1fe0fe01 increase 1 ,pdata 
-0369 6000800e store 1 ,mem_page_rcv_fhs 
-036a 20402435 call prepare_newconn 
+05b8 6800800e fetch 1 ,mem_page_rcv_fhs 
+05b9 1fe0fe01 increase 1 ,pdata 
+05ba 6000800e store 1 ,mem_page_rcv_fhs 
+05bb 20402435 call prepare_newconn 
 
 p_master_newconn_loop:
-036b 7920002c set1 mark_first_packet ,mark 
-036c 204022f2 call master_newconn_once 
-036d 202c0372 branch p_newconn_poll_responded ,sync 
-036e 793f802c set0 mark_first_packet ,mark 
-036f 20402455 call new_conn_timeout 
-0370 243a036b nbranch p_master_newconn_loop ,blank 
-0371 202020fc branch page_restart 
+05bc 7920002c set1 mark_first_packet ,mark 
+05bd 204022f2 call master_newconn_once 
+05be 202c05c3 branch p_newconn_poll_responded ,sync 
+05bf 793f802c set0 mark_first_packet ,mark 
+05c0 20402455 call new_conn_timeout 
+05c1 243a05bc nbranch p_master_newconn_loop ,blank 
+05c2 202020fc branch page_restart 
 
 p_newconn_poll_responded:
-0372 793f802c set0 mark_first_packet ,mark 
-0373 2020215f branch newconn_poll_responded 
+05c3 793f802c set0 mark_first_packet ,mark 
+05c4 2020215f branch newconn_poll_responded 
 
 p_role_switch_master:
-0374 204021c9 call role_switch_check 
-0375 24740000 nrtn user 
+05c5 204021c9 call role_switch_check 
+05c6 24740000 nrtn user 
 
 p_wait_role_switch_anchor:
-0376 78547c00 disable user 
-0377 70001120 jam param_newconnto ,mem_newconnto_counter 
-0378 793f800b set0 mark_fhs_already_good ,mark 
-0379 793f802d set0 mark_role_switch_receive_fhs ,mark 
+05c7 78547c00 disable user 
+05c8 70001120 jam param_newconnto ,mem_newconnto_counter 
+05c9 793f800b set0 mark_fhs_already_good ,mark 
+05ca 793f802d set0 mark_role_switch_receive_fhs ,mark 
 
 p_roles_waitfhs_loop:
-037a 20402a4f call rf_setup_time_master_slot 
-037b 204022e6 call master_recv_packet 
-037c c5058381 bmark1 mark_fhs_already_good ,p_roles_replyto_fhs 
-037d 20402455 call new_conn_timeout 
-037e 243a037a nbranch p_roles_waitfhs_loop ,blank 
-037f c5168389 bmark1 mark_role_switch_receive_fhs ,p_roles_replyto_fhs1 
-0380 202021ec branch role_switch_fail_master 
+05cb 20402a4f call rf_setup_time_master_slot 
+05cc 204022e6 call master_recv_packet 
+05cd c50585d2 bmark1 mark_fhs_already_good ,p_roles_replyto_fhs 
+05ce 20402455 call new_conn_timeout 
+05cf 243a05cb nbranch p_roles_waitfhs_loop ,blank 
+05d0 c51685da bmark1 mark_role_switch_receive_fhs ,p_roles_replyto_fhs1 
+05d1 202021ec branch role_switch_fail_master 
 
 p_roles_replyto_fhs:
-0381 20402a4d call rf_setup_time_slave_slot 
-0382 d8200010 arg type_id ,type 
-0383 204022dc call master_send_packet 
-0384 7920002d set1 mark_role_switch_receive_fhs ,mark 
-0385 793f800b set0 mark_fhs_already_good ,mark 
-0386 18000801 force 1 ,am_addr 
-0387 70001102 jam 2 ,mem_newconnto_counter 
-0388 2020037a branch p_roles_waitfhs_loop 
+05d2 20402a4d call rf_setup_time_slave_slot 
+05d3 d8200010 arg type_id ,type 
+05d4 204022dc call master_send_packet 
+05d5 7920002d set1 mark_role_switch_receive_fhs ,mark 
+05d6 793f800b set0 mark_fhs_already_good ,mark 
+05d7 18000801 force 1 ,am_addr 
+05d8 70001102 jam 2 ,mem_newconnto_counter 
+05d9 202005cb branch p_roles_waitfhs_loop 
 
 p_roles_replyto_fhs1:
-0389 68020165 fetch 4 ,mem_clke_bt 
-038a 1fe0fe08 pincrease 8 
-038b 60020165 store 4 ,mem_clke_bt 
-038c 202021f8 branch roles_replyto_fhs + 4 
+05da 68020165 fetch 4 ,mem_clke_bt 
+05db 1fe0fe08 pincrease 8 
+05dc 60020165 store 4 ,mem_clke_bt 
+05dd 202021f8 branch roles_replyto_fhs + 4 
 
 p_process_dmh:
-038d c516264d bmark1 mark_first_packet ,end_of_packet 
-038e 2020258f branch process_dmh + 1 
+05de c516264d bmark1 mark_first_packet ,end_of_packet 
+05df 2020258f branch process_dmh + 1 
 
 p_prepare_tx:
-038f 68008030 fetch 1 ,mem_state 
-0390 2feffe00 isolate1 state_inconn ,pdata 
-0391 20408393 call p_bt_power_ctrl ,true 
-0392 2020248a branch prepare_tx + 1 
+05e0 68008030 fetch 1 ,mem_state 
+05e1 2feffe00 isolate1 state_inconn ,pdata 
+05e2 204085e4 call p_bt_power_ctrl ,true 
+05e3 2020248a branch prepare_tx + 1 
 
 p_bt_power_ctrl:
-0393 68008047 fetch 1 ,mem_arq 
-0394 2feffe03 isolate1 wack ,pdata 
-0395 20408500 call power_ctrl_pac_succ_decrs ,true 
-0396 244084fc ncall power_ctrl_pac_succ_incrs ,true 
-0397 2020050a branch power_ctrl_start 
+05e4 68008047 fetch 1 ,mem_arq 
+05e5 2feffe03 isolate1 wack ,pdata 
+05e6 20408687 call power_ctrl_pac_succ_decrs ,true 
+05e7 24408683 ncall power_ctrl_pac_succ_incrs ,true 
+05e8 20200691 branch power_ctrl_start 
 
 p_slave_conn_recv_packet:
-0398 204024f0 call slave_receive_master_slot 
-0399 242c28f9 nbranch shutdown_radio ,sync 
-039a 204029bb call save_rssi 
-039b 20400026 call p_rssi_signal 
-039c 20202518 branch slave_conn_recv_packet + 4 
+05e9 204024f0 call slave_receive_master_slot 
+05ea 242c28f9 nbranch shutdown_radio ,sync 
+05eb 204029bb call save_rssi 
+05ec 20400027 call p_rssi_signal 
+05ed 20202518 branch slave_conn_recv_packet + 4 
 
 p_lpm_dispatch:
-039d 20402afa call lpo_calibration 
-039e 6801c16f fetch 3 ,mem_clks_per_lpo 
-039f 207a0000 rtn blank 
-03a0 6800c091 fetch 1 ,mem_lpm_mode 
-03a1 207a0000 rtn blank 
-03a2 6800c65a fetch 1 ,mem_ssp_enable 
-03a3 203a03a6 branch p_lpm_dispatch_next ,blank 
-03a4 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
-03a5 207a0000 rtn blank 
+05ee c6130000 rtnmark1 mark_24g 
+05ef 20402afa call lpo_calibration 
+05f0 6801c16f fetch 3 ,mem_clks_per_lpo 
+05f1 207a0000 rtn blank 
+05f2 6800c091 fetch 1 ,mem_lpm_mode 
+05f3 207a0000 rtn blank 
+05f4 6800c65a fetch 1 ,mem_ssp_enable 
+05f5 203a05f8 branch p_lpm_dispatch_next ,blank 
+05f6 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
+05f7 207a0000 rtn blank 
 
 p_lpm_dispatch_next:
-03a6 6800c4c0 fetch 1 ,mem_le_sc_calc 
-03a7 247a0000 nrtn blank 
-03a8 20402c3a call lpm_check_wake_lock 
-03a9 247a0000 nrtn blank 
-03aa 6800c040 fetch 1 ,mem_context 
-03ab 2fe00e03 compare 3 ,pdata ,0x7 
-03ac 2420ab9d nbranch lpm_dispatch_unconn ,true 
-03ad 68014042 fetch 2 ,mem_context + coffset_tsniff 
-03ae d840ffff arg 0xffff ,temp 
-03af 98467c00 isub temp ,null 
-03b0 20628000 rtn zero 
-03b1 20202b7d branch lpm_dispatch_next + 9 
+05f8 6800c4c0 fetch 1 ,mem_le_sc_calc 
+05f9 247a0000 nrtn blank 
+05fa 20402c3a call lpm_check_wake_lock 
+05fb 247a0000 nrtn blank 
+05fc 6800c040 fetch 1 ,mem_context 
+05fd 2fe00e03 compare 3 ,pdata ,0x7 
+05fe 2420ab9d nbranch lpm_dispatch_unconn ,true 
+05ff 68014042 fetch 2 ,mem_context + coffset_tsniff 
+0600 d840ffff arg 0xffff ,temp 
+0601 98467c00 isub temp ,null 
+0602 20628000 rtn zero 
+0603 20202b7d branch lpm_dispatch_next + 9 
 
 p_app_bt_start_reconnect:
-03b2 202033e4 branch app_bt_start_reconnect + 3 
+0604 202033e4 branch app_bt_start_reconnect + 3 
 
 p_mouse_bb_disconnected:
-03b3 70480800 jam 0 ,mem_mouse_enter_sniff_count 
-03b4 7041e30e jam 0x0e ,mem_sniff_param_interval 
-03b5 204041e7 call mouse_bb_discon_clear_stack 
-03b6 68014208 fetch app_disc_rsn_size ,mem_app_disconn_reason 
-03b7 c283c1f5 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
-03b8 c28033a9 bbit1 app_disc_by_button ,app_disconn_reason_clear 
-03b9 c28083bd bbit1 app_disc_after_pairing ,p_mouse_event_light_state_pairing 
-03ba c28103c0 bbit1 app_disc_after_reconn ,p_mouse_event_light_state_hibernate 
-03bb c28183c0 bbit1 app_disc_after_sniff ,p_mouse_event_light_state_hibernate 
-03bc 202042b0 branch mouse_start_discovery 
+0605 70480800 jam 0 ,mem_mouse_enter_sniff_count 
+0606 7041e30e jam 0x0e ,mem_sniff_param_interval 
+0607 204041e7 call mouse_bb_discon_clear_stack 
+0608 68014208 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0609 c283c1f5 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
+060a c28033a9 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+060b c280860f bbit1 app_disc_after_pairing ,p_mouse_event_light_state_pairing 
+060c c2810612 bbit1 app_disc_after_reconn ,p_mouse_event_light_state_hibernate 
+060d c2818612 bbit1 app_disc_after_sniff ,p_mouse_event_light_state_hibernate 
+060e 202042b0 branch mouse_start_discovery 
 
 p_mouse_event_light_state_pairing:
-03bd c28283c0 bbit1 app_disc_after_handshake ,p_mouse_event_light_state_hibernate 
-03be c28183c0 bbit1 app_disc_after_sniff ,p_mouse_event_light_state_hibernate 
-03bf 202042b0 branch mouse_start_discovery 
+060f c2828612 bbit1 app_disc_after_handshake ,p_mouse_event_light_state_hibernate 
+0610 c2818612 bbit1 app_disc_after_sniff ,p_mouse_event_light_state_hibernate 
+0611 202042b0 branch mouse_start_discovery 
 
 p_mouse_event_light_state_hibernate:
-03c0 68014682 fetch 2 ,mem_ui_state_map 
-03c1 c28642b0 bbit1 ui_state_btn_down ,mouse_start_discovery 
-03c2 204033a9 call app_disconn_reason_clear 
-03c3 20404083 call mouse_check_key_gpio 
-03c4 c0038231 beq mouse_lmr_button ,p_mouse_null_enter_hibernate_count 
-03c5 202033a7 branch app_bb_hibernate 
+0612 68014682 fetch 2 ,mem_ui_state_map 
+0613 c28642b0 bbit1 ui_state_btn_down ,mouse_start_discovery 
+0614 204033a9 call app_disconn_reason_clear 
+0615 20404083 call mouse_check_key_gpio 
+0616 c00384c9 beq mouse_lmr_button ,p_mouse_null_enter_hibernate_count 
+0617 202033a7 branch app_bb_hibernate 
 
 p_hid_rx_process:
-03c6 68010264 fetch 2 ,mem_l2cap_payload_ptr 
-03c7 1fe20c00 copy pdata ,contr 
-03c8 e8c08000 ifetch 1 ,contr 
-03c9 6000cb02 store 1 ,mem_l2cap_rcv 
-03ca 1fe1040f and pdata ,0x0f ,temp 
-03cb 1ff1fe00 rshift4 pdata ,pdata 
-03cc c00383ce beq hid_type_set_protocol ,p_hid_rx_set_protocol 
-03cd 20204d39 branch hid_rx_process + 6 
+0618 68010264 fetch 2 ,mem_l2cap_payload_ptr 
+0619 1fe20c00 copy pdata ,contr 
+061a e8c08000 ifetch 1 ,contr 
+061b 6000cb02 store 1 ,mem_l2cap_rcv 
+061c 1fe1040f and pdata ,0x0f ,temp 
+061d 1ff1fe00 rshift4 pdata ,pdata 
+061e c0038620 beq hid_type_set_protocol ,p_hid_rx_set_protocol 
+061f 20204d39 branch hid_rx_process + 6 
 
 p_hid_rx_set_protocol:
-03ce 20404d53 call hid_rx_process_handshake 
-03cf 704b0300 jam 0 ,mem_mouse_bt_boot_mode 
-03d0 6800cb02 fetch 1 ,mem_l2cap_rcv 
-03d1 2feffe00 isolate1 0 ,pdata 
-03d2 20608000 rtn true 
-03d3 704b0301 jam 1 ,mem_mouse_bt_boot_mode 
-03d4 20600000 rtn 
+0620 20404d53 call hid_rx_process_handshake 
+0621 704b0300 jam 0 ,mem_mouse_bt_boot_mode 
+0622 6800cb02 fetch 1 ,mem_l2cap_rcv 
+0623 2feffe00 isolate1 0 ,pdata 
+0624 20608000 rtn true 
+0625 704b0301 jam 1 ,mem_mouse_bt_boot_mode 
+0626 20600000 rtn 
 
 p_parse_lmp_accepted:
-03d5 68008552 fetch 1 ,mem_rxbuf + 1 
-03d6 600084c9 store 1 ,mem_lmi_accepted_opcode 
-03d7 c00983d9 beq lmp_switch_req ,p_parse_lmp_accepted_switch 
-03d8 20205db4 branch parse_lmp_accepted + 3 
+0627 68008552 fetch 1 ,mem_rxbuf + 1 
+0628 600084c9 store 1 ,mem_lmi_accepted_opcode 
+0629 c009862b beq lmp_switch_req ,p_parse_lmp_accepted_switch 
+062a 20205db4 branch parse_lmp_accepted + 3 
 
 p_parse_lmp_accepted_switch:
-03d9 20405dcf call parse_lmp_accepted_switch 
-03da 704aff01 jam 1 ,mem_bt_rcvd_switch_req_accept 
-03db 6800cb01 fetch 1 ,mem_bt_send_lmp_setup_complete 
-03dc 207a0000 rtn blank 
-03dd 704b0102 jam 2 ,mem_bt_send_lmp_setup_complete 
-03de 20600000 rtn 
+062b 20405dcf call parse_lmp_accepted_switch 
+062c 704aff01 jam 1 ,mem_bt_rcvd_switch_req_accept 
+062d 6800cb01 fetch 1 ,mem_bt_send_lmp_setup_complete 
+062e 207a0000 rtn blank 
+062f 704b0102 jam 2 ,mem_bt_send_lmp_setup_complete 
+0630 20600000 rtn 
 
 p_send_lmp:
-03df 78547c00 disable user 
-03e0 204062c1 call lmo_fifo_process 
-03e1 68008048 fetch 1 ,mem_lmp_to_send 
-03e2 207a0000 rtn blank 
-03e3 c28383e8 bbit1 7 ,p_send_lmp_escape 
-03e4 c00183f8 beq lmp_accepted ,p_send_lmp_accepted 
-03e5 c01883f4 beq lmp_setup_complete ,p_send_lmp_setup_complete 
-03e6 c00b83f6 beq lmp_sniff_req ,p_send_lmp_sniff_req 
-03e7 20206010 branch send_lmp0 
+0631 78547c00 disable user 
+0632 204062c1 call lmo_fifo_process 
+0633 68008048 fetch 1 ,mem_lmp_to_send 
+0634 207a0000 rtn blank 
+0635 c283863a bbit1 7 ,p_send_lmp_escape 
+0636 c001864a beq lmp_accepted ,p_send_lmp_accepted 
+0637 c0188646 beq lmp_setup_complete ,p_send_lmp_setup_complete 
+0638 c00b8648 beq lmp_sniff_req ,p_send_lmp_sniff_req 
+0639 20206010 branch send_lmp0 
 
 p_send_lmp_escape:
-03e8 c04203eb beq lmp_ext_features_res ,p_send_lmpext_features_res 
-03e9 c04183ee beq lmp_ext_features_req ,p_send_lmpext_features_req 
-03ea 2020603f branch send_lmp_escape 
+063a c042063d beq lmp_ext_features_res ,p_send_lmpext_features_res 
+063b c0418640 beq lmp_ext_features_req ,p_send_lmpext_features_req 
+063c 2020603f branch send_lmp_escape 
 
 p_send_lmpext_features_res:
-03eb 204003f1 call p_check_ssp_enable 
-03ec 68008048 fetch 1 ,mem_lmp_to_send 
-03ed 20206099 branch send_lmpext_features_res 
+063d 20400643 call p_check_ssp_enable 
+063e 68008048 fetch 1 ,mem_lmp_to_send 
+063f 20206099 branch send_lmpext_features_res 
 
 p_send_lmpext_features_req:
-03ee 204003f1 call p_check_ssp_enable 
-03ef 68008048 fetch 1 ,mem_lmp_to_send 
-03f0 2020610d branch send_lmpext_features_req 
+0640 20400643 call p_check_ssp_enable 
+0641 68008048 fetch 1 ,mem_lmp_to_send 
+0642 2020610d branch send_lmpext_features_req 
 
 p_check_ssp_enable:
-03f1 6800c65a fetch 1 ,mem_ssp_enable 
-03f2 203a612b branch ssp_disable ,blank 
-03f3 20206124 branch ssp_enable 
+0643 6800c65a fetch 1 ,mem_ssp_enable 
+0644 203a612b branch ssp_disable ,blank 
+0645 20206124 branch ssp_enable 
 
 p_send_lmp_setup_complete:
-03f4 704b0101 jam 1 ,mem_bt_send_lmp_setup_complete 
-03f5 202061c3 branch send_lmp_setup_complete 
+0646 704b0101 jam 1 ,mem_bt_send_lmp_setup_complete 
+0647 202061c3 branch send_lmp_setup_complete 
 
 p_send_lmp_sniff_req:
-03f6 704b0904 jam 4 ,mem_mouse_bt_send_first_package_timer 
-03f7 202061a4 branch send_lmp_sniff_req 
+0648 704b0904 jam 4 ,mem_mouse_bt_send_first_package_timer 
+0649 202061a4 branch send_lmp_sniff_req 
 
 p_send_lmp_accepted:
-03f8 18007e02 force 2 ,pdata 
-03f9 20406298 call msg_send_lmp 
-03fa 68008049 fetch 1 ,mem_lmi_opcode 
-03fb e0a08000 istore 1 ,contw 
-03fc 6000cafc store 1 ,mem_lmi_opcode_temp 
-03fd 204062a7 call send_lmp_follow 
-03fe 6800cafc fetch 1 ,mem_lmi_opcode_temp 
-03ff c0170401 beq lmp_max_slot_req ,p_send_lmp_accepted_max_slot_req 
-0400 20206051 branch send_lmp_accepted + 7 
+064a 18007e02 force 2 ,pdata 
+064b 20406298 call msg_send_lmp 
+064c 68008049 fetch 1 ,mem_lmi_opcode 
+064d e0a08000 istore 1 ,contw 
+064e 6000cafc store 1 ,mem_lmi_opcode_temp 
+064f 204062a7 call send_lmp_follow 
+0650 6800cafc fetch 1 ,mem_lmi_opcode_temp 
+0651 c0170653 beq lmp_max_slot_req ,p_send_lmp_accepted_max_slot_req 
+0652 20206051 branch send_lmp_accepted + 7 
 
 p_send_lmp_accepted_max_slot_req:
-0401 6800caff fetch 1 ,mem_bt_rcvd_switch_req_accept 
-0402 207a0000 rtn blank 
-0403 704aff00 jam 0 ,mem_bt_rcvd_switch_req_accept 
-0404 6800cb01 fetch 1 ,mem_bt_send_lmp_setup_complete 
-0405 c1810000 rtnne 2 
-0406 704b0001 jam 1 ,mem_bt_send_max_slot_req_accept_after_switch 
-0407 1c427e00 copy clkn_bt ,pdata 
-0408 600204e9 store 4 ,mem_aurand_send_delay_time 
-0409 20600000 rtn 
+0653 6800caff fetch 1 ,mem_bt_rcvd_switch_req_accept 
+0654 207a0000 rtn blank 
+0655 704aff00 jam 0 ,mem_bt_rcvd_switch_req_accept 
+0656 6800cb01 fetch 1 ,mem_bt_send_lmp_setup_complete 
+0657 c1810000 rtnne 2 
+0658 704b0001 jam 1 ,mem_bt_send_max_slot_req_accept_after_switch 
+0659 1c427e00 copy clkn_bt ,pdata 
+065a 600204e9 store 4 ,mem_aurand_send_delay_time 
+065b 20600000 rtn 
 
 p_process_conn_sm:
-040a 204062bc call lmo_fifo_check 
-040b 247a0000 nrtn blank 
+065c 204062bc call lmo_fifo_check 
+065d 247a0000 nrtn blank 
 
 p_process_conn_sm_continue:
-040c 68008055 fetch 1 ,mem_conn_sm 
-040d 207a0000 rtn blank 
-040e c002042c beq conn_sm_send_conn_req ,p_host_create_conn_send_conn_req 
-040f c0080411 beq conn_sm_wait_switch_after_host_connection ,p_host_creat_conn_wait_switch 
-0410 20206320 branch process_conn_sm_continue + 2 
+065e 68008055 fetch 1 ,mem_conn_sm 
+065f 207a0000 rtn blank 
+0660 c002067e beq conn_sm_send_conn_req ,p_host_create_conn_send_conn_req 
+0661 c0080663 beq conn_sm_wait_switch_after_host_connection ,p_host_creat_conn_wait_switch 
+0662 20206320 branch process_conn_sm_continue + 2 
 
 p_host_creat_conn_wait_switch:
-0411 6800c55b fetch 1 ,mem_switch_flag 
-0412 c1000000 rtneq switch_flag_init 
-0413 c0008415 beq switch_flag_accept ,p_host_create_conn_switch_accept 
-0414 2020635f branch host_creat_conn_wait_switch + 3 
+0663 6800c55b fetch 1 ,mem_switch_flag 
+0664 c1000000 rtneq switch_flag_init 
+0665 c0008667 beq switch_flag_accept ,p_host_create_conn_switch_accept 
+0666 2020635f branch host_creat_conn_wait_switch + 3 
 
 p_host_create_conn_switch_accept:
-0415 20748000 rtn master 
+0667 20748000 rtn master 
 
 p_host_create_conn_auth_pair:
-0416 6800816d fetch 1 ,mem_connection_options 
-0417 c2800419 bbit1 connection_auth ,p_host_create_conn_auth_pair_true 
-0418 20206399 branch host_create_conn_auth_pair + 1 
+0668 6800816d fetch 1 ,mem_connection_options 
+0669 c280066b bbit1 connection_auth ,p_host_create_conn_auth_pair_true 
+066a 20206399 branch host_create_conn_auth_pair + 1 
 
 p_host_create_conn_auth_pair_true:
-0419 6800cb01 fetch 1 ,mem_bt_send_lmp_setup_complete 
-041a c000e39d beq 1 ,host_create_conn_auth_pair_true 
-041b 6800c1bd fetch 1 ,mem_link_key_exists 
-041c 203a63a9 branch host_create_conn_auth_pair_nokey ,blank 
-041d 680084d1 fetch 1 ,mem_lmp_conn_state 
-041e c4018000 rtnbit0 sent_setup_complete 
-041f c4010000 rtnbit0 received_setup_complete 
-0420 6800cb00 fetch 1 ,mem_bt_send_max_slot_req_accept_after_switch 
-0421 207a0000 rtn blank 
-0422 704b0000 jam 0 ,mem_bt_send_max_slot_req_accept_after_switch 
-0423 680204e9 fetch 4 ,mem_aurand_send_delay_time 
-0424 d8400014 arg 20 ,temp 
-0425 98408400 iadd temp ,temp 
-0426 1c427e00 copy clkn_bt ,pdata 
-0427 98467c00 isub temp ,null 
-0428 2421042a nbranch p_bt_send_max_slot_req_accept_after_switch_wait ,positive 
-0429 20206349 branch host_create_conn_auth 
+066b 6800cb01 fetch 1 ,mem_bt_send_lmp_setup_complete 
+066c c000e39d beq 1 ,host_create_conn_auth_pair_true 
+066d 6800c1bd fetch 1 ,mem_link_key_exists 
+066e 203a63a9 branch host_create_conn_auth_pair_nokey ,blank 
+066f 680084d1 fetch 1 ,mem_lmp_conn_state 
+0670 c4018000 rtnbit0 sent_setup_complete 
+0671 c4010000 rtnbit0 received_setup_complete 
+0672 6800cb00 fetch 1 ,mem_bt_send_max_slot_req_accept_after_switch 
+0673 207a0000 rtn blank 
+0674 704b0000 jam 0 ,mem_bt_send_max_slot_req_accept_after_switch 
+0675 680204e9 fetch 4 ,mem_aurand_send_delay_time 
+0676 d8400014 arg 20 ,temp 
+0677 98408400 iadd temp ,temp 
+0678 1c427e00 copy clkn_bt ,pdata 
+0679 98467c00 isub temp ,null 
+067a 2421067c nbranch p_bt_send_max_slot_req_accept_after_switch_wait ,positive 
+067b 20206349 branch host_create_conn_auth 
 
 p_bt_send_max_slot_req_accept_after_switch_wait:
-042a 704b0001 jam 1 ,mem_bt_send_max_slot_req_accept_after_switch 
-042b 20600000 rtn 
+067c 704b0001 jam 1 ,mem_bt_send_max_slot_req_accept_after_switch 
+067d 20600000 rtn 
 
 p_host_create_conn_send_conn_req:
-042c 70480914 jam 20 ,mem_mouse_send_switch_req_timer 
-042d 2020636f branch host_create_conn_send_conn_req 
-
-p_g24_set_device_addr:
-042e 204068a8 call adc_init_data 
-042f 680240a0 fetch 4 ,mem_lap 
-0430 60024bc8 store 4 ,mem_24g_device_addr 
-0431 20600000 rtn 
-
-p_g24_transmit_rf_sta_init:
-0432 704cc701 jam 1 ,mem_24g_rf_last_sta 
-0433 704cc900 jam 0 ,mem_24g_sync_cnt 
-
-p_g24_transmit_rf_ctrl_clear:
-0434 6800cb92 fetch 1 ,mem_24g_data_type 
-0435 1fe17e07 and_into bits_data ,pdata 
-0436 6000cb92 store 1 ,mem_24g_data_type 
-0437 20600000 rtn 
-
-p_g24_hop_ch_enable:
-0438 6800cb92 fetch 1 ,mem_24g_data_type 
-0439 79207e04 set1 bit_hop ,pdata 
-043a 6000cb92 store 1 ,mem_24g_data_type 
-043b 6000cb4d store 1 ,mem_24g_txpayload 
-043c 20600000 rtn 
-
-p_g24_hop_ch_disable:
-043d 6800cb92 fetch 1 ,mem_24g_data_type 
-043e 793ffe04 set0 bit_hop ,pdata 
-043f 6000cb92 store 1 ,mem_24g_data_type 
-0440 20600000 rtn 
-
-p_g24_transmit_hop_pac_fail:
-0441 20400500 call power_ctrl_pac_succ_decrs 
-0442 6800ccc8 fetch 1 ,mem_24g_rf_work_stage 
-0443 c0008446 beq 1 ,p_g24_transmit_hop_pac_fail_wo_hop 
-0444 c001044a beq 2 ,p_g24_transmit_hop_pac_fail_hop_stage2 
-0445 20600000 rtn 
-
-p_g24_transmit_hop_pac_fail_wo_hop:
-0446 704cc902 jam 2 ,mem_24g_sync_cnt 
-
-p_g24_transmit_hop_pac_fail_stage1:
-0447 704cc500 jam 0 ,mem_24g_hop_pac_retry 
-0448 704cc700 jam 0 ,mem_24g_rf_last_sta 
-0449 20200434 branch p_g24_transmit_rf_ctrl_clear 
-
-p_g24_transmit_hop_pac_fail_hop_stage2:
-044a 704cc600 jam 0 ,mem_24g_rf_hop_ch 
-044b 20200447 branch p_g24_transmit_hop_pac_fail_stage1 
-
-p_g24_transmit_pac_fail_hop_stage3:
-044c 68014b97 fetch 2 ,mem_24g_txfail_cnt 
-044d 1fe0fe01 increase 1 ,pdata 
-044e 60014b97 store 2 ,mem_24g_txfail_cnt 
-044f c28504ee bbit1 10 ,p_g24_tx_attempt_fail 
-0450 6800ccc6 fetch 1 ,mem_24g_rf_hop_ch 
-0451 c0008455 beq 1 ,p_g24_rf_hop_fastly 
-0452 704cc601 jam 1 ,mem_24g_rf_hop_ch 
-
-p_g24_rf_hop_attemp_again:
-0453 6800ccc6 fetch 1 ,mem_24g_rf_hop_ch 
-0454 c0808434 bne 1 ,p_g24_transmit_rf_ctrl_clear 
-
-p_g24_rf_hop_fastly:
-0455 6800ccc4 fetch 1 ,mem_24g_hop_fastly_cnt 
-0456 1fe0fe01 increase 1 ,pdata 
-0457 6000ccc4 store 1 ,mem_24g_hop_fastly_cnt 
-0458 c002045c beq 4 ,p_g24_rf_hop_fastly_exit 
-0459 2040065c call p_g24_ch 
-045a 704bd602 jam 2 ,mem_24g_max_retry 
-045b 202004ab branch p_g24_transmit_packet 
-
-p_g24_rf_hop_fastly_exit:
-045c 20400500 call power_ctrl_pac_succ_decrs 
-045d 704cc400 jam 0 ,mem_24g_hop_fastly_cnt 
-045e 20200434 branch p_g24_transmit_rf_ctrl_clear 
-
-p_g24_transmit_hop_pac_succ_wo_hop:
-045f 704cc902 jam 2 ,mem_24g_sync_cnt 
-
-p_g24_transmit_hop_pac_succ:
-0460 704cc701 jam 1 ,mem_24g_rf_last_sta 
-0461 704cc600 jam 0 ,mem_24g_rf_hop_ch 
-0462 20200434 branch p_g24_transmit_rf_ctrl_clear 
-
-p_g24_transmit_succ_rf_config:
-0463 6800ccc8 fetch 1 ,mem_24g_rf_work_stage 
-0464 c0018460 beq 3 ,p_g24_transmit_hop_pac_succ 
-0465 6800cb92 fetch 1 ,mem_24g_data_type 
-0466 2fec0004 isolate0 bit_hop ,pdata 
-0467 20208432 branch p_g24_transmit_rf_sta_init ,true 
-0468 6800ccc8 fetch 1 ,mem_24g_rf_work_stage 
-0469 c000845f beq 1 ,p_g24_transmit_hop_pac_succ_wo_hop 
-046a c0010460 beq 2 ,p_g24_transmit_hop_pac_succ 
-046b 20600000 rtn 
-
-p_g24_rf_sta_check:
-046c 6800cba1 fetch 1 ,mem_24g_pairing_sm 
-046d c1ff8000 rtnne state_24g_pairing_success 
-046e 20400471 call p_g24_rf_laststa_synccnt_check 
-046f 24560479 ncall p_g24_rf_sync_cnt_check ,user2 
-0470 20600000 rtn 
-
-p_g24_rf_laststa_synccnt_check:
-0471 78567c00 disable user2 
-0472 6800ccc7 fetch 1 ,mem_24g_rf_last_sta 
-0473 c1808000 rtnne 1 
-0474 6800ccc9 fetch 1 ,mem_24g_sync_cnt 
-0475 c1800000 rtnne 0 
-0476 704cc801 jam 1 ,mem_24g_rf_work_stage 
-0477 704bd604 jam 4 ,mem_24g_max_retry 
-0478 20207feb branch enable_user2 
-
-p_g24_rf_sync_cnt_check:
-0479 6800ccc9 fetch 1 ,mem_24g_sync_cnt 
-047a 203a0481 branch p_g24_rf_hop_attemp ,blank 
-047b 1fe0ffff increase -1 ,pdata 
-047c 6000ccc9 store 1 ,mem_24g_sync_cnt 
-047d 704cc802 jam 2 ,mem_24g_rf_work_stage 
-047e 2040065c call p_g24_ch 
-047f 704bd604 jam 4 ,mem_24g_max_retry 
-0480 20600000 rtn 
-
-p_g24_rf_hop_attemp:
-0481 704cc803 jam 3 ,mem_24g_rf_work_stage 
-0482 6800ccc6 fetch 1 ,mem_24g_rf_hop_ch 
-0483 243a0453 nbranch p_g24_rf_hop_attemp_again ,blank 
-0484 2040065c call p_g24_ch 
-0485 704bd602 jam 2 ,mem_24g_max_retry 
-0486 20600000 rtn 
-
-p_g24_txdata_prep:
-0487 6800cba1 fetch 1 ,mem_24g_pairing_sm 
-0488 c0ff8547 bne state_24g_pairing_success ,p_g24_pairing_sm 
-
-p_g24_txdata_prep_packeage_data:
-0489 2040048d call p_g24_package_data 
-048a 2040064a call p_g24_transmit_prep 
-
-p_g24_txdata_enable_tx:
-048b 704b9601 jam ensure_on_24g ,mem_24g_ensure 
-048c 20600000 rtn 
-
-p_g24_package_data:
-048d 68014cc2 fetch 2 ,mem_cb_24g_data 
-048e 20407f9c call callback_func 
-048f 20340493 branch p_g24_accumulate_mouse_data ,user 
-0490 6803cb2e fetch 7 ,mem_24g_txbuf + 1 
-0491 207a0000 rtn blank 
-0492 20207fe7 branch enable_user 
-
-p_g24_accumulate_mouse_data:
-0493 704bbd00 jam 0 ,mem_24g_abort_pac 
-0494 1a20fe01 add rega ,1 ,pdata 
-0495 6000cb91 store 1 ,mem_24g_datalen 
-0496 20400434 call p_g24_transmit_rf_ctrl_clear 
-0497 6000cb2d store 1 ,mem_24g_txbuf 
-0498 e8a88000 ifetcht 1 ,contw 
-0499 ea408000 ifetch 1 ,regb 
-049a 9841fe00 ior temp ,pdata 
-049b e0a08000 istore 1 ,contw 
-049c 1a40a401 increase 1 ,regb 
-049d df200002 arg 2 ,loopcnt 
-
-p_g24_accumulation_loop:
-049e ea410000 ifetch 2 ,regb 
-049f e0a10000 istore 2 ,contw 
-04a0 1a40a402 increase 2 ,regb 
-04a1 c200049e loop p_g24_accumulation_loop 
-04a2 d8a04b33 arg mem_24g_txbuf + 6 ,contw 
-04a3 df200002 arg 2 ,loopcnt 
-
-p_g24_accumulation_loop2:
-04a4 ea408000 ifetch 1 ,regb 
-04a5 e8a88000 ifetcht 1 ,contw 
-04a6 9840fe00 iadd temp ,pdata 
-04a7 e0a08000 istore 1 ,contw 
-04a8 1a40a401 increase 1 ,regb 
-04a9 c20004a4 loop p_g24_accumulation_loop2 
-04aa 20600000 rtn 
-
-p_g24_transmit_packet:
-04ab 704b9a00 jam 0 ,mem_24g_retry 
-
-p_g24_transmit_loop:
-04ac d9600d00 arg param_rx_setup ,timeup 
-04ad 34730200 until clkn_rt ,meet 
-04ae 204004c7 call p_g24_transmit_receive_ack 
-04af 6800cbcd fetch 1 ,mem_24g_no_ack 
-04b0 c1008000 rtneq no_ack_24g 
-04b1 242c04d6 nbranch p_g24_retransmit ,sync 
-04b2 243784d6 nbranch p_g24_retransmit ,user3 
-04b3 204004c2 call p_g24_txbuf_clear 
-04b4 204004f2 call p_g24_ackpayload_parse 
-04b5 204004fc call power_ctrl_pac_succ_incrs 
-
-p_g24_transmit_next_packet:
-04b6 6800cb90 fetch 1 ,mem_24g_pid 
-04b7 1fe0fe01 increase 1 ,pdata 
-04b8 6000cb90 store 1 ,mem_24g_pid 
-04b9 6800cba1 fetch 1 ,mem_24g_pairing_sm 
-04ba c0ff84c5 bne state_24g_pairing_success ,p_g24_paring_mode_start 
-04bb 20400463 call p_g24_transmit_succ_rf_config 
-
-p_g24_transmit_abandon:
-04bc 58000000 setarg 0 
-04bd 60014b97 store 2 ,mem_24g_txfail_cnt 
-04be 6000cb99 store 1 ,mem_24g_get_ack_fail 
-04bf 6000ccc5 store 1 ,mem_24g_hop_pac_retry 
-04c0 704b9600 jam ensure_off_24g ,mem_24g_ensure 
-04c1 20600000 rtn 
-
-p_g24_txbuf_clear:
-04c2 df200004 arg 4 ,loopcnt 
-04c3 d8a04b2d arg mem_24g_txbuf ,contw 
-04c4 20207ec6 branch memset0 
-
-p_g24_paring_mode_start:
-04c5 204004f9 call power_ctrl_pac_succ_cnt_init 
-04c6 20200562 branch p_g24_paring_mode 
-
-p_g24_transmit_receive_ack:
-04c7 7857fc00 disable user3 
-04c8 204006c3 call p_g24_transmit 
-04c9 6800cbcd fetch 1 ,mem_24g_no_ack 
-04ca c00084d4 beq no_ack_24g ,p_g24_transmit_no_ack 
-04cb 18002a00 force 0 ,radio_ctrl 
-04cc 68024bb9 fetch 4 ,mem_24g_addr 
-04cd 98001200 iforce access 
-04ce 68088017 fetcht 1 ,mem_last_freq 
-04cf 2040291f call set_freq_rx 
-04d0 20402924 call rf_rx_enable 
-04d1 2040067f call p_g24_receive_rxon 
-04d2 205786bb call p_g24_end_of_packet ,user3 
-04d3 20600000 rtn 
-
-p_g24_transmit_no_ack:
-04d4 204006bb call p_g24_end_of_packet 
-04d5 202004b6 branch p_g24_transmit_next_packet 
-
-p_g24_retransmit:
-04d6 6800cb99 fetch 1 ,mem_24g_get_ack_fail 
-04d7 1fe0fe01 increase 1 ,pdata 
-04d8 6000cb99 store 1 ,mem_24g_get_ack_fail 
-04d9 6800cba1 fetch 1 ,mem_24g_pairing_sm 
-04da c0ff84ea bne state_24g_pairing_success ,p_g24_tx_paring_retry 
-04db 6808cb9a fetcht 1 ,mem_24g_retry 
-04dc 18408401 increase 1 ,temp 
-04dd 6008cb9a storet 1 ,mem_24g_retry 
-04de 6800cbd6 fetch 1 ,mem_24g_max_retry 
-04df 98467e00 isub temp ,pdata 
-04e0 243a04ac nbranch p_g24_transmit_loop ,blank 
-04e1 6800ccc8 fetch 1 ,mem_24g_rf_work_stage 
-04e2 c001844c beq 3 ,p_g24_transmit_pac_fail_hop_stage3 
-04e3 6800ccc5 fetch 1 ,mem_24g_hop_pac_retry 
-04e4 1fe0fe01 increase 1 ,pdata 
-04e5 6000ccc5 store 1 ,mem_24g_hop_pac_retry 
-04e6 c0010441 beq 2 ,p_g24_transmit_hop_pac_fail 
-04e7 20400438 call p_g24_hop_ch_enable 
-04e8 704bd601 jam 1 ,mem_24g_max_retry 
-04e9 202004ab branch p_g24_transmit_packet 
-
-p_g24_tx_paring_retry:
-04ea 6800cb99 fetch 1 ,mem_24g_get_ack_fail 
-04eb c1ff8000 rtnne 0xff 
-04ec 704b9900 jam 0 ,mem_24g_get_ack_fail 
-04ed 202004f0 branch p_g24_stop_g24_mode 
-
-p_g24_tx_attempt_fail:
-04ee 58000000 setarg 0 
-04ef 60014b97 store 2 ,mem_24g_txfail_cnt 
-
-p_g24_stop_g24_mode:
-04f0 700a993a jam bt_evt_24g_attempt_fail ,mem_fifo_temp 
-04f1 20207d86 branch ui_ipc_send_event 
-
-p_g24_ackpayload_parse:
-04f2 204005c4 call p_g24_read_len_pid_crc 
-04f3 6800cb8f fetch 1 ,mem_24g_rxdata_length 
-04f4 207a0000 rtn blank 
-04f5 98007200 iforce loopcnt 
-04f6 d8c04b0d arg mem_24g_rxbuf + 2 ,contr 
-04f7 d8a04b6f arg mem_24g_rxpayload ,contw 
-04f8 20207f01 branch memcpy 
+067e 70480914 jam 20 ,mem_mouse_send_switch_req_timer 
+067f 2020636f branch host_create_conn_send_conn_req 
 
 power_ctrl_pac_succ_cnt_init:
-04f9 704ccd01 jam 1 ,mem_power_ctrl_level 
-04fa 704cca00 jam 0 ,mem_power_ctrl_pac_succ_cnt 
-04fb 20600000 rtn 
+0680 704cda01 jam 1 ,mem_power_ctrl_level 
+0681 704cd700 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+0682 20600000 rtn 
 
 power_ctrl_pac_succ_incrs:
-04fc 6800ccca fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-04fd 1fe0fe01 increase 1 ,pdata 
-04fe 6000ccca store 1 ,mem_power_ctrl_pac_succ_cnt 
-04ff 20600000 rtn 
+0683 6800ccd7 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0684 1fe0fe01 increase 1 ,pdata 
+0685 6000ccd7 store 1 ,mem_power_ctrl_pac_succ_cnt 
+0686 20600000 rtn 
 
 power_ctrl_pac_succ_decrs:
-0500 6800ccca fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0501 1fe67c02 sub pdata ,2 ,null 
-0502 24410508 ncall power_ctrl_pac_succ_cnt_reinit ,positive 
-0503 6800ccca fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0504 c1000000 rtneq 0 
-0505 1fe0ffff increase -1 ,pdata 
-0506 6000ccca store 1 ,mem_power_ctrl_pac_succ_cnt 
-0507 20600000 rtn 
+0687 6800ccd7 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0688 1fe67c02 sub pdata ,2 ,null 
+0689 2441068f ncall power_ctrl_pac_succ_cnt_reinit ,positive 
+068a 6800ccd7 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+068b c1000000 rtneq 0 
+068c 1fe0ffff increase -1 ,pdata 
+068d 6000ccd7 store 1 ,mem_power_ctrl_pac_succ_cnt 
+068e 20600000 rtn 
 
 power_ctrl_pac_succ_cnt_reinit:
-0508 704cca03 jam 3 ,mem_power_ctrl_pac_succ_cnt 
-0509 20600000 rtn 
+068f 704cd703 jam 3 ,mem_power_ctrl_pac_succ_cnt 
+0690 20600000 rtn 
 
 power_ctrl_start:
-050a 68014682 fetch 2 ,mem_ui_state_map 
-050b c3858000 rtnbit1 ui_state_ble_adv 
-050c c3838000 rtnbit1 ui_state_bt_reconnect 
-050d c3830000 rtnbit1 ui_state_bt_discovery 
-050e da204c53 arg mem_rssi_signal_buf ,rega 
-050f 2040062b call p_rssi_average 
-0510 6008cccb storet 1 ,mem_rssi_avg_received 
-0511 280ffe26 isolate1 mark_24g ,mark 
-0512 2040851c call power_ctrl_24g_dis_max ,true 
-0513 24408520 ncall power_ctrl_le_dis_max ,true 
-0514 98467c00 isub temp ,null 
-0515 24210534 nbranch power_ctrl_txpower_incrs_force ,positive 
-0516 6800ccca fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0517 1fe67c02 sub pdata ,2 ,null 
-0518 24210524 nbranch power_ctrl_txpower_decrs_check ,positive 
-0519 6800ccca fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-051a c0000535 beq 0 ,power_ctrl_txpower_incrs 
-051b 20600000 rtn 
-
-power_ctrl_24g_dis_max:
-051c 58000082 setarg rssi_dis_max_24g 
-051d 20600000 rtn 
-
-power_ctrl_24g_dis_min:
-051e 58000077 setarg rssi_dis_min_24g 
-051f 20600000 rtn 
-
-power_ctrl_le_dis_max:
-0520 58000080 setarg rssi_dis_max_ble 
-0521 20600000 rtn 
-
-power_ctrl_le_dis_min:
-0522 58000075 setarg rssi_dis_min_ble 
-0523 20600000 rtn 
+0691 68014682 fetch 2 ,mem_ui_state_map 
+0692 c3858000 rtnbit1 ui_state_ble_adv 
+0693 c3838000 rtnbit1 ui_state_bt_reconnect 
+0694 c3830000 rtnbit1 ui_state_bt_discovery 
+0695 da204c60 arg mem_rssi_signal_buf ,rega 
+0696 204002b7 call p_rssi_average 
+0697 6008ccd8 storet 1 ,mem_rssi_avg_received 
+0698 58000082 setarg rssi_dis_max_24g 
+0699 c513069b bmark1 mark_24g ,power_ctrl_start_next 
+069a 58000080 setarg rssi_dis_max_ble 
+
+power_ctrl_start_next:
+069b 98467c00 isub temp ,null 
+069c 242106b3 nbranch power_ctrl_txpower_incrs_force ,positive 
+069d 6800ccd7 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+069e 1fe67c02 sub pdata ,2 ,null 
+069f 242106a3 nbranch power_ctrl_txpower_decrs_check ,positive 
+06a0 6800ccd7 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+06a1 c00006b4 beq 0 ,power_ctrl_txpower_incrs 
+06a2 20600000 rtn 
 
 power_ctrl_txpower_decrs_check:
-0524 6800ccca fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0525 c1900000 rtnne 32 
-0526 704cca00 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+06a3 6800ccd7 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+06a4 c1900000 rtnne 32 
+06a5 704cd700 jam 0 ,mem_power_ctrl_pac_succ_cnt 
 
 power_ctrl_txpower_decrs:
-0527 6808cccb fetcht 1 ,mem_rssi_avg_received 
-0528 280ffe26 isolate1 mark_24g ,mark 
-0529 2040851e call power_ctrl_24g_dis_min ,true 
-052a 24408522 ncall power_ctrl_le_dis_min ,true 
-052b 98467c00 isub temp ,null 
-052c 24610000 nrtn positive 
-052d 6800cccd fetch 1 ,mem_power_ctrl_level 
-052e c000053c beq 0 ,power_ctrl_decrs_level0 
-052f 1fe0ffff increase -1 ,pdata 
-0530 6000cccd store 1 ,mem_power_ctrl_level 
-0531 c000053c beq 0 ,power_ctrl_decrs_level0 
+06a6 6808ccd8 fetcht 1 ,mem_rssi_avg_received 
+06a7 58000077 setarg rssi_dis_min_24g 
+06a8 c51306aa bmark1 mark_24g ,power_ctrl_txpower_decrs_next 
+06a9 58000075 setarg rssi_dis_min_ble 
+
+power_ctrl_txpower_decrs_next:
+06aa 98467c00 isub temp ,null 
+06ab 24610000 nrtn positive 
+06ac 6800ccda fetch 1 ,mem_power_ctrl_level 
+06ad c00006bb beq 0 ,power_ctrl_decrs_level0 
+06ae 1fe0ffff increase -1 ,pdata 
+06af 6000ccda store 1 ,mem_power_ctrl_level 
+06b0 c00006bb beq 0 ,power_ctrl_decrs_level0 
 
 power_ctrl_decrs_level1:
 
 power_ctrl_incrs_level1:
-0532 7041de00 jam tx_power_0db ,mem_tx_power 
-0533 20600000 rtn 
+06b1 7041de00 jam tx_power_0db ,mem_tx_power 
+06b2 20600000 rtn 
 
 power_ctrl_txpower_incrs_force:
-0534 704cca00 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+06b3 704cd700 jam 0 ,mem_power_ctrl_pac_succ_cnt 
 
 power_ctrl_txpower_incrs:
-0535 6800cccd fetch 1 ,mem_power_ctrl_level 
-0536 c001053a beq 2 ,power_ctrl_incrs_level2 
-0537 1fe0fe01 increase 1 ,pdata 
-0538 6000cccd store 1 ,mem_power_ctrl_level 
-0539 c0008532 beq 1 ,power_ctrl_incrs_level1 
+06b4 6800ccda fetch 1 ,mem_power_ctrl_level 
+06b5 c00106b9 beq 2 ,power_ctrl_incrs_level2 
+06b6 1fe0fe01 increase 1 ,pdata 
+06b7 6000ccda store 1 ,mem_power_ctrl_level 
+06b8 c00086b1 beq 1 ,power_ctrl_incrs_level1 
 
 power_ctrl_incrs_level2:
-053a 7041de02 jam tx_power_5db ,mem_tx_power 
-053b 20600000 rtn 
+06b9 7041de02 jam tx_power_5db ,mem_tx_power 
+06ba 20600000 rtn 
 
 power_ctrl_decrs_level0:
-053c 7041de04 jam tx_power_f5db ,mem_tx_power 
-053d 20600000 rtn 
-
-p_g24_start_pairing_sm1:
-053e 79200026 set1 mark_24g ,mark 
-053f 20400542 call p_g24_pair_init 
-
-p_g24_set_pairing_sm_1:
-0540 704ba101 jam state_24g_pairing_1 ,mem_24g_pairing_sm 
-0541 20600000 rtn 
-
-p_g24_pair_init:
-0542 7041de20 jam tx_power_pair ,mem_tx_power 
-0543 704b9000 jam 0 ,mem_24g_pid 
-0544 704b9b4e jam g24_pair_ch ,mem_24g_ch 
-0545 68024b9d fetch 4 ,mem_24g_paring_addr 
-0546 2020063c branch p_g24_update_addr_and_synccrc8 
-
-p_g24_pairing_sm:
-0547 6800cb96 fetch 1 ,mem_24g_ensure 
-0548 c000ffe7 beq ensure_on_24g ,enable_user 
-0549 6800cba1 fetch 1 ,mem_24g_pairing_sm 
-054a c000854e beq state_24g_pairing_1 ,p_g24_pairing_sm_1 
-054b c0010551 beq state_24g_pairing_2 ,p_g24_pairing_sm_2 
-054c c0018554 beq state_24g_pairing_3 ,p_g24_pairing_sm_3 
-054d 20202a8c branch assert 
-
-p_g24_pairing_sm_1:
-054e 704ba111 jam state_24g_pairing_1_waiting_ack ,mem_24g_pairing_sm 
-054f 70119eaa jam 0xaa ,mem_24g_common_temp 
-0550 20200556 branch p_g24_pairing_sm_common 
-
-p_g24_pairing_sm_2:
-0551 704ba112 jam state_24g_pairing_2_waiting_ack ,mem_24g_pairing_sm 
-0552 70119e55 jam 0x55 ,mem_24g_common_temp 
-0553 20200556 branch p_g24_pairing_sm_common 
-
-p_g24_pairing_sm_3:
-0554 704ba113 jam state_24g_pairing_3_waiting_ack ,mem_24g_pairing_sm 
-0555 70119e22 jam 0x22 ,mem_24g_common_temp 
-
-p_g24_pairing_sm_common:
-0556 6800cb92 fetch 1 ,mem_24g_data_type 
-0557 1fe17e07 and_into bits_data ,pdata 
-0558 6000919f store 1 ,mem_24g_common_temp + 1 
-0559 68024bc8 fetch 4 ,mem_24g_device_addr 
-055a 600211a0 store 4 ,mem_24g_common_temp + 2 
-
-p_g24_put_pairing_data_in_buff:
-055b 7011a400 jam 0 ,mem_24g_common_temp + 6 
-055c da20119e arg mem_24g_common_temp ,rega 
-055d d8400007 arg 7 ,temp 
-055e 204005bf call p_g24_put_data_in_buff 
-055f 2040064a call p_g24_transmit_prep 
-0560 2040048b call p_g24_txdata_enable_tx 
-0561 20207fe7 branch enable_user 
-
-p_g24_paring_mode:
-0562 6800cba1 fetch 1 ,mem_24g_pairing_sm 
-0563 c17f8000 rtneq state_24g_pairing_success 
-0564 c0088568 beq state_24g_pairing_1_waiting_ack ,p_g24_pairing_sm_1_waiting_ack 
-0565 c009056a beq state_24g_pairing_2_waiting_ack ,p_g24_pairing_sm_2_waiting_ack 
-0566 c009856c beq state_24g_pairing_3_waiting_ack ,p_g24_pairing_sm_3_waiting_ack 
-0567 20600000 rtn 
-
-p_g24_pairing_sm_1_waiting_ack:
-0568 704ba102 jam state_24g_pairing_2 ,mem_24g_pairing_sm 
-0569 202004bc branch p_g24_transmit_abandon 
-
-p_g24_pairing_sm_2_waiting_ack:
-056a 704ba103 jam state_24g_pairing_3 ,mem_24g_pairing_sm 
-056b 202004bc branch p_g24_transmit_abandon 
-
-p_g24_pairing_sm_3_waiting_ack:
-056c 704ba1ff jam state_24g_pairing_success ,mem_24g_pairing_sm 
-056d 700a9939 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
-056e 20407d86 call ui_ipc_send_event 
-056f 68024b71 fetch 4 ,mem_24g_rxpayload + 2 
-0570 2040063c call p_g24_update_addr_and_synccrc8 
-0571 202004bc branch p_g24_transmit_abandon 
-
-p_g24_start_24g_mode:
-0572 793f8026 set0 mark_24g ,mark 
-0573 204005b5 call p_g24_ch_syncword_crc8_init 
-0574 6800cba1 fetch 1 ,mem_24g_pairing_sm 
-0575 c1ff8000 rtnne state_24g_pairing_success 
-0576 20400587 call p_g24_tx_attemp_data_prep 
-
-p_g24_tx_attemp_dongle:
-0577 58000000 setarg 0 
-0578 60014bbe store 2 ,mem_24g_check_dongle_times 
-
-p_g24_tx_attemp_dongle_loop:
-0579 20402afa call lpo_calibration 
-057a 200007d0 nop 2000 
-057b 6800cbbe fetch 1 ,mem_24g_check_dongle_times 
-057c c07f84f0 beq 0xff ,p_g24_stop_g24_mode 
-057d 204004c7 call p_g24_transmit_receive_ack 
-057e 242c0590 nbranch p_g24_attemp_txdata_retry ,sync 
-057f 24378590 nbranch p_g24_attemp_txdata_retry ,user3 
-
-p_g24_tx_attemp_dongle_succ:
-0580 79200026 set1 mark_24g ,mark 
-0581 58000000 setarg 0 
-0582 60014bbe store 2 ,mem_24g_check_dongle_times 
-0583 700a993c jam bt_evt_24g_attempt_success ,mem_fifo_temp 
-0584 20407d86 call ui_ipc_send_event 
-0585 204004c2 call p_g24_txbuf_clear 
-0586 20200076 branch p_g24_transmit_by_interrupt_enable 
-
-p_g24_tx_attemp_data_prep:
-0587 70119eff jam 0xff ,mem_24g_common_temp 
-0588 6800cb92 fetch 1 ,mem_24g_data_type 
-0589 6000919f store 1 ,mem_24g_common_temp + 1 
-058a 68024bc8 fetch 4 ,mem_24g_device_addr 
-058b 600211a0 store 4 ,mem_24g_common_temp + 2 
-058c d8400006 arg 6 ,temp 
-058d da20119e arg mem_24g_common_temp ,rega 
-058e 204005bf call p_g24_put_data_in_buff 
-058f 2020064a branch p_g24_transmit_prep 
-
-p_g24_attemp_txdata_retry:
-0590 68014bbe fetch 2 ,mem_24g_check_dongle_times 
-0591 1fe0fe01 increase 1 ,pdata 
-0592 60014bbe store 2 ,mem_24g_check_dongle_times 
-0593 2040065c call p_g24_ch 
-0594 20200579 branch p_g24_tx_attemp_dongle_loop 
-
-p_g24_auto_pair_start:
-0595 793f8026 set0 mark_24g ,mark 
-0596 204005b1 call p_g24_auto_pair_all_powerful 
-0597 20400587 call p_g24_tx_attemp_data_prep 
-
-p_g24_auto_pair_restart:
-0598 704bbe00 jam 0 ,mem_24g_check_dongle_times 
-
-p_g24_auto_pair_start_loop:
-0599 20402afa call lpo_calibration 
-059a 200007d0 nop 2000 
-059b 6800cbbe fetch 1 ,mem_24g_check_dongle_times 
-059c c07f84f0 beq 0xff ,p_g24_stop_g24_mode 
-059d 204004c7 call p_g24_transmit_receive_ack 
-059e 242c05a7 nbranch p_g24_auto_pair_retry ,sync 
-059f 243785a7 nbranch p_g24_auto_pair_retry ,user3 
-05a0 204004f2 call p_g24_ackpayload_parse 
-05a1 204000cf call p_mouse_tx_power_init 
-05a2 68024bb9 fetch 4 ,mem_24g_addr 
-05a3 680a4b9d fetcht 4 ,mem_24g_paring_addr 
-05a4 98467c00 isub temp ,null 
-05a5 2022853e branch p_g24_start_pairing_sm1 ,zero 
-05a6 20200580 branch p_g24_tx_attemp_dongle_succ 
-
-p_g24_auto_pair_retry:
-05a7 6800cbbe fetch 1 ,mem_24g_check_dongle_times 
-05a8 1fe0fe01 increase 1 ,pdata 
-05a9 6000cbbe store 1 ,mem_24g_check_dongle_times 
-05aa 6800cccf fetch 1 ,mem_24g_auto_paring_switch 
-05ab 1fe0fe01 increase 1 ,pdata 
-05ac 1fe17e01 and_into 1 ,pdata 
-05ad 6000cccf store 1 ,mem_24g_auto_paring_switch 
-05ae c00005b7 beq 0 ,p_g24_auto_pair_device_attemp 
-05af c00085b9 beq 1 ,p_g24_auto_pair_pair_attemp 
-05b0 20600000 rtn 
-
-p_g24_auto_pair_all_powerful:
-05b1 7041de20 jam tx_power_pair ,mem_tx_power 
-05b2 58000f0f setarg 0x0f0f 
-05b3 60014bb9 store 2 ,mem_24g_addr 
-05b4 e0a10000 istore 2 ,contw 
-
-p_g24_ch_syncword_crc8_init:
-05b5 2040063d call p_g24_syncword_crc8 
-05b6 2020065c branch p_g24_ch 
-
-p_g24_auto_pair_device_attemp:
-05b7 204005b1 call p_g24_auto_pair_all_powerful 
-05b8 20200599 branch p_g24_auto_pair_start_loop 
-
-p_g24_auto_pair_pair_attemp:
-05b9 20400542 call p_g24_pair_init 
-05ba 20200599 branch p_g24_auto_pair_start_loop 
-
-p_g24_check_51cmd_stop_24g:
-05bb 793f8026 set0 mark_24g ,mark 
-05bc 204053ce call le_disable 
-
-p_mouse_disable_g24_pairing_flag:
-05bd d8e00003 arg mosue_24g_pairing_flag ,queue 
-05be 202043d2 branch mouse_disable_function_flag 
-
-p_g24_put_data_in_buff:
-05bf 6008cb91 storet 1 ,mem_24g_datalen 
-05c0 18427200 copy temp ,loopcnt 
-05c1 d8a04b2d arg mem_24g_txbuf ,contw 
-05c2 1a220c00 copy rega ,contr 
-05c3 20207f01 branch memcpy 
-
-p_g24_read_len_pid_crc:
-05c4 6800cb0c fetch 1 ,mem_24g_rxbuf + 1 
-05c5 1fe97e00 rshift3 pdata ,pdata 
-05c6 6000cb8f store 1 ,mem_24g_rxdata_length 
-05c7 1fe0fe01 increase 1 ,pdata 
-05c8 d8c04b0c arg mem_24g_rxbuf + 1 ,contr 
-05c9 98c08c00 iadd contr ,contr 
-05ca e8c18000 ifetch 3 ,contr 
-05cb 6001cbce store 3 ,mem_24g_sta_crc 
-05cc 6800cb0c fetch 1 ,mem_24g_rxbuf + 1 
-05cd 1fe37e00 rshift pdata ,pdata 
-05ce 1fe17e03 and pdata ,0x03 ,pdata 
-05cf 6000cbd4 store 1 ,mem_24g_sta_pid 
-05d0 20600000 rtn 
+06bb 7041de04 jam tx_power_f5db ,mem_tx_power 
+06bc 20600000 rtn 
 
 p_set_freq_tx:
-05d1 60088017 storet 1 ,mem_last_freq 
-05d2 1840a200 add temp ,0 ,rega 
-05d3 20402981 call rf_write_freq 
-05d4 58000500 setarg param_pll_setup 
-05d5 20402a8f call sleep 
+06bd 60088017 storet 1 ,mem_last_freq 
+06be 1840a200 add temp ,0 ,rega 
+06bf 20402981 call rf_write_freq 
+06c0 58000500 setarg param_pll_setup 
+06c1 20402a8f call sleep 
 
 p_rf_tx_enable:
-05d6 70890601 jam 0x1 ,rfen_adc 
-05d7 7089003c jam 0x3c ,rfen_rx 
-05d8 708901e0 jam 0xe0 ,rfen_tx 
-05d9 2000000a nop 10 
-05da 70890201 jam 0x01 ,rfen_mdm 
-05db 7089023d jam 0x3d ,rfen_mdm 
-05dc 2000000a nop 10 
-05dd 708903b7 jam 0xb7 ,rfen_sn 
-05de 2000000a nop 10 
-05df 7089027d jam 0x7d ,rfen_mdm 
-05e0 6800c1de fetch 1 ,mem_tx_power 
-05e1 c00005e6 beq tx_power_0db ,p_set_tx_power_0db 
-05e2 c00105ee beq tx_power_5db ,p_set_tx_power_5db 
-05e3 c00205f6 beq tx_power_f5db ,p_set_tx_power_f5db 
-05e4 c0100608 beq tx_power_pair ,p_set_tx_power_pair 
-05e5 202005e6 branch p_set_tx_power_0db 
+06c2 70890601 jam 0x1 ,rfen_adc 
+06c3 7089003c jam 0x3c ,rfen_rx 
+06c4 708901e0 jam 0xe0 ,rfen_tx 
+06c5 2000000a nop 10 
+06c6 70890201 jam 0x01 ,rfen_mdm 
+06c7 7089023d jam 0x3d ,rfen_mdm 
+06c8 2000000a nop 10 
+06c9 708903b7 jam 0xb7 ,rfen_sn 
+06ca 2000000a nop 10 
+06cb 7089027d jam 0x7d ,rfen_mdm 
+06cc 6800c1de fetch 1 ,mem_tx_power 
+06cd c00106d5 beq tx_power_5db ,p_set_tx_power_5db 
+06ce c00206da beq tx_power_f5db ,p_set_tx_power_f5db 
+06cf c01006e9 beq tx_power_pair ,p_set_tx_power_pair 
 
 p_set_tx_power_0db:
-05e6 204005fe call p_rx_low_sens 
-05e7 70894bba jam 0xba ,0x894b 
-05e8 708955d0 jam 0xd0 ,0x8955 
-05e9 708956e0 jam 0xe0 ,0x8956 
-05ea 70895788 jam 0x88 ,0x8957 
-05eb 7089586c jam 0x6c ,0x8958 
-05ec 70895910 jam 0x10 ,0x8959 
-05ed 2020294b branch set_tx_power_0db 
+06d0 204006df call p_rx_low_sens 
+06d1 708955d0 jam 0xd0 ,0x8955 
+06d2 708956e0 jam 0xe0 ,0x8956 
+06d3 7089586c jam 0x6c ,0x8958 
+06d4 2020294b branch set_tx_power_0db 
 
 p_set_tx_power_5db:
-05ee 20400603 call p_rx_high_sens 
-05ef 70894bba jam 0xba ,0x894b 
-05f0 708955d0 jam 0xd0 ,0x8955 
-05f1 708956e0 jam 0xe0 ,0x8956 
-05f2 70895788 jam 0x88 ,0x8957 
-05f3 7089583c jam 0x3c ,0x8958 
-05f4 70895910 jam 0x10 ,0x8959 
-05f5 20202953 branch set_tx_power_5db 
+06d5 204006e4 call p_rx_high_sens 
+06d6 708955d0 jam 0xd0 ,0x8955 
+06d7 708956e0 jam 0xe0 ,0x8956 
+06d8 7089583c jam 0x3c ,0x8958 
+06d9 20202953 branch set_tx_power_5db 
 
 p_set_tx_power_f5db:
-05f6 204005fe call p_rx_low_sens 
-05f7 70894bba jam 0xba ,0x894b 
-05f8 708955d0 jam 0xd0 ,0x8955 
-05f9 708956c0 jam 0xc0 ,0x8956 
-05fa 70895788 jam 0x88 ,0x8957 
-05fb 7089586c jam 0x6c ,0x8958 
-05fc 70895910 jam 0x10 ,0x8959 
-05fd 2020295b branch set_tx_power_f5db 
+06da 204006df call p_rx_low_sens 
+06db 708955d0 jam 0xd0 ,0x8955 
+06dc 708956c0 jam 0xc0 ,0x8956 
+06dd 7089586c jam 0x6c ,0x8958 
+06de 2020295b branch set_tx_power_f5db 
 
 p_rx_low_sens:
-05fe 70894c5b jam 0x5b ,0x894c 
-05ff 70894d96 jam 0x96 ,0x894d 
-0600 70894e2c jam 0x2c ,0x894e 
-0601 70894f46 jam 0x46 ,0x894f 
-0602 20600000 rtn 
+06df 70894c5b jam 0x5b ,0x894c 
+06e0 70894d96 jam 0x96 ,0x894d 
+06e1 70894e2c jam 0x2c ,0x894e 
+06e2 70894f46 jam 0x46 ,0x894f 
+06e3 20600000 rtn 
 
 p_rx_high_sens:
-0603 70894cfb jam 0xfb ,0x894c 
-0604 70894def jam 0xef ,0x894d 
-0605 70894eec jam 0xec ,0x894e 
-0606 70894f5e jam 0x5e ,0x894f 
-0607 20600000 rtn 
+06e4 70894cfb jam 0xfb ,0x894c 
+06e5 70894def jam 0xef ,0x894d 
+06e6 70894eec jam 0xec ,0x894e 
+06e7 70894f5e jam 0x5e ,0x894f 
+06e8 20600000 rtn 
 
 p_set_tx_power_pair:
-0608 70894bba jam 0xba ,0x894b 
-0609 708956c2 jam 0xc2 ,0x8956 
-060a 708955d0 jam 0xd0 ,0x8955 
-060b 20600000 rtn 
+06e9 708956c2 jam 0xc2 ,0x8956 
+06ea 708955d0 jam 0xd0 ,0x8955 
+06eb 20600000 rtn 
 
 p_shutdown_radio:
-060c 18002a08 force 8 ,radio_ctrl 
-060d 202028fa branch shutdown_radio + 1 
-
-p_g24_timer_check:
-060e 20407fe9 call disable_user 
-060f 680a4bb2 fetcht 4 ,mem_24g_tx_btclk 
-0610 1c427e00 copy clkn_bt ,pdata 
-0611 98467c00 isub temp ,null 
-0612 24412d18 ncall g24_timer_timeout ,positive 
-0613 1fe22400 copy pdata ,regb 
-0614 68024bb2 fetch 4 ,mem_24g_tx_btclk 
-0615 6808cbb6 fetcht 1 ,mem_24g_interval 
-0616 98408400 iadd temp ,temp 
-0617 1a427e00 copy regb ,pdata 
-0618 98467c00 isub temp ,null 
-0619 24610000 nrtn positive 
-061a 793ffe1c set0 28 ,pdata 
-061b 60024bb2 store 4 ,mem_24g_tx_btclk 
-061c 20207fe7 branch enable_user 
-
-p_rssi_noise:
-061d 204029bb call save_rssi 
-061e 207a0000 rtn blank 
-061f 6808cc4b fetcht 1 ,mem_rssi_noise_index 
-0620 da200d9e arg mem_rssi_noise_buffer ,rega 
-0621 20400624 call p_rssi_store 
-0622 6008cc4b storet 1 ,mem_rssi_noise_index 
-0623 20600000 rtn 
-
-p_rssi_store:
-0624 1a227e00 copy rega ,pdata 
-0625 98408a00 iadd temp ,contw 
-0626 68008018 fetch 1 ,mem_rssi 
-0627 e0a08000 istore 1 ,contw 
-0628 18408401 increase 1 ,temp 
-0629 18410407 and_into rssi_buf_len_signal ,temp 
-062a 20600000 rtn 
-
-p_rssi_average:
-062b d8400000 arg 0 ,temp 
-062c df200008 arg rssi_buf_len_signal + 1 ,loopcnt 
-062d 1a220c00 copy rega ,contr 
-
-p_rssi_average_loop:
-062e e8c08000 ifetch 1 ,contr 
-062f 98408400 iadd temp ,temp 
-0630 c200062e loop p_rssi_average_loop 
-0631 18497e00 rshift3 temp ,pdata 
-0632 1fe20400 copy pdata ,temp 
-0633 c6930000 rtnmark0 mark_24g 
-0634 1fe6fc0a div pdata ,10 
-0635 20407f86 call wait_div_end 
-0636 1807fe00 quotient pdata 
-0637 1ff27e00 lshift4 pdata ,pdata 
-0638 18070400 remainder temp 
-0639 98418400 ior temp ,temp 
-063a 20600000 rtn 
-063b 20600000 rtn 
-
-p_g24_update_addr_and_synccrc8:
-063c 60024bb9 store 4 ,mem_24g_addr 
-
-p_g24_syncword_crc8:
-063d da200000 arg 0 ,rega 
-063e df200004 arg 4 ,loopcnt 
-063f d8c04bb9 arg mem_24g_addr ,contr 
-
-p_g24_syncword_crc8_loop:
-0640 e8c08000 ifetch 1 ,contr 
-0641 9a20a200 iadd rega ,rega 
-0642 c2000640 loop p_g24_syncword_crc8_loop 
-0643 1a227e00 copy rega ,pdata 
-0644 60014c42 store 2 ,mem_24g_syncword 
-0645 6800cc42 fetch 1 ,mem_24g_syncword 
-0646 6808cc43 fetcht 1 ,mem_24g_syncword + 1 
-0647 9840fe00 iadd temp ,pdata 
-0648 6000cc44 store 1 ,mem_24g_syncword_crc8 
-0649 20600000 rtn 
-
-p_g24_transmit_prep:
-064a 6800cb91 fetch 1 ,mem_24g_datalen 
-064b 1fe0fe02 increase 2 ,pdata 
-064c 6000cb93 store 1 ,mem_24g_txlen 
-064d 6800cb92 fetch 1 ,mem_24g_data_type 
-064e 6000cb4d store 1 ,mem_24g_txpayload 
-064f 6800cb91 fetch 1 ,mem_24g_datalen 
-0650 1fe9fe00 lshift3 pdata ,pdata 
-0651 6808cb90 fetcht 1 ,mem_24g_pid 
-0652 18410403 and temp ,0x03 ,temp 
-0653 18438400 lshift temp ,temp 
-0654 9841fe00 ior temp ,pdata 
-0655 6808cbcd fetcht 1 ,mem_24g_no_ack 
-0656 9840fe00 iadd temp ,pdata 
-0657 e0a08000 istore 1 ,contw 
-0658 6800cb91 fetch 1 ,mem_24g_datalen 
-0659 98007200 iforce loopcnt 
-065a d8c04b2d arg mem_24g_txbuf ,contr 
-065b 20207f01 branch memcpy 
-
-p_g24_ch:
-065c 6808cb9c fetcht 1 ,mem_24g_current_ch_number 
-065d 20400660 call p_g24_ch_map_size 
-065e 6008cb9c storet 1 ,mem_24g_current_ch_number 
-065f 20600000 rtn 
-
-p_g24_ch_map_size:
-0660 20400664 call p_g24_ch_calc 
-0661 18408401 increase 1 ,temp 
-0662 18410403 and_into 3 ,temp 
-0663 20600000 rtn 
-
-p_g24_ch_calc:
-0664 6800cbb9 fetch 1 ,mem_24g_addr 
-0665 1fe17e03 and_into 0x03 ,pdata 
-0666 1fefa204 mul32 pdata ,4 ,rega 
-0667 58004ba2 setarg mem_24g_ch_map1 
-0668 9a20fe00 iadd rega ,pdata 
-0669 98408c00 iadd temp ,contr 
-066a e8c08000 ifetch 1 ,contr 
-066b 6000cb9b store 1 ,mem_24g_ch 
-066c 20600000 rtn 
-
-p_g24_prep:
-066d 7844fc00 disable enable_crc 
-066e 7843fc00 disable enable_white 
-066f 58555555 setarg 0x555555 
-0670 98001e00 iforce crc24_init 
-0671 6800cb9b fetch 1 ,mem_24g_ch 
-0672 1fed8400 reverse pdata ,temp 
-0673 79200401 set1 1 ,temp 
-0674 18431c00 rshift temp ,white_init 
-0675 20600000 rtn 
-
-p_g24_receive_packet:
-0676 204053c4 call le_enable 
-0677 68024bb9 fetch 4 ,mem_24g_addr 
-0678 98001200 iforce access 
-0679 20402918 call set_sync_on 
-067a 6808cb9b fetcht 1 ,mem_24g_ch 
-067b 2040291f call set_freq_rx 
-067c 58000500 setarg param_pll_setup 
-067d 20402a8f call sleep 
-067e 20402924 call rf_rx_enable 
-
-p_g24_receive_rxon:
-067f 2040066d call p_g24_prep 
-0680 7857fc00 disable user3 
-0681 7826fc00 enable decode_fec0 
-0682 7830fc00 enable is_rx 
-0683 78507c00 disable is_tx 
-0684 78287c00 enable swfine 
-0685 68014b94 fetch 2 ,mem_24g_rx_window 
-0686 98003600 iforce stop_watch 
-0687 37c18400 correlate null ,timeout 
-0688 242c06bf nbranch p_g24_sync_timeout ,sync 
-0689 7846fc00 disable decode_fec0 
-068a 7825fc00 enable decode_fec1 
-068b 7823fc00 enable enable_white 
-068c 7824fc00 enable enable_crc 
-068d 204006b8 call p_g24_receive_byte 
-068e 6000cc45 store 1 ,mem_24g_get_syncword_crc8 
-068f 6808cc44 fetcht 1 ,mem_24g_syncword_crc8 
-0690 98467c00 isub temp ,null 
-0691 242286bb nbranch p_g24_end_of_packet ,zero 
-0692 204006b8 call p_g24_receive_byte 
-0693 6000cb0b store 1 ,mem_24g_rxbuf 
-0694 6800cbd7 fetch 1 ,mem_24g_mode 
-0695 1fe67c02 sub pdata ,rx_24g ,null 
-0696 2022869b branch p_g24_receive_skip ,zero 
-0697 6800cb0b fetch 1 ,mem_24g_rxbuf 
-0698 6808cb92 fetcht 1 ,mem_24g_data_type 
-0699 a8400e00 icompare bits_data ,temp 
-069a 242086bb nbranch p_g24_end_of_packet ,true 
-
-p_g24_receive_skip:
-069b 204006b8 call p_g24_receive_byte 
-069c e0a08000 istore 1 ,contw 
-069d 1fe97e00 rshift3 pdata ,pdata 
-069e 1fe1721f and pdata ,0x1f ,loopcnt 
-069f 202286a3 branch p_g24rx_nopayload ,zero 
-
-p_g24rx_loop:
-06a0 204006b8 call p_g24_receive_byte 
-06a1 e0a08000 istore 1 ,contw 
-06a2 c20006a0 loop p_g24rx_loop 
-
-p_g24rx_nopayload:
-06a3 18a22200 copy contw ,rega 
-06a4 204006b8 call p_g24_receive_byte 
-06a5 6000cccc store 1 ,mem_rssi_hex_received 
-06a6 1a220a00 copy rega ,contw 
-06a7 09800018 parse demod ,bucket ,24 
-06a8 78287c00 enable swfine 
-06a9 db600664 arg param_sifs ,stop_watch 
-06aa 1fef7e00 rshift32 pdata ,pdata 
-06ab 1ff17e00 rshift16 pdata ,pdata 
-06ac e0a18000 istore 3 ,contw 
-06ad 7845fc00 disable decode_fec1 
-06ae 202306bb branch p_g24_end_of_packet ,crc_failed 
-06af 7837fc00 enable user3 
-06b0 68008017 fetch 1 ,mem_last_freq 
-06b1 1fe0a200 add pdata ,0 ,rega 
-06b2 20402981 call rf_write_freq 
-06b3 7846fc00 disable decode_fec0 
-06b4 20402918 call set_sync_on 
-06b5 6800cccc fetch 1 ,mem_rssi_hex_received 
-06b6 20400026 call p_rssi_signal 
-06b7 20600000 rtn 
-
-p_g24_receive_byte:
-06b8 09800008 parse demod ,bucket ,8 
-06b9 19897e00 rshift3 pwindow ,pdata 
-06ba 20600000 rtn 
-
-p_g24_end_of_packet:
-06bb 784dfc00 disable encode_fec1 
-06bc 7845fc00 disable decode_fec1 
-06bd 2040264d call end_of_packet 
-06be 20600000 rtn 
-
-p_g24_sync_timeout:
-06bf 202006bb branch p_g24_end_of_packet 
-
-p_g24_set_freq_tx:
-06c0 20402918 call set_sync_on 
-06c1 6808cb9b fetcht 1 ,mem_24g_ch 
-06c2 20202933 branch set_freq_tx 
-
-p_g24_transmit:
-06c3 204053c4 call le_enable 
-06c4 68024bb9 fetch 4 ,mem_24g_addr 
-06c5 98001200 iforce access 
-06c6 2040066d call p_g24_prep 
-06c7 204006c0 call p_g24_set_freq_tx 
-06c8 79202a00 set1 txgfsk ,radio_ctrl 
-06c9 782efc00 enable encode_fec0 
-06ca 78307c00 enable is_tx 
-06cb 7850fc00 disable is_rx 
-06cc 19317e00 rshift16 access ,pdata 
-06cd 1fecfe00 rshift8 pdata ,pdata 
-06ce 1ff1fe00 rshift4 pdata ,pdata 
-06cf 08008628 inject mod ,40 
-06d0 784efc00 disable encode_fec0 
-06d1 782dfc00 enable encode_fec1 
-06d2 7823fc00 enable enable_white 
-06d3 7824fc00 enable enable_crc 
-06d4 6800cc44 fetch 1 ,mem_24g_syncword_crc8 
-06d5 08008608 inject mod ,8 
-06d6 6800cb93 fetch 1 ,mem_24g_txlen 
-06d7 98007200 iforce loopcnt 
-06d8 d8c04b4d arg mem_24g_txpayload ,contr 
-
-p_g24tr_loop:
-06d9 e8c08000 ifetch 1 ,contr 
-06da 08008608 inject mod ,8 
-06db c20006d9 loop p_g24tr_loop 
-06dc 78247c00 enable enable_parity 
-06dd 08008618 inject mod ,24 
-06de 78447c00 disable enable_parity 
-06df 37d38200 until null ,tx_clear 
-06e0 20000064 nop 100 
-06e1 784efc00 disable encode_fec0 
-06e2 784dfc00 disable encode_fec1 
-06e3 20600000 rtn 
-
-p_mouse_data_init:
-06e4 7047a007 jam 7 ,mem_mouse_data_queue 
-06e5 7047a104 jam 4 ,mem_mouse_data_queue + 1 
-06e6 580047a0 setarg mem_mouse_data_queue 
-06e7 60014218 store 2 ,mem_queue_ptr 
-06e8 20207e38 branch queue_init 
-
-p_mouse_data_push:
-06e9 da20469a arg mem_mouse_key ,rega 
-06ea 20407e3d call queue_push 
-06eb 205406ed call p_mouse_queue_increase ,user 
-06ec 20600000 rtn 
-
-p_mouse_queue_increase:
-06ed 6800c7c1 fetch 1 ,mem_mouse_data_queue_num 
-06ee 1fe0fe01 increase 1 ,pdata 
-06ef 6000c7c1 store 1 ,mem_mouse_data_queue_num 
-06f0 20600000 rtn 
-
-p_mouse_data_pull:
-06f1 da20469a arg mem_mouse_key ,rega 
-06f2 20407e54 call queue_pop 
-06f3 203406f5 branch p_mouse_fill_data_le ,user 
-06f4 20600000 rtn 
-
-p_mouse_fill_data_le:
-06f5 20405652 call le_clear_md 
-06f6 6800c7c1 fetch 1 ,mem_mouse_data_queue_num 
-06f7 1fe67c01 sub pdata ,1 ,null 
-06f8 24415650 ncall le_set_md ,positive 
-06f9 6800c7c1 fetch 1 ,mem_mouse_data_queue_num 
-06fa 207a0000 rtn blank 
-06fb 1fe0ffff increase -1 ,pdata 
-06fc 6000c7c1 store 1 ,mem_mouse_data_queue_num 
-06fd 20203f90 branch mouse_fill_data_le 
+06ec 18002a08 force 8 ,radio_ctrl 
+06ed 202028fa branch shutdown_radio + 1 
 org 0x2000
 
 start:
@@ -2430,6 +2416,8 @@
 200e 44814000 bpatch patch00_2 ,mem_patch00 
 200f 2055b2e3 call app_lpm_init ,wake 
 2010 2040756a call publickey_init 
+
+soft_reset_2:
 2011 2055ab41 call lpm_recover_clk ,wake 
 
 main_loop:
Index: program/bt.prog
===================================================================
--- /branch/mouse_project/Standard/program/bt.prog	(revision 710)
+++ /branch/mouse_project/Standard/program/bt.prog	(working copy)
@@ -79,6 +79,7 @@
 
 endif
 endif
+soft_reset_2:
 	call lpm_recover_clk,wake
 main_loop:	
 	bpatch patch00_3,mem_patch00
Index: program/patch.prog
===================================================================
--- /branch/mouse_project/Standard/program/patch.prog	(revision 710)
+++ /branch/mouse_project/Standard/program/patch.prog	(working copy)
@@ -1,7 +1,9 @@
 //define DONGLE
 define MOUSE
+define G24
 define BLE
 define CLASSIC_BT
+//define MOUSE_SMOOTHER
 //define ADC_ENABLE
 //define P24G_LOG
 //define RF_DEBUG
@@ -21,13 +23,8 @@
 	bbit1 8,pf_patch_ext	
 	beq patch10_5,p_shutdown_radio
 	beq patch11_1,p_set_freq_tx
-ifdef DONGLE
-	beq patch11_6,p_save_rssi
-	beq patch18_4,p_app_init
-	beq patch1f_0,p_usb_status1
-endif
-ifdef MOUSE
 	beq patch00_1,p_soft_reset_1
+	beq patch00_2,p_soft_reset_2
 ifdef CLASSIC_BT
 	beq patch03_3,p_page_wait_fhs_reply_ok
 	beq patch04_6,p_role_switch_master
@@ -39,20 +36,18 @@
 	beq patch1d_1,p_mouse_bb_disconnected
 endif	
 	beq patch14_1,p_init_param
-	beq patch15_0,p_lpm_dispatch_next2
 	beq patch16_1,p_lpm_check_wake_lock
 	beq patch16_2,p_g24_dispatch
 	beq patch18_4,p_device_init
 	beq patch19_1,p_app_flag_store
 	beq patch19_2,p_app_initflag_check
 	beq patch1c_3,p_mouse_seting_dpi
+	beq patch1c_6,p_mouse_motion
 	beq patch1d_2,p_mouse_bb_event_discovery_btn
 	beq patch1d_3,p_mouse_start_discovery
 	beq patch1d_4,p_mouse_stop_discovery
-endif
 	branch loop
 pf_patch_ext:
-ifdef MOUSE
 ifdef BLE
 	beq patch27_1,p_le_slave_match
 	beq patch28_3,p_le_next_adv_channel
@@ -68,7 +63,6 @@
 	beq patch30_0,p_parse_lmp_accepted
 	beq patch30_2,p_send_lmp
 	beq patch31_0,p_process_conn_sm
-//	beq patch39_5,p_sdp_process
 endif
 	beq patch31_4,p_twspi_reset
 ifdef DEBUGLOG
@@ -77,941 +71,8 @@
 	beq patch3e_6,p_ui_ipc_send_event
 	beq patch3e_7,p_ui_ipc_send_cmd
 endif
-endif
 	branch loop
-
-
-ifdef DONGLE
-p_save_rssi:
-	hfetch 2,rf_afc_d2a
-	rshift4 pdata,pdata
-	rshift3 pdata,pdata
-	sub pdata,0,pdata
-	and_into 0xff,pdata
-	store 1,mem_rssi_hex
-	branch save_rssi+6
-
-p_usb_status1:
-	jam 0x11,core_usb_status
-	hfetch 1,core_usb_ep_len
-	store 1,mem_usb_read_len
-	copy pdata,loopcnt
-	branch usb_rx_no_data,blank
-	arg mem_usb_setup,contw
-	call usb_rx_read
-	fetch 1,mem_usb_read_len
-	sub pdata,7,null
-	rtn positive 
-	fetch 1,mem_usb_setup_bmRequestType
-	and_into 0x80,pdata
-	beq OUT_DEVICE,p_usb_out_device
-	branch usb_class_type+2
-p_usb_out_device:
-	fetch 1,mem_usb_setup_bmRequestType
-	rshift4 pdata,pdata
-	rshift pdata,pdata
-	and_into 0x03,pdata
-	beq CLASS_REQ,p_usb_out_class_req	
-	branch usb_out_device+4
-p_usb_out_class_req:
-	fetch 1,mem_usb_setup_bRequest
-	beq SET_REPORT,p_usb_set_report
-	branch usb_out_class_req+1
-p_usb_set_report:
-	jam 1,mem_usb0_get_set_report
-	call usb_set_report_resume_judge
-	fetch 2,mem_usb_setup_bValue
-	store 2,mem_usb_setup_bValue_temp
-	nop 15000	//delay 1ms
-	hfetch 1,core_usb_ep_len
-	ncall p_usb_set_report_rxdata,blank
-	branch usb_set_report+4
-p_usb_set_report_rxdata:
-	copy pdata,loopcnt
-	arg mem_usb0_setup,contw
-	branch usb_rx_read
-
-p_app_init:
-	call enable_authrom
-	call p_dongle_init
-	call p_g24_queue_init
-	fetch 1,mem_24g_pair_mode
-	beq 0x00,p_dongle_auto_bind
-	beq 0x01,p_dongle_pc_bind
-	beq 0x0f,p_dongle_all_powerful
-	branch assert
-
-p_dongle_init:
-	fetch 1,mem_tx_power
-	store 1,mem_tx_power_temp
-	arg 0x80,loopcnt
-	arg mem_rssi_noise_buffer,contw
-	call memset0
-	branch usb_init
-
-p_dongle_all_powerful:
-	call p_dongle_check_mode
-p_dongle_all_powerful_loop:
-	call p_g24_dongle_work_mode
-	call usb_isr
-	branch p_dongle_all_powerful_loop
-
-p_dongle_pc_bind:
-	call p_dongle_check_mode
-p_dongle_pc_bind_loop:	
-	call p_g24_dongle_work_mode
-	call p_g24_dongle_bind_mode
-	call p_dongle_usb_dispatch
-	branch p_dongle_pc_bind_loop
-
-p_dongle_check_mode:
-	jam 0,mem_24g_ackpayload_enable
-p_dongle_work_mode_enable:
-	jam DONGLE_WORK,mem_dongle_work_mode
-	jam CLEAR_INIT,mem_dongle_mode_init	
-	rtn
-
-p_g24_dongle_work_mode:
-	fetch 1,mem_dongle_work_mode
-	rtnne DONGLE_WORK
-p_g24_dongle_work_mode_start:	
-	call p_g24_dongle_work_init
-	call p_g24_ch_process
-	call p_g24_receive_packet_start
-	branch p_g24_blank_data_process
-
-p_g24_dongle_work_init:
-	fetch 1,mem_dongle_mode_init
-	rtnbit1 DONGLE_WORK
-	set1 DONGLE_WORK,pdata
-	store 1,mem_dongle_mode_init
-	fetch 1,mem_tx_power_temp
-	store 1,mem_tx_power
-	jam 0,mem_24g_ackpayload_enable
-	jam 0,mem_usb_tx_enable
-	jam 1,mem_24g_abort_packet
-	jam 0,mem_24g_pid
-	fetch 4,mem_24g_rx_addr
-	call p_g24_update_addr_and_synccrc8
-	call p_g24_ch
-	branch p_g24_rx_interrupt_clear
-
-p_g24_ch_process:
-	fetch 1,mem_24g_abort_packet
-	beq 1,p_g24_noise_rssi
-	fetch 1,mem_24g_hop_packet
-	beq 1,p_g24_ch_receive_hop_pac
-	fetcht 4,mem_24g_hop_btclk
-	copy clkn_bt,pdata
-	isub temp,null
-	ncall g24_timer_timeout,positive
-	copy pdata,regb
-	fetch 4,mem_24g_hop_btclk
-	fetcht 1,mem_24g_hop_interval
-	iadd temp,temp
-	copy regb,pdata
-	isub temp,null
-	nrtn positive
-	set0 28,pdata
-	store 4,mem_24g_hop_btclk
-	jam 1,mem_24g_abort_packet
-	branch p_g24_ch
-
-p_g24_ch_receive_hop_pac:
-	jam 0,mem_24g_hop_packet
-	branch p_g24_ch
-
-p_g24_ch_timer_reinit:
-	copy clkn_bt,pdata
-	store 4,mem_24g_hop_btclk
-	jam 0,mem_24g_rf_laststa
-	rtn
-
-p_g24_noise_rssi:
-	arg mem_rssi_noise_buffer,rega
-	call p_rssi_average
-	storet 1,mem_rssi_noise_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive
-	branch p_g24_ch
-
-p_g24_blank_data_process:
-	call p_g24_ms_blank_data
-	call p_g24_kb_blank_data
-	branch p_g24_kb_mul_blank_data
-
-p_g24_ms_blank_data:
-	fetch 1,mem_24g_ms_blank_data_enable
-	rtn blank
-	arg TIMER_MS_BLANK,queue
-	call timer_check
-	nrtn blank
-	jam 0,mem_24g_ms_blank_data_enable
-	branch g24_ms_blank_data_2usb
-
-p_g24_kb_blank_data:
-	fetch 1,mem_24g_kb_blank_data_enable
-	rtn blank
-	arg TIMER_KB_BLANK,queue
-	call timer_check
-	nrtn blank
-	jam 0,mem_24g_kb_blank_data_enable
-	branch g24_kb_blank_data_2usb
-
-p_g24_kb_mul_blank_data:
-	fetch 1,mem_24g_kb_mul_blank_data_enable
-	rtn blank
-	arg TIMER_KB_MUL_BLANK,queue
-	call timer_check
-	nrtn blank
-	jam 0,mem_24g_kb_mul_blank_data_enable
-	branch g24_kb_mul_blank_data_2usb
-
-p_g24_dongle_bind_mode:
-	fetch 1,mem_dongle_work_mode
-	rtnne DONGLE_BIND
-	call p_g24_dongle_bind_init
-	branch p_g24_dongle_bind_data_process
-
-p_g24_dongle_bind_init:
-	fetch 1,mem_dongle_mode_init
-	rtnbit1 DONGLE_BIND
-	set1 DONGLE_BIND,pdata
-	store 1,mem_dongle_mode_init
-	setarg 0
-	store 3,mem_dongle_ms_bind_step
-	jam TX_POWER_f5DB,mem_tx_power
-	jam 1,mem_24g_ackpayload_enable
-	jam 0,mem_24g_pid
-	jam G24_PAIR_CH,mem_24g_ch	//2480MHz
-	fetch 4,mem_24g_paring_addr	//Address
-	branch p_g24_update_addr_and_synccrc8
-
-p_g24_dongle_bind_data_process:
-	call p_g24_receive_transmit_ack
-	nbranch p_g24_rx_interrupt_clear,user3
-	arg mem_24g_rxbuf,contr
-	arg mem_24g_rxdata_temp,contw
-	arg 8,loopcnt
-	call memcpy
-	fetch 1,mem_24g_rxdata_temp+2
-	beq DATATYPE_BIND,p_g24_dongle_bind_first_step	//bind step 1
-	beq DATATYPE_CONFIG,p_g24_dongle_bind_second_step
-	beq DATATYPE_OK,p_g24_dongle_bind_third_step
-	beq 0xff,p_g24_data_attemp_bind
-p_g24_rx_interrupt_clear:
-	arg mem_24g_rxbuf,contw
-	arg 66,loopcnt
-	branch clear_mem
-
-p_g24_dongle_bind_first_step:
-	fetch 1,mem_24g_rxdata_temp+3
-	beq BIND_MOUSE,p_g24_dongle_bind_first_step_mouse
-	beq BIND_KEYBOARD,p_g24_dongle_bind_first_step_keyboard
-	rtn
-p_g24_dongle_bind_first_step_mouse:
-	jam 1,mem_dongle_ms_bind_step
-p_g24_dongle_bind_ms_payload_cfg:
-	jam DATATYPE_MOUSE,mem_24g_bind_payload
-p_g24_dongle_bind_payload_cfg:	
-	jam 0x80,mem_24g_bind_payload+1
-	fetch 6,mem_24g_rx_addr
-	store 6,mem_24g_bind_payload+2
-	rtn
-
-p_g24_dongle_bind_first_step_keyboard:
-	jam 1,mem_dongle_kb_bind_step
-p_g24_dongle_bind_kb_payload_cfg:
-	jam DATATYPE_KEYBOARD,mem_24g_bind_payload
-	branch p_g24_dongle_bind_payload_cfg
-
-p_g24_dongle_bind_second_step:
-	fetch 1,mem_24g_rxdata_temp+3
-	beq BIND_MOUSE,p_g24_dongle_bind_second_step_mouse
-	beq BIND_KEYBOARD,p_g24_dongle_bind_second_step_keyboard
-	rtn
-p_g24_dongle_bind_second_step_mouse:
-	call p_g24_dongle_bind_ms_payload_cfg
-	fetch 1,mem_dongle_ms_bind_step
-	beq 1,p_g24_dongle_ms_bind_step_set2
-	rtn
-p_g24_dongle_ms_bind_step_set2:
-	jam 2,mem_dongle_ms_bind_step
-	rtn
-p_g24_dongle_bind_second_step_keyboard:
-	call p_g24_dongle_bind_kb_payload_cfg	
-	fetch 1,mem_dongle_kb_bind_step
-	beq 1,p_g24_dongle_kb_bind_step_set2
-	rtn
-p_g24_dongle_kb_bind_step_set2:
-	jam 2,mem_dongle_kb_bind_step
-	rtn
-
-p_g24_dongle_bind_third_step:
-	fetch 1,mem_24g_rxdata_temp+3
-	beq BIND_MOUSE,p_g24_dongle_bind_third_step_mouse
-	beq BIND_KEYBOARD,p_g24_dongle_bind_third_step_keyboard
-	rtn
-p_g24_dongle_bind_third_step_mouse:
-	fetch 1,mem_dongle_ms_bind_step
-	beq 2,p_g24_dongle_ms_bind_step_success
-	rtn
-p_g24_dongle_ms_bind_step_success:
-	fetch 1,mem_dongle_bind_device_status
-	or_into 0x01,pdata
-	store 1,mem_dongle_bind_device_status
-p_g24_dongle_bind_exit:	
-	setarg 0
-	store 2,mem_dongle_ms_bind_step
-	branch p_g24_rx_interrupt_clear
-	
-p_g24_dongle_bind_third_step_keyboard:
-	fetch 1,mem_dongle_kb_bind_step
-	bne 0,p_g24_dongle_kb_bind_step_success
-	rtn
-p_g24_dongle_kb_bind_step_success:
-	fetch 1,mem_dongle_bind_device_status
-	or_into 0x02,pdata
-	store 1,mem_dongle_bind_device_status
-	branch p_g24_dongle_bind_exit
-
-p_g24_data_attemp_bind:
-	fetch 1,mem_24g_rxdata_temp+3
-	beq DATATYPE_MOUSE,p_g24_data_attemp_mouse_bind
-	beq DATATYPE_KEYBOARD,p_g24_data_attemp_kbd_bind
-	rtn
-p_g24_data_attemp_mouse_bind:
-	fetch 4,mem_24g_rxdata_temp+4
-p_g24_store_mouse_addr:
-	store 4,mem_24g_ms_addr
-	rtn
-p_g24_data_attemp_kbd_bind:
-	fetch 4,mem_24g_rxdata_temp+4
-p_g24_store_kbd_addr:	
-	store 4,mem_24g_kb_addr
-	rtn
-
-p_g24_queue_init:
-	jam 0,mem_queue_ele_num
-	setarg mem_queue_start
-	store 2, mem_queue_read
-	store 2, mem_queue_write
-	rtn
-	
-p_g24_queue_put:
-	arg 0x1f,loopcnt
-	arg mem_usb0_set_report_data,temp
-	fetch 2, mem_queue_write
-	copy pdata,contw
-	copy temp,contr
-	call memcpy
-	fetch 1,mem_queue_ele_num
-	increase 1,pdata
-	store 1,mem_queue_ele_num
-	setarg mem_queue_write
-p_g24_queue_increase:
-	copy pdata,rega
-	arg mem_queue_end,temp
-	ifetch 2,rega
-	increase QUEUE_ELE_LENGTH,pdata
-	isub temp,null
-	nbranch p_g24_queue_put_end,positive
-	setarg mem_queue_start
-p_g24_queue_put_end:
-	istore 2,rega
-	rtn
-
-p_g24_queue_read_point:
-	disable user
-	fetch 1,mem_queue_ele_num
-	rtn blank
-	enable user
-	fetch 2,mem_queue_read
-	rtn
-
-p_dongle_usb_dispatch:
-	call usb_isr
-	fetch 1,mem_usb0_get_set_report
-	rtn blank
-	jam 0,mem_usb0_get_set_report
-	fetch 2,mem_usb_setup_bValue_temp
-	arg PC_SET_REPORT,temp
-	isub temp,null
-	nrtn zero
-	//get usb host command
-	fetch 1,mem_usb0_set_report_data
-	rtnne PC_REPORT_ID
-	fetch 1,mem_usb0_set_report_data+1
-	beq COMMAND_MODE,p_dongle_dispose_cmd_mode
-	beq COMMAND_BIND,p_dongle_dispose_cmd_bind
-	beq COMMAND_CURRENT_PROJECT,dongle_dispose_cmd_current_project
-	beq COMMAND_CURRENT_MODE,p_dongle_dispose_cmd_current_mode
-	beq COMMAND_CURRENT_FW_VERSION,p_dongle_dispose_cmd_current_fw_version
-	beq COMMAND_USER_DEFINED,p_dongle_dispose_cmd_user_defined
-	branch usb0_data_ready_report_set0
-
-p_dongle_dispose_cmd_bind:
-	fetch 1,mem_usb0_set_report_data+2
-	beq COM_BIND_GET,p_dongle_dispose_cmd_get_bind
-	beq COM_BIND_EXIT,p_dongle_dispose_cmd_exit_bind
-	beq COM_READ_MODE,dongle_dispose_cmd_read_mode
-	branch usb0_data_ready_report_set0
-p_dongle_dispose_cmd_get_bind:
-	fetch 1,mem_dongle_bind_device_status
-	store 1,mem_usb0_get_report_data+1
-	branch usb0_data_ready_report_set1
-p_dongle_dispose_cmd_exit_bind:
-	call p_dongle_work_mode_enable
-	branch p_dongle_dispose_cmd_get_bind
- 
-p_dongle_dispose_cmd_mode:
-	fetch 1,mem_usb0_set_report_data+2
-	beq COM_MODE_BIND,p_dongle_enter_bind_mode
-	branch usb0_data_ready_report_set0
-p_dongle_enter_bind_mode:
-	call p_g24_bind_mode_enable
-	branch usb0_data_ready_report_set1
-
-p_dongle_dispose_cmd_current_mode:
-	fetch 1,mem_dongle_work_mode
-	beq DONGLE_WORK,p_dongle_dispose_in_work_mode
-	beq DONGLE_BIND,dongle_dispose_in_bind_mode
-	rtn
-p_dongle_dispose_in_work_mode:
-	jam COMMAND_MODE,mem_usb0_get_report_data+1
-	branch usb0_data_ready_report_set1
-	
-p_dongle_dispose_cmd_current_fw_version:
-	jam FW_VERSION3,mem_usb0_get_report_data+4
-	branch dongle_dispose_cmd_current_fw_version
-
-p_dongle_dispose_cmd_user_defined:
-	fetch 1,mem_usb0_set_report_data+2
-	beq 0xff,soft_reset_chip
-p_dongle_dispose_cmd_ota:
-	jam 2,mem_24g_ackpayload_enable
-	fetch 1,mem_queue_ele_num
-	beq QUEUE_ELE_COUNT,p_user_defined_queue_buff_full
-	call p_g24_queue_put
-	fetch 1,mem_queue_ele_num
-	beq QUEUE_ELE_COUNT,p_user_defined_queue_buff_full
-p_user_defined_queue_buff_free:
-	jam 0,mem_usb0_get_report_data+1
-	branch usb0_data_ready_report_set1
-
-p_user_defined_queue_buff_full:
-	jam 1,mem_usb0_get_report_data+1
-	branch usb0_data_ready_report_set1
-
-p_dongle_auto_bind:
-	call p_g24_mode_switch_init
-p_dongle_auto_bind_loop:
-	call p_g24_mode_switch
-	call p_g24_dongle_work_mode_auto
-	call p_g24_dongle_bind_mode_auto
-	call p_g24_dongle_search_mode_auto
-	call p_dongle_usb_dispatch
-	branch p_dongle_auto_bind_loop
-
-p_g24_dongle_work_mode_auto:
-	fetch 1,mem_dongle_work_mode
-	rtnne DONGLE_WORK
-	call p_g24_dongle_work_mode_start
-	branch p_g24_rx_nodata_process
-
-p_g24_dongle_bind_mode_auto:
-	fetch 1,mem_dongle_work_mode
-	rtnne DONGLE_BIND
-	call p_g24_dongle_bind_init
-	call p_g24_dongle_bind_data_process
-	fetch 1,mem_dongle_bind_device_status
-	rtn blank
-	jam 0,mem_24g_mode_switch
-	call p_dongle_check_mode
-	call p_g24_enable_nodata_timer
-	branch p_g24_timer_init
-	
-p_g24_mode_switch_init:
-	jam 1,mem_24g_mode_switch
-	jam 0,mem_24g_time_slice
-	jam 0xff,mem_24g_interval
-p_g24_timer_init:
-	setarg 0
-	store 4,mem_24g_tx_btclk
-	rtn
-	
-p_g24_mode_switch:
-	fetch 1,mem_24g_mode_switch
-	rtn blank
-	call p_g24_timer_check
-	nrtn user
-	fetch 1,mem_24g_time_slice
-	increase 1,pdata
-	and_into 1,pdata
-	store 1,mem_24g_time_slice
-	beq 0,p_dongle_check_mode
-	beq 1,p_g24_bind_mode_enable
-	rtn
-
-p_g24_bind_mode_enable:
-	jam DONGLE_BIND,mem_dongle_work_mode
-	jam CLEAR_INIT,mem_dongle_mode_init
-	rtn
-
-p_g24_enable_nodata_timer:
-	jam 1,mem_24g_nodata_timer_enable
-	branch g24_enable_nodata_timer_init
-
-p_g24_rx_nodata_process:
-	fetch 1,mem_24g_ackpayload_enable
-	rtneq 2
-	fetch 1,mem_24g_nodata_timer_enable
-	rtn blank
-	arg TIMER_NODATA,queue
-	call timer_check
-	nrtn blank
-	jam 0,mem_24g_nodata_timer_enable
-	//no data for more than 100ms,then go to search
-	jam DONGLE_SEARCH,mem_dongle_work_mode
-	jam CLEAR_INIT,mem_dongle_mode_init
-	branch p_g24_rx_interrupt_clear
-
-p_g24_receive_transmit_ack:
-	call p_g24_rx_interrupt_clear
-	call p_g24_receive_packet
-	nrtn user3
-	branch p_g24_transmit_ack
-
-
-p_g24_dongle_search_mode_auto:
-	fetch 1,mem_dongle_work_mode
-	rtnne DONGLE_SEARCH
-	call p_g24_dongle_search_mode_init
-	call p_g24_rx_auto_addr_ch_search
-	call p_g24_receive_transmit_ack
-	nbranch p_g24_rx_interrupt_clear,user3
-	//dongle addr,then parse rxdata
-	call p_g24_rx_addr_check
-	call p_g24_receive_packet_parse,zero
-	//receive data,then go to paired
-	jam DONGLE_WORK,mem_dongle_work_mode
-	fetch 1,mem_dongle_mode_init
-	set1 DONGLE_WORK,pdata
-	store 1,mem_dongle_mode_init
-
-	fetch 1,mem_24g_ackpayload_enable
-	sub pdata,2,null
-	ncall p_g24_ackpayload_disable,zero
-
-	call p_g24_rx_interrupt_clear
-	call p_g24_enable_nodata_timer
-	call p_g24_rx_addr_check
-	branch p_g24_dg_ch_num_reinit,zero
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_kb_addr
-	isub temp,null
-	branch p_g24_kb_ch_num_reinit,zero		
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_ms_addr
-	isub temp,null
-	branch p_g24_ms_ch_num_reinit,zero
-	rtn
-
-p_g24_ackpayload_disable:
-	jam 0,mem_24g_ackpayload_enable
-	rtn
-
-p_g24_dg_ch_num_reinit:
-	fetch 1,mem_24g_dg_ch_number
-p_g24_current_ch_num_reinit:
-	store 1,mem_24g_current_ch_number
-	rtn
-p_g24_kb_ch_num_reinit:
-	fetch 1,mem_24g_kb_ch_number
-	branch p_g24_current_ch_num_reinit
-p_g24_ms_ch_num_reinit:
-	fetch 1,mem_24g_ms_ch_number
-	branch p_g24_current_ch_num_reinit
-
-p_g24_dongle_search_mode_init:
-	fetch 1,mem_dongle_mode_init
-	rtnbit1 DONGLE_SEARCH
-	set1 DONGLE_SEARCH,pdata
-	store 1,mem_dongle_mode_init
-	jam 0,mem_24g_time_slice
-	jam 1,mem_24g_ackpayload_enable
-	setarg 0
-	store 3,mem_rssi_noise_dg_index
-	store 7,mem_24g_dg_config_ch_once
-	call p_g24_rx_addr_check
-	nrtn zero
-	fetch 1,mem_24g_current_ch_number
-	store 1,mem_24g_dg_ch_number
-	fetch 1,mem_24g_ch
-	store 1,mem_24g_dg_last_ch
-	rtn
-
-p_g24_rx_addr_check:
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_rx_addr
-	isub temp,null
-	rtn
-
-p_g24_rx_auto_addr_ch_search:
-	fetch 1,mem_24g_time_slice
-	increase 1,pdata
-	and_into 3,pdata
-	store 1,mem_24g_time_slice
-	//pairing address and channel come first
-	beq 0,p_g24_rx_auto_bind_config_kb
-	beq 1,p_g24_rx_auto_bind_config_dongle
-	beq 2,p_g24_rx_auto_bind_config_mouse
-	beq 3,p_g24_rx_auto_bind_config_dongle
-	rtn
-
-p_g24_rx_auto_bind_config_mouse:
-	call p_g24_dongle_bind_ms_payload_cfg
-	fetch 4,mem_24g_ms_addr
-	branch p_g24_rx_auto_addr_ch_search,blank
-	call p_g24_update_addr_and_synccrc8
-	fetch 1,mem_24g_ms_config_ch_once
-	call p_g24_ms_config_ch_once,blank
-	fetch 1,mem_24g_ms_last_ch
-	store 1,mem_24g_ch
-	fetcht 1,mem_rssi_noise_ms_index
-	arg mem_rssi_noise_ms_buffer,rega
-	call p_rssi_store
-	storet 1,mem_rssi_noise_ms_index
-	call p_rssi_average
-	storet 1,mem_rssi_noise_ms_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive
-	fetcht 1,mem_24g_ms_ch_number
-	call p_g24_ch_map_size
-	storet 1,mem_24g_ms_ch_number
-	store 1,mem_24g_ms_last_ch
-	rtn
-
-p_g24_ms_config_ch_once:
-	jam 1,mem_24g_ms_config_ch_once
-	arg 0,temp
-	call p_g24_ch_calc
-	store 1,mem_24g_ms_last_ch
-	rtn
-	
-p_g24_rx_auto_bind_config_kb:
-	call p_g24_dongle_bind_kb_payload_cfg
-	fetch 4,mem_24g_kb_addr
-	branch p_g24_rx_auto_addr_ch_search,blank
-	call p_g24_update_addr_and_synccrc8
-	fetch 1,mem_24g_kb_config_ch_once
-	call p_g24_kb_config_ch_once,blank
-	fetch 1,mem_24g_kb_last_ch
-	store 1,mem_24g_ch	
-	fetcht 1,mem_rssi_noise_kb_index
-	arg mem_rssi_noise_kb_buffer,rega
-	call p_rssi_store
-	storet 1,mem_rssi_noise_kb_index
-	call p_rssi_average
-	storet 1,mem_rssi_noise_kb_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive
-	fetcht 1,mem_24g_kb_ch_number
-	call p_g24_ch_map_size
-	storet 1,mem_24g_kb_ch_number
-	store 1,mem_24g_kb_last_ch
-	rtn
-
-p_g24_kb_config_ch_once:
-	jam 1,mem_24g_kb_config_ch_once
-	arg 0,temp
-	call p_g24_ch_calc
-	store 1,mem_24g_kb_last_ch
-	rtn	
-
-p_g24_rx_auto_bind_config_dongle:
-	call p_g24_dongle_bind_ms_payload_cfg
-	fetch 4,mem_24g_rx_addr
-	call p_g24_update_addr_and_synccrc8	
-	fetch 1,mem_24g_dg_config_ch_once
-	call p_g24_dg_config_ch_once,blank
-	fetch 1,mem_24g_dg_last_ch
-	store 1,mem_24g_ch
-	fetcht 1,mem_rssi_noise_dg_index
-	arg mem_rssi_noise_dg_buffer,rega
-	call p_rssi_store
-	storet 1,mem_rssi_noise_dg_index
-	call p_rssi_average
-	storet 1,mem_rssi_noise_dg_avg
-	sub temp,RSSI_THRESH_NOISE,null
-	nrtn positive
-	fetcht 1,mem_24g_dg_ch_number
-	call p_g24_ch_map_size
-	storet 1,mem_24g_dg_ch_number
-	store 1,mem_24g_dg_last_ch
-	rtn
-
-p_g24_dg_config_ch_once:
-	jam 1,mem_24g_dg_config_ch_once
-	fetch 1,mem_24g_dg_last_ch
-	store 1,mem_24g_ch
-	rtn
-
-
-
-p_g24_read_len_pid_crc:
-//read control
-	fetch 1,mem_24g_rxbuf+1
-	rshift3 pdata,pdata
-	store 1,mem_24g_rxdata_length
-//get crc
-	increase 1,pdata
-	arg mem_24g_rxbuf+1,contr
-	iadd contr,contr
-	ifetch 3,contr
-	store 3,mem_24g_sta_crc
-//read pid
-	fetch 1,mem_24g_rxbuf+1
-	rshift pdata,pdata
-	and pdata,0x03,pdata
-	store 1,mem_24g_sta_pid
-	rtn
-
-p_g24_transmit_ack:
-//data type
-	fetch 1,mem_24g_rxbuf
-	store 1,mem_24g_data_type
-//read len pid crc
-	call p_g24_read_len_pid_crc
-//read ack
-	fetch 1,mem_24g_rxbuf+1
-	isolate1 bit_ack_24g,pdata
-	branch p_g24tx_no_ack,true
-p_g24tx_with_ack:
-	call p_g24_ackpayload_prep
-	call p_g24_transmit_prep
-	call p_g24_transmit
-p_g24tx_no_ack:
-	branch p_g24_end_of_packet
-
-p_g24_ackpayload_prep:
-	jam 0,mem_24g_datalen
-	fetch 1,mem_24g_ackpayload_enable
-	rtn blank
-	beq BIND_ACKPAYLOAD,p_g24_bind_ackpayload_prep
-	beq USER_ACKPAYLOAD,p_g24_user_ackpayload_prep
-	rtn
-
-p_g24_bind_ackpayload_prep:
-	jam 0x08,mem_24g_datalen
-	arg 0x08,loopcnt
-	arg mem_24g_bind_payload,contr
-	arg mem_24g_txbuf,contw
-	branch memcpy
-
-p_g24_user_ackpayload_prep:
-	call p_g24_queue_read_point
-	nrtn user
-	jam 0x1f,mem_24g_datalen
-	arg 0x1f,loopcnt
-	copy pdata,contr
-	arg mem_24g_txbuf,contw
-	call memcpy
-	fetch 2,mem_24g_txbuf+3	//pac id
-	store 2,mem_24g_ota_sta_pid
-	rtn
-
-p_g24_receive_packet_start:
-	call p_g24_receive_transmit_ack
-	nbranch p_g24_rx_interrupt_clear,user3
-	branch p_g24_receive_packet_parse
-
-p_g24_receive_packet_parse:
-	call p_g24_receive_packet_parse_pid_crc
-	nbranch p_g24_rx_interrupt_clear,user
-	fetch 1,mem_24g_rxdata_length
-	branch p_g24_rx_interrupt_clear,blank
-	increase 2,pdata
-	iforce loopcnt
-	arg mem_24g_rxbuf,contr
-	arg mem_24g_rxdata_temp,contw
-	call memcpy
-	jam 0,mem_24g_mode_switch
-	fetch 1,mem_24g_pair_mode
-	call p_g24_enable_nodata_timer,blank
-	fetch 1,mem_24g_rxdata_temp+2
-	beq 0x01,p_g24_data_type1
-	beq 0x02,p_g24_data_type2
-	beq 0x03,p_g24_data_type3
-	beq 0xff,p_g24_data_attemp
-	branch p_g24_rx_interrupt_clear
-
-p_g24_receive_packet_parse_pid_crc:
-	call disable_user
-	fetch 1,mem_24g_sta_pid
-	fetcht 1,mem_24g_last_pid
-	isub temp,null
-	ncall enable_user,zero
-	fetch 1,mem_24g_sta_pid
-	store 1,mem_24g_last_pid
-	fetch 3,mem_24g_sta_crc
-	fetcht 3,mem_24g_last_crc
-	isub temp,null
-	ncall enable_user,zero
-	fetch 3,mem_24g_sta_crc
-	store 3,mem_24g_last_crc
-	rtn
-
-p_g24_data_type1:
-	call p_g24_ch_timer_reinit
-	fetch 1,mem_24g_abort_packet
-	fetcht 1,mem_24g_rxdata_temp
-	isolate1 bit_abort,temp
-	setflag true,0,pdata
-	store 1,mem_24g_abort_packet
-	beq 1,p_g24_data_attemp_mouse_abort
-	fetch 1,mem_24g_hop_packet
-	fetcht 1,mem_24g_rxdata_temp
-	isolate1 bit_hop,temp
-	setflag true,0,pdata
-	store 1,mem_24g_hop_packet
-
-	fetch 1,mem_24g_rxdata_temp+3	//OTA
-	beq CMD_OTA,p_g24_ota_process
-	
-	setarg MS_REPORT_ID
-	store 1,mem_usb_mouse_data	//report id
-	fetch 7,mem_24g_rxdata_temp+3	//key
-	istore 7,contw
-	fetch 1,mem_24g_rxdata_temp+3	//key
-	ncall p_g24_ms_enable_blank_data_forcibly,blank//get kb data
-	fetch 1,mem_24g_rxdata_temp+3	//key
-	call p_g24_ms_disable_blank_data_forcibly,blank
-	branch g24_data_type1_usbtx_enable
-
-p_g24_ms_enable_blank_data_forcibly:
-	jam 1,mem_24g_ms_blank_data_enable
-	branch g24_ms_enable_blank_data_timer
-p_g24_ms_disable_blank_data_forcibly:
-	jam 0,mem_24g_ms_blank_data_enable
-	branch g24_ms_disable_blank_data_timer
-
-p_g24_data_type2:
-	fetcht 1,mem_24g_rxdata_temp
-	isolate1 bit_abort,temp
-	branch p_g24_data_attemp_kbd_abort,true
-	arg mem_usb_kb_data,contw
-	call p_g24_data_type2_reverse_data
-	fetch 8,mem_usb_kb_data
-	ncall p_g24_kb_enable_blank_data_forcibly,blank//get kb data
-	fetch 8,mem_usb_kb_data	
-	call p_g24_kb_disable_blank_data_forcibly,blank
-	fetch 8,mem_usb_kb_data
-	store 8,mem_24g_kb_data_sta_data
-	fetcht 8,mem_24g_kb_data_last_data
-	isub temp,null
-	ncall g24_kb_data_into_ep1_fifo,zero
-	fetch 8,mem_24g_kb_data_sta_data
-	store 8,mem_24g_kb_data_last_data
-	branch p_g24_rx_interrupt_clear
-
-p_g24_data_type2_reverse_data:
-	arg mem_24g_rxdata_temp+2,contr
-	arg 9,loopcnt
-	branch reverse_byte
-
-p_g24_kb_enable_blank_data_forcibly:
-	jam 1,mem_24g_kb_blank_data_enable
-	branch g24_kb_enable_blank_data_timer
-
-p_g24_kb_disable_blank_data_forcibly:
-	jam 0,mem_24g_kb_blank_data_enable
-	branch g24_kb_disable_blank_data_timer
-
-
-p_g24_data_type3:
-	arg mem_usb_kb_multikey,contw
-	call p_g24_data_type2_reverse_data
-	fetch 2,mem_usb_kb_multikey+1
-	ncall p_g24_kb_mul_enable_blank_data_forcibly,blank//get multikey data
-	fetch 2,mem_usb_kb_multikey+1
-	call p_g24_kb_mul_disable_blank_data_forcibly,blank
-	fetch 3,mem_usb_kb_multikey
-	store 3,mem_24g_kb_multikey_sta_data
-	fetcht 3,mem_24g_kb_multikey_last_data
-	isub temp,null
-	ncall g24_kb_mul_data_into_ep2_fifo,zero
-	fetch 3,mem_24g_kb_multikey_sta_data
-	store 3,mem_24g_kb_multikey_last_data
-	branch p_g24_rx_interrupt_clear
-
-p_g24_kb_mul_enable_blank_data_forcibly:
-	jam 1,mem_24g_kb_mul_blank_data_enable
-	branch g24_kb_mul_enable_blank_data_timer
-
-p_g24_kb_mul_disable_blank_data_forcibly:
-	jam 0,mem_24g_kb_mul_blank_data_enable
-	branch g24_kb_mul_disable_blank_data_timer
-
-	
-p_g24_data_attemp:
-	fetch 1,mem_24g_rxdata_temp+3
-	beq DATATYPE_MOUSE,p_g24_data_attemp_mouse
-	beq DATATYPE_KEYBOARD,p_g24_data_attemp_kbd
-	rtn
-p_g24_data_attemp_mouse:
-	fetch 4,mem_24g_rxdata_temp+4
-	branch p_g24_store_mouse_addr
-p_g24_data_attemp_kbd:
-	fetch 4,mem_24g_rxdata_temp+4
-	branch p_g24_store_kbd_addr
-p_g24_data_attemp_mouse_abort:
-	fetch 4,mem_24g_rxdata_temp+10
-	branch p_g24_store_mouse_addr
-p_g24_data_attemp_kbd_abort:
-	fetch 4,mem_24g_rxdata_temp+10
-	branch p_g24_store_kbd_addr
-
-p_g24_ota_process:
-	fetch 2,mem_24g_rxdata_temp+5	//ackpayload pid
-	fetcht 2,mem_24g_ota_sta_pid
-	isub temp,null
-	branch p_g24_ota_next_pac,zero
-	rtn
 	
-p_g24_ota_next_pac:
-	fetch 1,mem_24g_rxdata_temp+4	//OTA TYPE
-	beq CMD_OTA_EXIT,p_g24_ota_exit_process
-	fetch 1,mem_queue_ele_num
-	rtn blank	
-	setarg mem_queue_read
-	call p_g24_queue_increase
-	fetch 1,mem_queue_ele_num
-	increase -1,pdata
-	store 1,mem_queue_ele_num
-	fetch 1,mem_24g_rxdata_temp+4	//OTA TYPE
-	beq CMD_OTA_DATA,p_user_defined_queue_buff_free
-	beq CMD_OTA_EXIT,p_g24_ota_exit_process
-	rtn
-
-p_g24_ota_exit_process:
-	setarg 0
-	store 2,mem_24g_ota_sta_pid
-	store 1,mem_24g_ackpayload_enable
-	call p_g24_queue_init
-	fetch 1,mem_24g_rxdata_temp+7	//ackpayload pid
-	beq OTA_STA_SUCCESS,p_g24_ota_exit_success
-	beq OTA_STA_FAIL,p_g24_ota_exit_fail
-	rtn
-p_g24_ota_exit_success:
-	jam 2,mem_usb0_get_report_data+1
-	branch usb0_data_ready_report_set1
-p_g24_ota_exit_fail:
-	jam 3,mem_usb0_get_report_data+1
-	branch usb0_data_ready_report_set1
-endif
-
-
 
 ifdef MOUSE
 p_rssi_signal:
@@ -1030,13 +91,29 @@
 	arg mem_sp_state,contw
 	arg 12,loopcnt
 	call clear_mem
+ifdef BLE
 	call p_mouse_le_txbuff_load
+endif	
 	call rfcomm_init
 	call init_lmp
 	ncall lpm_disable_exen_output,wake
 	call ui_init+1
 	branch soft_reset+11
 
+p_soft_reset_2:
+	call app_lpm_init,wake
+ifdef SIMPLE_PAIRING
+	call p_publickey_init
+else
+	call ssp_disable
+ifdef SECURE_CONNECTION
+	call p_publickey_init
+endif
+endif
+	branch soft_reset_2
+p_publickey_init:
+	rtnmark1 mark_24g
+	branch publickey_init
 
 p_init_param:
 	setarg param_le_version
@@ -1045,11 +122,6 @@
 	store 2,mem_lmp_version+3
 	branch init_param+12
 
-p_lpm_dispatch_next2:
-	fetch 1,mem_mouse_wheel_trigger
-	nrtn blank
-	branch lpm_dispatch_next2
-
 p_lpm_check_wake_lock:
 	rtnmark1 mark_24g
 	fetch 1,mem_mouse_clear_sensor_data_flag
@@ -1058,8 +130,12 @@
 	beq LE_LPM_DISABLE,disable_blank
 	fetch 2,mem_sdp_remote_cid
 	nbranch disable_blank,blank
+	fetch 1,mem_mouse_wheel_trigger
+	nbranch disable_blank,blank
 	branch enable_blank
 
+
+ifdef G24
 p_g24_dispatch:
 	rtnmark0 mark_24g
 	fetch 1,mem_24g_transmit_by_interrupt
@@ -1073,15 +149,11 @@
 	fetch 1,mem_24g_pairing_sm
 	rtnne STATE_24G_PAIRING_SUCCESS
 	call power_ctrl_start
-p_g24_short_sleep:
 	fetch 1,mem_24g_transmit_by_interrupt
 	rtneq G24_TX_TIMER_INT_ENABLE
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	rtn blank
-	fetch 1,mem_lpm_mode
-	rtn blank
-	call p_mouse_setgpio_lpm
+p_g24_short_sleep:	
+	call p_g24_lpm_wait
+	nrtn user
 	call p_clear_wake
 	setarg 60500
 	branch lpm_dispatch_sleep
@@ -1089,7 +161,7 @@
 p_g24_transmit_by_interrupt:
 	call p_g24_timer_check
 	nrtn user
-	call p_g24_interval_calibrate	
+	call p_g24_interval_calibrate
 	fetch 1,mem_24g_transmit_by_interrupt_exit_count
 	increase 1,pdata
 	store 1,mem_24g_transmit_by_interrupt_exit_count
@@ -1102,12 +174,12 @@
 p_g24_interval_min:
 	jam 0,mem_24g_pac_index
 	fetch 1,mem_24g_interval_min
+p_g24_current_interval_store:
 	store 1,mem_24g_interval
 	rtn
 p_g24_interval_max:
 	fetch 1,mem_24g_interval_max
-	store 1,mem_24g_interval
-	rtn	
+	branch p_g24_current_interval_store
 p_g24_interval_calibrate:
 	fetch 1,mem_24g_pac_index
 	increase 1,pdata
@@ -1124,17 +196,22 @@
 	fetch 1,mem_24g_abort_pac
 	call p_g24_send_abort_packet,blank
 p_g24_long_sleep:
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	rtn blank
-	fetch 1,mem_lpm_mode
-	rtn blank
-	call p_mouse_setgpio_lpm
-	fetch 8,mem_24g_enter_hibernate
+	call p_g24_lpm_wait
+	nrtn user
+	fetch 3,mem_24g_enter_hibernate
 	call clk2lpo
 	storet 4,mem_sleep_counter
   	branch lpm_sleep
 
+p_g24_lpm_wait:
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	fetch 1,mem_lpm_mode
+	branch disable_user,blank
+	branch p_mouse_setgpio_lpm
+
 p_g24_send_abort_packet:
 	jam 1,mem_24g_abort_pac
 	jam 0,mem_24g_rf_hop_ch
@@ -1148,2707 +225,2628 @@
 	fetch 1,mem_24g_data_type
 	set1 bit_abort,pdata
 	store 1,mem_24g_data_type
-	call p_g24_transmit_prep
 	call p_g24_txdata_enable_tx
 	branch p_g24_transmit_start
 
-
-p_mouse_before_lpm:
-	rtnmark1 mark_24g
-	call p_mouse_le_txbuff_save
-	call p_mouse_setgpio_lpm
-	fetch 1,mem_context
-	bbit0 state_inconn,p_clear_wake
-	fetch 1,mem_lpm_current_mult
+p_g24_set_device_addr:
+	call adc_init_data
+	fetch 4,mem_2v_adc_vinlpm_data	//adc data from otp
+	store 4,mem_24g_device_addr	
 	nrtn blank
-p_clear_wake:
-	setarg 0
-	store 8,mem_gpio_wakeup_low
+	fetch 4,mem_lap
+	store 4,mem_24g_device_addr
 	rtn
 
-p_mouse_setgpio_lpm:
-	call p_mouse_set_sdio_high
-	call p_clear_wake
-	call mouse_lpm_before_common
-	hfetch 4,core_gpio_oe0
-	hfetcht 4,core_gpio_pu0
-	ior temp,temp
-	invert temp,temp
-	hstoret 4,core_gpio_pd0
+p_g24_transmit_rf_sta_init:
+	jam 1,mem_24g_rf_last_sta
+	jam 0,mem_24g_sync_cnt
+p_g24_transmit_rf_ctrl_clear:	
+	fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_24g_data_type
+	rtn
+	
+p_g24_hop_ch_enable:
+	fetch 1,mem_24g_data_type
+	set1 bit_hop,pdata
+	store 1,mem_24g_data_type
+	//update txpayload
+	store 1,mem_24g_txpayload
 	rtn
+p_g24_hop_ch_disable:
+	fetch 1,mem_24g_data_type
+	set0 bit_hop,pdata
+	store 1,mem_24g_data_type
+	rtn	
 
-p_mouse_set_sdio_high:
-	fetch 1,mem_mouse_init_sensor_reset_flag
-	rtn blank
-	branch p_mouse_seting_dpi+1	// make sdio high to make 100uA less	
+p_g24_transmit_hop_pac_fail:
+	call power_ctrl_pac_succ_decrs
+	fetch 1,mem_24g_rf_work_stage
+	beq 1,p_g24_transmit_hop_pac_fail_wo_hop
+	beq 2,p_g24_transmit_hop_pac_fail_hop_stage2
+	rtn
+p_g24_transmit_hop_pac_fail_wo_hop:
+	jam 2,mem_24g_sync_cnt
+p_g24_transmit_hop_pac_fail_stage1:	
+	jam 0,mem_24g_hop_pac_retry
+	jam 0,mem_24g_rf_last_sta
+	branch p_g24_transmit_rf_ctrl_clear
 
-p_mouse_le_txbuff_save:
-	arg mem_le_tx_buffer0,contr
-	arg mem_le_tx_buffer0_omemalloc,contw
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer1,contr
-	arg mem_le_tx_buffer1_omemalloc,contw
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer2,contr
-	arg mem_le_tx_buffer2_omemalloc,contw
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer3,contr
-	arg mem_le_tx_buffer3_omemalloc,contw
-p_mouse_le_txbuff_copy:	
-	arg 27,loopcnt
-	branch memcpy
+p_g24_transmit_hop_pac_fail_hop_stage2:
+	jam 0,mem_24g_rf_hop_ch
+	branch p_g24_transmit_hop_pac_fail_stage1
 
-p_mouse_le_txbuff_load:
-	arg mem_le_tx_buffer0_omemalloc,contr
-	arg mem_le_tx_buffer0,contw
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer1_omemalloc,contr
-	arg mem_le_tx_buffer1,contw
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer2_omemalloc,contr
-	arg mem_le_tx_buffer2,contw
-	call p_mouse_le_txbuff_copy
-	arg mem_le_tx_buffer3_omemalloc,contr
-	arg mem_le_tx_buffer3,contw
-	branch p_mouse_le_txbuff_copy
+	
+p_g24_transmit_pac_fail_hop_stage3:
+	fetch 2,mem_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_24g_txfail_cnt
+	bbit1 10,p_g24_tx_attempt_fail	//1024ms * 8
+	fetch 1,mem_24g_rf_hop_ch
+	beq 1,p_g24_rf_hop_fastly
+	jam 1,mem_24g_rf_hop_ch
+p_g24_rf_hop_attemp_again:
+	fetch 1,mem_24g_rf_hop_ch
+	bne 1,p_g24_transmit_rf_ctrl_clear
+p_g24_rf_hop_fastly:
+	fetch 1,mem_24g_hop_fastly_cnt
+	increase 1,pdata
+	store 1,mem_24g_hop_fastly_cnt
+	beq 4,p_g24_rf_hop_fastly_exit
+	call p_g24_ch
+	jam 2,mem_24g_max_retry
+	branch p_g24_transmit_packet
 
-p_device_init:
-ifdef DEBUGLOG
-	call debuglog_init
-ifdef DEBUGLOG_STATUS
-	setarg DEBUGLOG_DTYPE_STATUS
-	store 2,mem_debuglog_datatype
-	setarg STATUS_LPM_WAKE
-	store 2,mem_debuglog_dataval
-	call debuglog_push	
-endif
-endif
-	call app_lpm_mult_enable
-	branch p_device_init_common,wake
-ifdef DEBUGLOG
-ifdef DEBUGLOG_STATUS
-	setarg DEBUGLOG_DTYPE_STATUS
-	store 2,mem_debuglog_datatype
-	setarg STATUS_CODE_WAKE
-	store 2,mem_debuglog_dataval
-	call debuglog_push
-endif
-endif
-	jam 0x20,core_gpio_pu0
+p_g24_rf_hop_fastly_exit:
+	call power_ctrl_pac_succ_decrs
+	jam 0,mem_24g_hop_fastly_cnt
+	branch p_g24_transmit_rf_ctrl_clear
 
-	call p_mouse_data_init
-	fetch 1,mem_tx_power
-	store 1,mem_tx_power_temp
-	call power_ctrl_pac_succ_cnt_init
-	fetch 1,mem_ui_button_timeout
-	store 1,mem_combination_ui_button_count	//combination key timer init
-	call mouse_bt_discovery_button_down_disable
-p_device_init_common:
-	call p_mouse_init
-	branch enable_authrom
+p_g24_transmit_hop_pac_succ_wo_hop:
+	jam 2,mem_24g_sync_cnt
+p_g24_transmit_hop_pac_succ:
+	jam 1,mem_24g_rf_last_sta
+	jam 0,mem_24g_rf_hop_ch
+	branch p_g24_transmit_rf_ctrl_clear
 
-p_mouse_tx_power_init:
-	fetch 1,mem_tx_power_temp
-	store 1,mem_tx_power
+p_g24_transmit_succ_rf_config:
+	fetch 1,mem_24g_rf_work_stage
+	beq 3,p_g24_transmit_hop_pac_succ
+	fetch 1,mem_24g_data_type
+	isolate0 bit_hop,pdata
+	branch p_g24_transmit_rf_sta_init,true
+	fetch 1,mem_24g_rf_work_stage
+	beq 1,p_g24_transmit_hop_pac_succ_wo_hop
+	beq 2,p_g24_transmit_hop_pac_succ
 	rtn
 
-p_mouse_init:
-	ncall p_mouse_setting_config,wake
-	call p_mouse_spi_init
-	rtn wake
-ifdef RF_DEBUG
-	call test_gpio_init
-endif
-	call p_mouse_cb_fuction
-	call mouse_check_key_gpio
-	beq MOUSE_LM_BUTTON,p_mouse_24g_pairing_button
-	branch p_mouse_wakeup_from_power
-
-p_mouse_check_reconn_target:
-	call p_mouse_tx_power_init
-	fetch 1,mem_xrecord_mode
-	beq REC_3_MODE,p_mouse3_0_check_reconn_target
-	beq REC_4_MODE,p_mouse4_0_check_reconn_target
+p_g24_rf_sta_check:
+	fetch 1,mem_24g_pairing_sm
+	rtnne STATE_24G_PAIRING_SUCCESS
+	call p_g24_rf_laststa_synccnt_check
+	ncall p_g24_rf_sync_cnt_check,user2
 	rtn
-p_mouse3_0_check_reconn_target:
-	fetch 6,mem_hci_plap
-	branch app_bt_start_discovery_short,blank
-	branch mouse3_0_check_reconn_target+3
-	
-p_mouse4_0_check_reconn_target:
-	jam 1,mem_mouse_le_reconnect_flag
-	fetch 2,mem_mouse_direct_timeout
-	store 2,mem_mouse_direct_timer
-	call app_lpm_mult_disable
-	call p_le_check_adv_flag
-	setarg ADV_FLAG_BREDR_NOT_SUPPORTED
-	istore 1,contr
-	branch check_51cmd_adv
-
-p_le_check_adv_flag:
-	arg mem_le_adv_data,rega
-p_le_check_adv_flag_loop:
-	ifetch 1,rega	//length
-	rtn blank
-	iadd contr,rega
-	ifetch 1,contr	//type
-	rtneq 0x01
-	branch p_le_check_adv_flag_loop
 
-p_mouse_24g_pairing_button:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G
-	rtnbit1 MOSUE_24G_PAIRING_FLAG
-	rtnmark1 mark_24g
-	call mouse_devce_led_off
-	arg MOSUE_24G_PAIRING_FLAG,queue
-	call mouse_enable_function_flag
-	setarg 0
-	store 2,mem_mouse_direct_timer
-	store 1,mem_mouse_send_blank_timer
-	store 2,mem_24g_check_dongle_times
-	call mouse_stop_discovery
-	branch p_g24_start_pairing_sm1
+p_g24_rf_laststa_synccnt_check:
+	disable user2
+	fetch 1,mem_24g_rf_last_sta
+	rtnne 1
+	fetch 1,mem_24g_sync_cnt
+	rtnne 0
+	jam 1,mem_24g_rf_work_stage
+	jam 4,mem_24g_max_retry
+	branch enable_user2
 
-p_mouse_dpi_config:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_EEPROM,mouse_dpi_config
-	fetch 1,mem_mouse_dpi
-	beq 0xff,mouse_dpi_config
-	branch mouse_seting_dpi+2
+p_g24_rf_sync_cnt_check:
+	fetch 1,mem_24g_sync_cnt
+	branch p_g24_rf_hop_attemp,blank
+	increase -1,pdata
+	store 1,mem_24g_sync_cnt
+	jam 2,mem_24g_rf_work_stage
+	jam 4,mem_24g_max_retry
+	branch p_g24_ch
 
-p_mouse_spi_init:
-	jam 0x76,mem_spi_init_clk
-	branch mouse_spi_init
-	
-p_mouse_init_sunt:
-	call p_mouse_spi_init
-	call mouse_spi_sdio_gpio_pollup
-	fetch 1,mem_config_sensor_type
-	beq P3610,mouse_init_3610sensor
-p_mouse_init_sensor:
-	call mouse_read_sensor_id
-	beq P32XX_ID1,p_mouse_init_p32xx_id2_judge
-	beq P3065_ID1,p_mouse_p3065_init_param
-	call mouse_twspi_reset
-	nop 1000
-	branch p_mouse_init_sensor
+p_g24_rf_hop_attemp:
+	jam 3,mem_24g_rf_work_stage
+	fetch 1,mem_24g_rf_hop_ch
+	nbranch p_g24_rf_hop_attemp_again,blank
+	jam 2,mem_24g_max_retry
+	branch p_g24_ch
 
-p_mouse_init_sensor_reset:
-	jam 1,mem_mouse_init_sensor_reset_flag
-	call spi_ncs_enable
-	call p_mouse_init_sunt
-	branch spi_ncs_disable
-
-p_mouse_init_p32xx_id2_judge:
-	call p_mouse_sensor_poweron
-	branch mouse_init_p32xx_id2_judge
+p_g24_txdata_prep:
+	fetch 1,mem_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,p_g24_pairing_sm	
+p_g24_txdata_prep_packeage_data:
+	call p_g24_package_data
+p_g24_txdata_enable_tx:	
+	call p_g24_transmit_prep
+	jam ENSURE_ON_24G,mem_24g_ensure
+	rtn
 
+p_g24_package_data:
+	fetch 2,mem_cb_24g_data
+	call callback_func
+	branch p_g24_accumulate_mouse_data,user
+	fetch 7,mem_24g_txbuf+1	//mouse data
+	rtn blank
+	branch enable_user	// retransmit
+p_g24_accumulate_mouse_data:
+	jam 0,mem_24g_abort_pac
+	add rega,1,pdata
+	store 1,mem_24g_datalen
+	call p_g24_transmit_rf_ctrl_clear
+	store 1,mem_24g_txbuf
+	ifetcht 1,contw
+	ifetch 1,regb
+	ior temp,pdata
+	istore 1,contw	//key
+	increase 1,regb
+	ifetch 4,regb
+	istore 4,contw	//x,y
+	increase 4,regb
+	arg mem_24g_txbuf+6,contw
+	arg 2,loopcnt
+p_g24_accumulation_loop:
+	ifetch 1,regb
+	ifetcht 1,contw	//wheel,twheel
+	iadd temp,pdata
+	istore 1,contw
+	increase 1,regb
+	loop p_g24_accumulation_loop
+	rtn
 
-p_mouse_p3065_init_param:
-	call p_mouse_sensor_poweron
-	fetch 1,mem_sensor_id2
-	beq P3065_XY_ID2,mouse_p3065xy_init_param
-	jam P3065,mem_config_sensor_type
+p_g24_transmit_packet:
+	jam 0,mem_24g_retry
+p_g24_transmit_loop:
+	arg param_rx_setup,timeup
+	until clkn_rt,meet
+	call p_g24_transmit_receive_ack
+	fetch 1,mem_24g_no_ack	//tx noack
+	rtneq no_ack_24g
+	nbranch p_g24_retransmit,sync
+	nbranch p_g24_retransmit,user3
+	call p_g24_txbuf_clear
+	call p_g24_ackpayload_parse
+	call power_ctrl_pac_succ_incrs
+p_g24_transmit_next_packet:
+	fetch 1,mem_24g_pid
+	increase 1,pdata
+	store 1,mem_24g_pid
+	fetch 1,mem_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,p_g24_paring_mode_start
+	call p_g24_transmit_succ_rf_config
+p_g24_transmit_abandon:
+	setarg 0
+	store 2,mem_24g_txfail_cnt
+	store 1,mem_24g_get_ack_fail
+	store 1,mem_24g_hop_pac_retry
+	jam ENSURE_OFF_24G,mem_24g_ensure
 	rtn
 
-p_mouse_sensor_poweron:
-	setarg 0x8006	// reset to factory settings
-	call twspi_write
-	nop 12000
-	branch p_mouse_dpi_config
-p_mouse_sensor_powerdown:
-	setarg 0x06
-	call twspi_read
-	or pdata,0x08,pdata
-	lshift8 pdata,pdata
-	add pdata,0x06,pdata
-	branch twspi_write	//make sdio high
+p_g24_txbuf_clear:
+	arg 4,loopcnt
+	arg mem_24g_txbuf,contw
+	branch memset0
 
-p_mouse_setting_config:
-	call p_g24_set_device_addr
-	//disable usb function
-//	hfetch 1,core_usb_config
-//	set0 4,pdata
-//	hstore 1,core_usb_config
-	call mouse_gpio_init
-	call mouse_param_init
-	call p_mouse_bt_sdp_update
-	setarg 0
-	store 2,mem_lpm_interval	
-	call mouse_adc_init
-	call le_set_config_fixed_ltk
-	call le_set_justwork
-	call le_set_fixed_ltk
-	call le_set_config_read_authentication
-//	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-//	bbit1 MOUSE_ENABLE_EEPROM,p_mouse_init_iic
-//	bbit1 MOUSE_ENABLE_FLASH,p_mouse_load_flash_info_cheak
-//	rtn
-p_mouse_init_iic:
-	call iic_init_390k
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
-	ncall clear_eeprom_size_2k,true
-	call mouse_load_eeprom_dpi
-	call p_mouse_init_environment
-	call p_mouse_set_24g_addr_eeprom
-	branch iicd_read_eep_data
+p_g24_paring_mode_start:
+	call power_ctrl_pac_succ_cnt_init
+	branch p_g24_paring_mode
 
-p_mouse_bt_sdp_update:
-	call enable_authrom
-	arg 0x8c00,contr
-	arg mem_mouse_uuid_list,contw
-	arg 369,loopcnt
-	call memcpy
-	//Attribute: HID SSR Host Max Latency
-	setarg 0x0f0209
-	istore 3,contw
-	setarg 0x120009
-	istore 3,contw
-	//Attribute: HID SSR Host Min Timeout
-	setarg 0x100209
-	istore 3,contw
-	setarg 0x000009
-	istore 3,contw
-	arg 0x8d71,contr
-	arg 265,loopcnt
-	call memcpy
+p_g24_transmit_receive_ack:
+	disable user3
+	call p_g24_transmit
 	
-	jam 0,mem_mouse_uuid_list+23	//Service Record Handle: 0x 00 01 00 00
-	jam 0x6d,mem_mouse_uuid_list+15	//total length
-	setarg 0x401f
-	store 2,mem_mouse_uuid_list+357	//timeout
-	setarg 0x6d04
-	store 2,mem_mouse_uuid_list+462	//VID
-	setarg 0x16b0
-	store 2,mem_mouse_uuid_list+468	//PID
+ifdef RF_DEBUG
+	call test_gpio_low
+endif
 
-	setarg mem_mouse_uuid_list				//bt sdp start address
-	store 2,mem_ui_uuid_table
+	fetch 1,mem_24g_no_ack
+	beq no_ack_24g,p_g24_transmit_no_ack	//tx no ack
+	force 0,radio_ctrl
+	fetch 4,mem_24g_addr
+	iforce access
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	call p_g24_receive_rxon
+	call p_g24_end_of_packet,user3
 	rtn
+p_g24_transmit_no_ack:
+	call p_g24_end_of_packet
+	branch p_g24_transmit_next_packet
 
-p_mouse_init_environment:
-	call app_initflag_check
-	branch mouse_eeprom_load_recon_info,zero
-	call p_le_addr_random_config
-	branch mouse_init_environment+2
+p_g24_retransmit:
+	fetch 1,mem_24g_get_ack_fail
+	increase 1,pdata
+	store 1,mem_24g_get_ack_fail
+	fetch 1,mem_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,p_g24_tx_paring_retry
+	fetcht 1,mem_24g_retry
+	increase 1,temp
+	storet 1,mem_24g_retry
+	fetch 1,mem_24g_max_retry
+	isub temp,pdata
+	nbranch p_g24_transmit_loop,blank
+	fetch 1,mem_24g_rf_work_stage
+	beq 3,p_g24_transmit_pac_fail_hop_stage3
+	fetch 1,mem_24g_hop_pac_retry
+	increase 1,pdata
+	store 1,mem_24g_hop_pac_retry
+	beq 2,p_g24_transmit_hop_pac_fail
+	call p_g24_hop_ch_enable
+	jam 1,mem_24g_max_retry
+	branch p_g24_transmit_packet
 
-p_app_flag_store:
-	arg 2,temp
-	arg mem_timeup,rega
-	arg MOUSE_EEPROM_MODULE_INIT_FLAG,regb
-	branch iicd_write_protect_eep_data
+p_g24_tx_paring_retry:
+	fetch 1,mem_24g_get_ack_fail
+	rtnne 0xff
+	jam 0,mem_24g_get_ack_fail
+	branch p_g24_stop_g24_mode
 
-p_app_initflag_check:
-	arg 2,temp
-	arg mem_pdatatemp,rega
-	arg MOUSE_EEPROM_MODULE_INIT_FLAG,regb
-	branch app_initflag_check+4
+p_g24_tx_attempt_fail:
+	setarg 0
+	store 2,mem_24g_txfail_cnt
+p_g24_stop_g24_mode:
+	jam BT_EVT_24G_ATTEMPT_FAIL,mem_fifo_temp
+	branch ui_ipc_send_event
 
-/*
-p_mouse_load_flash_info_cheak:
-	call mouse_load_flash_flag
-	fetch 2,mem_store_flag
-	arg EEPROM_INIT_FLAG,temp
-	isub temp,null
-	branch p_mouse_load_flash_device_info,zero
-	storet 2,mem_store_flag
-	call mouse_ble_init_address
-	branch mouse_store_flash_device_info
-
-p_mouse_load_flash_device_info:
-	setarg mem_mouse_information_end
-	arg mem_mouse_information_start,temp
-	isub temp,temp
-	fetch 3,mem_flash_base
-	arg mem_mouse_information_start,rega
-	call spid_read_flash
-	call mouse_select_reconn_device
-	fetch 4,mem_mouse_24g_addr
-	store 4,mem_24g_addr
+p_g24_ackpayload_parse:
+	call p_g24_read_len_pid_crc
+	fetch 1,mem_24g_rxdata_length	//ack payload length 
+	rtn blank
+	iforce loopcnt
+	arg mem_24g_rxbuf+2,contr
+	arg mem_24g_rxpayload,contw	//ack payload buffer 
+	branch memcpy
+
+p_g24_start_pairing_sm1:
+	set1 mark_24g,mark
+	call p_g24_pair_init
+p_g24_set_pairing_sm_1:
+	jam STATE_24G_PAIRING_1,mem_24g_pairing_sm
 	rtn
-*/
 
-p_mouse_wakeup_from_power:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_WAKEUP_FROM_POWER,p_mouse_wakeup_no_from_power
-	fetch 1,mem_wakup_from_power_flag
-	isolate0 gpio_latch,pdata
-	nbranch p_mouse_wakeup_no_from_power,true
-	call p_mouse_init_sunt
-	call p_mouse_sensor_powerdown
-p_mouse_wakeup_no_from_power:
-	fetch 1,mem_reconn_times_init
-	store 1,mem_reconn_times
-//	fetch 1,mem_config_function_enable	//standard do not need it
-//	rtnbit1 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
-//	rtnbit1 ENABLE_SELECT_DEVICE_BY_SWITCH
-p_mouse_start_24g_mode:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G
-	call p_g24_factory_check
-	branch p_g24_auto_pair_start,user
-	branch p_g24_start_24g_mode
+p_g24_pair_init:
+	jam TX_POWER_PAIR,mem_tx_power
+	jam 0,mem_24g_pid
+	jam G24_PAIR_CH,mem_24g_ch
+	fetch 4,mem_24g_paring_addr
+	branch p_g24_update_addr_and_synccrc8
 
-p_g24_factory_check:
-	arg 2,loopcnt
-	arg mem_24g_addr,contr
-p_pdata_0xff_check:
-	call enable_user
-	setarg 0xffff
-p_pdata_0xff_check_loop:
-	ifetcht 2,contr
-	isub temp,null
-	ncall disable_user,zero
-	loop p_pdata_0xff_check_loop
-	rtn
-
-p_mouse_cb_fuction:
-	setarg p_mouse_g24_package_data
-	store 2,mem_cb_24g_data
-ifdef BLE
-	setarg p_mouse_le
-	store 2,mem_cb_le_process
-	setarg p_le_mouse_bb_event_connect_complete
-	store 2,mem_cb_att_write
-endif	
-	setarg p_mouse_bt
-	store 2,mem_cb_bt_process
-	setarg p_mouse_before_lpm
-	store 2,mem_cb_before_lpm
-	setarg p_mouse_priority_bb_event
-	store 2,mem_cb_bb_event_process
-	setarg p_mouse_idle
-	store 2,mem_cb_idle_process
-	setarg p_mouse_before_hibernate
-	store 2,mem_cb_before_hibernate
-	setarg p_mouse_bb_event_timer
-	store 2,mem_cb_event_timer
-//	setarg mouse_spi_write_flash_cb
-//	store 2,mem_cb_spi_flash_write_complate
-	rtn
-
-p_mouse_g24_package_data:
-	call mouse_g24_package_data
-	fetch 2,mem_mouse_z
-	rtn blank
-	branch p_g24_transmit_by_interrupt_enable
-	
-ifdef BLE	
-p_mouse_le:
-	call le_fifo_check_nearly_full
-	nrtn blank
-	fetch 1,mem_le_connect_status_flag
-	and pdata,0x03,pdata
-	rtnne 0x03
-	fetch 1,mem_mouse_clear_sensor_data_flag
-	call p_mouse_clear_sensor_data,blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-//	bbit1 MOSUE_24G_PAIRING_FLAG,mouse_le_send_empty_packet
-//	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_le_send_empty_packet
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
-	call mouse_motion
-	nrtn user
-	call p_mouse_wheel_trigger
-	branch p_mouse_data_push
-endif
-
-p_mouse_wheel_trigger:
-	fetch 2,mem_mouse_z
-	rtn blank
-	jam 1,mem_mouse_wheel_trigger
-	jam 2,mem_mouse_wheel_trigger_timer
-	rtn
-
-p_mouse_bt:
-	rtn attempt
-	fetch 1,mem_app_handshake_flag
-	rtn blank
-	call l2cap_malloc_is_fifo_nearly_full
-	nrtn blank
-	fetch 1,mem_mouse_clear_sensor_data_flag
-	call p_mouse_clear_sensor_data,blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-//	bbit1 MOSUE_24G_PAIRING_FLAG,mouse_send_empty_data
-//	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_send_empty_data
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_send_empty_data
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,mouse_send_empty_data
-	call mouse_motion
-	nrtn user
-	call p_mouse_wheel_trigger
-	fetch 1,mem_mouse_bt_boot_mode
-	beq 1,p_mouse_send_data_boot_mode	//boot
-	fetch 1,mem_mouse_bt_send_first_package_flag
-	rtn blank
-	branch mouse_send_data	//report
-
-p_mouse_send_data_boot_mode:
-	fetch 1,mem_mouse_key
-	store 1,mem_mouse_bt_boot_data
-	fetch 1,mem_mouse_x
-	istore 1,contw
-	fetch 1,mem_mouse_y
-	istore 1,contw
-	fetch 2,mem_mouse_z
-	istore 2,contw
-
-	arg 7,rega
-	call hid_malloc_tx_buff
-	fetch 2,mem_hid_int_remote_cid
-	istore 2,contw
-	setarg 0x02a1
-	istore 2,contw
-	fetch 5,mem_mouse_bt_boot_data
-	istore 5,contw
-	rtn
-	
-	
-p_mouse_clear_sensor_data:
-	call le_set_config_more_data
-	jam 1,mem_mouse_clear_sensor_data_flag
-	branch p_mouse_sensor_poweron
-
-p_mouse_idle:
-//	call p_mouse_24g_pairing_button
-	call ui_check_paring_button
-	call mouse_dpi_cheak
-	branch mouse_wheel_check
-/*
-//pc bind api
-p_mouse_24g_pairing_button:
-	fetch 2,mem_24g_pairing_timer_count
-	rtn blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G
-	rtnbit1 MOSUE_24G_PAIRING_FLAG
-	rtnmark1 mark_24g
-	call mouse_check_key_gpio
-	rtnne MOUSE_LMR_BUTTON
-	call mouse_devce_led_off
-	arg MOSUE_24G_PAIRING_FLAG,queue
-	call mouse_enable_function_flag
-	setarg 0
-	store 2,mem_mouse_direct_timer
-	store 1,mem_mouse_send_blank_timer
-	store 2,mem_24g_check_dongle_times
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BT_RECONNECT,mouse_cancel_reconnect
-	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
-	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
-	call mouse_stop_discovery
-	branch p_g24_start_pairing_sm1
-*/
-p_mouse_priority_bb_event:
-	copy regc,pdata
-ifdef BLE	
-	beq BT_EVT_LE_CONNECTED,p_mouse_le_bb_event_connected
-	beq BT_EVT_LE_DISCONNECTED,p_mouse_le_bb_disconnected
-	beq BT_EVT_LE_ENC_INFO,p_mouse_le_enc_info
-	beq BT_EVT_LE_START_ENC,p_mouse_le_ll_start_encryt
-	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,p_mouse_le_conn_param_update_rsp_recieved
-endif
-ifdef CLASSIC_BT
-	beq BT_EVT_RECONN_FAILED,p_mouse_bb_event_reconn_failed
-	beq BT_EVT_RECONN_PAGE_TIMEOUT,p_mouse_bb_event_reconn_timeout
-	beq BT_EVT_VIRTUAL_CABLE_UNPLUG,p_mouse_irtual_cable_unplug
-	beq BT_EVT_SWITCH_NOT_ACCEPT,app_bt_role_switch	
-	beq BT_EVT_SNIFF_NOT_ACCEPT,p_mouse_sniff_not_accept
-	beq BT_EVT_BB_CONNECTED,p_mouse_bb_event_connected
-	beq BT_EVT_BB_DISCONNECTED,p_mouse_bb_event_disconnected
-	beq BT_EVT_SWITCH_SUCCESS_MASTER,p_mouse_enter_sniff_check
-endif
-	beq BT_EVT_24G_PAIRING_COMPLETE,p_mouse_24g_pairing_complete
-	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
-	beq BT_EVT_24G_ATTEMPT_SUCCESS,p_mouse_24g_attempt_success
-	branch mouse_priority_bb_event+1
-
-ifdef BLE
-p_mouse_le_bb_event_connected:
-	call p_mouse_init_sensor_reset
-
-	call p_mouse_data_init
-	branch mouse_le_bb_event_connected
-
-p_mouse_le_bb_disconnected:
-	call p_mouse_sensor_powerdown_check
-	setarg LE_INTERVAL_8_75MS
-	store 2,mem_le_interval_min
-	store 2,mem_le_interval_min+2
-	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
-	jam 0,mem_mouse_clear_sensor_data_flag
-	call p_mouse_data_init
-	call le_clr_config_more_data
-	branch mouse_bb_disconnected
-
-p_mouse_le_enc_info:
-p_app_updata_le_param:
-	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
-	branch ui_ipc_send_cmd
-
-p_mouse_le_ll_start_encryt:
-	fetch 1,mem_mouse_le_reconnect_flag
-	beq 1,p_mouse_le_ll_reconn_start_encryt
-	branch p_mouse_le_ll_enable_start_enc_flag
-
-p_mouse_le_ll_reconn_start_encryt:
-	call p_app_updata_le_param
-	jam 20,mem_le_start_encrypt_timer
-p_mouse_le_ll_enable_start_enc_flag:
-	arg LL_START_ENC_FLAG,queue
-	branch mouse_le_enable_connect_flag
-
-p_mouse_le_conn_param_update_rsp_recieved:
-	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
-	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
-	fetch 1,mem_le_tsniff
-	rshift2 pdata,pdata
-	sub pdata,LE_INTERVAL_15MS,null
-	rtn positive
-	setarg LE_INTERVAL_11_25MS
-	store 2,mem_le_interval_min
-	store 2,mem_le_interval_min+2
-	call p_app_updata_le_param
-	branch p_mouse_le_conn_param_lpm_disable
-endif
-
-
-ifdef CLASSIC_BT
-p_mouse_bb_event_reconn_timeout:
-p_mouse_bb_event_reconn_failed:
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BTN_DOWN
-	rtnbit1 UI_STATE_BT_DISCOVERY
-	rtnbit1 UI_STATE_BLE_ADV
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
-//	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_soft_reset
-//	bbit1 MOSUE_24G_PAIRING_FLAG,p_g24_start_pairing_sm1
-	branch app_bb_hibernate
-
-p_mouse_irtual_cable_unplug:
-	call mouse_irtual_cable_unplug
-	branch app_bb_hibernate
-
-p_mouse_sniff_not_accept:
-	fetch 1,mem_mouse_enter_sniff_count
-	rtneq 2
-	increase 1,pdata
-	store 1,mem_mouse_enter_sniff_count
-	jam 0x12,mem_sniff_param_interval	//89Hz
-	branch app_bt_enter_sniff
-
-p_mouse_bb_event_connected:
-	jam 0,mem_mouse_send_switch_req_timer
-	call p_mouse_init_sensor_reset
-	branch mouse_stop_discovery
-
-p_mouse_bb_event_disconnected:
-	jam 0,mem_bt_rcvd_switch_req_accept
-	jam 0,mem_bt_send_lmp_setup_complete
-	jam 0,mem_mouse_bt_send_first_package_flag
-	call p_mouse_sensor_powerdown_check
-	branch mouse_bb_disconnected
-
-p_mouse_enter_sniff_check:
-	fetch 1,mem_mouse_enter_sniff_count
-	rtnne 2
-	jam 0,mem_mouse_enter_sniff_count
-	jam 0x0e,mem_sniff_param_interval	//89Hz
-	branch app_bt_enter_sniff
-	
-endif
-
-p_mouse_24g_pairing_complete:
-	call p_mouse_init_sensor_reset
-
-	jam 1,mem_mouse_24g_enter_lpm_enable
-	arg MOSUE_24G_PAIRING_FLAG,queue
-	call mouse_disable_function_flag
-	setarg 0
-	store 2,mem_24g_pairing_timer_count
-	jam 0,mem_mouse_move_flag
-	
-	fetch 1,mem_config_sensor_type
-	sub pdata,P3610,null
-	call mouse_read_sensor3610_data,zero
-	ncall mouse_read_sensor_common,zero
-
-	call p_mouse_tx_power_init
-
-//	fetch 1,MOUSE_FLAG_LEN,mem_mouse_flag
-//	bbit1 MOUSE_ENABLE_FLASH,p_mouse_store_flash_24g_address
-	call p_mouse_set_24g_addr_eeprom	//store rx dongle addr to eeprom
-	branch iicd_write_protect_eep_data
-
-p_mouse_set_24g_addr_eeprom:
-	arg mem_24g_addr,rega
-	arg MOUSE_G24_ADDR_EEPROM_OFFECT,regb
-	arg 4,temp
-	rtn
-
-//p_mouse_store_flash_24g_address:
-//	arg mem_24g_addr,regb
-//	ifetch 4,regb
-//	store 4,mem_mouse_24g_addr
-//	branch mouse_store_flash_device_info
-
-p_mouse_24g_attempt_fail:
-	call p_mouse_sensor_powerdown_check
-	jam G24_TX_TIMER_INT_DISABLE,mem_24g_transmit_by_interrupt
-	call p_mouse_tx_power_init
-	call p_g24_check_51cmd_stop_24g
-	jam 0,mem_link_key_exists
-	call mouse_eeprom_load_recon_info	
-	arg 3,loopcnt
-	arg mem_device1_addr,contr
-	call p_pdata_0xff_check
-	branch p_mouse_null_enter_hibernate_count,user
-	branch p_mouse_check_reconn_target
-
-p_mouse_null_enter_hibernate_count:	//ble never connected
-	jam 1,mem_mouse_null_enter_hibernate_flag
-	jam 40,mem_mouse_null_enter_hibernate_timer	//lmr 3s
-	rtn
-
-p_mouse_24g_attempt_success:
-	call p_mouse_init_sensor_reset
-	branch mouse_no_data_timer_init
-
-p_mouse_before_hibernate:
-	enable user
-	hfetch 4,0x8138
-	setflag user,26,pdata
-	hstore 4,core_lpm_reg
-	call lpm_write_ctrl
-	call p_mouse_sensor_powerdown_check
-	call disable_authrom
-	call mouse_devce_led_off
-	call mouse_before_hibernate_wheel_gpio_set
-	branch mouse_lpm_before_common
-	
-p_mouse_sensor_powerdown_check:
-	fetch 1,mem_mouse_init_sensor_reset_flag
-	rtn blank
-	jam 0,mem_mouse_init_sensor_reset_flag
-	branch p_mouse_sensor_powerdown
-
-
-p_mouse_bb_event_timer:
-ifdef ADC_ENABLE	
-	call p_mouse_adc_read
-	call mouse_low_voltage_led_timer
-endif
-	call p_mouse_send_switch_req_timer
-	call p_mouse_wheel_trigger_timer
-//	call p_mouse_dpi_led_blink_delay_timer
-	call p_mouse_null_enter_hibernate_check
-	call p_mouse_bt_discovery_check
-	call mouse_check_hid_handshake_timer
-	call mouse_check_discovery_timeout_timer
-	call mouse_check_direct_timeout_timer
-	call mouse_check_no_data_timeout_timer
-	call p_mouse_bt_check_sniff_req_timeout_timer
-	branch p_mouse_le_enable_att_list_timer
-
-p_mouse_send_switch_req_timer:
-	arg mem_mouse_send_switch_req_timer,regc
-	arg host_create_conn_resend,regb
-	branch timer_single_step
-
-p_mouse_wheel_trigger_timer:
-	arg mem_mouse_wheel_trigger_timer,regc
-	arg p_mouse_wheel_trigger_disable,regb
-	branch timer_single_step
-p_mouse_wheel_trigger_disable:
-	jam 0,mem_mouse_wheel_trigger
-	rtn
-
-p_mouse_bt_check_sniff_req_timeout_timer:
-	arg mem_mouse_bt_send_first_package_timer,regc
-	arg p_mouse_bt_send_first_package,regb
-	branch timer_single_step
-p_mouse_bt_send_first_package:
-	jam 1,mem_mouse_bt_send_first_package_flag
-	rtn
-
-p_mouse_le_enable_att_list_timer:
-	arg mem_le_start_encrypt_timer,regc
-	arg mouse_le_write_enable,regb
-	branch timer_single_step	
-
-p_mouse_bt_discovery_check:
-	fetch 1,mem_config_function_enable
-	bbit1 ENABLE_BT_BUTTON,mouse_bt_discovery_by_button
-p_mouse_bt_discovery_commbination_key:
-	call mouse_check_key_gpio
-	beq MOUSE_LMR_BUTTON,p_mouse_bt_discovery_commbination_key_down
-p_mouse_bt_discovery_commbination_key_up:
-	fetch 1,mem_ui_button_timeout
-	store 1,mem_combination_ui_button_count	//combination key timer init 
-	fetch 1,mem_bt_discovey_button_statue
-	rtneq DPI_BUTTON_STATE_UP
-	jam DPI_BUTTON_STATE_UP,mem_bt_discovey_button_statue
-	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
-	call mouse_disable_function_flag
-	branch mouse_bt_discovery_button_down_disable
-p_mouse_bt_discovery_commbination_key_down:
-	jam 40,mem_mouse_null_enter_hibernate_timer
-	call p_mouse_bt_discovery_timer
-	branch mouse_bt_discovery_commbination_key_down+1
-
-p_mouse_bt_discovery_timer:
-	arg mem_combination_ui_button_count,regc
-	arg p_mouse_long_button_bt_discovery,regb
-	branch timer_single_step
-	
-p_mouse_long_button_bt_discovery:
-	fetch 2,mem_ui_state_map
-	isolate1 UI_STATE_BLE_ADV,pdata
-	call mouse_stop_le_adv,true		//reconnect adv
-	fetch 2,mem_ui_state_map
-	isolate1 UI_STATE_BT_RECONNECT,pdata
-	call mouse_cancel_reconnect,true
-	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
-	call mouse_enable_function_flag
-	branch mouse_long_button_bt_discovry
-
-
-p_mouse_null_enter_hibernate_check:
-	fetch 1,mem_mouse_null_enter_hibernate_flag
-	rtn blank
-	fetch 1,mem_mouse_null_enter_hibernate_timer
-	branch p_mouse_null_enter_hibernate,blank
-	increase -1,pdata
-	store 1,mem_mouse_null_enter_hibernate_timer
-	rtn
-p_mouse_null_enter_hibernate:
-	jam 0,mem_mouse_null_enter_hibernate_flag
-	branch app_enter_hibernate
-
-	
-ifdef ADC_ENABLE
-p_mouse_adc_read:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_ADC
-	fetch 1,mem_adc_read_timer
-	increase 1,pdata
-	store 1,mem_adc_read_timer
-	sub pdata,10,null              //1s read adc
-	rtn positive
-	jam 0,mem_adc_read_timer
-	call p_adc_set_mode
-	call vdd_calculate_by_mode
-	store 2,mem_mouse_vdd_now_vol
-	arg mem_mouse_vdd_calculate_set,rega
-	call p_adc_bat_percent_lowpower_out
-	fetch 1,mem_adc_power_flag
-	bbit1 1,app_enter_hibernate
-	bbit0 0,p_mouse_adc_no_low_voltage
-	jam 1,mem_mouse_adc_last_low_voltage_flag
-	branch mouse_adc_low_voltage
-p_mouse_adc_no_low_voltage:
-	call mouse_adc_no_low_voltage
-	fetch 1,mem_mouse_adc_last_low_voltage_flag
-	rtn blank
-	jam 0,mem_mouse_adc_last_low_voltage_flag
-	fetch 1,mem_config_low_voltage_alarm_gpio
-	store 1,mem_mouse_struct_led_gpio
-	branch mouse_led_off
-	
-p_adc_set_mode:
-	fetch 1,mem_adc_config_flag
-	beq ADC_CONFIG_GPIO,p_adc_check_gpio
-	branch adc_set_mode+1
-p_adc_check_gpio:
-	hfetch 1,core_gpio_pu0	//gpio5 pull up disable
-	set0 5,pdata
-	hstore 1,core_gpio_pu0
-	jam 0x8f,rf_adc_mode
-	fetch 1,mem_adc_channel
-	hstore 1,rf_adc_ch
-	call read_adc
-	hfetch 1,core_gpio_pu0	//gpio5 pull up enable
-	set1 5,pdata
-	hstore 1,core_gpio_pu0
-	rtn
-
-p_adc_bat_percent_lowpower_out:
-	ifetch 8,rega
-	store 8,mem_pdatatemp
-	fetcht 2,mem_pdatatemp+2	//shutdown voltage 0.9v
-	fetch 2,mem_pdatatemp+6		//now voltage
-	isub temp,null
-	nbranch adc_set_no_power_flag,positive
-	fetcht 2,mem_pdatatemp+4	//low voltage 1.0v
-	isub temp,null
-	nbranch adc_set_low_power_flag,positive
-p_adc_clear_low_power_flag:
-	fetch 1,mem_adc_power_flag
-	set0 0,pdata
-	store 1,mem_adc_power_flag
-	rtn	
-endif
-
-/*
-p_mouse_dpi_led_blink_delay_timer:
-	arg mem_mouse_dpi_led_delay_count,regc
-	arg p_mouse_dpi_led_setting,regb
-	branch timer_single_step	
-
-p_mouse_dpi_led_setting:
-	fetch 1,mem_dpi_led_gpio
-	store 1,mem_mouse_struct_led_gpio
-	setarg LED_DPI_BLINK_FIXED
-	store 2,mem_mouse_on_time
-	store 2,mem_mouse_off_time
-	arg 0,rega
-	fetcht 1,mem_mouse_dpi
-	//increase 1,temp
-	storet 1,mem_mouse_blink_count
-	jam UI_LED_STATE_BLINK_START,mem_mouse_led_type
-	rtn
-*/
-p_mouse_seting_dpi:
-	call mosue_dpi_led_blink_init
-	fetch 1,mem_config_sensor_type
-	beq P3065_XY,p_mouse_seting_3065XY_dpi
-	branch mouse_seting_dpi+3
-	
-p_mouse_seting_3065XY_dpi:
-	fetch 1,mem_mouse_dpi
-	call p_mouse_3065xy_dpi_recount,blank
-	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL2,mouse_set_cpi1
-	beq MOUSE_DPI_LEVEL3,mouse_set_cpi3
-	beq MOUSE_DPI_LEVEL4,mouse_set_cpi4
-	branch mouse_set_cpi3
-p_mouse_3065xy_dpi_recount:
-	jam 1,mem_mouse_dpi
-	rtn
-
-p_mouse_bb_event_discovery_btn:
-	jam 0,mem_mouse_null_enter_hibernate_flag
-	jam 0,mem_mouse_null_enter_hibernate_timer
-	bmark1 mark_24g,p_mouse_switch_to_bt
-	branch mouse_bb_event_discovery_btn+1
-p_mouse_switch_to_bt:
-	call p_g24_check_51cmd_stop_24g
-	branch mouse_bb_event_discovery_btn+1
-
-
-p_le_addr_random_config:
-	call load_adc_init
-	fetch 2,mem_0_5_adc_io_data	//adc data from otp
-	branch p_le_otp_adc_empty,blank
-	store 2,mem_random_addr_increase_count
-p_le_addr_random_store:
-	branch p_mouse_store_eerpom_random_addr_increase_count
-
-p_le_otp_adc_empty:
-	setarg 0x1122
-	store 2,mem_random_addr_increase_count
-	branch p_le_addr_random_store
-
-p_mouse_start_discovery:
-	call p_mouse_tx_power_init
-	jam 0,mem_mouse_clear_sensor_data_flag
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_ADV,p_mouse_start_discovery_norandom
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,p_mouse_start_discovery_norandom
+p_g24_pairing_sm:
+	fetch 1,mem_24g_ensure
+	beq ENSURE_ON_24G,enable_user
+	fetch 1,mem_24g_pairing_sm
+	beq STATE_24G_PAIRING_1,p_g24_pairing_sm_1
+	beq STATE_24G_PAIRING_2,p_g24_pairing_sm_2
+	beq STATE_24G_PAIRING_3,p_g24_pairing_sm_3
+	branch assert
 
-	call p_mouse_load_eeprom_random_addr_increase_count
-	fetcht 2,mem_random_addr_increase_count
-	increase 1,temp
-	storet 2,mem_random_addr_increase_count
-	storet 2,mem_le_lap+1
-	call p_mouse_store_eerpom_random_addr_increase_count
-	random pdata
-	store 1,mem_le_lap
+p_g24_pairing_sm_1:
+	jam STATE_24G_PAIRING_1_WAITING_ACK,mem_24g_pairing_sm
+	jam 0xaa,mem_24g_common_temp
+	branch p_g24_pairing_sm_common
+p_g24_pairing_sm_2:
+	jam STATE_24G_PAIRING_2_WAITING_ACK,mem_24g_pairing_sm
+	jam 0x55,mem_24g_common_temp
+	branch p_g24_pairing_sm_common
+p_g24_pairing_sm_3:
+	jam STATE_24G_PAIRING_3_WAITING_ACK,mem_24g_pairing_sm
+	jam 0x22,mem_24g_common_temp
+p_g24_pairing_sm_common:
+	fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_24g_common_temp+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_common_temp+2
+p_g24_put_pairing_data_in_buff:
+	jam 0,mem_24g_common_temp+6
+	arg mem_24g_common_temp,rega
+	arg 7,temp
+	call p_g24_put_data_in_buff
+	call p_g24_txdata_enable_tx
+	branch enable_user
 
-p_mouse_start_discovery_norandom:
-	call app_lpm_mult_disable
-	fetch 2,mem_discovery_timeout
-	store 2,mem_mouse_discovery_timer
-	jam 6,mem_connection_options
-	setarg 0
-	store 2,mem_mouse_no_data_timer
-	store 2,mem_mouse_direct_timer
-	arg MOUSE_STORE_EEPROM_FLAG,queue
-	call mouse_enable_function_flag
-	call mouse_bt_discovery_button_down_disable
-	fetch 1,mem_device_option
-	isolate1 MODE_4_MOUSE,pdata
-	call p_check_51cmd_adv,true
-	branch mouse_start_discovery_norandom+13
+p_g24_paring_mode:
+	fetch 1,mem_24g_pairing_sm
+	rtneq STATE_24G_PAIRING_SUCCESS
+	beq STATE_24G_PAIRING_1_WAITING_ACK,p_g24_pairing_sm_1_waiting_ack
+	beq STATE_24G_PAIRING_2_WAITING_ACK,p_g24_pairing_sm_2_waiting_ack
+	beq STATE_24G_PAIRING_3_WAITING_ACK,p_g24_pairing_sm_3_waiting_ack
+	rtn
 
-p_mouse_store_eerpom_random_addr_increase_count:
-	arg 2,temp
-	arg mem_random_addr_increase_count,rega
-	arg MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET,regb
-	branch iicd_write_protect_eep_data
-	
-p_mouse_load_eeprom_random_addr_increase_count:
-	arg 2,temp
-	arg mem_random_addr_increase_count,rega
-	arg MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET,regb
-	branch iicd_read_eep_data
 
-p_check_51cmd_adv:
-	jam 0,mem_mouse_le_reconnect_flag
-	call p_le_check_adv_flag
-	setarg ADV_FLAG_BREDR_NOT_SUPPORTED |ADV_FLAG_LIMITED_DISCOVERABLE
-	istore 1,contr
-	branch check_51cmd_adv
+p_g24_pairing_sm_1_waiting_ack:
+	jam STATE_24G_PAIRING_2,mem_24g_pairing_sm
+	branch p_g24_transmit_abandon
+p_g24_pairing_sm_2_waiting_ack:
+	jam STATE_24G_PAIRING_3,mem_24g_pairing_sm
+	branch p_g24_transmit_abandon
+p_g24_pairing_sm_3_waiting_ack:
+	jam STATE_24G_PAIRING_SUCCESS,mem_24g_pairing_sm
+	jam BT_EVT_24G_PAIRING_COMPLETE,mem_fifo_temp
+	call ui_ipc_send_event	
+	fetch 4,mem_24g_rxpayload+2
+	call p_g24_update_addr_and_synccrc8
+	branch p_g24_transmit_abandon
 
-p_mouse_stop_discovery:
+p_g24_start_24g_mode:
+	set0 mark_24g,mark
+	call p_g24_ch_syncword_crc8_init
+	fetch 1,mem_24g_pairing_sm
+	rtnne STATE_24G_PAIRING_SUCCESS
+	call p_g24_tx_attemp_data_prep
+p_g24_tx_attemp_dongle:
 	setarg 0
-	store 2,mem_mouse_discovery_timer
-	call p_mouse_sensor_poweron		//clear sensor data,confirm the motion pin high
-	branch mouse_stop_discovery+1
+	store 2,mem_24g_check_dongle_times
+p_g24_tx_attemp_dongle_loop:
+	call lpo_calibration
+	nop 2000
+	fetch 1,mem_24g_check_dongle_times
+	beq 0xff,p_g24_stop_g24_mode
+	call p_g24_transmit_receive_ack
+	nbranch p_g24_attemp_txdata_retry,sync
+	nbranch p_g24_attemp_txdata_retry,user3
+p_g24_tx_attemp_dongle_succ:
+	set1 mark_24g,mark
+	setarg 0
+	store 2,mem_24g_check_dongle_times
+	jam BT_EVT_24G_ATTEMPT_SUCCESS,mem_fifo_temp
+	call ui_ipc_send_event
+	call p_g24_txbuf_clear
+	branch p_g24_transmit_by_interrupt_enable
 
-ifdef BLE
-p_le_slave_match:
-	fetch 1,mem_le_md_count
-	pincrease 1
-	store 1,mem_le_md_count
-	beq LE_MD_MAX_COUNT,le_slave_cont
-	call le_acknowledge
-	call le_prepare_tx
-	call power_ctrl_start
-	branch le_slave_match+7
+p_g24_tx_attemp_data_prep:
+	jam 0xff,mem_24g_common_temp
+	fetch 1,mem_24g_data_type
+	store 1,mem_24g_common_temp+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_common_temp+2
+	arg 6,temp
+	arg mem_24g_common_temp,rega
+	call p_g24_put_data_in_buff
+	branch p_g24_transmit_prep
+	
+p_g24_attemp_txdata_retry:
+	fetch 2,mem_24g_check_dongle_times
+	increase 1,pdata
+	store 2,mem_24g_check_dongle_times
+	call p_g24_ch
+	branch p_g24_tx_attemp_dongle_loop
 
-p_le_next_adv_channel:
-	fetch 1,mem_le_ch_mapped
+p_g24_auto_pair_start:
+	set0 mark_24g,mark
+	call p_g24_auto_pair_all_powerful
+	call p_g24_tx_attemp_data_prep
+p_g24_auto_pair_restart:
+	jam 0,mem_24g_check_dongle_times
+p_g24_auto_pair_start_loop:
+	call lpo_calibration
+	nop 2000
+	fetch 1,mem_24g_check_dongle_times
+	beq 0xff,p_g24_stop_g24_mode
+	call p_g24_transmit_receive_ack
+	nbranch p_g24_auto_pair_retry,sync
+	nbranch p_g24_auto_pair_retry,user3
+	call p_g24_ackpayload_parse
+	call p_mouse_tx_power_init
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_paring_addr
+	isub temp,null
+	branch p_g24_start_pairing_sm1,zero
+	branch p_g24_tx_attemp_dongle_succ
+
+p_g24_auto_pair_retry:
+	fetch 1,mem_24g_check_dongle_times
 	increase 1,pdata
-	store 1,mem_le_ch_mapped
-	rtnne 40
-	jam 37,mem_le_ch_mapped
+	store 1,mem_24g_check_dongle_times
+	fetch 1,mem_24g_auto_paring_switch
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_24g_auto_paring_switch
+	beq 0,p_g24_auto_pair_device_attemp
+	beq 1,p_g24_auto_pair_pair_attemp
 	rtn
+	
+p_g24_auto_pair_all_powerful:
+	jam TX_POWER_PAIR,mem_tx_power
+	setarg 0x0f0f
+	store 2,mem_24g_addr
+	istore 2,contw
+p_g24_ch_syncword_crc8_init:	
+	call p_g24_syncword_crc8
+	branch p_g24_ch
 
-p_le_receive_skip:
-	call save_rssi
-	call p_rssi_signal
-	branch le_receive_skip+2
+p_g24_auto_pair_device_attemp:
+	call p_g24_auto_pair_all_powerful
+	branch p_g24_auto_pair_start_loop
 
-p_le_update_param:
-	call p_mouse_le_conn_param_check
-	branch le_update_param+8
-p_mouse_le_lpm_mult_reinit:
-	fetch 1,mem_lpm_mult_init
-	store 1,mem_lpm_mult
-p_mouse_le_conn_param_lpm_enable:
-	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
-	rtn
-p_mouse_le_conn_param_lpm_disable:
-	jam LE_LPM_DISABLE,mem_mouse_le_conn_param_reject
-	rtn
-p_mouse_le_conn_param_check:
-	fetch 1,mem_le_new_conninterval
-	sub pdata,LE_INTERVAL_15MS,null
-	nbranch p_mouse_le_conn_param_lpm_disable,positive
-	fetch 1,mem_le_new_connslavelatency
-	fetcht 1,mem_lpm_mult_init
-	isub temp,null
-	branch p_mouse_le_lpm_mult_reinit,positive
-	fetch 1,mem_le_new_connslavelatency
-	store 1,mem_lpm_mult
-	branch p_mouse_le_conn_param_lpm_enable
+p_g24_auto_pair_pair_attemp:
+	call p_g24_pair_init
+	branch p_g24_auto_pair_start_loop
 
-p_le_prepare_tx:
-	fetch 1,mem_le_arq
-	bbit1 wak,p_le_prepare_tx_wak
-	call power_ctrl_pac_succ_incrs	
-	fetch 1,mem_empty_count
-	nbranch p_le_send_empyt,blank
-	fetch 1,mem_le_state 
-	bbit0 lestate_encryption,p_le_tx_4
-	fetch 1,mem_le_rxbuf+1  
-	branch p_le_tx_4,blank  
-	branch le_send_empty      // send empty data when got non empty packet
-p_le_send_empyt:
-	fetch 1,mem_empty_count
-	increase -1,pdata
-	store 1,mem_empty_count
-	branch le_send_empty
-p_le_tx_4:	
-	fetch 1,mem_le_pairing_state
-	bne FLAG_LE_PAIRING_AFTER_AUTH,p_in_le_tx_4
-	jam 3,mem_empty_count
-p_in_le_tx_4:
-	call le_fifo_check_nearly_full
-	call p_mouse_data_pull,blank
-	branch le_prepare_tx+4
+p_g24_check_51cmd_stop_24g:
+	set0 mark_24g,mark
+	call le_disable
+p_mouse_disable_g24_pairing_flag:
+	arg MOSUE_24G_PAIRING_FLAG,queue
+	branch mouse_disable_function_flag
 
-p_le_prepare_tx_wak:
-	call p_le_check_tx_retransmit_setmd
-	branch p_le_power_ctrl_pac_succ_decrs
+p_g24_put_data_in_buff:
+	storet 1,mem_24g_datalen
+	copy temp,loopcnt
+	arg mem_24g_txbuf,contw
+	copy rega,contr
+	branch memcpy
 
-p_le_check_tx_retransmit_setmd:
-	fetch 1,mem_le_connect_status_flag
+p_g24_read_len_pid_crc:
+//read control
+	fetch 1,mem_24g_rxbuf+1
+	rshift3 pdata,pdata
+	store 1,mem_24g_rxdata_length
+//get crc
+	increase 1,pdata
+	arg mem_24g_rxbuf+1,contr
+	iadd contr,contr
+	ifetch 3,contr
+	store 3,mem_24g_sta_crc
+//read pid
+	fetch 1,mem_24g_rxbuf+1
+	rshift pdata,pdata
 	and pdata,0x03,pdata
-	rtnne 0x03
-	fetch 1,mem_mouse_data_queue_num
-	rtn blank
-	fetch 1,mem_le_txlen
-	rtn blank
-	fetch 1,mem_le_txheader
-	set1 md,pdata
-	store 1,mem_le_txheader
-	call le_set_md
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_LE_RETRANSMIT_MD
-	store 2,mem_debuglog_dataval
-	call debuglog_push	
-endif
-endif
+	store 1,mem_24g_sta_pid
+	rtn
+
+p_g24_update_addr_and_synccrc8:	
+	store 4,mem_24g_addr
+//output: 1BYTE crc8
+p_g24_syncword_crc8:
+	arg 0,rega
+	arg 4,loopcnt
+	arg mem_24g_addr,contr
+p_g24_syncword_crc8_loop:
+	ifetch 1,contr
+	iadd rega,rega
+	loop p_g24_syncword_crc8_loop
+	copy rega,pdata
+	store 2,mem_24g_syncword
+	fetch 1,mem_24g_syncword
+	fetcht 1,mem_24g_syncword+1
+	iadd temp,pdata
+	store 1,mem_24g_syncword_crc8
 	rtn
 
-	
-	
-p_le_power_ctrl_pac_succ_decrs:
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_LE_RETRANSMIT
-	store 2,mem_debuglog_dataval
-	call debuglog_push	
-endif
+p_g24_transmit_prep:
+ifdef P24G_LOG
+	fetch 1,mem_24g_paccnt
+	increase 1,pdata
+	store 1,mem_24g_paccnt
 endif
-	branch power_ctrl_pac_succ_decrs
 
-p_mouse_le_reconn_write_enable_timer_reinit:
-	fetch 1,mem_mouse_le_reconnect_flag
-	rtn blank
-	fetch 1,mem_le_connect_status_flag
-	and pdata,0x03,pdata
-	rtneq 0x03
-	jam 10,mem_le_start_encrypt_timer
-	rtn
+// total length
+	fetch 1,mem_24g_datalen
+	increase 2,pdata
+	store 1,mem_24g_txlen
+// data type
+	fetch 1,mem_24g_data_type
+	store 1,mem_24g_txpayload
+//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
+	fetch 1,mem_24g_datalen
+	lshift3 pdata,pdata
+	fetcht 1,mem_24g_pid
+	and temp,0x03,temp
+	lshift temp,temp
+	ior temp,pdata
+	fetcht 1,mem_24g_no_ack
+	iadd temp,pdata
+	istore 1,contw
+//prepare payload data
+	fetch 1,mem_24g_datalen
+	iforce loopcnt
+	arg mem_24g_txbuf,contr
+	branch memcpy
 
-p_le_parse_l2cap:
-	ifetch 2,contr
-	beq LE_L2CAP_CID_ATT,p_le_parse_att
-	beq LE_L2CAP_CID_SMP,p_le_parse_smp
-	branch le_parse_l2cap+11
-p_le_parse_att:
-	call store_contr
-	call p_mouse_le_reconn_write_enable_timer_reinit
-	call get_contr
-	ifetch 3,contr
-	store 3,mem_le_att_opcode
-	beq ATTOP_READ_BY_GROUP_TYPE_REQUEST,p_le_parse_att_read_by_group_type_request
-	rshift8 pdata,temp
-	sub temp,0x24,null
-	branch le_parse_att+2,positive
-	arg mem_mouse_le_uuid_sup,temp
-	storet 2,mem_ui_le_uuid_table
-	call le_parse_att+2
-	setarg 0x8e7a
-	store 2,mem_ui_le_uuid_table
+p_g24_ch:
+	fetcht 1,mem_24g_current_ch_number
+	call p_g24_ch_map_size
+	storet 1,mem_24g_current_ch_number
 	rtn
 
-p_le_parse_att_read_by_group_type_request:
-	call le_parse_att_read_by_group_type_request
-	call le_fifo_get_last_tx_ptr
-	increase 7,contr
+p_g24_ch_map_size:
+	call p_g24_ch_calc
+	increase 1,temp
+	and_into 3,temp //map size =4
+	rtn
+	
+p_g24_ch_calc:
+	fetch 1,mem_24g_addr	
+	and_into 0x03,pdata
+	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
+	setarg mem_24g_ch_map1
+	iadd rega,pdata
+	iadd temp,contr
 	ifetch 1,contr
-	rtnne ATTOP_READ_BY_GROUP_TYPE_RESPONSE
-	increase 5,contr
-	ifetch 2,contr
-	arg UUID_SERVICE_HIDS,temp
-	isub temp,null
-	nrtn zero
-	increase -4,contr
-	setarg 0x2b
-	istore 2,contr
+	store 1,mem_24g_ch
 	rtn
 
-p_le_parse_smp:
-	ifetch 1,contr
-	beq SMP_PAIRING_FAILED,p_le_parse_smp_pairing_failed
-	branch le_parse_smp+1
-p_le_parse_smp_pairing_failed:
-	call le_parse_smp_pairing_failed
-	fetch 1,mem_le_state	//disable update conn param
-	set0 lestate_update_param,pdata
-	store 1,mem_le_state
-	branch le_parse_terminate_ind
+p_g24_prep:
+	disable enable_crc
+	disable enable_white
+	setarg 0x555555
+	iforce crc24_init
+	fetch 1,mem_24g_ch
+	reverse pdata,temp
+	set1 1,temp
+	rshift temp,white_init
+	rtn
 
-p_le_adv_not_match:
-	fetch 1,mem_le_ch_mapped
-	bne 39,le_adv_loop
-	call p_le_adv_random_delay
-	arg le_adv_interval_timer,queue
-	fetch 2,mem_le_adv_interval
-	branch timer_init
-p_le_adv_random_delay:
-	random pdata
-	arg 0x1ff,temp
-	iand temp,pdata
-	add pdata,250,pdata
-	branch delay
+p_g24_receive_packet:
+	call le_enable
+	fetch 4,mem_24g_addr
+	iforce access
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	call set_freq_rx
+	setarg param_pll_setup
+	call sleep
+	call rf_rx_enable
+p_g24_receive_rxon:
 
-p_le_lpm_setmult:
-	disable wake
-	branch p_le_lpm_set_mult_attempt,attempt
-	nbranch le_lpm_lost,match
-p_le_lpm_set_mult_attempt:
-	call lpm_match
-	fetch 2,mem_rx_window_sniff
-	store 2,mem_le_receive_window
-	fetch 1,mem_le_connect_status_flag
-	compare 3,pdata,3
-	nbranch lpm_mult_short,true
-	branch le_lpm_set_mult_attempt+3
+ifdef RF_DEBUG
+	call test_h_l_h
+endif
 
-p_le_mouse_bb_event_connect_complete:
-	fetch 1,mem_mouse_le_reconnect_flag
-	nrtn blank
-	fetch 1,mem_le_att_handle
-	sub pdata,26,pdata
-	nrtn zero
-	branch mouse_le_write_enable
+	call p_g24_prep
+	disable user3
+	enable decode_fec0
+	enable is_rx
+	disable is_tx
+	enable swfine
+	fetch 2,mem_24g_rx_window
+	iforce stop_watch
+	correlate null,timeout
+	nbranch p_g24_sync_timeout,sync
+
+ifdef RF_DEBUG
+	call test_gpio_low
+	call test_gpio_high
 endif
 
-p_twspi_reset:
-	hfetch 1,core_gpio_out3
-	and_into 0xfd,pdata
-	hstore 1,core_gpio_out3
-	hfetcht 1,core_gpio_oe3
-	or_into 0x2,temp
-	hstoret 1,core_gpio_oe3
-	call twspi_disable
-	and_into 0xfd,temp
-	nop 13
-	call twspi_enable
-	hstoret 1,core_gpio_oe3
+	disable decode_fec0
+	enable decode_fec1
+	enable enable_white
+	enable enable_crc
+	call p_g24_receive_byte
+	store 1,mem_24g_get_syncword_crc8
+	fetcht 1,mem_24g_syncword_crc8
+	isub temp,null
+	nbranch p_g24_end_of_packet,zero
+	call p_g24_receive_byte
+	store 1,mem_24g_rxbuf	//device id
+	fetch 1,mem_24g_mode
+	sub pdata,rx_24g,null
+	branch p_g24_receive_skip,zero
+	fetch 1,mem_24g_rxbuf
+	fetcht 1,mem_24g_data_type
+	icompare bits_data,temp
+	nbranch p_g24_end_of_packet,true
+p_g24_receive_skip:
+	call p_g24_receive_byte
+	istore 1,contw
+	rshift3 pdata,pdata
+	and pdata,0x1f,loopcnt	//max payload: 32bytes
+	branch p_g24rx_nopayload,zero
+p_g24rx_loop:
+	call p_g24_receive_byte
+	istore 1,contw
+	loop p_g24rx_loop
+p_g24rx_nopayload:
+ifdef MOUSE
+	//receive rssi hex
+	copy contw,rega
+	call p_g24_receive_byte
+	store 1,mem_rssi_hex_received
+	copy rega,contw
+endif
+	parse demod,bucket,24
+	enable swfine
+	arg param_sifs,stop_watch	
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	disable decode_fec1
+ifdef DONGLE
+	call save_rssi
+endif	
+	branch p_g24_end_of_packet,crc_failed
+
+ifdef RF_DEBUG
+	call test_gpio_low
+	call test_gpio_high
+endif
+
+	enable user3
+	fetch 1,mem_last_freq
+	add pdata,0,rega
+	call rf_write_freq
+	disable decode_fec0
+	call set_sync_on
+ifdef DONGLE
+	rtn
+endif
+ifdef MOUSE
+	fetch 1,mem_rssi_hex_received
+	call p_rssi_signal
+endif
 	rtn
 
+p_g24_receive_byte:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	rtn
+	
+p_g24_end_of_packet:
+	disable encode_fec1
+	disable decode_fec1
+	call end_of_packet
+ifdef RF_DEBUG
+	call test_gpio_low
+endif
+	rtn
 
+p_g24_sync_timeout:
+ifdef DONGLE
+	call p_rssi_noise
+endif
+	branch p_g24_end_of_packet
 
-ifdef CLASSIC_BT
-p_page_wait_fhs_reply_ok:
- 	fetch 1, mem_page_rcv_fhs
-	increase 1,pdata
-	store 1, mem_page_rcv_fhs
-	call prepare_newconn
-p_master_newconn_loop:
- 	set1 mark_first_packet,mark
-	call master_newconn_once
-	branch p_newconn_poll_responded,sync
-	set0 mark_first_packet,mark
-	call new_conn_timeout
-	nbranch p_master_newconn_loop,blank
-	branch page_restart	
+p_g24_set_freq_tx:
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	branch set_freq_tx
 
-p_newconn_poll_responded:
-	set0 mark_first_packet,mark
-	branch newconn_poll_responded
+p_g24_transmit:
+	call le_enable
+	fetch 4,mem_24g_addr
+	iforce access
+	call p_g24_prep
+	call p_g24_set_freq_tx
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
 
-p_role_switch_master:
-	call role_switch_check
-	nrtn user
-p_wait_role_switch_anchor:
-	disable user
-	jam param_newconnto,mem_newconnto_counter
-	set0 mark_fhs_already_good,mark
-	set0 mark_role_switch_receive_fhs,mark
-p_roles_waitfhs_loop:
-	call rf_setup_time_master_slot
-	call master_recv_packet
-	bmark1 mark_fhs_already_good,p_roles_replyto_fhs
-	call new_conn_timeout
-	nbranch p_roles_waitfhs_loop,blank
-	bmark1 mark_role_switch_receive_fhs,p_roles_replyto_fhs1
-	branch role_switch_fail_master
+ifdef RF_DEBUG
+	call test_gpio_high
+endif
 	
-p_roles_replyto_fhs:
-	call rf_setup_time_slave_slot
-	arg type_id,type
-	call master_send_packet
-	set1 mark_role_switch_receive_fhs,mark
-	set0 mark_fhs_already_good,mark
-	force 1,am_addr	/* process_fhs will update am_addr, so slave will not receive fhs succeffully sometimes */
-	jam 2,mem_newconnto_counter
-	branch p_roles_waitfhs_loop
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+	disable encode_fec0
+	enable encode_fec1
+	enable enable_white
+	enable enable_crc
+	fetch 1,mem_24g_syncword_crc8
+	inject mod,8
+	fetch 1,mem_24g_txlen
+	iforce loopcnt
+	arg mem_24g_txpayload,contr
+p_g24tr_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop p_g24tr_loop
+ifdef DONGLE
+	fetch 1,mem_rssi_hex
+	inject mod,8
+endif
 
-p_roles_replyto_fhs1:
-	fetch 4,mem_clke_bt		//wait for 2 fhs,need 2.5ms
-	pincrease 8
-	store 4,mem_clke_bt
-	branch roles_replyto_fhs+4
+ifdef P24G_LOG	
+	fetch 1,mem_tx_power
+	inject mod,8
+	fetch 1,mem_rssi_avg_received
+	inject mod,8
+	fetch 1,mem_24g_paccnt
+	inject mod,8
+endif
 
-p_process_dmh:
-	bmark1 mark_first_packet,end_of_packet			
-	branch process_dmh+1
+	enable enable_parity
+	inject mod,24	//crc
+	disable enable_parity
+	until null,tx_clear
+	nop 100
+	disable encode_fec0
+	disable encode_fec1
+	rtn
 
-p_prepare_tx:
-	fetch 1,mem_state
-	isolate1 state_inconn,pdata
-	call p_bt_power_ctrl,true
-	branch prepare_tx+1
-p_bt_power_ctrl:
-	fetch 1,mem_arq
-	isolate1 wack,pdata
-	call power_ctrl_pac_succ_decrs,true
-	ncall power_ctrl_pac_succ_incrs,true
-	branch power_ctrl_start
+p_g24_timer_check:
+	call disable_user
+	fetcht 4,mem_24g_tx_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_24g_tx_btclk
+	fetcht 1,mem_24g_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_24g_tx_btclk
+	branch enable_user
 
-p_slave_conn_recv_packet:
-	call slave_receive_master_slot
-	nbranch shutdown_radio,sync
+p_rssi_noise:
 	call save_rssi
-	call p_rssi_signal
-	branch slave_conn_recv_packet+4
-
-p_lpm_dispatch:
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	rtn blank
-	fetch 1,mem_lpm_mode
-	rtn blank
-	fetch 1,mem_ssp_enable
-	branch p_lpm_dispatch_next,blank
-	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
 	rtn blank
-p_lpm_dispatch_next:
-	fetch 1,mem_le_sc_calc
-	nrtn blank
-	call lpm_check_wake_lock
-	nrtn blank
-	fetch 1,mem_context
-	compare 3,pdata,0x7							//sco won't sleep 
-	nbranch lpm_dispatch_unconn,true
-	fetch 2,mem_context + coffset_tsniff	//role switch 
-	arg 0xffff,temp
-	isub temp,null
-	rtn zero
-	branch lpm_dispatch_next+9
-
-p_app_bt_start_reconnect:
-	branch app_bt_start_reconnect+3
-
-p_mouse_bb_disconnected:
-	jam 0,mem_mouse_enter_sniff_count
-	jam 0x0e,mem_sniff_param_interval	//115Hz
-	call mouse_bb_discon_clear_stack
-	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
-	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
-	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
-	bbit1 APP_DISC_AFTER_PAIRING,p_mouse_event_light_state_pairing
-	bbit1 APP_DISC_AFTER_RECONN,p_mouse_event_light_state_hibernate
-	bbit1 APP_DISC_AFTER_SNIFF,p_mouse_event_light_state_hibernate
-	branch mouse_start_discovery
+	fetcht 1,mem_rssi_noise_index
+	arg mem_rssi_noise_buffer,rega
+	call p_rssi_store
+	storet 1,mem_rssi_noise_index
+	rtn
 	
-p_mouse_event_light_state_pairing:
-	bbit1 APP_DISC_AFTER_HANDSHAKE,p_mouse_event_light_state_hibernate
-	bbit1 APP_DISC_AFTER_SNIFF,p_mouse_event_light_state_hibernate
-	branch mouse_start_discovery
-p_mouse_event_light_state_hibernate:
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
-	call app_disconn_reason_clear
-	call mouse_check_key_gpio
-	beq MOUSE_LMR_BUTTON,p_mouse_null_enter_hibernate_count
-	branch app_bb_hibernate
-
-p_hid_rx_process:
-	fetch 2,mem_l2cap_payload_ptr
-	copy pdata,contr
-	ifetch 1,contr
-	store 1,mem_l2cap_rcv
-	and pdata,0x0f,temp
-	rshift4 pdata,pdata //hidtype
-	beq hid_type_set_protocol,p_hid_rx_set_protocol
-	branch hid_rx_process+6
-p_hid_rx_set_protocol:
-	call hid_rx_process_handshake
-	jam 0,mem_mouse_bt_boot_mode
-	fetch 1,mem_l2cap_rcv
-	isolate1 0,pdata
-	rtn true
-	jam 1,mem_mouse_bt_boot_mode	//boot mode
+p_rssi_store:
+	copy rega,pdata
+	iadd temp,contw
+	fetch 1,mem_rssi
+	istore 1,contw
+	increase 1,temp
+ifdef DONGLE
+	and_into RSSI_BUF_LEN_NOISE,temp
+endif
+ifdef MOUSE
+	and_into RSSI_BUF_LEN_SIGNAL,temp
+endif
+	rtn
+p_rssi_average:
+	arg 0,temp
+ifdef DONGLE
+	arg RSSI_BUF_LEN_NOISE+1,loopcnt
+endif
+ifdef MOUSE
+	arg RSSI_BUF_LEN_SIGNAL+1,loopcnt
+endif
+	copy rega,contr
+ifdef DONGLE
+	branch rssi_average_loop
+endif
+ifdef MOUSE
+p_rssi_average_loop:
+	ifetch 1,contr
+	iadd temp,temp
+	loop p_rssi_average_loop
+	rshift3 temp,pdata
+	copy pdata,temp
+	rtnmark0 mark_24g
+	//2BCD
+	div pdata,10
+	call wait_div_end
+	quotient pdata
+	lshift4 pdata,pdata
+	remainder temp
+	ior temp,temp
+	rtn
+endif
 	rtn
 
-p_parse_lmp_accepted:
-	fetch 1,mem_rxbuf+1
-	store 1,mem_lmi_accepted_opcode
-	beq LMP_SWITCH_REQ,p_parse_lmp_accepted_switch
-	branch parse_lmp_accepted+3
-p_parse_lmp_accepted_switch:
-	call parse_lmp_accepted_switch
-	jam 1,mem_bt_rcvd_switch_req_accept
-	fetch 1,mem_bt_send_lmp_setup_complete
-	rtn blank
-	jam 2,mem_bt_send_lmp_setup_complete
+endif
+
+p_mouse_before_lpm:
+	rtnmark1 mark_24g
+	call p_mouse_le_txbuff_save
+	call p_mouse_setgpio_lpm
+	fetch 1,mem_context
+	bbit0 state_inconn,p_clear_wake
+	fetch 1,mem_lpm_current_mult
+	nrtn blank
+p_clear_wake:
+	setarg 0
+	store 8,mem_gpio_wakeup_low
 	rtn
 
+p_mouse_setgpio_lpm:
+	call p_mouse_set_sdio_high
+	call p_clear_wake
+	call mouse_lpm_before_common
+	hfetch 4,core_gpio_oe0
+	hfetcht 4,core_gpio_pu0
+	ior temp,temp
+	invert temp,temp
+	hstoret 4,core_gpio_pd0
+	rtn
 
-p_send_lmp:
-	disable user
-	call lmo_fifo_process
+p_mouse_set_sdio_high:
+	fetch 1,mem_mouse_init_sensor_reset_flag
+	rtn blank
+	branch p_mouse_seting_dpi_diff// make sdio high to make 100uA less	
 
+p_device_init:
 ifdef DEBUGLOG
-ifdef DEBUGLOG_SEND_LMP
-	setarg DEBUGLOG_DTYPE_SEND_LMP
+	call debuglog_init
+ifdef DEBUGLOG_STATUS
+	setarg DEBUGLOG_DTYPE_STATUS
 	store 2,mem_debuglog_datatype
-//	fetch 1,mem_lmi_opcode
-//	store 1,mem_debuglog_dataval+1
-//	fetch 1,mem_lmp_to_send
-//	store 1,mem_debuglog_dataval
-	fetch 1,mem_lmp_to_send
+	setarg STATUS_LPM_WAKE
 	store 2,mem_debuglog_dataval
-	ncall debuglog_push,blank
+	call debuglog_push	
 endif
 endif
-	
-	fetch 1,mem_lmp_to_send
+	call app_lpm_mult_enable
+	branch p_device_init_common,wake
+ifdef DEBUGLOG
+ifdef DEBUGLOG_STATUS
+	setarg DEBUGLOG_DTYPE_STATUS
+	store 2,mem_debuglog_datatype
+	setarg STATUS_CODE_WAKE
+	store 2,mem_debuglog_dataval
+	call debuglog_push
+endif
+endif
+ifdef BLE
+	call p_mouse_data_init
+endifs
+	fetch 1,mem_tx_power
+	store 1,mem_tx_power_temp
+	call power_ctrl_pac_succ_cnt_init
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init
+	call mouse_bt_discovery_button_down_disable
+p_device_init_common:
+	call p_mouse_init
+	branch enable_authrom
+
+p_mouse_tx_power_init:
+	fetch 1,mem_tx_power_temp
+	store 1,mem_tx_power
+	rtn
+
+p_mouse_init:
+	ncall p_mouse_setting_config,wake
+	call p_mouse_spi_init
+	rtn wake
+ifdef RF_DEBUG
+	call test_gpio_init
+endif
+ifdef MOUSE_SMOOTHER	
+	call p_mouse_drawing_optima_init
+endif
+	call p_mouse_cb_fuction
+ifdef G24	
+	call mouse_check_key_gpio
+	beq MOUSE_LM_BUTTON,p_mouse_24g_pairing_button
+endif	
+	branch p_mouse_wakeup_from_power
+
+p_mouse_check_reconn_target:
+	call p_mouse_tx_power_init
+	fetch 1,mem_xrecord_mode
+ifdef CLASSIC_BT
+	beq REC_3_MODE,p_mouse3_0_check_reconn_target
+endif
+ifdef BLE	
+	beq REC_4_MODE,p_mouse4_0_check_reconn_target
+endif
+	rtn
+
+ifdef CLASSIC_BT
+p_mouse3_0_check_reconn_target:
+	fetch 6,mem_hci_plap
+	branch app_bt_start_discovery_short,blank
+	branch mouse3_0_check_reconn_target+3
+endif	
+
+ifdef BLE
+p_mouse4_0_check_reconn_target:
+	jam 1,mem_mouse_le_reconnect_flag
+	fetch 2,mem_mouse_direct_timeout
+	store 2,mem_mouse_direct_timer
+	call app_lpm_mult_disable
+	call p_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED
+	istore 1,contr
+	branch check_51cmd_adv
+
+p_le_check_adv_flag:
+	arg mem_le_adv_data,rega
+p_le_check_adv_flag_loop:
+	ifetch 1,rega	//length
 	rtn blank
-	bbit1 7,p_send_lmp_escape
-	beq LMP_ACCEPTED,p_send_lmp_accepted
-	beq LMP_SETUP_COMPLETE,p_send_lmp_setup_complete
-	beq LMP_SNIFF_REQ, p_send_lmp_sniff_req
-	branch send_lmp0
-p_send_lmp_escape:
-	beq LMP_EXT_FEATURES_RES,p_send_lmpext_features_res
-	beq LMP_EXT_FEATURES_REQ,p_send_lmpext_features_req	
-	branch send_lmp_escape
-p_send_lmpext_features_res:
-	call p_check_ssp_enable
-	fetch 1,mem_lmp_to_send
-	branch send_lmpext_features_res
-p_send_lmpext_features_req:
-	call p_check_ssp_enable
-	fetch 1,mem_lmp_to_send
-	branch send_lmpext_features_req
-p_check_ssp_enable:
-	fetch 1,mem_ssp_enable 
-	branch ssp_disable,blank
-	branch ssp_enable
+	iadd contr,rega
+	ifetch 1,contr	//type
+	rtneq 0x01
+	branch p_le_check_adv_flag_loop
+endif
 
-p_send_lmp_setup_complete:
-	jam 1,mem_bt_send_lmp_setup_complete
-	branch send_lmp_setup_complete
+ifdef G24
+p_mouse_24g_pairing_button:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G
+	rtnbit1 MOSUE_24G_PAIRING_FLAG
+	rtnmark1 mark_24g
+	call mouse_devce_led_off
+	arg MOSUE_24G_PAIRING_FLAG,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 2,mem_mouse_direct_timer
+	store 1,mem_mouse_send_blank_timer
+	store 2,mem_24g_check_dongle_times
+	call mouse_stop_discovery
+	branch p_g24_start_pairing_sm1
+endif
 
-//p_sdp_process:
-//	call enable_authrom
-//	branch sdp_process+1
+p_mouse_dpi_config:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_EEPROM,mouse_dpi_config
+	fetch 1,mem_mouse_dpi
+	beq 0xff,mouse_dpi_config
+	branch mouse_seting_dpi+2
 
-p_send_lmp_sniff_req:
-	jam 4,mem_mouse_bt_send_first_package_timer
-	branch send_lmp_sniff_req
+p_mouse_spi_init:
+	jam 0x76,mem_spi_init_clk
+	branch mouse_spi_init
 	
+p_mouse_init_sunt:
+	call p_mouse_spi_init
+	call mouse_spi_sdio_gpio_pollup
+	fetch 1,mem_config_sensor_type
+	beq P3610,mouse_init_3610sensor
+p_mouse_init_sensor:
+	call mouse_read_sensor_id
+	beq P32XX_ID1,p_mouse_init_p32xx_id2_judge
+	beq P3065_ID1,p_mouse_p3065_init_param
+	call mouse_twspi_reset
+	nop 1000
+	branch p_mouse_init_sensor
 
-p_send_lmp_accepted:
-	force 2,pdata
-	call msg_send_lmp
-	fetch 1,mem_lmi_opcode
-	istore 1,contw
-	store 1,mem_lmi_opcode_temp
-	call send_lmp_follow
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_lmi_opcode_temp
-	store 1,mem_debuglog_dataval
-	call debuglog_push	
-endif
+p_mouse_init_sensor_reset:
+	jam 1,mem_mouse_init_sensor_reset_flag
+	call spi_ncs_enable
+	call p_mouse_init_sunt
+	branch spi_ncs_disable
+
+p_mouse_init_p32xx_id2_judge:
+	call p_mouse_sensor_poweron
+	branch mouse_init_p32xx_id2_judge
+
+
+p_mouse_p3065_init_param:
+	call p_mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq P3065_XY_ID2,mouse_p3065xy_init_param
+	jam P3065,mem_config_sensor_type
+	rtn
+
+p_mouse_sensor_poweron:
+	setarg 0x8006	// reset to factory settings
+	call twspi_write
+	nop 12000
+	branch p_mouse_dpi_config
+p_mouse_sensor_powerdown:
+	setarg 0x06
+	call twspi_read
+	or pdata,0x08,pdata
+	lshift8 pdata,pdata
+	add pdata,0x06,pdata
+	branch twspi_write	//make sdio high
+
+p_mouse_setting_config:
+ifdef G24
+	call p_g24_set_device_addr
 endif
-	fetch 1,mem_lmi_opcode_temp
-	beq LMP_MAX_SLOT_REQ,p_send_lmp_accepted_max_slot_req	//sumsung a5100 patch
-	branch send_lmp_accepted+7
+	//disable usb function
+	hfetch 1,core_usb_config
+	set0 4,pdata
+	hstore 1,core_usb_config
+	call mouse_gpio_init
+	call mouse_param_init
+ifdef CLASSIC_BT	
+	call p_mouse_bt_sdp_update
+endif	
+	setarg 0
+	store 2,mem_lpm_interval
+	call mouse_adc_init
+ifdef BLE	
+	call le_set_config_fixed_ltk
+	call le_set_justwork
+	call le_set_fixed_ltk
+	call le_set_config_read_authentication
+endif	
+//	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+//	bbit1 MOUSE_ENABLE_EEPROM,p_mouse_init_iic
+//	bbit1 MOUSE_ENABLE_FLASH,p_mouse_load_flash_info_cheak
+//	rtn
+p_mouse_init_iic:
+	call iic_init_390k
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
+	ncall clear_eeprom_size_2k,true
+	call mouse_load_eeprom_dpi
+	call p_mouse_init_environment
+	call p_mouse_set_24g_addr_eeprom
+	branch iicd_read_eep_data
 
+ifdef CLASSIC_BT
+p_mouse_bt_sdp_update:
+	call enable_authrom
+	arg 0x8c00,contr
+	arg mem_mouse_uuid_list,contw
+	arg 369,loopcnt
+	call memcpy
+	//Attribute: HID SSR Host Max Latency
+	setarg 0x0f0209
+	istore 3,contw
+	setarg 0x120009
+	istore 3,contw
+	//Attribute: HID SSR Host Min Timeout
+	setarg 0x100209
+	istore 3,contw
+	setarg 0x000009
+	istore 3,contw
+	arg 0x8d71,contr
+	arg 265,loopcnt
+	call memcpy
+	
+	jam 0,mem_mouse_uuid_list+23	//Service Record Handle: 0x 00 01 00 00
+	jam 0x6d,mem_mouse_uuid_list+15	//total length
+	setarg 0x401f
+	store 2,mem_mouse_uuid_list+357	//timeout
+	setarg 0x6d04
+	store 2,mem_mouse_uuid_list+462	//VID
+	setarg 0x16b0
+	store 2,mem_mouse_uuid_list+468	//PID
 
-p_send_lmp_accepted_max_slot_req:
-	fetch 1,mem_bt_rcvd_switch_req_accept
-	rtn blank
-	jam 0,mem_bt_rcvd_switch_req_accept
-	fetch 1,mem_bt_send_lmp_setup_complete
-	rtnne 2
-	jam 1,mem_bt_send_max_slot_req_accept_after_switch
-	copy clkn_bt,pdata
-	store 4,mem_aurand_send_delay_time
+	setarg mem_mouse_uuid_list				//bt sdp start address
+	store 2,mem_ui_uuid_table
 	rtn
+endif	
 
-p_process_conn_sm:
-	call lmo_fifo_check
-	nrtn blank
-p_process_conn_sm_continue:
-	fetch 1,mem_conn_sm
-	rtn blank
-ifdef DEBUGLOG
-ifdef DEBUGLOG_CONN_SM
-	call pdata_push
-	setarg DEBUGLOG_DTYPE_CONN_SM
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_conn_sm
-	store 2,mem_debuglog_dataval
-	call pdata_pull
-	call debuglog_push	
-endif
+p_mouse_init_environment:
+	call app_initflag_check
+	branch mouse_eeprom_load_recon_info,zero
+ifdef BLE
+	call p_le_addr_random_config
 endif
-	beq CONN_SM_SEND_CONN_REQ, p_host_create_conn_send_conn_req
-	beq CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION,p_host_creat_conn_wait_switch
-	branch process_conn_sm_continue+2
+	branch mouse_init_environment+2
 
+p_app_flag_store:
+	arg 2,temp
+	arg mem_timeup,rega
+	arg MOUSE_EEPROM_MODULE_INIT_FLAG,regb
+	branch iicd_write_protect_eep_data
 
-p_host_creat_conn_wait_switch:
-	fetch 1,mem_switch_flag
-	rtneq SWITCH_FLAG_INIT
-	beq SWITCH_FLAG_ACCEPT,p_host_create_conn_switch_accept
-	branch host_creat_conn_wait_switch+3
-p_host_create_conn_switch_accept:
-	rtn master
-p_host_create_conn_auth_pair:
-	/* checking whether or not to do m/s switch */
-	fetch 1,mem_connection_options
-	bbit1 CONNECTION_AUTH,p_host_create_conn_auth_pair_true
-	branch host_create_conn_auth_pair+1
-p_host_create_conn_auth_pair_true:
-	fetch 1,mem_bt_send_lmp_setup_complete
-	beq 1,host_create_conn_auth_pair_true
-	//sumsung a5100 patch
-	fetch 1,mem_link_key_exists
-	branch host_create_conn_auth_pair_nokey,blank
-	fetch 1,mem_lmp_conn_state
-	rtnbit0 SENT_SETUP_COMPLETE
-	rtnbit0 RECEIVED_SETUP_COMPLETE
-	fetch 1,mem_bt_send_max_slot_req_accept_after_switch
-	rtn blank
-	jam 0,mem_bt_send_max_slot_req_accept_after_switch	
-	fetch 4,mem_aurand_send_delay_time
-	arg 20,temp
-	iadd temp,temp
-	copy clkn_bt,pdata
-	isub temp,null
-	nbranch p_bt_send_max_slot_req_accept_after_switch_wait,positive
-	branch host_create_conn_auth
+p_app_initflag_check:
+	arg 2,temp
+	arg mem_pdatatemp,rega
+	arg MOUSE_EEPROM_MODULE_INIT_FLAG,regb
+	branch app_initflag_check+4
 
-p_bt_send_max_slot_req_accept_after_switch_wait:
-	jam 1,mem_bt_send_max_slot_req_accept_after_switch
-	rtn
+p_mouse_wakeup_from_power:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_WAKEUP_FROM_POWER,p_mouse_wakeup_no_from_power
+	fetch 1,mem_wakup_from_power_flag
+	isolate0 gpio_latch,pdata
+	nbranch p_mouse_wakeup_no_from_power,true
+	call p_mouse_init_sunt
+	call p_mouse_sensor_powerdown
+p_mouse_wakeup_no_from_power:
+	fetch 1,mem_reconn_times_init
+	store 1,mem_reconn_times
+	fetch 1,mem_config_function_enable	//standard do not need it
+	rtnbit1 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
+	rtnbit1 ENABLE_SELECT_DEVICE_BY_SWITCH
+p_mouse_start_24g_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G
+	call p_g24_factory_check
+	branch p_g24_auto_pair_start,user
+	branch p_g24_start_24g_mode
 
-p_host_create_conn_send_conn_req:
-	jam 20,mem_mouse_send_switch_req_timer
-	branch host_create_conn_send_conn_req
+p_g24_factory_check:
+	arg 2,loopcnt
+	arg mem_24g_addr,contr
+p_pdata_0xff_check:
+	call enable_user
+	setarg 0xffff
+p_pdata_0xff_check_loop:
+	ifetcht 2,contr
+	isub temp,null
+	ncall disable_user,zero
+	loop p_pdata_0xff_check_loop
+	rtn
 
-	
-ifdef DEBUGLOG
-p_parse_lmp_opcode:
-ifdef DEBUGLOG
-ifdef DEBUGLOG_PARSE_LMP
-	setarg DEBUGLOG_DTYPE_PARSE_LMP
-	store 2,mem_debuglog_datatype
-//	fetch 1,mem_rxbuf+1
-//	store 1,mem_debuglog_dataval+1 
-//	fetch 1,mem_lmi_opcode2
-//	store 1,mem_debuglog_dataval
-	fetch 1,mem_lmi_opcode2
-	store 2,mem_debuglog_dataval
-	call debuglog_push 
-endif
+p_mouse_cb_fuction:
+ifdef G24
+	setarg p_mouse_g24_package_data
+	store 2,mem_cb_24g_data
+endif	
+ifdef BLE
+	setarg p_mouse_le
+	store 2,mem_cb_le_process
+	setarg p_le_mouse_bb_event_connect_complete
+	store 2,mem_cb_att_write
 endif
-	branch parse_lmp+21
+ifdef CLASSIC_BT
+	setarg p_mouse_bt
+	store 2,mem_cb_bt_process
+endif	
+	setarg p_mouse_before_lpm
+	store 2,mem_cb_before_lpm
+	setarg p_mouse_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg p_mouse_idle
+	store 2,mem_cb_idle_process
+	setarg p_mouse_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg p_mouse_bb_event_timer
+	store 2,mem_cb_event_timer
+	rtn
 
-p_process_upper_sm_reconn:
-	fetch 1,mem_upper_sm_reconn
+ifdef G24
+p_mouse_g24_package_data:
+	call mouse_g24_package_data
+	fetch 2,mem_mouse_z
 	rtn blank
-ifdef DEBUGLOG
-ifdef DEBUGLOG_UPPER_SM
-	call pdata_push
-	setarg DEBUGLOG_DTYPE_UPPER_SM
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_upper_sm_reconn
-	store 2,mem_debuglog_dataval
-	call pdata_pull
-	call debuglog_push	
-endif
-endif
-	branch process_upper_sm_reconn+3
+	branch p_g24_transmit_by_interrupt_enable
+endif	
+	
+ifdef BLE
+p_mouse_le_txbuff_save:
+	arg mem_le_tx_buffer0,contr
+	arg mem_le_tx_buffer0_omemalloc,contw
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer1,contr
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer2,contr
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer3,contr
+p_mouse_le_txbuff_copy:	
+	arg 27,loopcnt
+	branch memcpy
+
+p_mouse_le_txbuff_load:
+	arg mem_le_tx_buffer0_omemalloc,contr
+	arg mem_le_tx_buffer0,contw
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer1,contw
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer2,contw
+	call p_mouse_le_txbuff_copy
+	arg mem_le_tx_buffer3,contw
+	branch p_mouse_le_txbuff_copy
 
-endif	
+p_mouse_le:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	call p_mouse_clear_sensor_data,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+//	bbit1 MOSUE_24G_PAIRING_FLAG,mouse_le_send_empty_packet
+//	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
+	call mouse_motion
+	nrtn user
+	call p_mouse_wheel_trigger
+	branch p_mouse_data_push
 
-endif
+p_mouse_data_init:
+	jam 7,mem_mouse_data_queue	//data length
+	jam 4,mem_mouse_data_queue+1	//fifo depth
+	setarg mem_mouse_data_queue
+	store 2,mem_queue_ptr
+	branch queue_init
+
+p_mouse_data_push:
+	arg mem_mouse_key,rega
+	call queue_push
+	call p_mouse_queue_increase,user
 	
 ifdef DEBUGLOG
-p_ui_ipc_send_event:
-ifdef DEBUGLOG
-ifdef DEBUGLOG_EVENT
-	call pdata_push
-	setarg DEBUGLOG_DTYPE_EVENT
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
 	store 2,mem_debuglog_datatype
-	fetch 1,mem_fifo_temp
+	setarg MISC_LOST_MOUSEDATA
 	store 2,mem_debuglog_dataval
-	call pdata_pull
-	call debuglog_push	
-endif
-endif
-	branch ui_ipc_send_event+1
+	nbranch debuglog_push,user
 
-p_ui_ipc_send_cmd:
-ifdef DEBUGLOG
-ifdef DEBUGLOG_CMD
-	call pdata_push
-	setarg DEBUGLOG_DTYPE_CMD
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_fifo_temp
+	setarg MISC_PUSH_MOUSEDATA
 	store 2,mem_debuglog_dataval
-	call pdata_pull
 	call debuglog_push
 endif
 endif
-	branch ui_ipc_send_cmd+1
-endif
-	
-p_g24_set_device_addr:
-	call adc_init_data
-//	fetch 4,mem_0_5_adc_io_data	//adc data from otp
-//	store 4,mem_24g_device_addr	
-//	nrtn blank
-	fetch 4,mem_lap
-	store 4,mem_24g_device_addr
-	rtn
-
-
-p_g24_transmit_rf_sta_init:
-	jam 1,mem_24g_rf_last_sta
-	jam 0,mem_24g_sync_cnt
-p_g24_transmit_rf_ctrl_clear:	
-	fetch 1,mem_24g_data_type
-	and_into bits_data,pdata
-	store 1,mem_24g_data_type
-	rtn
-	
-p_g24_hop_ch_enable:
-	fetch 1,mem_24g_data_type
-	set1 bit_hop,pdata
-	store 1,mem_24g_data_type
-	//update txpayload
-	store 1,mem_24g_txpayload
-	rtn
-p_g24_hop_ch_disable:
-	fetch 1,mem_24g_data_type
-	set0 bit_hop,pdata
-	store 1,mem_24g_data_type
-	rtn	
-
-p_g24_transmit_hop_pac_fail:
-	call power_ctrl_pac_succ_decrs
-	fetch 1,mem_24g_rf_work_stage
-	beq 1,p_g24_transmit_hop_pac_fail_wo_hop
-	beq 2,p_g24_transmit_hop_pac_fail_hop_stage2
 	rtn
-p_g24_transmit_hop_pac_fail_wo_hop:
-	jam 2,mem_24g_sync_cnt
-p_g24_transmit_hop_pac_fail_stage1:	
-	jam 0,mem_24g_hop_pac_retry
-	jam 0,mem_24g_rf_last_sta
-	branch p_g24_transmit_rf_ctrl_clear
-
-p_g24_transmit_hop_pac_fail_hop_stage2:
-	jam 0,mem_24g_rf_hop_ch
-	branch p_g24_transmit_hop_pac_fail_stage1
-
-	
-p_g24_transmit_pac_fail_hop_stage3:
-	fetch 2,mem_24g_txfail_cnt
-	increase 1,pdata
-	store 2,mem_24g_txfail_cnt
-	bbit1 10,p_g24_tx_attempt_fail	//1024ms * 8
-	fetch 1,mem_24g_rf_hop_ch
-	beq 1,p_g24_rf_hop_fastly
-	jam 1,mem_24g_rf_hop_ch
-p_g24_rf_hop_attemp_again:
-	fetch 1,mem_24g_rf_hop_ch
-	bne 1,p_g24_transmit_rf_ctrl_clear
-p_g24_rf_hop_fastly:
-	fetch 1,mem_24g_hop_fastly_cnt
+p_mouse_queue_increase:
+	fetch 1,mem_mouse_data_queue_num
 	increase 1,pdata
-	store 1,mem_24g_hop_fastly_cnt
-	beq 4,p_g24_rf_hop_fastly_exit
-	call p_g24_ch
-	jam 2,mem_24g_max_retry
-	branch p_g24_transmit_packet
-
-p_g24_rf_hop_fastly_exit:
-	call power_ctrl_pac_succ_decrs
-	jam 0,mem_24g_hop_fastly_cnt
-	branch p_g24_transmit_rf_ctrl_clear
-
-p_g24_transmit_hop_pac_succ_wo_hop:
-	jam 2,mem_24g_sync_cnt
-p_g24_transmit_hop_pac_succ:
-	jam 1,mem_24g_rf_last_sta
-	jam 0,mem_24g_rf_hop_ch
-	branch p_g24_transmit_rf_ctrl_clear
-
-p_g24_transmit_succ_rf_config:
-	fetch 1,mem_24g_rf_work_stage
-	beq 3,p_g24_transmit_hop_pac_succ
-	fetch 1,mem_24g_data_type
-	isolate0 bit_hop,pdata
-	branch p_g24_transmit_rf_sta_init,true
-	fetch 1,mem_24g_rf_work_stage
-	beq 1,p_g24_transmit_hop_pac_succ_wo_hop
-	beq 2,p_g24_transmit_hop_pac_succ
+	store 1, mem_mouse_data_queue_num
 	rtn
-
-p_g24_rf_sta_check:
-	fetch 1,mem_24g_pairing_sm
-	rtnne STATE_24G_PAIRING_SUCCESS
-	call p_g24_rf_laststa_synccnt_check
-	ncall p_g24_rf_sync_cnt_check,user2
+	
+p_mouse_data_pull:
+	arg mem_mouse_key,rega
+	call queue_pop
+	branch p_mouse_fill_data_le,user
 	rtn
 
-p_g24_rf_laststa_synccnt_check:
-	disable user2
-	fetch 1,mem_24g_rf_last_sta
-	rtnne 1
-	fetch 1,mem_24g_sync_cnt
-	rtnne 0
-	jam 1,mem_24g_rf_work_stage
-	jam 4,mem_24g_max_retry
-	branch enable_user2
+p_mouse_fill_data_le:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	setarg MISC_PULL_MOUSEDATA
+	store 2,mem_debuglog_dataval
+	call debuglog_push
 
-p_g24_rf_sync_cnt_check:
-	fetch 1,mem_24g_sync_cnt
-	branch p_g24_rf_hop_attemp,blank
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_mouse_x
+	store 1,mem_debuglog_dataval
+	fetch 1,mem_mouse_y
+	store 1,mem_debuglog_dataval+1
+	call debuglog_push	
+endif
+endif
+	call le_clear_md
+	fetch 1,mem_mouse_data_queue_num
+	sub pdata,1,null
+	ncall le_set_md,positive
+	fetch 1,mem_mouse_data_queue_num
+	rtn blank
 	increase -1,pdata
-	store 1,mem_24g_sync_cnt
-	jam 2,mem_24g_rf_work_stage
-	call p_g24_ch
-	jam 4,mem_24g_max_retry
-	rtn
-
-p_g24_rf_hop_attemp:
-	jam 3,mem_24g_rf_work_stage
-	fetch 1,mem_24g_rf_hop_ch
-	nbranch p_g24_rf_hop_attemp_again,blank
-	call p_g24_ch
-	jam 2,mem_24g_max_retry
-	rtn
+	store 1, mem_mouse_data_queue_num
+	branch mouse_fill_data_le
+	
+endif
 
-p_g24_txdata_prep:
-	fetch 1,mem_24g_pairing_sm
-	bne STATE_24G_PAIRING_SUCCESS,p_g24_pairing_sm	
-p_g24_txdata_prep_packeage_data:
-	call p_g24_package_data
-	call p_g24_transmit_prep
-p_g24_txdata_enable_tx:
-	jam ENSURE_ON_24G,mem_24g_ensure
+p_mouse_wheel_trigger:
+	fetch 2,mem_mouse_z
+	rtn blank
+	jam 1,mem_mouse_wheel_trigger
+	jam 2,mem_mouse_wheel_trigger_timer
 	rtn
 
-p_g24_package_data:
-	fetch 2,mem_cb_24g_data
-	call callback_func
-	branch p_g24_accumulate_mouse_data,user
-	fetch 7,mem_24g_txbuf+1	//mouse data
+ifdef CLASSIC_BT
+p_mouse_bt:
+	rtn attempt
+	fetch 1,mem_app_handshake_flag
 	rtn blank
-	branch enable_user	// retransmit
-p_g24_accumulate_mouse_data:
-	jam 0,mem_24g_abort_pac
-	add rega,1,pdata
-	store 1,mem_24g_datalen
-	call p_g24_transmit_rf_ctrl_clear
-	store 1,mem_24g_txbuf
-	ifetcht 1,contw
-	ifetch 1,regb
-	ior temp,pdata
+	call l2cap_malloc_is_fifo_nearly_full
+	nrtn blank
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	call p_mouse_clear_sensor_data,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+//	bbit1 MOSUE_24G_PAIRING_FLAG,mouse_send_empty_data
+//	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_send_empty_data
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_send_empty_data
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,mouse_send_empty_data
+	call mouse_motion
+	nrtn user
+	call p_mouse_wheel_trigger
+	fetch 1,mem_mouse_bt_boot_mode
+	beq 1,p_mouse_send_data_boot_mode	//boot
+	fetch 1,mem_mouse_bt_send_first_package_flag
+	rtn blank
+	branch mouse_send_data	//report
+
+p_mouse_send_data_boot_mode:
+	fetch 1,mem_mouse_key
+	store 1,mem_mouse_bt_boot_data
+	fetch 1,mem_mouse_x
 	istore 1,contw
-	increase 1,regb
-	arg 2,loopcnt
-p_g24_accumulation_loop:
-	ifetch 2,regb
-//	ifetcht 2,contw
-//	iadd temp,pdata
-	istore 2,contw
-	increase 2,regb
-	loop p_g24_accumulation_loop
-	arg mem_24g_txbuf+6,contw
-	arg 2,loopcnt
-p_g24_accumulation_loop2:
-	ifetch 1,regb
-	ifetcht 1,contw
-	iadd temp,pdata
+	fetch 1,mem_mouse_y
 	istore 1,contw
-	increase 1,regb
-	loop p_g24_accumulation_loop2
-	rtn
+	fetch 2,mem_mouse_z
+	istore 2,contw
 
-p_g24_transmit_packet:
-	jam 0,mem_24g_retry
-p_g24_transmit_loop:
-	arg param_rx_setup,timeup
-	until clkn_rt,meet
-	call p_g24_transmit_receive_ack
-	fetch 1,mem_24g_no_ack	//tx noack
-	rtneq no_ack_24g
-	nbranch p_g24_retransmit,sync
-	nbranch p_g24_retransmit,user3
-	call p_g24_txbuf_clear
-	call p_g24_ackpayload_parse
-	call power_ctrl_pac_succ_incrs
-p_g24_transmit_next_packet:
-	fetch 1,mem_24g_pid
-	increase 1,pdata
-	store 1,mem_24g_pid
-	fetch 1,mem_24g_pairing_sm
-	bne STATE_24G_PAIRING_SUCCESS,p_g24_paring_mode_start
-	call p_g24_transmit_succ_rf_config
-p_g24_transmit_abandon:
-	setarg 0
-	store 2,mem_24g_txfail_cnt
-	store 1,mem_24g_get_ack_fail
-	store 1,mem_24g_hop_pac_retry
-	jam ENSURE_OFF_24G,mem_24g_ensure
+	arg 7,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0x02a1
+	istore 2,contw
+	fetch 5,mem_mouse_bt_boot_data
+	istore 5,contw
 	rtn
+endif
+	
+p_mouse_clear_sensor_data:
+	call le_set_config_more_data
+	jam 1,mem_mouse_clear_sensor_data_flag
+	branch p_mouse_sensor_poweron
 
-p_g24_txbuf_clear:
-	arg 4,loopcnt
-	arg mem_24g_txbuf,contw
-	branch memset0
-
-p_g24_paring_mode_start:
-	call power_ctrl_pac_succ_cnt_init
-	branch p_g24_paring_mode
+p_mouse_idle:
+	call ui_check_paring_button
+	call mouse_dpi_cheak
+	branch mouse_wheel_check
 
-p_g24_transmit_receive_ack:
-	disable user3
-	call p_g24_transmit
-	
-ifdef RF_DEBUG
-	call test_gpio_low
+p_mouse_priority_bb_event:
+	copy regc,pdata
+ifdef BLE	
+	beq BT_EVT_LE_CONNECTED,p_mouse_le_bb_event_connected
+	beq BT_EVT_LE_DISCONNECTED,p_mouse_le_bb_disconnected
+	beq BT_EVT_LE_ENC_INFO,p_mouse_le_enc_info
+	beq BT_EVT_LE_START_ENC,p_mouse_le_ll_start_encryt
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,p_mouse_le_conn_param_update_rsp_recieved
+endif
+ifdef CLASSIC_BT
+	beq BT_EVT_RECONN_FAILED,p_mouse_bb_event_reconn_failed
+	beq BT_EVT_RECONN_PAGE_TIMEOUT,p_mouse_bb_event_reconn_timeout
+	beq BT_EVT_VIRTUAL_CABLE_UNPLUG,p_mouse_irtual_cable_unplug
+	beq BT_EVT_SWITCH_NOT_ACCEPT,app_bt_role_switch	
+	beq BT_EVT_SNIFF_NOT_ACCEPT,p_mouse_sniff_not_accept
+	beq BT_EVT_BB_CONNECTED,p_mouse_bb_event_connected
+	beq BT_EVT_BB_DISCONNECTED,p_mouse_bb_event_disconnected
+	beq BT_EVT_SWITCH_SUCCESS_MASTER,p_mouse_enter_sniff_check
+endif
+ifdef G24
+	beq BT_EVT_24G_PAIRING_COMPLETE,p_mouse_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,p_mouse_24g_attempt_success
 endif
+	branch mouse_priority_bb_event+1
 
-	fetch 1,mem_24g_no_ack
-	beq no_ack_24g,p_g24_transmit_no_ack	//tx no ack
-	force 0,radio_ctrl
-	fetch 4,mem_24g_addr
-	iforce access
-	fetcht 1,mem_last_freq
-	call set_freq_rx
-	call rf_rx_enable
-	call p_g24_receive_rxon
-	call p_g24_end_of_packet,user3
-	rtn
-p_g24_transmit_no_ack:
-	call p_g24_end_of_packet
-	branch p_g24_transmit_next_packet
+ifdef BLE
+p_mouse_le_bb_event_connected:
+	call p_mouse_init_sensor_reset
+	call p_mouse_data_init
+	branch mouse_le_bb_event_connected
 
-p_g24_retransmit:
-	fetch 1,mem_24g_get_ack_fail
-	increase 1,pdata
-	store 1,mem_24g_get_ack_fail
-	fetch 1,mem_24g_pairing_sm
-	bne STATE_24G_PAIRING_SUCCESS,p_g24_tx_paring_retry
-	fetcht 1,mem_24g_retry
-	increase 1,temp
-	storet 1,mem_24g_retry
-	fetch 1,mem_24g_max_retry
-	isub temp,pdata
-	nbranch p_g24_transmit_loop,blank
-	fetch 1,mem_24g_rf_work_stage
-	beq 3,p_g24_transmit_pac_fail_hop_stage3
-	fetch 1,mem_24g_hop_pac_retry
-	increase 1,pdata
-	store 1,mem_24g_hop_pac_retry
-	beq 2,p_g24_transmit_hop_pac_fail
-	call p_g24_hop_ch_enable
-	jam 1,mem_24g_max_retry
-	branch p_g24_transmit_packet
+p_mouse_le_bb_disconnected:
+	call p_mouse_sensor_powerdown_check
+	setarg LE_INTERVAL_8_75MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	jam 0,mem_mouse_clear_sensor_data_flag
+	call p_mouse_data_init
+	call le_clr_config_more_data
+	branch mouse_bb_disconnected
 
-p_g24_tx_paring_retry:
-	fetch 1,mem_24g_get_ack_fail
-	rtnne 0xff
-	jam 0,mem_24g_get_ack_fail
-	branch p_g24_stop_g24_mode
+p_mouse_le_enc_info:
+p_app_updata_le_param:
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
 
-p_g24_tx_attempt_fail:
-	setarg 0
-	store 2,mem_24g_txfail_cnt
-p_g24_stop_g24_mode:
-	jam BT_EVT_24G_ATTEMPT_FAIL,mem_fifo_temp
-	branch ui_ipc_send_event
+p_mouse_le_ll_start_encryt:
+	fetch 1,mem_mouse_le_reconnect_flag
+	beq 1,p_mouse_le_ll_reconn_start_encryt
+	branch p_mouse_le_ll_enable_start_enc_flag
 
-p_g24_ackpayload_parse:
-	call p_g24_read_len_pid_crc
-	fetch 1,mem_24g_rxdata_length	//ack payload length 
-	rtn blank
-	iforce loopcnt
-	arg mem_24g_rxbuf+2,contr
-	arg mem_24g_rxpayload,contw	//ack payload buffer 
-	branch memcpy
+p_mouse_le_ll_reconn_start_encryt:
+	call p_app_updata_le_param
+	jam 20,mem_le_start_encrypt_timer
+p_mouse_le_ll_enable_start_enc_flag:
+	arg LL_START_ENC_FLAG,queue
+	branch mouse_le_enable_connect_flag
 
-power_ctrl_pac_succ_cnt_init:
-	jam 1,mem_power_ctrl_level
-	jam 0,mem_power_ctrl_pac_succ_cnt
-	rtn
-power_ctrl_pac_succ_incrs:
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	increase 1,pdata
-	store 1,mem_power_ctrl_pac_succ_cnt
-	rtn
-power_ctrl_pac_succ_decrs:
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	sub pdata,2,null
-	ncall power_ctrl_pac_succ_cnt_reinit,positive
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	rtneq 0
-	increase -1,pdata
-	store 1,mem_power_ctrl_pac_succ_cnt
-	rtn
-power_ctrl_pac_succ_cnt_reinit:
-	jam 3,mem_power_ctrl_pac_succ_cnt
-	rtn
+p_mouse_le_conn_param_update_rsp_recieved:
+	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+	fetch 1,mem_le_tsniff
+	rshift2 pdata,pdata
+	sub pdata,LE_INTERVAL_15MS,null
+	rtn positive
+	setarg LE_INTERVAL_11_25MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	call p_app_updata_le_param
+	branch p_mouse_le_conn_param_lpm_disable
+endif
 
-power_ctrl_start:
+
+ifdef CLASSIC_BT
+p_mouse_bb_event_reconn_timeout:
+p_mouse_bb_event_reconn_failed:
 	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_ADV
-	rtnbit1 UI_STATE_BT_RECONNECT
+	rtnbit1 UI_STATE_BTN_DOWN
 	rtnbit1 UI_STATE_BT_DISCOVERY
+	rtnbit1 UI_STATE_BLE_ADV
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+//	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_soft_reset
+//	bbit1 MOSUE_24G_PAIRING_FLAG,p_g24_start_pairing_sm1
+	branch app_bb_hibernate
+
+p_mouse_irtual_cable_unplug:
+	call mouse_irtual_cable_unplug
+	branch app_bb_hibernate
+
+p_mouse_sniff_not_accept:
+	fetch 1,mem_mouse_enter_sniff_count
+	rtneq 2
+	increase 1,pdata
+	store 1,mem_mouse_enter_sniff_count
+	jam 0x12,mem_sniff_param_interval	//89Hz
+	branch app_bt_enter_sniff
+
+p_mouse_bb_event_connected:
+	jam 0,mem_mouse_send_switch_req_timer
+	call p_mouse_init_sensor_reset
+	branch mouse_stop_discovery
 
-	arg mem_rssi_signal_buf,rega
-	call p_rssi_average
-	storet 1,mem_rssi_avg_received
+p_mouse_bb_event_disconnected:
+	jam 0,mem_bt_rcvd_switch_req_accept
+	jam 0,mem_bt_send_lmp_setup_complete
+	jam 0,mem_mouse_bt_send_first_package_flag
+	call p_mouse_sensor_powerdown_check
+	branch mouse_bb_disconnected
 
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	store 1,mem_debuglog_dataval
-	fetch 1,mem_rssi_avg_received
-	store 1,mem_debuglog_dataval+1
-	call debuglog_push	
-endif
-endif
+p_mouse_enter_sniff_check:
+	fetch 1,mem_mouse_enter_sniff_count
+	rtnne 2
+	jam 0,mem_mouse_enter_sniff_count
+	jam 0x0e,mem_sniff_param_interval	//89Hz
+	branch app_bt_enter_sniff
 	
-	isolate1 mark_24g,mark
-	call power_ctrl_24g_dis_max,true
-	ncall power_ctrl_le_dis_max,true
-	isub temp,null
-	nbranch power_ctrl_txpower_incrs_force,positive
+endif
 
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	sub pdata,2,null
-	nbranch power_ctrl_txpower_decrs_check,positive
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	beq 0,power_ctrl_txpower_incrs
-	rtn
+ifdef G24
+p_mouse_24g_pairing_complete:
+	call p_mouse_init_sensor_reset
 
-power_ctrl_24g_dis_max:
-	setarg RSSI_DIS_MAX_24G
-	rtn
-power_ctrl_24g_dis_min:
-	setarg RSSI_DIS_MIN_24G
-	rtn	
-power_ctrl_le_dis_max:
-	setarg RSSI_DIS_MAX_BLE
-	rtn
-power_ctrl_le_dis_min:
-	setarg RSSI_DIS_MIN_BLE
-	rtn
+	jam 1,mem_mouse_24g_enter_lpm_enable
+	arg MOSUE_24G_PAIRING_FLAG,queue
+	call mouse_disable_function_flag
+	setarg 0
+	store 2,mem_24g_pairing_timer_count
+	jam 0,mem_mouse_move_flag
 	
-power_ctrl_txpower_decrs_check:
-	fetch 1,mem_power_ctrl_pac_succ_cnt
-	rtnne 32
-	jam 0,mem_power_ctrl_pac_succ_cnt
-power_ctrl_txpower_decrs:
-	fetcht 1,mem_rssi_avg_received
-	isolate1 mark_24g,mark
-	call power_ctrl_24g_dis_min,true
-	ncall power_ctrl_le_dis_min,true
-	isub temp,null
-	nrtn positive
-	fetch 1,mem_power_ctrl_level
-	beq 0,power_ctrl_decrs_level0
-	increase -1,pdata
-	store 1,mem_power_ctrl_level
-	beq 0,power_ctrl_decrs_level0
-power_ctrl_decrs_level1:
-power_ctrl_incrs_level1:	//0dBm
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_TXPOWER_1
-	store 2,mem_debuglog_dataval
-	call debuglog_push
-endif
-endif
-	jam TX_POWER_0DB,mem_tx_power
+	//fetch 1,mem_config_sensor_type
+	//sub pdata,P3610,null
+	//call mouse_read_sensor3610_data,zero
+	//ncall mouse_read_sensor_common,zero
+	call mouse_read_sensor_common
+
+	call p_mouse_tx_power_init
+	call p_mouse_set_24g_addr_eeprom	//store rx dongle addr to eeprom
+	branch iicd_write_protect_eep_data
+
+p_mouse_set_24g_addr_eeprom:
+	arg mem_24g_addr,rega
+	arg MOUSE_G24_ADDR_EEPROM_OFFECT,regb
+	arg 4,temp
 	rtn
 
-power_ctrl_txpower_incrs_force:
-	jam 0,mem_power_ctrl_pac_succ_cnt
-power_ctrl_txpower_incrs:
-	fetch 1,mem_power_ctrl_level
-	beq 2,power_ctrl_incrs_level2
-	increase 1,pdata
-	store 1,mem_power_ctrl_level
-	beq 1,power_ctrl_incrs_level1
-power_ctrl_incrs_level2:	//+6dBm
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_TXPOWER_2
-	store 2,mem_debuglog_dataval
-	call debuglog_push
-endif
+p_mouse_24g_attempt_fail:
+	call p_mouse_sensor_powerdown_check
+	jam G24_TX_TIMER_INT_DISABLE,mem_24g_transmit_by_interrupt
+	call p_mouse_tx_power_init
+	call p_g24_check_51cmd_stop_24g
+	jam 0,mem_link_key_exists
+	call mouse_eeprom_load_recon_info
+	arg 3,loopcnt
+	arg mem_device1_addr,contr
+	call p_pdata_0xff_check
+	branch p_mouse_null_enter_hibernate_count,user
+	branch p_mouse_check_reconn_target
+
+p_mouse_24g_attempt_success:
+	call p_mouse_init_sensor_reset
+	branch mouse_no_data_timer_init	
 endif
 
-	jam TX_POWER_5DB,mem_tx_power
-	rtn
+
+p_mouse_before_hibernate:
+	enable user
+	hfetch 4,0x8138
+	setflag user,26,pdata
+	hstore 4,core_lpm_reg
+	call lpm_write_ctrl
+	call p_mouse_sensor_powerdown_check
+	call disable_authrom
+	call mouse_devce_led_off
+	call mouse_before_hibernate_wheel_gpio_set
+	branch mouse_lpm_before_common
 	
-power_ctrl_decrs_level0: //-5dBm
-ifdef DEBUGLOG
-ifdef DEBUGLOG_MISC
-	setarg DEBUGLOG_DTYPE_MISC
-	store 2,mem_debuglog_datatype
-	setarg MISC_TXPOWER_0
-	store 2,mem_debuglog_dataval
-	call debuglog_push
+p_mouse_sensor_powerdown_check:
+	fetch 1,mem_mouse_init_sensor_reset_flag
+	rtn blank
+	jam 0,mem_mouse_init_sensor_reset_flag
+	branch p_mouse_sensor_powerdown
+
+
+p_mouse_bb_event_timer:
+ifdef ADC_ENABLE	
+	call p_mouse_adc_read
+	call mouse_low_voltage_led_timer
+endif
+	call p_mouse_wheel_trigger_timer
+	call p_mouse_null_enter_hibernate_check
+	call p_mouse_bt_discovery_check
+	call mouse_check_discovery_timeout_timer
+ifdef BLE	
+	call mouse_check_direct_timeout_timer
+	call p_mouse_le_enable_att_list_timer
 endif
+ifdef CLASSIC_BT
+	call p_mouse_send_switch_req_timer
+	call mouse_check_hid_handshake_timer
+	call p_mouse_bt_check_sniff_req_timeout_timer
 endif
+	branch mouse_check_no_data_timeout_timer
 
-	jam TX_POWER_f5DB,mem_tx_power
-	rtn
-	
-p_g24_start_pairing_sm1:
-	set1 mark_24g,mark
-	call p_g24_pair_init
-p_g24_set_pairing_sm_1:
-	jam STATE_24G_PAIRING_1,mem_24g_pairing_sm
-	rtn
+ifdef CLASSIC_BT
+p_mouse_send_switch_req_timer:
+	arg mem_mouse_send_switch_req_timer,regc
+	arg host_create_conn_resend,regb
+	branch timer_single_step
 
-p_g24_pair_init:
-	jam TX_POWER_PAIR,mem_tx_power
-	jam 0,mem_24g_pid
-	jam G24_PAIR_CH,mem_24g_ch
-	fetch 4,mem_24g_paring_addr
-	branch p_g24_update_addr_and_synccrc8
+p_mouse_bt_check_sniff_req_timeout_timer:
+	arg mem_mouse_bt_send_first_package_timer,regc
+	arg p_mouse_bt_send_first_package,regb
+	branch timer_single_step
+p_mouse_bt_send_first_package:
+	jam 1,mem_mouse_bt_send_first_package_flag
+	rtn
+endif
 
-p_g24_pairing_sm:
-	fetch 1,mem_24g_ensure
-	beq ENSURE_ON_24G,enable_user
-	fetch 1,mem_24g_pairing_sm
-	beq STATE_24G_PAIRING_1,p_g24_pairing_sm_1
-	beq STATE_24G_PAIRING_2,p_g24_pairing_sm_2
-	beq STATE_24G_PAIRING_3,p_g24_pairing_sm_3
-	branch assert
 
-p_g24_pairing_sm_1:
-	jam STATE_24G_PAIRING_1_WAITING_ACK,mem_24g_pairing_sm
-	jam 0xaa,mem_24g_common_temp
-	branch p_g24_pairing_sm_common
-p_g24_pairing_sm_2:
-	jam STATE_24G_PAIRING_2_WAITING_ACK,mem_24g_pairing_sm
-	jam 0x55,mem_24g_common_temp
-	branch p_g24_pairing_sm_common
-p_g24_pairing_sm_3:
-	jam STATE_24G_PAIRING_3_WAITING_ACK,mem_24g_pairing_sm
-	jam 0x22,mem_24g_common_temp
-p_g24_pairing_sm_common:
-	fetch 1,mem_24g_data_type
-	and_into bits_data,pdata
-	store 1,mem_24g_common_temp+1
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_common_temp+2
-p_g24_put_pairing_data_in_buff:
-	jam 0,mem_24g_common_temp+6
-	arg mem_24g_common_temp,rega
-	arg 7,temp
-	call p_g24_put_data_in_buff
-	call p_g24_transmit_prep
-	call p_g24_txdata_enable_tx
-	branch enable_user
+ifdef CLASSIC_BT
+p_mouse_le_enable_att_list_timer:
+	arg mem_le_start_encrypt_timer,regc
+	arg mouse_le_write_enable,regb
+	branch timer_single_step
+endif
 
-p_g24_paring_mode:
-	fetch 1,mem_24g_pairing_sm
-	rtneq STATE_24G_PAIRING_SUCCESS
-	beq STATE_24G_PAIRING_1_WAITING_ACK,p_g24_pairing_sm_1_waiting_ack
-	beq STATE_24G_PAIRING_2_WAITING_ACK,p_g24_pairing_sm_2_waiting_ack
-	beq STATE_24G_PAIRING_3_WAITING_ACK,p_g24_pairing_sm_3_waiting_ack
+p_mouse_wheel_trigger_timer:
+	arg mem_mouse_wheel_trigger_timer,regc
+	arg p_mouse_wheel_trigger_disable,regb
+	branch timer_single_step
+p_mouse_wheel_trigger_disable:
+	jam 0,mem_mouse_wheel_trigger
 	rtn
 
+p_mouse_bt_discovery_check:
+	fetch 1,mem_config_function_enable
+	bbit1 ENABLE_BT_BUTTON,mouse_bt_discovery_by_button
+p_mouse_bt_discovery_commbination_key:
+	call mouse_check_key_gpio
+	beq MOUSE_LMR_BUTTON,p_mouse_bt_discovery_commbination_key_down
+p_mouse_bt_discovery_commbination_key_up:
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init 
+	fetch 1,mem_bt_discovey_button_statue
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_bt_discovey_button_statue
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+	branch mouse_bt_discovery_button_down_disable
+p_mouse_bt_discovery_commbination_key_down:
+	jam 40,mem_mouse_null_enter_hibernate_timer
+	call p_mouse_bt_discovery_timer
+	branch mouse_bt_discovery_commbination_key_down+1
 
-p_g24_pairing_sm_1_waiting_ack:
-	jam STATE_24G_PAIRING_2,mem_24g_pairing_sm
-	branch p_g24_transmit_abandon
-p_g24_pairing_sm_2_waiting_ack:
-	jam STATE_24G_PAIRING_3,mem_24g_pairing_sm
-	branch p_g24_transmit_abandon
-p_g24_pairing_sm_3_waiting_ack:
-	jam STATE_24G_PAIRING_SUCCESS,mem_24g_pairing_sm
-	jam BT_EVT_24G_PAIRING_COMPLETE,mem_fifo_temp
-	call ui_ipc_send_event	
-	fetch 4,mem_24g_rxpayload+2
-	call p_g24_update_addr_and_synccrc8
-	branch p_g24_transmit_abandon
+p_mouse_bt_discovery_timer:
+	arg mem_combination_ui_button_count,regc
+	arg p_mouse_long_button_bt_discovery,regb
+	branch timer_single_step
+	
+p_mouse_long_button_bt_discovery:
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BT_RECONNECT,pdata
+	call mouse_cancel_reconnect,true
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_enable_function_flag
+	branch mouse_long_button_bt_discovry
 
-p_g24_start_24g_mode:
-	set0 mark_24g,mark
-	call p_g24_ch_syncword_crc8_init
-	fetch 1,mem_24g_pairing_sm
-	rtnne STATE_24G_PAIRING_SUCCESS
-	call p_g24_tx_attemp_data_prep
-p_g24_tx_attemp_dongle:
-	setarg 0
-	store 2,mem_24g_check_dongle_times
-p_g24_tx_attemp_dongle_loop:
-	call lpo_calibration
-	nop 2000
-	fetch 1,mem_24g_check_dongle_times
-	beq 0xff,p_g24_stop_g24_mode
-	call p_g24_transmit_receive_ack
-	nbranch p_g24_attemp_txdata_retry,sync
-	nbranch p_g24_attemp_txdata_retry,user3
-p_g24_tx_attemp_dongle_succ:
-	set1 mark_24g,mark
-	setarg 0
-	store 2,mem_24g_check_dongle_times
-	jam BT_EVT_24G_ATTEMPT_SUCCESS,mem_fifo_temp
-	call ui_ipc_send_event
-	call p_g24_txbuf_clear
-	branch p_g24_transmit_by_interrupt_enable
+p_mouse_null_enter_hibernate_check:
+	fetch 1,mem_mouse_null_enter_hibernate_flag
+	rtn blank
+	fetch 1,mem_mouse_null_enter_hibernate_timer
+	branch p_mouse_null_enter_hibernate,blank
+	increase -1,pdata
+	store 1,mem_mouse_null_enter_hibernate_timer
+	rtn
+p_mouse_null_enter_hibernate:
+	jam 0,mem_mouse_null_enter_hibernate_flag
+	branch app_enter_hibernate
+p_mouse_null_enter_hibernate_count:	//ble never connected
+	jam 1,mem_mouse_null_enter_hibernate_flag
+	jam 40,mem_mouse_null_enter_hibernate_timer	//lmr 3s
+	rtn	
 
-p_g24_tx_attemp_data_prep:
-	jam 0xff,mem_24g_common_temp
-	fetch 1,mem_24g_data_type
-	store 1,mem_24g_common_temp+1
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_common_temp+2
-	arg 6,temp
-	arg mem_24g_common_temp,rega
-	call p_g24_put_data_in_buff
-	branch p_g24_transmit_prep
 	
-p_g24_attemp_txdata_retry:
-	fetch 2,mem_24g_check_dongle_times
+ifdef ADC_ENABLE
+p_mouse_adc_read:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	fetch 1,mem_adc_read_timer
 	increase 1,pdata
-	store 2,mem_24g_check_dongle_times
-	call p_g24_ch
-	branch p_g24_tx_attemp_dongle_loop
+	store 1,mem_adc_read_timer
+	sub pdata,10,null              //1s read adc
+	rtn positive
+	jam 0,mem_adc_read_timer
+	call p_adc_set_mode
+	call vdd_calculate_by_mode
+	store 2,mem_mouse_vdd_now_vol
+	arg mem_mouse_vdd_calculate_set,rega
+	call p_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,app_enter_hibernate
+	bbit0 0,p_mouse_adc_no_low_voltage
+	jam 1,mem_mouse_adc_last_low_voltage_flag
+	branch mouse_adc_low_voltage
+p_mouse_adc_no_low_voltage:
+	call mouse_adc_no_low_voltage
+	fetch 1,mem_mouse_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_mouse_adc_last_low_voltage_flag
+	fetch 1,mem_config_low_voltage_alarm_gpio
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_off
+	
+p_adc_set_mode:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_GPIO,p_adc_check_gpio
+	branch adc_set_mode+1
+p_adc_check_gpio:
+	hfetch 1,core_gpio_pu0	//gpio5 pull up disable
+	set0 5,pdata
+	hstore 1,core_gpio_pu0
+	call adc_check_gpio
+	hfetch 1,core_gpio_pu0	//gpio5 pull up enable
+	set1 5,pdata
+	hstore 1,core_gpio_pu0
+	rtn
 
-p_g24_auto_pair_start:
-	set0 mark_24g,mark
-	call p_g24_auto_pair_all_powerful
-	call p_g24_tx_attemp_data_prep
-p_g24_auto_pair_restart:
-	jam 0,mem_24g_check_dongle_times
-p_g24_auto_pair_start_loop:
-	call lpo_calibration
-	nop 2000
-	fetch 1,mem_24g_check_dongle_times
-	beq 0xff,p_g24_stop_g24_mode
-	call p_g24_transmit_receive_ack
-	nbranch p_g24_auto_pair_retry,sync
-	nbranch p_g24_auto_pair_retry,user3
-	call p_g24_ackpayload_parse
-	call p_mouse_tx_power_init
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_paring_addr
+p_adc_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+	fetcht 2,mem_pdatatemp+2	//shutdown voltage 0.9v
+	fetch 2,mem_pdatatemp+6		//now voltage
 	isub temp,null
-	branch p_g24_start_pairing_sm1,zero
-	branch p_g24_tx_attemp_dongle_succ
+	nbranch adc_set_no_power_flag,positive
+	fetcht 2,mem_pdatatemp+4	//low voltage 1.0v
+	isub temp,null
+	nbranch adc_set_low_power_flag,positive
+p_adc_clear_low_power_flag:
+	fetch 1,mem_adc_power_flag
+	set0 0,pdata
+	store 1,mem_adc_power_flag
+	rtn	
+endif
 
-p_g24_auto_pair_retry:
-	fetch 1,mem_24g_check_dongle_times
-	increase 1,pdata
-	store 1,mem_24g_check_dongle_times
-	fetch 1,mem_24g_auto_paring_switch
-	increase 1,pdata
-	and_into 1,pdata
-	store 1,mem_24g_auto_paring_switch
-	beq 0,p_g24_auto_pair_device_attemp
-	beq 1,p_g24_auto_pair_pair_attemp
-	rtn
+p_mouse_seting_dpi:
+	call mosue_dpi_led_blink_init
+p_mouse_seting_dpi_diff:
+	fetch 1,mem_config_sensor_type
+	beq P3065_XY,p_mouse_seting_3065XY_dpi
+	branch mouse_seting_dpi+3
 	
-p_g24_auto_pair_all_powerful:
-	jam TX_POWER_PAIR,mem_tx_power
-	setarg 0x0f0f
-	store 2,mem_24g_addr
-	istore 2,contw
-p_g24_ch_syncword_crc8_init:	
-	call p_g24_syncword_crc8
-	branch p_g24_ch
-
-p_g24_auto_pair_device_attemp:
-	call p_g24_auto_pair_all_powerful
-	branch p_g24_auto_pair_start_loop
+p_mouse_seting_3065XY_dpi:
+	fetch 1,mem_mouse_dpi
+	call p_mouse_3065xy_dpi_recount,blank
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL2,mouse_set_cpi1
+	//beq MOUSE_DPI_LEVEL3,mouse_set_cpi3
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi4
+	branch mouse_set_cpi3
+p_mouse_3065xy_dpi_recount:
+	jam 1,mem_mouse_dpi
+	rtn
 
-p_g24_auto_pair_pair_attemp:
-	call p_g24_pair_init
-	branch p_g24_auto_pair_start_loop
+p_mouse_motion:
+	disable user
+	setarg 0
+	store 6,mem_mouse_x
+	call mouse_cheak_sensor_data
+	call mouse_zwheel
+	call mouse_t_zwheel
+	call mouse_key
+ifdef MOUSE_SMOOTHER	
+	nbranch p_mouse_drawing_optima_init,user
+	call p_mouse_drawing_optima
+else
+	nrtn user
+endif
+	branch mouse_motion+9
 
-p_g24_check_51cmd_stop_24g:
-	set0 mark_24g,mark
-	call le_disable
-p_mouse_disable_g24_pairing_flag:
-	arg MOSUE_24G_PAIRING_FLAG,queue
-	branch mouse_disable_function_flag
+p_mouse_bb_event_discovery_btn:
+	jam 0,mem_mouse_null_enter_hibernate_flag
+	jam 0,mem_mouse_null_enter_hibernate_timer
+ifdef G24	
+	isolate1 mark_24g,mark
+	call p_g24_check_51cmd_stop_24g,true
+endif
+	branch mouse_bb_event_discovery_btn+1
 
-p_g24_put_data_in_buff:
-	storet 1,mem_24g_datalen
-	copy temp,loopcnt
-	arg mem_24g_txbuf,contw
-	copy rega,contr
-	branch memcpy
+ifdef BLE
+p_le_addr_random_config:
+	call load_adc_init
+	fetch 2,mem_0_5_adc_io_data	//adc data from otp
+	branch p_le_otp_adc_empty,blank
+	store 2,mem_random_addr_increase_count
+p_le_addr_random_store:
+	branch p_mouse_store_eerpom_random_addr_increase_count
+p_le_otp_adc_empty:
+	setarg 0x1122
+	store 2,mem_random_addr_increase_count
+	branch p_le_addr_random_store
 
-p_g24_read_len_pid_crc:
-//read control
-	fetch 1,mem_24g_rxbuf+1
-	rshift3 pdata,pdata
-	store 1,mem_24g_rxdata_length
-//get crc
-	increase 1,pdata
-	arg mem_24g_rxbuf+1,contr
-	iadd contr,contr
-	ifetch 3,contr
-	store 3,mem_24g_sta_crc
-//read pid
-	fetch 1,mem_24g_rxbuf+1
-	rshift pdata,pdata
-	and pdata,0x03,pdata
-	store 1,mem_24g_sta_pid
-	rtn
+p_mouse_store_eerpom_random_addr_increase_count:
+	arg 2,temp
+	arg mem_random_addr_increase_count,rega
+	arg MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET,regb
+	branch iicd_write_protect_eep_data
+p_mouse_load_eeprom_random_addr_increase_count:
+	arg 2,temp
+	arg mem_random_addr_increase_count,rega
+	arg MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET,regb
+	branch iicd_read_eep_data
 
 endif
 
-p_set_freq_tx:
-	storet 1,mem_last_freq
-	add temp,0,rega			/* index to frequency */
-	call rf_write_freq
-	setarg param_pll_setup	//128us
-	call sleep
-p_rf_tx_enable:
-	jam 0x1,rfen_adc
-	jam 0x3c,rfen_rx
-	jam 0xe0,rfen_tx
-	nop 10 /* wait LDOs to turn ON*/
-	jam 0x01, rfen_mdm
-	jam 0x3d, rfen_mdm
-	nop 10 /* wait tx blocks to turn ON*/
-	jam 0xb7,rfen_sn
-	nop 10 /* wait tx lo buffer to turn ON*/
-	jam 0x7d, rfen_mdm
-	fetch 1,mem_tx_power
-	beq TX_POWER_0DB,p_set_tx_power_0db
-//	beq TX_POWER_3DB,p_set_tx_power_3db	
-	beq TX_POWER_5DB,p_set_tx_power_5db
-//	beq TX_POWER_f3DB,p_set_tx_power_f3db	
-	beq TX_POWER_f5DB,p_set_tx_power_f5db
-	beq TX_POWER_PAIR,p_set_tx_power_pair
-	branch p_set_tx_power_0db
+p_mouse_start_discovery:
+	call p_mouse_tx_power_init
+	jam 0,mem_mouse_clear_sensor_data_flag
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,p_mouse_start_discovery_norandom
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,p_mouse_start_discovery_norandom
+ifdef BLE
+	call p_mouse_load_eeprom_random_addr_increase_count
+	fetcht 2,mem_random_addr_increase_count
+	increase 1,temp
+	storet 2,mem_random_addr_increase_count
+	storet 2,mem_le_lap+1
+	call p_mouse_store_eerpom_random_addr_increase_count
+	random pdata
+	store 1,mem_le_lap
+endif
+p_mouse_start_discovery_norandom:
+	call app_lpm_mult_disable
+	fetch 2,mem_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	jam 6,mem_connection_options
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	store 2,mem_mouse_direct_timer
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	fetch 1,mem_device_option
+	isolate1 MODE_4_MOUSE,pdata
+	call p_check_51cmd_adv,true
+	branch mouse_start_discovery_norandom+13
 
-p_set_tx_power_0db:
-	call p_rx_low_sens
-	jam 0xba,0x894b
-	jam 0xd0,0x8955
-	jam 0xe0,0x8956
-	jam 0x88,0x8957
-	jam 0x6c,0x8958
-	jam 0x10,0x8959
-	branch set_tx_power_0db	
+p_check_51cmd_adv:
+	jam 0,mem_mouse_le_reconnect_flag
+	call p_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED |ADV_FLAG_LIMITED_DISCOVERABLE
+	istore 1,contr
+	branch check_51cmd_adv
 
-//p_set_tx_power_3db:
-//	call p_rx_high_sens
-//	jam 0xba,0x894b
-//	jam 0xd0,0x8955
-//	jam 0xe0,0x8956
-//	jam 0x88,0x8957
-//	jam 0x3c,0x8958
-//	jam 0x10,0x8959
-//	branch set_tx_power_3db
-	
-p_set_tx_power_5db:
-	call p_rx_high_sens
-	jam 0xba,0x894b
-	jam 0xd0,0x8955
-	jam 0xe0,0x8956
-	jam 0x88,0x8957
-	jam 0x3c,0x8958
-	jam 0x10,0x8959
-	branch set_tx_power_5db
+p_mouse_stop_discovery:
+	setarg 0
+	store 2,mem_mouse_discovery_timer
+	call p_mouse_sensor_poweron		//clear sensor data,confirm the motion pin high
+	branch mouse_stop_discovery+1
 
-//p_set_tx_power_f3db:
-//	call p_rx_low_sens
-//	jam 0xba,0x894b
-//	jam 0xd0,0x8955
-//	jam 0xc0,0x8956
-//	jam 0x88,0x8957
-//	jam 0x6c,0x8958
-//	jam 0x10,0x8959
-//	branch set_tx_power_f3db
-	
-p_set_tx_power_f5db:
-	call p_rx_low_sens
-	jam 0xba,0x894b
-	jam 0xd0,0x8955
-	jam 0xc0,0x8956
-	jam 0x88,0x8957
-	jam 0x6c,0x8958
-	jam 0x10,0x8959
-	branch set_tx_power_f5db
+ifdef BLE
+p_le_slave_match:
+	fetch 1,mem_le_md_count
+	pincrease 1
+	store 1,mem_le_md_count
+	beq LE_MD_MAX_COUNT,le_slave_cont
+	call le_acknowledge
+	call le_prepare_tx
+	call power_ctrl_start
+	branch le_slave_match+7
 
-p_rx_low_sens:
-	jam 0x5b,0x894c
-	jam 0x96,0x894d
-	jam 0x2c,0x894e 
-	jam 0x46,0x894f
+p_le_next_adv_channel:
+	fetch 1,mem_le_ch_mapped
+	increase 1,pdata
+	store 1,mem_le_ch_mapped
+	rtnne 40
+	jam 37,mem_le_ch_mapped
 	rtn
 
-p_rx_high_sens:
-	jam 0xfb,0x894c 
-	jam 0xef,0x894d
-	jam 0xec,0x894e 
-	jam 0x5e,0x894f
+p_le_receive_skip:
+	call save_rssi
+	call p_rssi_signal
+	branch le_receive_skip+2
+
+p_le_update_param:
+	call p_mouse_le_conn_param_check
+	branch le_update_param+8
+p_mouse_le_lpm_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+p_mouse_le_conn_param_lpm_enable:
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
 	rtn
-		
-p_set_tx_power_pair:	//50-100cm distance
-	jam 0xba,0x894b
- 	jam 0xc2,0x8956
- 	jam 0xd0,0x8955
-	rtn	
+p_mouse_le_conn_param_lpm_disable:
+	jam LE_LPM_DISABLE,mem_mouse_le_conn_param_reject
+	rtn
+p_mouse_le_conn_param_check:
+	fetch 1,mem_le_new_conninterval
+	sub pdata,LE_INTERVAL_15MS,null
+	nbranch p_mouse_le_conn_param_lpm_disable,positive
+	fetch 1,mem_le_new_connslavelatency
+	fetcht 1,mem_lpm_mult_init
+	isub temp,null
+	branch p_mouse_le_lpm_mult_reinit,positive
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult
+	branch p_mouse_le_conn_param_lpm_enable
 
-p_shutdown_radio:
-	force 8,radio_ctrl
-	branch shutdown_radio+1
+p_le_prepare_tx:
+	fetch 1,mem_le_arq
+	bbit1 wak,p_le_prepare_tx_wak
+	call power_ctrl_pac_succ_incrs	
+	fetch 1,mem_empty_count
+	nbranch p_le_send_empyt,blank
+	fetch 1,mem_le_state 
+	bbit0 lestate_encryption,p_le_tx_4
+	fetch 1,mem_le_rxbuf+1  
+	branch p_le_tx_4,blank  
+	branch le_send_empty      // send empty data when got non empty packet
+p_le_send_empyt:
+	fetch 1,mem_empty_count
+	increase -1,pdata
+	store 1,mem_empty_count
+	branch le_send_empty
+p_le_tx_4:	
+	fetch 1,mem_le_pairing_state
+	bne FLAG_LE_PAIRING_AFTER_AUTH,p_in_le_tx_4
+	jam 3,mem_empty_count
+p_in_le_tx_4:
+	call le_fifo_check_nearly_full
+	call p_mouse_data_pull,blank
+	branch le_prepare_tx+4
 
-/* ================================== 24g common functions ============================= */
-p_g24_timer_check:
-	call disable_user
-	fetcht 4,mem_24g_tx_btclk
-	copy clkn_bt,pdata
-	isub temp,null
-	ncall g24_timer_timeout,positive
-	copy pdata,regb
-	fetch 4,mem_24g_tx_btclk
-	fetcht 1,mem_24g_interval
-	iadd temp,temp
-	copy regb,pdata
-	isub temp,null
-	nrtn positive
-	set0 28,pdata
-	store 4,mem_24g_tx_btclk
-	branch enable_user
+p_le_prepare_tx_wak:
+	call p_le_check_tx_retransmit_setmd
+	branch p_le_power_ctrl_pac_succ_decrs
 
-p_rssi_noise:
-	call save_rssi
+p_le_check_tx_retransmit_setmd:
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+	fetch 1,mem_mouse_data_queue_num
 	rtn blank
-	fetcht 1,mem_rssi_noise_index
-	arg mem_rssi_noise_buffer,rega
-	call p_rssi_store
-	storet 1,mem_rssi_noise_index
-	rtn
-	
-p_rssi_store:
-	copy rega,pdata
-	iadd temp,contw
-	fetch 1,mem_rssi
-	istore 1,contw
-	increase 1,temp
-ifdef DONGLE
-	and_into RSSI_BUF_LEN_NOISE,temp
-endif
-ifdef MOUSE
-	and_into RSSI_BUF_LEN_SIGNAL,temp
-endif
-	rtn
-p_rssi_average:
-	arg 0,temp
-ifdef DONGLE
-	arg RSSI_BUF_LEN_NOISE+1,loopcnt
-endif
-ifdef MOUSE
-	arg RSSI_BUF_LEN_SIGNAL+1,loopcnt
+	fetch 1,mem_le_txlen
+	rtn blank
+	fetch 1,mem_le_txheader
+	set1 md,pdata
+	store 1,mem_le_txheader
+	call le_set_md
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	setarg MISC_LE_RETRANSMIT_MD
+	store 2,mem_debuglog_dataval
+	call debuglog_push	
 endif
-	copy rega,contr
-ifdef DONGLE
-	branch rssi_average_loop
 endif
-ifdef MOUSE
-p_rssi_average_loop:
-	ifetch 1,contr
-	iadd temp,temp
-	loop p_rssi_average_loop
-	rshift3 temp,pdata
-	copy pdata,temp
-	rtnmark0 mark_24g
-	//2BCD
-	div pdata,10
-	call wait_div_end
-	quotient pdata
-	lshift4 pdata,pdata
-	remainder temp
-	ior temp,temp
 	rtn
+
+	
+	
+p_le_power_ctrl_pac_succ_decrs:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	setarg MISC_LE_RETRANSMIT
+	store 2,mem_debuglog_dataval
+	call debuglog_push	
 endif
+endif
+	branch power_ctrl_pac_succ_decrs
+
+p_mouse_le_reconn_write_enable_timer_reinit:
+	fetch 1,mem_mouse_le_reconnect_flag
+	rtn blank
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtneq 0x03
+	jam 10,mem_le_start_encrypt_timer
 	rtn
 
-p_g24_update_addr_and_synccrc8:	
-	store 4,mem_24g_addr
+p_le_parse_l2cap:
+	ifetch 2,contr
+	beq LE_L2CAP_CID_ATT,p_le_parse_att
+	beq LE_L2CAP_CID_SMP,p_le_parse_smp
+	branch le_parse_l2cap+11
+p_le_parse_att:
+	call store_contr
+	call p_mouse_le_reconn_write_enable_timer_reinit
+	call get_contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_BY_GROUP_TYPE_REQUEST,p_le_parse_att_read_by_group_type_request
+	rshift8 pdata,temp
+	sub temp,0x24,null
+	branch le_parse_att+2,positive
+	arg mem_mouse_le_uuid_sup,temp
+	storet 2,mem_ui_le_uuid_table
+	call le_parse_att+2
+	setarg 0x8e7a
+	store 2,mem_ui_le_uuid_table
+	rtn
 
-//output: 1BYTE crc8
-p_g24_syncword_crc8:
-	arg 0,rega
-	arg 4,loopcnt
-	arg mem_24g_addr,contr
-p_g24_syncword_crc8_loop:
+p_le_parse_att_read_by_group_type_request:
+	call le_parse_att_read_by_group_type_request
+	call le_fifo_get_last_tx_ptr
+	increase 7,contr
 	ifetch 1,contr
-	iadd rega,rega
-	loop p_g24_syncword_crc8_loop
-	copy rega,pdata
-	store 2,mem_24g_syncword
-	fetch 1,mem_24g_syncword
-	fetcht 1,mem_24g_syncword+1
-	iadd temp,pdata
-	store 1,mem_24g_syncword_crc8
+	rtnne ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+	increase 5,contr
+	ifetch 2,contr
+	arg UUID_SERVICE_HIDS,temp
+	isub temp,null
+	nrtn zero
+	increase -4,contr
+	setarg 0x2b
+	istore 2,contr
 	rtn
 
+p_le_parse_smp:
+	ifetch 1,contr
+	beq SMP_PAIRING_FAILED,p_le_parse_smp_pairing_failed
+	branch le_parse_smp+1
+p_le_parse_smp_pairing_failed:
+	call le_parse_smp_pairing_failed
+	fetch 1,mem_le_state	//disable update conn param
+	set0 lestate_update_param,pdata
+	store 1,mem_le_state
+	branch le_parse_terminate_ind
+
+p_le_adv_not_match:
+	fetch 1,mem_le_ch_mapped
+	bne 39,le_adv_loop
+	call p_le_adv_random_delay
+	arg le_adv_interval_timer,queue
+	fetch 2,mem_le_adv_interval
+	branch timer_init
+p_le_adv_random_delay:
+	random pdata
+	arg 0x1ff,temp
+	iand temp,pdata
+	add pdata,250,pdata
+	branch delay
 
-p_g24_transmit_prep:
-ifdef P24G_LOG
-	fetch 1,mem_24g_paccnt
-	increase 1,pdata
-	store 1,mem_24g_paccnt
+p_le_lpm_setmult:
+	disable wake
+	branch p_le_lpm_set_mult_attempt,attempt
+	nbranch le_lpm_lost,match
+p_le_lpm_set_mult_attempt:
+	call lpm_match
+	fetch 2,mem_rx_window_sniff
+	store 2,mem_le_receive_window
+	fetch 1,mem_le_connect_status_flag
+	compare 3,pdata,3
+	nbranch lpm_mult_short,true
+	branch le_lpm_set_mult_attempt+3
+
+p_le_mouse_bb_event_connect_complete:
+	fetch 1,mem_mouse_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_att_handle
+	sub pdata,26,pdata
+	nrtn zero
+	branch mouse_le_write_enable
 endif
 
-// total length
-	fetch 1,mem_24g_datalen
-	increase 2,pdata
-	store 1,mem_24g_txlen
-// data type
-	fetch 1,mem_24g_data_type
-	store 1,mem_24g_txpayload
-//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
-	fetch 1,mem_24g_datalen
-	lshift3 pdata,pdata
-	fetcht 1,mem_24g_pid
-	and temp,0x03,temp
-	lshift temp,temp
-	ior temp,pdata
-	fetcht 1,mem_24g_no_ack
-	iadd temp,pdata
-	istore 1,contw
-//prepare payload data
-	fetch 1,mem_24g_datalen
-	iforce loopcnt
-	arg mem_24g_txbuf,contr
-	branch memcpy
+p_twspi_reset:
+	hfetch 1,core_gpio_out3
+	and_into 0xfd,pdata
+	hstore 1,core_gpio_out3
+	hfetcht 1,core_gpio_oe3
+	or_into 0x2,temp
+	hstoret 1,core_gpio_oe3
+	call twspi_disable
+	and_into 0xfd,temp
+	nop 13
+	call twspi_enable
+	hstoret 1,core_gpio_oe3
+	rtn
+
+
+
+ifdef CLASSIC_BT
+p_page_wait_fhs_reply_ok:
+ 	fetch 1, mem_page_rcv_fhs
+	increase 1,pdata
+	store 1, mem_page_rcv_fhs
+	call prepare_newconn
+p_master_newconn_loop:
+ 	set1 mark_first_packet,mark
+	call master_newconn_once
+	branch p_newconn_poll_responded,sync
+	set0 mark_first_packet,mark
+	call new_conn_timeout
+	nbranch p_master_newconn_loop,blank
+	branch page_restart	
+
+p_newconn_poll_responded:
+	set0 mark_first_packet,mark
+	branch newconn_poll_responded
+
+p_role_switch_master:
+	call role_switch_check
+	nrtn user
+p_wait_role_switch_anchor:
+	disable user
+	jam param_newconnto,mem_newconnto_counter
+	set0 mark_fhs_already_good,mark
+	set0 mark_role_switch_receive_fhs,mark
+p_roles_waitfhs_loop:
+	call rf_setup_time_master_slot
+	call master_recv_packet
+	bmark1 mark_fhs_already_good,p_roles_replyto_fhs
+	call new_conn_timeout
+	nbranch p_roles_waitfhs_loop,blank
+	bmark1 mark_role_switch_receive_fhs,p_roles_replyto_fhs1
+	branch role_switch_fail_master
+	
+p_roles_replyto_fhs:
+	call rf_setup_time_slave_slot
+	arg type_id,type
+	call master_send_packet
+	set1 mark_role_switch_receive_fhs,mark
+	set0 mark_fhs_already_good,mark
+	force 1,am_addr	/* process_fhs will update am_addr, so slave will not receive fhs succeffully sometimes */
+	jam 2,mem_newconnto_counter
+	branch p_roles_waitfhs_loop
+
+p_roles_replyto_fhs1:
+	fetch 4,mem_clke_bt		//wait for 2 fhs,need 2.5ms
+	pincrease 8
+	store 4,mem_clke_bt
+	branch roles_replyto_fhs+4
+
+p_process_dmh:
+	bmark1 mark_first_packet,end_of_packet
+	branch process_dmh+1
+
+p_prepare_tx:
+	fetch 1,mem_state
+	isolate1 state_inconn,pdata
+	call p_bt_power_ctrl,true
+	branch prepare_tx+1
+p_bt_power_ctrl:
+	fetch 1,mem_arq
+	isolate1 wack,pdata
+	call power_ctrl_pac_succ_decrs,true
+	ncall power_ctrl_pac_succ_incrs,true
+	branch power_ctrl_start
+
+p_slave_conn_recv_packet:
+	call slave_receive_master_slot
+	nbranch shutdown_radio,sync
+	call save_rssi
+	call p_rssi_signal
+	branch slave_conn_recv_packet+4
+
+p_lpm_dispatch:
+	rtnmark1 mark_24g
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_lpm_mode
+	rtn blank
+	fetch 1,mem_ssp_enable
+	branch p_lpm_dispatch_next,blank
+	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
+	rtn blank
+p_lpm_dispatch_next:
+	fetch 1,mem_le_sc_calc
+	nrtn blank
+	call lpm_check_wake_lock
+	nrtn blank
+	fetch 1,mem_context
+	compare 3,pdata,0x7							//sco won't sleep 
+	nbranch lpm_dispatch_unconn,true
+	fetch 2,mem_context + coffset_tsniff	//role switch 
+	arg 0xffff,temp
+	isub temp,null
+	rtn zero
+	branch lpm_dispatch_next+9
 
-p_g24_ch:
-	fetcht 1,mem_24g_current_ch_number
-	call p_g24_ch_map_size
-	storet 1,mem_24g_current_ch_number
-	rtn
+p_app_bt_start_reconnect:
+	branch app_bt_start_reconnect+3
 
-p_g24_ch_map_size:
-	call p_g24_ch_calc
-	increase 1,temp
-	and_into 3,temp //map size =4
-	rtn
+p_mouse_bb_disconnected:
+	jam 0,mem_mouse_enter_sniff_count
+	jam 0x0e,mem_sniff_param_interval	//115Hz
+	call mouse_bb_discon_clear_stack
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	bbit1 APP_DISC_AFTER_PAIRING,p_mouse_event_light_state_pairing
+	bbit1 APP_DISC_AFTER_RECONN,p_mouse_event_light_state_hibernate
+	bbit1 APP_DISC_AFTER_SNIFF,p_mouse_event_light_state_hibernate
+	branch mouse_start_discovery
 	
-p_g24_ch_calc:
-	fetch 1,mem_24g_addr	
-	and_into 0x03,pdata
-	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
-	setarg mem_24g_ch_map1
-	iadd rega,pdata
-	iadd temp,contr
+p_mouse_event_light_state_pairing:
+	bbit1 APP_DISC_AFTER_HANDSHAKE,p_mouse_event_light_state_hibernate
+	bbit1 APP_DISC_AFTER_SNIFF,p_mouse_event_light_state_hibernate
+	branch mouse_start_discovery
+p_mouse_event_light_state_hibernate:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	call app_disconn_reason_clear
+	call mouse_check_key_gpio
+	beq MOUSE_LMR_BUTTON,p_mouse_null_enter_hibernate_count
+	branch app_bb_hibernate
+
+p_hid_rx_process:
+	fetch 2,mem_l2cap_payload_ptr
+	copy pdata,contr
 	ifetch 1,contr
-	store 1,mem_24g_ch
+	store 1,mem_l2cap_rcv
+	and pdata,0x0f,temp
+	rshift4 pdata,pdata //hidtype
+	beq hid_type_set_protocol,p_hid_rx_set_protocol
+	branch hid_rx_process+6
+p_hid_rx_set_protocol:
+	call hid_rx_process_handshake
+	jam 0,mem_mouse_bt_boot_mode
+	fetch 1,mem_l2cap_rcv
+	isolate1 0,pdata
+	rtn true
+	jam 1,mem_mouse_bt_boot_mode	//boot mode
 	rtn
 
-p_g24_prep:
-	disable enable_crc
-	disable enable_white
-	setarg 0x555555
-	iforce crc24_init
-	fetch 1,mem_24g_ch
-	reverse pdata,temp
-	set1 1,temp
-	rshift temp,white_init
+p_parse_lmp_accepted:
+	fetch 1,mem_rxbuf+1
+	store 1,mem_lmi_accepted_opcode
+	beq LMP_SWITCH_REQ,p_parse_lmp_accepted_switch
+	branch parse_lmp_accepted+3
+p_parse_lmp_accepted_switch:
+	call parse_lmp_accepted_switch
+	jam 1,mem_bt_rcvd_switch_req_accept
+	fetch 1,mem_bt_send_lmp_setup_complete
+	rtn blank
+	jam 2,mem_bt_send_lmp_setup_complete
 	rtn
 
-p_g24_receive_packet:
-	call le_enable
-	fetch 4,mem_24g_addr
-	iforce access
-	call set_sync_on
-	fetcht 1,mem_24g_ch
-	call set_freq_rx
-	setarg param_pll_setup
-	call sleep
-	call rf_rx_enable
-p_g24_receive_rxon:
 
-ifdef RF_DEBUG
-	call test_h_l_h
+p_send_lmp:
+	disable user
+	call lmo_fifo_process
+
+ifdef DEBUGLOG
+ifdef DEBUGLOG_SEND_LMP
+	setarg DEBUGLOG_DTYPE_SEND_LMP
+	store 2,mem_debuglog_datatype
+//	fetch 1,mem_lmi_opcode
+//	store 1,mem_debuglog_dataval+1
+//	fetch 1,mem_lmp_to_send
+//	store 1,mem_debuglog_dataval
+	fetch 1,mem_lmp_to_send
+	store 2,mem_debuglog_dataval
+	ncall debuglog_push,blank
+endif
 endif
+	
+	fetch 1,mem_lmp_to_send
+	rtn blank
+	bbit1 7,p_send_lmp_escape
+	beq LMP_ACCEPTED,p_send_lmp_accepted
+	beq LMP_SETUP_COMPLETE,p_send_lmp_setup_complete
+	beq LMP_SNIFF_REQ, p_send_lmp_sniff_req
+	branch send_lmp0
+p_send_lmp_escape:
+	beq LMP_EXT_FEATURES_RES,p_send_lmpext_features_res
+	beq LMP_EXT_FEATURES_REQ,p_send_lmpext_features_req	
+	branch send_lmp_escape
+p_send_lmpext_features_res:
+	call p_check_ssp_enable
+	fetch 1,mem_lmp_to_send
+	branch send_lmpext_features_res
+p_send_lmpext_features_req:
+	call p_check_ssp_enable
+	fetch 1,mem_lmp_to_send
+	branch send_lmpext_features_req
+p_check_ssp_enable:
+	fetch 1,mem_ssp_enable 
+	branch ssp_disable,blank
+	branch ssp_enable
 
-	call p_g24_prep
-	disable user3
-	enable decode_fec0
-	enable is_rx
-	disable is_tx
-	enable swfine
-	fetch 2,mem_24g_rx_window
-	iforce stop_watch
-	correlate null,timeout
-	nbranch p_g24_sync_timeout,sync
+p_send_lmp_setup_complete:
+	jam 1,mem_bt_send_lmp_setup_complete
+	branch send_lmp_setup_complete
 
-ifdef RF_DEBUG
-	call test_gpio_low
-	call test_gpio_high
-endif
+p_send_lmp_sniff_req:
+	jam 4,mem_mouse_bt_send_first_package_timer
+	branch send_lmp_sniff_req
+	
 
-	disable decode_fec0
-	enable decode_fec1
-	enable enable_white
-	enable enable_crc
-	call p_g24_receive_byte
-	store 1,mem_24g_get_syncword_crc8
-	fetcht 1,mem_24g_syncword_crc8
-	isub temp,null
-	nbranch p_g24_end_of_packet,zero
-	call p_g24_receive_byte
-	store 1,mem_24g_rxbuf	//device id
-	fetch 1,mem_24g_mode
-	sub pdata,rx_24g,null
-	branch p_g24_receive_skip,zero
-	fetch 1,mem_24g_rxbuf
-	fetcht 1,mem_24g_data_type
-	icompare bits_data,temp
-	nbranch p_g24_end_of_packet,true
-p_g24_receive_skip:
-	call p_g24_receive_byte
-	istore 1,contw
-	rshift3 pdata,pdata
-	and pdata,0x1f,loopcnt	//max payload: 32bytes
-	branch p_g24rx_nopayload,zero
-p_g24rx_loop:
-	call p_g24_receive_byte
+p_send_lmp_accepted:
+	force 2,pdata
+	call msg_send_lmp
+	fetch 1,mem_lmi_opcode
 	istore 1,contw
-	loop p_g24rx_loop
-p_g24rx_nopayload:
-ifdef MOUSE
-	//receive rssi hex
-	copy contw,rega
-	call p_g24_receive_byte
-	store 1,mem_rssi_hex_received
-	copy rega,contw
+	store 1,mem_lmi_opcode_temp
+	call send_lmp_follow
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_lmi_opcode_temp
+	store 1,mem_debuglog_dataval
+	call debuglog_push	
 endif
-	parse demod,bucket,24
-	enable swfine
-	arg param_sifs,stop_watch	
-	rshift32 pdata,pdata
-	rshift16 pdata,pdata
-	istore 3,contw
-	disable decode_fec1
-ifdef DONGLE
-	call save_rssi
-endif	
-	branch p_g24_end_of_packet,crc_failed
-
-ifdef RF_DEBUG
-	call test_gpio_low
-	call test_gpio_high
 endif
+	fetch 1,mem_lmi_opcode_temp
+	beq LMP_MAX_SLOT_REQ,p_send_lmp_accepted_max_slot_req	//sumsung a5100 patch
+	branch send_lmp_accepted+7
 
-	enable user3
-	fetch 1,mem_last_freq
-	add pdata,0,rega
-	call rf_write_freq
-	disable decode_fec0
-	call set_sync_on
-ifdef DONGLE
+
+p_send_lmp_accepted_max_slot_req:
+	fetch 1,mem_bt_rcvd_switch_req_accept
+	rtn blank
+	jam 0,mem_bt_rcvd_switch_req_accept
+	fetch 1,mem_bt_send_lmp_setup_complete
+	rtnne 2
+	jam 1,mem_bt_send_max_slot_req_accept_after_switch
+	copy clkn_bt,pdata
+	store 4,mem_aurand_send_delay_time
 	rtn
+
+p_process_conn_sm:
+	call lmo_fifo_check
+	nrtn blank
+p_process_conn_sm_continue:
+	fetch 1,mem_conn_sm
+	rtn blank
+ifdef DEBUGLOG
+ifdef DEBUGLOG_CONN_SM
+	call pdata_push
+	setarg DEBUGLOG_DTYPE_CONN_SM
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_conn_sm
+	store 2,mem_debuglog_dataval
+	call pdata_pull
+	call debuglog_push	
 endif
-ifdef MOUSE
-	fetch 1,mem_rssi_hex_received
-	call p_rssi_signal
 endif
-	rtn
+	beq CONN_SM_SEND_CONN_REQ, p_host_create_conn_send_conn_req
+	beq CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION,p_host_creat_conn_wait_switch
+	branch process_conn_sm_continue+2
 
-p_g24_receive_byte:
-	parse demod,bucket,8
-	rshift3 pwindow,pdata
+
+p_host_creat_conn_wait_switch:
+	fetch 1,mem_switch_flag
+	rtneq SWITCH_FLAG_INIT
+	beq SWITCH_FLAG_ACCEPT,p_host_create_conn_switch_accept
+	branch host_creat_conn_wait_switch+3
+p_host_create_conn_switch_accept:
+	rtn master
+p_host_create_conn_auth_pair:
+	/* checking whether or not to do m/s switch */
+	fetch 1,mem_connection_options
+	bbit1 CONNECTION_AUTH,p_host_create_conn_auth_pair_true
+	branch host_create_conn_auth_pair+1
+p_host_create_conn_auth_pair_true:
+	fetch 1,mem_bt_send_lmp_setup_complete
+	beq 1,host_create_conn_auth_pair_true
+	//sumsung a5100 patch
+	fetch 1,mem_link_key_exists
+	branch host_create_conn_auth_pair_nokey,blank
+	fetch 1,mem_lmp_conn_state
+	rtnbit0 SENT_SETUP_COMPLETE
+	rtnbit0 RECEIVED_SETUP_COMPLETE
+	fetch 1,mem_bt_send_max_slot_req_accept_after_switch
+	rtn blank
+	jam 0,mem_bt_send_max_slot_req_accept_after_switch	
+	fetch 4,mem_aurand_send_delay_time
+	arg 20,temp
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nbranch p_bt_send_max_slot_req_accept_after_switch_wait,positive
+	branch host_create_conn_auth
+
+p_bt_send_max_slot_req_accept_after_switch_wait:
+	jam 1,mem_bt_send_max_slot_req_accept_after_switch
 	rtn
+
+p_host_create_conn_send_conn_req:
+	jam 20,mem_mouse_send_switch_req_timer
+	branch host_create_conn_send_conn_req
+
 	
-p_g24_end_of_packet:
-	disable encode_fec1
-	disable decode_fec1
-	call end_of_packet
-ifdef RF_DEBUG
-	call test_gpio_low
+ifdef DEBUGLOG
+p_parse_lmp_opcode:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_PARSE_LMP
+	setarg DEBUGLOG_DTYPE_PARSE_LMP
+	store 2,mem_debuglog_datatype
+//	fetch 1,mem_rxbuf+1
+//	store 1,mem_debuglog_dataval+1 
+//	fetch 1,mem_lmi_opcode2
+//	store 1,mem_debuglog_dataval
+	fetch 1,mem_lmi_opcode2
+	store 2,mem_debuglog_dataval
+	call debuglog_push 
 endif
-	rtn
-
-p_g24_sync_timeout:
-ifdef DONGLE
-	call p_rssi_noise
 endif
-	branch p_g24_end_of_packet
+	branch parse_lmp+21
 
-p_g24_set_freq_tx:
-	call set_sync_on
-	fetcht 1,mem_24g_ch
-	branch set_freq_tx
+p_process_upper_sm_reconn:
+	fetch 1,mem_upper_sm_reconn
+	rtn blank
+ifdef DEBUGLOG
+ifdef DEBUGLOG_UPPER_SM
+	call pdata_push
+	setarg DEBUGLOG_DTYPE_UPPER_SM
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_upper_sm_reconn
+	store 2,mem_debuglog_dataval
+	call pdata_pull
+	call debuglog_push	
+endif
+endif
+	branch process_upper_sm_reconn+3
 
-p_g24_transmit:
-	call le_enable
-	fetch 4,mem_24g_addr
-	iforce access
-	call p_g24_prep
-	call p_g24_set_freq_tx
-	set1 TXGFSK,radio_ctrl
-	enable encode_fec0
-	enable is_tx
-	disable is_rx
+endif	
 
-ifdef RF_DEBUG
-	call test_gpio_high
 endif
 	
-	rshift16 access,pdata
-	rshift8 pdata,pdata
-	rshift4 pdata,pdata
-	inject mod,40
-	disable encode_fec0
-	enable encode_fec1
-	enable enable_white
-	enable enable_crc
-	fetch 1,mem_24g_syncword_crc8
-	inject mod,8
-	fetch 1,mem_24g_txlen
-	iforce loopcnt
-	arg mem_24g_txpayload,contr
-p_g24tr_loop:
-	ifetch 1,contr
-	inject mod,8
-	loop p_g24tr_loop
-ifdef DONGLE
-	fetch 1,mem_rssi_hex
-	inject mod,8
+ifdef DEBUGLOG
+p_ui_ipc_send_event:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_EVENT
+	call pdata_push
+	setarg DEBUGLOG_DTYPE_EVENT
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_fifo_temp
+	store 2,mem_debuglog_dataval
+	call pdata_pull
+	call debuglog_push	
 endif
+endif
+	branch ui_ipc_send_event+1
 
-ifdef P24G_LOG	
-	fetch 1,mem_tx_power
-	inject mod,8
-	fetch 1,mem_rssi_avg_received
-	inject mod,8
-	fetch 1,mem_24g_paccnt
-	inject mod,8
+p_ui_ipc_send_cmd:
+ifdef DEBUGLOG
+ifdef DEBUGLOG_CMD
+	call pdata_push
+	setarg DEBUGLOG_DTYPE_CMD
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_fifo_temp
+	store 2,mem_debuglog_dataval
+	call pdata_pull
+	call debuglog_push
+endif
+endif
+	branch ui_ipc_send_cmd+1
 endif
 
-	enable enable_parity
-	inject mod,24	//crc
-	disable enable_parity
-	until null,tx_clear
-	nop 100
-	disable encode_fec0
-	disable encode_fec1
+power_ctrl_pac_succ_cnt_init:
+	jam 1,mem_power_ctrl_level
+	jam 0,mem_power_ctrl_pac_succ_cnt
 	rtn
-
-
-ifdef RF_DEBUG
-test_gpio_init:
-	arg TEST_GPIO,temp
-	call gpio_config_output
-test_gpio_low:
-	arg TEST_GPIO,temp
-	call gpio_out_active
-	nop 10
+power_ctrl_pac_succ_incrs:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	increase 1,pdata
+	store 1,mem_power_ctrl_pac_succ_cnt
 	rtn
-test_gpio_high:
-	arg TEST_GPIO,temp
-	call gpio_out_inactive
-	nop 10
+power_ctrl_pac_succ_decrs:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	sub pdata,2,null
+	ncall power_ctrl_pac_succ_cnt_reinit,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	rtneq 0
+	increase -1,pdata
+	store 1,mem_power_ctrl_pac_succ_cnt
+	rtn
+power_ctrl_pac_succ_cnt_reinit:
+	jam 3,mem_power_ctrl_pac_succ_cnt
 	rtn
 
-test_h_l:
-	call test_gpio_high
-	branch test_gpio_low
-test_h_l_h:
-	call test_gpio_high
-	call test_gpio_low	
-	branch test_gpio_high
+power_ctrl_start:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	rtnbit1 UI_STATE_BT_RECONNECT
+	rtnbit1 UI_STATE_BT_DISCOVERY
+	
+	arg mem_rssi_signal_buf,rega
+	call p_rssi_average
+	storet 1,mem_rssi_avg_received
+
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
+	setarg DEBUGLOG_DTYPE_MISC
+	store 2,mem_debuglog_datatype
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	store 1,mem_debuglog_dataval
+	fetch 1,mem_rssi_avg_received
+	store 1,mem_debuglog_dataval+1
+	call debuglog_push	
+endif
 endif
+	setarg RSSI_DIS_MAX_24G
+	bmark1 mark_24g,power_ctrl_start_next
+	setarg RSSI_DIS_MAX_BLE
+power_ctrl_start_next:	
+	isub temp,null
+	nbranch power_ctrl_txpower_incrs_force,positive
 
-p_mouse_data_init:
-	jam 7,mem_mouse_data_queue	//data length
-	jam 4,mem_mouse_data_queue+1	//fifo depth
-	setarg mem_mouse_data_queue
-	store 2,mem_queue_ptr
-	branch queue_init
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	sub pdata,2,null
+	nbranch power_ctrl_txpower_decrs_check,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	beq 0,power_ctrl_txpower_incrs
+	rtn
 
-p_mouse_data_push:
-	arg mem_mouse_key,rega
-	call queue_push
-	call p_mouse_queue_increase,user
-	
+power_ctrl_txpower_decrs_check:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	rtnne 32
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_decrs:
+	fetcht 1,mem_rssi_avg_received
+	setarg RSSI_DIS_MIN_24G
+	bmark1 mark_24g,power_ctrl_txpower_decrs_next
+	setarg RSSI_DIS_MIN_BLE	
+power_ctrl_txpower_decrs_next:	
+	isub temp,null
+	nrtn positive
+	fetch 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+	increase -1,pdata
+	store 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+power_ctrl_decrs_level1:
+power_ctrl_incrs_level1:	//0dBm
 ifdef DEBUGLOG
 ifdef DEBUGLOG_MISC
 	setarg DEBUGLOG_DTYPE_MISC
 	store 2,mem_debuglog_datatype
-	setarg MISC_LOST_MOUSEDATA
-	store 2,mem_debuglog_dataval
-	nbranch debuglog_push,user
-
-	setarg MISC_PUSH_MOUSEDATA
+	setarg MISC_TXPOWER_1
 	store 2,mem_debuglog_dataval
 	call debuglog_push
 endif
 endif
-	rtn
-p_mouse_queue_increase:
-	fetch 1,mem_mouse_data_queue_num
-	increase 1,pdata
-	store 1, mem_mouse_data_queue_num
-	rtn
-	
-p_mouse_data_pull:
-	arg mem_mouse_key,rega
-	call queue_pop
-	branch p_mouse_fill_data_le,user
+	jam TX_POWER_0DB,mem_tx_power
 	rtn
 
-p_mouse_fill_data_le:
+power_ctrl_txpower_incrs_force:
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_incrs:
+	fetch 1,mem_power_ctrl_level
+	beq 2,power_ctrl_incrs_level2
+	increase 1,pdata
+	store 1,mem_power_ctrl_level
+	beq 1,power_ctrl_incrs_level1
+power_ctrl_incrs_level2:	//+6dBm
 ifdef DEBUGLOG
 ifdef DEBUGLOG_MISC
 	setarg DEBUGLOG_DTYPE_MISC
 	store 2,mem_debuglog_datatype
-	setarg MISC_PULL_MOUSEDATA
+	setarg MISC_TXPOWER_2
 	store 2,mem_debuglog_dataval
 	call debuglog_push
+endif
+endif
 
+	jam TX_POWER_5DB,mem_tx_power
+	rtn
+	
+power_ctrl_decrs_level0: //-5dBm
+ifdef DEBUGLOG
+ifdef DEBUGLOG_MISC
 	setarg DEBUGLOG_DTYPE_MISC
 	store 2,mem_debuglog_datatype
-	fetch 1,mem_mouse_x
-	store 1,mem_debuglog_dataval
-	fetch 1,mem_mouse_y
-	store 1,mem_debuglog_dataval+1
-	call debuglog_push	
+	setarg MISC_TXPOWER_0
+	store 2,mem_debuglog_dataval
+	call debuglog_push
 endif
 endif
-	call le_clear_md
-	fetch 1,mem_mouse_data_queue_num
-	sub pdata,1,null
-	ncall le_set_md,positive
-	fetch 1,mem_mouse_data_queue_num
-	rtn blank
-	increase -1,pdata
-	store 1, mem_mouse_data_queue_num
-	branch mouse_fill_data_le
+	jam TX_POWER_f5DB,mem_tx_power
+	rtn
+
+endif
+
+p_set_freq_tx:
+	storet 1,mem_last_freq
+	add temp,0,rega			/* index to frequency */
+	call rf_write_freq
+	setarg param_pll_setup	//128us
+	call sleep
+p_rf_tx_enable:
+	jam 0x1,rfen_adc
+	jam 0x3c,rfen_rx
+	jam 0xe0,rfen_tx
+	nop 10 /* wait LDOs to turn ON*/
+	jam 0x01, rfen_mdm
+	jam 0x3d, rfen_mdm
+	nop 10 /* wait tx blocks to turn ON*/
+	jam 0xb7,rfen_sn
+	nop 10 /* wait tx lo buffer to turn ON*/
+	jam 0x7d, rfen_mdm
+	fetch 1,mem_tx_power
+//	beq TX_POWER_0DB,p_set_tx_power_0db
+//	beq TX_POWER_3DB,p_set_tx_power_3db	
+	beq TX_POWER_5DB,p_set_tx_power_5db
+//	beq TX_POWER_f3DB,p_set_tx_power_f3db	
+	beq TX_POWER_f5DB,p_set_tx_power_f5db
+	beq TX_POWER_PAIR,p_set_tx_power_pair
+//	branch p_set_tx_power_0db
+p_set_tx_power_0db:
+	call p_rx_low_sens
+//	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xe0,0x8956
+//	jam 0x88,0x8957
+	jam 0x6c,0x8958
+//	jam 0x10,0x8959
+	branch set_tx_power_0db	
+
+//p_set_tx_power_3db:
+//	call p_rx_high_sens
+//	jam 0xba,0x894b
+//	jam 0xd0,0x8955
+//	jam 0xe0,0x8956
+//	jam 0x88,0x8957
+//	jam 0x3c,0x8958
+//	jam 0x10,0x8959
+//	branch set_tx_power_3db
+	
+p_set_tx_power_5db:
+	call p_rx_high_sens
+//	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xe0,0x8956
+//	jam 0x88,0x8957
+	jam 0x3c,0x8958
+//	jam 0x10,0x8959
+	branch set_tx_power_5db
+
+//p_set_tx_power_f3db:
+//	call p_rx_low_sens
+//	jam 0xba,0x894b
+//	jam 0xd0,0x8955
+//	jam 0xc0,0x8956
+//	jam 0x88,0x8957
+//	jam 0x6c,0x8958
+//	jam 0x10,0x8959
+//	branch set_tx_power_f3db
+	
+p_set_tx_power_f5db:
+	call p_rx_low_sens
+//	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xc0,0x8956
+//	jam 0x88,0x8957
+	jam 0x6c,0x8958
+//	jam 0x10,0x8959
+	branch set_tx_power_f5db
+
+p_rx_low_sens:
+	jam 0x5b,0x894c
+	jam 0x96,0x894d
+	jam 0x2c,0x894e 
+	jam 0x46,0x894f
+	rtn
+
+p_rx_high_sens:
+	jam 0xfb,0x894c 
+	jam 0xef,0x894d
+	jam 0xec,0x894e 
+	jam 0x5e,0x894f
+	rtn
+		
+p_set_tx_power_pair:	//50-100cm distance
+//	jam 0xba,0x894b
+ 	jam 0xc2,0x8956
+ 	jam 0xd0,0x8955
+	rtn	
+
+p_shutdown_radio:
+	force 8,radio_ctrl
+	branch shutdown_radio+1
+
 
 ifdef DEBUGLOG 
 pdata_push:
@@ -3940,65 +2938,201 @@
 	istore 8,contwu
 	call uartd_send
 	branch pdata_pull 
-endif	
-/*
-p_le_savelist:
-	fetch 1,mem_mouse_key
-	bbit0 0,p_le_savelist1
-	fetch 1,mem_lpm_mode
-	bbit1 1,p_le_savelist1
-	jam 0,mem_seqi
-p_le_savelist1:
-	fetch 4,mem_sync_clke
-	store 4,mem_pdatatemp
-	deposit auxcnt
-	istore 1,contw
-	fetch 1,mem_le_ch_mapped
-	istore 1,contw
-	fetch 2,mem_le_event_count
-	arg 0x0fff,contr
-	iand contr,pdata
-	setflag match,15,pdata
-	setflag wake,14,pdata
-	setflag sync,13,pdata
-	setflag attempt,12,pdata
-	istore 2,contw
+endif
+
+ifdef RF_DEBUG
+test_gpio_init:
+	arg TEST_GPIO,temp
+	call gpio_config_output
+test_gpio_low:
+	arg TEST_GPIO,temp
+	call gpio_out_active
+	nop 10
+	rtn
+test_gpio_high:
+	arg TEST_GPIO,temp
+	call gpio_out_inactive
+	nop 10
+	rtn
+
+test_h_l:
+	call test_gpio_high
+	branch test_gpio_low
+test_h_l_h:
+	call test_gpio_high
+	call test_gpio_low	
+	branch test_gpio_high
+endif
 
+ifdef MOUSE_SMOOTHER
+//notice: need to call p_mouse_drawing_optima_init when waked from mult
+p_mouse_drawing_optima_init:
+	arg 13,loopcnt
+	arg mem_mouse_asm_flag,contw
+	branch clear_mem
 
-p_save1:
-	call p_savelist1
-	fetch 1,mem_context
-	rtnbit0 state_inconn
-	fetch 1,mem_lpm_mode
-	rtnbit1 1
-	fetch 1,mem_mouse_z
+p_mouse_drawing_optima:
+	fetch 4,mem_mouse_x
 	rtn blank
-	jam 3,mem_lpm_mode
-	jam 0,mem_seqi
+	call p_mouse_data_abs_check
+	fetch 1,mem_mouse_x_abs
+	copy pdata,rega
+	fetch 1,mem_mouse_y_abs
+	copy pdata,regb
+	setarg 0x06	//asm_flag enable condition
+	call p_mouse_data_greater_than_check
+	setarg 0x03	//asm_flag disable condition
+	call p_mouse_data_less_than_check
+	fetch 1,mem_mouse_asm_flag
+	beq 1,p_mouse_drawing_optima_modify
+p_mouse_drawing_optima_reset:
+	arg 10,loopcnt
+	arg mem_mouse_x_sum,contw		//clear sum,pre
+	branch clear_mem
+
+p_mouse_drawing_optima_modify:
+	call p_mouse_drawing_optima_x_data
+	branch p_mouse_drawing_optima_y_data
+
+p_mouse_drawing_optima_x_data:
+	fetch 2,mem_mouse_x_pre
+	fetcht 2,mem_mouse_x
+	iadd temp,pdata
+	store 3,mem_mouse_x_sum
+	isolate1 16,pdata
+	branch p_x_sum_overflow,true
+
+	fetch 1,mem_mouse_x_sum+1
+	beq 0xff,p_x_sum_n
+
+	fetch 1,mem_mouse_x_sum
+p_x_store_pre_data:
+	rshift pdata,pdata
+	store 2,mem_mouse_x_pre
+	store 2,mem_mouse_x
+	rtn
+p_x_sum_overflow:
+	fetch 1,mem_mouse_x_sum+1	//sum positive
+	beq 0,p_x_sum_overflow_p
+	fetch 3,mem_mouse_x_sum	//全负相加
+	branch p_x_store_pre_data
+p_x_sum_overflow_p:
+	jam 0,mem_mouse_x_sum+2
+	fetch 1,mem_mouse_x_sum
+	branch p_x_store_pre_data
+
+p_x_sum_n:
+	fetch 1,mem_mouse_x_sum	//sum negetive
+	call p_pdata_get_half
+	store 1,mem_mouse_x_pre
+	store 1,mem_mouse_x
+	branch p_x_data_zero,blank
+	setarg 0xff
+p_x_data_set_direction:	
+	store 1,mem_mouse_x_pre+1
+	store 1,mem_mouse_x+1
+	rtn
+p_x_data_zero:
+	setarg 0
+	branch p_x_data_set_direction
+
+p_pdata_get_half:
+	sub pdata,0,pdata
+	store 1,mem_rega
+	fetch 1,mem_rega
+	rshift pdata,pdata
+	store 1,mem_rega
+	fetch 1,mem_rega
+	sub pdata,0,pdata
 	rtn
 
+p_mouse_drawing_optima_y_data:
+	fetch 2,mem_mouse_y_pre
+	fetcht 2,mem_mouse_y
+	iadd temp,pdata
+	store 3,mem_mouse_y_sum
+	isolate1 16,pdata
+	branch p_y_sum_overflow,true
 
-p_savelist:
-	store 8,mem_pdatatemp
-p_savelist1:
-	fetch 1,mem_seqi
-	rtneq 0x7f
-	and_into 0x7f,pdata
-	lshift3 pdata,pdata
-	arg 0x4c00,contw
-	iadd contw,contw
-	fetch 8,mem_pdatatemp
-	istore 8,contw
-	fetch 1,mem_seqi
-	isolate1 7,pdata
-	increase 1,pdata
-	and_into 0x7f,pdata
-	setflag true,7,pdata
-	store 1,mem_seqi
-	fetch 8,mem_pdatatemp
-	rtn	
+	fetch 1,mem_mouse_y_sum+1
+	beq 0xff,p_y_sum_n
+
+	fetch 1,mem_mouse_y_sum
+p_y_store_pre_data:	
+	rshift pdata,pdata
+	store 2,mem_mouse_y_pre
+	store 2,mem_mouse_y
+	rtn
+p_y_sum_overflow:
+	fetch 1,mem_mouse_y_sum+1	//sum positive
+	beq 0,p_y_sum_overflow_p
+	fetch 3,mem_mouse_y_sum	//全负相加
+	branch p_y_store_pre_data
+p_y_sum_overflow_p:
+	jam 0,mem_mouse_y_sum+2
+	fetch 1,mem_mouse_y_sum
+	branch p_y_store_pre_data
+
+p_y_sum_n:
+	fetch 1,mem_mouse_y_sum	//sum negetive
+	call p_pdata_get_half
+	store 1,mem_mouse_y_pre
+	store 1,mem_mouse_y
+	branch p_y_data_zero,blank
+	setarg 0xff
+p_y_data_set_direction:	
+	store 1,mem_mouse_y_pre+1
+	store 1,mem_mouse_y+1
+	rtn
+p_y_data_zero:
+	setarg 0
+	branch p_y_data_set_direction
 
+//rega mouse_x, regb mouse_y, pdata refer
+p_mouse_data_greater_than_check:
+	isub rega,null
+	nbranch p_mouse_enable_asm,positive
+	isub regb,null
+	nbranch p_mouse_enable_asm,positive
+p_mouse_disable_asm:
+	jam 0,mem_mouse_asm_flag
+	rtn
+p_mouse_data_less_than_check:
+	isub rega,null
+	nrtn positive
+	isub regb,null
+	nrtn positive
+	branch p_mouse_disable_asm
+p_mouse_enable_asm:
+	jam 1,mem_mouse_asm_flag
+	rtn
 
+p_mouse_data_abs_check:
+	call p_mouse_x_data_abs
+p_mouse_y_data_abs:
+	fetch 1,mem_mouse_y+1
+	beq 0xff,p_mouse_y_reversal
+	fetch 1,mem_mouse_y
+p_mouse_y_data_abs_store:
+	store 1,mem_mouse_y_abs
+	rtn
+p_mouse_x_data_abs:
+	fetch 1,mem_mouse_x+1
+	beq 0xff,p_mouse_x_reversal
+	fetch 1,mem_mouse_x
+p_mouse_x_data_abs_store:
+	store 1,mem_mouse_x_abs
+	rtn
+p_mouse_x_reversal:
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	branch p_mouse_x_data_abs_store
+p_mouse_y_reversal:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	branch p_mouse_y_data_abs_store
+endif
+/*
 p_hci_log:
 	fetch 1,0x4c00
 	increase 1,pdata
Index: sched/mouse.dat
===================================================================
--- /branch/mouse_project/Standard/sched/mouse.dat	(revision 710)
+++ /branch/mouse_project/Standard/sched/mouse.dat	(working copy)
@@ -1,4 +1,4 @@
-mem_patch00:02
+mem_patch00:06
 mem_patch03:08
 mem_patch04:40
 mem_patch09:04
@@ -7,11 +7,10 @@
 mem_patch10:20
 mem_patch11:02
 mem_patch14:82
-mem_patch15:01
 mem_patch16:06
 mem_patch18:10
 mem_patch19:0e
-mem_patch1c:08
+mem_patch1c:48
 mem_patch1d:1e
 mem_patch20:20
 mem_patch27:02
@@ -23,7 +22,6 @@
 mem_patch2e:80
 mem_patch30:05
 mem_patch31:11
-#mem_patch39:20
 
 #debug
 #mem_patch2f:40
@@ -31,7 +29,7 @@
 #mem_patch3e:c0
 
 
-mem_device_option:43
+mem_device_option:42
 mem_lpm_mode:01
 mem_lpm_mult:20
 mem_lpm_mult_init:20
@@ -58,9 +56,9 @@
 41
 
 mem_app_connection_options:06
-mem_lap:26 10 19 20 18 10
+mem_lap:20 51 17 01 20 20
 mem_local_name_length:
-'BT 3.0 Mouse
+'BT3.0 Mouse
 mem_sniff_param_interval:
 0e 00 
 01 00 ##mem_sniff_param_attempt:01 00
@@ -93,18 +91,23 @@
 #uuid
 03 03 12 18
 
+#microsoft swift pair
+#06 ff 06 00 03 02 80
+#09 ff 06 00 03 02 80 80 25 00
+#0f ff 06 00 03 01 80 26 10 19 20 18 10 80 25 00
+
 #name
-'\09BT 5.0 Mouse
+'\09BT5.0 Mouse
 
 mem_le_scan_data_len:1f
 mem_le_scan_data:
 #name
-'\09BT 5.0 Mouse
+'\09BT5.0 Mouse
 
 
 #max 20bytes, att list data rom limits
 mem_le_name_len:
-'BT 5.0 Mouse
+'BT5.0 Mouse
 
 
 mem_le_interval_min:
@@ -192,10 +195,10 @@
 02##mem_320x_dpi_3
 03##mem_320x_dpi_4
 
-15##mem_3212_dpi_1
-1a##mem_3212_dpi_2
-22##mem_3212_dpi_3
-2a##mem_3212_dpi_4
+#15##mem_3212_dpi_1
+#1a##mem_3212_dpi_2
+#22##mem_3212_dpi_3
+#2a##mem_3212_dpi_4
 
 #04##mem_3610_dpi_1
 #05##mem_3610_dpi_2
@@ -233,7 +236,7 @@
 mem_24g_pairing_sm:ff
 mem_24g_paring_addr:20 15 10 05
 mem_24g_common_temp:00 00 00 00 00 00 00 00 00 00
-mem_24g_enter_hibernate:00 48 60 00 00 00 00 00#10 min
+mem_24g_enter_hibernate:00 48 60
 
 mem_device_flag:
 01
@@ -247,7 +250,7 @@
 #11 22 33 44 55 66
 
 
-mem_flash_base:00 70 00
+#mem_flash_base:00 70 00
 mem_eeprom_base:90 1f
 mem_eeprom_block_size:80
 mem_reconn_times_init:00
