Index: format/app.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/format/app.format	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/format/app.format	(working copy)
@@ -293,6 +293,7 @@
 7 APP_DISC_BLE
 8 APP_DISC_L2CAP_REFUSED
 9 APP_DISC_SWITCH_FAIL
+10 APP_DISC_PB_BUTTON
 )
 //eeprom init flag
 (
Index: format/app_mouse.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/format/app_mouse.format	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/format/app_mouse.format	(working copy)
@@ -184,6 +184,7 @@
 33 mem_mouse_data_queue
 1 mem_mouse_data_queue_num
 
+2 mem_random_addr_increase_count
 1 mem_mouse_le_conn_param_reject
 1 mem_lpm_mult_init
 64 mem_mouse_le_uuid_sup
@@ -203,9 +204,6 @@
 646 mem_mouse_uuid_list
 1 mem_lmi_opcode_temp
 
-1 mem_mouse_button_select_device_timer_init
-1 mem_mouse_button_select_device_count
-
 1 mem_mouse_adc_last_low_voltage_flag
 1 mem_mouse_init_sensor_reset_flag
 
@@ -230,15 +228,17 @@
 1 mem_mouse_multi_led_gpio
 1 mem_mouse_multi_led_state
 1 mem_mouse_multi_led_type
-1 mem_mouse_multi_led_on_timer
 1 mem_mouse_multi_led_on_timer_init
 1 mem_mouse_multi_led_blink_timer_init
 1 mem_mouse_multi_led_blink_timer
 1 mem_mouse_multi_led_blink_count
+1 mem_mouse_multi_led_on_timer
 1 mem_mouse_multi_led_blink_count_limited
 1 mem_mouse_multi_led_on_poweron2s_flag
-1 mem_mouse_multi_led_blink_poweron3s_flag
 
+1 mem_discovery_on_flag
+1 mem_bt_ui_button_timeout
+1 mem_bt_ui_button_count
 1 mem_mouse_priority_bb_event
 2 mem_mouse_le_parse_l2cap_ptr
 1 mem_low_power_no_data_off_led_time
@@ -255,17 +255,12 @@
 1 mem_le_att_pnp_id_len
 7 mem_le_att_pnp_id
 
-//no motion pin
-1 mem_mouse_long_mult_flag
-1 mem_mouse_le_current_mult_timer
-1 mem_24g_long_sleep_param_update_timer
-
 //flash
 1 mem_flash_ncs_gpio
 1 mem_select_ui_button_count
 4 mem_write_flash_head_temp
 1 mem_mouse_poweron_led_timer
-6 mem_mouse_24g_addr_init
+4 mem_mouse_24g_addr_init
 
 //zcode
 1 mem_zcode_current_number
@@ -274,44 +269,53 @@
 3 mem_flash_address
 4 mem_zcode_head
 
-1 mem_mouse_select_device_button_wakeup_flag
-1 mem_mouse_le_updata_not_accepted_flag
-
+//no motion pin
+1 mem_mouse_long_mult_flag
+1 mem_mouse_le_current_mult_timer
+2 mem_24g_long_sleep_param_update_timer
 
-//fast le conn
-6 mem_le_normal_lap
-1 mem_le_switch_adv_flag
-1 mem_le_switch_adv_timer
-1 mem_le_switch_adv_count
-1 mem_mouse_start_discovery_enable
-1 mem_mouse_le_adv_start
 
-1 mem_mouse_send_secutiry_request_timer
-1 mem_le_send_security_request_flag
+1 mem_mouse_bt_led_gpio
+1 mem_mouse_button_select_device_timer_init
+1 mem_mouse_button_select_device_count
+1 mem_mouse_multi_led_on_timer_init1
+1 mem_mouse_24g_attempt_success_flag
 1 mem_mouse_le_bb_connected_flag
 
-
-//user flash data
-0 mem_mouse_flash_start_temp
-2 mem_random_addr_increase_count
-1 mem_mouse_long_button_select_device
-2 mem_eeprom_init_flag
 1 mem_mouse_fast_conn_flag
-1 mem_mouse_latest_mode
-0 mem_mouse_flash_end_temp
+3 mem_le_lap_high_3B
 
-1 mem_mouse_le_not_tx_disconn
+//le security reuqest
+1 mem_mouse_send_secutiry_request_timer
+1 mem_le_send_security_request_flag
 
+1 mem_mouse_long_button_select_device
+1 mem_mouse_select_device_button_wakeup_flag
 
-38 mem_sensor_8650_init
-8 mem_sensor_poweron_init
+1 mem_mouse_le_fast_conn_enable_timer
+1 mem_mouse_delay_discovery_count
 
 2 mem_firmware_version
 
 1 mem_mouse_data_xtemp
 1 mem_mouse_data_ytemp
 
+1 mem_mouse_low_voltage_led_gpio
 1 mem_bt_125hz_cnt
+
+26 mem_sensor_8650_init
+16 mem_sensor_8009_init
+8 mem_sensor_poweron_init
+
+1 mem_mouse_lkey_press_status
+1 mem_mouse_rkey_press_status
+1 mem_mouse_mkey_press_status
+1 mem_mouse_bkkey_press_status
+1 mem_mouse_fwkey_press_status
+1 mem_mouse_dpikey_press_status
+1 mem_mouse_key_temp
+1 mem_mouse_key_status
+
 )
 
 (
@@ -344,8 +348,6 @@
 0x02 MODE_BT_DEVICE2
 0x03 MODE_BT_DEVICE3
 0x02 MODE_24G_DEVICE
-0xff MODE_DEFAULT_DEVICE
-
 //mouse  flag
 0X00 WRITE_REQ_ENABLE_FLAG
 0X01 LL_START_ENC_FLAG
@@ -424,12 +426,11 @@
 0X00 MOUSE_INFO_EEPROM_OFFECT
 0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
 0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
-0x5F MOUSE_USER_DATA_OFFECT
 0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
 0X61 MOUSE_DEVICE_MODE_EEPROM_OFFSET	//1byte	
 0X62 MOUSE_EEPROM_MODULE_INIT_FLAG		//eeprom_module_init_flag 2bytes
 0X64 MOUSE_FAST_CONN_FLAG_OFFSET	//1byte
-0X65 MOUSE_LATEST_MODE_OFFSET	//1byte
+
 
 // Sensor id number
 0x30 P32XX_ID1
@@ -440,11 +441,10 @@
 0XD2 P3204_TJ3L_ID2
 0x54 PKA8_ID2
 0x70 P3065_XY_ID2
-0x5a MA8650_ID2
 0x5a P_MX8650
+0xD8 P8009_ID2
 0x00 P3205_TJNT_ID2
 
-
 //Sensor type
 0X00 P3205
 0X01 P3065
@@ -453,10 +453,9 @@
 0X04 P3212
 0X05 P3610
 0X06 P3065_XY
-0X07 MA8650
-0x07 MX8650
-0x08 P3205_NT
-
+0X07 MX8650
+0x08 P8009
+0x09 P3205_NT
 
 //p3610 smart enable flag
 0X00 P3610_SMART_ENABLE
@@ -498,7 +497,7 @@
 )
 
 (
-6 TEST_GPIO
+4 TEST_GPIO
 )
 
 (
@@ -510,6 +509,8 @@
 7 LE_INTERVAL_8_75MS//8.75ms
 6 LE_INTERVAL_7_5MS//7.5ms
 12 CLASSIC_INTERVAL_7_5MS
+14 CLASSIC_INTERVAL_8_75MS
+18 CLASSIC_INTERVAL_11_25MS
 )
 
 (
@@ -529,9 +530,9 @@
 )
 
 (
-0x017700 G24_LONG_SLEEP_STEP1	//8ms
-0x36ee80 G24_LONG_SLEEP_STEP2	//300ms
-0x124f80 G24_LONG_SLEEP_STEP3	//100ms
+0x017700 G24_LONG_SLEEP_STEP1	//4ms
+0x124f80 G24_LONG_SLEEP_STEP2	//30ms
+0x604800 G24_LONG_SLEEP_STEP3	//500ms
 )
 
 (
@@ -539,7 +540,7 @@
 )
 
 (
-0x0708 BLE_DIRECT_ADV_TIMEOUT
-0x0a BLE_POWERON_RECONN_TIMER
+0x01 DPI_FUNCTION_DISABLE
+0x00 DPI_FUNCTION_ENABLE
 )
 
Index: format/app_usb.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/format/app_usb.format	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/format/app_usb.format	(working copy)
@@ -184,9 +184,7 @@
 
 (
 0x01 BIND_ACKPAYLOAD
-0x08 BIND_ACKPAYLOAD_LENGTH
 0x02 USER_ACKPAYLOAD
-0x1F USER_ACKPAYLOAD_LENGTH
 
 0xcf CMD_OTA
 0xc0 CMD_OTA_START
Index: format/g24.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/format/g24.format	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/format/g24.format	(working copy)
@@ -126,19 +126,6 @@
 1 mem_24g_transmit_by_interrupt
 2 mem_24g_transmit_by_interrupt_exit_count
 2 mem_24g_transmit_by_interrupt_exit_count_init
-6 mem_24g_allpowerful_addr
-
-1 mem_24g_stop_g24_mode
-2 mem_24g_stop_g24_mode_timeout
-1 mem_24g_pair_current_ch_num
-1 mem_24g_powerful_current_ch_num
-
-1 mem_24g_search_dongle_action
-1 mem_24g_search_dongle_count
-1 mem_24g_search_dongle_ch
-1 mem_24g_search_dongle_wait
-
-1 mem_24g_conn_sm
 )
 
 (
@@ -311,12 +298,6 @@
 //6-7 channel offset
 )
 
-(
-0 STATE_24G_STOP
-0 STATE_24G_START
-1 STATE_24G_PAIR
-2 STATE_24G_RECONN
-)
 
 
 //mem_24g_pairing_sm
@@ -471,6 +452,7 @@
 (
 81000 G24_8125_INTERVAL_PARAM
 78000 G24_78125_INTERVAL_PARAM
+12210 G24_4MS_INTERVAL_PARAM
 )
 
 (
@@ -478,14 +460,3 @@
 0 G24_TX_TIMER_INT_DISABLE
 )
 
-(
-0 G24_DISCONN_STATE
-1 G24_CONN_STATE
-
-
-8 G24_CH_NUMBER
-16 G24_CH_POLL_COUNT
-0x0708 G24_DISCONN_NODATA_TIMER
-)
-
-
Index: format/utility.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/format/utility.format	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/format/utility.format	(working copy)
@@ -149,7 +149,7 @@
 2 mem_data_pre
 2 mem_data_current
 3 mem_data_sum
-1 mem_data_value
+2 mem_data_value
 
 //zcode
 1 mem_zcode_temp_param0	//zcode num
Index: output/flash.dat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/output/flash.dat	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/output/flash.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-32
+9e
 1d
 20
 20
@@ -11,7 +11,7 @@
 20
 40
 03
-98
+99
 68
 00
 c1
@@ -19,11 +19,11 @@
 60
 00
 cc
-ea
+f0
 20
 40
 06
-45
+5f
 68
 00
 c6
@@ -32,78 +32,58 @@
 00
 c6
 da
+68
+00
+cb
+32
+60
+00
+cb
+33
 20
 40
-04
-91
+43
+ca
 20
 40
-03
-12
+02
+a9
 20
 40
 06
-e3
+fd
 20
 40
 00
-14
+0f
 20
 40
 00
-25
-68
-02
-40
-a0
-60
-02
-4c
-6a
-20
-40
-58
-10
-20
-40
-58
-39
-20
-40
-58
-2c
-20
-40
-58
-18
 20
-40
-3e
-1e
 20
 20
 02
-e5
+f3
 58
 00
 03
-55
+5f
 60
 01
 4d
-64
+6a
 58
 00
 03
-84
+7c
 60
 01
 41
 ef
 58
 00
-06
-18
+05
+f9
 60
 01
 41
@@ -111,7 +91,7 @@
 58
 00
 02
-9f
+63
 60
 01
 41
@@ -119,7 +99,7 @@
 58
 00
 03
-d2
+cf
 60
 01
 41
@@ -135,15 +115,15 @@
 58
 00
 03
-ff
+f5
 60
 01
 41
 eb
 58
 00
-04
-0c
+03
+fc
 60
 01
 41
@@ -159,19 +139,19 @@
 60
 01
 4d
-76
+7c
 24
 55
 80
-31
+28
 20
 40
 02
-c5
+ab
 20
 40
-04
-05
+02
+ec
 68
 00
 c7
@@ -180,26 +160,10 @@
 00
 c7
 1e
-68
-03
-44
-a0
+20
 60
-03
-4b
-64
-68
-00
-c2
-41
-c3
-81
 00
 00
-20
-20
-03
-81
 58
 00
 01
@@ -207,7 +171,7 @@
 60
 01
 4d
-76
+7c
 20
 60
 00
@@ -260,6 +224,42 @@
 00
 00
 01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
+20
+00
+00
+01
 c2
 84
 00
@@ -267,59 +267,59 @@
 c0
 00
 80
-68
+5e
 c0
 01
 00
-72
+68
 c0
 42
 86
-b1
+cb
 c0
 44
 86
-82
+9c
 c0
 45
 06
-b3
+cd
 c0
 50
 80
-7b
+71
 c0
 58
 80
-80
+76
 c0
 59
 00
-8e
+82
 c0
 62
 02
-ac
+81
 c0
 71
 84
-fa
+b0
 c0
 73
-05
-25
+04
+dd
 c0
 75
 05
-60
+34
 c0
 75
 85
-69
+3c
 c0
 76
 05
-6b
+49
 20
 20
 2a
@@ -327,99 +327,59 @@
 c0
 1c
 85
-6e
+55
 c0
 21
 85
-76
+5d
 c0
 25
 05
-7c
+63
 c0
 2b
 85
-7f
+66
 c0
 2c
 85
-81
+68
 c0
 31
 85
-83
+6a
 c0
 33
 05
-ac
+94
 c0
 33
 85
-cb
+ab
 c0
 35
-06
-03
+05
+e4
 c0
 3b
-86
-0e
-c0
-7d
-06
-2d
+85
+ef
 c0
 46
-06
-1a
+05
+ff
 c0
 46
 86
-26
+0b
+c0
+7d
+06
+47
 20
 20
 2a
 8e
-1f
-e2
-22
-00
-68
-08
-cc
-ee
-58
-00
-4c
-f5
-98
-40
-8a
-00
-1a
-22
-7e
-00
-e0
-a0
-80
-00
-18
-40
-84
-01
-18
-41
-04
-07
-60
-08
-cc
-ee
-20
-60
-00
-00
 d8
 a0
 09
@@ -435,7 +395,7 @@
 20
 40
 03
-66
+70
 20
 40
 74
@@ -491,7 +451,7 @@
 20
 3a
 00
-75
+6b
 20
 20
 20
@@ -531,7 +491,7 @@
 68
 00
 cb
-2e
+2d
 24
 3a
 7f
@@ -547,23 +507,15 @@
 68
 00
 c7
-c4
+c6
 c0
 00
 ff
 ef
 68
-02
-46
-d3
-c2
-82
-7f
-ef
-68
 00
 c8
-06
+08
 24
 3a
 7f
@@ -579,43 +531,31 @@
 68
 00
 cd
-87
-c2
-80
-80
-a3
-c2
-81
-00
-a5
-68
-00
-cd
-73
+79
 c0
 00
 80
-ab
+9b
 20
 40
 01
-65
+21
 24
 34
 00
-c6
+b6
 20
 40
 01
-40
+08
 20
 40
 01
-88
+45
 68
 00
 cc
-43
+49
 c1
 ff
 80
@@ -623,11 +563,11 @@
 20
 40
 06
-56
+70
 20
 40
 00
-a7
+96
 68
 00
 cb
@@ -635,11 +575,19 @@
 c0
 00
 83
-58
+62
+68
+00
+c6
+9a
+c2
+81
+03
+62
 20
 40
 00
-d5
+c2
 24
 74
 00
@@ -647,31 +595,15 @@
 20
 40
 02
-a6
+6a
 58
 00
-f0
-3c
+ec
+54
 20
 20
 2b
 93
-70
-11
-c6
-60
-20
-20
-06
-b6
-70
-11
-c6
-53
-20
-20
-06
-b6
 58
 01
 77
@@ -679,11 +611,15 @@
 60
 01
 cc
-62
-70
-4b
-46
+68
+58
+00
+00
 14
+60
+01
+4b
+61
 20
 60
 00
@@ -691,7 +627,7 @@
 20
 40
 02
-7f
+44
 24
 74
 00
@@ -699,11 +635,11 @@
 20
 40
 00
-c0
+b0
 68
 01
 4d
-74
+7a
 1f
 e0
 fe
@@ -711,11 +647,11 @@
 60
 01
 4d
-74
+7a
 68
 09
 4d
-76
+7c
 98
 46
 7c
@@ -723,14 +659,14 @@
 20
 42
 80
-b5
+a5
 20
 20
 00
-94
+85
 70
 4d
-73
+79
 00
 58
 00
@@ -739,27 +675,27 @@
 60
 01
 4d
-74
+7a
 58
 00
 00
-19
+64
 60
 01
 4d
-76
+7c
 70
 4c
-6e
+74
 00
 68
 00
 cc
-59
+5f
 60
 00
 cc
-58
+5e
 20
 60
 00
@@ -767,15 +703,15 @@
 68
 00
 cc
-5a
+60
 20
 20
 00
-bc
+ac
 68
 00
 cc
-6e
+74
 1f
 e0
 fe
@@ -783,15 +719,15 @@
 60
 00
 cc
-6e
+74
 c0
 02
 00
-be
+ae
 c0
 02
 80
-ba
+aa
 20
 60
 00
@@ -799,15 +735,15 @@
 68
 00
 cc
-5f
+65
 20
 5a
 00
-f0
+cb
 68
 00
 cb
-2e
+2d
 24
 7a
 00
@@ -820,22 +756,10 @@
 00
 80
 00
-68
-00
-cd
-73
-c1
-00
-80
-00
-20
-40
-01
-01
 20
 40
 00
-d5
+c2
 24
 74
 00
@@ -843,7 +767,7 @@
 68
 01
 cc
-62
+68
 20
 40
 7f
@@ -883,103 +807,31 @@
 68
 00
 cd
-73
+79
 c0
 00
 ff
 e9
-68
-02
-46
-d3
-c2
-82
-7f
-e9
-20
-40
-02
-a9
-20
-40
-02
-a6
 20
-40
-3e
-bf
 20
-40
-02
-e7
-68
-12
-00
-70
-68
-1a
-00
-78
-98
-41
-84
-00
-18
-44
-04
-00
-60
-1a
-00
-7c
-68
-10
-80
-7d
-79
-3f
-fe
 02
-60
-10
-80
-7d
-68
-10
-80
-7e
-79
-3f
-fe
-06
-60
-10
-80
-7e
-d8
-40
-00
-1d
-20
-20
-67
-fb
+6d
 70
 4c
-5f
+65
 01
 70
 4d
-68
+6e
 00
 20
 40
-01
-16
+00
+de
 60
 00
 cb
-cf
+d5
 58
 00
 00
@@ -987,23 +839,23 @@
 60
 03
 cb
-d0
+d6
 68
 02
 4c
-6a
+70
 60
 02
 4b
-d7
+dd
 70
 4c
-33
+39
 0c
 68
 00
 cc
-34
+3a
 79
 20
 7e
@@ -1011,115 +863,39 @@
 60
 00
 cc
-34
+3a
 20
 40
 01
-68
+24
 20
 20
 00
-97
-58
-00
-00
-00
-60
-01
-cd
-83
-20
+88
+68
+02
+40
+a0
 60
-00
-00
-70
-11
-c6
-71
-20
-20
-06
-b6
+02
+4c
 70
-4d
-84
-00
-68
-00
-cd
-83
-c3
-80
-00
-00
-79
 20
-7e
-00
-60
-00
-cd
-83
-58
-00
-07
-08
 60
-01
-46
-b0
-20
-20
-04
-05
-68
-00
-cc
-5f
-20
-3a
-00
-fe
-70
-4d
-84
-00
-68
-00
-cd
-83
-c4
-00
-00
-00
-79
-3f
-fe
 00
-60
 00
-cd
-83
-20
-40
-3f
-8d
-20
-20
-03
-b5
 70
 4d
-69
+6f
 01
 70
 4d
-6b
+71
 00
 68
 00
 cc
-34
+3a
 1f
 e1
 7e
@@ -1127,7 +903,7 @@
 60
 00
 cc
-34
+3a
 20
 60
 00
@@ -1135,7 +911,7 @@
 68
 00
 cc
-34
+3a
 79
 20
 7e
@@ -1143,11 +919,11 @@
 60
 00
 cc
-34
+3a
 60
 00
 cb
-ef
+f5
 20
 60
 00
@@ -1155,7 +931,7 @@
 68
 00
 cc
-34
+3a
 c4
 02
 00
@@ -1163,7 +939,7 @@
 68
 00
 cc
-34
+3a
 79
 3f
 fe
@@ -1171,31 +947,31 @@
 60
 00
 cc
-34
+3a
 60
 00
 cb
-ef
+f5
 20
 40
 06
-4c
+66
 20
 20
 01
-53
+ca
 68
 00
 cd
-68
+6e
 c0
 80
-81
-16
+80
+de
 68
 00
 cd
-66
+6c
 1f
 e0
 fe
@@ -1203,83 +979,83 @@
 60
 00
 cd
-66
+6c
 c0
 02
-01
-30
+00
+f8
 20
 40
 01
-53
+ca
 70
 4c
-78
+7e
 02
 20
 20
 01
-88
+45
 20
 40
 06
-4c
+66
 70
 4d
-66
+6c
 00
 20
 20
-01
-16
+00
+de
 70
 4d
-6b
+71
 02
 70
 4d
-69
+6f
 01
 70
 4d
-68
+6e
 00
 20
 20
-01
-16
+00
+de
 68
 00
 cd
-6a
+70
 c0
 01
-81
-34
+80
+fc
 68
 00
 cc
-34
+3a
 2f
 ec
 00
 04
 20
 20
-81
-14
+80
+dc
 68
 00
 cd
-6a
+70
 c0
 00
-81
-33
+80
+fb
 c0
 01
-01
-34
+00
+fc
 20
 60
 00
@@ -1287,7 +1063,7 @@
 68
 00
 cc
-43
+49
 c1
 ff
 80
@@ -1295,11 +1071,11 @@
 20
 40
 01
-45
+0d
 24
 56
 01
-4d
+15
 20
 60
 00
@@ -1311,7 +1087,7 @@
 68
 00
 cd
-69
+6f
 c1
 80
 80
@@ -1319,18 +1095,18 @@
 68
 00
 cd
-6b
+71
 c1
 80
 00
 00
 70
 4d
-6a
+70
 01
 70
 4c
-78
+7e
 04
 20
 20
@@ -1339,11 +1115,11 @@
 68
 00
 cd
-6b
+71
 20
 3a
 01
-60
+1c
 1f
 e0
 ff
@@ -1351,106 +1127,58 @@
 60
 00
 cd
-6b
+71
 70
 4d
-6a
+70
 02
 70
 4c
-78
-04
-68
-08
-cc
-3e
-68
-00
-cc
-5b
-1f
-e1
 7e
-03
-1f
-ef
-a2
 04
-58
-00
-4c
-44
-9a
 20
-fe
-00
-98
-40
-8c
-00
-e8
-c0
-80
-00
-60
-00
-cc
-3d
-18
-40
-84
-01
-18
-41
-04
-03
-60
-08
-cc
-3e
 20
-60
-00
-00
+01
+ca
 70
 4d
-6a
+70
 03
 68
 00
 cd
-68
+6e
 24
 3a
-01
-27
+00
+ef
 70
 4c
-78
+7e
 02
 20
 20
 01
-53
+ca
 68
 00
 cc
-43
+49
 c0
 ff
 81
-e3
+8b
 20
 40
 01
-6b
+27
 20
 40
-02
-03
+01
+b8
 70
 4c
-38
+3e
 01
 20
 60
@@ -1459,7 +1187,7 @@
 68
 01
 4d
-64
+6a
 20
 40
 7f
@@ -1467,11 +1195,11 @@
 20
 34
 01
-71
+2d
 68
 03
 cb
-d0
+d6
 20
 7a
 00
@@ -1483,10 +1211,14 @@
 20
 40
 03
-72
+93
+20
+40
+03
+af
 70
 4c
-5f
+65
 00
 1a
 20
@@ -1495,15 +1227,15 @@
 60
 00
 cc
-33
+39
 20
 40
-01
-16
+00
+de
 60
 00
 cb
-cf
+d5
 e8
 a8
 80
@@ -1539,7 +1271,7 @@
 d8
 a0
 4b
-d5
+db
 df
 20
 00
@@ -1567,14 +1299,14 @@
 c2
 00
 01
-81
+3e
 20
 60
 00
 00
 70
 4c
-3c
+42
 00
 d9
 60
@@ -1587,31 +1319,31 @@
 20
 40
 01
-9f
+5c
 24
 2c
 01
-aa
+67
 24
 37
 81
-aa
+67
 20
 40
 01
-9c
+59
 20
 40
 01
-c7
+84
 20
 40
 06
-48
+62
 68
 00
 cc
-32
+38
 1f
 e0
 fe
@@ -1619,23 +1351,23 @@
 60
 00
 cc
-32
+38
 20
 40
-01
-1f
+00
+e7
 68
 00
 cc
-43
+49
 c0
 ff
 81
-e5
+8d
 20
 40
-01
-37
+00
+ff
 58
 00
 00
@@ -1643,11 +1375,11 @@
 60
 02
 4c
-38
+3e
 60
 00
 cd
-67
+6d
 20
 60
 00
@@ -1659,7 +1391,7 @@
 d8
 a0
 4b
-cf
+d5
 20
 20
 7e
@@ -1671,7 +1403,7 @@
 20
 40
 02
-5e
+21
 18
 00
 2a
@@ -1679,7 +1411,7 @@
 68
 02
 4c
-5b
+61
 98
 00
 12
@@ -1698,12 +1430,12 @@
 24
 20
 40
-02
-1e
+01
+dd
 20
 57
 82
-57
+1e
 20
 60
 00
@@ -1711,7 +1443,7 @@
 68
 00
 cc
-5f
+65
 24
 7a
 00
@@ -1719,7 +1451,7 @@
 68
 01
 4c
-39
+3f
 1f
 e0
 fe
@@ -1727,11 +1459,11 @@
 60
 01
 4c
-39
+3f
 68
 00
 cc
-3a
+40
 c2
 82
 2d
@@ -1739,23 +1471,23 @@
 68
 00
 cc
-43
+49
 c0
 ff
 81
-b5
+72
 20
 40
 01
-bd
+7a
 20
 20
 01
-89
+46
 68
 00
 cc
-39
+3f
 c1
 ff
 80
@@ -1767,7 +1499,7 @@
 60
 01
 4c
-39
+3f
 20
 20
 2d
@@ -1775,19 +1507,19 @@
 20
 40
 06
-79
+93
 20
 40
 06
-4c
+66
 20
 20
 01
-53
+ca
 68
 00
 cc
-3c
+42
 1f
 e6
 7c
@@ -1795,7 +1527,7 @@
 24
 21
 01
-ba
+77
 1f
 e0
 fe
@@ -1803,23 +1535,23 @@
 60
 00
 cc
-3c
+42
 c0
 01
-01
-1a
+00
+e2
 c0
 03
-01
-21
+00
+e9
 c0
 04
-01
-1a
+00
+e2
 c0
 06
-01
-21
+00
+e9
 20
 60
 00
@@ -1827,11 +1559,11 @@
 20
 40
 01
-f6
+9d
 68
 00
 cc
-31
+37
 20
 7a
 00
@@ -1843,143 +1575,55 @@
 d8
 c0
 4b
-af
+b5
 d8
 a0
 4c
-11
+17
 20
 20
 7f
 01
 70
-41
-de
-04
-70
-4c
-32
-00
-70
-4c
-3d
-4e
-68
-02
-4c
-3f
-60
-02
-4c
-5b
-da
-20
-00
-00
-df
-20
-00
-04
-d8
-c0
-4c
-5b
-e8
-c0
-80
-00
-9a
-20
-a2
-00
-c2
-00
-01
-d6
-1a
-22
-7e
-00
-60
-01
-4c
-e4
-68
-00
-cc
-e4
-68
-08
-cc
-e5
-98
-40
-fe
-00
-60
-00
-cc
-e6
-20
-60
-00
-00
-20
-40
-01
-ce
-70
-4c
-43
-01
-20
-60
-00
-00
-70
 11
-c6
+c7
 90
 20
 20
 06
-b6
+d0
 20
 40
 06
-45
+5f
 70
 11
-c6
+c7
 91
 20
 20
 06
-b6
+d0
 70
 11
-c6
-40
+c7
+60
 20
 20
 06
-b6
+d0
 70
 11
-c6
-41
+c7
+70
 20
 20
 06
-b6
+d0
 79
 3f
 80
 26
-70
-4d
-87
-00
 20
 40
 53
@@ -1995,7 +1639,7 @@
 60
 08
 cc
-33
+39
 18
 42
 72
@@ -2003,7 +1647,7 @@
 d8
 a0
 4b
-cf
+d5
 1a
 22
 0c
@@ -2015,7 +1659,7 @@
 68
 00
 cb
-ae
+b4
 1f
 e9
 7e
@@ -2023,7 +1667,7 @@
 60
 00
 cc
-31
+37
 1f
 e0
 fe
@@ -2031,7 +1675,7 @@
 d8
 c0
 4b
-ae
+b4
 98
 c0
 8c
@@ -2043,11 +1687,11 @@
 60
 01
 cc
-70
+76
 68
 00
 cb
-ae
+b4
 1f
 e3
 7e
@@ -2059,15 +1703,71 @@
 60
 00
 cc
-76
+7c
 20
 60
 00
 00
+60
+02
+4c
+61
+da
+20
+00
+00
+df
+20
+00
+04
+d8
+c0
+4c
+61
+e8
+c0
+80
+00
+9a
+20
+a2
+00
+c2
+00
+01
+ae
+1a
+22
+7e
+00
+60
+01
+4c
+ea
+68
+00
+cc
+ea
 68
+08
+cc
+eb
+98
+40
+fe
+00
+60
 00
 cc
-33
+ec
+20
+60
+00
+00
+68
+00
+cc
+39
 1f
 e0
 fe
@@ -2075,19 +1775,19 @@
 60
 00
 cc
-35
+3b
 68
 00
 cc
-34
+3a
 60
 00
 cb
-ef
+f5
 68
 00
 cc
-33
+39
 1f
 e9
 fe
@@ -2095,7 +1795,7 @@
 68
 08
 cc
-32
+38
 18
 41
 04
@@ -2111,7 +1811,7 @@
 68
 08
 cc
-6f
+75
 98
 40
 fe
@@ -2123,7 +1823,7 @@
 68
 00
 cc
-33
+39
 98
 00
 72
@@ -2131,11 +1831,63 @@
 d8
 c0
 4b
-cf
+d5
 20
 20
 7f
 01
+68
+08
+cc
+44
+68
+00
+cc
+61
+1f
+e1
+7e
+03
+1f
+ef
+a2
+04
+58
+00
+4c
+4a
+9a
+20
+fe
+00
+98
+40
+8c
+00
+e8
+c0
+80
+00
+60
+00
+cc
+43
+18
+40
+84
+01
+18
+41
+04
+03
+60
+08
+cc
+44
+20
+60
+00
+00
 78
 44
 fc
@@ -2155,27 +1907,15 @@
 68
 00
 cc
-3d
-1f
-ed
-84
-00
-79
-20
-04
-01
-18
 43
-1c
-00
 20
-60
-00
-00
+20
+53
+da
 20
 40
-02
-15
+01
+d7
 78
 57
 fc
@@ -2199,7 +1939,7 @@
 68
 01
 4c
-36
+3c
 98
 00
 36
@@ -2211,7 +1951,7 @@
 24
 2c
 02
-57
+1e
 78
 46
 fc
@@ -2231,15 +1971,15 @@
 20
 40
 02
-54
+1b
 60
 00
 cc
-e7
+ed
 68
 08
 cc
-e6
+ec
 98
 46
 7c
@@ -2247,23 +1987,23 @@
 24
 22
 82
-57
+1e
 20
 40
 02
-54
+1b
 60
 00
 cb
-ad
+b3
 68
 00
 cb
-ad
+b3
 68
 08
 cc
-34
+3a
 a8
 40
 0e
@@ -2271,11 +2011,11 @@
 24
 20
 82
-57
+1e
 20
 40
 02
-54
+1b
 e0
 a0
 80
@@ -2290,20 +2030,20 @@
 1f
 20
 22
-82
-3f
+81
+fe
 20
 40
 02
-54
+1b
 e0
 a0
 80
 00
 c2
 00
-02
-3c
+01
+fb
 18
 a2
 22
@@ -2311,11 +2051,11 @@
 20
 40
 02
-54
+1b
 60
 00
 cd
-6e
+74
 1a
 22
 0a
@@ -2351,7 +2091,7 @@
 20
 23
 02
-57
+1e
 78
 37
 fc
@@ -2379,11 +2119,43 @@
 68
 00
 cd
-6e
-20
+74
+1f
+e2
+22
+00
+68
+08
+cc
+f4
+58
+00
+4c
+fb
+98
 40
+8a
 00
-5e
+1a
+22
+7e
+00
+e0
+a0
+80
+00
+18
+40
+84
+01
+18
+41
+04
+07
+60
+08
+cc
+f4
 20
 60
 00
@@ -2409,45 +2181,37 @@
 fc
 00
 20
-40
+20
 26
 4d
 20
-60
+40
+53
+c4
+68
+02
+4c
+61
+98
 00
+12
 00
 20
 40
+01
+d7
+20
+40
 29
 18
 68
 08
 cc
-3d
-20
+43
 20
+40
 29
 33
-20
-40
-53
-c4
-68
-02
-4c
-5b
-98
-00
-12
-00
-20
-40
-02
-15
-20
-40
-02
-5b
 79
 20
 2a
@@ -2499,7 +2263,7 @@
 68
 00
 cc
-e6
+ec
 08
 00
 86
@@ -2507,7 +2271,7 @@
 68
 00
 cc
-35
+3b
 98
 00
 72
@@ -2515,7 +2279,7 @@
 d8
 c0
 4b
-ef
+f5
 e8
 c0
 80
@@ -2527,7 +2291,7 @@
 c2
 00
 02
-74
+39
 78
 24
 7c
@@ -2567,7 +2331,7 @@
 68
 0a
 4c
-54
+5a
 1c
 42
 7e
@@ -2587,11 +2351,11 @@
 68
 02
 4c
-54
+5a
 68
 08
 cc
-58
+5e
 98
 40
 84
@@ -2615,7 +2379,7 @@
 60
 02
 4c
-54
+5a
 20
 20
 7f
@@ -2643,7 +2407,7 @@
 c2
 00
 02
-91
+56
 18
 49
 7e
@@ -2684,10 +2448,6 @@
 60
 00
 00
-20
-60
-00
-00
 c6
 13
 00
@@ -2695,11 +2455,11 @@
 20
 40
 03
-5c
+66
 20
 40
-00
-df
+02
+6d
 68
 00
 c0
@@ -2707,7 +2467,7 @@
 c3
 00
 02
-a6
+6a
 68
 00
 80
@@ -2728,6 +2488,74 @@
 60
 00
 00
+20
+40
+02
+7e
+20
+40
+02
+6a
+20
+40
+3e
+bf
+20
+40
+02
+f5
+68
+12
+00
+70
+68
+1a
+00
+78
+98
+41
+84
+00
+18
+44
+04
+00
+60
+1a
+00
+7c
+68
+10
+80
+7d
+79
+3f
+fe
+02
+60
+10
+80
+7d
+68
+10
+80
+7e
+79
+3f
+fe
+06
+60
+10
+80
+7e
+d8
+40
+00
+1d
+20
+20
+68
+06
 68
 00
 cb
@@ -2739,7 +2567,7 @@
 20
 20
 04
-fa
+b0
 70
 89
 5b
@@ -2763,7 +2591,15 @@
 20
 35
 82
-bd
+a9
+68
+01
+c4
+a3
+60
+01
+cb
+6a
 20
 40
 00
@@ -2771,7 +2607,11 @@
 20
 40
 02
-be
+92
+20
+40
+04
+9b
 68
 00
 c2
@@ -2779,43 +2619,27 @@
 c0
 1a
 02
-c1
+95
 20
-40
-04
-a4
-70
-01
-6d
-06
 20
-40
 04
-32
-68
-00
-c0
-92
-2f
-ef
-fe
-00
-20
-40
-fd
-dd
+66
+58
+03
+03
+03
+60
+01
+cb
+ab
 20
 20
 04
-c6
-20
-20
-03
-12
+ec
 68
 00
 cc
-ea
+f0
 60
 00
 c1
@@ -2826,71 +2650,163 @@
 00
 70
 11
-c6
-12
-20
-20
-06
-b6
-70
-11
-c6
-42
+c7
+22
 20
 20
 06
-b6
+d0
+da
 20
-40
-03
-12
+43
+70
+ea
 20
-40
-40
-c0
+80
+00
 20
-40
-40
-d9
-c0
-18
-02
-cd
+7a
+00
+00
+98
 c0
-18
-82
-df
-20
-40
-40
-d1
-20
+a2
 00
-03
 e8
+c0
+80
+00
+c1
+00
+80
+00
 20
 20
 02
-c7
+98
+70
+4b
+69
+5a
 20
-40
-03
-78
-68
+60
+00
 00
-c6
-de
-c0
-2d
-02
-d1
-20
-20
-40
-e0
 70
-46
-e0
+4b
+69
+ff
+70
+42
+10
+34
+58
+0f
+0f
+0f
+60
+01
+c4
+a0
+60
+01
+c4
+a3
+20
+60
+00
+00
+20
+40
+02
+ec
+70
+11
+c7
+61
+20
+20
+06
+d0
+70
+42
+12
+76
+20
+20
+3d
+36
+20
+40
+02
+a9
+20
+40
+40
+c0
+20
+40
+40
+d9
+c0
+18
+02
+b7
+c0
+18
+82
+da
+20
+40
+40
+d1
+20
+00
+03
+e8
+20
+20
+02
+ad
+70
+4b
+00
+01
+20
+40
+64
+0f
+20
+40
+02
+ab
+20
+20
+64
+11
+20
+40
+02
+e0
+68
+00
+c6
+de
+c0
+2d
+02
+bc
+c0
+6c
+02
+ca
+20
+20
+40
+e1
+70
+46
+e0
 07
 58
 00
@@ -2907,15 +2823,15 @@
 da
 60
 4b
-7a
+79
 20
 40
 02
-d8
+c3
 20
 20
-03
-7f
+02
+e7
 ea
 61
 00
@@ -2943,11 +2859,75 @@
 20
 20
 02
-d8
+c3
+58
+00
+00
+16
 20
 40
-03
-78
+64
+14
+1f
+e6
+7c
+bd
+24
+22
+82
+ad
+58
+00
+00
+19
+20
+40
+64
+14
+1f
+e6
+7c
+55
+24
+22
+82
+ad
+58
+00
+00
+1b
+20
+40
+64
+14
+1f
+e6
+7c
+1d
+24
+22
+82
+ad
+70
+46
+e0
+08
+da
+60
+4b
+93
+20
+40
+02
+c3
+20
+20
+02
+e7
+20
+40
+02
+e0
 68
 00
 c6
@@ -2955,7 +2935,7 @@
 c0
 00
 02
-e3
+de
 20
 20
 40
@@ -2963,51 +2943,127 @@
 70
 46
 e0
-08
+09
 20
 20
 41
 3a
-70
-11
-c6
+20
+40
+02
+a9
+58
+00
 80
+06
+20
+40
+64
+13
 20
+00
+2e
+e0
+da
+60
+4b
+a3
 20
-06
-b6
-68
-08
-cb
-47
+40
+02
+c3
 20
 20
+02
+e7
 68
-25
-70
-80
-86
-40
-70
-80
-87
 00
+c7
+7a
+c0
+ff
+84
+b0
 68
-10
-80
-81
-79
-3f
-fe
 00
-79
-3f
-fe
-01
-79
-20
-7e
-03
+c6
+e1
+60
+00
+c7
+7a
+20
+20
+04
+b0
+20
+40
+02
+a9
+58
+00
+00
+06
+20
+40
+64
+14
+1f
+e1
+fe
+08
+1f
+ed
+7e
+00
+1f
+e0
+fe
+06
+20
+20
+64
+13
+70
+11
+c7
+80
+20
+20
+06
+d0
+68
+08
+cb
+46
+20
+20
+68
+25
+70
+80
+86
+40
+70
+80
+87
+00
+68
+10
+80
+81
+79
+3f
+fe
+00
+79
+3f
+fe
+01
+79
+20
+7e
+03
 79
 3f
 fe
@@ -3043,7 +3099,7 @@
 20
 40
 03
-42
+51
 20
 40
 44
@@ -3063,7 +3119,7 @@
 20
 22
 83
-34
+43
 60
 09
 47
@@ -3080,50 +3136,38 @@
 00
 c7
 7a
-68
-02
-4b
-4e
-60
-02
-47
-7b
-60
-02
-4c
-5b
 20
 40
 03
-42
+51
 20
 40
 03
-14
+22
 20
 40
 03
-2b
+3a
 20
 40
 03
-20
+26
 20
 40
 03
-17
+31
 20
 40
 02
-e9
+f7
 d8
 40
 00
-07
+02
 da
 20
-4b
-72
+47
+c4
 da
 40
 00
@@ -3139,23 +3183,35 @@
 20
 40
 03
-20
+26
 20
 40
 03
-17
+31
 20
 40
 03
-3a
-70
-42
-12
-76
+49
 20
 20
-3d
-36
+02
+a9
+d8
+40
+00
+04
+da
+20
+4c
+61
+da
+40
+00
+5b
+20
+60
+00
+00
 68
 01
 c7
@@ -3168,42 +3224,10 @@
 40
 65
 2a
-58
-01
-86
-a0
-20
-40
-2a
-8f
 20
-40
-65
-0b
-58
-00
-01
-fa
-60
-11
-00
-8c
-58
-00
-00
-05
 20
-40
-64
-f3
-c2
-80
 03
-17
-20
-60
-00
-00
+31
 1f
 e2
 26
@@ -3227,7 +3251,7 @@
 60
 02
 4b
-49
+48
 1a
 62
 7e
@@ -3239,7 +3263,7 @@
 68
 02
 4b
-49
+48
 e2
 42
 00
@@ -3249,6 +3273,42 @@
 00
 00
 58
+01
+86
+a0
+20
+40
+2a
+8f
+20
+40
+65
+0b
+58
+00
+01
+fa
+60
+11
+00
+8c
+58
+00
+00
+05
+20
+40
+64
+f3
+c2
+80
+03
+31
+20
+60
+00
+00
+58
 00
 47
 7f
@@ -3275,11 +3335,11 @@
 20
 40
 03
-42
+51
 20
 40
 03
-2b
+3a
 20
 20
 65
@@ -3287,11 +3347,11 @@
 20
 40
 03
-31
+40
 20
 40
-03
-4c
+05
+3e
 20
 40
 43
@@ -3303,7 +3363,7 @@
 60
 02
 4c
-5b
+61
 20
 60
 00
@@ -3315,7 +3375,7 @@
 20
 40
 02
-e9
+f7
 20
 40
 69
@@ -3327,7 +3387,7 @@
 da
 20
 4b
-49
+48
 68
 08
 8a
@@ -3347,75 +3407,55 @@
 20
 20
 03
-3b
-70
-4b
-77
-5a
+4a
 20
-60
-00
-00
-70
-4b
-6b
+40
+03
+56
+20
+34
 01
-70
-4b
-6a
+92
+20
+20
 01
-70
-4b
-77
-ff
-68
-03
-4d
-78
-60
-03
-44
-a0
+90
+df
 20
-60
 00
-00
-20
-40
-03
-42
+02
 d8
-40
-00
-07
-da
+c0
+4c
+61
 20
-4b
-72
-da
 40
+7f
+e7
+58
 00
-5f
-68
-01
-c7
+ff
+ff
+e8
+c9
 00
-9a
-40
-fe
 00
+98
+46
+7c
+00
+24
+42
+ff
+e9
+c2
+00
+03
+5a
 20
-20
-65
-62
-20
-40
-04
-f2
-20
-20
-01
-e8
+60
+00
+00
 20
 40
 44
@@ -3430,7 +3470,7 @@
 00
 70
 4d
-73
+79
 01
 58
 00
@@ -3439,7 +3479,7 @@
 60
 01
 4d
-74
+7a
 20
 60
 00
@@ -3451,11 +3491,11 @@
 d8
 a0
 48
-0a
+0c
 20
 40
 03
-64
+6e
 d8
 c0
 19
@@ -3463,7 +3503,7 @@
 20
 40
 03
-64
+6e
 d8
 c0
 1a
@@ -3471,7 +3511,7 @@
 20
 40
 03
-64
+6e
 d8
 c0
 1b
@@ -3487,7 +3527,7 @@
 d8
 c0
 48
-0a
+0c
 d8
 a0
 18
@@ -3495,7 +3535,7 @@
 20
 40
 03
-64
+6e
 d8
 a0
 19
@@ -3503,7 +3543,7 @@
 20
 40
 03
-64
+6e
 d8
 a0
 1a
@@ -3511,7 +3551,7 @@
 20
 40
 03
-64
+6e
 d8
 a0
 1b
@@ -3519,91 +3559,19 @@
 20
 20
 03
-64
-70
-41
-72
-00
-70
-4b
-45
-1e
-20
-60
-00
-00
-68
-00
-cb
-44
-c1
-80
-80
-00
-58
-00
-00
-00
-60
-00
-cb
-44
-60
-02
-46
-9b
-20
-20
-03
-b5
-20
-40
-03
-12
-58
-00
-80
-06
-20
-40
-64
-13
-20
-00
-2e
-e0
-da
-60
-4b
-a0
-20
-40
-02
-d8
-20
-20
-03
-7f
+6e
 68
+01
+45
 00
-c7
+24
 7a
-c0
-ff
-84
-fa
-68
 00
-c6
-e1
-60
 00
-c7
-7a
 20
 20
-04
-fa
+41
+79
 20
 40
 58
@@ -3615,11 +3583,11 @@
 68
 00
 cb
-77
+69
 c0
 7f
 83
-8b
+83
 68
 00
 c6
@@ -3639,14 +3607,14 @@
 20
 5a
 03
-b3
+b4
 68
 02
 46
 d3
 c2
 82
-c1
+83
 79
 20
 40
@@ -3659,15 +3627,15 @@
 20
 40
 03
-6f
+90
 20
 40
 03
-72
+93
 20
 40
 03
-ae
+af
 da
 20
 46
@@ -3679,11 +3647,47 @@
 20
 54
 03
-9d
+9e
+20
+60
+00
+00
+70
+41
+72
+00
+70
+4b
+60
+1e
 20
 60
 00
 00
+68
+00
+cb
+5f
+c1
+80
+80
+00
+58
+00
+00
+00
+60
+00
+cb
+5f
+60
+02
+46
+9b
+20
+20
+02
+b3
 70
 47
 a2
@@ -3731,7 +3735,7 @@
 20
 34
 03
-a5
+a6
 20
 60
 00
@@ -3782,11 +3786,11 @@
 00
 70
 48
-06
+08
 01
 70
 48
-07
+09
 0a
 20
 60
@@ -3800,14 +3804,10 @@
 40
 58
 14
-70
-4b
-00
-01
 20
 20
 02
-c5
+b3
 20
 40
 7e
@@ -3827,7 +3827,7 @@
 20
 40
 05
-57
+25
 68
 08
 c6
@@ -3843,7 +3843,7 @@
 20
 40
 05
-52
+2b
 68
 00
 c6
@@ -3863,7 +3863,7 @@
 20
 40
 05
-52
+2b
 68
 00
 c6
@@ -3879,11 +3879,11 @@
 68
 00
 cb
-74
+6f
 20
 3a
 04
-68
+0e
 68
 00
 c7
@@ -3900,18 +3900,6 @@
 00
 c7
 7a
-1f
-e0
-fe
-02
-60
-00
-cb
-2e
-20
-40
-04
-f7
 20
 20
 3d
@@ -3923,119 +3911,63 @@
 c0
 0a
 03
-dc
+d9
 c0
 0a
 83
-ed
+dc
 c0
 14
 83
-f0
+df
 c0
 19
 03
-f2
+e1
 c0
 20
 03
-f4
+e3
 c0
 1c
 83
-f6
+e7
 c0
 1d
 03
-f9
+eb
 c0
 1e
 03
-fc
+ee
 20
 20
 41
 7d
 20
 40
-03
-b5
-58
-00
-00
-00
-60
-01
-cb
-6a
-68
-03
-4b
-4e
-68
-0b
-47
-22
-98
-46
-7c
-00
-24
-42
-83
-44
-20
-40
-34
-10
+02
+b3
 70
-4b
-71
-01
-68
-00
+11
 c7
-a1
-24
-3a
-03
-e8
-70
-4b
-6f
-14
-70
-4b
-79
-00
-70
-4b
-6d
-00
-20
-40
-04
-b5
-20
-40
-03
-98
+b0
 20
 20
-41
-c3
+06
+d0
 20
 40
-04
-02
+03
+f8
 70
 11
-c6
+c7
 a2
 20
 20
 06
-b6
+d0
 70
 0a
 99
@@ -4046,68 +3978,96 @@
 8f
 70
 11
-c6
+c7
 b3
 20
 20
 06
-b6
+d0
 70
 11
-c6
+c7
 a1
 20
 20
 06
-b6
-20
-40
-03
-b5
+d0
 70
 11
-c6
-50
+c7
+b5
 20
 20
 06
-b6
+d0
 20
 40
 04
+ab
+20
+40
 02
+b3
 70
 11
-c6
-51
+c7
+92
 20
 20
 06
-b6
+d0
 20
 40
 03
-b5
+f8
 70
 11
-c6
-52
+c7
+a0
 20
 20
 06
-b6
+d0
+20
+40
+04
+ab
+70
+4b
+67
+01
 20
 40
 04
+69
+20
+40
 02
+b3
+20
+40
+3f
+8d
+20
+40
+43
+66
+20
+20
+03
+0f
+20
+40
+03
+f8
 70
 11
-c6
-a0
+c7
+a4
 20
 20
 06
-b6
+d0
 68
 00
 cb
@@ -4121,53 +4081,25 @@
 00
 00
 20
-40
-02
-c5
-58
-00
-00
-06
-20
-40
-64
-14
-1f
-e1
-fe
-08
-1f
-ed
-7e
-00
-1f
-e0
-fe
-06
-20
-20
-64
-13
 20
-40
-04
-19
+02
+ec
 20
 40
 04
-b8
+6c
 20
 40
 04
-83
+38
 20
 40
 04
-a7
+5b
 20
 40
 04
-88
+3d
 20
 40
 42
@@ -4175,27 +4107,27 @@
 20
 40
 04
-37
+31
 20
 40
 04
-3e
+15
 20
 40
 04
-6c
+12
 20
 40
 04
-72
+1b
 20
 40
 04
-75
+21
 20
 40
 04
-7d
+08
 20
 20
 42
@@ -4203,135 +4135,179 @@
 68
 00
 cb
-6a
+72
 20
 7a
 00
 00
-da
-60
-4b
-6b
-da
-40
-04
-1e
-20
-20
-33
-6d
-70
-4b
-6b
-01
-68
-00
-cb
-6c
 1f
 e0
-fe
-01
-1f
-e1
-7e
-01
+ff
+ff
 60
 00
 cb
-6c
-c0
+72
+24
+7a
+00
 00
-04
-32
-68
-03
-4b
-64
-60
-03
-44
-a0
-20
-40
-04
-28
 20
 20
-7d
-f4
+42
+b0
 70
-43
+4b
 6f
-1f
+ff
+20
+60
+00
+00
 70
-43
-8f
-1f
+4b
+6f
+00
+20
+60
+00
+00
+da
+60
+46
+c6
+da
+40
+3d
+60
 20
+20
+33
+6d
+da
+60
+46
+ae
+da
 40
 04
+18
+20
+20
+33
+74
+68
+00
+cb
 30
-d8
-c0
+24
+7a
+00
+00
+20
+20
+42
+66
+da
+60
 4b
-12
-d8
-a0
-43
-7b
-df
+60
+da
+40
+04
+1e
+20
 20
+33
+6d
+68
 00
-13
+c7
+c7
+60
+00
+c1
+72
 20
-40
-7f
-01
 20
+04
+36
+68
+00
+cb
+68
 20
-57
-b8
-d8
-e0
+7a
 00
-07
+00
+da
+60
+4b
+6d
+da
+40
+04
+26
 20
 20
-43
-ce
-70
-43
-6f
+33
+6d
+68
 00
-70
-43
-8f
+cb
+6e
+24
+7a
 00
-d8
-e0
 00
-07
 20
+20
+5b
+f5
+68
+00
+cb
+69
+c1
+ff
+80
+00
+68
+00
+cb
+68
+24
+7a
+00
+00
+da
+60
+4b
+71
+da
 40
-43
-d2
+04
+30
 20
 20
-03
-48
+33
+6d
+20
+20
+05
+3c
 da
 60
 4b
-46
+61
 da
 40
 04
-3a
+34
 20
 20
 33
-6d
+74
 58
 12
 4f
@@ -4339,10 +4315,10 @@
 60
 01
 cc
-62
+68
 70
 4b
-44
+5f
 01
 20
 60
@@ -4350,112 +4326,92 @@
 00
 da
 60
-4d
-7f
+48
+09
 da
 40
 04
-41
+3b
 20
 20
 33
-74
+6d
 70
-4d
-7e
-01
+48
+08
+00
 20
 60
 00
 00
 68
-08
-c6
-ed
+00
+c7
 20
-40
-05
-57
+c1
+01
+00
+00
 68
-08
+00
 c6
-ed
-20
-40
-68
-1d
-24
-20
-84
-50
+b6
 20
-40
-05
-52
+3a
+04
+49
 68
 00
-ca
-fd
+c6
+85
 60
 00
-ca
-fe
+c6
+da
 68
 00
 c6
-d9
+db
 c1
 00
 80
 00
 70
 46
-d9
+db
 01
 d8
 e0
 00
-06
-20
+09
 20
+40
 43
 d2
 20
-40
-05
-52
 20
-40
-04
-57
+43
+ca
+70
+47
+a0
+28
 20
 40
 04
-ae
-68
-00
-c6
-d9
-c1
-00
-00
-00
-70
-46
-d9
-00
+4c
 20
-60
-00
-00
+20
+43
+b0
 da
 60
-4a
-fe
+46
+da
 da
 40
 04
-5a
+4f
 20
 20
 33
@@ -4465,813 +4421,569 @@
 46
 d3
 c3
-83
-00
+84
+80
 00
+20
+40
+04
+10
+68
+01
+46
+82
+2f
+ef
+fe
+0b
+20
+40
+c2
+d4
+68
+01
+46
+82
+2f
+ef
+fe
+07
+20
+40
+c3
+92
 d8
 e0
 00
-06
+09
 20
 40
 43
 ce
 20
-40
-04
-6a
-70
-41
-bd
+20
+43
+b8
+68
+00
+cb
+30
+24
+7a
+00
 00
 68
-08
+00
 c7
+9f
 20
-18
-40
-84
-01
-68
+7a
 00
-c6
-d2
-98
-46
-7c
 00
-24
-41
-43
-cc
-60
-08
+68
+00
 c7
+a0
 20
-20
-40
-03
+3a
 04
-20
-20
-43
-78
-70
-4b
-74
+64
+1f
+e0
+ff
 ff
-20
 60
 00
-00
-70
-4b
-74
-00
+c7
+a0
 20
 60
 00
 00
-da
-60
-46
-ae
-da
-40
-04
-6f
+70
+47
+9f
+00
 20
 20
-33
-74
+34
+0a
 70
-4b
-79
+47
+9f
 01
+70
+47
+a0
+28
 20
-40
-04
-9d
-20
-20
-04
-91
-da
-60
-46
-c6
-da
-40
-3d
 60
+00
+00
+70
+47
+9f
+00
+70
+47
+a0
+00
 20
-20
-33
-6d
+60
+00
+00
 68
 00
 cb
-71
+26
 20
 7a
 00
 00
-da
-60
-4b
-6f
-da
-40
-04
-7a
-20
-20
-33
-6d
 68
 00
 cb
-70
-24
-7a
+29
+c0
 00
+04
+72
+c0
 00
+84
+7c
 20
-20
-5b
-f5
-da
 60
-4b
-45
-da
-40
-04
-80
-20
-20
-33
-6d
-68
 00
-c7
-c5
-60
 00
-c1
-72
 20
-20
-04
-3c
-da
-60
-48
-07
-da
 40
 04
 86
-20
-20
-33
-6d
-70
-48
-06
+68
 00
-20
+cb
+2e
+1f
+e0
+fe
+01
 60
 00
-00
+cb
+2e
 68
+08
+cb
+2a
+98
+46
+7c
 00
-c7
 20
-c1
-01
+42
+84
+7a
+20
+60
 00
 00
-68
+70
+4b
+30
 00
-c6
-b6
 20
-3a
+20
 04
-94
+91
 68
 00
-c6
-85
+cb
+2c
+1f
+e0
+ff
+ff
 60
 00
-c6
-da
+cb
+2c
+24
+7a
+00
+00
 68
 00
-c6
-db
-c1
+cb
+2b
+60
 00
-80
+cb
+2c
+68
 00
-70
-46
-db
-01
-d8
-e0
+cb
+28
+c0
 00
-09
-20
-40
-43
-d2
-20
+84
+91
+c0
+00
+04
+86
 20
-43
-ca
+60
+00
+00
 70
-47
-a0
+4b
 28
+01
+68
+08
+cb
+27
 20
 40
-04
-97
+68
+0e
+68
+08
+cb
+27
 20
 20
-43
-b0
-da
-60
-46
-da
-da
-40
-04
-9a
+68
+25
+68
+08
+cb
+77
 20
+40
+68
+0e
+68
+08
+cb
+77
 20
-33
-6d
 20
-40
-04
-6a
+68
+25
+58
+00
+00
+00
+60
+01
+cb
+2c
 68
 00
 cb
-6a
+2d
 24
 3a
 04
-a4
-20
-40
-04
+95
+70
+4b
+26
+00
+70
+4b
+29
+00
+70
+4b
+2e
+00
+70
+4b
 28
-68
-01
-46
-82
-2f
-ef
-fe
-07
-20
-40
-c3
-92
-d8
-e0
 00
-09
+68
+08
+cb
+27
 20
 40
-43
-ce
+68
+0e
+68
+08
+cb
+27
 20
 20
-43
-ba
 68
+29
+70
+4b
+30
 01
-46
-87
-60
+70
+4b
+26
 01
-46
-ac
+70
+4b
+29
+00
+70
+4b
+2e
+00
 20
 60
 00
 00
+70
+4b
+2b
+03
 68
 00
 c7
-9f
 20
-7a
-00
+c0
 00
-da
-60
-47
-a0
-da
-40
-04
-ac
-20
-20
-33
-6d
+84
+a9
 70
-47
-9f
+4b
+30
 00
-20
-20
-34
-0a
-68
+70
+4b
+2d
 01
-46
-82
-c3
-84
-80
-00
-c3
-80
-00
-00
-c6
-13
-00
-00
 70
-47
-9f
+4b
+2c
+05
+70
+4b
+26
 01
 70
-47
-a0
-28
+4b
+29
+01
 20
 60
 00
 00
 70
-47
-9f
-00
-70
-47
-a0
-00
-20
-60
-00
-00
+4b
+2b
+06
+20
+20
+04
+a3
 68
 00
 cb
-26
-20
+2e
+24
 7a
 00
 00
 68
 00
 cb
-29
-c0
+30
+24
+7a
+00
 00
-84
-d0
 20
-40
+20
 04
-dd
+8f
 68
 00
-cb
-2a
-1f
+c6
 e0
-fe
+c0
+02
+04
+d7
+c0
+04
+04
+c7
+c0
 01
-60
-00
-cb
-2a
+04
+cf
+c0
+03
+04
+bf
+c0
+03
+84
+c7
 68
-08
-cb
-2b
-98
-46
-7c
 00
+c7
+7a
 20
-42
-84
-c4
-20
-60
-00
+5a
+04
+c5
+68
 00
-70
-4b
-30
+c7
+7a
+c0
 00
+84
+bc
+c0
+01
+bd
+8c
 20
 20
-04
-e8
-70
-4b
-31
+3d
+88
+68
 00
-70
-4b
-2c
-05
-70
-4b
-2f
+c7
+7f
+1f
+e0
+ff
+ff
+20
+20
+3d
+be
+68
 00
-70
-4b
-2e
-01
-70
-4b
-2d
-05
-70
-4b
-26
-01
-70
-4b
-29
-01
+c7
+7a
 20
-60
+5a
+04
+c5
+68
 00
+c7
+7a
+c0
 00
-70
-4b
-2c
+84
+cd
+c0
 01
+bd
+8c
 20
 20
-04
-c8
-da
-60
-4b
-2d
-da
-40
-04
-d3
-20
+3d
+88
+70
+47
+7a
+01
 20
-33
-6d
-68
-00
-cb
-2c
 60
 00
-cb
-2d
-68
 00
-cb
-2f
-20
-3a
-04
-db
 68
 00
-cb
-2e
+c7
+7a
 20
-3a
+5a
 04
-e6
-1f
-e0
-ff
-ff
-60
-00
-cb
-2e
+c5
 68
 00
-cb
-28
+c7
+7a
 c0
 00
 84
-e8
-70
-4b
-28
+cd
+c0
 01
-68
-08
-cb
-27
+bd
+88
 20
-40
-68
-0e
-68
-08
-cb
-27
+20
+3d
+8a
+70
+46
+b5
+00
 20
 20
-68
-25
+3d
+c1
 68
 00
-cb
-2a
-24
+c7
 7a
-00
-00
+20
+5a
+04
+c5
 68
 00
-cb
-30
-24
+c7
 7a
+c0
 00
-00
+bd
+88
+c0
+01
+84
+d5
+20
+20
+3d
+8e
 58
 00
 00
-00
-60
-01
-cb
-2d
-68
-00
-cb
-2e
-24
-3a
-04
-ec
-70
-4b
-26
-00
-70
-4b
-29
-00
-70
-4b
-2a
-00
-70
-4b
-28
-00
-68
-08
-cb
-27
-20
-40
-68
-0e
-68
-08
-cb
-27
-20
-20
-68
-29
-70
-4b
-30
-01
-70
-4b
-26
-01
-70
-4b
-29
-00
-70
-4b
-2a
-00
-20
-60
-00
-00
-70
-4b
-2c
 05
-70
-4b
-2f
-01
 20
 20
-04
-ca
+3d
+be
 68
 00
 c7
 7a
-1f
-e6
-7c
-01
 20
-42
-85
-08
+5a
+04
+c5
 68
 00
 c7
 7a
 c0
 00
-05
-0a
-c0
-01
-85
-11
-68
-00
-c6
-e0
-c0
-02
-3d
-9f
-c0
-03
-05
-18
-c0
-03
-85
-18
-c0
-01
-05
-1e
-68
-00
-c7
-81
-60
-00
-c6
-b5
-20
-20
-3d
-c1
-70
-47
-7a
-02
-20
-60
-00
-00
-68
-00
-c6
-e0
-c0
-02
-3d
+bd
 9b
 c0
-03
-05
-1a
-c0
-03
-85
-1a
-c0
 01
-05
-21
-68
-00
-c7
-7f
-20
-20
-05
-06
-68
-00
-c6
-e0
-c0
-02
-3d
+bd
 a1
-c0
-03
-05
-1c
-c0
-03
-85
-1c
-c0
-01
-05
-23
-68
-00
-c7
-82
-20
-20
-05
-06
-68
-00
-cb
-3a
-20
-20
-05
-06
-68
-00
-cb
-38
-20
-20
-05
-06
-68
-00
-cb
-3b
-20
-20
-05
-06
-68
-00
-cb
-3a
-1f
-e0
-fe
-03
-20
-20
-05
-06
-68
-00
-cb
-38
-20
-20
-05
-1f
-68
-00
-cb
-3b
 20
 20
-05
-1f
+3d
+9f
 78
 54
 7c
@@ -5287,7 +4999,7 @@
 20
 40
 05
-5d
+30
 20
 40
 40
@@ -5298,180 +5010,268 @@
 7e
 20
 40
-05
-2f
+04
+ea
 24
 34
-06
-e3
+04
+e7
 20
 40
 06
-d7
+f1
 20
 20
 3f
 a0
 20
 40
-05
-31
-20
-20
-40
-9a
-da
+06
+fd
+70
+4b
+38
+00
 20
+60
 00
 00
 20
 40
-05
-37
-20
-40
-05
-35
+04
+ec
 20
 20
 40
-8e
+9a
+68
+00
+c6
+9a
+1f
+e2
+22
+00
 20
 40
 05
-47
+02
 20
 20
-05
-4d
-68
-08
-c6
+40
+8e
+60
+00
+cb
+b2
+1f
+e3
+fe
+00
+1f
 e2
+24
+00
+18
+42
+26
+00
+68
+00
+cb
+b1
+1f
+e6
+7c
+02
 20
-40
+41
 05
-52
-68
-08
-c6
-e2
+2b
+24
+41
+05
+25
+1a
+62
+04
+00
 20
 40
 68
 1d
 79
 20
-a2
+a4
 00
+1a
+41
+7e
+07
 68
 08
-c6
-e3
-20
-40
+cb
+b1
+18
+42
+0e
+00
+18
+46
+7c
+02
+c0
+03
+85
+1f
+c0
+00
 05
-52
+22
+20
+60
+00
+00
+70
+4b
+b1
+00
 68
 08
 c6
-e3
-20
-40
+e2
 68
-1d
-79
+00
+cb
+ab
 20
-a2
+40
+04
+f0
+60
+00
+cb
+ab
+70
+4b
+b1
 01
 68
 08
 c6
-e4
+e3
+68
+00
+cb
+ac
 20
 40
-05
-52
+04
+f0
+60
+00
+cb
+ac
+70
+4b
+b1
+02
 68
 08
 c6
 e4
-20
-40
 68
-1d
-79
-20
-a2
-02
+00
+cb
+ad
 20
+40
+04
+f0
 60
 00
-00
+cb
+ad
+70
+4b
+b1
+03
 68
 08
 c6
 e5
+68
+00
+cb
+ae
 20
 40
-05
-57
+04
+f0
+60
+00
+cb
+ae
 68
 08
 c6
 e5
 20
 40
-68
-1d
-7d
-20
-a2
-03
-20
-20
 05
-52
+2b
+70
+4b
+b1
+04
 68
 08
 c6
 e6
+68
+00
+cb
+af
 20
 40
-05
-57
+04
+f0
+60
+00
+cb
+af
 68
 08
 c6
 e6
 20
-40
-68
-1d
-7d
-20
-a2
-04
-79
 20
-04
-07
-d8
-a0
-80
-78
+05
+2b
 20
-40
-68
-30
-79
+21
+05
+23
+f9
 3f
-84
-07
+a2
+00
 20
+60
+00
+00
 20
+21
 05
-5b
+20
+f9
+20
+22
+00
+20
+60
+00
+00
 79
 3f
 84
@@ -5496,14 +5296,38 @@
 20
 68
 0a
+79
 20
-40
-3f
-c0
+04
+07
+d8
+a0
+80
 78
-54
-7c
-00
+20
+40
+68
+30
+79
+3f
+84
+07
+20
+20
+05
+29
+68
+00
+c6
+e0
+20
+40
+3f
+c0
+78
+54
+7c
+00
 20
 20
 3f
@@ -5511,7 +5335,7 @@
 20
 40
 04
-b5
+69
 28
 0f
 fe
@@ -5519,19 +5343,87 @@
 20
 40
 81
-ec
+94
 70
-46
-b4
+4b
+72
+03
+20
+40
+43
+86
+20
+20
+41
+c1
+70
+11
+c7
+81
+20
+20
+06
+d0
+70
+11
+c7
+50
+20
+20
+06
+d0
+20
+40
+03
+51
+d8
+40
+00
+02
+da
+20
+47
+c4
+da
+40
 00
+5f
 68
+01
+c7
+00
+9a
+40
+fe
 00
-cb
-79
 20
-5a
+20
+65
+62
+d8
+a0
 43
-86
+7b
+df
+20
+00
+13
+20
+40
+7f
+01
+20
+20
+57
+b8
+68
+00
+c7
+20
+c1
+01
+00
+00
 58
 00
 00
@@ -5539,31 +5431,39 @@
 60
 01
 46
-b0
-20
-20
-42
-6f
-70
-11
-c6
-30
-20
+ac
 20
-06
-b6
+40
+02
+b3
+68
+00
+c0
+92
+2f
+ef
+fe
+01
 20
 40
-04
-e2
+c2
+d4
+68
+00
+c0
+92
+2f
+ef
+fe
+00
 20
 40
-03
-b5
+c2
+d7
 20
 20
-42
-cb
+04
+ab
 68
 00
 c5
@@ -5591,7 +5491,7 @@
 20
 40
 06
-56
+70
 20
 20
 53
@@ -5626,28 +5526,28 @@
 bb
 20
 40
-00
-5e
+02
+11
 20
 20
 54
 a3
 70
 11
-c6
-20
+c7
+40
 20
 20
 06
-b6
+d0
 70
 11
-c6
-21
+c7
+41
 20
 20
 06
-b6
+d0
 68
 00
 84
@@ -5655,11 +5555,11 @@
 c2
 82
 85
-a3
+7e
 20
 40
 06
-48
+62
 68
 00
 c7
@@ -5667,7 +5567,7 @@
 24
 3a
 05
-8d
+74
 68
 00
 84
@@ -5675,7 +5575,7 @@
 c3
 02
 05
-91
+78
 68
 00
 82
@@ -5683,7 +5583,7 @@
 20
 3a
 05
-91
+78
 20
 20
 56
@@ -5711,7 +5611,7 @@
 c0
 82
 85
-94
+7b
 70
 47
 8e
@@ -5723,11 +5623,19 @@
 20
 5a
 03
-a1
+a2
 20
 20
 56
 22
+20
+40
+05
+80
+20
+20
+05
+8c
 68
 00
 c6
@@ -5777,13 +5685,9 @@
 00
 00
 20
-40
-05
-97
-20
 20
 06
-4c
+66
 68
 00
 c7
@@ -5807,7 +5711,7 @@
 70
 46
 c6
-02
+01
 20
 60
 00
@@ -5867,7 +5771,7 @@
 c0
 01
 85
-bb
+a3
 20
 20
 56
@@ -5878,44 +5782,12 @@
 db
 c0
 00
-05
-bf
-c0
-00
 85
-c6
+a6
 20
 20
 5c
 65
-20
-40
-5c
-7b
-68
-00
-cb
-63
-20
-7a
-00
-00
-68
-00
-c3
-d8
-60
-00
-c1
-72
-60
-00
-c7
-c5
-20
-60
-00
-00
 e8
 c2
 80
@@ -5943,11 +5815,11 @@
 c0
 02
 05
-cf
+af
 c0
 03
 05
-fb
+dc
 20
 20
 56
@@ -5959,7 +5831,7 @@
 20
 40
 05
-a5
+8d
 20
 40
 7e
@@ -5975,7 +5847,7 @@
 c0
 08
 05
-de
+be
 1f
 ec
 84
@@ -5987,11 +5859,11 @@
 20
 21
 05
-ec
+cc
 d8
 40
 47
-c6
+c8
 60
 09
 44
@@ -6071,7 +5943,7 @@
 c0
 05
 05
-ee
+ce
 20
 20
 58
@@ -6087,7 +5959,7 @@
 c2
 81
 85
-f5
+d5
 68
 01
 04
@@ -6115,7 +5987,7 @@
 24
 22
 85
-f1
+d1
 20
 40
 5a
@@ -6123,11 +5995,15 @@
 24
 34
 05
-f1
-20
+d1
+70
+04
+7a
+05
 20
-59
-e2
+20
+5a
+77
 e8
 c0
 80
@@ -6135,18 +6011,18 @@
 c0
 00
 85
-ff
+e0
 c0
 02
-86
-01
+85
+e2
 20
 20
 5a
-f5
+f6
 70
 4b
-70
+6e
 01
 20
 20
@@ -6154,12 +6030,12 @@
 09
 70
 11
-c6
+c7
 82
 20
 20
 06
-b6
+d0
 68
 00
 80
@@ -6170,8 +6046,8 @@
 f2
 20
 40
-06
-09
+05
+ea
 d8
 e0
 00
@@ -6210,8 +6086,8 @@
 00
 20
 37
-06
-11
+05
+f2
 24
 36
 d8
@@ -6244,14 +6120,30 @@
 20
 57
 fb
-70
-11
-c6
-22
+68
+00
+c7
+a1
+24
+7a
+00
+00
+68
+00
+84
+78
+1f
+e6
+7e
+1a
+24
+62
+80
+00
 20
 20
-06
-b6
+3d
+60
 68
 10
 80
@@ -6291,7 +6183,7 @@
 20
 40
 06
-27
+0c
 60
 18
 80
@@ -6328,318 +6220,330 @@
 60
 00
 00
+78
+54
+7c
+00
 20
 40
 62
-bc
-24
-3a
-7d
-db
+c1
 68
 00
-8a
-99
-c5
-84
-fd
-d6
+80
+48
+20
+7a
+00
+00
+c2
+83
+86
+1b
 c0
-0f
+01
 86
-35
+1d
 c0
-10
-06
-38
+18
+86
+1f
 c0
-09
-06
-42
+0b
+86
+21
 20
 20
-7d
-ca
+60
+10
 70
-01
-85
-34
-68
-03
-04
-4f
+11
+c7
+20
 20
 20
 06
-3a
+d0
 70
-01
-85
-33
-68
-03
-00
-40
-60
+11
+c7
+21
+20
+20
+06
+d0
+70
+4b
 03
 01
-86
-68
-02
-46
-d3
-c4
-03
-80
-00
-d8
-e0
-00
-07
-20
-40
-43
-d2
 20
-40
-42
-e8
 20
-40
-42
-fb
+61
+c3
+70
+4b
+0b
+04
 20
 20
-03
-04
+61
+a4
 20
 40
-58
-90
+62
+bc
 24
 7a
 00
 00
-20
-20
-5a
-bf
-70
-4d
-6f
-01
-70
-4d
-6c
-00
-20
-60
-00
-00
 68
 00
-cd
-6c
-1f
-e0
-fe
-01
-60
-00
-cd
-6c
+80
+55
 20
-60
-00
+7a
 00
-68
 00
-cd
-6c
-1f
-e6
-7c
+c0
 02
-24
-41
 06
-54
+45
+c0
+08
+06
+2a
+20
+20
+63
+20
 68
 00
-cd
-6c
+c5
+5b
 c1
 00
 00
 00
-1f
-e0
-ff
-ff
-60
+c0
 00
-cd
-6c
+86
+2e
 20
-60
-00
-00
-70
-4d
-6c
-03
 20
-60
-00
+63
+5f
+20
+74
+80
 00
 68
-01
-46
-82
-c3
-85
-80
 00
-c3
-83
+81
+6d
+c2
 80
-00
-c3
-83
-00
-00
-da
+06
+32
 20
-4c
-f5
 20
-40
-02
-8e
-60
-08
-cd
-6d
-58
-00
-00
-82
-c5
-13
-06
-60
-58
-00
+63
+99
+68
 00
-80
-98
-46
-7c
+cb
+03
+c0
 00
-24
-21
-06
-78
+e3
+9d
 68
 00
-cd
-6c
-1f
-e6
-7c
-02
-24
-21
-06
-68
+c1
+bd
+20
+3a
+63
+a9
 68
 00
-cd
-6c
-c0
+84
+d1
+c4
+01
+80
 00
-06
-79
-20
-60
+c4
+01
 00
 00
 68
 00
-cd
-6c
-c1
-99
+cb
+02
+20
+7a
 00
 00
 70
-4d
-6c
+4b
+02
 00
 68
-08
-cd
-6d
-58
-00
+02
+04
+e9
+d8
+40
 00
-77
-c5
-13
-06
-6f
-58
+14
+98
+40
+84
 00
+1c
+42
+7e
 00
-75
 98
 46
 7c
 00
 24
-61
+21
+06
+43
+20
+20
+63
+49
+70
+4b
+02
+01
+20
+60
 00
 00
+70
+48
+0b
+14
+20
+20
+63
+6f
+20
+40
+62
+bc
+24
+3a
+7d
+db
 68
 00
-cd
-6f
+8a
+99
+c5
+84
+fd
+d6
 c0
-00
+0f
+86
+4f
+c0
+10
 06
-80
-1f
-e0
-ff
-ff
-60
-00
-cd
-6f
+52
 c0
-00
+09
 06
-80
+5c
+20
+20
+7d
+ca
 70
-41
-de
-00
+01
+85
+34
+68
+03
+04
+4f
 20
+20
+06
+54
+70
+01
+85
+33
+68
+03
+00
+40
 60
+03
+01
+86
+68
+02
+46
+d3
+c4
+03
+80
+00
+d8
+e0
+00
+07
+20
+40
+43
+d2
+20
+40
+42
+e8
+20
+40
+42
+fb
+20
+20
+03
+0f
+20
+40
+58
+90
+24
+7a
 00
 00
+20
+20
+5a
+bf
 70
 4d
-6c
+75
+01
+70
+4d
+72
+00
+20
+60
+00
 00
 68
 00
 cd
-6f
-c0
-01
-06
-7e
+72
 1f
 e0
 fe
@@ -6647,11 +6551,211 @@
 60
 00
 cd
-6f
+72
+20
+60
+00
+00
+68
+00
+cd
+72
+1f
+e6
+7c
+02
+24
+41
+06
+6e
+68
+00
+cd
+72
+c1
+00
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+cd
+72
+20
+60
+00
+00
+70
+4d
+72
+03
+20
+60
+00
+00
+68
+01
+46
+82
+c3
+85
+80
+00
+c3
+83
+80
+00
+c3
+83
+00
+00
+da
+20
+4c
+fb
+20
+40
+02
+53
+60
+08
+cd
+73
+58
+00
+00
+82
+c5
+13
+06
+7a
+58
+00
+00
+80
+98
+46
+7c
+00
+24
+21
+06
+92
+68
+00
+cd
+72
+1f
+e6
+7c
+02
+24
+21
+06
+82
+68
+00
+cd
+72
+c0
+00
+06
+93
+20
+60
+00
+00
+68
+00
+cd
+72
+c1
+90
+00
+00
+70
+4d
+72
+00
+68
+08
+cd
+73
+58
+00
+00
+77
+c5
+13
+06
+89
+58
+00
+00
+75
+98
+46
+7c
+00
+24
+61
+00
+00
+68
+00
+cd
+75
+c0
+00
+06
+9a
+1f
+e0
+ff
+ff
+60
+00
+cd
+75
+c0
+00
+06
+9a
+70
+41
+de
+00
+20
+60
+00
+00
+70
+4d
+72
+00
+68
+00
+cd
+75
+c0
+01
+06
+98
+1f
+e0
+fe
+01
+60
+00
+cd
+75
 c0
 00
 86
-76
+90
 70
 41
 de
@@ -6735,19 +6839,19 @@
 c0
 01
 06
-9a
+b4
 c0
 02
 06
-9f
+b9
 c0
 10
 06
-ae
+c8
 20
 40
 06
-a4
+be
 70
 89
 55
@@ -6767,7 +6871,7 @@
 20
 40
 06
-a9
+c3
 70
 89
 55
@@ -6787,7 +6891,7 @@
 20
 40
 06
-a4
+be
 70
 89
 55
@@ -6879,7 +6983,7 @@
 68
 08
 91
-c6
+c7
 18
 51
 84
@@ -6887,7 +6991,7 @@
 68
 00
 cb
-54
+51
 98
 46
 7c
@@ -6895,11 +6999,11 @@
 20
 22
 86
-d5
+ef
 60
 08
 cb
-54
+51
 18
 40
 84
@@ -6915,7 +7019,7 @@
 68
 01
 cb
-55
+52
 98
 46
 7e
@@ -6923,7 +7027,7 @@
 68
 09
 cb
-58
+55
 98
 40
 fe
@@ -6935,15 +7039,15 @@
 60
 01
 cb
-5b
+58
 20
 40
 03
-42
+51
 68
 01
 cb
-5b
+58
 d8
 40
 01
@@ -6963,7 +7067,7 @@
 68
 0a
 4b
-5e
+5b
 98
 46
 7c
@@ -6971,11 +7075,11 @@
 24
 22
 86
-c6
+e0
 20
 40
-03
-12
+02
+a9
 58
 00
 1f
@@ -7003,7 +7107,7 @@
 68
 00
 91
-c6
+c7
 20
 20
 00
@@ -7019,7 +7123,7 @@
 20
 40
 07
-3c
+57
 58
 00
 00
@@ -7027,15 +7131,15 @@
 20
 40
 07
-32
+4d
 20
 5a
 07
-2e
+49
 24
 5a
 07
-30
+4b
 58
 00
 00
@@ -7043,19 +7147,19 @@
 20
 40
 07
-37
+52
 20
 5a
 07
-2e
+49
 68
 00
 cb
 0d
 c0
 00
-86
-e6
+87
+00
 df
 20
 00
@@ -7086,8 +7190,8 @@
 c0
 20
 40
-06
-f8
+07
+13
 68
 01
 11
@@ -7123,7 +7227,7 @@
 20
 40
 07
-00
+1b
 68
 01
 11
@@ -7140,6 +7244,10 @@
 01
 46
 9d
+20
+60
+00
+00
 68
 01
 11
@@ -7155,7 +7263,7 @@
 68
 08
 cb
-aa
+75
 98
 40
 fe
@@ -7167,11 +7275,11 @@
 60
 08
 cb
-aa
+75
 20
 20
 07
-09
+23
 68
 01
 11
@@ -7187,7 +7295,7 @@
 68
 08
 cb
-ab
+76
 98
 40
 fe
@@ -7199,15 +7307,11 @@
 60
 08
 cb
-ab
+76
 20
 20
 07
-09
-20
-60
-00
-00
+23
 60
 01
 91
@@ -7219,7 +7323,7 @@
 20
 20
 87
-13
+2d
 68
 00
 91
@@ -7227,7 +7331,7 @@
 c0
 7f
 87
-1a
+34
 68
 00
 91
@@ -7255,7 +7359,7 @@
 c0
 00
 07
-17
+31
 68
 01
 91
@@ -7263,7 +7367,7 @@
 20
 20
 07
-0f
+29
 70
 11
 c4
@@ -7275,7 +7379,7 @@
 20
 20
 07
-0f
+29
 68
 00
 91
@@ -7283,7 +7387,7 @@
 20
 40
 07
-25
+3f
 60
 00
 91
@@ -7295,7 +7399,7 @@
 20
 3a
 07
-23
+3d
 58
 00
 00
@@ -7319,11 +7423,11 @@
 20
 20
 07
-20
+3a
 20
 40
 07
-2a
+45
 1f
 e3
 7e
@@ -7331,11 +7435,15 @@
 20
 40
 07
-2b
+46
 1f
 e6
 7e
 00
+60
+00
+91
+c5
 20
 60
 00
@@ -7419,7 +7527,7 @@
 20
 40
 07
-43
+5e
 1f
 e2
 22
@@ -7431,7 +7539,7 @@
 20
 40
 07
-43
+5e
 1f
 e2
 24
@@ -7451,7 +7559,7 @@
 c0
 7f
 87
-49
+64
 68
 00
 91
@@ -7475,9 +7583,9 @@
 20
 20
 07
-47
-71
-77
+62
+b7
+80
 aa
 55
 08
@@ -7485,7 +7593,7 @@
 75
 41
 8f
-1f
+1b
 ce
 00
 0a
@@ -7521,12 +7629,12 @@
 40
 12
 00
-80
 00
+02
 12
 00
-80
 00
+02
 aa
 55
 02
@@ -7559,7 +7667,7 @@
 55
 01
 00
-70
+76
 4d
 00
 aa
@@ -7695,7 +7803,7 @@
 55
 01
 00
-c5
+c7
 47
 20
 aa
@@ -7705,7 +7813,7 @@
 d5
 46
 0a
-00
+41
 aa
 55
 01
@@ -7719,8 +7827,8 @@
 00
 a0
 40
-20
-51
+a0
+b0
 17
 01
 20
@@ -7922,9 +8030,9 @@
 00
 a0
 44
-1a
-21
-34
+1e
+b1
+3a
 0e
 8e
 ed
@@ -7973,7 +8081,7 @@
 55
 01
 00
-47
+46
 4b
 0a
 aa
@@ -8001,6 +8109,13 @@
 55
 01
 00
+32
+4b
+01
+aa
+55
+01
+00
 d2
 46
 02
@@ -8017,7 +8132,7 @@
 00
 2d
 42
-02
+00
 32
 aa
 55
@@ -8025,12 +8140,12 @@
 00
 09
 47
-96
-00
-5a
-00
-6e
+06
+01
+fa
 00
+04
+01
 aa
 55
 19
@@ -8050,7 +8165,6 @@
 ff
 ff
 ff
-06
 ff
 ff
 ff
@@ -8058,7 +8172,8 @@
 ff
 ff
 ff
-20
+ff
+ff
 03
 ff
 ff
@@ -8106,19 +8221,9 @@
 3f
 aa
 55
-04
-00
-38
-4b
-00
-01
-02
-03
-aa
-55
-2e
+32
 00
-7a
+79
 4b
 09
 5a
@@ -8126,26 +8231,14 @@
 27
 ab
 40
-b3
-56
-9b
-e6
-a8
-12
-a9
-c0
 be
-e6
-a5
-af
+d1
 a0
-21
+41
 a1
-02
-b8
-10
-b9
-0b
+12
+a5
+84
 a7
 ff
 b5
@@ -8160,6 +8253,22 @@
 ff
 09
 5a
+06
+02
+09
+69
+0d
+48
+0e
+9f
+0f
+ba
+09
+00
+ff
+ff
+09
+5a
 0b
 f3
 09
@@ -8185,7 +8294,7 @@
 55
 40
 00
-c6
+c8
 47
 25
 00
@@ -8255,35 +8364,35 @@
 55
 01
 00
-79
+7f
 4c
 01
 aa
 55
 01
 00
-34
+3a
 4c
 01
 aa
 55
 01
 00
-78
+7e
 4c
 04
 aa
 55
 01
 00
-6f
+75
 4c
 00
 aa
 55
 02
 00
-36
+3c
 4c
 c0
 12
@@ -8291,7 +8400,7 @@
 55
 03
 00
-58
+5e
 4c
 19
 19
@@ -8300,7 +8409,7 @@
 55
 10
 00
-44
+4a
 4c
 00
 13
@@ -8322,14 +8431,14 @@
 55
 01
 00
-43
+49
 4c
 ff
 aa
 55
 04
 00
-3f
+45
 4c
 20
 15
@@ -8337,18 +8446,6 @@
 05
 aa
 55
-06
-00
-78
-4d
-0f
-0f
-0f
-0f
-0f
-0f
-aa
-55
 0a
 00
 9e
@@ -8367,7 +8464,7 @@
 55
 03
 00
-62
+68
 4c
 80
 4f
@@ -8376,9 +8473,9 @@
 55
 02
 00
-a8
+73
 4b
-01
+02
 00
 aa
 55
@@ -8396,32 +8493,6 @@
 ff
 aa
 55
-01
-00
-77
-4b
-ff
-aa
-55
-01
-00
-74
-4b
-ff
-aa
-55
-06
-00
-4e
-4b
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
 03
 00
 00
@@ -8447,18 +8518,21 @@
 55
 01
 00
-b6
-46
-01
-aa
-55
-01
-00
 8e
 47
 03
 aa
 55
+04
+00
+4d
+4b
+ff
+ff
+ff
+ff
+aa
+55
 01
 00
 27
@@ -8468,7 +8542,7 @@
 55
 02
 00
-2b
+2a
 4b
 14
 03
@@ -8476,14 +8550,14 @@
 55
 01
 00
-fd
-4a
-19
+77
+4b
+ff
 aa
 55
 04
 00
-54
+51
 4b
 ff
 00
@@ -8493,7 +8567,7 @@
 55
 04
 00
-5e
+5b
 4b
 20
 20
@@ -8501,11 +8575,25 @@
 40
 aa
 55
-03
+01
 00
+6f
+4b
+ff
+aa
 55
+01
+00
+71
 4b
-44
+14
+aa
+55
+03
+00
+52
+4b
+9c
 2d
 00
 ff
@@ -8515,28 +8603,64 @@
 40
 c0
 58
+00
+08
+c0
+58
 80
-06
+0f
 c0
 59
 00
-0c
+15
 c0
 59
 80
-11
+1a
 c0
 5a
 00
-19
+21
+c0
+5a
+80
+26
 20
 60
 00
 00
+70
+4b
+68
+01
+68
+00
+c7
+a1
+24
+3a
+00
+0c
+70
+4b
+6d
+14
+20
+40
+04
+69
+20
+40
+03
+99
+20
+20
+41
+c3
 68
 00
 c8
-08
+0a
 c1
 01
 00
@@ -8548,7 +8672,7 @@
 60
 00
 c8
-08
+0a
 70
 41
 e3
@@ -8560,14 +8684,14 @@
 68
 00
 c8
-08
+0a
 c1
 81
 00
 00
 70
 48
-08
+0a
 00
 70
 41
@@ -8584,23 +8708,19 @@
 c0
 00
 80
-15
-70
-46
-c6
-14
+1d
 20
 20
 00
-17
+1f
 20
 40
 03
-f0
+df
 70
 46
 c6
-0a
+05
 d8
 e0
 00
@@ -8624,71 +8744,39 @@
 20
 40
 03
-04
+0f
 20
 20
 41
 d9
+5f
+ff
+ff
+ff
+60
+03
 00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
+40
+70
+01
+85
+33
+70
+4b
+69
+ff
+20
+40
+42
+fb
+70
+47
+21
+ff
+20
+20
+03
+0f
 00
 00
 00
@@ -8772,43 +8860,51 @@
 c0
 50
 00
-29
+07
 c0
 50
 80
-0b
+0d
 c0
 51
 00
+20
+c0
+51
+80
 19
-68
-01
-46
-82
-c3
-86
-00
+c0
+52
 00
-c3
-83
+2b
+20
+60
 00
 00
-c3
-85
-80
+70
+4d
+79
 00
-68
+20
+40
 02
-46
-d3
-c3
-82
-80
+92
+20
+40
+01
+94
+70
+41
+bd
 00
 20
+40
+02
+6f
 20
-33
-a7
+20
+04
+66
 68
 01
 45
@@ -8830,9 +8926,9 @@
 7c
 0c
 20
-21
+61
+00
 00
-17
 58
 00
 00
@@ -8848,42 +8944,66 @@
 20
 40
 03
-f0
+df
 70
 47
-c4
+c6
 01
 20
 60
 00
 00
-70
-4b
-63
+68
 01
-20
-20
-05
-c2
-70
-4b
-71
+46
+82
+c3
+86
 00
-58
 00
+c3
+83
 00
-07
-60
-01
-44
-96
-60
+00
+c3
+85
+80
+00
+68
+02
+46
+d3
+c3
+82
+80
+00
+20
+20
+33
+a7
+70
+4b
+68
+00
+58
+00
+00
+07
+58
+00
+00
+07
+60
+01
+44
+96
+60
 01
 44
 98
 70
 47
-c4
+c6
 00
 70
 47
@@ -8892,49 +9012,29 @@
 20
 40
 03
-98
+99
 20
 40
 58
 16
 20
 40
-41
-d9
-20
-40
-03
-04
-68
-00
-cb
-6d
-20
-7a
-00
-00
-68
-03
-4b
-64
-60
 03
-44
-a0
-20
-40
-04
-28
+0f
 20
 20
-7d
-f4
+41
+d9
+78
+34
+7c
+00
 68
 12
 01
 38
 79
-20
+34
 7e
 1a
 60
@@ -8951,28 +9051,24 @@
 bd
 20
 40
-44
-82
+04
+91
 20
 40
 03
-04
+0f
 20
 40
 3e
 9f
 20
 40
-00
-e1
-20
-40
-04
-ee
+02
+6f
 20
 40
 03
-3a
+49
 68
 10
 80
@@ -8997,22 +9093,14 @@
 10
 80
 7f
+68
+08
+c6
+ec
 20
-60
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
+20
+67
+dd
 00
 00
 00
@@ -9028,11 +9116,15 @@
 c0
 48
 00
-04
+05
 c0
 48
 80
-1e
+1f
+c0
+49
+00
+2f
 20
 60
 00
@@ -9040,7 +9132,7 @@
 68
 00
 cc
-38
+3e
 c0
 00
 ff
@@ -9048,26 +9140,26 @@
 68
 00
 cc
-43
+49
 c0
 00
 80
-0b
+0c
 c0
 01
 00
-0e
+0f
 c0
 01
 80
-11
+12
 20
 20
 2a
 8c
 70
 4c
-43
+49
 11
 70
 11
@@ -9076,10 +9168,10 @@
 20
 20
 00
-13
+14
 70
 4c
-43
+49
 12
 70
 11
@@ -9088,10 +9180,10 @@
 20
 20
 00
-13
+14
 70
 4c
-43
+49
 13
 70
 11
@@ -9100,7 +9192,7 @@
 68
 00
 cc
-34
+3a
 1f
 e1
 7e
@@ -9112,7 +9204,7 @@
 68
 02
 4c
-6a
+70
 60
 02
 11
@@ -9132,11 +9224,11 @@
 20
 40
 01
-f1
+98
 20
 40
 01
-68
+24
 20
 20
 7f
@@ -9144,7 +9236,7 @@
 68
 00
 cc
-43
+49
 c1
 7f
 80
@@ -9152,38 +9244,38 @@
 c0
 08
 80
-24
+25
 c0
 09
 00
-26
+27
 c0
 09
 80
-28
+29
 20
 60
 00
 00
 70
 4c
-43
+49
 02
 20
 20
 01
-98
+55
 70
 4c
-43
+49
 03
 20
 20
 01
-98
+55
 70
 4c
-43
+49
 ff
 70
 0a
@@ -9196,30 +9288,67 @@
 68
 02
 4c
-13
+19
 20
 40
 01
-d2
+aa
 20
 20
 01
-98
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
+55
+70
+47
+8b
+01
+d8
+e0
 00
+03
+20
+40
+43
+d2
+58
 00
 00
 00
+60
+01
+47
+07
+70
+46
+a7
 00
+20
+40
+40
+5d
+20
+40
+04
+69
+20
+40
+02
+92
+68
+02
+4c
+61
+60
+02
+47
+7b
+20
+40
+43
+66
+20
+20
+03
+0f
 00
 00
 00
@@ -9236,83 +9365,62 @@
 00
 00
 00
+20
+20
 00
+40
+c0
+40
 00
+08
+c0
+40
+80
+04
+20
+60
 00
 00
+20
+40
+68
+a2
+58
 00
+11
+22
+60
+01
+47
+c4
+20
+60
 00
 00
+20
+40
 00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-20
-20
-00
-40
-c0
-40
-00
-03
-20
-60
-00
-00
+d9
 20
 40
 3e
 6e
-20
-40
-04
-ee
 68
 08
 cb
-47
+46
 20
 40
 68
 0e
-58
-00
-18
-02
-60
-01
+20
 40
-bd
+3e
+1e
+20
+40
+00
+25
 58
 00
 00
@@ -9321,6 +9429,14 @@
 01
 41
 54
+58
+00
+18
+02
+60
+01
+40
+bd
 20
 40
 68
@@ -9331,204 +9447,432 @@
 54
 20
 40
-02
-f7
-68
-00
-c7
+58
+10
 20
-c1
+40
+58
+39
+20
+40
+58
+2c
+20
+40
+58
+18
+20
+40
+05
+3a
+20
+40
+03
+51
+20
+40
+03
+1e
+68
 01
+c7
 00
+9a
+40
+fe
 00
-68
+20
+40
+65
+62
+20
+40
 03
-4b
-4e
-68
-0b
-47
-22
-98
-46
-7c
+05
+df
+20
 00
-24
+03
+d8
+c0
+47
 22
-83
-44
-20
 20
+40
 03
-46
+58
+24
+34
+02
+9e
+20
+40
+02
+a0
 20
 60
 00
 00
+20
+40
+74
+b9
+d8
+c0
+8c
 00
+d8
+a0
+48
+78
+df
+20
+01
+71
+20
+40
+7f
+01
+58
+0f
+02
+09
+e0
+a1
+80
 00
+58
+12
 00
+09
+e0
+a1
+80
 00
+58
+10
+02
+09
+e0
+a1
+80
 00
+58
 00
 00
+09
+e0
+a1
+80
 00
+d8
+c0
+8d
+71
+df
+20
+01
+09
+20
+40
+7f
+01
+70
+48
+8f
 00
+70
+48
+87
+6d
+58
 00
+40
+1f
+60
+01
+49
+dd
+58
 00
+6d
+04
+60
+01
+4a
+46
+58
 00
+16
+b0
+60
+01
+4a
+4c
+58
 00
+48
+78
+60
+01
+45
+75
+20
+60
 00
 00
+20
+20
 00
+40
+c0
+38
 00
+03
+20
+60
 00
 00
+79
+3f
+80
+26
+20
+40
 00
+2c
+20
+40
 00
+19
+70
+4c
+66
 00
+20
 00
+07
+d0
+68
 00
+cc
+66
+c0
+7f
+ad
+d4
+20
+40
+01
+5c
+24
+2c
 00
+22
+24
+37
+80
+22
+20
+40
+01
+84
+20
+40
+02
+92
+68
+02
+4c
+61
+68
+0a
+4c
+45
+98
+46
+7c
 00
+20
+22
+80
+36
+79
+20
 00
+26
+58
 00
 00
 00
+60
+01
+4c
+66
+20
+40
+2f
+20
+20
+40
+01
+59
+20
+20
+03
+62
+70
+11
+9e
+ff
+68
 00
+cc
+3a
+60
 00
+91
+9f
+68
+02
+4c
+70
+60
+02
+11
+a0
+d8
+40
 00
+06
+da
+20
+11
+9e
+20
+40
+01
+98
+20
+20
+01
+b8
+68
 00
+cc
+66
+1f
+e0
+fe
+01
+60
 00
+cc
+66
+68
 00
+cd
+77
+1f
+e0
+fe
+01
+1f
+e1
+7e
+01
+60
 00
+cd
+77
+c0
 00
 00
+32
+c0
 00
+80
+34
+20
+60
 00
 00
+70
+41
+de
+20
+58
 00
+0f
+0f
+60
+01
+4c
+61
+e0
+a1
 00
 00
+20
+40
+01
+ab
+20
+20
+01
+ca
+20
+40
 00
+2c
+20
+20
 00
+07
+20
+40
 00
+3a
+20
+20
 00
+07
+79
+20
 00
+26
+20
+40
 00
+3a
+70
+4c
+49
+01
+20
+60
 00
 00
+70
+41
+de
+20
+70
+4c
+38
 00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
+70
+4c
+43
+4e
+68
+02
+4c
+45
+20
+20
+01
+aa
 00
 00
 00
@@ -9538,149 +9882,97 @@
 00
 40
 c0
-38
+30
 00
 04
 c0
-38
+30
 80
-0b
+26
 20
 60
 00
 00
-5f
-ff
-ff
-ff
-60
-03
-00
+79
+3f
+80
+26
+20
 40
-70
 01
-85
-33
-70
-4b
-77
-ff
+ab
 20
 40
-42
-fb
-70
-47
-21
-ff
-20
-20
-03
-04
-68
-00
-cb
-44
-20
-7a
-00
-00
+01
+ca
 68
 00
 cc
-5f
-20
-7a
-00
-00
-68
-00
-cd
-86
-1f
-e0
-fe
-01
-1f
-e1
-7e
-03
-60
-00
-cd
-86
-24
-7a
-00
+49
+c1
+ff
+80
 00
-70
-4d
-85
+20
+40
 00
-68
+18
+58
 00
-cd
-85
-1f
-e0
-fe
-01
-60
 00
-cd
-85
-1f
-e6
-7c
-08
-24
-21
 00
-1f
+60
+01
+4c
+66
 20
-40
 00
-25
+07
+d0
+68
+00
+cc
+66
+c0
+7f
+ad
+d4
 20
 40
 01
-9f
+5c
 24
 2c
 00
-2e
+21
 24
 37
 80
-2e
+21
+79
 20
-40
+00
+26
+58
+00
+00
+00
+60
 01
-0b
+4c
+66
+20
+40
+2f
+20
 20
 40
 01
-9c
-68
-00
-cd
-84
-1f
-e0
-fe
-01
-60
-00
-cd
-84
-c0
-08
-01
-03
+59
 20
-60
-00
-00
+20
+03
+62
 70
 11
 9e
@@ -9688,7 +9980,7 @@
 68
 00
 cc
-34
+3a
 60
 00
 91
@@ -9696,7 +9988,7 @@
 68
 02
 4c
-6a
+70
 60
 02
 11
@@ -9712,43 +10004,87 @@
 20
 40
 01
-f1
+98
 20
 20
-02
-03
+01
+b8
+68
+01
+4c
+66
+1f
+e0
+fe
+01
+60
+01
+4c
+66
 20
 40
 01
-53
+ca
 20
 20
 00
-15
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
+0c
+68
 00
+c7
+20
+c1
 00
+80
 00
+68
+02
+46
+d3
+c4
+08
+80
 00
+c3
+81
+80
 00
+c6
+13
 00
 00
+d8
+e0
 00
+03
+20
+40
+43
+ce
+58
 00
 00
 00
+60
+01
+46
+ae
+60
 00
+c6
+b4
+60
+01
+4c
+66
+20
+40
+42
+ca
+20
+20
+01
+92
 00
 00
 00
@@ -9789,466 +10125,250 @@
 00
 00
 00
-20
-20
 00
-40
-68
 00
-cd
-7e
-c0
 00
-ad
-d4
-70
-11
-9e
-ff
-68
 00
-cc
-34
-60
 00
-91
-9f
-68
-02
-4c
-6a
-60
-02
-11
-a0
-d8
-40
 00
-06
-da
-20
-11
-9e
-20
-40
-01
-f1
-20
-40
-02
-03
-20
-40
-01
-9f
-24
-2c
 00
-26
-24
-37
-80
-26
-20
-40
-01
-c7
-68
-02
-4c
-5b
-68
-0a
-4d
-78
-98
-46
-7c
 00
 20
-22
-80
-16
-68
-00
-cc
-31
-c1
-84
-00
-00
-70
-4d
-87
-00
 20
-40
-02
-be
-68
-02
-4c
-5b
-68
-0a
-4c
-3f
-98
-46
-7c
 00
-20
-22
-81
-e0
-68
-02
-4c
-5b
-68
-0a
-4c
-6a
-98
-46
-7c
+40
+c0
+28
 00
+03
 20
-42
-80
-24
+60
+00
+00
 70
 4b
-44
+6e
 00
 20
 40
-2f
+02
+92
+70
+47
 20
+01
+70
+47
+9e
+00
 20
 40
+05
+3e
+68
+09
+47
+c4
+18
+40
+84
 01
-9c
-20
+60
+09
+47
+c4
+60
+09
+44
+a1
 20
+40
 03
-58
+14
+18
+0a
+7e
+00
+60
+00
+c4
+a0
 68
-02
-4c
-13
+01
+cb
+6a
+60
+01
+c4
+a3
 20
+40
+02
+9e
 20
-01
-d2
+40
+34
+18
 68
-00
-cd
-71
-1f
-e0
-fe
 01
-1f
-e1
-7e
-03
+46
+87
 60
+01
+46
+ac
+70
+01
+6d
+06
+58
 00
-cd
-71
-c0
 00
 00
-2d
-c0
+60
 01
+46
+b0
+60
+01
+46
+ae
+d8
+e0
 00
-37
-20
+07
 20
-01
+40
+43
 ce
 20
 40
-02
-be
-68
-02
-4c
-6a
-60
-02
-4c
-5b
+43
+ca
 68
 00
-cd
-81
-60
-00
-cc
-3e
+c0
+92
+2f
+ef
+fe
+01
 20
 40
+80
+23
+68
 00
-35
-60
-08
-cd
-81
-20
-60
-00
+c0
+92
+2f
+ef
+fe
 00
 20
 40
-01
-d3
+fd
+dd
 20
 20
-01
-53
+04
+a0
 70
-41
-de
+47
+a1
+00
 20
-68
-02
-4d
-78
-60
+40
 02
-4c
-5b
-68
+97
+58
 00
-cd
-82
-60
 00
-cc
-3e
+05
+e0
+c0
+80
+00
+d8
+c0
+4b
+12
 20
 40
-00
-35
-60
-08
-cd
-82
+05
+45
 20
-60
+20
+7d
+f4
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
 00
 00
 00
 00
 00
 00
-20
-20
 00
-40
-c0
-28
 00
-06
-c0
-28
-80
-0c
-c0
-29
 00
-10
-c0
-29
-80
-1b
-20
-60
 00
 00
-d8
-e0
 00
-03
-20
-40
-43
-d2
-70
-46
-a7
 00
-20
-40
-40
-5d
-20
-40
-02
-be
-20
-20
 00
-10
-70
-4d
-73
 00
-20
-40
-02
-be
-20
-40
-01
-ec
-20
-20
-34
-0a
-70
-4b
-44
 00
-20
-40
 00
-18
-20
-40
-04
-b5
-20
-40
-3f
-8d
-68
-02
-4c
-5b
-60
-02
-47
-7b
-20
-40
-43
-66
-20
-20
-03
-04
-58
 00
 00
 00
-60
-01
-cd
-7e
-20
-60
 00
 00
-68
 00
-cd
-7e
-c0
 00
-ad
-d4
-20
-40
 00
-2a
-20
-40
-01
-9f
-24
-2c
-01
-53
-24
-37
-81
-53
-68
 00
-cd
-87
-79
-3f
-fe
-02
-60
 00
-cd
-87
-70
-4b
-44
 00
-20
-40
-2f
-20
-20
-40
-01
-9c
-20
-20
-03
-58
-68
-02
-4c
-13
-20
-20
-01
-d2
-70
-11
-9e
-ff
-68
 00
-cc
-34
-60
 00
-91
-9f
-68
-02
-4c
-6a
-60
-02
-11
-a0
-d8
-40
 00
-06
-da
-20
-11
-9e
-20
-40
-01
-f1
-20
-20
-02
-03
 00
 00
 00
@@ -10269,214 +10389,182 @@
 00
 00
 00
+20
+20
+00
+40
+c0
+20
+00
+04
+c0
+20
+80
+16
+20
+60
 00
 00
+20
+40
 00
+0c
+20
+20
+55
+7d
+68
 00
+c7
+c7
+60
 00
+c1
+72
+70
+47
+c6
 00
+20
+60
 00
 00
+70
+47
+c6
+01
+20
+60
 00
 00
+68
 00
+c3
+d6
+1f
+e6
+7c
+0c
+24
+21
 00
+0a
+68
 00
+c3
+d8
+68
+08
+c7
+c7
+98
+46
+7c
 00
+20
+21
 00
+06
+68
 00
+c3
+d8
+60
 00
+c1
+72
+20
+20
 00
+08
+68
 00
+84
+3f
+c4
+03
 00
 00
+20
+40
 00
+1b
+24
+74
 00
 00
+20
+20
+55
+a0
+78
+34
+7c
 00
+68
 00
+84
+5a
+1f
+f1
+fe
 00
+c1
+87
+80
 00
+68
 00
+84
+60
+1f
+f1
+fe
 00
+c1
+80
 00
 00
 20
 20
+7f
+e9
+00
 00
-40
-c0
-20
 00
-05
-c0
-20
-80
-17
-c0
-21
 00
-1f
-20
-60
 00
 00
-20
-40
 00
-0e
-20
-34
-01
-ea
-79
-20
 00
-26
-68
 00
-cd
-87
-79
-20
-7e
-02
-60
 00
-cd
-87
-20
-40
-01
-d3
-20
-40
-01
-53
-20
-20
 00
-1b
-df
-20
 00
-02
-d8
-c0
-4c
-5b
-20
-40
-7f
-e7
-58
 00
-ff
-ff
-e8
-c9
 00
 00
-98
-46
-7c
 00
-24
-42
-ff
-e9
-c2
 00
 00
-12
-20
-60
 00
 00
-79
-20
 00
-26
-68
 00
-cd
-87
-79
-20
-7e
-01
-60
 00
-cd
-87
-58
 00
-07
-08
-60
-01
-4d
-7f
-70
-4d
-7e
 00
-20
-60
 00
 00
-68
-02
-46
-d3
-c4
-08
-80
 00
-c3
-81
-80
 00
-c6
-13
 00
 00
-20
-40
-44
-82
-d8
-e0
 00
-03
-20
-40
-43
-ce
-58
 00
 00
 00
-60
-01
-46
-ae
-60
 00
-c6
-b4
-60
-01
-4c
-60
-20
-40
-42
-ca
-20
-20
-01
-ea
 00
 00
 00
@@ -10571,148 +10659,148 @@
 00
 20
 40
-02
-be
-70
-4b
-70
+62
+bc
+24
+7a
 00
-70
-4b
-6d
-01
-70
-47
-20
-01
-70
-47
-9e
 00
 68
-03
-4b
-64
-60
-03
-44
-a0
-20
-40
-03
-44
-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
-20
-40
-04
-30
-20
-40
-43
-ca
+80
+55
 20
-40
-03
-34
-68
+7a
 00
-c2
-10
-1f
-e6
-7c
-33
-20
-42
-80
-1c
-68
 00
 c0
-92
-2f
-ef
-fe
+02
 00
+25
+c0
+08
+00
+0a
 20
-40
-fd
-dd
-20
-20
-04
-c6
-68
-03
-4b
-64
-60
-03
-44
-a0
-20
-40
-04
-28
 20
+63
 20
-7d
-f4
-00
-00
+68
 00
+c5
+5b
+c1
 00
 00
 00
+c0
 00
+80
+0e
+20
+20
+63
+5f
+20
+74
+80
 00
+68
 00
+81
+6d
+c2
+80
 00
+12
+20
+20
+63
+99
+68
 00
+cb
+03
+c0
 00
+e3
+9d
+68
 00
+c1
+bd
+20
+3a
+63
+a9
+68
 00
+84
+d1
+c4
+01
+80
 00
+c4
+01
 00
 00
+68
 00
+cb
+02
+20
+7a
 00
 00
+70
+4b
+02
 00
+68
+02
+04
+e9
+d8
+40
 00
+14
+98
+40
+84
 00
+1c
+42
+7e
 00
+98
+46
+7c
 00
+24
+21
 00
+23
+20
+20
+63
+49
+70
+4b
+02
+01
+20
+60
 00
 00
+70
+48
+0b
+14
+20
+20
+63
+6f
 00
 00
 00
@@ -10820,203 +10908,203 @@
 c0
 10
 00
-06
+14
 c0
 10
 80
-18
+21
 c0
 11
 00
-25
-c0
-11
-80
-2c
+05
 20
 60
 00
 00
-20
-40
-00
-0e
-20
-20
-55
-7d
-68
-00
-c7
-c5
-60
-00
-c1
-72
 70
-47
-c4
-00
-20
-60
-00
-00
+4b
+6e
+01
 70
 47
-c4
+a1
 01
-20
-60
-00
-00
 68
-00
-c3
-d6
-1f
-e6
-7c
-0c
-24
-21
-00
-0c
-68
-00
-c3
-d8
+01
+46
+a8
 68
 08
-c7
-c5
-98
+cb
+69
+18
 46
 7c
+ff
+24
+22
+80
+0c
+58
 00
+02
+58
+60
+01
+46
+ae
 20
-21
+40
+34
+18
+20
+40
+02
+97
+58
 00
-08
-68
 00
-c3
-d8
-60
+04
+e0
+c0
+80
 00
-c1
-72
+d8
+c0
+43
+90
 20
+40
+05
+45
 20
-00
-0a
+20
+7d
+f4
 68
 00
-84
+80
+48
+c0
+42
+00
+18
+c0
+41
+80
+1b
+20
+20
+60
 3f
-c4
-03
+20
+40
 00
+1e
+68
 00
+80
+48
+20
+20
+60
+99
 20
 40
 00
-1d
-24
-74
+1e
+68
 00
+80
+48
+20
+20
+61
+0d
+68
 00
+c6
+5a
+20
+3a
+61
+2b
 20
 20
-55
-a0
-78
-34
-7c
+61
+24
+18
 00
+7e
+02
+20
+40
+62
+98
 68
 00
-84
-5a
-1f
-f1
-fe
-00
-c1
-87
+80
+49
+e0
+a0
 80
 00
-68
-00
-84
 60
-1f
-f1
-fe
 00
-c1
-80
+ca
+fe
+20
+40
+62
+a7
+68
 00
+ca
+fe
+c0
+17
 00
+2a
 20
 20
-7f
-e9
+60
+51
 68
 00
-c7
-a1
-24
+cb
+01
+20
 7a
 00
 00
+70
+4b
+01
+00
 68
 00
-84
-78
-1f
-e6
-7e
-1a
-24
-62
-80
+cb
+03
+c1
+81
+00
 00
 70
-46
-c6
+4b
+02
+01
+1c
+42
+7e
 00
-20
-20
-3d
 60
-20
-40
-33
-af
-20
-40
-26
-e9
-70
-0a
-99
 02
+04
+e9
 20
-40
-7d
-86
-20
-40
-5c
-f7
-20
-40
-4d
-6b
-20
-20
-24
-6e
+60
+00
+00
 00
 00
 00
@@ -11076,181 +11164,181 @@
 c0
 08
 00
-0f
+04
 c0
 08
 80
-1c
-c0
-09
-00
-05
+1a
 20
 60
 00
 00
-20
-40
-04
-ce
 70
-4b
-70
-01
+48
+0a
+00
 70
-47
-a1
-01
-68
-01
-46
-a8
-60
-01
-46
-ae
-20
-40
-04
-30
-20
-40
-34
-18
-d8
-c0
-43
-90
+41
+e3
+0e
 20
 40
-04
-2c
-20
-20
-7d
-f4
+41
+e7
 68
-00
-80
-48
-c0
+01
 42
+08
+c2
+83
+80
+0e
+c2
+80
+33
+a9
+c2
+80
+80
+11
+c2
+81
 00
-13
-c0
-41
+14
+c2
+81
 80
-16
+14
 20
 20
-60
-3f
+42
+b0
 20
 40
-00
-19
+41
+c1
 68
-00
-80
-48
-20
+01
+42
+08
 20
-60
-99
 20
-40
-00
-19
-68
-00
+41
+f7
+c2
+82
 80
-48
+14
+c2
+81
+80
+14
 20
 20
-61
-0d
+42
+b0
 68
-00
-c6
-5a
-20
-3a
-61
-2b
-20
+01
+46
+82
+c2
+86
+42
+b0
 20
-61
-24
-18
-00
-7e
-02
+40
+33
+a9
 20
 40
-62
-98
+02
+8f
+c0
+02
+84
+66
+20
+20
+33
+a7
 68
+01
+02
+64
+1f
+e2
+0c
 00
-80
-49
-e0
-a0
+e8
+c0
 80
 00
 60
 00
-ca
-fc
-20
-40
-62
-a7
-68
+cb
+04
+1f
+e1
+04
+0f
+1f
+f1
+fe
 00
-ca
-fc
 c0
-17
+03
+80
+23
+c0
 00
-25
+80
+2a
 20
 20
-60
-51
-68
-00
-cb
-01
+4d
+39
 20
-7a
-00
-00
+40
+4d
+53
 70
 4b
-01
+05
 00
 68
 00
 cb
-03
-c1
-81
+04
+2f
+ef
+fe
 00
+20
+60
+80
 00
 70
 4b
-02
+05
 01
-1c
+20
+60
+00
+00
+18
 42
 7e
 00
-60
+c0
 02
-04
-e9
+83
+e5
 20
-60
+20
+4d
+41
+00
+00
 00
 00
 00
@@ -11331,106 +11419,106 @@
 40
 c0
 00
-80
+00
 03
 20
 60
 00
 00
-70
-48
-08
+68
 00
-70
-41
-e3
+80
 0e
-20
-40
-41
-e7
-68
+1f
+e0
+fe
 01
-42
-08
-c2
-83
-c1
-f5
-c2
-80
-33
-a9
-c2
-80
-80
-0d
-c2
-81
+60
 00
-10
-c2
-81
-80
-10
-20
-20
-42
-b0
-c2
-82
-80
-10
-c2
-81
 80
-10
+0e
 20
+40
+24
+35
+79
 20
-42
-b0
-68
-01
-46
-82
-c2
-86
-42
-b0
+00
+2c
 20
 40
-33
-a9
+22
+f2
 20
-40
-05
-31
-c0
-03
-80
-18
-68
+2c
 00
-c6
-b6
+0e
+79
+3f
+80
+2c
 20
+40
+24
+55
+24
 3a
 00
-18
+07
 20
 20
-33
-a7
-70
-47
-9f
-01
-70
-47
-a0
-28
 20
-60
+fc
+79
+3f
+80
+2c
+20
+20
+21
+5f
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
 00
 00
 00
@@ -11585,5 +11673,5 @@
 55
 00
 00
-b6
-9e
+87
+5a
Index: output/memmap.format
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/output/memmap.format	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/output/memmap.format	(working copy)
@@ -603,9 +603,9 @@
 0x11c0 mem_data_current
 0x11c2 mem_data_sum
 0x11c5 mem_data_value
-0x11c6 mem_zcode_temp_param0//zcode num
-0x11c7 mem_zcode_temp_param1//patch ram func addr
-0x11c9 mem_zcode_temp_param2//patch ram func addr
+0x11c7 mem_zcode_temp_param0//zcode num
+0x11c8 mem_zcode_temp_param1//patch ram func addr
+0x11ca mem_zcode_temp_param2//patch ram func addr
 0x4000 mem_patch00
 0x4001 mem_patch01
 0x4002 mem_patch02
@@ -1744,21 +1744,20 @@
 0x47a1 mem_mouse_le_reconnect_flag
 0x47a2 mem_mouse_data_queue
 0x47c3 mem_mouse_data_queue_num
-0x47c4 mem_mouse_le_conn_param_reject
-0x47c5 mem_lpm_mult_init
-0x47c6 mem_mouse_le_uuid_sup
-0x4806 mem_mouse_wheel_trigger
-0x4807 mem_mouse_wheel_trigger_timer
-0x4808 mem_mouse_enter_sniff_count
-0x4809 mem_mouse_send_switch_req_timer
-0x480a mem_le_tx_buffer0_omemalloc
-0x4825 mem_le_tx_buffer1_omemalloc
-0x4840 mem_le_tx_buffer2_omemalloc
-0x485b mem_le_tx_buffer3_omemalloc
-0x4876 mem_mouse_uuid_list
-0x4afc mem_lmi_opcode_temp
-0x4afd mem_mouse_button_select_device_timer_init
-0x4afe mem_mouse_button_select_device_count
+0x47c4 mem_random_addr_increase_count
+0x47c6 mem_mouse_le_conn_param_reject
+0x47c7 mem_lpm_mult_init
+0x47c8 mem_mouse_le_uuid_sup
+0x4808 mem_mouse_wheel_trigger
+0x4809 mem_mouse_wheel_trigger_timer
+0x480a mem_mouse_enter_sniff_count
+0x480b mem_mouse_send_switch_req_timer
+0x480c mem_le_tx_buffer0_omemalloc
+0x4827 mem_le_tx_buffer1_omemalloc
+0x4842 mem_le_tx_buffer2_omemalloc
+0x485d mem_le_tx_buffer3_omemalloc
+0x4878 mem_mouse_uuid_list
+0x4afe mem_lmi_opcode_temp
 0x4aff mem_mouse_adc_last_low_voltage_flag
 0x4b00 mem_mouse_init_sensor_reset_flag
 0x4b01 mem_bt_rcvd_switch_req_accept
@@ -1777,188 +1776,185 @@
 0x4b27 mem_mouse_multi_led_gpio
 0x4b28 mem_mouse_multi_led_state
 0x4b29 mem_mouse_multi_led_type
-0x4b2a mem_mouse_multi_led_on_timer
-0x4b2b mem_mouse_multi_led_on_timer_init
-0x4b2c mem_mouse_multi_led_blink_timer_init
-0x4b2d mem_mouse_multi_led_blink_timer
-0x4b2e mem_mouse_multi_led_blink_count
+0x4b2a mem_mouse_multi_led_on_timer_init
+0x4b2b mem_mouse_multi_led_blink_timer_init
+0x4b2c mem_mouse_multi_led_blink_timer
+0x4b2d mem_mouse_multi_led_blink_count
+0x4b2e mem_mouse_multi_led_on_timer
 0x4b2f mem_mouse_multi_led_blink_count_limited
 0x4b30 mem_mouse_multi_led_on_poweron2s_flag
-0x4b31 mem_mouse_multi_led_blink_poweron3s_flag
-0x4b32 mem_mouse_priority_bb_event
-0x4b33 mem_mouse_le_parse_l2cap_ptr
-0x4b35 mem_low_power_no_data_off_led_time
-0x4b36 mem_low_power_check_count
-0x4b37 mem_low_power_led_blink_flag
-0x4b38 mem_mouse_3065xy_dpi_seting
-0x4b38 mem_3065xy_dpi_1
-0x4b39 mem_3065xy_dpi_2
-0x4b3a mem_3065xy_dpi_3
-0x4b3b mem_3065xy_dpi_4
-0x4b3c mem_le_att_pnp_id_len
-0x4b3d mem_le_att_pnp_id
-0x4b44 mem_mouse_long_mult_flag
-0x4b45 mem_mouse_le_current_mult_timer
-0x4b46 mem_24g_long_sleep_param_update_timer
-0x4b47 mem_flash_ncs_gpio
-0x4b48 mem_select_ui_button_count
-0x4b49 mem_write_flash_head_temp
-0x4b4d mem_mouse_poweron_led_timer
-0x4b4e mem_mouse_24g_addr_init
-0x4b54 mem_zcode_current_number
-0x4b55 mem_xip_flash_offset
-0x4b58 mem_flash_start_addr
-0x4b5b mem_flash_address
-0x4b5e mem_zcode_head
-0x4b62 mem_mouse_select_device_button_wakeup_flag
-0x4b63 mem_mouse_le_updata_not_accepted_flag
-0x4b64 mem_le_normal_lap
-0x4b6a mem_le_switch_adv_flag
-0x4b6b mem_le_switch_adv_timer
-0x4b6c mem_le_switch_adv_count
-0x4b6d mem_mouse_start_discovery_enable
-0x4b6e mem_mouse_le_adv_start
-0x4b6f mem_mouse_send_secutiry_request_timer
-0x4b70 mem_le_send_security_request_flag
-0x4b71 mem_mouse_le_bb_connected_flag
-0x4b72 mem_mouse_flash_start_temp
-0x4b72 mem_random_addr_increase_count
-0x4b74 mem_mouse_long_button_select_device
-0x4b75 mem_eeprom_init_flag
-0x4b77 mem_mouse_fast_conn_flag
-0x4b78 mem_mouse_latest_mode
-0x4b79 mem_mouse_flash_end_temp
-0x4b79 mem_mouse_le_not_tx_disconn
-0x4b7a mem_sensor_8650_init
-0x4ba0 mem_sensor_poweron_init
-0x4ba8 mem_firmware_version
-0x4baa mem_mouse_data_xtemp
-0x4bab mem_mouse_data_ytemp
-0x4bac mem_bt_125hz_cnt
-0x4bad mem_24g_rxbuf
-0x4bcf mem_24g_txbuf
-0x4bef mem_24g_txpayload
-0x4c11 mem_24g_rxpayload
-0x4c31 mem_24g_rxdata_length
-0x4c32 mem_24g_pid
-0x4c33 mem_24g_datalen
-0x4c34 mem_24g_data_type
-0x4c35 mem_24g_txlen
-0x4c36 mem_24g_rx_window
-0x4c38 mem_24g_ensure
-0x4c39 mem_24g_txfail_cnt
-0x4c3b mem_24g_get_ack_fail
-0x4c3c mem_24g_retry
-0x4c3d mem_24g_ch
-0x4c3e mem_24g_current_ch_number
-0x4c3f mem_24g_paring_addr
-0x4c43 mem_24g_pairing_sm
-0x4c44 mem_24g_ch_map1
-0x4c48 mem_24g_ch_map2
-0x4c4c mem_24g_ch_map3
-0x4c50 mem_24g_ch_map4
-0x4c54 mem_24g_tx_btclk
-0x4c58 mem_24g_interval
-0x4c59 mem_24g_interval_min
-0x4c5a mem_24g_interval_max
-0x4c5b mem_24g_addr
-0x4c5f mem_24g_abort_pac
-0x4c60 mem_24g_check_dongle_times
-0x4c62 mem_24g_enter_hibernate
-0x4c6a mem_24g_device_addr
-0x4c6e mem_24g_pac_index
-0x4c6f mem_24g_no_ack
-0x4c70 mem_24g_sta_crc
-0x4c73 mem_24g_last_crc
-0x4c76 mem_24g_sta_pid
-0x4c77 mem_24g_last_pid
-0x4c78 mem_24g_max_retry
-0x4c79 mem_24g_mode
-0x4c7a mem_24g_rxdata_temp
-0x4c9c mem_24g_rx_addr
-0x4ca0 mem_dongle_mode_init
-0x4ca1 mem_dongle_work_mode
-0x4ca2 mem_dongle_ms_bind_step
-0x4ca3 mem_dongle_kb_bind_step
-0x4ca4 mem_dongle_bind_device_status
-0x4ca5 mem_24g_bind_payload
-0x4cad mem_24g_abort_packet
-0x4cae mem_24g_rf_laststa
-0x4caf mem_24g_hop_btclk
-0x4cb3 mem_24g_hop_interval
-0x4cb4 mem_24g_mode_switch
-0x4cb5 mem_24g_ackpayload_enable
-0x4cb6 mem_24g_hop_packet
-0x4cb7 mem_24g_pair_mode
-0x4cb8 mem_24g_nodata_timer_enable
-0x4cb9 mem_24g_time_slice
-0x4cba mem_24g_kb_data_sta_data
-0x4cc2 mem_24g_kb_data_last_data
-0x4cca mem_24g_kb_multikey_sta_data
-0x4ccd mem_24g_kb_multikey_last_data
-0x4cd0 mem_24g_kb_blank_data_enable
-0x4cd1 mem_24g_kb_mul_blank_data_enable
-0x4cd2 mem_24g_ms_blank_data_enable
-0x4cd3 mem_24g_kb_addr
-0x4cd7 mem_24g_ms_addr
-0x4cdb mem_24g_dg_last_ch
-0x4cdc mem_24g_dg_ch_number
-0x4cdd mem_24g_dg_config_ch_once
-0x4cde mem_24g_kb_last_ch
-0x4cdf mem_24g_kb_ch_number
-0x4ce0 mem_24g_kb_config_ch_once
-0x4ce1 mem_24g_ms_last_ch
-0x4ce2 mem_24g_ms_ch_number
-0x4ce3 mem_24g_ms_config_ch_once
-0x4ce4 mem_24g_syncword
-0x4ce6 mem_24g_syncword_crc8
-0x4ce7 mem_24g_get_syncword_crc8
-0x4ce8 mem_24g_ota_sta_pid
-0x4cea mem_tx_power_temp
-0x4ceb mem_rssi_hex
-0x4cec mem_rssi_noise_avg
-0x4ced mem_rssi_noise_index
-0x4cee mem_rssi_signal_index
-0x4cef mem_rssi_noise_dg_avg
-0x4cf0 mem_rssi_noise_kb_avg
-0x4cf1 mem_rssi_noise_ms_avg
-0x4cf2 mem_rssi_noise_dg_index
-0x4cf3 mem_rssi_noise_kb_index
-0x4cf4 mem_rssi_noise_ms_index
-0x4cf5 mem_rssi_signal_buf
-0x4cfd mem_queue_ele_num
-0x4cfe mem_queue_read
-0x4d00 mem_queue_write
-0x4d02 mem_queue_start
-0x4d02 mem_data_ele0
-0x4d22 mem_data_ele1
-0x4d42 mem_data_ele2
-0x4d62 mem_queue_end
-0x4d62 mem_queue_temp
-0x4d64 mem_cb_24g_data
-0x4d66 mem_24g_hop_fastly_cnt
-0x4d67 mem_24g_hop_pac_retry
-0x4d68 mem_24g_rf_hop_ch
-0x4d69 mem_24g_rf_last_sta
-0x4d6a mem_24g_rf_work_stage
-0x4d6b mem_24g_sync_cnt
-0x4d6c mem_power_ctrl_pac_succ_cnt
-0x4d6d mem_rssi_avg_received
-0x4d6e mem_rssi_hex_received
-0x4d6f mem_power_ctrl_level
-0x4d70 mem_seqi
-0x4d71 mem_24g_auto_paring_switch
-0x4d72 mem_24g_paccnt
-0x4d73 mem_24g_transmit_by_interrupt
-0x4d74 mem_24g_transmit_by_interrupt_exit_count
-0x4d76 mem_24g_transmit_by_interrupt_exit_count_init
-0x4d78 mem_24g_allpowerful_addr
-0x4d7e mem_24g_stop_g24_mode
-0x4d7f mem_24g_stop_g24_mode_timeout
-0x4d81 mem_24g_pair_current_ch_num
-0x4d82 mem_24g_powerful_current_ch_num
-0x4d83 mem_24g_search_dongle_action
-0x4d84 mem_24g_search_dongle_count
-0x4d85 mem_24g_search_dongle_ch
-0x4d86 mem_24g_search_dongle_wait
-0x4d87 mem_24g_conn_sm
+0x4b31 mem_discovery_on_flag
+0x4b32 mem_bt_ui_button_timeout
+0x4b33 mem_bt_ui_button_count
+0x4b34 mem_mouse_priority_bb_event
+0x4b35 mem_mouse_le_parse_l2cap_ptr
+0x4b37 mem_low_power_no_data_off_led_time
+0x4b38 mem_low_power_check_count
+0x4b39 mem_low_power_led_blink_flag
+0x4b3a mem_mouse_3065xy_dpi_seting
+0x4b3a mem_3065xy_dpi_1
+0x4b3b mem_3065xy_dpi_2
+0x4b3c mem_3065xy_dpi_3
+0x4b3d mem_3065xy_dpi_4
+0x4b3e mem_le_att_pnp_id_len
+0x4b3f mem_le_att_pnp_id
+0x4b46 mem_flash_ncs_gpio
+0x4b47 mem_select_ui_button_count
+0x4b48 mem_write_flash_head_temp
+0x4b4c mem_mouse_poweron_led_timer
+0x4b4d mem_mouse_24g_addr_init
+0x4b51 mem_zcode_current_number
+0x4b52 mem_xip_flash_offset
+0x4b55 mem_flash_start_addr
+0x4b58 mem_flash_address
+0x4b5b mem_zcode_head
+0x4b5f mem_mouse_long_mult_flag
+0x4b60 mem_mouse_le_current_mult_timer
+0x4b61 mem_24g_long_sleep_param_update_timer
+0x4b63 mem_mouse_bt_led_gpio
+0x4b64 mem_mouse_button_select_device_timer_init
+0x4b65 mem_mouse_button_select_device_count
+0x4b66 mem_mouse_multi_led_on_timer_init1
+0x4b67 mem_mouse_24g_attempt_success_flag
+0x4b68 mem_mouse_le_bb_connected_flag
+0x4b69 mem_mouse_fast_conn_flag
+0x4b6a mem_le_lap_high_3B
+0x4b6d mem_mouse_send_secutiry_request_timer
+0x4b6e mem_le_send_security_request_flag
+0x4b6f mem_mouse_long_button_select_device
+0x4b70 mem_mouse_select_device_button_wakeup_flag
+0x4b71 mem_mouse_le_fast_conn_enable_timer
+0x4b72 mem_mouse_delay_discovery_count
+0x4b73 mem_firmware_version
+0x4b75 mem_mouse_data_xtemp
+0x4b76 mem_mouse_data_ytemp
+0x4b77 mem_mouse_low_voltage_led_gpio
+0x4b78 mem_bt_125hz_cnt
+0x4b79 mem_sensor_8650_init
+0x4b93 mem_sensor_8009_init
+0x4ba3 mem_sensor_poweron_init
+0x4bab mem_mouse_lkey_press_status
+0x4bac mem_mouse_rkey_press_status
+0x4bad mem_mouse_mkey_press_status
+0x4bae mem_mouse_bkkey_press_status
+0x4baf mem_mouse_fwkey_press_status
+0x4bb0 mem_mouse_dpikey_press_status
+0x4bb1 mem_mouse_key_temp
+0x4bb2 mem_mouse_key_status
+0x4bb3 mem_24g_rxbuf
+0x4bd5 mem_24g_txbuf
+0x4bf5 mem_24g_txpayload
+0x4c17 mem_24g_rxpayload
+0x4c37 mem_24g_rxdata_length
+0x4c38 mem_24g_pid
+0x4c39 mem_24g_datalen
+0x4c3a mem_24g_data_type
+0x4c3b mem_24g_txlen
+0x4c3c mem_24g_rx_window
+0x4c3e mem_24g_ensure
+0x4c3f mem_24g_txfail_cnt
+0x4c41 mem_24g_get_ack_fail
+0x4c42 mem_24g_retry
+0x4c43 mem_24g_ch
+0x4c44 mem_24g_current_ch_number
+0x4c45 mem_24g_paring_addr
+0x4c49 mem_24g_pairing_sm
+0x4c4a mem_24g_ch_map1
+0x4c4e mem_24g_ch_map2
+0x4c52 mem_24g_ch_map3
+0x4c56 mem_24g_ch_map4
+0x4c5a mem_24g_tx_btclk
+0x4c5e mem_24g_interval
+0x4c5f mem_24g_interval_min
+0x4c60 mem_24g_interval_max
+0x4c61 mem_24g_addr
+0x4c65 mem_24g_abort_pac
+0x4c66 mem_24g_check_dongle_times
+0x4c68 mem_24g_enter_hibernate
+0x4c70 mem_24g_device_addr
+0x4c74 mem_24g_pac_index
+0x4c75 mem_24g_no_ack
+0x4c76 mem_24g_sta_crc
+0x4c79 mem_24g_last_crc
+0x4c7c mem_24g_sta_pid
+0x4c7d mem_24g_last_pid
+0x4c7e mem_24g_max_retry
+0x4c7f mem_24g_mode
+0x4c80 mem_24g_rxdata_temp
+0x4ca2 mem_24g_rx_addr
+0x4ca6 mem_dongle_mode_init
+0x4ca7 mem_dongle_work_mode
+0x4ca8 mem_dongle_ms_bind_step
+0x4ca9 mem_dongle_kb_bind_step
+0x4caa mem_dongle_bind_device_status
+0x4cab mem_24g_bind_payload
+0x4cb3 mem_24g_abort_packet
+0x4cb4 mem_24g_rf_laststa
+0x4cb5 mem_24g_hop_btclk
+0x4cb9 mem_24g_hop_interval
+0x4cba mem_24g_mode_switch
+0x4cbb mem_24g_ackpayload_enable
+0x4cbc mem_24g_hop_packet
+0x4cbd mem_24g_pair_mode
+0x4cbe mem_24g_nodata_timer_enable
+0x4cbf mem_24g_time_slice
+0x4cc0 mem_24g_kb_data_sta_data
+0x4cc8 mem_24g_kb_data_last_data
+0x4cd0 mem_24g_kb_multikey_sta_data
+0x4cd3 mem_24g_kb_multikey_last_data
+0x4cd6 mem_24g_kb_blank_data_enable
+0x4cd7 mem_24g_kb_mul_blank_data_enable
+0x4cd8 mem_24g_ms_blank_data_enable
+0x4cd9 mem_24g_kb_addr
+0x4cdd mem_24g_ms_addr
+0x4ce1 mem_24g_dg_last_ch
+0x4ce2 mem_24g_dg_ch_number
+0x4ce3 mem_24g_dg_config_ch_once
+0x4ce4 mem_24g_kb_last_ch
+0x4ce5 mem_24g_kb_ch_number
+0x4ce6 mem_24g_kb_config_ch_once
+0x4ce7 mem_24g_ms_last_ch
+0x4ce8 mem_24g_ms_ch_number
+0x4ce9 mem_24g_ms_config_ch_once
+0x4cea mem_24g_syncword
+0x4cec mem_24g_syncword_crc8
+0x4ced mem_24g_get_syncword_crc8
+0x4cee mem_24g_ota_sta_pid
+0x4cf0 mem_tx_power_temp
+0x4cf1 mem_rssi_hex
+0x4cf2 mem_rssi_noise_avg
+0x4cf3 mem_rssi_noise_index
+0x4cf4 mem_rssi_signal_index
+0x4cf5 mem_rssi_noise_dg_avg
+0x4cf6 mem_rssi_noise_kb_avg
+0x4cf7 mem_rssi_noise_ms_avg
+0x4cf8 mem_rssi_noise_dg_index
+0x4cf9 mem_rssi_noise_kb_index
+0x4cfa mem_rssi_noise_ms_index
+0x4cfb mem_rssi_signal_buf
+0x4d03 mem_queue_ele_num
+0x4d04 mem_queue_read
+0x4d06 mem_queue_write
+0x4d08 mem_queue_start
+0x4d08 mem_data_ele0
+0x4d28 mem_data_ele1
+0x4d48 mem_data_ele2
+0x4d68 mem_queue_end
+0x4d68 mem_queue_temp
+0x4d6a mem_cb_24g_data
+0x4d6c mem_24g_hop_fastly_cnt
+0x4d6d mem_24g_hop_pac_retry
+0x4d6e mem_24g_rf_hop_ch
+0x4d6f mem_24g_rf_last_sta
+0x4d70 mem_24g_rf_work_stage
+0x4d71 mem_24g_sync_cnt
+0x4d72 mem_power_ctrl_pac_succ_cnt
+0x4d73 mem_rssi_avg_received
+0x4d74 mem_rssi_hex_received
+0x4d75 mem_power_ctrl_level
+0x4d76 mem_seqi
+0x4d77 mem_24g_auto_paring_switch
+0x4d78 mem_24g_paccnt
+0x4d79 mem_24g_transmit_by_interrupt
+0x4d7a mem_24g_transmit_by_interrupt_exit_count
+0x4d7c mem_24g_transmit_by_interrupt_exit_count_init
Index: output/program.lis
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/output/program.lis	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/output/program.lis	(working copy)
@@ -7,65 +7,65 @@
 p_zcode:
 
 p_wake_from_power:
-0001 20400398 call p_mouse_data_init 
+0001 20400399 call p_mouse_data_init 
 0002 6800c1de fetch 1 ,mem_tx_power 
-0003 6000ccea store 1 ,mem_tx_power_temp 
-0004 20400645 call power_ctrl_pac_succ_cnt_init 
+0003 6000ccf0 store 1 ,mem_tx_power_temp 
+0004 2040065f call power_ctrl_pac_succ_cnt_init 
 0005 6800c685 fetch 1 ,mem_ui_button_timeout 
 0006 6000c6da store 1 ,mem_combination_ui_button_count 
-0007 20400491 call p_mouse_bt_discovery_button_up_init 
-0008 20400312 call p_mouse_spi_init 
-0009 204006e3 call p_drawing_optima_init 
-000a 20400014 call p_mouse_cb_fuction 
-000b 20400025 call p_mouse_wakeup_from_power 
-000c 680240a0 fetch 4 ,mem_lap 
-000d 60024c6a store 4 ,mem_24g_device_addr 
-000e 20405810 call le_set_config_fixed_ltk 
-000f 20405839 call le_set_justwork 
-0010 2040582c call le_set_fixed_ltk 
-0011 20405818 call le_set_config_read_authentication 
-0012 20403e1e call mouse_param_init 
-0013 202002e5 branch p_mouse_setting_config 
+0007 6800cb32 fetch 1 ,mem_bt_ui_button_timeout 
+0008 6000cb33 store 1 ,mem_bt_ui_button_count 
+0009 204043ca call mouse_bt_discovery_button_down_disable 
+000a 204002a9 call p_mouse_spi_init 
+000b 204006fd call p_drawing_optima_init 
+000c 2040000f call p_mouse_cb_fuction 
+000d 20400020 call p_mouse_wakeup_from_power 
+000e 202002f3 branch p_mouse_setting_config 
 
 p_mouse_cb_fuction:
-0014 58000355 setarg p_mouse_g24_package_data 
-0015 60014d64 store 2 ,mem_cb_24g_data 
-0016 58000384 setarg p_mouse_le 
-0017 600141ef store 2 ,mem_cb_le_process 
-0018 58000618 setarg p_le_mouse_bb_event_connect_complete 
-0019 600141f9 store 2 ,mem_cb_att_write 
-001a 5800029f setarg p_mouse_before_lpm 
-001b 600141ed store 2 ,mem_cb_before_lpm 
-001c 580003d2 setarg p_mouse_priority_bb_event 
-001d 600141f5 store 2 ,mem_cb_bb_event_process 
-001e 580003b7 setarg p_mouse_idle 
-001f 600141f3 store 2 ,mem_cb_idle_process 
-0020 580003ff setarg p_mouse_before_hibernate 
-0021 600141eb store 2 ,mem_cb_before_hibernate 
-0022 5800040c setarg p_mouse_bb_event_timer 
-0023 600141fd store 2 ,mem_cb_event_timer 
-0024 20600000 rtn 
+000f 5800035f setarg p_mouse_g24_package_data 
+0010 60014d6a store 2 ,mem_cb_24g_data 
+0011 5800037c setarg p_mouse_le 
+0012 600141ef store 2 ,mem_cb_le_process 
+0013 580005f9 setarg p_le_mouse_bb_event_connect_complete 
+0014 600141f9 store 2 ,mem_cb_att_write 
+0015 58000263 setarg p_mouse_before_lpm 
+0016 600141ed store 2 ,mem_cb_before_lpm 
+0017 580003cf setarg p_mouse_priority_bb_event 
+0018 600141f5 store 2 ,mem_cb_bb_event_process 
+0019 580003b7 setarg p_mouse_idle 
+001a 600141f3 store 2 ,mem_cb_idle_process 
+001b 580003f5 setarg p_mouse_before_hibernate 
+001c 600141eb store 2 ,mem_cb_before_hibernate 
+001d 580003fc setarg p_mouse_bb_event_timer 
+001e 600141fd store 2 ,mem_cb_event_timer 
+001f 20600000 rtn 
 
 p_mouse_wakeup_from_power:
-0025 58000019 setarg 25 
-0026 60014d76 store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
-0027 24558031 ncall p_mouse_24g_transmit_by_interrupt_exit_count_max ,wake 
-0028 204002c5 call p_mouse_init_sunt 
-0029 20400405 call p_mouse_sensor_powerdown 
+0020 58000019 setarg 25 
+0021 60014d7c store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+0022 24558028 ncall p_mouse_24g_transmit_by_interrupt_exit_count_max ,wake 
+0023 204002ab call p_mouse_init_sunt 
+0024 204002ec call p_mouse_sensor_powerdown 
 
 p_mouse_wakeup_no_from_power:
-002a 6800c71f fetch 1 ,mem_reconn_times_init 
-002b 6000c71e store 1 ,mem_reconn_times 
-002c 680344a0 fetch 6 ,mem_le_lap 
-002d 60034b64 store 6 ,mem_le_normal_lap 
-002e 6800c241 fetch 1 ,mem_power_on_flag 
-002f c3810000 rtnbit1 2 
-0030 20200381 branch p_mouse_dpi_config_default 
+0025 6800c71f fetch 1 ,mem_reconn_times_init 
+0026 6000c71e store 1 ,mem_reconn_times 
+0027 20600000 rtn 
 
 p_mouse_24g_transmit_by_interrupt_exit_count_max:
-0031 58000177 setarg 375 
-0032 60014d76 store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
-0033 20600000 rtn 
+0028 58000177 setarg 375 
+0029 60014d7c store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+002a 20600000 rtn 
+002b 20000001 nop 1 
+002c 20000001 nop 1 
+002d 20000001 nop 1 
+002e 20000001 nop 1 
+002f 20000001 nop 1 
+0030 20000001 nop 1 
+0031 20000001 nop 1 
+0032 20000001 nop 1 
+0033 20000001 nop 1 
 0034 20000001 nop 1 
 0035 20000001 nop 1 
 0036 20000001 nop 1 
@@ -81,1200 +81,1192 @@
 
 p_patch_array:
 0040 c2840050 bbit1 8 ,pf_patch_ext 
-0041 c0008068 beq patch00_1 ,p_soft_reset_1 
-0042 c0010072 beq patch00_2 ,p_soft_reset_2 
-0043 c04286b1 beq patch10_5 ,p_shutdown_radio 
-0044 c0448682 beq patch11_1 ,p_set_freq_tx 
-0045 c04506b3 beq patch11_2 ,p_initialize_radio_cont 
-0046 c050807b beq patch14_1 ,p_init_param 
-0047 c0588080 beq patch16_1 ,p_lpm_check_wake_lock 
-0048 c059008e beq patch16_2 ,p_g24_dispatch 
-0049 c06202ac beq patch18_4 ,p_device_init 
-004a c07184fa beq patch1c_3 ,p_mouse_seting_dpi 
-004b c0730525 beq patch1c_6 ,p_mouse_motion 
-004c c0750560 beq patch1d_2 ,p_mouse_bb_event_discovery_btn 
-004d c0758569 beq patch1d_3 ,p_mouse_start_discovery 
-004e c076056b beq patch1d_4 ,p_mouse_stop_discovery 
+0041 c000805e beq patch00_1 ,p_soft_reset_1 
+0042 c0010068 beq patch00_2 ,p_soft_reset_2 
+0043 c04286cb beq patch10_5 ,p_shutdown_radio 
+0044 c044869c beq patch11_1 ,p_set_freq_tx 
+0045 c04506cd beq patch11_2 ,p_initialize_radio_cont 
+0046 c0508071 beq patch14_1 ,p_init_param 
+0047 c0588076 beq patch16_1 ,p_lpm_check_wake_lock 
+0048 c0590082 beq patch16_2 ,p_g24_dispatch 
+0049 c0620281 beq patch18_4 ,p_device_init 
+004a c07184b0 beq patch1c_3 ,p_mouse_seting_dpi 
+004b c07304dd beq patch1c_6 ,p_mouse_motion 
+004c c0750534 beq patch1d_2 ,p_mouse_bb_event_discovery_btn 
+004d c075853c beq patch1d_3 ,p_mouse_start_discovery 
+004e c0760549 beq patch1d_4 ,p_mouse_stop_discovery 
 004f 20202a8e branch loop 
 
 pf_patch_ext:
-0050 c01c856e beq patch27_1 ,p_le_slave_match 
-0051 c0218576 beq patch28_3 ,p_le_next_adv_channel 
-0052 c025057c beq patch29_2 ,p_le_receive_skip 
-0053 c02b857f beq patch2a_7 ,p_le_update_param 
-0054 c02c8581 beq patch2b_1 ,p_le_update_channel_map 
-0055 c0318583 beq patch2c_3 ,p_le_prepare_tx 
-0056 c03305ac beq patch2c_6 ,p_le_parse 
-0057 c03385cb beq patch2c_7 ,p_le_parse_l2cap 
-0058 c0350603 beq patch2d_2 ,p_le_adv_not_match 
-0059 c03b860e beq patch2e_7 ,p_le_lpm_setmult 
-005a c07d062d beq patch3f_2 ,p_check_51cmd_once_continue 
-005b c046061a beq patch31_4 ,p_twspi_reset 
-005c c0468626 beq patch31_5 ,p_spid_init 
+0050 c01c8555 beq patch27_1 ,p_le_slave_match 
+0051 c021855d beq patch28_3 ,p_le_next_adv_channel 
+0052 c0250563 beq patch29_2 ,p_le_receive_skip 
+0053 c02b8566 beq patch2a_7 ,p_le_update_param 
+0054 c02c8568 beq patch2b_1 ,p_le_update_channel_map 
+0055 c031856a beq patch2c_3 ,p_le_prepare_tx 
+0056 c0330594 beq patch2c_6 ,p_le_parse 
+0057 c03385ab beq patch2c_7 ,p_le_parse_l2cap 
+0058 c03505e4 beq patch2d_2 ,p_le_adv_not_match 
+0059 c03b85ef beq patch2e_7 ,p_le_lpm_setmult 
+005a c04605ff beq patch31_4 ,p_twspi_reset 
+005b c046860b beq patch31_5 ,p_spid_init 
+005c c07d0647 beq patch3f_2 ,p_check_51cmd_once_continue 
 005d 20202a8e branch loop 
 
-p_rssi_signal:
-005e 1fe22200 copy pdata ,rega 
-005f 6808ccee fetcht 1 ,mem_rssi_signal_index 
-0060 58004cf5 setarg mem_rssi_signal_buf 
-0061 98408a00 iadd temp ,contw 
-0062 1a227e00 copy rega ,pdata 
-0063 e0a08000 istore 1 ,contw 
-0064 18408401 increase 1 ,temp 
-0065 18410407 and_into rssi_buf_len_signal ,temp 
-0066 6008ccee storet 1 ,mem_rssi_signal_index 
-0067 20600000 rtn 
-
 p_soft_reset_1:
-0068 d8a009ae arg mem_sp_state ,contw 
-0069 df20000c arg 12 ,loopcnt 
-006a 20407ed4 call clear_mem 
-006b 20400366 call p_mouse_le_txbuff_load 
-006c 204074c1 call init_memp 
-006d 20406a03 call rfcomm_init 
-006e 20405cf6 call init_lmp 
-006f 2455ac65 ncall lpm_disable_exen_output ,wake 
-0070 20407ccd call ui_init + 1 
-0071 2020200c branch soft_reset + 11 
+005e d8a009ae arg mem_sp_state ,contw 
+005f df20000c arg 12 ,loopcnt 
+0060 20407ed4 call clear_mem 
+0061 20400370 call p_mouse_le_txbuff_load 
+0062 204074c1 call init_memp 
+0063 20406a03 call rfcomm_init 
+0064 20405cf6 call init_lmp 
+0065 2455ac65 ncall lpm_disable_exen_output ,wake 
+0066 20407ccd call ui_init + 1 
+0067 2020200c branch soft_reset + 11 
 
 p_soft_reset_2:
-0072 2055b2e3 call app_lpm_init ,wake 
-0073 2040756a call publickey_init 
-0074 2055ab41 call lpm_recover_clk ,wake 
+0068 2055b2e3 call app_lpm_init ,wake 
+0069 2040756a call publickey_init 
+006a 2055ab41 call lpm_recover_clk ,wake 
 
 p_sp_cal_loop:
-0075 204076dc call sp_calc_sequence 
-0076 6800c65a fetch 1 ,mem_ssp_enable 
-0077 203a2012 branch main_loop ,blank 
-0078 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
-0079 203a0075 branch p_sp_cal_loop ,blank 
-007a 20202012 branch main_loop 
+006b 204076dc call sp_calc_sequence 
+006c 6800c65a fetch 1 ,mem_ssp_enable 
+006d 203a2012 branch main_loop ,blank 
+006e 6800c5b1 fetch 1 ,mem_sp_local_key_invalid 
+006f 203a006b branch p_sp_cal_loop ,blank 
+0070 20202012 branch main_loop 
 
 p_init_param:
-007b 58000a06 setarg param_le_version 
-007c 6001c510 store 3 ,mem_lmp_version 
-007d 58001d87 setarg param_le_subversion 
-007e 60014513 store 2 ,mem_lmp_version + 3 
-007f 20202aa2 branch init_param + 12 
+0071 58000a06 setarg param_le_version 
+0072 6001c510 store 3 ,mem_lmp_version 
+0073 58001d87 setarg param_le_subversion 
+0074 60014513 store 2 ,mem_lmp_version + 3 
+0075 20202aa2 branch init_param + 12 
 
 p_lpm_check_wake_lock:
-0080 c6130000 rtnmark1 mark_24g 
-0081 6800cb28 fetch 1 ,mem_mouse_multi_led_state 
-0082 243a7fef nbranch disable_blank ,blank 
-0083 6800cb2e fetch 1 ,mem_mouse_multi_led_blink_count 
-0084 243a7fef nbranch disable_blank ,blank 
-0085 6800c79e fetch 1 ,mem_mouse_clear_sensor_data_flag 
-0086 203a7fef branch disable_blank ,blank 
-0087 6800c7c4 fetch 1 ,mem_mouse_le_conn_param_reject 
-0088 c000ffef beq le_lpm_disable ,disable_blank 
-0089 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-008a c2827fef bbit1 mouse_low_voltage_flag ,disable_blank 
-008b 6800c806 fetch 1 ,mem_mouse_wheel_trigger 
-008c 243a7fef nbranch disable_blank ,blank 
-008d 20207ff1 branch enable_blank 
+0076 c6130000 rtnmark1 mark_24g 
+0077 6800cb28 fetch 1 ,mem_mouse_multi_led_state 
+0078 243a7fef nbranch disable_blank ,blank 
+0079 6800cb2d fetch 1 ,mem_mouse_multi_led_blink_count 
+007a 243a7fef nbranch disable_blank ,blank 
+007b 6800c79e fetch 1 ,mem_mouse_clear_sensor_data_flag 
+007c 203a7fef branch disable_blank ,blank 
+007d 6800c7c6 fetch 1 ,mem_mouse_le_conn_param_reject 
+007e c000ffef beq le_lpm_disable ,disable_blank 
+007f 6800c808 fetch 1 ,mem_mouse_wheel_trigger 
+0080 243a7fef nbranch disable_blank ,blank 
+0081 20207ff1 branch enable_blank 
 
 p_g24_dispatch:
-008e c6930000 rtnmark0 mark_24g 
-008f 6800cd87 fetch 1 ,mem_24g_conn_sm 
-0090 c28080a3 bbit1 state_24g_pair ,p_g24_pair_dispatch 
-0091 c28100a5 bbit1 state_24g_reconn ,p_g24_reconn_dispatch 
-0092 6800cd73 fetch 1 ,mem_24g_transmit_by_interrupt 
-0093 c00080ab beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
+0082 c6930000 rtnmark0 mark_24g 
+0083 6800cd79 fetch 1 ,mem_24g_transmit_by_interrupt 
+0084 c000809b beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
 
 p_g24_transmit_process:
-0094 20400165 call p_g24_txdata_prep 
-0095 243400c6 nbranch p_g24_nodata_transmit ,user 
-0096 20400140 call p_g24_rf_sta_check 
+0085 20400121 call p_g24_txdata_prep 
+0086 243400b6 nbranch p_g24_nodata_transmit ,user 
+0087 20400108 call p_g24_rf_sta_check 
 
 p_g24_transmit_start:
-0097 20400188 call p_g24_transmit_packet 
-0098 6800cc43 fetch 1 ,mem_24g_pairing_sm 
-0099 c1ff8000 rtnne state_24g_pairing_success 
-009a 20400656 call power_ctrl_start 
-009b 204000a7 call g24_long_sleep_shorter_param_update 
-009c 6800cb28 fetch 1 ,mem_mouse_multi_led_state 
-009d c0008358 beq on ,p_g24_transmit_by_interrupt_enable 
+0088 20400145 call p_g24_transmit_packet 
+0089 6800cc49 fetch 1 ,mem_24g_pairing_sm 
+008a c1ff8000 rtnne state_24g_pairing_success 
+008b 20400670 call power_ctrl_start 
+008c 20400096 call g24_long_sleep_shorter_param_update 
+008d 6800cb28 fetch 1 ,mem_mouse_multi_led_state 
+008e c0008362 beq on ,p_g24_transmit_by_interrupt_enable 
+008f 6800c69a fetch 1 ,mem_mouse_key 
+0090 c2810362 bbit1 2 ,p_g24_transmit_by_interrupt_enable 
 
 p_g24_short_sleep:
-009e 204000d5 call p_g24_lpm_wait 
-009f 24740000 nrtn user 
-00a0 204002a6 call p_clear_wake 
-00a1 5800f03c setarg 61500 
-00a2 20202b93 branch lpm_dispatch_sleep 
-
-p_g24_pair_dispatch:
-00a3 7011c660 jam zcode_60 ,mem_zcode_temp_param0 
-00a4 202006b6 branch p_zcode_entrance 
-
-p_g24_reconn_dispatch:
-00a5 7011c653 jam zcode_53 ,mem_zcode_temp_param0 
-00a6 202006b6 branch p_zcode_entrance 
+0091 204000c2 call p_g24_lpm_wait 
+0092 24740000 nrtn user 
+0093 2040026a call p_clear_wake 
+0094 5800ec54 setarg 60500 
+0095 20202b93 branch lpm_dispatch_sleep 
 
 g24_long_sleep_shorter_param_update:
-00a7 58017700 setarg g24_long_sleep_step1 
-00a8 6001cc62 store 3 ,mem_24g_enter_hibernate 
-00a9 704b4614 jam 20 ,mem_24g_long_sleep_param_update_timer 
-00aa 20600000 rtn 
+0096 58017700 setarg g24_long_sleep_step1 
+0097 6001cc68 store 3 ,mem_24g_enter_hibernate 
+0098 58000014 setarg 0x14 
+0099 60014b61 store 2 ,mem_24g_long_sleep_param_update_timer 
+009a 20600000 rtn 
 
 p_g24_transmit_by_interrupt:
-00ab 2040027f call p_g24_timer_check 
-00ac 24740000 nrtn user 
-00ad 204000c0 call p_g24_interval_calibrate 
-00ae 68014d74 fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
-00af 1fe0fe01 increase 1 ,pdata 
-00b0 60014d74 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-00b1 68094d76 fetcht 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
-00b2 98467c00 isub temp ,null 
-00b3 204280b5 call p_g24_transmit_by_interrupt_exit ,zero 
-00b4 20200094 branch p_g24_transmit_process 
+009b 20400244 call p_g24_timer_check 
+009c 24740000 nrtn user 
+009d 204000b0 call p_g24_interval_calibrate 
+009e 68014d7a fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
+009f 1fe0fe01 increase 1 ,pdata 
+00a0 60014d7a store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+00a1 68094d7c fetcht 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+00a2 98467c00 isub temp ,null 
+00a3 204280a5 call p_g24_transmit_by_interrupt_exit ,zero 
+00a4 20200085 branch p_g24_transmit_process 
 
 p_g24_transmit_by_interrupt_exit:
-00b5 704d7300 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
-00b6 58000000 setarg 0 
-00b7 60014d74 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-00b8 58000019 setarg 25 
-00b9 60014d76 store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+00a5 704d7900 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
+00a6 58000000 setarg 0 
+00a7 60014d7a store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+00a8 58000064 setarg 100 
+00a9 60014d7c store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
 
 p_g24_interval_min:
-00ba 704c6e00 jam 0 ,mem_24g_pac_index 
-00bb 6800cc59 fetch 1 ,mem_24g_interval_min 
+00aa 704c7400 jam 0 ,mem_24g_pac_index 
+00ab 6800cc5f fetch 1 ,mem_24g_interval_min 
 
-p_g24_interval_store:
-00bc 6000cc58 store 1 ,mem_24g_interval 
-00bd 20600000 rtn 
+p_g24_current_interval_store:
+00ac 6000cc5e store 1 ,mem_24g_interval 
+00ad 20600000 rtn 
 
 p_g24_interval_max:
-00be 6800cc5a fetch 1 ,mem_24g_interval_max 
-00bf 202000bc branch p_g24_interval_store 
+00ae 6800cc60 fetch 1 ,mem_24g_interval_max 
+00af 202000ac branch p_g24_current_interval_store 
 
 p_g24_interval_calibrate:
-00c0 6800cc6e fetch 1 ,mem_24g_pac_index 
-00c1 1fe0fe01 increase 1 ,pdata 
-00c2 6000cc6e store 1 ,mem_24g_pac_index 
-00c3 c00200be beq 4 ,p_g24_interval_max 
-00c4 c00280ba beq 5 ,p_g24_interval_min 
-00c5 20600000 rtn 
+00b0 6800cc74 fetch 1 ,mem_24g_pac_index 
+00b1 1fe0fe01 increase 1 ,pdata 
+00b2 6000cc74 store 1 ,mem_24g_pac_index 
+00b3 c00200ae beq 4 ,p_g24_interval_max 
+00b4 c00280aa beq 5 ,p_g24_interval_min 
+00b5 20600000 rtn 
 
 p_g24_nodata_transmit:
-00c6 6800cc5f fetch 1 ,mem_24g_abort_pac 
-00c7 205a00f0 call p_g24_send_abort_packet ,blank 
-00c8 6800cb2e fetch 1 ,mem_mouse_multi_led_blink_count 
-00c9 247a0000 nrtn blank 
-00ca 6800cb28 fetch 1 ,mem_mouse_multi_led_state 
-00cb c1008000 rtneq on 
-00cc 6800cd73 fetch 1 ,mem_24g_transmit_by_interrupt 
-00cd c1008000 rtneq g24_tx_timer_int_enable 
-00ce 20400101 call p_g24_search_dongle 
+00b6 6800cc65 fetch 1 ,mem_24g_abort_pac 
+00b7 205a00cb call p_g24_send_abort_packet ,blank 
+00b8 6800cb2d fetch 1 ,mem_mouse_multi_led_blink_count 
+00b9 247a0000 nrtn blank 
+00ba 6800cb28 fetch 1 ,mem_mouse_multi_led_state 
+00bb c1008000 rtneq on 
 
 p_g24_long_sleep:
-00cf 204000d5 call p_g24_lpm_wait 
-00d0 24740000 nrtn user 
-00d1 6801cc62 fetch 3 ,mem_24g_enter_hibernate 
-00d2 20407f49 call clk2lpo 
-00d3 600a415b storet 4 ,mem_sleep_counter 
-00d4 20202b2a branch lpm_sleep 
+00bc 204000c2 call p_g24_lpm_wait 
+00bd 24740000 nrtn user 
+00be 6801cc68 fetch 3 ,mem_24g_enter_hibernate 
+00bf 20407f49 call clk2lpo 
+00c0 600a415b storet 4 ,mem_sleep_counter 
+00c1 20202b2a branch lpm_sleep 
 
 p_g24_lpm_wait:
-00d5 78347c00 enable user 
-00d6 20402afa call lpo_calibration 
-00d7 6801c16f fetch 3 ,mem_clks_per_lpo 
-00d8 203a7fe9 branch disable_user ,blank 
-00d9 6800c091 fetch 1 ,mem_lpm_mode 
-00da 203a7fe9 branch disable_user ,blank 
-00db 6800cd73 fetch 1 ,mem_24g_transmit_by_interrupt 
-00dc c000ffe9 beq g24_tx_timer_int_enable ,disable_user 
-00dd 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-00de c2827fe9 bbit1 mouse_low_voltage_flag ,disable_user 
-
-p_mouse_setgpio_lpm:
-00df 204002a9 call p_mouse_set_sdio_high 
-00e0 204002a6 call p_clear_wake 
-
-p_mouse_setgpio_hibernate:
-00e1 20403ebf call mouse_lpm_before_common 
-00e2 204002e7 call p_flash_ncs_disable 
-00e3 68120070 hfetch 4 ,core_gpio_oe0 
-00e4 681a0078 hfetcht 4 ,core_gpio_pu0 
-00e5 98418400 ior temp ,temp 
-00e6 18440400 invert temp ,temp 
-00e7 601a007c hstoret 4 ,core_gpio_pd0 
-00e8 6810807d hfetch 1 ,core_gpio_pd1 
-00e9 793ffe02 set0 2 ,pdata 
-00ea 6010807d hstore 1 ,core_gpio_pd1 
-00eb 6810807e hfetch 1 ,core_gpio_pd2 
-00ec 793ffe06 set0 6 ,pdata 
-00ed 6010807e hstore 1 ,core_gpio_pd2 
-
-p_mouse_set_ice_gpio:
-00ee d840001d arg 0x1d ,temp 
-00ef 202067fb branch gpio_config_input 
+00c2 78347c00 enable user 
+00c3 20402afa call lpo_calibration 
+00c4 6801c16f fetch 3 ,mem_clks_per_lpo 
+00c5 203a7fe9 branch disable_user ,blank 
+00c6 6800c091 fetch 1 ,mem_lpm_mode 
+00c7 203a7fe9 branch disable_user ,blank 
+00c8 6800cd79 fetch 1 ,mem_24g_transmit_by_interrupt 
+00c9 c000ffe9 beq g24_tx_timer_int_enable ,disable_user 
+00ca 2020026d branch p_mouse_setgpio_lpm 
 
 p_g24_send_abort_packet:
-00f0 704c5f01 jam 1 ,mem_24g_abort_pac 
-00f1 704d6800 jam 0 ,mem_24g_rf_hop_ch 
-00f2 20400116 call p_g24_transmit_rf_ctrl_clear 
-00f3 6000cbcf store 1 ,mem_24g_txbuf 
-00f4 58000000 setarg 0 
-00f5 6003cbd0 store 7 ,mem_24g_txbuf + 1 
-00f6 68024c6a fetch 4 ,mem_24g_device_addr 
-00f7 60024bd7 store 4 ,mem_24g_txbuf + 8 
-00f8 704c330c jam 12 ,mem_24g_datalen 
-00f9 6800cc34 fetch 1 ,mem_24g_data_type 
-00fa 79207e03 set1 bit_abort ,pdata 
-00fb 6000cc34 store 1 ,mem_24g_data_type 
-00fc 20400168 call p_g24_txdata_enable_tx 
-00fd 20200097 branch p_g24_transmit_start 
-
-p_g24_search_dongle_init:
-00fe 58000000 setarg 0 
-00ff 6001cd83 store 3 ,mem_24g_search_dongle_action 
-0100 20600000 rtn 
-
-p_g24_search_dongle:
-0101 7011c671 jam zcode_71 ,mem_zcode_temp_param0 
-0102 202006b6 branch p_zcode_entrance 
-
-p_g24_search_dongle_check:
-0103 704d8400 jam 0 ,mem_24g_search_dongle_count 
-0104 6800cd83 fetch 1 ,mem_24g_search_dongle_action 
-0105 c3800000 rtnbit1 g24_disconn_state 
-0106 79207e00 set1 g24_disconn_state ,pdata 
-0107 6000cd83 store 1 ,mem_24g_search_dongle_action 
-0108 58000708 setarg g24_disconn_nodata_timer 
-0109 600146b0 store 2 ,mem_mouse_no_data_timer 
-010a 20200405 branch p_mouse_sensor_powerdown 
-
-p_g24_search_dongle_success:
-010b 6800cc5f fetch 1 ,mem_24g_abort_pac 
-010c 203a00fe branch p_g24_search_dongle_init ,blank 
-010d 704d8400 jam 0 ,mem_24g_search_dongle_count 
-010e 6800cd83 fetch 1 ,mem_24g_search_dongle_action 
-010f c4000000 rtnbit0 g24_disconn_state 
-0110 793ffe00 set0 g24_disconn_state ,pdata 
-0111 6000cd83 store 1 ,mem_24g_search_dongle_action 
-0112 20403f8d call mouse_no_data_timer_init 
-0113 202003b5 branch p_mouse_init_sensor_reset 
+00cb 704c6501 jam 1 ,mem_24g_abort_pac 
+00cc 704d6e00 jam 0 ,mem_24g_rf_hop_ch 
+00cd 204000de call p_g24_transmit_rf_ctrl_clear 
+00ce 6000cbd5 store 1 ,mem_24g_txbuf 
+00cf 58000000 setarg 0 
+00d0 6003cbd6 store 7 ,mem_24g_txbuf + 1 
+00d1 68024c70 fetch 4 ,mem_24g_device_addr 
+00d2 60024bdd store 4 ,mem_24g_txbuf + 8 
+00d3 704c390c jam 12 ,mem_24g_datalen 
+00d4 6800cc3a fetch 1 ,mem_24g_data_type 
+00d5 79207e03 set1 bit_abort ,pdata 
+00d6 6000cc3a store 1 ,mem_24g_data_type 
+00d7 20400124 call p_g24_txdata_enable_tx 
+00d8 20200088 branch p_g24_transmit_start 
+
+p_g24_set_device_addr:
+00d9 680240a0 fetch 4 ,mem_lap 
+00da 60024c70 store 4 ,mem_24g_device_addr 
+00db 20600000 rtn 
 
 p_g24_transmit_rf_sta_init:
-0114 704d6901 jam 1 ,mem_24g_rf_last_sta 
-0115 704d6b00 jam 0 ,mem_24g_sync_cnt 
+00dc 704d6f01 jam 1 ,mem_24g_rf_last_sta 
+00dd 704d7100 jam 0 ,mem_24g_sync_cnt 
 
 p_g24_transmit_rf_ctrl_clear:
-0116 6800cc34 fetch 1 ,mem_24g_data_type 
-0117 1fe17e07 and_into bits_data ,pdata 
-0118 6000cc34 store 1 ,mem_24g_data_type 
-0119 20600000 rtn 
+00de 6800cc3a fetch 1 ,mem_24g_data_type 
+00df 1fe17e07 and_into bits_data ,pdata 
+00e0 6000cc3a store 1 ,mem_24g_data_type 
+00e1 20600000 rtn 
 
 p_g24_hop_ch_enable:
-011a 6800cc34 fetch 1 ,mem_24g_data_type 
-011b 79207e04 set1 bit_hop ,pdata 
-011c 6000cc34 store 1 ,mem_24g_data_type 
-011d 6000cbef store 1 ,mem_24g_txpayload 
-011e 20600000 rtn 
+00e2 6800cc3a fetch 1 ,mem_24g_data_type 
+00e3 79207e04 set1 bit_hop ,pdata 
+00e4 6000cc3a store 1 ,mem_24g_data_type 
+00e5 6000cbf5 store 1 ,mem_24g_txpayload 
+00e6 20600000 rtn 
 
 p_g24_hop_enable_packet:
-011f 6800cc34 fetch 1 ,mem_24g_data_type 
-0120 c4020000 rtnbit0 bit_hop 
+00e7 6800cc3a fetch 1 ,mem_24g_data_type 
+00e8 c4020000 rtnbit0 bit_hop 
 
 p_g24_hop_ch_disable:
-0121 6800cc34 fetch 1 ,mem_24g_data_type 
-0122 793ffe04 set0 bit_hop ,pdata 
-0123 6000cc34 store 1 ,mem_24g_data_type 
-0124 6000cbef store 1 ,mem_24g_txpayload 
-0125 2040064c call power_ctrl_pac_succ_decrs 
-0126 20200153 branch p_g24_ch 
+00e9 6800cc3a fetch 1 ,mem_24g_data_type 
+00ea 793ffe04 set0 bit_hop ,pdata 
+00eb 6000cc3a store 1 ,mem_24g_data_type 
+00ec 6000cbf5 store 1 ,mem_24g_txpayload 
+00ed 20400666 call power_ctrl_pac_succ_decrs 
+00ee 202001ca branch p_g24_ch 
 
 p_g24_rf_hop_attemp_again:
-0127 6800cd68 fetch 1 ,mem_24g_rf_hop_ch 
-0128 c0808116 bne 1 ,p_g24_transmit_rf_ctrl_clear 
+00ef 6800cd6e fetch 1 ,mem_24g_rf_hop_ch 
+00f0 c08080de bne 1 ,p_g24_transmit_rf_ctrl_clear 
 
 p_g24_rf_hop_fastly:
-0129 6800cd66 fetch 1 ,mem_24g_hop_fastly_cnt 
-012a 1fe0fe01 increase 1 ,pdata 
-012b 6000cd66 store 1 ,mem_24g_hop_fastly_cnt 
-012c c0020130 beq 4 ,p_g24_rf_hop_fastly_exit 
-012d 20400153 call p_g24_ch 
-012e 704c7802 jam 2 ,mem_24g_max_retry 
-012f 20200188 branch p_g24_transmit_packet 
+00f1 6800cd6c fetch 1 ,mem_24g_hop_fastly_cnt 
+00f2 1fe0fe01 increase 1 ,pdata 
+00f3 6000cd6c store 1 ,mem_24g_hop_fastly_cnt 
+00f4 c00200f8 beq 4 ,p_g24_rf_hop_fastly_exit 
+00f5 204001ca call p_g24_ch 
+00f6 704c7e02 jam 2 ,mem_24g_max_retry 
+00f7 20200145 branch p_g24_transmit_packet 
 
 p_g24_rf_hop_fastly_exit:
-0130 2040064c call power_ctrl_pac_succ_decrs 
-0131 704d6600 jam 0 ,mem_24g_hop_fastly_cnt 
-0132 20200116 branch p_g24_transmit_rf_ctrl_clear 
+00f8 20400666 call power_ctrl_pac_succ_decrs 
+00f9 704d6c00 jam 0 ,mem_24g_hop_fastly_cnt 
+00fa 202000de branch p_g24_transmit_rf_ctrl_clear 
 
 p_g24_transmit_hop_pac_succ_wo_hop:
-0133 704d6b02 jam 2 ,mem_24g_sync_cnt 
+00fb 704d7102 jam 2 ,mem_24g_sync_cnt 
 
 p_g24_transmit_hop_pac_succ:
-0134 704d6901 jam 1 ,mem_24g_rf_last_sta 
-0135 704d6800 jam 0 ,mem_24g_rf_hop_ch 
-0136 20200116 branch p_g24_transmit_rf_ctrl_clear 
+00fc 704d6f01 jam 1 ,mem_24g_rf_last_sta 
+00fd 704d6e00 jam 0 ,mem_24g_rf_hop_ch 
+00fe 202000de branch p_g24_transmit_rf_ctrl_clear 
 
 p_g24_transmit_succ_rf_config:
-0137 6800cd6a fetch 1 ,mem_24g_rf_work_stage 
-0138 c0018134 beq 3 ,p_g24_transmit_hop_pac_succ 
-0139 6800cc34 fetch 1 ,mem_24g_data_type 
-013a 2fec0004 isolate0 bit_hop ,pdata 
-013b 20208114 branch p_g24_transmit_rf_sta_init ,true 
-013c 6800cd6a fetch 1 ,mem_24g_rf_work_stage 
-013d c0008133 beq 1 ,p_g24_transmit_hop_pac_succ_wo_hop 
-013e c0010134 beq 2 ,p_g24_transmit_hop_pac_succ 
-013f 20600000 rtn 
+00ff 6800cd70 fetch 1 ,mem_24g_rf_work_stage 
+0100 c00180fc beq 3 ,p_g24_transmit_hop_pac_succ 
+0101 6800cc3a fetch 1 ,mem_24g_data_type 
+0102 2fec0004 isolate0 bit_hop ,pdata 
+0103 202080dc branch p_g24_transmit_rf_sta_init ,true 
+0104 6800cd70 fetch 1 ,mem_24g_rf_work_stage 
+0105 c00080fb beq 1 ,p_g24_transmit_hop_pac_succ_wo_hop 
+0106 c00100fc beq 2 ,p_g24_transmit_hop_pac_succ 
+0107 20600000 rtn 
 
 p_g24_rf_sta_check:
-0140 6800cc43 fetch 1 ,mem_24g_pairing_sm 
-0141 c1ff8000 rtnne state_24g_pairing_success 
-0142 20400145 call p_g24_rf_laststa_synccnt_check 
-0143 2456014d ncall p_g24_rf_sync_cnt_check ,user2 
-0144 20600000 rtn 
+0108 6800cc49 fetch 1 ,mem_24g_pairing_sm 
+0109 c1ff8000 rtnne state_24g_pairing_success 
+010a 2040010d call p_g24_rf_laststa_synccnt_check 
+010b 24560115 ncall p_g24_rf_sync_cnt_check ,user2 
+010c 20600000 rtn 
 
 p_g24_rf_laststa_synccnt_check:
-0145 78567c00 disable user2 
-0146 6800cd69 fetch 1 ,mem_24g_rf_last_sta 
-0147 c1808000 rtnne 1 
-0148 6800cd6b fetch 1 ,mem_24g_sync_cnt 
-0149 c1800000 rtnne 0 
-014a 704d6a01 jam 1 ,mem_24g_rf_work_stage 
-014b 704c7804 jam 4 ,mem_24g_max_retry 
-014c 20207feb branch enable_user2 
+010d 78567c00 disable user2 
+010e 6800cd6f fetch 1 ,mem_24g_rf_last_sta 
+010f c1808000 rtnne 1 
+0110 6800cd71 fetch 1 ,mem_24g_sync_cnt 
+0111 c1800000 rtnne 0 
+0112 704d7001 jam 1 ,mem_24g_rf_work_stage 
+0113 704c7e04 jam 4 ,mem_24g_max_retry 
+0114 20207feb branch enable_user2 
 
 p_g24_rf_sync_cnt_check:
-014d 6800cd6b fetch 1 ,mem_24g_sync_cnt 
-014e 203a0160 branch p_g24_rf_hop_attemp ,blank 
-014f 1fe0ffff increase -1 ,pdata 
-0150 6000cd6b store 1 ,mem_24g_sync_cnt 
-0151 704d6a02 jam 2 ,mem_24g_rf_work_stage 
-0152 704c7804 jam 4 ,mem_24g_max_retry 
-
-p_g24_ch:
-0153 6808cc3e fetcht 1 ,mem_24g_current_ch_number 
-0154 6800cc5b fetch 1 ,mem_24g_addr 
-0155 1fe17e03 and_into 0x03 ,pdata 
-0156 1fefa204 mul32 pdata ,4 ,rega 
-0157 58004c44 setarg mem_24g_ch_map1 
-0158 9a20fe00 iadd rega ,pdata 
-0159 98408c00 iadd temp ,contr 
-015a e8c08000 ifetch 1 ,contr 
-015b 6000cc3d store 1 ,mem_24g_ch 
-015c 18408401 increase 1 ,temp 
-015d 18410403 and_into 3 ,temp 
-015e 6008cc3e storet 1 ,mem_24g_current_ch_number 
-015f 20600000 rtn 
+0115 6800cd71 fetch 1 ,mem_24g_sync_cnt 
+0116 203a011c branch p_g24_rf_hop_attemp ,blank 
+0117 1fe0ffff increase -1 ,pdata 
+0118 6000cd71 store 1 ,mem_24g_sync_cnt 
+0119 704d7002 jam 2 ,mem_24g_rf_work_stage 
+011a 704c7e04 jam 4 ,mem_24g_max_retry 
+011b 202001ca branch p_g24_ch 
 
 p_g24_rf_hop_attemp:
-0160 704d6a03 jam 3 ,mem_24g_rf_work_stage 
-0161 6800cd68 fetch 1 ,mem_24g_rf_hop_ch 
-0162 243a0127 nbranch p_g24_rf_hop_attemp_again ,blank 
-0163 704c7802 jam 2 ,mem_24g_max_retry 
-0164 20200153 branch p_g24_ch 
+011c 704d7003 jam 3 ,mem_24g_rf_work_stage 
+011d 6800cd6e fetch 1 ,mem_24g_rf_hop_ch 
+011e 243a00ef nbranch p_g24_rf_hop_attemp_again ,blank 
+011f 704c7e02 jam 2 ,mem_24g_max_retry 
+0120 202001ca branch p_g24_ch 
 
 p_g24_txdata_prep:
-0165 6800cc43 fetch 1 ,mem_24g_pairing_sm 
-0166 c0ff81e3 bne state_24g_pairing_success ,p_g24_pairing_sm 
+0121 6800cc49 fetch 1 ,mem_24g_pairing_sm 
+0122 c0ff818b bne state_24g_pairing_success ,p_g24_pairing_sm 
 
 p_g24_txdata_prep_packeage_data:
-0167 2040016b call p_g24_package_data 
+0123 20400127 call p_g24_package_data 
 
 p_g24_txdata_enable_tx:
-0168 20400203 call p_g24_transmit_prep 
-0169 704c3801 jam ensure_on_24g ,mem_24g_ensure 
-016a 20600000 rtn 
+0124 204001b8 call p_g24_transmit_prep 
+0125 704c3e01 jam ensure_on_24g ,mem_24g_ensure 
+0126 20600000 rtn 
 
 p_g24_package_data:
-016b 68014d64 fetch 2 ,mem_cb_24g_data 
-016c 20407f9c call callback_func 
-016d 20340171 branch p_g24_accumulate_mouse_data ,user 
-016e 6803cbd0 fetch 7 ,mem_24g_txbuf + 1 
-016f 207a0000 rtn blank 
-0170 20207fe7 branch enable_user 
+0127 68014d6a fetch 2 ,mem_cb_24g_data 
+0128 20407f9c call callback_func 
+0129 2034012d branch p_g24_accumulate_mouse_data ,user 
+012a 6803cbd6 fetch 7 ,mem_24g_txbuf + 1 
+012b 207a0000 rtn blank 
+012c 20207fe7 branch enable_user 
 
 p_g24_accumulate_mouse_data:
-0171 20400372 call p_mouse_data_xy_release 
-0172 704c5f00 jam 0 ,mem_24g_abort_pac 
-0173 1a20fe01 add rega ,1 ,pdata 
-0174 6000cc33 store 1 ,mem_24g_datalen 
-0175 20400116 call p_g24_transmit_rf_ctrl_clear 
-0176 6000cbcf store 1 ,mem_24g_txbuf 
-0177 e8a88000 ifetcht 1 ,contw 
-0178 ea408000 ifetch 1 ,regb 
-0179 9841fe00 ior temp ,pdata 
-017a e0a08000 istore 1 ,contw 
-017b 1a40a401 increase 1 ,regb 
-017c ea420000 ifetch 4 ,regb 
-017d e0a20000 istore 4 ,contw 
-017e 1a40a404 increase 4 ,regb 
-017f d8a04bd5 arg mem_24g_txbuf + 6 ,contw 
-0180 df200002 arg 2 ,loopcnt 
+012d 20400393 call p_mouse_data_xy_release 
+012e 204003af call p_mouse_wheel_trigger 
+012f 704c6500 jam 0 ,mem_24g_abort_pac 
+0130 1a20fe01 add rega ,1 ,pdata 
+0131 6000cc39 store 1 ,mem_24g_datalen 
+0132 204000de call p_g24_transmit_rf_ctrl_clear 
+0133 6000cbd5 store 1 ,mem_24g_txbuf 
+0134 e8a88000 ifetcht 1 ,contw 
+0135 ea408000 ifetch 1 ,regb 
+0136 9841fe00 ior temp ,pdata 
+0137 e0a08000 istore 1 ,contw 
+0138 1a40a401 increase 1 ,regb 
+0139 ea420000 ifetch 4 ,regb 
+013a e0a20000 istore 4 ,contw 
+013b 1a40a404 increase 4 ,regb 
+013c d8a04bdb arg mem_24g_txbuf + 6 ,contw 
+013d df200002 arg 2 ,loopcnt 
 
 p_g24_accumulation_loop:
-0181 ea408000 ifetch 1 ,regb 
-0182 e8a88000 ifetcht 1 ,contw 
-0183 9840fe00 iadd temp ,pdata 
-0184 e0a08000 istore 1 ,contw 
-0185 1a40a401 increase 1 ,regb 
-0186 c2000181 loop p_g24_accumulation_loop 
-0187 20600000 rtn 
+013e ea408000 ifetch 1 ,regb 
+013f e8a88000 ifetcht 1 ,contw 
+0140 9840fe00 iadd temp ,pdata 
+0141 e0a08000 istore 1 ,contw 
+0142 1a40a401 increase 1 ,regb 
+0143 c200013e loop p_g24_accumulation_loop 
+0144 20600000 rtn 
 
 p_g24_transmit_packet:
-0188 704c3c00 jam 0 ,mem_24g_retry 
+0145 704c4200 jam 0 ,mem_24g_retry 
 
 p_g24_transmit_loop:
-0189 d9600d00 arg param_rx_setup ,timeup 
-018a 34730200 until clkn_rt ,meet 
-018b 2040019f call p_g24_transmit_receive_ack 
-018c 242c01aa nbranch p_g24_retransmit ,sync 
-018d 243781aa nbranch p_g24_retransmit ,user3 
-018e 2040019c call p_g24_txbuf_clear 
-018f 204001c7 call p_g24_ackpayload_parse 
-0190 20400648 call power_ctrl_pac_succ_incrs 
+0146 d9600d00 arg param_rx_setup ,timeup 
+0147 34730200 until clkn_rt ,meet 
+0148 2040015c call p_g24_transmit_receive_ack 
+0149 242c0167 nbranch p_g24_retransmit ,sync 
+014a 24378167 nbranch p_g24_retransmit ,user3 
+014b 20400159 call p_g24_txbuf_clear 
+014c 20400184 call p_g24_ackpayload_parse 
+014d 20400662 call power_ctrl_pac_succ_incrs 
 
 p_g24_transmit_next_packet:
-0191 6800cc32 fetch 1 ,mem_24g_pid 
-0192 1fe0fe01 increase 1 ,pdata 
-0193 6000cc32 store 1 ,mem_24g_pid 
-0194 2040011f call p_g24_hop_enable_packet 
-0195 6800cc43 fetch 1 ,mem_24g_pairing_sm 
-0196 c0ff81e5 bne state_24g_pairing_success ,p_g24_paring_mode_start 
-0197 20400137 call p_g24_transmit_succ_rf_config 
+014e 6800cc38 fetch 1 ,mem_24g_pid 
+014f 1fe0fe01 increase 1 ,pdata 
+0150 6000cc38 store 1 ,mem_24g_pid 
+0151 204000e7 call p_g24_hop_enable_packet 
+0152 6800cc49 fetch 1 ,mem_24g_pairing_sm 
+0153 c0ff818d bne state_24g_pairing_success ,p_g24_paring_mode_start 
+0154 204000ff call p_g24_transmit_succ_rf_config 
 
 p_g24_transmit_abandon:
-0198 58000000 setarg 0 
-0199 60024c38 store 4 ,mem_24g_ensure 
-019a 6000cd67 store 1 ,mem_24g_hop_pac_retry 
-019b 20600000 rtn 
+0155 58000000 setarg 0 
+0156 60024c3e store 4 ,mem_24g_ensure 
+0157 6000cd6d store 1 ,mem_24g_hop_pac_retry 
+0158 20600000 rtn 
 
 p_g24_txbuf_clear:
-019c df200004 arg 4 ,loopcnt 
-019d d8a04bcf arg mem_24g_txbuf ,contw 
-019e 20207ec6 branch memset0 
+0159 df200004 arg 4 ,loopcnt 
+015a d8a04bd5 arg mem_24g_txbuf ,contw 
+015b 20207ec6 branch memset0 
 
 p_g24_transmit_receive_ack:
-019f 7857fc00 disable user3 
-01a0 2040025e call p_g24_transmit 
-01a1 18002a00 force 0 ,radio_ctrl 
-01a2 68024c5b fetch 4 ,mem_24g_addr 
-01a3 98001200 iforce access 
-01a4 68088017 fetcht 1 ,mem_last_freq 
-01a5 2040291f call set_freq_rx 
-01a6 20402924 call rf_rx_enable 
-01a7 2040021e call p_g24_receive_rxon 
-01a8 20578257 call p_g24_end_of_packet ,user3 
-01a9 20600000 rtn 
+015c 7857fc00 disable user3 
+015d 20400221 call p_g24_transmit 
+015e 18002a00 force 0 ,radio_ctrl 
+015f 68024c61 fetch 4 ,mem_24g_addr 
+0160 98001200 iforce access 
+0161 68088017 fetcht 1 ,mem_last_freq 
+0162 2040291f call set_freq_rx 
+0163 20402924 call rf_rx_enable 
+0164 204001dd call p_g24_receive_rxon 
+0165 2057821e call p_g24_end_of_packet ,user3 
+0166 20600000 rtn 
 
 p_g24_retransmit:
-01aa 6800cc5f fetch 1 ,mem_24g_abort_pac 
-01ab 247a0000 nrtn blank 
-01ac 68014c39 fetch 2 ,mem_24g_txfail_cnt 
-01ad 1fe0fe01 increase 1 ,pdata 
-01ae 60014c39 store 2 ,mem_24g_txfail_cnt 
-01af 6800cc3a fetch 1 ,mem_24g_txfail_cnt + 1 
-01b0 c2822dd4 bbit1 4 ,g24_stop_24g_mode 
-01b1 6800cc43 fetch 1 ,mem_24g_pairing_sm 
-01b2 c0ff81b5 bne state_24g_pairing_success ,p_g24_tx_paring_retry 
-01b3 204001bd call p_g24_tx_hop_ch_process 
-01b4 20200189 branch p_g24_transmit_loop 
+0167 6800cc65 fetch 1 ,mem_24g_abort_pac 
+0168 247a0000 nrtn blank 
+0169 68014c3f fetch 2 ,mem_24g_txfail_cnt 
+016a 1fe0fe01 increase 1 ,pdata 
+016b 60014c3f store 2 ,mem_24g_txfail_cnt 
+016c 6800cc40 fetch 1 ,mem_24g_txfail_cnt + 1 
+016d c2822dd4 bbit1 4 ,g24_stop_24g_mode 
+016e 6800cc49 fetch 1 ,mem_24g_pairing_sm 
+016f c0ff8172 bne state_24g_pairing_success ,p_g24_tx_paring_retry 
+0170 2040017a call p_g24_tx_hop_ch_process 
+0171 20200146 branch p_g24_transmit_loop 
 
 p_g24_tx_paring_retry:
-01b5 6800cc39 fetch 1 ,mem_24g_txfail_cnt 
-01b6 c1ff8000 rtnne 0xff 
+0172 6800cc3f fetch 1 ,mem_24g_txfail_cnt 
+0173 c1ff8000 rtnne 0xff 
 
 p_g24_tx_attempt_fail:
-01b7 58000000 setarg 0 
-01b8 60014c39 store 2 ,mem_24g_txfail_cnt 
-01b9 20202dd4 branch g24_stop_24g_mode 
+0174 58000000 setarg 0 
+0175 60014c3f store 2 ,mem_24g_txfail_cnt 
+0176 20202dd4 branch g24_stop_24g_mode 
 
 p_g24_tx_fast_hop:
-01ba 20400679 call power_ctrl_txpower_incrs 
-01bb 2040064c call power_ctrl_pac_succ_decrs 
-01bc 20200153 branch p_g24_ch 
+0177 20400693 call power_ctrl_txpower_incrs 
+0178 20400666 call power_ctrl_pac_succ_decrs 
+0179 202001ca branch p_g24_ch 
 
 p_g24_tx_hop_ch_process:
-01bd 6800cc3c fetch 1 ,mem_24g_retry 
-01be 1fe67c0b sub pdata ,11 ,null 
-01bf 242101ba nbranch p_g24_tx_fast_hop ,positive 
-01c0 1fe0fe01 increase 1 ,pdata 
-01c1 6000cc3c store 1 ,mem_24g_retry 
-01c2 c001011a beq 2 ,p_g24_hop_ch_enable 
-01c3 c0030121 beq 6 ,p_g24_hop_ch_disable 
-01c4 c004011a beq 8 ,p_g24_hop_ch_enable 
-01c5 c0060121 beq 12 ,p_g24_hop_ch_disable 
-01c6 20600000 rtn 
+017a 6800cc42 fetch 1 ,mem_24g_retry 
+017b 1fe67c0b sub pdata ,11 ,null 
+017c 24210177 nbranch p_g24_tx_fast_hop ,positive 
+017d 1fe0fe01 increase 1 ,pdata 
+017e 6000cc42 store 1 ,mem_24g_retry 
+017f c00100e2 beq 2 ,p_g24_hop_ch_enable 
+0180 c00300e9 beq 6 ,p_g24_hop_ch_disable 
+0181 c00400e2 beq 8 ,p_g24_hop_ch_enable 
+0182 c00600e9 beq 12 ,p_g24_hop_ch_disable 
+0183 20600000 rtn 
 
 p_g24_ackpayload_parse:
-01c7 204001f6 call p_g24_read_len_pid_crc 
-01c8 6800cc31 fetch 1 ,mem_24g_rxdata_length 
-01c9 207a0000 rtn blank 
-01ca 98007200 iforce loopcnt 
-01cb d8c04baf arg mem_24g_rxbuf + 2 ,contr 
-01cc d8a04c11 arg mem_24g_rxpayload ,contw 
-01cd 20207f01 branch memcpy 
-
-p_g24_pair_init:
-01ce 7041de04 jam tx_power_f5db ,mem_tx_power 
-01cf 704c3200 jam 0 ,mem_24g_pid 
-01d0 704c3d4e jam g24_pair_ch ,mem_24g_ch 
-01d1 68024c3f fetch 4 ,mem_24g_paring_addr 
-
-p_g24_update_addr_and_synccrc8:
-01d2 60024c5b store 4 ,mem_24g_addr 
-
-p_g24_syncword_crc8:
-01d3 da200000 arg 0 ,rega 
-01d4 df200004 arg 4 ,loopcnt 
-01d5 d8c04c5b arg mem_24g_addr ,contr 
-
-p_g24_syncword_crc8_loop:
-01d6 e8c08000 ifetch 1 ,contr 
-01d7 9a20a200 iadd rega ,rega 
-01d8 c20001d6 loop p_g24_syncword_crc8_loop 
-01d9 1a227e00 copy rega ,pdata 
-01da 60014ce4 store 2 ,mem_24g_syncword 
-01db 6800cce4 fetch 1 ,mem_24g_syncword 
-01dc 6808cce5 fetcht 1 ,mem_24g_syncword + 1 
-01dd 9840fe00 iadd temp ,pdata 
-01de 6000cce6 store 1 ,mem_24g_syncword_crc8 
-01df 20600000 rtn 
-
-p_g24_start_pairing_sm1:
-01e0 204001ce call p_g24_pair_init 
-
-p_g24_set_pairing_sm_1:
-01e1 704c4301 jam state_24g_pairing_1 ,mem_24g_pairing_sm 
-01e2 20600000 rtn 
+0184 2040019d call p_g24_read_len_pid_crc 
+0185 6800cc37 fetch 1 ,mem_24g_rxdata_length 
+0186 207a0000 rtn blank 
+0187 98007200 iforce loopcnt 
+0188 d8c04bb5 arg mem_24g_rxbuf + 2 ,contr 
+0189 d8a04c17 arg mem_24g_rxpayload ,contw 
+018a 20207f01 branch memcpy 
 
 p_g24_pairing_sm:
-01e3 7011c690 jam zcode_90 ,mem_zcode_temp_param0 
-01e4 202006b6 branch p_zcode_entrance 
+018b 7011c790 jam zcode_90 ,mem_zcode_temp_param0 
+018c 202006d0 branch p_zcode_entrance 
 
 p_g24_paring_mode_start:
-01e5 20400645 call power_ctrl_pac_succ_cnt_init 
+018d 2040065f call power_ctrl_pac_succ_cnt_init 
 
 p_g24_paring_mode:
-01e6 7011c691 jam zcode_91 ,mem_zcode_temp_param0 
-01e7 202006b6 branch p_zcode_entrance 
+018e 7011c791 jam zcode_91 ,mem_zcode_temp_param0 
+018f 202006d0 branch p_zcode_entrance 
 
 p_g24_start_24g_mode:
-01e8 7011c640 jam zcode_40 ,mem_zcode_temp_param0 
-01e9 202006b6 branch p_zcode_entrance 
+0190 7011c760 jam zcode_60 ,mem_zcode_temp_param0 
+0191 202006d0 branch p_zcode_entrance 
 
 p_g24_auto_pair_start:
-01ea 7011c641 jam zcode_41 ,mem_zcode_temp_param0 
-01eb 202006b6 branch p_zcode_entrance 
+0192 7011c770 jam zcode_70 ,mem_zcode_temp_param0 
+0193 202006d0 branch p_zcode_entrance 
 
 p_g24_check_51cmd_stop_24g:
-01ec 793f8026 set0 mark_24g ,mark 
-01ed 704d8700 jam state_24g_stop ,mem_24g_conn_sm 
-01ee 204053ce call le_disable 
+0194 793f8026 set0 mark_24g ,mark 
+0195 204053ce call le_disable 
 
 p_mouse_disable_g24_pairing_flag:
-01ef d8e00003 arg mosue_24g_pairing_flag ,queue 
-01f0 202043d2 branch mouse_disable_function_flag 
+0196 d8e00003 arg mosue_24g_pairing_flag ,queue 
+0197 202043d2 branch mouse_disable_function_flag 
 
 p_g24_put_data_in_buff:
-01f1 6008cc33 storet 1 ,mem_24g_datalen 
-01f2 18427200 copy temp ,loopcnt 
-01f3 d8a04bcf arg mem_24g_txbuf ,contw 
-01f4 1a220c00 copy rega ,contr 
-01f5 20207f01 branch memcpy 
+0198 6008cc39 storet 1 ,mem_24g_datalen 
+0199 18427200 copy temp ,loopcnt 
+019a d8a04bd5 arg mem_24g_txbuf ,contw 
+019b 1a220c00 copy rega ,contr 
+019c 20207f01 branch memcpy 
 
 p_g24_read_len_pid_crc:
-01f6 6800cbae fetch 1 ,mem_24g_rxbuf + 1 
-01f7 1fe97e00 rshift3 pdata ,pdata 
-01f8 6000cc31 store 1 ,mem_24g_rxdata_length 
-01f9 1fe0fe01 increase 1 ,pdata 
-01fa d8c04bae arg mem_24g_rxbuf + 1 ,contr 
-01fb 98c08c00 iadd contr ,contr 
-01fc e8c18000 ifetch 3 ,contr 
-01fd 6001cc70 store 3 ,mem_24g_sta_crc 
-01fe 6800cbae fetch 1 ,mem_24g_rxbuf + 1 
-01ff 1fe37e00 rshift pdata ,pdata 
-0200 1fe17e03 and pdata ,0x03 ,pdata 
-0201 6000cc76 store 1 ,mem_24g_sta_pid 
-0202 20600000 rtn 
+019d 6800cbb4 fetch 1 ,mem_24g_rxbuf + 1 
+019e 1fe97e00 rshift3 pdata ,pdata 
+019f 6000cc37 store 1 ,mem_24g_rxdata_length 
+01a0 1fe0fe01 increase 1 ,pdata 
+01a1 d8c04bb4 arg mem_24g_rxbuf + 1 ,contr 
+01a2 98c08c00 iadd contr ,contr 
+01a3 e8c18000 ifetch 3 ,contr 
+01a4 6001cc76 store 3 ,mem_24g_sta_crc 
+01a5 6800cbb4 fetch 1 ,mem_24g_rxbuf + 1 
+01a6 1fe37e00 rshift pdata ,pdata 
+01a7 1fe17e03 and pdata ,0x03 ,pdata 
+01a8 6000cc7c store 1 ,mem_24g_sta_pid 
+01a9 20600000 rtn 
+
+p_g24_update_addr_and_synccrc8:
+01aa 60024c61 store 4 ,mem_24g_addr 
+
+p_g24_syncword_crc8:
+01ab da200000 arg 0 ,rega 
+01ac df200004 arg 4 ,loopcnt 
+01ad d8c04c61 arg mem_24g_addr ,contr 
+
+p_g24_syncword_crc8_loop:
+01ae e8c08000 ifetch 1 ,contr 
+01af 9a20a200 iadd rega ,rega 
+01b0 c20001ae loop p_g24_syncword_crc8_loop 
+01b1 1a227e00 copy rega ,pdata 
+01b2 60014cea store 2 ,mem_24g_syncword 
+01b3 6800ccea fetch 1 ,mem_24g_syncword 
+01b4 6808cceb fetcht 1 ,mem_24g_syncword + 1 
+01b5 9840fe00 iadd temp ,pdata 
+01b6 6000ccec store 1 ,mem_24g_syncword_crc8 
+01b7 20600000 rtn 
 
 p_g24_transmit_prep:
-0203 6800cc33 fetch 1 ,mem_24g_datalen 
-0204 1fe0fe02 increase 2 ,pdata 
-0205 6000cc35 store 1 ,mem_24g_txlen 
-0206 6800cc34 fetch 1 ,mem_24g_data_type 
-0207 6000cbef store 1 ,mem_24g_txpayload 
-0208 6800cc33 fetch 1 ,mem_24g_datalen 
-0209 1fe9fe00 lshift3 pdata ,pdata 
-020a 6808cc32 fetcht 1 ,mem_24g_pid 
-020b 18410403 and temp ,0x03 ,temp 
-020c 18438400 lshift temp ,temp 
-020d 9841fe00 ior temp ,pdata 
-020e 6808cc6f fetcht 1 ,mem_24g_no_ack 
-020f 9840fe00 iadd temp ,pdata 
-0210 e0a08000 istore 1 ,contw 
-0211 6800cc33 fetch 1 ,mem_24g_datalen 
-0212 98007200 iforce loopcnt 
-0213 d8c04bcf arg mem_24g_txbuf ,contr 
-0214 20207f01 branch memcpy 
+01b8 6800cc39 fetch 1 ,mem_24g_datalen 
+01b9 1fe0fe02 increase 2 ,pdata 
+01ba 6000cc3b store 1 ,mem_24g_txlen 
+01bb 6800cc3a fetch 1 ,mem_24g_data_type 
+01bc 6000cbf5 store 1 ,mem_24g_txpayload 
+01bd 6800cc39 fetch 1 ,mem_24g_datalen 
+01be 1fe9fe00 lshift3 pdata ,pdata 
+01bf 6808cc38 fetcht 1 ,mem_24g_pid 
+01c0 18410403 and temp ,0x03 ,temp 
+01c1 18438400 lshift temp ,temp 
+01c2 9841fe00 ior temp ,pdata 
+01c3 6808cc75 fetcht 1 ,mem_24g_no_ack 
+01c4 9840fe00 iadd temp ,pdata 
+01c5 e0a08000 istore 1 ,contw 
+01c6 6800cc39 fetch 1 ,mem_24g_datalen 
+01c7 98007200 iforce loopcnt 
+01c8 d8c04bd5 arg mem_24g_txbuf ,contr 
+01c9 20207f01 branch memcpy 
+
+p_g24_ch:
+01ca 6808cc44 fetcht 1 ,mem_24g_current_ch_number 
+01cb 6800cc61 fetch 1 ,mem_24g_addr 
+01cc 1fe17e03 and_into 0x03 ,pdata 
+01cd 1fefa204 mul32 pdata ,4 ,rega 
+01ce 58004c4a setarg mem_24g_ch_map1 
+01cf 9a20fe00 iadd rega ,pdata 
+01d0 98408c00 iadd temp ,contr 
+01d1 e8c08000 ifetch 1 ,contr 
+01d2 6000cc43 store 1 ,mem_24g_ch 
+01d3 18408401 increase 1 ,temp 
+01d4 18410403 and_into 3 ,temp 
+01d5 6008cc44 storet 1 ,mem_24g_current_ch_number 
+01d6 20600000 rtn 
 
 p_g24_prep:
-0215 7844fc00 disable enable_crc 
-0216 7843fc00 disable enable_white 
-0217 58555555 setarg 0x555555 
-0218 98001e00 iforce crc24_init 
-0219 6800cc3d fetch 1 ,mem_24g_ch 
-021a 1fed8400 reverse pdata ,temp 
-021b 79200401 set1 1 ,temp 
-021c 18431c00 rshift temp ,white_init 
-021d 20600000 rtn 
+01d7 7844fc00 disable enable_crc 
+01d8 7843fc00 disable enable_white 
+01d9 58555555 setarg 0x555555 
+01da 98001e00 iforce crc24_init 
+01db 6800cc43 fetch 1 ,mem_24g_ch 
+01dc 202053da branch le_prep2 
 
 p_g24_receive_rxon:
-021e 20400215 call p_g24_prep 
-021f 7857fc00 disable user3 
-0220 7826fc00 enable decode_fec0 
-0221 7830fc00 enable is_rx 
-0222 78507c00 disable is_tx 
-0223 78287c00 enable swfine 
-0224 68014c36 fetch 2 ,mem_24g_rx_window 
-0225 98003600 iforce stop_watch 
-0226 37c18400 correlate null ,timeout 
-0227 242c0257 nbranch p_g24_sync_timeout ,sync 
-0228 7846fc00 disable decode_fec0 
-0229 7825fc00 enable decode_fec1 
-022a 7823fc00 enable enable_white 
-022b 7824fc00 enable enable_crc 
-022c 20400254 call p_g24_receive_byte 
-022d 6000cce7 store 1 ,mem_24g_get_syncword_crc8 
-022e 6808cce6 fetcht 1 ,mem_24g_syncword_crc8 
-022f 98467c00 isub temp ,null 
-0230 24228257 nbranch p_g24_end_of_packet ,zero 
-0231 20400254 call p_g24_receive_byte 
-0232 6000cbad store 1 ,mem_24g_rxbuf 
-0233 6800cbad fetch 1 ,mem_24g_rxbuf 
-0234 6808cc34 fetcht 1 ,mem_24g_data_type 
-0235 a8400e00 icompare bits_data ,temp 
-0236 24208257 nbranch p_g24_end_of_packet ,true 
+01dd 204001d7 call p_g24_prep 
+01de 7857fc00 disable user3 
+01df 7826fc00 enable decode_fec0 
+01e0 7830fc00 enable is_rx 
+01e1 78507c00 disable is_tx 
+01e2 78287c00 enable swfine 
+01e3 68014c3c fetch 2 ,mem_24g_rx_window 
+01e4 98003600 iforce stop_watch 
+01e5 37c18400 correlate null ,timeout 
+01e6 242c021e nbranch p_g24_end_of_packet ,sync 
+01e7 7846fc00 disable decode_fec0 
+01e8 7825fc00 enable decode_fec1 
+01e9 7823fc00 enable enable_white 
+01ea 7824fc00 enable enable_crc 
+01eb 2040021b call p_g24_receive_byte 
+01ec 6000cced store 1 ,mem_24g_get_syncword_crc8 
+01ed 6808ccec fetcht 1 ,mem_24g_syncword_crc8 
+01ee 98467c00 isub temp ,null 
+01ef 2422821e nbranch p_g24_end_of_packet ,zero 
+01f0 2040021b call p_g24_receive_byte 
+01f1 6000cbb3 store 1 ,mem_24g_rxbuf 
+01f2 6800cbb3 fetch 1 ,mem_24g_rxbuf 
+01f3 6808cc3a fetcht 1 ,mem_24g_data_type 
+01f4 a8400e00 icompare bits_data ,temp 
+01f5 2420821e nbranch p_g24_end_of_packet ,true 
 
 p_g24_receive_skip:
-0237 20400254 call p_g24_receive_byte 
-0238 e0a08000 istore 1 ,contw 
-0239 1fe97e00 rshift3 pdata ,pdata 
-023a 1fe1721f and pdata ,0x1f ,loopcnt 
-023b 2022823f branch p_g24rx_nopayload ,zero 
+01f6 2040021b call p_g24_receive_byte 
+01f7 e0a08000 istore 1 ,contw 
+01f8 1fe97e00 rshift3 pdata ,pdata 
+01f9 1fe1721f and pdata ,0x1f ,loopcnt 
+01fa 202281fe branch p_g24rx_nopayload ,zero 
 
 p_g24rx_loop:
-023c 20400254 call p_g24_receive_byte 
-023d e0a08000 istore 1 ,contw 
-023e c200023c loop p_g24rx_loop 
+01fb 2040021b call p_g24_receive_byte 
+01fc e0a08000 istore 1 ,contw 
+01fd c20001fb loop p_g24rx_loop 
 
 p_g24rx_nopayload:
-023f 18a22200 copy contw ,rega 
-0240 20400254 call p_g24_receive_byte 
-0241 6000cd6e store 1 ,mem_rssi_hex_received 
-0242 1a220a00 copy rega ,contw 
-0243 09800018 parse demod ,bucket ,24 
-0244 78287c00 enable swfine 
-0245 db600664 arg param_sifs ,stop_watch 
-0246 1fef7e00 rshift32 pdata ,pdata 
-0247 1ff17e00 rshift16 pdata ,pdata 
-0248 e0a18000 istore 3 ,contw 
-0249 7845fc00 disable decode_fec1 
-024a 20230257 branch p_g24_end_of_packet ,crc_failed 
-024b 7837fc00 enable user3 
-024c 68008017 fetch 1 ,mem_last_freq 
-024d 1fe0a200 add pdata ,0 ,rega 
-024e 20402981 call rf_write_freq 
-024f 7846fc00 disable decode_fec0 
-0250 20402918 call set_sync_on 
-0251 6800cd6e fetch 1 ,mem_rssi_hex_received 
-0252 2040005e call p_rssi_signal 
-0253 20600000 rtn 
+01fe 18a22200 copy contw ,rega 
+01ff 2040021b call p_g24_receive_byte 
+0200 6000cd74 store 1 ,mem_rssi_hex_received 
+0201 1a220a00 copy rega ,contw 
+0202 09800018 parse demod ,bucket ,24 
+0203 78287c00 enable swfine 
+0204 db600664 arg param_sifs ,stop_watch 
+0205 1fef7e00 rshift32 pdata ,pdata 
+0206 1ff17e00 rshift16 pdata ,pdata 
+0207 e0a18000 istore 3 ,contw 
+0208 7845fc00 disable decode_fec1 
+0209 2023021e branch p_g24_end_of_packet ,crc_failed 
+020a 7837fc00 enable user3 
+020b 68008017 fetch 1 ,mem_last_freq 
+020c 1fe0a200 add pdata ,0 ,rega 
+020d 20402981 call rf_write_freq 
+020e 7846fc00 disable decode_fec0 
+020f 20402918 call set_sync_on 
+0210 6800cd74 fetch 1 ,mem_rssi_hex_received 
 
-p_g24_receive_byte:
-0254 09800008 parse demod ,bucket ,8 
-0255 19897e00 rshift3 pwindow ,pdata 
-0256 20600000 rtn 
+p_rssi_signal:
+0211 1fe22200 copy pdata ,rega 
+0212 6808ccf4 fetcht 1 ,mem_rssi_signal_index 
+0213 58004cfb setarg mem_rssi_signal_buf 
+0214 98408a00 iadd temp ,contw 
+0215 1a227e00 copy rega ,pdata 
+0216 e0a08000 istore 1 ,contw 
+0217 18408401 increase 1 ,temp 
+0218 18410407 and_into rssi_buf_len_signal ,temp 
+0219 6008ccf4 storet 1 ,mem_rssi_signal_index 
+021a 20600000 rtn 
 
-p_g24_sync_timeout:
+p_g24_receive_byte:
+021b 09800008 parse demod ,bucket ,8 
+021c 19897e00 rshift3 pwindow ,pdata 
+021d 20600000 rtn 
 
 p_g24_end_of_packet:
-0257 784dfc00 disable encode_fec1 
-0258 7845fc00 disable decode_fec1 
-0259 2040264d call end_of_packet 
-025a 20600000 rtn 
-
-p_g24_set_freq_tx:
-025b 20402918 call set_sync_on 
-025c 6808cc3d fetcht 1 ,mem_24g_ch 
-025d 20202933 branch set_freq_tx 
+021e 784dfc00 disable encode_fec1 
+021f 7845fc00 disable decode_fec1 
+0220 2020264d branch end_of_packet 
 
 p_g24_transmit:
-025e 204053c4 call le_enable 
-025f 68024c5b fetch 4 ,mem_24g_addr 
-0260 98001200 iforce access 
-0261 20400215 call p_g24_prep 
-0262 2040025b call p_g24_set_freq_tx 
-0263 79202a00 set1 txgfsk ,radio_ctrl 
-0264 782efc00 enable encode_fec0 
-0265 78307c00 enable is_tx 
-0266 7850fc00 disable is_rx 
-0267 19317e00 rshift16 access ,pdata 
-0268 1fecfe00 rshift8 pdata ,pdata 
-0269 1ff1fe00 rshift4 pdata ,pdata 
-026a 08008628 inject mod ,40 
-026b 784efc00 disable encode_fec0 
-026c 782dfc00 enable encode_fec1 
-026d 7823fc00 enable enable_white 
-026e 7824fc00 enable enable_crc 
-026f 6800cce6 fetch 1 ,mem_24g_syncword_crc8 
-0270 08008608 inject mod ,8 
-0271 6800cc35 fetch 1 ,mem_24g_txlen 
-0272 98007200 iforce loopcnt 
-0273 d8c04bef arg mem_24g_txpayload ,contr 
+0221 204053c4 call le_enable 
+0222 68024c61 fetch 4 ,mem_24g_addr 
+0223 98001200 iforce access 
+0224 204001d7 call p_g24_prep 
+0225 20402918 call set_sync_on 
+0226 6808cc43 fetcht 1 ,mem_24g_ch 
+0227 20402933 call set_freq_tx 
+0228 79202a00 set1 txgfsk ,radio_ctrl 
+0229 782efc00 enable encode_fec0 
+022a 78307c00 enable is_tx 
+022b 7850fc00 disable is_rx 
+022c 19317e00 rshift16 access ,pdata 
+022d 1fecfe00 rshift8 pdata ,pdata 
+022e 1ff1fe00 rshift4 pdata ,pdata 
+022f 08008628 inject mod ,40 
+0230 784efc00 disable encode_fec0 
+0231 782dfc00 enable encode_fec1 
+0232 7823fc00 enable enable_white 
+0233 7824fc00 enable enable_crc 
+0234 6800ccec fetch 1 ,mem_24g_syncword_crc8 
+0235 08008608 inject mod ,8 
+0236 6800cc3b fetch 1 ,mem_24g_txlen 
+0237 98007200 iforce loopcnt 
+0238 d8c04bf5 arg mem_24g_txpayload ,contr 
 
 p_g24tr_loop:
-0274 e8c08000 ifetch 1 ,contr 
-0275 08008608 inject mod ,8 
-0276 c2000274 loop p_g24tr_loop 
-0277 78247c00 enable enable_parity 
-0278 08008618 inject mod ,24 
-0279 78447c00 disable enable_parity 
-027a 37d38200 until null ,tx_clear 
-027b 20000064 nop 100 
-027c 784efc00 disable encode_fec0 
-027d 784dfc00 disable encode_fec1 
-027e 20600000 rtn 
+0239 e8c08000 ifetch 1 ,contr 
+023a 08008608 inject mod ,8 
+023b c2000239 loop p_g24tr_loop 
+023c 78247c00 enable enable_parity 
+023d 08008618 inject mod ,24 
+023e 78447c00 disable enable_parity 
+023f 37d38200 until null ,tx_clear 
+0240 20000064 nop 100 
+0241 784efc00 disable encode_fec0 
+0242 784dfc00 disable encode_fec1 
+0243 20600000 rtn 
 
 p_g24_timer_check:
-027f 20407fe9 call disable_user 
-0280 680a4c54 fetcht 4 ,mem_24g_tx_btclk 
-0281 1c427e00 copy clkn_bt ,pdata 
-0282 98467c00 isub temp ,null 
-0283 24412d18 ncall g24_timer_timeout ,positive 
-0284 1fe22400 copy pdata ,regb 
-0285 68024c54 fetch 4 ,mem_24g_tx_btclk 
-0286 6808cc58 fetcht 1 ,mem_24g_interval 
-0287 98408400 iadd temp ,temp 
-0288 1a427e00 copy regb ,pdata 
-0289 98467c00 isub temp ,null 
-028a 24610000 nrtn positive 
-028b 793ffe1c set0 28 ,pdata 
-028c 60024c54 store 4 ,mem_24g_tx_btclk 
-028d 20207fe7 branch enable_user 
+0244 20407fe9 call disable_user 
+0245 680a4c5a fetcht 4 ,mem_24g_tx_btclk 
+0246 1c427e00 copy clkn_bt ,pdata 
+0247 98467c00 isub temp ,null 
+0248 24412d18 ncall g24_timer_timeout ,positive 
+0249 1fe22400 copy pdata ,regb 
+024a 68024c5a fetch 4 ,mem_24g_tx_btclk 
+024b 6808cc5e fetcht 1 ,mem_24g_interval 
+024c 98408400 iadd temp ,temp 
+024d 1a427e00 copy regb ,pdata 
+024e 98467c00 isub temp ,null 
+024f 24610000 nrtn positive 
+0250 793ffe1c set0 28 ,pdata 
+0251 60024c5a store 4 ,mem_24g_tx_btclk 
+0252 20207fe7 branch enable_user 
 
 p_rssi_average:
-028e d8400000 arg 0 ,temp 
-028f df200008 arg rssi_buf_len_signal + 1 ,loopcnt 
-0290 1a220c00 copy rega ,contr 
+0253 d8400000 arg 0 ,temp 
+0254 df200008 arg rssi_buf_len_signal + 1 ,loopcnt 
+0255 1a220c00 copy rega ,contr 
 
 p_rssi_average_loop:
-0291 e8c08000 ifetch 1 ,contr 
-0292 98408400 iadd temp ,temp 
-0293 c2000291 loop p_rssi_average_loop 
-0294 18497e00 rshift3 temp ,pdata 
-0295 1fe20400 copy pdata ,temp 
-0296 c6930000 rtnmark0 mark_24g 
-0297 1fe6fc0a div pdata ,10 
-0298 20407f86 call wait_div_end 
-0299 1807fe00 quotient pdata 
-029a 1ff27e00 lshift4 pdata ,pdata 
-029b 18070400 remainder temp 
-029c 98418400 ior temp ,temp 
-029d 20600000 rtn 
-029e 20600000 rtn 
+0256 e8c08000 ifetch 1 ,contr 
+0257 98408400 iadd temp ,temp 
+0258 c2000256 loop p_rssi_average_loop 
+0259 18497e00 rshift3 temp ,pdata 
+025a 1fe20400 copy pdata ,temp 
+025b c6930000 rtnmark0 mark_24g 
+025c 1fe6fc0a div pdata ,10 
+025d 20407f86 call wait_div_end 
+025e 1807fe00 quotient pdata 
+025f 1ff27e00 lshift4 pdata ,pdata 
+0260 18070400 remainder temp 
+0261 98418400 ior temp ,temp 
+0262 20600000 rtn 
 
 p_mouse_before_lpm:
-029f c6130000 rtnmark1 mark_24g 
-02a0 2040035c call p_mouse_le_txbuff_save 
-02a1 204000df call p_mouse_setgpio_lpm 
-02a2 6800c040 fetch 1 ,mem_context 
-02a3 c30002a6 bbit0 state_inconn ,p_clear_wake 
-02a4 680080a0 fetch 1 ,mem_lpm_current_mult 
-02a5 247a0000 nrtn blank 
+0263 c6130000 rtnmark1 mark_24g 
+0264 20400366 call p_mouse_le_txbuff_save 
+0265 2040026d call p_mouse_setgpio_lpm 
+0266 6800c040 fetch 1 ,mem_context 
+0267 c300026a bbit0 state_inconn ,p_clear_wake 
+0268 680080a0 fetch 1 ,mem_lpm_current_mult 
+0269 247a0000 nrtn blank 
 
 p_clear_wake:
-02a6 58000000 setarg 0 
-02a7 600400a1 store 8 ,mem_gpio_wakeup_low 
-02a8 20600000 rtn 
+026a 58000000 setarg 0 
+026b 600400a1 store 8 ,mem_gpio_wakeup_low 
+026c 20600000 rtn 
+
+p_mouse_setgpio_lpm:
+026d 2040027e call p_mouse_set_sdio_high 
+026e 2040026a call p_clear_wake 
+
+p_mouse_setgpio_hibernate:
+026f 20403ebf call mouse_lpm_before_common 
+0270 204002f5 call p_flash_ncs_disable 
+0271 68120070 hfetch 4 ,core_gpio_oe0 
+0272 681a0078 hfetcht 4 ,core_gpio_pu0 
+0273 98418400 ior temp ,temp 
+0274 18440400 invert temp ,temp 
+0275 601a007c hstoret 4 ,core_gpio_pd0 
+0276 6810807d hfetch 1 ,core_gpio_pd1 
+0277 793ffe02 set0 2 ,pdata 
+0278 6010807d hstore 1 ,core_gpio_pd1 
+0279 6810807e hfetch 1 ,core_gpio_pd2 
+027a 793ffe06 set0 6 ,pdata 
+027b 6010807e hstore 1 ,core_gpio_pd2 
+
+p_set_ice_gpio_float:
+027c d840001d arg 0x1d ,temp 
+027d 20206806 branch gpio_set_high_impedance 
 
 p_mouse_set_sdio_high:
-02a9 6800cb00 fetch 1 ,mem_mouse_init_sensor_reset_flag 
-02aa 207a0000 rtn blank 
-02ab 202004fa branch p_mouse_seting_sensor_type 
+027e 6800cb00 fetch 1 ,mem_mouse_init_sensor_reset_flag 
+027f 207a0000 rtn blank 
+0280 202004b0 branch p_mouse_seting_sensor_type 
 
 p_device_init:
-02ac 70895b86 jam 0x86 ,0x895b 
-02ad 70895ca0 jam 0xa0 ,0x895c 
-02ae 2040296c call initialize_radio 
-02af 20403416 call app_lpm_mult_enable 
-02b0 204074b9 call enable_authrom 
-02b1 203582bd branch p_device_wake_from_lpm ,wake 
+0281 70895b86 jam 0x86 ,0x895b 
+0282 70895ca0 jam 0xa0 ,0x895c 
+0283 2040296c call initialize_radio 
+0284 20403416 call app_lpm_mult_enable 
+0285 204074b9 call enable_authrom 
+0286 203582a9 branch p_mouse_spi_init ,wake 
 
 p_device_wake_from_power:
-02b2 20400001 call p_wake_from_power 
+0287 6801c4a3 fetch 3 ,mem_le_lap + 3 
+0288 6001cb6a store 3 ,mem_le_lap_high_3b 
+0289 20400001 call p_wake_from_power 
 
 p_mouse_check_reconn_target:
-02b3 204002be call p_mouse_tx_power_init 
-02b4 6800c210 fetch 1 ,mem_xrecord_mode 
-02b5 c01a02c1 beq rec_4_mode ,p_mouse4_0_check_reconn_target 
-02b6 204004a4 call p_mouse_fast_conn_adv_switch_timer_reinit 
-02b7 70016d06 jam 6 ,mem_connection_options 
-02b8 20400432 call p_mouse_check_fast_conn_adv_start 
-02b9 6800c092 fetch 1 ,mem_device_option 
-02ba 2feffe00 isolate1 mode_3_mouse ,pdata 
-02bb 2040fddd call check_51cmd_start_discovery ,true 
-02bc 202004c6 branch p_mouse_discovery_multi_led_blink 
-
-p_device_wake_from_lpm:
-02bd 20200312 branch p_mouse_spi_init 
+028a 20400292 call p_mouse_tx_power_init 
+028b 2040049b call p_mouse_mode_bt_device1_multi_led_on 
+028c 6800c210 fetch 1 ,mem_xrecord_mode 
+028d c01a0295 beq rec_4_mode ,p_mouse4_0_check_reconn_target 
+028e 20200466 branch p_mouse_null_enter_hibernate_enable 
+
+p_mouse_check_key_gpio_once:
+028f 58030303 setarg 0x030303 
+0290 6001cbab store 3 ,mem_mouse_lkey_press_status 
+0291 202004ec branch p_mouse_check_key_gpio 
 
 p_mouse_tx_power_init:
-02be 6800ccea fetch 1 ,mem_tx_power_temp 
-02bf 6000c1de store 1 ,mem_tx_power 
-02c0 20600000 rtn 
+0292 6800ccf0 fetch 1 ,mem_tx_power_temp 
+0293 6000c1de store 1 ,mem_tx_power 
+0294 20600000 rtn 
 
 p_mouse4_0_check_reconn_target:
-02c1 7011c612 jam zcode_12 ,mem_zcode_temp_param0 
-02c2 202006b6 branch p_zcode_entrance 
+0295 7011c722 jam zcode_22 ,mem_zcode_temp_param0 
+0296 202006d0 branch p_zcode_entrance 
+
+p_le_check_adv_flag:
+0297 da204370 arg mem_le_adv_data ,rega 
+
+p_le_check_adv_flag_loop:
+0298 ea208000 ifetch 1 ,rega 
+0299 207a0000 rtn blank 
+029a 98c0a200 iadd contr ,rega 
+029b e8c08000 ifetch 1 ,contr 
+029c c1008000 rtneq 0x01 
+029d 20200298 branch p_le_check_adv_flag_loop 
+
+p_mouse_le_fast_conn_disable:
+029e 704b695a jam 0x5a ,mem_mouse_fast_conn_flag 
+029f 20600000 rtn 
+
+p_mouse_fast_conn_init:
+02a0 704b69ff jam 0xff ,mem_mouse_fast_conn_flag 
+02a1 70421034 jam 0x34 ,mem_xrecord_mode 
+02a2 580f0f0f setarg 0x0f0f0f 
+02a3 6001c4a0 store 3 ,mem_le_lap 
+02a4 6001c4a3 store 3 ,mem_le_lap + 3 
+02a5 20600000 rtn 
 
 p_mouse_24g_pairing_button:
-02c3 7011c642 jam zcode_42 ,mem_zcode_temp_param0 
-02c4 202006b6 branch p_zcode_entrance 
+02a6 204002ec call p_mouse_sensor_powerdown 
+02a7 7011c761 jam zcode_61 ,mem_zcode_temp_param0 
+02a8 202006d0 branch p_zcode_entrance 
+
+p_mouse_spi_init:
+02a9 70421276 jam 0x76 ,mem_spi_init_clk 
+02aa 20203d36 branch mouse_spi_init 
 
 p_mouse_init_sunt:
-02c5 20400312 call p_mouse_spi_init 
-02c6 204040c0 call mouse_spi_sdio_gpio_pollup 
+02ab 204002a9 call p_mouse_spi_init 
+02ac 204040c0 call mouse_spi_sdio_gpio_pollup 
 
 p_mouse_init_sensor:
-02c7 204040d9 call mouse_read_sensor_id 
-02c8 c01802cd beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
-02c9 c01882df beq p3065_id1 ,p_mouse_p3065_init_param 
-02ca 204040d1 call mouse_twspi_reset 
-02cb 200003e8 nop 1000 
-02cc 202002c7 branch p_mouse_init_sensor 
+02ad 204040d9 call mouse_read_sensor_id 
+02ae c01802b7 beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
+02af c01882da beq p3065_id1 ,p_mouse_p3065_init_param 
+02b0 204040d1 call mouse_twspi_reset 
+02b1 200003e8 nop 1000 
+02b2 202002ad branch p_mouse_init_sensor 
+
+p_mouse_init_sensor_reset:
+02b3 704b0001 jam 1 ,mem_mouse_init_sensor_reset_flag 
+02b4 2040640f call spi_ncs_enable 
+02b5 204002ab call p_mouse_init_sunt 
+02b6 20206411 branch spi_ncs_disable 
 
 p_mouse_init_p32xx_id2_judge:
-02cd 20400378 call p_mouse_sensor_poweron 
-02ce 6800c6de fetch 1 ,mem_sensor_id2 
-02cf c02d02d1 beq p_mx8650 ,p_mouse_mx8650_init_param 
-02d0 202040e0 branch mouse_init_p32xx_id2_judge 
+02b7 204002e0 call p_mouse_sensor_poweron 
+02b8 6800c6de fetch 1 ,mem_sensor_id2 
+02b9 c02d02bc beq p_mx8650 ,p_mouse_mx8650_init_param 
+02ba c06c02ca beq p8009_id2 ,p_mouse_8009_init_param 
+02bb 202040e1 branch mouse_init_p32xx_id2_judge + 1 
 
 p_mouse_mx8650_init_param:
-02d1 7046e007 jam mx8650 ,mem_config_sensor_type 
-02d2 58008006 setarg 0x8006 
-02d3 20406413 call twspi_write 
-02d4 20407ec1 call delay_10ms 
-02d5 da604b7a arg mem_sensor_8650_init ,regc 
-02d6 204002d8 call p_sensor_wr_seq 
-02d7 2020037f branch p_mouse_dpi_config 
+02bc 7046e007 jam mx8650 ,mem_config_sensor_type 
+02bd 58008006 setarg 0x8006 
+02be 20406413 call twspi_write 
+02bf 20407ec1 call delay_10ms 
+02c0 da604b79 arg mem_sensor_8650_init ,regc 
+02c1 204002c3 call p_sensor_wr_seq 
+02c2 202002e7 branch p_mouse_dpi_config 
 
 p_sensor_wr_seq:
-02d8 ea610000 ifetch 2 ,regc 
-02d9 d840ffff arg 0xffff ,temp 
-02da 98467c00 isub temp ,null 
-02db 20628000 rtn zero 
-02dc 20406413 call twspi_write 
-02dd 1a60a602 increase 2 ,regc 
-02de 202002d8 branch p_sensor_wr_seq 
+02c3 ea610000 ifetch 2 ,regc 
+02c4 d840ffff arg 0xffff ,temp 
+02c5 98467c00 isub temp ,null 
+02c6 20628000 rtn zero 
+02c7 20406413 call twspi_write 
+02c8 1a60a602 increase 2 ,regc 
+02c9 202002c3 branch p_sensor_wr_seq 
+
+p_mouse_8009_init_param:
+02ca 58000016 setarg 0x16 
+02cb 20406414 call twspi_read 
+02cc 1fe67cbd sub pdata ,0xbd ,null 
+02cd 242282ad nbranch p_mouse_init_sensor ,zero 
+02ce 58000019 setarg 0x19 
+02cf 20406414 call twspi_read 
+02d0 1fe67c55 sub pdata ,0x55 ,null 
+02d1 242282ad nbranch p_mouse_init_sensor ,zero 
+02d2 5800001b setarg 0x1b 
+02d3 20406414 call twspi_read 
+02d4 1fe67c1d sub pdata ,0x1d ,null 
+02d5 242282ad nbranch p_mouse_init_sensor ,zero 
+02d6 7046e008 jam p8009 ,mem_config_sensor_type 
+02d7 da604b93 arg mem_sensor_8009_init ,regc 
+02d8 204002c3 call p_sensor_wr_seq 
+02d9 202002e7 branch p_mouse_dpi_config 
 
 p_mouse_p3065_init_param:
-02df 20400378 call p_mouse_sensor_poweron 
-02e0 6800c6de fetch 1 ,mem_sensor_id2 
-02e1 c00002e3 beq p3205_tjnt_id2 ,p_mouse_p3205_nt_init_param 
-02e2 202040ea branch mouse_p3065_init_param 
+02da 204002e0 call p_mouse_sensor_poweron 
+02db 6800c6de fetch 1 ,mem_sensor_id2 
+02dc c00002de beq p3205_tjnt_id2 ,p_mouse_p3205_nt_init_param 
+02dd 202040ea branch mouse_p3065_init_param 
 
 p_mouse_p3205_nt_init_param:
-02e3 7046e008 jam p3205_nt ,mem_config_sensor_type 
-02e4 2020413a branch mouse_3205_3t_init_param + 1 
+02de 7046e009 jam p3205_nt ,mem_config_sensor_type 
+02df 2020413a branch mouse_3205_3t_init_param + 1 
+
+p_mouse_sensor_poweron:
+02e0 204002a9 call p_mouse_spi_init 
+02e1 58008006 setarg 0x8006 
+02e2 20406413 call twspi_write 
+02e3 20002ee0 nop 12000 
+02e4 da604ba3 arg mem_sensor_poweron_init ,regc 
+02e5 204002c3 call p_sensor_wr_seq 
+02e6 202002e7 branch p_mouse_dpi_config 
+
+p_mouse_dpi_config:
+02e7 6800c77a fetch 1 ,mem_mouse_dpi 
+02e8 c0ff84b0 bne 0xff ,p_mouse_seting_dpi 
+
+p_mouse_dpi_config_default:
+02e9 6800c6e1 fetch 1 ,mem_config_sensor_motion 
+02ea 6000c77a store 1 ,mem_mouse_dpi 
+02eb 202004b0 branch p_mouse_seting_dpi 
+
+p_mouse_sensor_powerdown:
+02ec 204002a9 call p_mouse_spi_init 
+02ed 58000006 setarg 0x06 
+02ee 20406414 call twspi_read 
+02ef 1fe1fe08 or pdata ,0x08 ,pdata 
+02f0 1fed7e00 lshift8 pdata ,pdata 
+02f1 1fe0fe06 add pdata ,0x06 ,pdata 
+02f2 20206413 branch twspi_write 
 
 p_mouse_setting_config:
-02e5 7011c680 jam zcode_80 ,mem_zcode_temp_param0 
-02e6 202006b6 branch p_zcode_entrance 
+02f3 7011c780 jam zcode_80 ,mem_zcode_temp_param0 
+02f4 202006d0 branch p_zcode_entrance 
 
 p_flash_ncs_disable:
-02e7 6808cb47 fetcht 1 ,mem_flash_ncs_gpio 
-02e8 20206825 branch gpio_out_inactive 
+02f5 6808cb46 fetcht 1 ,mem_flash_ncs_gpio 
+02f6 20206825 branch gpio_out_inactive 
 
 p_spid_init_flash:
-02e9 70808640 jam 0x40 ,core_spid_ctrl 
-02ea 70808700 jam 0x0 ,core_spid_delay 
-02eb 68108081 hfetch 1 ,core_gpio_sel1 
-02ec 793ffe00 set0 0 ,pdata 
-02ed 793ffe01 set0 1 ,pdata 
-02ee 79207e03 set1 3 ,pdata 
-02ef 793ffe04 set0 4 ,pdata 
-02f0 60108081 hstore 1 ,core_gpio_sel1 
-02f1 58000000 setarg 0 
-02f2 600201f5 store 4 ,mem_spid_tbuf 
-02f3 6810807f hfetch 1 ,core_gpio_pd3 
-02f4 793ffe00 set0 0 ,pdata 
-02f5 6010807f hstore 1 ,core_gpio_pd3 
-02f6 20600000 rtn 
+02f7 70808640 jam 0x40 ,core_spid_ctrl 
+02f8 70808700 jam 0x0 ,core_spid_delay 
+02f9 68108081 hfetch 1 ,core_gpio_sel1 
+02fa 793ffe00 set0 0 ,pdata 
+02fb 793ffe01 set0 1 ,pdata 
+02fc 79207e03 set1 3 ,pdata 
+02fd 793ffe04 set0 4 ,pdata 
+02fe 60108081 hstore 1 ,core_gpio_sel1 
+02ff 58000000 setarg 0 
+0300 600201f5 store 4 ,mem_spid_tbuf 
+0301 6810807f hfetch 1 ,core_gpio_pd3 
+0302 793ffe00 set0 0 ,pdata 
+0303 6010807f hstore 1 ,core_gpio_pd3 
+0304 20600000 rtn 
 
 p_mouse_load_flash_info_check:
-02f7 20400342 call p_flash_release_deep_power_down 
-02f8 20404423 call mouse_load_flash_flag 
-02f9 68014778 fetch 2 ,mem_store_flag 
-02fa d840aa55 arg eeprom_init_flag ,temp 
-02fb 98467c00 isub temp ,null 
-02fc 20228334 branch p_mouse_load_flash_device_info ,zero 
-02fd 60094778 storet 2 ,mem_store_flag 
-02fe 2040441c call mouse_ble_init_address 
-02ff 6800c6e1 fetch 1 ,mem_config_sensor_motion 
-0300 6000c77a store 1 ,mem_mouse_dpi 
-0301 68024b4e fetch 4 ,mem_mouse_24g_addr_init 
-0302 6002477b store 4 ,mem_mouse_24g_addr 
-0303 60024c5b store 4 ,mem_24g_addr 
+0305 20400351 call p_flash_release_deep_power_down 
+0306 20404423 call mouse_load_flash_flag 
+0307 68014778 fetch 2 ,mem_store_flag 
+0308 d840aa55 arg eeprom_init_flag ,temp 
+0309 98467c00 isub temp ,null 
+030a 20228343 branch p_mouse_load_flash_device_info ,zero 
+030b 60094778 storet 2 ,mem_store_flag 
+030c 2040441c call mouse_ble_init_address 
+030d 6800c6e1 fetch 1 ,mem_config_sensor_motion 
+030e 6000c77a store 1 ,mem_mouse_dpi 
 
 p_mouse_store_flash_device_info:
-0304 20400342 call p_flash_release_deep_power_down 
-0305 20400314 call p_flash_erase_sector 
-0306 2040032b call p_mouse_information_flash_parameters 
-0307 20400320 call p_spid_write_flash 
-0308 20400317 call p_wait_flash_done 
-
-p_mouse_store_flash_user_data:
-0309 204002e9 call p_spid_init_flash 
-030a d8400007 arg 7 ,temp 
-030b da204b72 arg mem_mouse_flash_start_temp ,rega 
-030c da40005f arg mouse_user_data_offect ,regb 
-030d 6801c700 fetch 3 ,mem_flash_base 
-030e 9a40fe00 iadd regb ,pdata 
-030f 20400320 call p_spid_write_flash 
-0310 20400317 call p_wait_flash_done 
-0311 2040033a call p_flash_deep_power_down 
-
-p_mouse_spi_init:
-0312 70421276 jam 0x76 ,mem_spi_init_clk 
-0313 20203d36 branch mouse_spi_init 
+030f 20400351 call p_flash_release_deep_power_down 
+0310 20400322 call p_flash_erase_sector 
+0311 2040033a call p_mouse_information_flash_parameters 
+0312 20400326 call p_spid_write_flash 
+0313 20400331 call p_wait_flash_done 
+
+p_mouse_store_random_addr_increase_count:
+0314 204002f7 call p_spid_init_flash 
+0315 d8400002 arg 2 ,temp 
+0316 da2047c4 arg mem_random_addr_increase_count ,rega 
+0317 da40005f arg mouse_random_addr_count_eeprom_offset ,regb 
+0318 6801c700 fetch 3 ,mem_flash_base 
+0319 9a40fe00 iadd regb ,pdata 
+031a 20400326 call p_spid_write_flash 
+031b 20400331 call p_wait_flash_done 
+031c 20400349 call p_flash_deep_power_down 
+031d 202002a9 branch p_mouse_spi_init 
+
+p_mouse_set_24g_addr_flash:
+031e d8400004 arg 4 ,temp 
+031f da204c61 arg mem_24g_addr ,rega 
+0320 da40005b arg mouse_g24_addr_eeprom_offect ,regb 
+0321 20600000 rtn 
 
 p_flash_erase_sector:
-0314 6801c700 fetch 3 ,mem_flash_base 
-0315 6001c232 store 3 ,mem_spi_write_addr 
-0316 2040652a call flash_erase_sector + 2 
-
-p_wait_flash_done:
-0317 580186a0 setarg 100000 
-0318 20402a8f call sleep 
-0319 2040650b call spid_unlock_flash 
-031a 580001fa setarg mem_spid_rbuf 
-031b 6011008c hstore 2 ,core_spid_rxaddr 
-031c 58000005 setarg flash_read_satus 
-031d 204064f3 call spid_read_reg 
-031e c2800317 bbit1 flash_status_wip ,p_wait_flash_done 
-031f 20600000 rtn 
+0322 6801c700 fetch 3 ,mem_flash_base 
+0323 6001c232 store 3 ,mem_spi_write_addr 
+0324 2040652a call flash_erase_sector + 2 
+0325 20200331 branch p_wait_flash_done 
 
 p_spid_write_flash:
-0320 1fe22600 copy pdata ,regc 
-0321 1a227e00 copy rega ,pdata 
-0322 1fe0fffc increase -4 ,pdata 
-0323 1fe22400 copy pdata ,regb 
-0324 ea420000 ifetch 4 ,regb 
-0325 60024b49 store 4 ,mem_write_flash_head_temp 
-0326 1a627e00 copy regc ,pdata 
-0327 20406552 call spid_write_flash 
-0328 68024b49 fetch 4 ,mem_write_flash_head_temp 
-0329 e2420000 istore 4 ,regb 
-032a 20600000 rtn 
+0326 1fe22600 copy pdata ,regc 
+0327 1a227e00 copy rega ,pdata 
+0328 1fe0fffc increase -4 ,pdata 
+0329 1fe22400 copy pdata ,regb 
+032a ea420000 ifetch 4 ,regb 
+032b 60024b48 store 4 ,mem_write_flash_head_temp 
+032c 1a627e00 copy regc ,pdata 
+032d 20406552 call spid_write_flash 
+032e 68024b48 fetch 4 ,mem_write_flash_head_temp 
+032f e2420000 istore 4 ,regb 
+0330 20600000 rtn 
+
+p_wait_flash_done:
+0331 580186a0 setarg 100000 
+0332 20402a8f call sleep 
+0333 2040650b call spid_unlock_flash 
+0334 580001fa setarg mem_spid_rbuf 
+0335 6011008c hstore 2 ,core_spid_rxaddr 
+0336 58000005 setarg flash_read_satus 
+0337 204064f3 call spid_read_reg 
+0338 c2800331 bbit1 flash_status_wip ,p_wait_flash_done 
+0339 20600000 rtn 
 
 p_mouse_information_flash_parameters:
-032b 5800477f setarg mem_mouse_information_end 
-032c d8404720 arg mem_mouse_information_start ,temp 
-032d 98460400 isub temp ,temp 
-032e 6801c700 fetch 3 ,mem_flash_base 
-032f da204720 arg mem_mouse_information_start ,rega 
-0330 20600000 rtn 
+033a 5800477f setarg mem_mouse_information_end 
+033b d8404720 arg mem_mouse_information_start ,temp 
+033c 98460400 isub temp ,temp 
+033d 6801c700 fetch 3 ,mem_flash_base 
+033e da204720 arg mem_mouse_information_start ,rega 
+033f 20600000 rtn 
 
 p_mouse_read_flash:
-0331 20400342 call p_flash_release_deep_power_down 
-0332 2040032b call p_mouse_information_flash_parameters 
-0333 20206562 branch spid_read_flash 
+0340 20400351 call p_flash_release_deep_power_down 
+0341 2040033a call p_mouse_information_flash_parameters 
+0342 20206562 branch spid_read_flash 
 
 p_mouse_load_flash_device_info:
-0334 20400331 call p_mouse_read_flash 
-0335 2040034c call p_mouse_load_flash_user_data 
-0336 2040431a call mouse_select_reconn_device 
-0337 6802477b fetch 4 ,mem_mouse_24g_addr 
-0338 60024c5b store 4 ,mem_24g_addr 
-0339 20600000 rtn 
+0343 20400340 call p_mouse_read_flash 
+0344 2040053e call p_mouse_load_random_addr_increase_count 
+0345 2040431a call mouse_select_reconn_device 
+0346 6802477b fetch 4 ,mem_mouse_24g_addr 
+0347 60024c61 store 4 ,mem_24g_addr 
+0348 20600000 rtn 
 
 p_flash_deep_power_down:
-033a 700aa2b9 jam flash_command_deep_power_down ,mem_temp 
+0349 700aa2b9 jam flash_command_deep_power_down ,mem_temp 
 
 p_spid_write_flash_cmd:
-033b 204002e9 call p_spid_init_flash 
-033c 204069ac call delay_nop100 
-033d 2040650b call spid_unlock_flash 
-033e da204b49 arg mem_write_flash_head_temp ,rega 
-033f 68088aa2 fetcht 1 ,mem_temp 
-0340 20406556 call spid_write_flash_common 
-0341 202069ac branch delay_nop100 
+034a 204002f7 call p_spid_init_flash 
+034b 204069ac call delay_nop100 
+034c 2040650b call spid_unlock_flash 
+034d da204b48 arg mem_write_flash_head_temp ,rega 
+034e 68088aa2 fetcht 1 ,mem_temp 
+034f 20406556 call spid_write_flash_common 
+0350 202069ac branch delay_nop100 
 
 p_flash_release_deep_power_down:
-0342 700aa2ab jam flash_command_release_deep_power_down ,mem_temp 
-0343 2020033b branch p_spid_write_flash_cmd 
-
-p_mouse_fast_conn_disable:
-0344 704b775a jam 0x5a ,mem_mouse_fast_conn_flag 
-0345 20600000 rtn 
-
-p_mouse_fast_conn_le_switch_adv:
-0346 704b6b01 jam 1 ,mem_le_switch_adv_timer 
-0347 704b6a01 jam 1 ,mem_le_switch_adv_flag 
-
-p_mouse_fast_conn_init:
-0348 704b77ff jam 0xff ,mem_mouse_fast_conn_flag 
-0349 68034d78 fetch 6 ,mem_24g_allpowerful_addr 
-034a 600344a0 store 6 ,mem_le_lap 
-034b 20600000 rtn 
-
-p_mouse_load_flash_user_data:
-034c 20400342 call p_flash_release_deep_power_down 
-034d d8400007 arg 7 ,temp 
-034e da204b72 arg mem_mouse_flash_start_temp ,rega 
-034f da40005f arg mouse_user_data_offect ,regb 
-0350 6801c700 fetch 3 ,mem_flash_base 
-0351 9a40fe00 iadd regb ,pdata 
-0352 20206562 branch spid_read_flash 
-
-p_mouse_connect_24g_mode:
-0353 204004f2 call p_mouse_mode_24g_device_multi_led_on 
+0351 700aa2ab jam flash_command_release_deep_power_down ,mem_temp 
+0352 2020034a branch p_spid_write_flash_cmd 
 
 p_mouse_start_24g_mode:
-0354 202001e8 branch p_g24_start_24g_mode 
+0353 20400356 call p_g24_factory_check 
+0354 20340192 branch p_g24_auto_pair_start ,user 
+0355 20200190 branch p_g24_start_24g_mode 
+
+p_g24_factory_check:
+0356 df200002 arg 2 ,loopcnt 
+0357 d8c04c61 arg mem_24g_addr ,contr 
+
+p_pdata_0xff_check:
+0358 20407fe7 call enable_user 
+0359 5800ffff setarg 0xffff 
+
+p_pdata_0xff_check_loop:
+035a e8c90000 ifetcht 2 ,contr 
+035b 98467c00 isub temp ,null 
+035c 2442ffe9 ncall disable_user ,zero 
+035d c200035a loop p_pdata_0xff_check_loop 
+035e 20600000 rtn 
 
 p_mouse_g24_package_data:
-0355 20404401 call mouse_g24_package_data 
-0356 6801469f fetch 2 ,mem_mouse_z 
-0357 207a0000 rtn blank 
+035f 20404401 call mouse_g24_package_data 
+0360 6801469f fetch 2 ,mem_mouse_z 
+0361 207a0000 rtn blank 
 
 p_g24_transmit_by_interrupt_enable:
-0358 704d7301 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
-0359 58000000 setarg 0 
-035a 60014d74 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-035b 20600000 rtn 
+0362 704d7901 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
+0363 58000000 setarg 0 
+0364 60014d7a store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0365 20600000 rtn 
 
 p_mouse_le_txbuff_save:
-035c d8c01800 arg mem_le_tx_buffer0 ,contr 
-035d d8a0480a arg mem_le_tx_buffer0_omemalloc ,contw 
-035e 20400364 call p_mouse_le_txbuff_copy 
-035f d8c01900 arg mem_le_tx_buffer1 ,contr 
-0360 20400364 call p_mouse_le_txbuff_copy 
-0361 d8c01a00 arg mem_le_tx_buffer2 ,contr 
-0362 20400364 call p_mouse_le_txbuff_copy 
-0363 d8c01b00 arg mem_le_tx_buffer3 ,contr 
+0366 d8c01800 arg mem_le_tx_buffer0 ,contr 
+0367 d8a0480c arg mem_le_tx_buffer0_omemalloc ,contw 
+0368 2040036e call p_mouse_le_txbuff_copy 
+0369 d8c01900 arg mem_le_tx_buffer1 ,contr 
+036a 2040036e call p_mouse_le_txbuff_copy 
+036b d8c01a00 arg mem_le_tx_buffer2 ,contr 
+036c 2040036e call p_mouse_le_txbuff_copy 
+036d d8c01b00 arg mem_le_tx_buffer3 ,contr 
 
 p_mouse_le_txbuff_copy:
-0364 df20001b arg 27 ,loopcnt 
-0365 20207f01 branch memcpy 
+036e df20001b arg 27 ,loopcnt 
+036f 20207f01 branch memcpy 
 
 p_mouse_le_txbuff_load:
-0366 d8c0480a arg mem_le_tx_buffer0_omemalloc ,contr 
-0367 d8a01800 arg mem_le_tx_buffer0 ,contw 
-0368 20400364 call p_mouse_le_txbuff_copy 
-0369 d8a01900 arg mem_le_tx_buffer1 ,contw 
-036a 20400364 call p_mouse_le_txbuff_copy 
-036b d8a01a00 arg mem_le_tx_buffer2 ,contw 
-036c 20400364 call p_mouse_le_txbuff_copy 
-036d d8a01b00 arg mem_le_tx_buffer3 ,contw 
-036e 20200364 branch p_mouse_le_txbuff_copy 
-
-p_mouse_le_current_mult_update:
-036f 70417200 jam 0 ,mem_lpm_mult 
-0370 704b451e jam 30 ,mem_mouse_le_current_mult_timer 
-0371 20600000 rtn 
-
-p_mouse_data_xy_release:
-0372 6800cb44 fetch 1 ,mem_mouse_long_mult_flag 
-0373 c1808000 rtnne 1 
-0374 58000000 setarg 0 
-0375 6000cb44 store 1 ,mem_mouse_long_mult_flag 
-0376 6002469b store 4 ,mem_mouse_x 
-0377 202003b5 branch p_mouse_init_sensor_reset 
-
-p_mouse_sensor_poweron:
-0378 20400312 call p_mouse_spi_init 
-0379 58008006 setarg 0x8006 
-037a 20406413 call twspi_write 
-037b 20002ee0 nop 12000 
-037c da604ba0 arg mem_sensor_poweron_init ,regc 
-037d 204002d8 call p_sensor_wr_seq 
-037e 2020037f branch p_mouse_dpi_config 
-
-p_mouse_dpi_config:
-037f 6800c77a fetch 1 ,mem_mouse_dpi 
-0380 c0ff84fa bne 0xff ,p_mouse_seting_dpi 
-
-p_mouse_dpi_config_default:
-0381 6800c6e1 fetch 1 ,mem_config_sensor_motion 
-0382 6000c77a store 1 ,mem_mouse_dpi 
-0383 202004fa branch p_mouse_seting_dpi 
+0370 d8c0480c arg mem_le_tx_buffer0_omemalloc ,contr 
+0371 d8a01800 arg mem_le_tx_buffer0 ,contw 
+0372 2040036e call p_mouse_le_txbuff_copy 
+0373 d8a01900 arg mem_le_tx_buffer1 ,contw 
+0374 2040036e call p_mouse_le_txbuff_copy 
+0375 d8a01a00 arg mem_le_tx_buffer2 ,contw 
+0376 2040036e call p_mouse_le_txbuff_copy 
+0377 d8a01b00 arg mem_le_tx_buffer3 ,contw 
+0378 2020036e branch p_mouse_le_txbuff_copy 
+
+p_mouse_le_send_empty_packet:
+0379 68014500 fetch 2 ,mem_le_tx_ptr0 
+037a 247a0000 nrtn blank 
+037b 20204179 branch mouse_le_send_empty_packet 
 
 p_mouse_le:
-0384 20405892 call le_fifo_check_nearly_full 
-0385 247a0000 nrtn blank 
-0386 6800cb77 fetch 1 ,mem_mouse_fast_conn_flag 
-0387 c07f838b beq 0xff ,p_mouse_le_next 
-0388 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-0389 1fe17e03 and pdata ,0x03 ,pdata 
-038a c1818000 rtnne 0x03 
+037c 20405892 call le_fifo_check_nearly_full 
+037d 247a0000 nrtn blank 
+037e 6800cb69 fetch 1 ,mem_mouse_fast_conn_flag 
+037f c07f8383 beq 0xff ,p_mouse_le_next 
+0380 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+0381 1fe17e03 and pdata ,0x03 ,pdata 
+0382 c1818000 rtnne 0x03 
 
 p_mouse_le_next:
-038b 6800c79e fetch 1 ,mem_mouse_clear_sensor_data_flag 
-038c 205a03b3 call p_mouse_clear_sensor_data ,blank 
-038d 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-038e c282c179 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
-038f 20403f97 call mouse_motion 
-0390 24740000 nrtn user 
-0391 2040036f call p_mouse_le_current_mult_update 
-0392 20400372 call p_mouse_data_xy_release 
-0393 204003ae call p_mouse_wheel_trigger 
+0383 6800c79e fetch 1 ,mem_mouse_clear_sensor_data_flag 
+0384 205a03b4 call p_mouse_clear_sensor_data ,blank 
+0385 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+0386 c2828379 bbit1 mouse_bt_discovery_button_down_flag ,p_mouse_le_send_empty_packet 
+0387 20403f97 call mouse_motion 
+0388 24740000 nrtn user 
+0389 20400390 call p_mouse_le_current_mult_update 
+038a 20400393 call p_mouse_data_xy_release 
+038b 204003af call p_mouse_wheel_trigger 
 
 p_mouse_data_push:
-0394 da20469a arg mem_mouse_key ,rega 
-0395 20407e3d call queue_push 
-0396 2054039d call p_mouse_queue_increase ,user 
-0397 20600000 rtn 
+038c da20469a arg mem_mouse_key ,rega 
+038d 20407e3d call queue_push 
+038e 2054039e call p_mouse_queue_increase ,user 
+038f 20600000 rtn 
+
+p_mouse_le_current_mult_update:
+0390 70417200 jam 0 ,mem_lpm_mult 
+0391 704b601e jam 30 ,mem_mouse_le_current_mult_timer 
+0392 20600000 rtn 
+
+p_mouse_data_xy_release:
+0393 6800cb5f fetch 1 ,mem_mouse_long_mult_flag 
+0394 c1808000 rtnne 1 
+0395 58000000 setarg 0 
+0396 6000cb5f store 1 ,mem_mouse_long_mult_flag 
+0397 6002469b store 4 ,mem_mouse_x 
+0398 202002b3 branch p_mouse_init_sensor_reset 
 
 p_mouse_data_init:
-0398 7047a207 jam 7 ,mem_mouse_data_queue 
-0399 7047a304 jam 4 ,mem_mouse_data_queue + 1 
-039a 580047a2 setarg mem_mouse_data_queue 
-039b 60014218 store 2 ,mem_queue_ptr 
-039c 20207e38 branch queue_init 
+0399 7047a207 jam 7 ,mem_mouse_data_queue 
+039a 7047a304 jam 4 ,mem_mouse_data_queue + 1 
+039b 580047a2 setarg mem_mouse_data_queue 
+039c 60014218 store 2 ,mem_queue_ptr 
+039d 20207e38 branch queue_init 
 
 p_mouse_queue_increase:
-039d 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
-039e 1fe0fe01 increase 1 ,pdata 
-039f 6000c7c3 store 1 ,mem_mouse_data_queue_num 
-03a0 20600000 rtn 
+039e 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
+039f 1fe0fe01 increase 1 ,pdata 
+03a0 6000c7c3 store 1 ,mem_mouse_data_queue_num 
+03a1 20600000 rtn 
 
 p_mouse_data_pull:
-03a1 da20469a arg mem_mouse_key ,rega 
-03a2 20407e54 call queue_pop 
-03a3 203403a5 branch p_mouse_fill_data_le ,user 
-03a4 20600000 rtn 
+03a2 da20469a arg mem_mouse_key ,rega 
+03a3 20407e54 call queue_pop 
+03a4 203403a6 branch p_mouse_fill_data_le ,user 
+03a5 20600000 rtn 
 
 p_mouse_fill_data_le:
-03a5 20405652 call le_clear_md 
-03a6 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
-03a7 1fe67c01 sub pdata ,1 ,null 
-03a8 24415650 ncall le_set_md ,positive 
-03a9 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
-03aa 207a0000 rtn blank 
-03ab 1fe0ffff increase -1 ,pdata 
-03ac 6000c7c3 store 1 ,mem_mouse_data_queue_num 
-03ad 20203f90 branch mouse_fill_data_le 
+03a6 20405652 call le_clear_md 
+03a7 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
+03a8 1fe67c01 sub pdata ,1 ,null 
+03a9 24415650 ncall le_set_md ,positive 
+03aa 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
+03ab 207a0000 rtn blank 
+03ac 1fe0ffff increase -1 ,pdata 
+03ad 6000c7c3 store 1 ,mem_mouse_data_queue_num 
+03ae 20203f90 branch mouse_fill_data_le 
 
 p_mouse_wheel_trigger:
-03ae 6801469f fetch 2 ,mem_mouse_z 
-03af 207a0000 rtn blank 
-03b0 70480601 jam 1 ,mem_mouse_wheel_trigger 
-03b1 7048070a jam 10 ,mem_mouse_wheel_trigger_timer 
-03b2 20600000 rtn 
+03af 6801469f fetch 2 ,mem_mouse_z 
+03b0 207a0000 rtn blank 
+03b1 70480801 jam 1 ,mem_mouse_wheel_trigger 
+03b2 7048090a jam 10 ,mem_mouse_wheel_trigger_timer 
+03b3 20600000 rtn 
 
 p_mouse_clear_sensor_data:
-03b3 70479e01 jam 1 ,mem_mouse_clear_sensor_data_flag 
-03b4 20405814 call le_set_config_more_data 
-
-p_mouse_init_sensor_reset:
-03b5 704b0001 jam 1 ,mem_mouse_init_sensor_reset_flag 
-03b6 202002c5 branch p_mouse_init_sunt 
+03b4 70479e01 jam 1 ,mem_mouse_clear_sensor_data_flag 
+03b5 20405814 call le_set_config_more_data 
+03b6 202002b3 branch p_mouse_init_sensor_reset 
 
 p_mouse_idle:
 03b7 20407e34 call ui_check_paring_button 
@@ -1283,11 +1275,11 @@
 
 p_mouse_dpi_check:
 03ba 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
-03bb 20400557 call p_gpio_set_input_pd 
+03bb 20400525 call p_gpio_set_input_pd 
 03bc 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
 03bd 2040681d call gpio_get_bit 
 03be 202083c4 branch p_mouse_dpi_up ,true 
-03bf 20400552 call p_gpio_set_input_pu 
+03bf 2040052b call p_gpio_set_input_pu 
 
 p_mouse_dpi_down:
 03c0 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
@@ -1296,1328 +1288,1345 @@
 03c3 20600000 rtn 
 
 p_mouse_dpi_up:
-03c4 20400552 call p_gpio_set_input_pu 
+03c4 2040052b call p_gpio_set_input_pu 
 03c5 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
 03c6 c1008000 rtneq dpi_button_state_up 
 03c7 7046b601 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
-03c8 6800cb74 fetch 1 ,mem_mouse_long_button_select_device 
-03c9 203a0468 branch p_mouse_select_device_and_reset ,blank 
+03c8 6800cb6f fetch 1 ,mem_mouse_long_button_select_device 
+03c9 203a040e branch p_mouse_select_device_and_reset ,blank 
 03ca 6800c77a fetch 1 ,mem_mouse_dpi 
 03cb 1fe0fe01 increase 1 ,pdata 
 03cc 1fe17e03 and pdata ,0x03 ,pdata 
 03cd 6000c77a store 1 ,mem_mouse_dpi 
-03ce 1fe0fe02 increase 2 ,pdata 
-03cf 6000cb2e store 1 ,mem_mouse_multi_led_blink_count 
-03d0 204004f7 call p_mouse_dpi_multi_led_blink 
-03d1 20203d7e branch mouse_seting_dpi 
+03ce 20203d7e branch mouse_seting_dpi 
 
 p_mouse_priority_bb_event:
-03d2 1a627e00 copy regc ,pdata 
-03d3 c00a03dc beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
-03d4 c00a83ed beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
-03d5 c01483f0 beq bt_evt_le_enc_info ,p_mouse_le_enc_info 
-03d6 c01903f2 beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
-03d7 c02003f4 beq bt_evt_le_parse_conn_papa_update_rsp ,p_mouse_le_conn_param_update_rsp_recieved 
-03d8 c01c83f6 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
-03d9 c01d03f9 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
-03da c01e03fc beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-03db 2020417d branch mouse_priority_bb_event + 1 
+03cf 1a627e00 copy regc ,pdata 
+03d0 c00a03d9 beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
+03d1 c00a83dc beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
+03d2 c01483df beq bt_evt_le_enc_info ,p_mouse_le_enc_info 
+03d3 c01903e1 beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
+03d4 c02003e3 beq bt_evt_le_parse_conn_papa_update_rsp ,p_mouse_le_conn_param_update_rsp_recieved 
+03d5 c01c83e7 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
+03d6 c01d03eb beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
+03d7 c01e03ee beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+03d8 2020417d branch mouse_priority_bb_event + 1 
 
 p_mouse_le_bb_event_connected:
-03dc 204003b5 call p_mouse_init_sensor_reset 
-03dd 58000000 setarg 0 
-03de 6001cb6a store 3 ,mem_le_switch_adv_flag 
-03df 68034b4e fetch 6 ,mem_mouse_24g_addr_init 
-03e0 680b4722 fetcht 6 ,mem_device1_addr 
-03e1 98467c00 isub temp ,null 
-03e2 24428344 ncall p_mouse_fast_conn_disable ,zero 
-03e3 20403410 call app_ble_store_reconn_info 
-03e4 704b7101 jam 1 ,mem_mouse_le_bb_connected_flag 
-03e5 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
-03e6 243a03e8 nbranch p_mouse_le_bb_event_connected_next ,blank 
-03e7 704b6f14 jam 0x14 ,mem_mouse_send_secutiry_request_timer 
-
-p_mouse_le_bb_event_connected_next:
-03e8 704b7900 jam 0 ,mem_mouse_le_not_tx_disconn 
-03e9 704b6d00 jam 0 ,mem_mouse_start_discovery_enable 
-03ea 204004b5 call p_mouse_null_enter_hibernate_disable 
-03eb 20400398 call p_mouse_data_init 
-03ec 202041c3 branch mouse_le_bb_event_connected 
+03d9 204002b3 call p_mouse_init_sensor_reset 
+03da 7011c7b0 jam zcode_b0 ,mem_zcode_temp_param0 
+03db 202006d0 branch p_zcode_entrance 
 
 p_mouse_le_bb_disconnected:
-03ed 20400402 call p_mouse_sensor_powerdown_check 
-03ee 7011c6a2 jam zcode_a2 ,mem_zcode_temp_param0 
-03ef 202006b6 branch p_zcode_entrance 
+03dc 204003f8 call p_mouse_sensor_powerdown_check 
+03dd 7011c7a2 jam zcode_a2 ,mem_zcode_temp_param0 
+03de 202006d0 branch p_zcode_entrance 
 
 p_mouse_le_enc_info:
 
 p_app_updata_le_param:
-03f0 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
-03f1 20207d8f branch ui_ipc_send_cmd 
+03df 700a9912 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+03e0 20207d8f branch ui_ipc_send_cmd 
 
 p_mouse_le_ll_start_encryt:
-03f2 7011c6b3 jam zcode_b3 ,mem_zcode_temp_param0 
-03f3 202006b6 branch p_zcode_entrance 
+03e1 7011c7b3 jam zcode_b3 ,mem_zcode_temp_param0 
+03e2 202006d0 branch p_zcode_entrance 
 
 p_mouse_le_conn_param_update_rsp_recieved:
-03f4 7011c6a1 jam zcode_a1 ,mem_zcode_temp_param0 
-03f5 202006b6 branch p_zcode_entrance 
+03e3 7011c7a1 jam zcode_a1 ,mem_zcode_temp_param0 
+03e4 202006d0 branch p_zcode_entrance 
+
+p_mouse_irtual_cable_unplug:
+03e5 7011c7b5 jam zcode_b5 ,mem_zcode_temp_param0 
+03e6 202006d0 branch p_zcode_entrance 
 
 p_mouse_24g_pairing_complete:
-03f6 204003b5 call p_mouse_init_sensor_reset 
-03f7 7011c650 jam zcode_50 ,mem_zcode_temp_param0 
-03f8 202006b6 branch p_zcode_entrance 
+03e7 204004ab call p_mouse_discovey_led_blink_off 
+03e8 204002b3 call p_mouse_init_sensor_reset 
+03e9 7011c792 jam zcode_92 ,mem_zcode_temp_param0 
+03ea 202006d0 branch p_zcode_entrance 
 
 p_mouse_24g_attempt_fail:
-03f9 20400402 call p_mouse_sensor_powerdown_check 
-03fa 7011c651 jam zcode_51 ,mem_zcode_temp_param0 
-03fb 202006b6 branch p_zcode_entrance 
+03eb 204003f8 call p_mouse_sensor_powerdown_check 
+03ec 7011c7a0 jam zcode_a0 ,mem_zcode_temp_param0 
+03ed 202006d0 branch p_zcode_entrance 
 
 p_mouse_24g_attempt_success:
-03fc 204003b5 call p_mouse_init_sensor_reset 
-03fd 7011c652 jam zcode_52 ,mem_zcode_temp_param0 
-03fe 202006b6 branch p_zcode_entrance 
+03ee 204004ab call p_mouse_discovey_led_blink_off 
+03ef 704b6701 jam 1 ,mem_mouse_24g_attempt_success_flag 
+03f0 20400469 call p_mouse_null_enter_hibernate_disable 
+03f1 204002b3 call p_mouse_init_sensor_reset 
+03f2 20403f8d call mouse_no_data_timer_init 
+
+p_mouse_store_24g_device_2flash:
+03f3 20404366 call mouse_cheak_select_24gdevice 
+03f4 2020030f branch p_mouse_store_flash_device_info 
 
 p_mouse_before_hibernate:
-03ff 20400402 call p_mouse_sensor_powerdown_check 
-0400 7011c6a0 jam zcode_a0 ,mem_zcode_temp_param0 
-0401 202006b6 branch p_zcode_entrance 
+03f5 204003f8 call p_mouse_sensor_powerdown_check 
+03f6 7011c7a4 jam zcode_a4 ,mem_zcode_temp_param0 
+03f7 202006d0 branch p_zcode_entrance 
 
 p_mouse_sensor_powerdown_check:
-0402 6800cb00 fetch 1 ,mem_mouse_init_sensor_reset_flag 
-0403 207a0000 rtn blank 
-0404 704b0000 jam 0 ,mem_mouse_init_sensor_reset_flag 
-
-p_mouse_sensor_powerdown:
-0405 204002c5 call p_mouse_init_sunt 
-0406 58000006 setarg 0x06 
-0407 20406414 call twspi_read 
-0408 1fe1fe08 or pdata ,0x08 ,pdata 
-0409 1fed7e00 lshift8 pdata ,pdata 
-040a 1fe0fe06 add pdata ,0x06 ,pdata 
-040b 20206413 branch twspi_write 
+03f8 6800cb00 fetch 1 ,mem_mouse_init_sensor_reset_flag 
+03f9 207a0000 rtn blank 
+03fa 704b0000 jam 0 ,mem_mouse_init_sensor_reset_flag 
+03fb 202002ec branch p_mouse_sensor_powerdown 
 
 p_mouse_bb_event_timer:
-040c 20400419 call p_mouse_le_switch_adv_timer 
-040d 204004b8 call p_mouse_multi_led_blink_timer 
-040e 20400483 call p_mouse_wheel_trigger_timer 
-040f 204004a7 call p_mouse_null_enter_hibernate_timer 
-0410 20400488 call p_mouse_bt_discovery_check 
-0411 20404234 call mouse_check_discovery_timeout_timer 
-0412 20400437 call p_mouse_g24_long_sleep_param_update_timer 
-0413 2040043e call p_mouse_g24_stop_mode_timeout_timer 
-0414 2040046c call p_mouse_check_direct_timeout_timer 
-0415 20400472 call p_mouse_le_enable_att_list_timer 
-0416 20400475 call p_le_send_smp_security_request_timer 
-0417 2040047d call p_mouse_le_current_mult_update_timer 
-0418 2020423a branch mouse_check_no_data_timeout_timer 
-
-p_mouse_le_switch_adv_timer:
-0419 6800cb6a fetch 1 ,mem_le_switch_adv_flag 
-041a 207a0000 rtn blank 
-041b da604b6b arg mem_le_switch_adv_timer ,regc 
-041c da40041e arg p_mouse_le_switch_adv ,regb 
-041d 2020336d branch timer_single_step 
-
-p_mouse_le_switch_adv:
-041e 704b6b01 jam 1 ,mem_le_switch_adv_timer 
-041f 6800cb6c fetch 1 ,mem_le_switch_adv_count 
-0420 1fe0fe01 increase 1 ,pdata 
-0421 1fe17e01 and_into 1 ,pdata 
-0422 6000cb6c store 1 ,mem_le_switch_adv_count 
-0423 c0000432 beq 0 ,p_mouse_check_fast_conn_adv_start1 
-
-p_check_51cmd_adv:
-0424 68034b64 fetch 6 ,mem_le_normal_lap 
-0425 600344a0 store 6 ,mem_le_lap 
-0426 20400428 call p_mouse_le_adv_data_update 
-0427 20207df4 branch check_51cmd_adv 
-
-p_mouse_le_adv_data_update:
-0428 70436f1f jam 0x1f ,mem_le_adv_data_len 
-0429 70438f1f jam 0x1f ,mem_le_scan_data_len 
-042a 20400430 call p_mouse_store_eeprom_enable 
-042b d8c04b12 arg mem_le_adv_swift_pair ,contr 
-
-p_le_adv_data_update:
-042c d8a0437b arg mem_le_adv_data + 11 ,contw 
-042d df200013 arg 19 ,loopcnt 
-042e 20407f01 call memcpy 
-042f 202057b8 branch le_modified_name_adv 
-
-p_mouse_store_eeprom_enable:
-0430 d8e00007 arg mouse_store_eeprom_flag ,queue 
-0431 202043ce branch mouse_enable_function_flag 
-
-p_mouse_check_fast_conn_adv_start:
-
-p_mouse_check_fast_conn_adv_start1:
-0432 70436f00 jam 0 ,mem_le_adv_data_len 
-0433 70438f00 jam 0 ,mem_le_scan_data_len 
-0434 d8e00007 arg mouse_store_eeprom_flag ,queue 
-0435 204043d2 call mouse_disable_function_flag 
-0436 20200348 branch p_mouse_fast_conn_init 
-
-p_mouse_g24_long_sleep_param_update_timer:
-0437 da604b46 arg mem_24g_long_sleep_param_update_timer ,regc 
-0438 da40043a arg p_mouse_g24_long_sleep_normal_param ,regb 
-0439 2020336d branch timer_single_step 
-
-p_mouse_g24_long_sleep_normal_param:
-043a 58124f80 setarg g24_long_sleep_step3 
-043b 6001cc62 store 3 ,mem_24g_enter_hibernate 
-
-p_mouse_long_mult_flag_enable:
-043c 704b4401 jam 1 ,mem_mouse_long_mult_flag 
-043d 20600000 rtn 
-
-p_mouse_g24_stop_mode_timeout_timer:
-043e da604d7f arg mem_24g_stop_g24_mode_timeout ,regc 
-043f da400441 arg p_mouse_g24_stop_mode_timeout ,regb 
-0440 20203374 branch timer_single_step_2b 
-
-p_mouse_g24_stop_mode_timeout:
-0441 704d7e01 jam 1 ,mem_24g_stop_g24_mode 
-0442 20600000 rtn 
-
-p_mouse_select_device:
-
-p_mouse_select_device_by_button:
-0443 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
-0444 20400557 call p_gpio_set_input_pd 
-0445 6808c6ed fetcht 1 ,mem_config_select_device_button_gpio 
-0446 2040681d call gpio_get_bit 
-0447 24208450 nbranch p_mouse_select_device_button_down ,true 
-
-p_mouse_select_device_button_up:
-0448 20400552 call p_gpio_set_input_pu 
-0449 6800cafd fetch 1 ,mem_mouse_button_select_device_timer_init 
-044a 6000cafe store 1 ,mem_mouse_button_select_device_count 
-044b 6800c6d9 fetch 1 ,mem_select_device_button_statue 
-044c c1008000 rtneq dpi_button_state_up 
-044d 7046d901 jam dpi_button_state_up ,mem_select_device_button_statue 
-044e d8e00006 arg mouse_long_bt_button_flag ,queue 
-044f 202043d2 branch mouse_disable_function_flag 
-
-p_mouse_select_device_button_down:
-0450 20400552 call p_gpio_set_input_pu 
-0451 20400457 call p_mouse_button_select_device_timer 
-0452 204004ae call p_mouse_null_enter_hibernate_check 
-0453 6800c6d9 fetch 1 ,mem_select_device_button_statue 
-0454 c1000000 rtneq dpi_button_state_down 
-0455 7046d900 jam dpi_button_state_down ,mem_select_device_button_statue 
-0456 20600000 rtn 
-
-p_mouse_button_select_device_timer:
-0457 da604afe arg mem_mouse_button_select_device_count ,regc 
-0458 da40045a arg p_mouse_long_button_select_device ,regb 
-0459 2020336d branch timer_single_step 
-
-p_mouse_long_button_select_device:
-045a 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-045b c3830000 rtnbit1 mouse_long_bt_button_flag 
-045c d8e00006 arg mouse_long_bt_button_flag ,queue 
-045d 204043ce call mouse_enable_function_flag 
-045e 2040046a call p_mouse_long_button_state_clear 
-
-p_mouse_ready_reconnection_by_button:
-045f 7041bd00 jam 0 ,mem_link_key_exists 
-0460 6808c720 fetcht 1 ,mem_device_flag 
-0461 18408401 increase 1 ,temp 
-0462 6800c6d2 fetch 1 ,mem_device_number 
-0463 98467c00 isub temp ,null 
-0464 244143cc ncall mouse_select_device_count_clean ,positive 
-0465 6008c720 storet 1 ,mem_device_flag 
-0466 20400304 call p_mouse_store_flash_device_info 
-0467 20204378 branch mouse_ready_reconnection_by_button + 8 
+03fc 2040046c call p_mouse_multi_led_blink_timer 
+03fd 20400438 call p_mouse_wheel_trigger_timer 
+03fe 2040045b call p_mouse_null_enter_hibernate_timer 
+03ff 2040043d call p_mouse_bt_discovery_check 
+0400 20404234 call mouse_check_discovery_timeout_timer 
+0401 20400431 call p_mouse_g24_long_sleep_param_update_timer 
+0402 20400415 call p_mouse_check_direct_timeout_timer 
+0403 20400412 call p_mouse_le_enable_att_list_timer 
+0404 2040041b call p_mouse_le_current_mult_update_timer 
+0405 20400421 call p_le_send_smp_security_request_timer 
+0406 20400408 call p_mouse_delay_discovery_timer 
+0407 2020423a branch mouse_check_no_data_timeout_timer 
+
+p_mouse_delay_discovery_timer:
+0408 6800cb72 fetch 1 ,mem_mouse_delay_discovery_count 
+0409 207a0000 rtn blank 
+040a 1fe0ffff increase -1 ,pdata 
+040b 6000cb72 store 1 ,mem_mouse_delay_discovery_count 
+040c 247a0000 nrtn blank 
+040d 202042b0 branch mouse_start_discovery 
 
 p_mouse_select_device_and_reset:
-0468 704b74ff jam 0xff ,mem_mouse_long_button_select_device 
-0469 20600000 rtn 
+040e 704b6fff jam 0xff ,mem_mouse_long_button_select_device 
+040f 20600000 rtn 
 
 p_mouse_long_button_state_clear:
-046a 704b7400 jam 0 ,mem_mouse_long_button_select_device 
-046b 20600000 rtn 
+0410 704b6f00 jam 0 ,mem_mouse_long_button_select_device 
+0411 20600000 rtn 
+
+p_mouse_le_enable_att_list_timer:
+0412 da6046c6 arg mem_le_start_encrypt_timer ,regc 
+0413 da403d60 arg mouse_le_write_enable ,regb 
+0414 2020336d branch timer_single_step 
 
 p_mouse_check_direct_timeout_timer:
-046c da6046ae arg mem_mouse_direct_timer ,regc 
-046d da40046f arg p_mouse_check_direct_timeout ,regb 
-046e 20203374 branch timer_single_step_2b 
+0415 da6046ae arg mem_mouse_direct_timer ,regc 
+0416 da400418 arg p_mouse_check_direct_timeout ,regb 
+0417 20203374 branch timer_single_step_2b 
 
 p_mouse_check_direct_timeout:
-046f 704b7901 jam 1 ,mem_mouse_le_not_tx_disconn 
-0470 2040049d call p_mouse_long_button_bt_normal_discovery 
-0471 20200491 branch p_mouse_bt_discovery_button_up_init 
+0418 6800cb30 fetch 1 ,mem_mouse_multi_led_on_poweron2s_flag 
+0419 247a0000 nrtn blank 
+041a 20204266 branch mouse_check_direct_timeout 
 
-p_mouse_le_enable_att_list_timer:
-0472 da6046c6 arg mem_le_start_encrypt_timer ,regc 
-0473 da403d60 arg mouse_le_write_enable ,regb 
-0474 2020336d branch timer_single_step 
+p_mouse_le_current_mult_update_timer:
+041b da604b60 arg mem_mouse_le_current_mult_timer ,regc 
+041c da40041e arg p_mouse_le_current_mult_reinit ,regb 
+041d 2020336d branch timer_single_step 
+
+p_mouse_le_current_mult_reinit:
+041e 6800c7c7 fetch 1 ,mem_lpm_mult_init 
+041f 6000c172 store 1 ,mem_lpm_mult 
+0420 20200436 branch p_mouse_long_mult_flag_enable 
 
 p_le_send_smp_security_request_timer:
-0475 6800cb71 fetch 1 ,mem_mouse_le_bb_connected_flag 
-0476 207a0000 rtn blank 
-0477 da604b6f arg mem_mouse_send_secutiry_request_timer ,regc 
-0478 da40047a arg p_le_pairing_sm_start_check ,regb 
-0479 2020336d branch timer_single_step 
+0421 6800cb68 fetch 1 ,mem_mouse_le_bb_connected_flag 
+0422 207a0000 rtn blank 
+0423 da604b6d arg mem_mouse_send_secutiry_request_timer ,regc 
+0424 da400426 arg p_le_pairing_sm_start_check ,regb 
+0425 2020336d branch timer_single_step 
 
 p_le_pairing_sm_start_check:
-047a 6800cb70 fetch 1 ,mem_le_send_security_request_flag 
-047b 247a0000 nrtn blank 
-047c 20205bf5 branch le_pairing_sm_start 
+0426 6800cb6e fetch 1 ,mem_le_send_security_request_flag 
+0427 247a0000 nrtn blank 
+0428 20205bf5 branch le_pairing_sm_start 
+
+p_mouse_le_fast_conn_enable_timer:
+0429 6800cb69 fetch 1 ,mem_mouse_fast_conn_flag 
+042a c1ff8000 rtnne 0xff 
+042b 6800cb68 fetch 1 ,mem_mouse_le_bb_connected_flag 
+042c 247a0000 nrtn blank 
+042d da604b71 arg mem_mouse_le_fast_conn_enable_timer ,regc 
+042e da400430 arg p_mouse_le_fast_conn_enable_timeout ,regb 
+042f 2020336d branch timer_single_step 
 
-p_mouse_le_current_mult_update_timer:
-047d da604b45 arg mem_mouse_le_current_mult_timer ,regc 
-047e da400480 arg p_mouse_le_current_mult_reinit ,regb 
-047f 2020336d branch timer_single_step 
+p_mouse_le_fast_conn_enable_timeout:
+0430 2020053c branch p_mouse_start_discovery 
 
-p_mouse_le_current_mult_reinit:
-0480 6800c7c5 fetch 1 ,mem_lpm_mult_init 
-0481 6000c172 store 1 ,mem_lpm_mult 
-0482 2020043c branch p_mouse_long_mult_flag_enable 
+p_mouse_g24_long_sleep_param_update_timer:
+0431 da604b61 arg mem_24g_long_sleep_param_update_timer ,regc 
+0432 da400434 arg p_mouse_g24_long_sleep_normal_param ,regb 
+0433 20203374 branch timer_single_step_2b 
+
+p_mouse_g24_long_sleep_normal_param:
+0434 58124f80 setarg g24_long_sleep_step2 
+0435 6001cc68 store 3 ,mem_24g_enter_hibernate 
+
+p_mouse_long_mult_flag_enable:
+0436 704b5f01 jam 1 ,mem_mouse_long_mult_flag 
+0437 20600000 rtn 
 
 p_mouse_wheel_trigger_timer:
-0483 da604807 arg mem_mouse_wheel_trigger_timer ,regc 
-0484 da400486 arg p_mouse_wheel_trigger_disable ,regb 
-0485 2020336d branch timer_single_step 
+0438 da604809 arg mem_mouse_wheel_trigger_timer ,regc 
+0439 da40043b arg p_mouse_wheel_trigger_disable ,regb 
+043a 2020336d branch timer_single_step 
 
 p_mouse_wheel_trigger_disable:
-0486 70480600 jam 0 ,mem_mouse_wheel_trigger 
-0487 20600000 rtn 
+043b 70480800 jam 0 ,mem_mouse_wheel_trigger 
+043c 20600000 rtn 
 
 p_mouse_bt_discovery_check:
-0488 6800c720 fetch 1 ,mem_device_flag 
-0489 c1010000 rtneq mode_24g_device 
+043d 6800c720 fetch 1 ,mem_device_flag 
+043e c1010000 rtneq mode_24g_device 
 
-p_mouse_bt_discovery_commbination_key:
-048a 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
-048b 203a0494 branch p_mouse_bt_discovery_commbination_key_down ,blank 
+p_mouse_bt_discovery_by_button:
+043f 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
+0440 203a0449 branch p_mouse_bt_discovery_commbination_key_down ,blank 
 
 p_mouse_bt_discovery_commbination_key_up:
-048c 6800c685 fetch 1 ,mem_ui_button_timeout 
-048d 6000c6da store 1 ,mem_combination_ui_button_count 
-048e 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
-048f c1008000 rtneq dpi_button_state_up 
-0490 7046db01 jam dpi_button_state_up ,mem_bt_discovey_button_statue 
+0441 6800c685 fetch 1 ,mem_ui_button_timeout 
+0442 6000c6da store 1 ,mem_combination_ui_button_count 
+0443 6800c6db fetch 1 ,mem_bt_discovey_button_statue 
+0444 c1008000 rtneq dpi_button_state_up 
+0445 7046db01 jam dpi_button_state_up ,mem_bt_discovey_button_statue 
 
 p_mouse_bt_discovery_button_up_init:
-0491 d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
-0492 204043d2 call mouse_disable_function_flag 
-0493 202043ca branch mouse_bt_discovery_button_down_disable 
+0446 d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0447 204043d2 call mouse_disable_function_flag 
+0448 202043ca branch mouse_bt_discovery_button_down_disable 
 
 p_mouse_bt_discovery_commbination_key_down:
-0494 7047a028 jam 40 ,mem_mouse_null_enter_hibernate_timer 
-0495 20400497 call p_mouse_bt_discovery_timer 
-0496 202043b0 branch mouse_bt_discovery_commbination_key_down + 1 
+0449 7047a028 jam 40 ,mem_mouse_null_enter_hibernate_timer 
+044a 2040044c call p_mouse_bt_discovery_timer 
+044b 202043b0 branch mouse_bt_discovery_commbination_key_down + 1 
 
 p_mouse_bt_discovery_timer:
-0497 da6046da arg mem_combination_ui_button_count ,regc 
-0498 da40049a arg p_mouse_long_button_bt_discovery ,regb 
-0499 2020336d branch timer_single_step 
+044c da6046da arg mem_combination_ui_button_count ,regc 
+044d da40044f arg p_mouse_long_button_bt_discovery ,regb 
+044e 2020336d branch timer_single_step 
 
 p_mouse_long_button_bt_discovery:
-049a 2040046a call p_mouse_long_button_state_clear 
-049b 6800cb6a fetch 1 ,mem_le_switch_adv_flag 
-049c 243a04a4 nbranch p_mouse_fast_conn_adv_switch_timer_reinit ,blank 
-
-p_mouse_long_button_bt_normal_discovery:
-049d 20400428 call p_mouse_le_adv_data_update 
-049e 68014682 fetch 2 ,mem_ui_state_map 
-049f 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
-04a0 2040c392 call mouse_cancel_reconnect ,true 
-04a1 d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
-04a2 204043ce call mouse_enable_function_flag 
-04a3 202043ba branch mouse_long_button_bt_discovry + 2 
-
-p_mouse_fast_conn_adv_switch_timer_reinit:
-04a4 68014687 fetch 2 ,mem_discovery_timeout 
-04a5 600146ac store 2 ,mem_mouse_discovery_timer 
-04a6 20600000 rtn 
+044f 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+0450 c3848000 rtnbit1 mouse_bt_discovery_button_long_down_flag 
+0451 20400410 call p_mouse_long_button_state_clear 
+0452 68014682 fetch 2 ,mem_ui_state_map 
+0453 2feffe0b isolate1 ui_state_ble_adv ,pdata 
+0454 2040c2d4 call mouse_stop_le_adv ,true 
+0455 68014682 fetch 2 ,mem_ui_state_map 
+0456 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
+0457 2040c392 call mouse_cancel_reconnect ,true 
+0458 d8e00009 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0459 204043ce call mouse_enable_function_flag 
+045a 202043b8 branch mouse_long_button_bt_discovry 
 
 p_mouse_null_enter_hibernate_timer:
-04a7 6800c79f fetch 1 ,mem_mouse_null_enter_hibernate_flag 
-04a8 207a0000 rtn blank 
-04a9 da6047a0 arg mem_mouse_null_enter_hibernate_timer ,regc 
-04aa da4004ac arg p_mouse_null_enter_hibernate ,regb 
-04ab 2020336d branch timer_single_step 
+045b 6800cb30 fetch 1 ,mem_mouse_multi_led_on_poweron2s_flag 
+045c 247a0000 nrtn blank 
+045d 6800c79f fetch 1 ,mem_mouse_null_enter_hibernate_flag 
+045e 207a0000 rtn blank 
+045f 6800c7a0 fetch 1 ,mem_mouse_null_enter_hibernate_timer 
+0460 203a0464 branch p_mouse_null_enter_hibernate ,blank 
+0461 1fe0ffff increase -1 ,pdata 
+0462 6000c7a0 store 1 ,mem_mouse_null_enter_hibernate_timer 
+0463 20600000 rtn 
 
 p_mouse_null_enter_hibernate:
-04ac 70479f00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
-04ad 2020340a branch app_enter_hibernate 
-
-p_mouse_null_enter_hibernate_check:
-04ae 68014682 fetch 2 ,mem_ui_state_map 
-04af c3848000 rtnbit1 ui_state_ble_connected 
-04b0 c3800000 rtnbit1 ui_state_bt_connected 
-04b1 c6130000 rtnmark1 mark_24g 
+0464 70479f00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
+0465 2020340a branch app_enter_hibernate 
 
 p_mouse_null_enter_hibernate_enable:
-04b2 70479f01 jam 1 ,mem_mouse_null_enter_hibernate_flag 
-04b3 7047a028 jam 40 ,mem_mouse_null_enter_hibernate_timer 
-04b4 20600000 rtn 
+0466 70479f01 jam 1 ,mem_mouse_null_enter_hibernate_flag 
+0467 7047a028 jam 40 ,mem_mouse_null_enter_hibernate_timer 
+0468 20600000 rtn 
 
 p_mouse_null_enter_hibernate_disable:
-04b5 70479f00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
-04b6 7047a000 jam 0 ,mem_mouse_null_enter_hibernate_timer 
-04b7 20600000 rtn 
+0469 70479f00 jam 0 ,mem_mouse_null_enter_hibernate_flag 
+046a 7047a000 jam 0 ,mem_mouse_null_enter_hibernate_timer 
+046b 20600000 rtn 
 
 p_mouse_multi_led_blink_timer:
-04b8 6800cb26 fetch 1 ,mem_mouse_multi_led_blink_enable 
-04b9 207a0000 rtn blank 
-04ba 6800cb29 fetch 1 ,mem_mouse_multi_led_type 
-04bb c00084d0 beq multi_led_blink ,p_mouse_multi_led_type_blink 
+046c 6800cb26 fetch 1 ,mem_mouse_multi_led_blink_enable 
+046d 207a0000 rtn blank 
+046e 6800cb29 fetch 1 ,mem_mouse_multi_led_type 
+046f c0000472 beq multi_led_on ,p_mouse_multi_led_type_on 
+0470 c000847c beq multi_led_blink ,p_mouse_multi_led_type_blink 
+0471 20600000 rtn 
 
 p_mouse_multi_led_type_on:
-04bc 204004dd call p_mouse_multi_led_on 
-04bd 6800cb2a fetch 1 ,mem_mouse_multi_led_on_timer 
-04be 1fe0fe01 increase 1 ,pdata 
-04bf 6000cb2a store 1 ,mem_mouse_multi_led_on_timer 
-04c0 6808cb2b fetcht 1 ,mem_mouse_multi_led_on_timer_init 
-04c1 98467c00 isub temp ,null 
-04c2 204284c4 call p_mouse_multi_led_off_poweron2s ,zero 
-04c3 20600000 rtn 
+0472 20400486 call p_mouse_multi_led_on 
+0473 6800cb2e fetch 1 ,mem_mouse_multi_led_on_timer 
+0474 1fe0fe01 increase 1 ,pdata 
+0475 6000cb2e store 1 ,mem_mouse_multi_led_on_timer 
+0476 6808cb2a fetcht 1 ,mem_mouse_multi_led_on_timer_init 
+0477 98467c00 isub temp ,null 
+0478 2042847a call p_mouse_multi_led_off_poweron2s ,zero 
+0479 20600000 rtn 
 
 p_mouse_multi_led_off_poweron2s:
-04c4 704b3000 jam 0 ,mem_mouse_multi_led_on_poweron2s_flag 
-04c5 202004e8 branch p_mouse_multi_led_off 
-
-p_mouse_discovery_multi_led_blink:
-04c6 704b3100 jam 0 ,mem_mouse_multi_led_blink_poweron3s_flag 
-04c7 704b2c05 jam 5 ,mem_mouse_multi_led_blink_timer_init 
-
-p_mouse_discovery_multi_led_blink1:
-04c8 704b2f00 jam 0 ,mem_mouse_multi_led_blink_count_limited 
-04c9 704b2e01 jam 1 ,mem_mouse_multi_led_blink_count 
-
-p_mouse_multi_led_blink_enable:
-04ca 704b2d05 jam 5 ,mem_mouse_multi_led_blink_timer 
-04cb 704b2601 jam on ,mem_mouse_multi_led_blink_enable 
-04cc 704b2901 jam multi_led_blink ,mem_mouse_multi_led_type 
-04cd 20600000 rtn 
-
-p_mouse_bt_reconn_multi_led_blink:
-04ce 704b2c01 jam 1 ,mem_mouse_multi_led_blink_timer_init 
-04cf 202004c8 branch p_mouse_discovery_multi_led_blink1 
+047a 704b3000 jam 0 ,mem_mouse_multi_led_on_poweron2s_flag 
+047b 20200491 branch p_mouse_multi_led_off 
 
 p_mouse_multi_led_type_blink:
-04d0 da604b2d arg mem_mouse_multi_led_blink_timer ,regc 
-04d1 da4004d3 arg p_mouse_multi_led_type_blink_timeout ,regb 
-04d2 2020336d branch timer_single_step 
-
-p_mouse_multi_led_type_blink_timeout:
-04d3 6800cb2c fetch 1 ,mem_mouse_multi_led_blink_timer_init 
-04d4 6000cb2d store 1 ,mem_mouse_multi_led_blink_timer 
-04d5 6800cb2f fetch 1 ,mem_mouse_multi_led_blink_count_limited 
-04d6 203a04db branch p_mouse_multi_led_blink_count_no_limited ,blank 
-04d7 6800cb2e fetch 1 ,mem_mouse_multi_led_blink_count 
-04d8 203a04e6 branch p_mouse_multi_led_blink_off ,blank 
-04d9 1fe0ffff increase -1 ,pdata 
-04da 6000cb2e store 1 ,mem_mouse_multi_led_blink_count 
+047c 6800cb2c fetch 1 ,mem_mouse_multi_led_blink_timer 
+047d 1fe0ffff increase -1 ,pdata 
+047e 6000cb2c store 1 ,mem_mouse_multi_led_blink_timer 
+047f 247a0000 nrtn blank 
+0480 6800cb2b fetch 1 ,mem_mouse_multi_led_blink_timer_init 
+0481 6000cb2c store 1 ,mem_mouse_multi_led_blink_timer 
 
 p_mouse_multi_led_blink_count_no_limited:
-04db 6800cb28 fetch 1 ,mem_mouse_multi_led_state 
-04dc c00084e8 beq on ,p_mouse_multi_led_off 
+0482 6800cb28 fetch 1 ,mem_mouse_multi_led_state 
+0483 c0008491 beq on ,p_mouse_multi_led_off 
+0484 c0000486 beq off ,p_mouse_multi_led_on 
+0485 20600000 rtn 
 
 p_mouse_multi_led_on:
-04dd 704b2801 jam on ,mem_mouse_multi_led_state 
-04de 6808cb27 fetcht 1 ,mem_mouse_multi_led_gpio 
-04df 2040680e call gpio_config_output 
-04e0 6808cb27 fetcht 1 ,mem_mouse_multi_led_gpio 
-04e1 20206825 branch gpio_out_inactive 
-
-p_mouse_discovey_led_blink_off:
-04e2 6800cb2a fetch 1 ,mem_mouse_multi_led_on_timer 
-04e3 247a0000 nrtn blank 
-04e4 6800cb30 fetch 1 ,mem_mouse_multi_led_on_poweron2s_flag 
-04e5 247a0000 nrtn blank 
+0486 704b2801 jam on ,mem_mouse_multi_led_state 
+0487 6808cb27 fetcht 1 ,mem_mouse_multi_led_gpio 
+0488 2040680e call gpio_config_output 
+0489 6808cb27 fetcht 1 ,mem_mouse_multi_led_gpio 
+048a 20206825 branch gpio_out_inactive 
+
+p_mouse_low_voltage_led_on:
+048b 6808cb77 fetcht 1 ,mem_mouse_low_voltage_led_gpio 
+048c 2040680e call gpio_config_output 
+048d 6808cb77 fetcht 1 ,mem_mouse_low_voltage_led_gpio 
+048e 20206825 branch gpio_out_inactive 
 
 p_mouse_multi_led_blink_off:
-04e6 58000000 setarg 0 
-04e7 6001cb2d store 3 ,mem_mouse_multi_led_blink_timer 
+048f 58000000 setarg 0 
+0490 6001cb2c store 3 ,mem_mouse_multi_led_blink_timer 
 
 p_mouse_multi_led_off:
-04e8 6800cb2e fetch 1 ,mem_mouse_multi_led_blink_count 
-04e9 243a04ec nbranch p_mouse_multi_led_off_wait_blink_over ,blank 
-04ea 704b2600 jam 0 ,mem_mouse_multi_led_blink_enable 
-04eb 704b2900 jam 0 ,mem_mouse_multi_led_type 
+0491 6800cb2d fetch 1 ,mem_mouse_multi_led_blink_count 
+0492 243a0495 nbranch p_mouse_multi_led_off_wait_blink_over ,blank 
+0493 704b2600 jam 0 ,mem_mouse_multi_led_blink_enable 
+0494 704b2900 jam 0 ,mem_mouse_multi_led_type 
 
 p_mouse_multi_led_off_wait_blink_over:
-04ec 704b2a00 jam 0 ,mem_mouse_multi_led_on_timer 
-04ed 704b2800 jam off ,mem_mouse_multi_led_state 
+0495 704b2e00 jam 0 ,mem_mouse_multi_led_on_timer 
+0496 704b2800 jam off ,mem_mouse_multi_led_state 
 
-p_mouse_multi_led_gpio_set_float:
-04ee 6808cb27 fetcht 1 ,mem_mouse_multi_led_gpio 
-04ef 2040680e call gpio_config_output 
-04f0 6808cb27 fetcht 1 ,mem_mouse_multi_led_gpio 
-04f1 20206829 branch gpio_out_active 
+p_mouse_led_off:
+0497 6808cb27 fetcht 1 ,mem_mouse_multi_led_gpio 
+0498 2040680e call gpio_config_output 
+0499 6808cb27 fetcht 1 ,mem_mouse_multi_led_gpio 
+049a 20206829 branch gpio_out_active 
 
 p_mouse_mode_bt_device1_multi_led_on:
 
 p_mouse_mode_24g_device_multi_led_on:
-04f2 704b3001 jam 1 ,mem_mouse_multi_led_on_poweron2s_flag 
-04f3 704b2601 jam on ,mem_mouse_multi_led_blink_enable 
-04f4 704b2900 jam multi_led_on ,mem_mouse_multi_led_type 
-04f5 704b2a00 jam 0 ,mem_mouse_multi_led_on_timer 
-04f6 20600000 rtn 
-
-p_mouse_dpi_multi_led_blink:
-04f7 704b2c05 jam 5 ,mem_mouse_multi_led_blink_timer_init 
-04f8 704b2f01 jam 1 ,mem_mouse_multi_led_blink_count_limited 
-04f9 202004ca branch p_mouse_multi_led_blink_enable 
+049b 704b3001 jam 1 ,mem_mouse_multi_led_on_poweron2s_flag 
+049c 704b2601 jam on ,mem_mouse_multi_led_blink_enable 
+049d 704b2900 jam multi_led_on ,mem_mouse_multi_led_type 
+049e 704b2e00 jam 0 ,mem_mouse_multi_led_on_timer 
+049f 20600000 rtn 
+
+p_mouse_discovery_multi_led_blink:
+04a0 704b2b03 jam 3 ,mem_mouse_multi_led_blink_timer_init 
+04a1 6800c720 fetch 1 ,mem_device_flag 
+04a2 c00084a9 beq mode_bt_device1 ,p_mouse_bt_discover_led_blink_time_init 
+
+p_mouse_discovery_multi_led_blink_next:
+04a3 704b3000 jam 0 ,mem_mouse_multi_led_on_poweron2s_flag 
+04a4 704b2d01 jam 1 ,mem_mouse_multi_led_blink_count 
+
+p_mouse_multi_led_blink_enable:
+04a5 704b2c05 jam 5 ,mem_mouse_multi_led_blink_timer 
+04a6 704b2601 jam on ,mem_mouse_multi_led_blink_enable 
+04a7 704b2901 jam multi_led_blink ,mem_mouse_multi_led_type 
+04a8 20600000 rtn 
+
+p_mouse_bt_discover_led_blink_time_init:
+04a9 704b2b06 jam 6 ,mem_mouse_multi_led_blink_timer_init 
+04aa 202004a3 branch p_mouse_discovery_multi_led_blink_next 
+
+p_mouse_discovey_led_blink_off:
+04ab 6800cb2e fetch 1 ,mem_mouse_multi_led_on_timer 
+04ac 247a0000 nrtn blank 
+04ad 6800cb30 fetch 1 ,mem_mouse_multi_led_on_poweron2s_flag 
+04ae 247a0000 nrtn blank 
+04af 2020048f branch p_mouse_multi_led_blink_off 
 
 p_mouse_seting_dpi:
 
 p_mouse_seting_sensor_type:
-
-p_mouse_seting_320x_dpi:
-04fa 6800c77a fetch 1 ,mem_mouse_dpi 
-04fb 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
-04fc 20428508 call p_mouse_320x_dpi_recount ,zero 
-04fd 6800c77a fetch 1 ,mem_mouse_dpi 
-04fe c000050a beq mouse_dpi_level1 ,p_mouse_set_cpi1 
-04ff c0018511 beq mouse_dpi_level4 ,p_mouse_set_cpi4 
-
-p_mouse_set_cpi3:
-0500 6800c6e0 fetch 1 ,mem_config_sensor_type 
-0501 c0023d9f beq p3212 ,mouse_set_p3212_cpi3 
-0502 c0030518 beq p3065_xy ,p_mouse_3065xy_set_cpi3 
-0503 c0038518 beq mx8650 ,p_mouse_3065xy_set_cpi3 
-0504 c001051e beq ka8 ,p_mouse_ka8_set_cpi3 
-
-p_mouse_320x_set_cpi3:
-0505 6800c781 fetch 1 ,mem_320x_dpi_3 
-
-p_mouse_dpi_store:
-0506 6000c6b5 store 1 ,mem_mouse_cpi_count 
-0507 20203dc1 branch mouse_p3205_dpi + 3 
-
-p_mouse_320x_dpi_recount:
-0508 70477a02 jam mouse_dpi_level3 ,mem_mouse_dpi 
-0509 20600000 rtn 
-
-p_mouse_set_cpi1:
-050a 6800c6e0 fetch 1 ,mem_config_sensor_type 
-050b c0023d9b beq p3212 ,mouse_set_p3212_cpi2 
-050c c003051a beq p3065_xy ,p_mouse_3065xy_set_cpi1 
-050d c003851a beq mx8650 ,p_mouse_3065xy_set_cpi1 
-050e c0010521 beq ka8 ,p_mouse_ka8_set_cpi1 
-
-p_mouse_320x_set_cpi1:
-050f 6800c77f fetch 1 ,mem_320x_dpi_1 
-0510 20200506 branch p_mouse_dpi_store 
-
-p_mouse_set_cpi4:
-0511 6800c6e0 fetch 1 ,mem_config_sensor_type 
-0512 c0023da1 beq p3212 ,mouse_set_p3212_cpi4 
-0513 c003051c beq p3065_xy ,p_mouse_3065xy_set_cpi4 
-0514 c003851c beq mx8650 ,p_mouse_3065xy_set_cpi4 
-0515 c0010523 beq ka8 ,p_mouse_ka8_set_cpi4 
-
-p_mouse_320x_set_cpi4:
-0516 6800c782 fetch 1 ,mem_320x_dpi_4 
-0517 20200506 branch p_mouse_dpi_store 
-
-p_mouse_3065xy_set_cpi3:
-0518 6800cb3a fetch 1 ,mem_3065xy_dpi_3 
-0519 20200506 branch p_mouse_dpi_store 
-
-p_mouse_3065xy_set_cpi1:
-051a 6800cb38 fetch 1 ,mem_3065xy_dpi_1 
-051b 20200506 branch p_mouse_dpi_store 
-
-p_mouse_3065xy_set_cpi4:
-051c 6800cb3b fetch 1 ,mem_3065xy_dpi_4 
-051d 20200506 branch p_mouse_dpi_store 
+04b0 6800c6e0 fetch 1 ,mem_config_sensor_type 
+04b1 c00204d7 beq p3212 ,p_mouse_seting_3212_dpi 
+04b2 c00404c7 beq p8009 ,p_mouse_seting_8009_dpi 
+04b3 c00104cf beq ka8 ,p_mouse_seting_ka8_dpi 
+04b4 c00304bf beq p3065_xy ,p_mouse_seting_3065xy_dpi 
+04b5 c00384c7 beq mx8650 ,p_mouse_seting_8009_dpi 
+
+p_mouse_seting_3205_dpi:
+04b6 6800c77a fetch 1 ,mem_mouse_dpi 
+04b7 205a04c5 call p_mouse_3065xy_dpi_recount ,blank 
+04b8 6800c77a fetch 1 ,mem_mouse_dpi 
+04b9 c00084bc beq mouse_dpi_level2 ,p_mouse_3205_set_cpi1 
+04ba c001bd8c beq mouse_dpi_level4 ,mouse_set_cpi3 
+04bb 20203d88 branch mouse_set_cpi2 
+
+p_mouse_3205_set_cpi1:
+04bc 6800c77f fetch 1 ,mem_320x_dpi_1 
+04bd 1fe0ffff increase -1 ,pdata 
+04be 20203dbe branch mouse_p3205_dpi 
+
+p_mouse_seting_3065xy_dpi:
+04bf 6800c77a fetch 1 ,mem_mouse_dpi 
+04c0 205a04c5 call p_mouse_3065xy_dpi_recount ,blank 
+04c1 6800c77a fetch 1 ,mem_mouse_dpi 
+04c2 c00084cd beq mouse_dpi_level2 ,p_mouse_8009_set_cpi1 
+04c3 c001bd8c beq mouse_dpi_level4 ,mouse_set_cpi3 
+04c4 20203d88 branch mouse_set_cpi2 
+
+p_mouse_3065xy_dpi_recount:
+04c5 70477a01 jam mouse_dpi_level2 ,mem_mouse_dpi 
+04c6 20600000 rtn 
+
+p_mouse_seting_8009_dpi:
+04c7 6800c77a fetch 1 ,mem_mouse_dpi 
+04c8 205a04c5 call p_mouse_3065xy_dpi_recount ,blank 
+04c9 6800c77a fetch 1 ,mem_mouse_dpi 
+04ca c00084cd beq mouse_dpi_level2 ,p_mouse_8009_set_cpi1 
+04cb c001bd88 beq mouse_dpi_level4 ,mouse_set_cpi2 
+04cc 20203d8a branch mouse_set_cpi1 
+
+p_mouse_8009_set_cpi1:
+04cd 7046b500 jam 0 ,mem_mouse_cpi_count 
+04ce 20203dc1 branch mouse_p3205_dpi + 3 
+
+p_mouse_seting_ka8_dpi:
+04cf 6800c77a fetch 1 ,mem_mouse_dpi 
+04d0 205a04c5 call p_mouse_3065xy_dpi_recount ,blank 
+04d1 6800c77a fetch 1 ,mem_mouse_dpi 
+04d2 c000bd88 beq mouse_dpi_level2 ,mouse_set_cpi2 
+04d3 c00184d5 beq mouse_dpi_level4 ,p_mouse_ka8_set_cpi3 
+04d4 20203d8e branch mouse_set_cpi4 
 
 p_mouse_ka8_set_cpi3:
-051e 6800cb3a fetch 1 ,mem_3065xy_dpi_3 
+04d5 58000005 setarg 5 
+04d6 20203dbe branch mouse_p3205_dpi 
 
-p_mouse_ka8_dpi_store:
-051f 1fe0fe03 increase 3 ,pdata 
-0520 20200506 branch p_mouse_dpi_store 
-
-p_mouse_ka8_set_cpi1:
-0521 6800cb38 fetch 1 ,mem_3065xy_dpi_1 
-0522 2020051f branch p_mouse_ka8_dpi_store 
-
-p_mouse_ka8_set_cpi4:
-0523 6800cb3b fetch 1 ,mem_3065xy_dpi_4 
-0524 2020051f branch p_mouse_ka8_dpi_store 
+p_mouse_seting_3212_dpi:
+04d7 6800c77a fetch 1 ,mem_mouse_dpi 
+04d8 205a04c5 call p_mouse_3065xy_dpi_recount ,blank 
+04d9 6800c77a fetch 1 ,mem_mouse_dpi 
+04da c000bd9b beq mouse_dpi_level2 ,mouse_set_p3212_cpi2 
+04db c001bda1 beq mouse_dpi_level4 ,mouse_set_p3212_cpi4 
+04dc 20203d9f branch mouse_set_p3212_cpi3 
 
 p_mouse_motion:
-0525 78547c00 disable user 
-0526 58000000 setarg 0 
-0527 6003469b store 6 ,mem_mouse_x 
-0528 2040055d call p_mouse_cheak_sensor_data 
-0529 20404079 call mouse_zwheel 
-052a 2040407e call mouse_t_zwheel 
-052b 2040052f call p_mouse_key 
-052c 243406e3 nbranch p_drawing_optima_init ,user 
-052d 204006d7 call p_drawing_optima 
-052e 20203fa0 branch mouse_motion + 9 
+04dd 78547c00 disable user 
+04de 58000000 setarg 0 
+04df 6003469b store 6 ,mem_mouse_x 
+04e0 20400530 call p_mouse_cheak_sensor_data 
+04e1 20404079 call mouse_zwheel 
+04e2 2040407e call mouse_t_zwheel 
+04e3 204004ea call p_mouse_key 
+04e4 243404e7 nbranch p_mouse_motion_nodata ,user 
+04e5 204006f1 call p_drawing_optima 
+04e6 20203fa0 branch mouse_motion + 9 
+
+p_mouse_motion_nodata:
+04e7 204006fd call p_drawing_optima_init 
+04e8 704b3800 jam 0 ,mem_low_power_check_count 
+04e9 20600000 rtn 
 
 p_mouse_key:
-052f 20400531 call p_mouse_check_key_gpio 
-0530 2020409a branch mouse_key + 1 
+04ea 204004ec call p_mouse_check_key_gpio 
+04eb 2020409a branch mouse_key + 1 
 
 p_mouse_check_key_gpio:
-0531 da200000 arg 0 ,rega 
-0532 20400537 call p_mouse_check_lkey_gpio 
-0533 20400535 call p_mouse_check_skey_gpio 
-0534 2020408e branch mouse_check_key_gpio_output 
-
-p_mouse_check_skey_gpio:
-0535 20400547 call p_mouse_check_bk_key_gpio 
-0536 2020054d branch p_mouse_check_fw_key_gpio 
+04ec 6800c69a fetch 1 ,mem_mouse_key 
+04ed 1fe22200 copy pdata ,rega 
+04ee 20400502 call p_mouse_check_lkey_gpio 
+04ef 2020408e branch mouse_check_key_gpio_output 
+
+p_mouse_check_key:
+04f0 6000cbb2 store 1 ,mem_mouse_key_status 
+04f1 1fe3fe00 lshift pdata ,pdata 
+04f2 1fe22400 copy pdata ,regb 
+04f3 18422600 copy temp ,regc 
+04f4 6800cbb1 fetch 1 ,mem_mouse_key_temp 
+04f5 1fe67c02 sub pdata ,0x02 ,null 
+04f6 2041052b call p_gpio_set_input_pu ,positive 
+04f7 24410525 ncall p_gpio_set_input_pd ,positive 
+04f8 1a620400 copy regc ,temp 
+04f9 2040681d call gpio_get_bit 
+04fa 7920a400 setflag true ,0 ,regb 
+04fb 1a417e07 and regb ,0x07 ,pdata 
+04fc 6808cbb1 fetcht 1 ,mem_mouse_key_temp 
+04fd 18420e00 copy temp ,queue 
+04fe 18467c02 sub temp ,0x02 ,null 
+04ff c003851f beq 0x07 ,p_mouse_key_press 
+0500 c0000522 beq 0x00 ,p_mouse_key_release 
+0501 20600000 rtn 
 
 p_mouse_check_lkey_gpio:
-0537 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
-0538 20400552 call p_gpio_set_input_pu 
-0539 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
-053a 2040681d call gpio_get_bit 
-053b 7920a200 setflag true ,0 ,rega 
+0502 704bb100 jam 0x00 ,mem_mouse_key_temp 
+0503 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
+0504 6800cbab fetch 1 ,mem_mouse_lkey_press_status 
+0505 204004f0 call p_mouse_check_key 
+0506 6000cbab store 1 ,mem_mouse_lkey_press_status 
 
 p_mouse_check_rkey_gpio:
-053c 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
-053d 20400552 call p_gpio_set_input_pu 
-053e 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
-053f 2040681d call gpio_get_bit 
-0540 7920a201 setflag true ,1 ,rega 
+0507 704bb101 jam 0x01 ,mem_mouse_key_temp 
+0508 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
+0509 6800cbac fetch 1 ,mem_mouse_rkey_press_status 
+050a 204004f0 call p_mouse_check_key 
+050b 6000cbac store 1 ,mem_mouse_rkey_press_status 
 
 p_mouse_check_mkey_gpio:
-0541 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
-0542 20400552 call p_gpio_set_input_pu 
-0543 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
-0544 2040681d call gpio_get_bit 
-0545 7920a202 setflag true ,2 ,rega 
-0546 20600000 rtn 
-
-p_mouse_check_bk_key_gpio:
-0547 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
-0548 20400557 call p_gpio_set_input_pd 
-0549 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
-054a 2040681d call gpio_get_bit 
-054b 7d20a203 nsetflag true ,3 ,rega 
-054c 20200552 branch p_gpio_set_input_pu 
-
-p_mouse_check_fw_key_gpio:
-054d 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
-054e 20400557 call p_gpio_set_input_pd 
-054f 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
-0550 2040681d call gpio_get_bit 
-0551 7d20a204 nsetflag true ,4 ,rega 
-
-p_gpio_set_input_pu:
-0552 79200407 set1 gpio_active_bit ,temp 
-0553 d8a08078 arg core_gpio_pu0 ,contw 
-0554 20406830 call gpio_set_bit 
-0555 793f8407 set0 gpio_active_bit ,temp 
-0556 2020055b branch p_gpio_set_input_pd4 
+050c 704bb102 jam 0x02 ,mem_mouse_key_temp 
+050d 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
+050e 6800cbad fetch 1 ,mem_mouse_mkey_press_status 
+050f 204004f0 call p_mouse_check_key 
+0510 6000cbad store 1 ,mem_mouse_mkey_press_status 
+
+p_mouse_check_bkkey_gpio:
+0511 704bb103 jam 0x03 ,mem_mouse_key_temp 
+0512 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
+0513 6800cbae fetch 1 ,mem_mouse_bkkey_press_status 
+0514 204004f0 call p_mouse_check_key 
+0515 6000cbae store 1 ,mem_mouse_bkkey_press_status 
+0516 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
+0517 2040052b call p_gpio_set_input_pu 
+
+p_mouse_check_fwkey_gpio:
+0518 704bb104 jam 0x04 ,mem_mouse_key_temp 
+0519 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
+051a 6800cbaf fetch 1 ,mem_mouse_fwkey_press_status 
+051b 204004f0 call p_mouse_check_key 
+051c 6000cbaf store 1 ,mem_mouse_fwkey_press_status 
+051d 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
+051e 2020052b branch p_gpio_set_input_pu 
+
+p_mouse_key_press:
+051f 20210523 branch p_qset1_rega ,positive 
+
+p_qset0_rega:
+0520 f93fa200 qset0 rega 
+0521 20600000 rtn 
+
+p_mouse_key_release:
+0522 20210520 branch p_qset0_rega ,positive 
+
+p_qset1_rega:
+0523 f9202200 qset1 rega 
+0524 20600000 rtn 
 
 p_gpio_set_input_pd:
-0557 793f8407 set0 gpio_active_bit ,temp 
-0558 d8a08078 arg core_gpio_pu0 ,contw 
-0559 20406830 call gpio_set_bit 
-055a 79200407 set1 gpio_active_bit ,temp 
+0525 793f8407 set0 gpio_active_bit ,temp 
+0526 d8a08078 arg core_gpio_pu0 ,contw 
+0527 20406830 call gpio_set_bit 
+0528 79200407 set1 gpio_active_bit ,temp 
 
 p_gpio_set_input_pd4:
-055b d8a0807c arg core_gpio_pd0 ,contw 
-055c 2020680a branch gpio_set_high_impedance + 4 
+0529 d8a0807c arg core_gpio_pd0 ,contw 
+052a 2020680a branch gpio_set_high_impedance + 4 
+
+p_gpio_set_input_pu:
+052b 79200407 set1 gpio_active_bit ,temp 
+
+p_gpio_set_input_pu1:
+052c d8a08078 arg core_gpio_pu0 ,contw 
+052d 20406830 call gpio_set_bit 
+052e 793f8407 set0 gpio_active_bit ,temp 
+052f 20200529 branch p_gpio_set_input_pd4 
 
 p_mouse_cheak_sensor_data:
+0530 6800c6e0 fetch 1 ,mem_config_sensor_type 
 
 p_mouse_p32xx_sensor_motion:
-055d 20403fc0 call mouse_clear_sensor_data 
-055e 78547c00 disable user 
-055f 20203fe7 branch mouse_p32xx_sensor_motion_2 
+0531 20403fc0 call mouse_clear_sensor_data 
+0532 78547c00 disable user 
+0533 20203fe7 branch mouse_p32xx_sensor_motion_2 
 
 p_mouse_bb_event_discovery_btn:
-0560 204004b5 call p_mouse_null_enter_hibernate_disable 
-0561 280ffe26 isolate1 mark_24g ,mark 
-0562 204081ec call p_g24_check_51cmd_stop_24g ,true 
-0563 7046b400 jam 0 ,mem_mouse_send_blank_timer 
-0564 6800cb79 fetch 1 ,mem_mouse_le_not_tx_disconn 
-0565 205a4386 call mouse_disconnect ,blank 
-0566 58000000 setarg 0 
-0567 600146b0 store 2 ,mem_mouse_no_data_timer 
-0568 2020426f branch mouse_bb_event_discovery_btn + 3 
+0534 20400469 call p_mouse_null_enter_hibernate_disable 
+0535 280ffe26 isolate1 mark_24g ,mark 
+0536 20408194 call p_g24_check_51cmd_stop_24g ,true 
+0537 704b7203 jam 3 ,mem_mouse_delay_discovery_count 
+0538 20404386 call mouse_disconnect 
+0539 202041c1 branch mouse_le_clean_connect_flag 
+
+p_le_addr_random_config:
+053a 7011c781 jam zcode_81 ,mem_zcode_temp_param0 
+053b 202006d0 branch p_zcode_entrance 
 
 p_mouse_start_discovery:
-0569 7011c630 jam zcode_30 ,mem_zcode_temp_param0 
-056a 202006b6 branch p_zcode_entrance 
+053c 7011c750 jam zcode_50 ,mem_zcode_temp_param0 
+053d 202006d0 branch p_zcode_entrance 
+
+p_mouse_load_random_addr_increase_count:
+053e 20400351 call p_flash_release_deep_power_down 
+053f d8400002 arg 2 ,temp 
+0540 da2047c4 arg mem_random_addr_increase_count ,rega 
+0541 da40005f arg mouse_random_addr_count_eeprom_offset ,regb 
+0542 6801c700 fetch 3 ,mem_flash_base 
+0543 9a40fe00 iadd regb ,pdata 
+0544 20206562 branch spid_read_flash 
+
+p_le_adv_data_update:
+0545 d8a0437b arg mem_le_adv_data + 11 ,contw 
+0546 df200013 arg 19 ,loopcnt 
+0547 20407f01 call memcpy 
+0548 202057b8 branch le_modified_name_adv 
 
 p_mouse_stop_discovery:
-056b 204004e2 call p_mouse_discovey_led_blink_off 
-056c 204003b5 call p_mouse_init_sensor_reset 
-056d 202042cb branch mouse_stop_discovery + 1 
+0549 6800c720 fetch 1 ,mem_device_flag 
+054a c1010000 rtneq mode_24g_device 
+054b 58000000 setarg 0 
+054c 600146ac store 2 ,mem_mouse_discovery_timer 
+054d 204002b3 call p_mouse_init_sensor_reset 
+054e 6800c092 fetch 1 ,mem_device_option 
+054f 2feffe01 isolate1 mode_4_mouse ,pdata 
+0550 2040c2d4 call mouse_stop_le_adv ,true 
+0551 6800c092 fetch 1 ,mem_device_option 
+0552 2feffe00 isolate1 mode_3_mouse ,pdata 
+0553 2040c2d7 call mouse_stop_bt3_discovery ,true 
+0554 202004ab branch p_mouse_discovey_led_blink_off 
 
 p_le_slave_match:
-056e 6800c50f fetch 1 ,mem_le_md_count 
-056f 1fe0fe01 pincrease 1 
-0570 6000c50f store 1 ,mem_le_md_count 
-0571 c0065395 beq le_md_max_count ,le_slave_cont 
-0572 204055aa call le_acknowledge 
-0573 2040561e call le_prepare_tx 
-0574 20400656 call power_ctrl_start 
-0575 2020538f branch le_slave_match + 7 
+0555 6800c50f fetch 1 ,mem_le_md_count 
+0556 1fe0fe01 pincrease 1 
+0557 6000c50f store 1 ,mem_le_md_count 
+0558 c0065395 beq le_md_max_count ,le_slave_cont 
+0559 204055aa call le_acknowledge 
+055a 2040561e call le_prepare_tx 
+055b 20400670 call power_ctrl_start 
+055c 2020538f branch le_slave_match + 7 
 
 p_le_next_adv_channel:
-0576 68008016 fetch 1 ,mem_le_ch_mapped 
-0577 1fe0fe01 increase 1 ,pdata 
-0578 60008016 store 1 ,mem_le_ch_mapped 
-0579 c1940000 rtnne 40 
-057a 70001625 jam 37 ,mem_le_ch_mapped 
-057b 20600000 rtn 
+055d 68008016 fetch 1 ,mem_le_ch_mapped 
+055e 1fe0fe01 increase 1 ,pdata 
+055f 60008016 store 1 ,mem_le_ch_mapped 
+0560 c1940000 rtnne 40 
+0561 70001625 jam 37 ,mem_le_ch_mapped 
+0562 20600000 rtn 
 
 p_le_receive_skip:
-057c 204029bb call save_rssi 
-057d 2040005e call p_rssi_signal 
-057e 202054a3 branch le_receive_skip + 2 
+0563 204029bb call save_rssi 
+0564 20400211 call p_rssi_signal 
+0565 202054a3 branch le_receive_skip + 2 
 
 p_le_update_param:
-057f 7011c620 jam zcode_20 ,mem_zcode_temp_param0 
-0580 202006b6 branch p_zcode_entrance 
+0566 7011c740 jam zcode_40 ,mem_zcode_temp_param0 
+0567 202006d0 branch p_zcode_entrance 
 
 p_le_update_channel_map:
-0581 7011c621 jam zcode_21 ,mem_zcode_temp_param0 
-0582 202006b6 branch p_zcode_entrance 
+0568 7011c741 jam zcode_41 ,mem_zcode_temp_param0 
+0569 202006d0 branch p_zcode_entrance 
 
 p_le_prepare_tx:
-0583 68008456 fetch 1 ,mem_le_arq 
-0584 c28285a3 bbit1 wak ,p_le_prepare_tx_wak 
-0585 20400648 call power_ctrl_pac_succ_incrs 
-0586 6800c78e fetch 1 ,mem_empty_count 
-0587 243a058d nbranch p_le_send_empyt ,blank 
-0588 6800843f fetch 1 ,mem_le_state 
-0589 c3020591 bbit0 lestate_encryption ,p_le_tx_4 
-058a 680082da fetch 1 ,mem_le_rxbuf + 1 
-058b 203a0591 branch p_le_tx_4 ,blank 
-058c 20205664 branch le_send_empty 
+056a 68008456 fetch 1 ,mem_le_arq 
+056b c282857e bbit1 wak ,p_le_prepare_tx_wak 
+056c 20400662 call power_ctrl_pac_succ_incrs 
+056d 6800c78e fetch 1 ,mem_empty_count 
+056e 243a0574 nbranch p_le_send_empyt ,blank 
+056f 6800843f fetch 1 ,mem_le_state 
+0570 c3020578 bbit0 lestate_encryption ,p_le_tx_4 
+0571 680082da fetch 1 ,mem_le_rxbuf + 1 
+0572 203a0578 branch p_le_tx_4 ,blank 
+0573 20205664 branch le_send_empty 
 
 p_le_send_empyt:
-058d 6800c78e fetch 1 ,mem_empty_count 
-058e 1fe0ffff increase -1 ,pdata 
-058f 6000c78e store 1 ,mem_empty_count 
-0590 20205664 branch le_send_empty 
+0574 6800c78e fetch 1 ,mem_empty_count 
+0575 1fe0ffff increase -1 ,pdata 
+0576 6000c78e store 1 ,mem_empty_count 
+0577 20205664 branch le_send_empty 
 
 p_le_tx_4:
-0591 6800c4c4 fetch 1 ,mem_le_pairing_state 
-0592 c0828594 bne flag_le_pairing_after_auth ,p_in_le_tx_4 
-0593 70478e03 jam 3 ,mem_empty_count 
+0578 6800c4c4 fetch 1 ,mem_le_pairing_state 
+0579 c082857b bne flag_le_pairing_after_auth ,p_in_le_tx_4 
+057a 70478e03 jam 3 ,mem_empty_count 
 
 p_in_le_tx_4:
-0594 20405892 call le_fifo_check_nearly_full 
-0595 205a03a1 call p_mouse_data_pull ,blank 
-0596 20205622 branch le_prepare_tx + 4 
-
-p_le_check_tx_retransmit_setmd:
-0597 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-0598 1fe17e03 and pdata ,0x03 ,pdata 
-0599 c1818000 rtnne 0x03 
-059a 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
-059b 207a0000 rtn blank 
-059c 6800c3dd fetch 1 ,mem_le_txlen 
-059d 207a0000 rtn blank 
-059e 6800c3dc fetch 1 ,mem_le_txheader 
-059f 79207e04 set1 md ,pdata 
-05a0 6000c3dc store 1 ,mem_le_txheader 
-05a1 20405650 call le_set_md 
-05a2 20600000 rtn 
+057b 20405892 call le_fifo_check_nearly_full 
+057c 205a03a2 call p_mouse_data_pull ,blank 
+057d 20205622 branch le_prepare_tx + 4 
 
 p_le_prepare_tx_wak:
-05a3 20400597 call p_le_check_tx_retransmit_setmd 
+057e 20400580 call p_le_check_tx_retransmit_setmd 
+057f 2020058c branch p_le_power_ctrl_pac_succ_decrs 
+
+p_le_check_tx_retransmit_setmd:
+0580 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+0581 1fe17e03 and pdata ,0x03 ,pdata 
+0582 c1818000 rtnne 0x03 
+0583 6800c7c3 fetch 1 ,mem_mouse_data_queue_num 
+0584 207a0000 rtn blank 
+0585 6800c3dd fetch 1 ,mem_le_txlen 
+0586 207a0000 rtn blank 
+0587 6800c3dc fetch 1 ,mem_le_txheader 
+0588 79207e04 set1 md ,pdata 
+0589 6000c3dc store 1 ,mem_le_txheader 
+058a 20405650 call le_set_md 
+058b 20600000 rtn 
 
 p_le_power_ctrl_pac_succ_decrs:
-05a4 2020064c branch power_ctrl_pac_succ_decrs 
+058c 20200666 branch power_ctrl_pac_succ_decrs 
 
 p_mouse_le_reconn_write_enable_timer_reinit:
-05a5 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
-05a6 207a0000 rtn blank 
-05a7 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-05a8 1fe17e03 and pdata ,0x03 ,pdata 
-05a9 c1018000 rtneq 0x03 
-05aa 7046c602 jam 2 ,mem_le_start_encrypt_timer 
-05ab 20600000 rtn 
+058d 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
+058e 207a0000 rtn blank 
+058f 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+0590 1fe17e03 and pdata ,0x03 ,pdata 
+0591 c1018000 rtneq 0x03 
+0592 7046c601 jam 1 ,mem_le_start_encrypt_timer 
+0593 20600000 rtn 
 
 p_le_parse:
-05ac c6078000 rtnmark1 mark_old_packet 
-05ad 20405890 call le_fifo_check_full 
-05ae 247a0000 nrtn blank 
-05af 680082d9 fetch 1 ,mem_le_rxbuf 
-05b0 1fe17e03 and pdata ,0x3 ,pdata 
-05b1 6000c50c store 1 ,mem_le_packet_llid 
-05b2 e8c08000 ifetch 1 ,contr 
-05b3 1fe17e1f and pdata ,0x1f ,pdata 
-05b4 6000c50b store 1 ,mem_le_packet_size 
-05b5 207a0000 rtn blank 
-05b6 18c27e00 copy contr ,pdata 
-05b7 6001450d store 2 ,mem_le_payload_ptr 
-05b8 6800c50c fetch 1 ,mem_le_packet_llid 
-05b9 c00185bb beq llid_le_ll ,p_le_parse_ll 
-05ba 2020568d branch le_parse_l2cap 
+0594 c6078000 rtnmark1 mark_old_packet 
+0595 20405890 call le_fifo_check_full 
+0596 247a0000 nrtn blank 
+0597 680082d9 fetch 1 ,mem_le_rxbuf 
+0598 1fe17e03 and pdata ,0x3 ,pdata 
+0599 6000c50c store 1 ,mem_le_packet_llid 
+059a e8c08000 ifetch 1 ,contr 
+059b 1fe17e1f and pdata ,0x1f ,pdata 
+059c 6000c50b store 1 ,mem_le_packet_size 
+059d 207a0000 rtn blank 
+059e 18c27e00 copy contr ,pdata 
+059f 6001450d store 2 ,mem_le_payload_ptr 
+05a0 6800c50c fetch 1 ,mem_le_packet_llid 
+05a1 c00185a3 beq llid_le_ll ,p_le_parse_ll 
+05a2 2020568d branch le_parse_l2cap 
 
 p_le_parse_ll:
-05bb 680082db fetch 1 ,mem_le_rxbuf + 2 
-05bc c00005bf beq ll_connection_update_req ,p_le_parse_connection_update_req 
-05bd c00085c6 beq ll_channel_map_req ,p_le_parse_channel_map_req 
-05be 20205c65 branch le_parse_ll + 1 
-
-p_le_parse_connection_update_req:
-05bf 20405c7b call le_parse_connection_update_req 
-05c0 6800cb63 fetch 1 ,mem_mouse_le_updata_not_accepted_flag 
-05c1 207a0000 rtn blank 
-
-p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset:
-05c2 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
-05c3 6000c172 store 1 ,mem_lpm_mult 
-05c4 6000c7c5 store 1 ,mem_lpm_mult_init 
-05c5 20600000 rtn 
+05a3 680082db fetch 1 ,mem_le_rxbuf + 2 
+05a4 c00085a6 beq ll_channel_map_req ,p_le_parse_channel_map_req 
+05a5 20205c65 branch le_parse_ll + 1 
 
 p_le_parse_channel_map_req:
-05c6 e8c28000 ifetch 5 ,contr 
-05c7 6002c3ce store 5 ,mem_le_new_map 
-05c8 e8c10000 ifetch 2 ,contr 
-05c9 6001045f store 2 ,mem_le_instant 
-05ca 20205c8a branch le_parse_channel_map_req + 7 
+05a6 e8c28000 ifetch 5 ,contr 
+05a7 6002c3ce store 5 ,mem_le_new_map 
+05a8 e8c10000 ifetch 2 ,contr 
+05a9 6001045f store 2 ,mem_le_instant 
+05aa 20205c8a branch le_parse_channel_map_req + 7 
 
 p_le_parse_l2cap:
-05cb e8c10000 ifetch 2 ,contr 
-05cc c00205cf beq le_l2cap_cid_att ,p_le_parse_att 
-05cd c00305fb beq le_l2cap_cid_smp ,p_le_parse_smp 
-05ce 20205698 branch le_parse_l2cap + 11 
+05ab e8c10000 ifetch 2 ,contr 
+05ac c00205af beq le_l2cap_cid_att ,p_le_parse_att 
+05ad c00305dc beq le_l2cap_cid_smp ,p_le_parse_smp 
+05ae 20205698 branch le_parse_l2cap + 11 
 
 p_le_parse_att:
-05cf 20407ea5 call store_contr 
-05d0 204005a5 call p_mouse_le_reconn_write_enable_timer_reinit 
-05d1 20407e9f call get_contr 
-05d2 e8c18000 ifetch 3 ,contr 
-05d3 60018477 store 3 ,mem_le_att_opcode 
-05d4 c00805de beq attop_read_by_group_type_request ,p_le_parse_att_read_by_group_type_request 
-05d5 1fec8400 rshift8 pdata ,temp 
-05d6 18467c24 sub temp ,0x24 ,null 
-05d7 202105ec branch p_le_parse_att1 ,positive 
-05d8 d84047c6 arg mem_mouse_le_uuid_sup ,temp 
-05d9 600944bc storet 2 ,mem_ui_le_uuid_table 
-05da 204058ad call le_parse_att + 2 
-05db 58008e7a setarg 0x8e7a 
-05dc 600144bc store 2 ,mem_ui_le_uuid_table 
-05dd 20600000 rtn 
+05af 20407ea5 call store_contr 
+05b0 2040058d call p_mouse_le_reconn_write_enable_timer_reinit 
+05b1 20407e9f call get_contr 
+05b2 e8c18000 ifetch 3 ,contr 
+05b3 60018477 store 3 ,mem_le_att_opcode 
+05b4 c00805be beq attop_read_by_group_type_request ,p_le_parse_att_read_by_group_type_request 
+05b5 1fec8400 rshift8 pdata ,temp 
+05b6 18467c24 sub temp ,0x24 ,null 
+05b7 202105cc branch p_le_parse_att1 ,positive 
+05b8 d84047c8 arg mem_mouse_le_uuid_sup ,temp 
+05b9 600944bc storet 2 ,mem_ui_le_uuid_table 
+05ba 204058ad call le_parse_att + 2 
+05bb 58008e7a setarg 0x8e7a 
+05bc 600144bc store 2 ,mem_ui_le_uuid_table 
+05bd 20600000 rtn 
 
 p_le_parse_att_read_by_group_type_request:
-05de 204059fa call le_parse_att_read_by_group_type_request 
-05df 20405879 call le_fifo_get_last_tx_ptr 
-05e0 18c08c07 increase 7 ,contr 
-05e1 e8c08000 ifetch 1 ,contr 
-05e2 c1888000 rtnne attop_read_by_group_type_response 
-05e3 18c08c05 increase 5 ,contr 
-05e4 e8c10000 ifetch 2 ,contr 
-05e5 d8401812 arg uuid_service_hids ,temp 
-05e6 98467c00 isub temp ,null 
-05e7 24628000 nrtn zero 
-05e8 18c08dfc increase -4 ,contr 
-05e9 5800002b setarg 0x2b 
-05ea e0c10000 istore 2 ,contr 
-05eb 20600000 rtn 
+05be 204059fa call le_parse_att_read_by_group_type_request 
+05bf 20405879 call le_fifo_get_last_tx_ptr 
+05c0 18c08c07 increase 7 ,contr 
+05c1 e8c08000 ifetch 1 ,contr 
+05c2 c1888000 rtnne attop_read_by_group_type_response 
+05c3 18c08c05 increase 5 ,contr 
+05c4 e8c10000 ifetch 2 ,contr 
+05c5 d8401812 arg uuid_service_hids ,temp 
+05c6 98467c00 isub temp ,null 
+05c7 24628000 nrtn zero 
+05c8 18c08dfc increase -4 ,contr 
+05c9 5800002b setarg 0x2b 
+05ca e0c10000 istore 2 ,contr 
+05cb 20600000 rtn 
 
 p_le_parse_att1:
-05ec c00505ee beq attop_read_request ,p_le_parse_att_read_request 
-05ed 202058ad branch le_parse_att + 2 
+05cc c00505ce beq attop_read_request ,p_le_parse_att_read_request 
+05cd 202058ad branch le_parse_att + 2 
 
 p_le_parse_att_read_request:
-05ee 68090478 fetcht 2 ,mem_le_att_handle 
-05ef 6800c4e9 fetch 1 ,mem_le_configuration 
-05f0 c28185f5 bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
+05ce 68090478 fetcht 2 ,mem_le_att_handle 
+05cf 6800c4e9 fetch 1 ,mem_le_configuration 
+05d0 c28185d5 bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
 
 p_le_send_att_read_response:
-05f1 68010478 fetch 2 ,mem_le_att_handle 
-05f2 c009da76 beq 0x13 ,le_send_att_error_response_notfound 
-05f3 68090478 fetcht 2 ,mem_le_att_handle 
-05f4 202059bf branch le_send_att_read_response 
+05d1 68010478 fetch 2 ,mem_le_att_handle 
+05d2 c009da76 beq 0x13 ,le_send_att_error_response_notfound 
+05d3 68090478 fetcht 2 ,mem_le_att_handle 
+05d4 202059bf branch le_send_att_read_response 
 
 p_le_send_att_read_response_check_auth:
-05f5 680144fa fetch 2 ,mem_le_pairing_handle 
-05f6 98467c00 isub temp ,null 
-05f7 242285f1 nbranch p_le_send_att_read_response ,zero 
-05f8 20405a42 call le_check_encrypt_state 
-05f9 243405f1 nbranch p_le_send_att_read_response ,user 
-05fa 202059e2 branch le_send_att_read_response_check_auth + 5 
+05d5 680144fa fetch 2 ,mem_le_pairing_handle 
+05d6 98467c00 isub temp ,null 
+05d7 242285d1 nbranch p_le_send_att_read_response ,zero 
+05d8 20405a42 call le_check_encrypt_state 
+05d9 243405d1 nbranch p_le_send_att_read_response ,user 
+05da 70047a05 jam att_err_insufficient_authentication ,mem_le_err_code 
+05db 20205a77 branch le_send_att_error_response 
 
 p_le_parse_smp:
-05fb e8c08000 ifetch 1 ,contr 
-05fc c00085ff beq smp_pairing_request ,p_le_parse_smp_pairing_request 
-05fd c0028601 beq smp_pairing_failed ,p_le_parse_smp_pairing_failed 
-05fe 20205af5 branch le_parse_smp + 1 
+05dc e8c08000 ifetch 1 ,contr 
+05dd c00085e0 beq smp_pairing_request ,p_le_parse_smp_pairing_request 
+05de c00285e2 beq smp_pairing_failed ,p_le_parse_smp_pairing_failed 
+05df 20205af6 branch le_parse_smp + 2 
 
 p_le_parse_smp_pairing_request:
-05ff 704b7001 jam 1 ,mem_le_send_security_request_flag 
-0600 20205b09 branch le_parse_smp_pairing_request 
+05e0 704b6e01 jam 1 ,mem_le_send_security_request_flag 
+05e1 20205b09 branch le_parse_smp_pairing_request 
 
 p_le_parse_smp_pairing_failed:
-0601 7011c682 jam zcode_82 ,mem_zcode_temp_param0 
-0602 202006b6 branch p_zcode_entrance 
+05e2 7011c782 jam zcode_82 ,mem_zcode_temp_param0 
+05e3 202006d0 branch p_zcode_entrance 
 
 p_le_adv_not_match:
-0603 68008016 fetch 1 ,mem_le_ch_mapped 
-0604 c093d6f2 bne 39 ,le_adv_loop 
-0605 20400609 call p_le_adv_random_delay 
-0606 d8e00000 arg le_adv_interval_timer ,queue 
-0607 68014482 fetch 2 ,mem_le_adv_interval 
-0608 20207f08 branch timer_init 
+05e4 68008016 fetch 1 ,mem_le_ch_mapped 
+05e5 c093d6f2 bne 39 ,le_adv_loop 
+05e6 204005ea call p_le_adv_random_delay 
+05e7 d8e00000 arg le_adv_interval_timer ,queue 
+05e8 68014482 fetch 2 ,mem_le_adv_interval 
+05e9 20207f08 branch timer_init 
 
 p_le_adv_random_delay:
-0609 180a7e00 random pdata 
-060a d84001ff arg 0x1ff ,temp 
-060b 98417e00 iand temp ,pdata 
-060c 1fe0fefa add pdata ,250 ,pdata 
-060d 20203cbe branch delay 
+05ea 180a7e00 random pdata 
+05eb d84001ff arg 0x1ff ,temp 
+05ec 98417e00 iand temp ,pdata 
+05ed 1fe0fefa add pdata ,250 ,pdata 
+05ee 20203cbe branch delay 
 
 p_le_lpm_setmult:
-060e 7855fc00 disable wake 
-060f 20370611 branch p_le_lpm_set_mult_attempt ,attempt 
-0610 2436d806 nbranch le_lpm_lost ,match 
+05ef 7855fc00 disable wake 
+05f0 203705f2 branch p_le_lpm_set_mult_attempt ,attempt 
+05f1 2436d806 nbranch le_lpm_lost ,match 
 
 p_le_lpm_set_mult_attempt:
-0611 20402bcb call lpm_match 
-0612 680140c1 fetch 2 ,mem_rx_window_sniff 
-0613 6001044d store 2 ,mem_le_receive_window 
-0614 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
-0615 2fe00603 compare 3 ,pdata ,3 
-0616 2420abde nbranch lpm_mult_short ,true 
-0617 202057fb branch le_lpm_set_mult_attempt + 3 
+05f2 20402bcb call lpm_match 
+05f3 680140c1 fetch 2 ,mem_rx_window_sniff 
+05f4 6001044d store 2 ,mem_le_receive_window 
+05f5 6800c6c5 fetch 1 ,mem_le_connect_status_flag 
+05f6 2fe00603 compare 3 ,pdata ,3 
+05f7 2420abde nbranch lpm_mult_short ,true 
+05f8 202057fb branch le_lpm_set_mult_attempt + 3 
 
 p_le_mouse_bb_event_connect_complete:
-0618 7011c622 jam zcode_22 ,mem_zcode_temp_param0 
-0619 202006b6 branch p_zcode_entrance 
+05f9 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
+05fa 247a0000 nrtn blank 
+05fb 68008478 fetch 1 ,mem_le_att_handle 
+05fc 1fe67e1a sub pdata ,26 ,pdata 
+05fd 24628000 nrtn zero 
+05fe 20203d60 branch mouse_le_write_enable 
 
 p_twspi_reset:
-061a 68108077 hfetch 1 ,core_gpio_out3 
-061b 1fe17efd and_into 0xfd ,pdata 
-061c 60108077 hstore 1 ,core_gpio_out3 
-061d 68188073 hfetcht 1 ,core_gpio_oe3 
-061e 18418402 or_into 0x2 ,temp 
-061f 60188073 hstoret 1 ,core_gpio_oe3 
-0620 204063ee call twspi_disable 
-0621 184104fd and_into 0xfd ,temp 
-0622 2000000d nop 13 
-0623 20400627 call p_twspi_enable 
-0624 60188073 hstoret 1 ,core_gpio_oe3 
-0625 20600000 rtn 
+05ff 68108077 hfetch 1 ,core_gpio_out3 
+0600 1fe17efd and_into 0xfd ,pdata 
+0601 60108077 hstore 1 ,core_gpio_out3 
+0602 68188073 hfetcht 1 ,core_gpio_oe3 
+0603 18418402 or_into 0x2 ,temp 
+0604 60188073 hstoret 1 ,core_gpio_oe3 
+0605 204063ee call twspi_disable 
+0606 184104fd and_into 0xfd ,temp 
+0607 2000000d nop 13 
+0608 2040060c call p_twspi_enable 
+0609 60188073 hstoret 1 ,core_gpio_oe3 
+060a 20600000 rtn 
 
 p_spid_init:
-0626 204064dd call spid_init_common 
+060b 204064dd call spid_init_common 
 
 p_twspi_enable:
-0627 68108081 hfetch 1 ,core_gpio_sel1 
-0628 79207e00 set1 0 ,pdata 
-0629 793ffe01 set0 1 ,pdata 
-062a 793ffe03 set0 3 ,pdata 
-062b 60108081 hstore 1 ,core_gpio_sel1 
-062c 20600000 rtn 
+060c 68108081 hfetch 1 ,core_gpio_sel1 
+060d 79207e00 set1 0 ,pdata 
+060e 793ffe01 set0 1 ,pdata 
+060f 793ffe03 set0 3 ,pdata 
+0610 60108081 hstore 1 ,core_gpio_sel1 
+0611 20600000 rtn 
+
+p_send_lmp:
+0612 78547c00 disable user 
+0613 204062c1 call lmo_fifo_process 
+0614 68008048 fetch 1 ,mem_lmp_to_send 
+0615 207a0000 rtn blank 
+0616 c283861b bbit1 7 ,p_send_lmp_escape 
+0617 c001861d beq lmp_accepted ,p_send_lmp_accepted 
+0618 c018861f beq lmp_setup_complete ,p_send_lmp_setup_complete 
+0619 c00b8621 beq lmp_sniff_req ,p_send_lmp_sniff_req 
+061a 20206010 branch send_lmp0 
+
+p_send_lmp_escape:
+061b 7011c720 jam zcode_20 ,mem_zcode_temp_param0 
+061c 202006d0 branch p_zcode_entrance 
+
+p_send_lmp_accepted:
+061d 7011c721 jam zcode_21 ,mem_zcode_temp_param0 
+061e 202006d0 branch p_zcode_entrance 
+
+p_send_lmp_setup_complete:
+061f 704b0301 jam 1 ,mem_bt_send_lmp_setup_complete 
+0620 202061c3 branch send_lmp_setup_complete 
+
+p_send_lmp_sniff_req:
+0621 704b0b04 jam 4 ,mem_mouse_bt_send_first_package_timer 
+0622 202061a4 branch send_lmp_sniff_req 
+
+p_process_conn_sm:
+0623 204062bc call lmo_fifo_check 
+0624 247a0000 nrtn blank 
+
+p_process_conn_sm_continue:
+0625 68008055 fetch 1 ,mem_conn_sm 
+0626 207a0000 rtn blank 
+0627 c0020645 beq conn_sm_send_conn_req ,p_host_create_conn_send_conn_req 
+0628 c008062a beq conn_sm_wait_switch_after_host_connection ,p_host_creat_conn_wait_switch 
+0629 20206320 branch process_conn_sm_continue + 2 
+
+p_host_creat_conn_wait_switch:
+062a 6800c55b fetch 1 ,mem_switch_flag 
+062b c1000000 rtneq switch_flag_init 
+062c c000862e beq switch_flag_accept ,p_host_create_conn_switch_accept 
+062d 2020635f branch host_creat_conn_wait_switch + 3 
+
+p_host_create_conn_switch_accept:
+062e 20748000 rtn master 
+
+p_host_create_conn_auth_pair:
+062f 6800816d fetch 1 ,mem_connection_options 
+0630 c2800632 bbit1 connection_auth ,p_host_create_conn_auth_pair_true 
+0631 20206399 branch host_create_conn_auth_pair + 1 
+
+p_host_create_conn_auth_pair_true:
+0632 6800cb03 fetch 1 ,mem_bt_send_lmp_setup_complete 
+0633 c000e39d beq 1 ,host_create_conn_auth_pair_true 
+0634 6800c1bd fetch 1 ,mem_link_key_exists 
+0635 203a63a9 branch host_create_conn_auth_pair_nokey ,blank 
+0636 680084d1 fetch 1 ,mem_lmp_conn_state 
+0637 c4018000 rtnbit0 sent_setup_complete 
+0638 c4010000 rtnbit0 received_setup_complete 
+0639 6800cb02 fetch 1 ,mem_bt_send_max_slot_req_accept_after_switch 
+063a 207a0000 rtn blank 
+063b 704b0200 jam 0 ,mem_bt_send_max_slot_req_accept_after_switch 
+063c 680204e9 fetch 4 ,mem_aurand_send_delay_time 
+063d d8400014 arg 20 ,temp 
+063e 98408400 iadd temp ,temp 
+063f 1c427e00 copy clkn_bt ,pdata 
+0640 98467c00 isub temp ,null 
+0641 24210643 nbranch p_bt_send_max_slot_req_accept_after_switch_wait ,positive 
+0642 20206349 branch host_create_conn_auth 
+
+p_bt_send_max_slot_req_accept_after_switch_wait:
+0643 704b0201 jam 1 ,mem_bt_send_max_slot_req_accept_after_switch 
+0644 20600000 rtn 
+
+p_host_create_conn_send_conn_req:
+0645 70480b14 jam 20 ,mem_mouse_send_switch_req_timer 
+0646 2020636f branch host_create_conn_send_conn_req 
 
 p_check_51cmd_once_continue:
-062d 204062bc call lmo_fifo_check 
-062e 243a7ddb nbranch check_51cmd_restore ,blank 
-062f 68008a99 fetch 1 ,mem_fifo_temp 
-0630 c584fdd6 bmark0 mark_context ,check_51cmd_check_idle 
-0631 c00f8635 beq bt_cmd_store_reconn_info_le ,p_flash_store_le_reconn_info 
-0632 c0100638 beq bt_cmd_store_reconn_info_bt ,p_flash_store_bd_reconn_info 
-0633 c0090642 beq bt_cmd_le_update_conn ,p_check_51cmd_ble_update_connect_param 
-0634 20207dca branch check_51cmd_once_continue + 2 
+0647 204062bc call lmo_fifo_check 
+0648 243a7ddb nbranch check_51cmd_restore ,blank 
+0649 68008a99 fetch 1 ,mem_fifo_temp 
+064a c584fdd6 bmark0 mark_context ,check_51cmd_check_idle 
+064b c00f864f beq bt_cmd_store_reconn_info_le ,p_flash_store_le_reconn_info 
+064c c0100652 beq bt_cmd_store_reconn_info_bt ,p_flash_store_bd_reconn_info 
+064d c009065c beq bt_cmd_le_update_conn ,p_check_51cmd_ble_update_connect_param 
+064e 20207dca branch check_51cmd_once_continue + 2 
 
 p_flash_store_le_reconn_info:
-0635 70018534 jam rec_4_mode ,mem_record_bt_mode 
-0636 6803044f fetch 6 ,mem_le_plap 
-0637 2020063a branch p_flash_store_reconn_info 
+064f 70018534 jam rec_4_mode ,mem_record_bt_mode 
+0650 6803044f fetch 6 ,mem_le_plap 
+0651 20200654 branch p_flash_store_reconn_info 
 
 p_flash_store_bd_reconn_info:
-0638 70018533 jam rec_3_mode ,mem_record_bt_mode 
-0639 68030040 fetch 6 ,mem_plap 
+0652 70018533 jam rec_3_mode ,mem_record_bt_mode 
+0653 68030040 fetch 6 ,mem_plap 
 
 p_flash_store_reconn_info:
-063a 60030186 store 6 ,mem_temp_lap 
+0654 60030186 store 6 ,mem_temp_lap 
 
 p_mouse_store_remote_bdaddr:
-063b 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-063c c4038000 rtnbit0 mouse_store_eeprom_flag 
-063d d8e00007 arg mouse_store_eeprom_flag ,queue 
-063e 204043d2 call mouse_disable_function_flag 
-063f 204042e8 call mouse_check_device_addr 
+0655 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+0656 c4038000 rtnbit0 mouse_store_eeprom_flag 
+0657 d8e00007 arg mouse_store_eeprom_flag ,queue 
+0658 204043d2 call mouse_disable_function_flag 
+0659 204042e8 call mouse_check_device_addr 
 
 p_mouse_unplug_clean_bdaddr:
-0640 204042fb call mouse_before_store_reconn_info 
-0641 20200304 branch p_mouse_store_flash_device_info 
+065a 204042fb call mouse_before_store_reconn_info 
+065b 2020030f branch p_mouse_store_flash_device_info 
 
 p_check_51cmd_ble_update_connect_param:
-0642 20405890 call le_fifo_check_full 
-0643 247a0000 nrtn blank 
-0644 20205abf branch le_l2cap_tx_update_req 
+065c 20405890 call le_fifo_check_full 
+065d 247a0000 nrtn blank 
+065e 20205abf branch le_l2cap_tx_update_req 
 
 power_ctrl_pac_succ_cnt_init:
-0645 704d6f01 jam 1 ,mem_power_ctrl_level 
-0646 704d6c00 jam 0 ,mem_power_ctrl_pac_succ_cnt 
-0647 20600000 rtn 
+065f 704d7501 jam 1 ,mem_power_ctrl_level 
+0660 704d7200 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+0661 20600000 rtn 
 
 power_ctrl_pac_succ_incrs:
-0648 6800cd6c fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0649 1fe0fe01 increase 1 ,pdata 
-064a 6000cd6c store 1 ,mem_power_ctrl_pac_succ_cnt 
-064b 20600000 rtn 
+0662 6800cd72 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0663 1fe0fe01 increase 1 ,pdata 
+0664 6000cd72 store 1 ,mem_power_ctrl_pac_succ_cnt 
+0665 20600000 rtn 
 
 power_ctrl_pac_succ_decrs:
-064c 6800cd6c fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-064d 1fe67c02 sub pdata ,2 ,null 
-064e 24410654 ncall power_ctrl_pac_succ_cnt_reinit ,positive 
-064f 6800cd6c fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0650 c1000000 rtneq 0 
-0651 1fe0ffff increase -1 ,pdata 
-0652 6000cd6c store 1 ,mem_power_ctrl_pac_succ_cnt 
-0653 20600000 rtn 
+0666 6800cd72 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0667 1fe67c02 sub pdata ,2 ,null 
+0668 2441066e ncall power_ctrl_pac_succ_cnt_reinit ,positive 
+0669 6800cd72 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+066a c1000000 rtneq 0 
+066b 1fe0ffff increase -1 ,pdata 
+066c 6000cd72 store 1 ,mem_power_ctrl_pac_succ_cnt 
+066d 20600000 rtn 
 
 power_ctrl_pac_succ_cnt_reinit:
-0654 704d6c03 jam 3 ,mem_power_ctrl_pac_succ_cnt 
-0655 20600000 rtn 
+066e 704d7203 jam 3 ,mem_power_ctrl_pac_succ_cnt 
+066f 20600000 rtn 
 
 power_ctrl_start:
-0656 68014682 fetch 2 ,mem_ui_state_map 
-0657 c3858000 rtnbit1 ui_state_ble_adv 
-0658 c3838000 rtnbit1 ui_state_bt_reconnect 
-0659 c3830000 rtnbit1 ui_state_bt_discovery 
-065a da204cf5 arg mem_rssi_signal_buf ,rega 
-065b 2040028e call p_rssi_average 
-065c 6008cd6d storet 1 ,mem_rssi_avg_received 
-065d 58000082 setarg rssi_dis_max_24g 
-065e c5130660 bmark1 mark_24g ,power_ctrl_start_next 
-065f 58000080 setarg rssi_dis_max_ble 
+0670 68014682 fetch 2 ,mem_ui_state_map 
+0671 c3858000 rtnbit1 ui_state_ble_adv 
+0672 c3838000 rtnbit1 ui_state_bt_reconnect 
+0673 c3830000 rtnbit1 ui_state_bt_discovery 
+0674 da204cfb arg mem_rssi_signal_buf ,rega 
+0675 20400253 call p_rssi_average 
+0676 6008cd73 storet 1 ,mem_rssi_avg_received 
+0677 58000082 setarg rssi_dis_max_24g 
+0678 c513067a bmark1 mark_24g ,power_ctrl_start_next 
+0679 58000080 setarg rssi_dis_max_ble 
 
 power_ctrl_start_next:
-0660 98467c00 isub temp ,null 
-0661 24210678 nbranch power_ctrl_txpower_incrs_force ,positive 
-0662 6800cd6c fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0663 1fe67c02 sub pdata ,2 ,null 
-0664 24210668 nbranch power_ctrl_txpower_decrs_check ,positive 
-0665 6800cd6c fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0666 c0000679 beq 0 ,power_ctrl_txpower_incrs 
-0667 20600000 rtn 
+067a 98467c00 isub temp ,null 
+067b 24210692 nbranch power_ctrl_txpower_incrs_force ,positive 
+067c 6800cd72 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+067d 1fe67c02 sub pdata ,2 ,null 
+067e 24210682 nbranch power_ctrl_txpower_decrs_check ,positive 
+067f 6800cd72 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0680 c0000693 beq 0 ,power_ctrl_txpower_incrs 
+0681 20600000 rtn 
 
 power_ctrl_txpower_decrs_check:
-0668 6800cd6c fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-0669 c1990000 rtnne 50 
-066a 704d6c00 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+0682 6800cd72 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0683 c1900000 rtnne 32 
+0684 704d7200 jam 0 ,mem_power_ctrl_pac_succ_cnt 
 
 power_ctrl_txpower_decrs:
-066b 6808cd6d fetcht 1 ,mem_rssi_avg_received 
-066c 58000077 setarg rssi_dis_min_24g 
-066d c513066f bmark1 mark_24g ,power_ctrl_txpower_decrs_next 
-066e 58000075 setarg rssi_dis_min_ble 
+0685 6808cd73 fetcht 1 ,mem_rssi_avg_received 
+0686 58000077 setarg rssi_dis_min_24g 
+0687 c5130689 bmark1 mark_24g ,power_ctrl_txpower_decrs_next 
+0688 58000075 setarg rssi_dis_min_ble 
 
 power_ctrl_txpower_decrs_next:
-066f 98467c00 isub temp ,null 
-0670 24610000 nrtn positive 
-0671 6800cd6f fetch 1 ,mem_power_ctrl_level 
-0672 c0000680 beq 0 ,power_ctrl_decrs_level0 
-0673 1fe0ffff increase -1 ,pdata 
-0674 6000cd6f store 1 ,mem_power_ctrl_level 
-0675 c0000680 beq 0 ,power_ctrl_decrs_level0 
+0689 98467c00 isub temp ,null 
+068a 24610000 nrtn positive 
+068b 6800cd75 fetch 1 ,mem_power_ctrl_level 
+068c c000069a beq 0 ,power_ctrl_decrs_level0 
+068d 1fe0ffff increase -1 ,pdata 
+068e 6000cd75 store 1 ,mem_power_ctrl_level 
+068f c000069a beq 0 ,power_ctrl_decrs_level0 
 
 power_ctrl_decrs_level1:
 
 power_ctrl_incrs_level1:
-0676 7041de00 jam tx_power_0db ,mem_tx_power 
-0677 20600000 rtn 
+0690 7041de00 jam tx_power_0db ,mem_tx_power 
+0691 20600000 rtn 
 
 power_ctrl_txpower_incrs_force:
-0678 704d6c00 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+0692 704d7200 jam 0 ,mem_power_ctrl_pac_succ_cnt 
 
 power_ctrl_txpower_incrs:
-0679 6800cd6f fetch 1 ,mem_power_ctrl_level 
-067a c001067e beq 2 ,power_ctrl_incrs_level2 
-067b 1fe0fe01 increase 1 ,pdata 
-067c 6000cd6f store 1 ,mem_power_ctrl_level 
-067d c0008676 beq 1 ,power_ctrl_incrs_level1 
+0693 6800cd75 fetch 1 ,mem_power_ctrl_level 
+0694 c0010698 beq 2 ,power_ctrl_incrs_level2 
+0695 1fe0fe01 increase 1 ,pdata 
+0696 6000cd75 store 1 ,mem_power_ctrl_level 
+0697 c0008690 beq 1 ,power_ctrl_incrs_level1 
 
 power_ctrl_incrs_level2:
-067e 7041de02 jam tx_power_5db ,mem_tx_power 
-067f 20600000 rtn 
+0698 7041de02 jam tx_power_5db ,mem_tx_power 
+0699 20600000 rtn 
 
 power_ctrl_decrs_level0:
-0680 7041de04 jam tx_power_f5db ,mem_tx_power 
-0681 20600000 rtn 
+069a 7041de04 jam tx_power_f5db ,mem_tx_power 
+069b 20600000 rtn 
 
 p_set_freq_tx:
-0682 60088017 storet 1 ,mem_last_freq 
-0683 1840a200 add temp ,0 ,rega 
-0684 20402981 call rf_write_freq 
-0685 58000500 setarg param_pll_setup 
-0686 20402a8f call sleep 
+069c 60088017 storet 1 ,mem_last_freq 
+069d 1840a200 add temp ,0 ,rega 
+069e 20402981 call rf_write_freq 
+069f 58000500 setarg param_pll_setup 
+06a0 20402a8f call sleep 
 
 p_rf_tx_enable:
-0687 70890601 jam 0x1 ,rfen_adc 
-0688 7089003c jam 0x3c ,rfen_rx 
-0689 708901e0 jam 0xe0 ,rfen_tx 
-068a 2000000a nop 10 
-068b 70890201 jam 0x01 ,rfen_mdm 
-068c 7089023d jam 0x3d ,rfen_mdm 
-068d 2000000a nop 10 
-068e 708903b7 jam 0xb7 ,rfen_sn 
-068f 2000000a nop 10 
-0690 7089027d jam 0x7d ,rfen_mdm 
-0691 6800c1de fetch 1 ,mem_tx_power 
-0692 c001069a beq tx_power_5db ,p_set_tx_power_5db 
-0693 c002069f beq tx_power_f5db ,p_set_tx_power_f5db 
-0694 c01006ae beq tx_power_pair ,p_set_tx_power_pair 
+06a1 70890601 jam 0x1 ,rfen_adc 
+06a2 7089003c jam 0x3c ,rfen_rx 
+06a3 708901e0 jam 0xe0 ,rfen_tx 
+06a4 2000000a nop 10 
+06a5 70890201 jam 0x01 ,rfen_mdm 
+06a6 7089023d jam 0x3d ,rfen_mdm 
+06a7 2000000a nop 10 
+06a8 708903b7 jam 0xb7 ,rfen_sn 
+06a9 2000000a nop 10 
+06aa 7089027d jam 0x7d ,rfen_mdm 
+06ab 6800c1de fetch 1 ,mem_tx_power 
+06ac c00106b4 beq tx_power_5db ,p_set_tx_power_5db 
+06ad c00206b9 beq tx_power_f5db ,p_set_tx_power_f5db 
+06ae c01006c8 beq tx_power_pair ,p_set_tx_power_pair 
 
 p_set_tx_power_0db:
-0695 204006a4 call p_rx_low_sens 
-0696 708955d0 jam 0xd0 ,0x8955 
-0697 708956e0 jam 0xe0 ,0x8956 
-0698 7089586c jam 0x6c ,0x8958 
-0699 2020294b branch set_tx_power_0db 
+06af 204006be call p_rx_low_sens 
+06b0 708955d0 jam 0xd0 ,0x8955 
+06b1 708956e0 jam 0xe0 ,0x8956 
+06b2 7089586c jam 0x6c ,0x8958 
+06b3 2020294b branch set_tx_power_0db 
 
 p_set_tx_power_5db:
-069a 204006a9 call p_rx_high_sens 
-069b 708955d0 jam 0xd0 ,0x8955 
-069c 708956e0 jam 0xe0 ,0x8956 
-069d 7089583c jam 0x3c ,0x8958 
-069e 20202953 branch set_tx_power_5db 
+06b4 204006c3 call p_rx_high_sens 
+06b5 708955d0 jam 0xd0 ,0x8955 
+06b6 708956e0 jam 0xe0 ,0x8956 
+06b7 7089583c jam 0x3c ,0x8958 
+06b8 20202953 branch set_tx_power_5db 
 
 p_set_tx_power_f5db:
-069f 204006a4 call p_rx_low_sens 
-06a0 708955d0 jam 0xd0 ,0x8955 
-06a1 708956c0 jam 0xc0 ,0x8956 
-06a2 7089586c jam 0x6c ,0x8958 
-06a3 2020295b branch set_tx_power_f5db 
+06b9 204006be call p_rx_low_sens 
+06ba 708955d0 jam 0xd0 ,0x8955 
+06bb 708956c0 jam 0xc0 ,0x8956 
+06bc 7089586c jam 0x6c ,0x8958 
+06bd 2020295b branch set_tx_power_f5db 
 
 p_rx_low_sens:
-06a4 70894c5b jam 0x5b ,0x894c 
-06a5 70894d96 jam 0x96 ,0x894d 
-06a6 70894e2c jam 0x2c ,0x894e 
-06a7 70894f46 jam 0x46 ,0x894f 
-06a8 20600000 rtn 
+06be 70894c5b jam 0x5b ,0x894c 
+06bf 70894d96 jam 0x96 ,0x894d 
+06c0 70894e2c jam 0x2c ,0x894e 
+06c1 70894f46 jam 0x46 ,0x894f 
+06c2 20600000 rtn 
 
 p_rx_high_sens:
-06a9 70894cfb jam 0xfb ,0x894c 
-06aa 70894def jam 0xef ,0x894d 
-06ab 70894eec jam 0xec ,0x894e 
-06ac 70894f5e jam 0x5e ,0x894f 
-06ad 20600000 rtn 
+06c3 70894cfb jam 0xfb ,0x894c 
+06c4 70894def jam 0xef ,0x894d 
+06c5 70894eec jam 0xec ,0x894e 
+06c6 70894f5e jam 0x5e ,0x894f 
+06c7 20600000 rtn 
 
 p_set_tx_power_pair:
-06ae 708956c2 jam 0xc2 ,0x8956 
-06af 708955d0 jam 0xd0 ,0x8955 
-06b0 20600000 rtn 
+06c8 708956c2 jam 0xc2 ,0x8956 
+06c9 708955d0 jam 0xd0 ,0x8955 
+06ca 20600000 rtn 
 
 p_shutdown_radio:
-06b1 18002a08 force 8 ,radio_ctrl 
-06b2 202028fa branch shutdown_radio + 1 
+06cb 18002a08 force 8 ,radio_ctrl 
+06cc 202028fa branch shutdown_radio + 1 
 
 p_initialize_radio_cont:
-06b3 20402978 call initialize_radio_cont + 1 
-06b4 70804205 jam clksel_dpll ,core_clksel 
-06b5 20600000 rtn 
+06cd 20402978 call initialize_radio_cont + 1 
+06ce 70804205 jam clksel_dpll ,core_clksel 
+06cf 20600000 rtn 
 
 p_zcode_entrance:
-06b6 680891c6 fetcht 1 ,mem_zcode_temp_param0 
-06b7 18518400 rshift4 temp ,temp 
-06b8 6800cb54 fetch 1 ,mem_zcode_current_number 
-06b9 98467c00 isub temp ,null 
-06ba 202286d5 branch p_zcode_run ,zero 
-06bb 6008cb54 storet 1 ,mem_zcode_current_number 
-06bc 18408401 increase 1 ,temp 
-06bd 58000100 setarg zcode_buff_size 
-06be 984f8400 imul32 temp ,temp 
-06bf 6801cb55 fetch 3 ,mem_xip_flash_offset 
-06c0 98467e00 isub temp ,pdata 
-06c1 6809cb58 fetcht 3 ,mem_flash_start_addr 
-06c2 9840fe00 iadd temp ,pdata 
-06c3 1fe0fffb increase -5 ,pdata 
-06c4 6001cb5b store 3 ,mem_flash_address 
-06c5 20400342 call p_flash_release_deep_power_down 
+06d0 680891c7 fetcht 1 ,mem_zcode_temp_param0 
+06d1 18518400 rshift4 temp ,temp 
+06d2 6800cb51 fetch 1 ,mem_zcode_current_number 
+06d3 98467c00 isub temp ,null 
+06d4 202286ef branch p_zcode_run ,zero 
+06d5 6008cb51 storet 1 ,mem_zcode_current_number 
+06d6 18408401 increase 1 ,temp 
+06d7 58000100 setarg zcode_buff_size 
+06d8 984f8400 imul32 temp ,temp 
+06d9 6801cb52 fetch 3 ,mem_xip_flash_offset 
+06da 98467e00 isub temp ,pdata 
+06db 6809cb55 fetcht 3 ,mem_flash_start_addr 
+06dc 9840fe00 iadd temp ,pdata 
+06dd 1fe0fffb increase -5 ,pdata 
+06de 6001cb58 store 3 ,mem_flash_address 
+06df 20400351 call p_flash_release_deep_power_down 
 
 p_zcode_read_loop:
-06c6 6801cb5b fetch 3 ,mem_flash_address 
-06c7 d8400100 arg zcode_buff_size ,temp 
-06c8 da201f00 arg mem_zcode_buff ,rega 
-06c9 20406562 call spid_read_flash 
-06ca 68021f00 fetch 4 ,mem_zcode_buff 
-06cb 680a4b5e fetcht 4 ,mem_zcode_head 
-06cc 98467c00 isub temp ,null 
-06cd 242286c6 nbranch p_zcode_read_loop ,zero 
-06ce 20400312 call p_mouse_spi_init 
-06cf 58001f00 setarg mem_zcode_buff 
-06d0 60014199 store 2 ,mem_patch_ptr 
-06d1 70419b40 jam zcode_code_size ,mem_patch_len 
-06d2 204064ca call load_ucode 
-06d3 58000000 setarg 0 
-06d4 60024199 store 4 ,mem_patch_ptr 
+06e0 6801cb58 fetch 3 ,mem_flash_address 
+06e1 d8400100 arg zcode_buff_size ,temp 
+06e2 da201f00 arg mem_zcode_buff ,rega 
+06e3 20406562 call spid_read_flash 
+06e4 68021f00 fetch 4 ,mem_zcode_buff 
+06e5 680a4b5b fetcht 4 ,mem_zcode_head 
+06e6 98467c00 isub temp ,null 
+06e7 242286e0 nbranch p_zcode_read_loop ,zero 
+06e8 204002a9 call p_mouse_spi_init 
+06e9 58001f00 setarg mem_zcode_buff 
+06ea 60014199 store 2 ,mem_patch_ptr 
+06eb 70419b40 jam zcode_code_size ,mem_patch_len 
+06ec 204064ca call load_ucode 
+06ed 58000000 setarg 0 
+06ee 60024199 store 4 ,mem_patch_ptr 
 
 p_zcode_run:
-06d5 680091c6 fetch 1 ,mem_zcode_temp_param0 
-06d6 20200001 branch p_zcode 
+06ef 680091c7 fetch 1 ,mem_zcode_temp_param0 
+06f0 20200001 branch p_zcode 
 
 p_drawing_optima:
-06d7 6802469b fetch 4 ,mem_mouse_x 
-06d8 207a0000 rtn blank 
-06d9 2040073c call p_data_abs_check 
-06da 58000003 setarg 0x03 
-06db 20400732 call p_pdata_greater_than_check 
-06dc 205a072e call p_disable_asm ,blank 
-06dd 245a0730 ncall p_enable_asm ,blank 
-06de 58000002 setarg 0x02 
-06df 20400737 call p_data_less_than_check 
-06e0 205a072e call p_disable_asm ,blank 
-06e1 6800cb0d fetch 1 ,mem_mouse_asm_flag 
-06e2 c00086e6 beq 1 ,p_drawing_optima_modify 
+06f1 6802469b fetch 4 ,mem_mouse_x 
+06f2 207a0000 rtn blank 
+06f3 20400757 call p_data_abs_check 
+06f4 58000003 setarg 0x03 
+06f5 2040074d call p_pdata_greater_than_check 
+06f6 205a0749 call p_disable_asm ,blank 
+06f7 245a074b ncall p_enable_asm ,blank 
+06f8 58000002 setarg 0x02 
+06f9 20400752 call p_data_less_than_check 
+06fa 205a0749 call p_disable_asm ,blank 
+06fb 6800cb0d fetch 1 ,mem_mouse_asm_flag 
+06fc c0008700 beq 1 ,p_drawing_optima_modify 
 
 p_drawing_optima_init:
-06e3 df200005 arg 5 ,loopcnt 
-06e4 d8a04b0d arg mem_mouse_asm_flag ,contw 
-06e5 20207ed4 branch clear_mem 
+06fd df200005 arg 5 ,loopcnt 
+06fe d8a04b0d arg mem_mouse_asm_flag ,contw 
+06ff 20207ed4 branch clear_mem 
 
 p_drawing_optima_modify:
-06e6 68014b0e fetch 2 ,mem_mouse_x_pre 
-06e7 600111be store 2 ,mem_data_pre 
-06e8 6801469b fetch 2 ,mem_mouse_x 
-06e9 600111c0 store 2 ,mem_data_current 
-06ea 204006f8 call p_drawing_optima_data_x 
-06eb 680111be fetch 2 ,mem_data_pre 
-06ec 60014b0e store 2 ,mem_mouse_x_pre 
-06ed 680111c0 fetch 2 ,mem_data_current 
-06ee 6001469b store 2 ,mem_mouse_x 
-06ef 68014b10 fetch 2 ,mem_mouse_y_pre 
-06f0 600111be store 2 ,mem_data_pre 
-06f1 6801469d fetch 2 ,mem_mouse_y 
-06f2 600111c0 store 2 ,mem_data_current 
-06f3 20400700 call p_drawing_optima_data_y 
-06f4 680111be fetch 2 ,mem_data_pre 
-06f5 60014b10 store 2 ,mem_mouse_y_pre 
-06f6 680111c0 fetch 2 ,mem_data_current 
-06f7 6001469d store 2 ,mem_mouse_y 
+0700 68014b0e fetch 2 ,mem_mouse_x_pre 
+0701 600111be store 2 ,mem_data_pre 
+0702 6801469b fetch 2 ,mem_mouse_x 
+0703 600111c0 store 2 ,mem_data_current 
+0704 20400713 call p_drawing_optima_data_x 
+0705 680111be fetch 2 ,mem_data_pre 
+0706 60014b0e store 2 ,mem_mouse_x_pre 
+0707 680111c0 fetch 2 ,mem_data_current 
+0708 6001469b store 2 ,mem_mouse_x 
+0709 68014b10 fetch 2 ,mem_mouse_y_pre 
+070a 600111be store 2 ,mem_data_pre 
+070b 6801469d fetch 2 ,mem_mouse_y 
+070c 600111c0 store 2 ,mem_data_current 
+070d 2040071b call p_drawing_optima_data_y 
+070e 680111be fetch 2 ,mem_data_pre 
+070f 60014b10 store 2 ,mem_mouse_y_pre 
+0710 680111c0 fetch 2 ,mem_data_current 
+0711 6001469d store 2 ,mem_mouse_y 
+0712 20600000 rtn 
 
 p_drawing_optima_data_x:
-06f8 680111be fetch 2 ,mem_data_pre 
-06f9 680911c0 fetcht 2 ,mem_data_current 
-06fa 9840fe00 iadd temp ,pdata 
-06fb 6808cbaa fetcht 1 ,mem_mouse_data_xtemp 
-06fc 9840fe00 iadd temp ,pdata 
-06fd 1fe10401 and pdata ,0x01 ,temp 
-06fe 6008cbaa storet 1 ,mem_mouse_data_xtemp 
-06ff 20200709 branch p_drawing_optima_data 
+0713 680111be fetch 2 ,mem_data_pre 
+0714 680911c0 fetcht 2 ,mem_data_current 
+0715 9840fe00 iadd temp ,pdata 
+0716 6808cb75 fetcht 1 ,mem_mouse_data_xtemp 
+0717 9840fe00 iadd temp ,pdata 
+0718 1fe10401 and pdata ,0x01 ,temp 
+0719 6008cb75 storet 1 ,mem_mouse_data_xtemp 
+071a 20200723 branch p_drawing_optima_data 
 
 p_drawing_optima_data_y:
-0700 680111be fetch 2 ,mem_data_pre 
-0701 680911c0 fetcht 2 ,mem_data_current 
-0702 9840fe00 iadd temp ,pdata 
-0703 6808cbab fetcht 1 ,mem_mouse_data_ytemp 
-0704 9840fe00 iadd temp ,pdata 
-0705 1fe10401 and pdata ,0x01 ,temp 
-0706 6008cbab storet 1 ,mem_mouse_data_ytemp 
-0707 20200709 branch p_drawing_optima_data 
-0708 20600000 rtn 
+071b 680111be fetch 2 ,mem_data_pre 
+071c 680911c0 fetcht 2 ,mem_data_current 
+071d 9840fe00 iadd temp ,pdata 
+071e 6808cb76 fetcht 1 ,mem_mouse_data_ytemp 
+071f 9840fe00 iadd temp ,pdata 
+0720 1fe10401 and pdata ,0x01 ,temp 
+0721 6008cb76 storet 1 ,mem_mouse_data_ytemp 
+0722 20200723 branch p_drawing_optima_data 
 
 p_drawing_optima_data:
-0709 600191c2 store 3 ,mem_data_sum 
-070a 2feffe10 isolate1 16 ,pdata 
-070b 20208713 branch p_data_sum_overflow ,true 
-070c 680091c3 fetch 1 ,mem_data_sum + 1 
-070d c07f871a beq 0xff ,p_data_sum_n 
-070e 680091c2 fetch 1 ,mem_data_sum 
+0723 600191c2 store 3 ,mem_data_sum 
+0724 2feffe10 isolate1 16 ,pdata 
+0725 2020872d branch p_data_sum_overflow ,true 
+0726 680091c3 fetch 1 ,mem_data_sum + 1 
+0727 c07f8734 beq 0xff ,p_data_sum_n 
+0728 680091c2 fetch 1 ,mem_data_sum 
 
 p_data_store_pre:
-070f 1fe37e00 rshift pdata ,pdata 
-0710 600111be store 2 ,mem_data_pre 
-0711 600111c0 store 2 ,mem_data_current 
-0712 20600000 rtn 
+0729 1fe37e00 rshift pdata ,pdata 
+072a 600111be store 2 ,mem_data_pre 
+072b 600111c0 store 2 ,mem_data_current 
+072c 20600000 rtn 
 
 p_data_sum_overflow:
-0713 680091c3 fetch 1 ,mem_data_sum + 1 
-0714 c0000717 beq 0 ,p_data_sum_overflow_p 
-0715 680191c2 fetch 3 ,mem_data_sum 
-0716 2020070f branch p_data_store_pre 
+072d 680091c3 fetch 1 ,mem_data_sum + 1 
+072e c0000731 beq 0 ,p_data_sum_overflow_p 
+072f 680191c2 fetch 3 ,mem_data_sum 
+0730 20200729 branch p_data_store_pre 
 
 p_data_sum_overflow_p:
-0717 7011c400 jam 0 ,mem_data_sum + 2 
-0718 680091c2 fetch 1 ,mem_data_sum 
-0719 2020070f branch p_data_store_pre 
+0731 7011c400 jam 0 ,mem_data_sum + 2 
+0732 680091c2 fetch 1 ,mem_data_sum 
+0733 20200729 branch p_data_store_pre 
 
 p_data_sum_n:
-071a 680091c2 fetch 1 ,mem_data_sum 
-071b 20400725 call p_pdata_get_half 
-071c 600091be store 1 ,mem_data_pre 
-071d 600091c0 store 1 ,mem_data_current 
-071e 203a0723 branch p_data_zero ,blank 
-071f 580000ff setarg 0xff 
+0734 680091c2 fetch 1 ,mem_data_sum 
+0735 2040073f call p_pdata_get_half 
+0736 600091be store 1 ,mem_data_pre 
+0737 600091c0 store 1 ,mem_data_current 
+0738 203a073d branch p_data_zero ,blank 
+0739 580000ff setarg 0xff 
 
 p_data_set_direction:
-0720 600091bf store 1 ,mem_data_pre + 1 
-0721 600091c1 store 1 ,mem_data_current + 1 
-0722 20600000 rtn 
+073a 600091bf store 1 ,mem_data_pre + 1 
+073b 600091c1 store 1 ,mem_data_current + 1 
+073c 20600000 rtn 
 
 p_data_zero:
-0723 58000000 setarg 0 
-0724 20200720 branch p_data_set_direction 
+073d 58000000 setarg 0 
+073e 2020073a branch p_data_set_direction 
 
 p_pdata_get_half:
-0725 2040072a call p_pdata_invert 
-0726 1fe37e00 rshift pdata ,pdata 
+073f 20400745 call p_pdata_invert 
+0740 1fe37e00 rshift pdata ,pdata 
 
 p_pdata_get_new_value:
-0727 2040072b call p_rega_in_out 
-0728 1fe67e00 sub pdata ,0 ,pdata 
-0729 20600000 rtn 
+0741 20400746 call p_rega_in_out 
+0742 1fe67e00 sub pdata ,0 ,pdata 
+0743 600091c5 store 1 ,mem_data_value 
+0744 20600000 rtn 
 
 p_pdata_invert:
-072a 1fe67e00 sub pdata ,0 ,pdata 
+0745 1fe67e00 sub pdata ,0 ,pdata 
 
 p_rega_in_out:
-072b 60008aae store 1 ,mem_rega 
-072c 68008aae fetch 1 ,mem_rega 
-072d 20600000 rtn 
+0746 60008aae store 1 ,mem_rega 
+0747 68008aae fetch 1 ,mem_rega 
+0748 20600000 rtn 
 
 p_disable_asm:
-072e 704b0d00 jam 0 ,mem_mouse_asm_flag 
-072f 20600000 rtn 
+0749 704b0d00 jam 0 ,mem_mouse_asm_flag 
+074a 20600000 rtn 
 
 p_enable_asm:
-0730 704b0d01 jam 1 ,mem_mouse_asm_flag 
-0731 20600000 rtn 
+074b 704b0d01 jam 1 ,mem_mouse_asm_flag 
+074c 20600000 rtn 
 
 p_pdata_greater_than_check:
-0732 9a267c00 isub rega ,null 
-0733 24217fef nbranch disable_blank ,positive 
-0734 9a467c00 isub regb ,null 
-0735 24217fef nbranch disable_blank ,positive 
-0736 20207ff1 branch enable_blank 
+074d 9a267c00 isub rega ,null 
+074e 24217fef nbranch disable_blank ,positive 
+074f 9a467c00 isub regb ,null 
+0750 24217fef nbranch disable_blank ,positive 
+0751 20207ff1 branch enable_blank 
 
 p_data_less_than_check:
-0737 9a267c00 isub rega ,null 
-0738 24610000 nrtn positive 
-0739 9a467c00 isub regb ,null 
-073a 24610000 nrtn positive 
-073b 20207ff1 branch enable_blank 
+0752 9a267c00 isub rega ,null 
+0753 24610000 nrtn positive 
+0754 9a467c00 isub regb ,null 
+0755 24610000 nrtn positive 
+0756 20207ff1 branch enable_blank 
 
 p_data_abs_check:
-073c 6801469b fetch 2 ,mem_mouse_x 
-073d 20400743 call p_data_abs 
-073e 1fe22200 copy pdata ,rega 
-073f 6801469d fetch 2 ,mem_mouse_y 
-0740 20400743 call p_data_abs 
-0741 1fe22400 copy pdata ,regb 
-0742 20600000 rtn 
+0757 6801469b fetch 2 ,mem_mouse_x 
+0758 2040075e call p_data_abs 
+0759 1fe22200 copy pdata ,rega 
+075a 6801469d fetch 2 ,mem_mouse_y 
+075b 2040075e call p_data_abs 
+075c 1fe22400 copy pdata ,regb 
+075d 20600000 rtn 
 
 p_data_abs:
-0743 600111c0 store 2 ,mem_data_current 
-0744 680091c1 fetch 1 ,mem_data_current + 1 
-0745 c07f8749 beq 0xff ,p_data_reversal 
-0746 680091c0 fetch 1 ,mem_data_current 
+075e 600111c0 store 2 ,mem_data_current 
+075f 680091c1 fetch 1 ,mem_data_current + 1 
+0760 c07f8764 beq 0xff ,p_data_reversal 
+0761 680091c0 fetch 1 ,mem_data_current 
 
 p_data_abs_store:
-0747 1fe17eff and_into 0xff ,pdata 
-0748 20600000 rtn 
+0762 1fe17eff and_into 0xff ,pdata 
+0763 20600000 rtn 
 
 p_data_reversal:
-0749 680111c0 fetch 2 ,mem_data_current 
-074a 1fe67e00 sub pdata ,0 ,pdata 
-074b 20200747 branch p_data_abs_store 
+0764 680111c0 fetch 2 ,mem_data_current 
+0765 1fe67e00 sub pdata ,0 ,pdata 
+0766 20200762 branch p_data_abs_store 
               org 0x2000
 
 start:
@@ -7087,6 +7096,8 @@
 2d89 20407f9c call callback_func 
 2d8a 1a6084b6 add regc ,offset_24g_enter_hibernate ,temp 
 2d8b e8440000 ifetch 8 ,temp 
+
+g24_lpm_long_sleep_next:
 2d8c 20407f49 call clk2lpo 
 2d8d 600a415b storet 4 ,mem_sleep_counter 
 2d8e 20202b2a branch lpm_sleep 
@@ -12781,8 +12792,6 @@
 3d6d 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
 3d6e c1000000 rtneq dpi_button_state_down 
 3d6f 7046b600 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
-
-mouse_dpi_down_setting:
 3d70 6800c77a fetch 1 ,mem_mouse_dpi 
 3d71 1fe0fe01 increase 1 ,pdata 
 3d72 1fe17e03 and pdata ,0x03 ,pdata 
@@ -13567,8 +13576,6 @@
 3fc5 6808c6f3 fetcht 1 ,mem_sensor_data_gpio 
 3fc6 2040681d call gpio_get_bit 
 3fc7 24608000 nrtn true 
-
-mouse_p3212_sensor_motion_1:
 3fc8 58000000 setarg pan_reg_pid_l 
 3fc9 20406414 call twspi_read 
 3fca c09840d1 bne p32xx_id1 ,mouse_twspi_reset 
@@ -20451,6 +20458,8 @@
 53d7 68018467 fetch 3 ,mem_le_crcinit 
 53d8 98001e00 iforce crc24_init 
 53d9 68008016 fetch 1 ,mem_le_ch_mapped 
+
+le_prep2:
 53da 1fed8400 reverse pdata ,temp 
 53db 79200401 set1 1 ,temp 
 53dc 18431c00 rshift temp ,white_init 
@@ -35236,694 +35245,769 @@
               org 0x10001
 
 z_entrance0:
-10001 c0008003 beq zcode_01 ,z_mouse_bb_disconnected 
+10001 c0000003 beq zcode_00 ,z_page_wait_fhs_reply_ok 
 10002 20600000 rtn 
 
+z_page_wait_fhs_reply_ok:
+10003 6800800e fetch 1 ,mem_page_rcv_fhs 
+10004 1fe0fe01 increase 1 ,pdata 
+10005 6000800e store 1 ,mem_page_rcv_fhs 
+10006 20402435 call prepare_newconn 
+
+z_master_newconn_loop:
+10007 7920002c set1 mark_first_packet ,mark 
+10008 204022f2 call master_newconn_once 
+10009 202c000e branch z_newconn_poll_responded ,sync 
+1000a 793f802c set0 mark_first_packet ,mark 
+1000b 20402455 call new_conn_timeout 
+1000c 243a0007 nbranch z_master_newconn_loop ,blank 
+1000d 202020fc branch page_restart 
+
+z_newconn_poll_responded:
+1000e 793f802c set0 mark_first_packet ,mark 
+1000f 2020215f branch newconn_poll_responded 
+              org 0x20001
+
+z_entrance1:
+20001 c0080004 beq zcode_10 ,z_mouse_bb_disconnected 
+20002 c008801a beq zcode_11 ,z_hid_rx_process 
+20003 20600000 rtn 
+
 z_mouse_bb_disconnected:
-10003 70480800 jam 0 ,mem_mouse_enter_sniff_count 
-10004 7041e30e jam 0x0e ,mem_sniff_param_interval 
-10005 204041e7 call mouse_bb_discon_clear_stack 
-10006 68014208 fetch app_disc_rsn_size ,mem_app_disconn_reason 
-10007 c283c1f5 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
-10008 c28033a9 bbit1 app_disc_by_button ,app_disconn_reason_clear 
-10009 c280800d bbit1 app_disc_after_pairing ,z_mouse_event_light_state_pairing 
-1000a c2810010 bbit1 app_disc_after_reconn ,z_mouse_event_light_state_hibernate 
-1000b c2818010 bbit1 app_disc_after_sniff ,z_mouse_event_light_state_hibernate 
-1000c 202042b0 branch mouse_start_discovery 
+20004 70480a00 jam 0 ,mem_mouse_enter_sniff_count 
+20005 7041e30e jam 0x0e ,mem_sniff_param_interval 
+20006 204041e7 call mouse_bb_discon_clear_stack 
+20007 68014208 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+20008 c283800e bbit1 app_disc_ble ,z_mouse4_0_event_bb_disconn 
+20009 c28033a9 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+2000a c2808011 bbit1 app_disc_after_pairing ,z_mouse_event_light_state_pairing 
+2000b c2810014 bbit1 app_disc_after_reconn ,z_mouse_event_light_state_hibernate 
+2000c c2818014 bbit1 app_disc_after_sniff ,z_mouse_event_light_state_hibernate 
+2000d 202042b0 branch mouse_start_discovery 
+
+z_mouse4_0_event_bb_disconn:
+2000e 204041c1 call mouse_le_clean_connect_flag 
+2000f 68014208 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+20010 202041f7 branch mouse4_0_event_bb_disconn + 2 
 
 z_mouse_event_light_state_pairing:
-1000d c2828010 bbit1 app_disc_after_handshake ,z_mouse_event_light_state_hibernate 
-1000e c2818010 bbit1 app_disc_after_sniff ,z_mouse_event_light_state_hibernate 
-1000f 202042b0 branch mouse_start_discovery 
+20011 c2828014 bbit1 app_disc_after_handshake ,z_mouse_event_light_state_hibernate 
+20012 c2818014 bbit1 app_disc_after_sniff ,z_mouse_event_light_state_hibernate 
+20013 202042b0 branch mouse_start_discovery 
 
 z_mouse_event_light_state_hibernate:
-10010 68014682 fetch 2 ,mem_ui_state_map 
-10011 c28642b0 bbit1 ui_state_btn_down ,mouse_start_discovery 
-10012 204033a9 call app_disconn_reason_clear 
-10013 20400531 call p_mouse_check_key_gpio 
-10014 c0038018 beq mouse_lmr_button ,z_mouse_null_enter_hibernate_enable 
-10015 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
-10016 203a0018 branch z_mouse_null_enter_hibernate_enable ,blank 
-10017 202033a7 branch app_bb_hibernate 
-
-z_mouse_null_enter_hibernate_enable:
-10018 70479f01 jam 1 ,mem_mouse_null_enter_hibernate_flag 
-10019 7047a028 jam 40 ,mem_mouse_null_enter_hibernate_timer 
-1001a 20600000 rtn 
-              org 0x20001
+20014 68014682 fetch 2 ,mem_ui_state_map 
+20015 c28642b0 bbit1 ui_state_btn_down ,mouse_start_discovery 
+20016 204033a9 call app_disconn_reason_clear 
+20017 2040028f call p_mouse_check_key_gpio_once 
+20018 c0028466 beq mouse_lm_button ,p_mouse_null_enter_hibernate_enable 
+20019 202033a7 branch app_bb_hibernate 
+
+z_hid_rx_process:
+2001a 68010264 fetch 2 ,mem_l2cap_payload_ptr 
+2001b 1fe20c00 copy pdata ,contr 
+2001c e8c08000 ifetch 1 ,contr 
+2001d 6000cb04 store 1 ,mem_l2cap_rcv 
+2001e 1fe1040f and pdata ,0x0f ,temp 
+2001f 1ff1fe00 rshift4 pdata ,pdata 
+20020 c0038023 beq hid_type_set_protocol ,z_hid_rx_set_protocol 
+20021 c000802a beq hid_type_control ,z_hid_rx_process_hid_control 
+20022 20204d39 branch hid_rx_process + 6 
+
+z_hid_rx_set_protocol:
+20023 20404d53 call hid_rx_process_handshake 
+20024 704b0500 jam 0 ,mem_mouse_bt_boot_mode 
+20025 6800cb04 fetch 1 ,mem_l2cap_rcv 
+20026 2feffe00 isolate1 0 ,pdata 
+20027 20608000 rtn true 
+20028 704b0501 jam 1 ,mem_mouse_bt_boot_mode 
+20029 20600000 rtn 
+
+z_hid_rx_process_hid_control:
+2002a 18427e00 copy temp ,pdata 
+2002b c00283e5 beq hid_control_p_virtualcableunplug ,p_mouse_irtual_cable_unplug 
+2002c 20204d41 branch hid_rx_process_hid_control + 2 
+              org 0x30001
 
-z_entrance1:
-20001 c008000f beq zcode_10 ,z_send_lmp_escape 
-20002 c008801c beq zcode_11 ,z_send_lmp_accepted 
-20003 c0090005 beq zcode_12 ,z_mouse4_0_check_reconn_target 
-20004 20600000 rtn 
+z_entrance2:
+30001 c0100014 beq zcode_20 ,z_send_lmp_escape 
+30002 c0108021 beq zcode_21 ,z_send_lmp_accepted 
+30003 c0110005 beq zcode_22 ,z_mouse4_0_check_reconn_target 
+30004 20600000 rtn 
 
 z_mouse4_0_check_reconn_target:
-20005 204004ce call p_mouse_bt_reconn_multi_led_blink 
-20006 704b7001 jam 1 ,mem_le_send_security_request_flag 
-20007 7047a101 jam 1 ,mem_mouse_le_reconnect_flag 
-20008 680146a8 fetch 2 ,mem_mouse_direct_timeout 
-20009 600146ae store 2 ,mem_mouse_direct_timer 
-2000a 20400430 call p_mouse_store_eeprom_enable 
-2000b 20403418 call app_lpm_mult_disable 
-2000c d8c04390 arg mem_le_scan_data ,contr 
-2000d 2040042c call p_le_adv_data_update 
-2000e 20207df4 branch check_51cmd_adv 
+30005 704b6e01 jam 1 ,mem_le_send_security_request_flag 
+30006 7047a101 jam 1 ,mem_mouse_le_reconnect_flag 
+30007 680146a8 fetch 2 ,mem_mouse_direct_timeout 
+30008 6808cb69 fetcht 1 ,mem_mouse_fast_conn_flag 
+30009 18467cff sub temp ,0xff ,null 
+3000a 2422800c nbranch z_mouse4_0_check_reconn_target_next ,zero 
+3000b 58000258 setarg 0x0258 
+
+z_mouse4_0_check_reconn_target_next:
+3000c 600146ae store 2 ,mem_mouse_direct_timer 
+3000d 20403418 call app_lpm_mult_disable 
+3000e 20400297 call p_le_check_adv_flag 
+3000f 58000004 setarg adv_flag_bredr_not_supported 
+30010 e0c08000 istore 1 ,contr 
+30011 d8c04390 arg mem_le_scan_data ,contr 
+30012 20400545 call p_le_adv_data_update 
+30013 20207df4 branch check_51cmd_adv 
 
 z_send_lmp_escape:
-2000f 68008048 fetch 1 ,mem_lmp_to_send 
-20010 c0420013 beq lmp_ext_features_res ,z_send_lmpext_features_res 
-20011 c0418016 beq lmp_ext_features_req ,z_send_lmpext_features_req 
-20012 2020603f branch send_lmp_escape 
+30014 68008048 fetch 1 ,mem_lmp_to_send 
+30015 c0420018 beq lmp_ext_features_res ,z_send_lmpext_features_res 
+30016 c041801b beq lmp_ext_features_req ,z_send_lmpext_features_req 
+30017 2020603f branch send_lmp_escape 
 
 z_send_lmpext_features_res:
-20013 20400019 call z_check_ssp_enable 
-20014 68008048 fetch 1 ,mem_lmp_to_send 
-20015 20206099 branch send_lmpext_features_res 
+30018 2040001e call z_check_ssp_enable 
+30019 68008048 fetch 1 ,mem_lmp_to_send 
+3001a 20206099 branch send_lmpext_features_res 
 
 z_send_lmpext_features_req:
-20016 20400019 call z_check_ssp_enable 
-20017 68008048 fetch 1 ,mem_lmp_to_send 
-20018 2020610d branch send_lmpext_features_req 
+3001b 2040001e call z_check_ssp_enable 
+3001c 68008048 fetch 1 ,mem_lmp_to_send 
+3001d 2020610d branch send_lmpext_features_req 
 
 z_check_ssp_enable:
-20019 6800c65a fetch 1 ,mem_ssp_enable 
-2001a 203a612b branch ssp_disable ,blank 
-2001b 20206124 branch ssp_enable 
+3001e 6800c65a fetch 1 ,mem_ssp_enable 
+3001f 203a612b branch ssp_disable ,blank 
+30020 20206124 branch ssp_enable 
 
 z_send_lmp_accepted:
-2001c 18007e02 force 2 ,pdata 
-2001d 20406298 call msg_send_lmp 
-2001e 68008049 fetch 1 ,mem_lmi_opcode 
-2001f e0a08000 istore 1 ,contw 
-20020 6000cafc store 1 ,mem_lmi_opcode_temp 
-20021 204062a7 call send_lmp_follow 
-20022 6800cafc fetch 1 ,mem_lmi_opcode_temp 
-20023 c0170025 beq lmp_max_slot_req ,z_send_lmp_accepted_max_slot_req 
-20024 20206051 branch send_lmp_accepted + 7 
+30021 18007e02 force 2 ,pdata 
+30022 20406298 call msg_send_lmp 
+30023 68008049 fetch 1 ,mem_lmi_opcode 
+30024 e0a08000 istore 1 ,contw 
+30025 6000cafe store 1 ,mem_lmi_opcode_temp 
+30026 204062a7 call send_lmp_follow 
+30027 6800cafe fetch 1 ,mem_lmi_opcode_temp 
+30028 c017002a beq lmp_max_slot_req ,z_send_lmp_accepted_max_slot_req 
+30029 20206051 branch send_lmp_accepted + 7 
 
 z_send_lmp_accepted_max_slot_req:
-20025 6800cb01 fetch 1 ,mem_bt_rcvd_switch_req_accept 
-20026 207a0000 rtn blank 
-20027 704b0100 jam 0 ,mem_bt_rcvd_switch_req_accept 
-20028 6800cb03 fetch 1 ,mem_bt_send_lmp_setup_complete 
-20029 c1810000 rtnne 2 
-2002a 704b0201 jam 1 ,mem_bt_send_max_slot_req_accept_after_switch 
-2002b 1c427e00 copy clkn_bt ,pdata 
-2002c 600204e9 store 4 ,mem_aurand_send_delay_time 
-2002d 20600000 rtn 
-              org 0x30001
+3002a 6800cb01 fetch 1 ,mem_bt_rcvd_switch_req_accept 
+3002b 207a0000 rtn blank 
+3002c 704b0100 jam 0 ,mem_bt_rcvd_switch_req_accept 
+3002d 6800cb03 fetch 1 ,mem_bt_send_lmp_setup_complete 
+3002e c1810000 rtnne 2 
+3002f 704b0201 jam 1 ,mem_bt_send_max_slot_req_accept_after_switch 
+30030 1c427e00 copy clkn_bt ,pdata 
+30031 600204e9 store 4 ,mem_aurand_send_delay_time 
+30032 20600000 rtn 
+              org 0x40001
 
-z_entrance2:
-30001 c0100006 beq zcode_20 ,z_le_update_param 
-30002 c0108018 beq zcode_21 ,z_le_update_channel_map 
-30003 c0110025 beq zcode_22 ,z_le_mouse_bb_event_connect_complete 
-30004 c011802c beq zcode_23 ,z_quit_connection_cont 
-30005 20600000 rtn 
+z_entrance3:
+40001 c0180003 beq zcode_30 ,z_process_conn_sm 
+40002 20600000 rtn 
+
+z_process_conn_sm:
+40003 204062bc call lmo_fifo_check 
+40004 247a0000 nrtn blank 
+
+z_process_conn_sm_continue:
+40005 68008055 fetch 1 ,mem_conn_sm 
+40006 207a0000 rtn blank 
+40007 c0020025 beq conn_sm_send_conn_req ,z_host_create_conn_send_conn_req 
+40008 c008000a beq conn_sm_wait_switch_after_host_connection ,z_host_creat_conn_wait_switch 
+40009 20206320 branch process_conn_sm_continue + 2 
+
+z_host_creat_conn_wait_switch:
+4000a 6800c55b fetch 1 ,mem_switch_flag 
+4000b c1000000 rtneq switch_flag_init 
+4000c c000800e beq switch_flag_accept ,z_host_create_conn_switch_accept 
+4000d 2020635f branch host_creat_conn_wait_switch + 3 
+
+z_host_create_conn_switch_accept:
+4000e 20748000 rtn master 
+
+z_host_create_conn_auth_pair:
+4000f 6800816d fetch 1 ,mem_connection_options 
+40010 c2800012 bbit1 connection_auth ,z_host_create_conn_auth_pair_true 
+40011 20206399 branch host_create_conn_auth_pair + 1 
+
+z_host_create_conn_auth_pair_true:
+40012 6800cb03 fetch 1 ,mem_bt_send_lmp_setup_complete 
+40013 c000e39d beq 1 ,host_create_conn_auth_pair_true 
+40014 6800c1bd fetch 1 ,mem_link_key_exists 
+40015 203a63a9 branch host_create_conn_auth_pair_nokey ,blank 
+40016 680084d1 fetch 1 ,mem_lmp_conn_state 
+40017 c4018000 rtnbit0 sent_setup_complete 
+40018 c4010000 rtnbit0 received_setup_complete 
+40019 6800cb02 fetch 1 ,mem_bt_send_max_slot_req_accept_after_switch 
+4001a 207a0000 rtn blank 
+4001b 704b0200 jam 0 ,mem_bt_send_max_slot_req_accept_after_switch 
+4001c 680204e9 fetch 4 ,mem_aurand_send_delay_time 
+4001d d8400014 arg 20 ,temp 
+4001e 98408400 iadd temp ,temp 
+4001f 1c427e00 copy clkn_bt ,pdata 
+40020 98467c00 isub temp ,null 
+40021 24210023 nbranch z_bt_send_max_slot_req_accept_after_switch_wait ,positive 
+40022 20206349 branch host_create_conn_auth 
+
+z_bt_send_max_slot_req_accept_after_switch_wait:
+40023 704b0201 jam 1 ,mem_bt_send_max_slot_req_accept_after_switch 
+40024 20600000 rtn 
+
+z_host_create_conn_send_conn_req:
+40025 70480b14 jam 20 ,mem_mouse_send_switch_req_timer 
+40026 2020636f branch host_create_conn_send_conn_req 
+              org 0x50001
+
+z_entrance4:
+50001 c0200004 beq zcode_40 ,z_le_update_param 
+50002 c0208016 beq zcode_41 ,z_le_update_channel_map 
+50003 20600000 rtn 
 
 z_le_update_param:
-30006 2040000e call z_mouse_le_conn_param_check 
-30007 2020557d branch le_update_param + 8 
+50004 2040000c call z_mouse_le_conn_param_check 
+50005 2020557d branch le_update_param + 8 
 
 z_mouse_le_lpm_mult_reinit:
-30008 6800c7c5 fetch 1 ,mem_lpm_mult_init 
-30009 6000c172 store 1 ,mem_lpm_mult 
+50006 6800c7c7 fetch 1 ,mem_lpm_mult_init 
+50007 6000c172 store 1 ,mem_lpm_mult 
 
 z_mouse_le_conn_param_lpm_enable:
-3000a 7047c400 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
-3000b 20600000 rtn 
+50008 7047c600 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+50009 20600000 rtn 
 
 z_mouse_le_conn_param_lpm_disable:
-3000c 7047c401 jam le_lpm_disable ,mem_mouse_le_conn_param_reject 
-3000d 20600000 rtn 
+5000a 7047c601 jam le_lpm_disable ,mem_mouse_le_conn_param_reject 
+5000b 20600000 rtn 
 
 z_mouse_le_conn_param_check:
-3000e 6800c3d6 fetch 1 ,mem_le_new_conninterval 
-3000f 1fe67c0c sub pdata ,le_interval_15ms ,null 
-30010 2421000c nbranch z_mouse_le_conn_param_lpm_disable ,positive 
-30011 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
-30012 6808c7c5 fetcht 1 ,mem_lpm_mult_init 
-30013 98467c00 isub temp ,null 
-30014 20210008 branch z_mouse_le_lpm_mult_reinit ,positive 
-30015 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
-30016 6000c172 store 1 ,mem_lpm_mult 
-30017 2020000a branch z_mouse_le_conn_param_lpm_enable 
+5000c 6800c3d6 fetch 1 ,mem_le_new_conninterval 
+5000d 1fe67c0c sub pdata ,le_interval_15ms ,null 
+5000e 2421000a nbranch z_mouse_le_conn_param_lpm_disable ,positive 
+5000f 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
+50010 6808c7c7 fetcht 1 ,mem_lpm_mult_init 
+50011 98467c00 isub temp ,null 
+50012 20210006 branch z_mouse_le_lpm_mult_reinit ,positive 
+50013 6800c3d8 fetch 1 ,mem_le_new_connslavelatency 
+50014 6000c172 store 1 ,mem_lpm_mult 
+50015 20200008 branch z_mouse_le_conn_param_lpm_enable 
 
 z_le_update_channel_map:
-30018 6800843f fetch 1 ,mem_le_state 
-30019 c4030000 rtnbit0 lestate_update_map 
-3001a 2040001d call z_le_channel_map_overflow_check 
-3001b 24740000 nrtn user 
-3001c 202055a0 branch le_update_channel_map + 3 
+50016 6800843f fetch 1 ,mem_le_state 
+50017 c4030000 rtnbit0 lestate_update_map 
+50018 2040001b call z_le_channel_map_overflow_check 
+50019 24740000 nrtn user 
+5001a 202055a0 branch le_update_channel_map + 3 
 
 z_le_channel_map_overflow_check:
-3001d 78347c00 enable user 
-3001e 6800845a fetch 1 ,mem_le_event_count + 1 
-3001f 1ff1fe00 rshift4 pdata ,pdata 
-30020 c1878000 rtnne 0x0f 
-30021 68008460 fetch 1 ,mem_le_instant + 1 
-30022 1ff1fe00 rshift4 pdata ,pdata 
-30023 c1800000 rtnne 0x00 
-30024 20207fe9 branch disable_user 
-
-z_le_mouse_bb_event_connect_complete:
-30025 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
-30026 247a0000 nrtn blank 
-30027 68008478 fetch 1 ,mem_le_att_handle 
-30028 1fe67e1a sub pdata ,26 ,pdata 
-30029 24628000 nrtn zero 
-3002a 7046c600 jam 0 ,mem_le_start_encrypt_timer 
-3002b 20203d60 branch mouse_le_write_enable 
-
-z_quit_connection_cont:
-3002c 204033af call app_disconn_reason_collect_bt 
-3002d 204026e9 call sniff_exit 
-3002e 700a9902 jam bt_evt_bb_disconnected ,mem_fifo_temp 
-3002f 20407d86 call ui_ipc_send_event 
-30030 20405cf7 call init_lmp_work 
-30031 20404d6b call l2cap_init_work 
-30032 2020246e branch quit_connection_cont + 8 
-              org 0x40001
+5001b 78347c00 enable user 
+5001c 6800845a fetch 1 ,mem_le_event_count + 1 
+5001d 1ff1fe00 rshift4 pdata ,pdata 
+5001e c1878000 rtnne 0x0f 
+5001f 68008460 fetch 1 ,mem_le_instant + 1 
+50020 1ff1fe00 rshift4 pdata ,pdata 
+50021 c1800000 rtnne 0x00 
+50022 20207fe9 branch disable_user 
+              org 0x60001
 
-z_entrance3:
-40001 c0180003 beq zcode_30 ,z_mouse_start_discovery 
-40002 20600000 rtn 
+z_entrance5:
+60001 c0280003 beq zcode_50 ,z_mouse_start_discovery 
+60002 20600000 rtn 
 
 z_mouse_start_discovery:
-40003 204002be call p_mouse_tx_power_init 
-40004 704b7000 jam 0 ,mem_le_send_security_request_flag 
-40005 704b6d01 jam 1 ,mem_mouse_start_discovery_enable 
-40006 70472001 jam mode_bt_device1 ,mem_device_flag 
-40007 70479e00 jam 0 ,mem_mouse_clear_sensor_data_flag 
+60003 704b6e00 jam 0 ,mem_le_send_security_request_flag 
+60004 20400292 call p_mouse_tx_power_init 
+60005 70472001 jam mode_bt_device1 ,mem_device_flag 
+60006 70479e00 jam 0 ,mem_mouse_clear_sensor_data_flag 
+60007 2040053e call p_mouse_load_random_addr_increase_count 
+60008 680947c4 fetcht 2 ,mem_random_addr_increase_count 
+60009 18408401 increase 1 ,temp 
+6000a 600947c4 storet 2 ,mem_random_addr_increase_count 
+6000b 600944a1 storet 2 ,mem_le_lap + 1 
+6000c 20400314 call p_mouse_store_random_addr_increase_count 
+6000d 180a7e00 random pdata 
+6000e 6000c4a0 store 1 ,mem_le_lap 
 
 z_mouse_start_discovery_norandom:
-40008 68034b64 fetch 6 ,mem_le_normal_lap 
-40009 600344a0 store 6 ,mem_le_lap 
-4000a 20400344 call p_mouse_fast_conn_disable 
-4000b 20403418 call app_lpm_mult_disable 
-4000c 68014687 fetch 2 ,mem_discovery_timeout 
-4000d 600146ac store 2 ,mem_mouse_discovery_timer 
-4000e 70016d06 jam 6 ,mem_connection_options 
-4000f 58000000 setarg 0 
-40010 600146b0 store 2 ,mem_mouse_no_data_timer 
-40011 600146ae store 2 ,mem_mouse_direct_timer 
-40012 20400430 call p_mouse_store_eeprom_enable 
-40013 204043ca call mouse_bt_discovery_button_down_disable 
-40014 20400334 call p_mouse_load_flash_device_info 
-40015 6800c210 fetch 1 ,mem_xrecord_mode 
-40016 1fe67c33 sub pdata ,rec_3_mode ,null 
-40017 2042801c call z3_check_51cmd_adv ,zero 
-40018 6800c092 fetch 1 ,mem_device_option 
-40019 2feffe00 isolate1 mode_3_mouse ,pdata 
-4001a 2040fddd call check_51cmd_start_discovery ,true 
-4001b 202004c6 branch p_mouse_discovery_multi_led_blink 
-
-z3_check_51cmd_adv:
-4001c 68034b64 fetch 6 ,mem_le_normal_lap 
-4001d 600344a0 store 6 ,mem_le_lap 
-4001e 20400428 call p_mouse_le_adv_data_update 
-4001f 20207df4 branch check_51cmd_adv 
-              org 0x50001
-
-z_entrance4:
-50001 c0200005 beq zcode_40 ,z_g24_start_24g_mode 
-50002 c0208017 beq zcode_41 ,z_g24_auto_pair_start 
-50003 c021001f beq zcode_42 ,z_mouse_24g_pairing_button 
-50004 20600000 rtn 
-
-z_g24_start_24g_mode:
-50005 2040000e call z_g24_factory_check 
-50006 203401ea branch p_g24_auto_pair_start ,user 
-50007 79200026 set1 mark_24g ,mark 
-50008 6800cd87 fetch 1 ,mem_24g_conn_sm 
-50009 79207e02 set1 state_24g_reconn ,pdata 
-5000a 6000cd87 store 1 ,mem_24g_conn_sm 
-5000b 204001d3 call p_g24_syncword_crc8 
-5000c 20400153 call p_g24_ch 
-5000d 2020001b branch z_g24_auto_pair_timeout_init 
-
-z_g24_factory_check:
-5000e df200002 arg 2 ,loopcnt 
-5000f d8c04c5b arg mem_24g_addr ,contr 
-50010 20407fe7 call enable_user 
-50011 5800ffff setarg 0xffff 
-
-z4_pdata_0xff_check_loop:
-50012 e8c90000 ifetcht 2 ,contr 
-50013 98467c00 isub temp ,null 
-50014 2442ffe9 ncall disable_user ,zero 
-50015 c2000012 loop z4_pdata_0xff_check_loop 
-50016 20600000 rtn 
+6000f 6801cb6a fetch 3 ,mem_le_lap_high_3b 
+60010 6001c4a3 store 3 ,mem_le_lap + 3 
+60011 2040029e call p_mouse_le_fast_conn_disable 
+60012 20403418 call app_lpm_mult_disable 
+60013 68014687 fetch 2 ,mem_discovery_timeout 
+60014 600146ac store 2 ,mem_mouse_discovery_timer 
+60015 70016d06 jam 6 ,mem_connection_options 
+60016 58000000 setarg 0 
+60017 600146b0 store 2 ,mem_mouse_no_data_timer 
+60018 600146ae store 2 ,mem_mouse_direct_timer 
+60019 d8e00007 arg mouse_store_eeprom_flag ,queue 
+6001a 204043ce call mouse_enable_function_flag 
+6001b 204043ca call mouse_bt_discovery_button_down_disable 
+6001c 6800c092 fetch 1 ,mem_device_option 
+6001d 2feffe01 isolate1 mode_4_mouse ,pdata 
+6001e 20408023 call z_check_51cmd_adv ,true 
+6001f 6800c092 fetch 1 ,mem_device_option 
+60020 2feffe00 isolate1 mode_3_mouse ,pdata 
+60021 2040fddd call check_51cmd_start_discovery ,true 
+60022 202004a0 branch p_mouse_discovery_multi_led_blink 
 
-z_g24_auto_pair_start:
-50017 79200026 set1 mark_24g ,mark 
-50018 6800cd87 fetch 1 ,mem_24g_conn_sm 
-50019 79207e01 set1 state_24g_pair ,pdata 
-5001a 6000cd87 store 1 ,mem_24g_conn_sm 
-
-z_g24_auto_pair_timeout_init:
-5001b 58000708 setarg g24_disconn_nodata_timer 
-5001c 60014d7f store 2 ,mem_24g_stop_g24_mode_timeout 
-5001d 704d7e00 jam 0 ,mem_24g_stop_g24_mode 
-5001e 20600000 rtn 
-
-z_mouse_24g_pairing_button:
-5001f 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-50020 c4088000 rtnbit0 mouse_enable_24g 
-50021 c3818000 rtnbit1 mosue_24g_pairing_flag 
-50022 c6130000 rtnmark1 mark_24g 
-50023 20404482 call mouse_devce_led_off 
-50024 d8e00003 arg mosue_24g_pairing_flag ,queue 
-50025 204043ce call mouse_enable_function_flag 
-50026 58000000 setarg 0 
-50027 600146ae store 2 ,mem_mouse_direct_timer 
-50028 6000c6b4 store 1 ,mem_mouse_send_blank_timer 
-50029 60014c60 store 2 ,mem_24g_check_dongle_times 
-5002a 204042ca call mouse_stop_discovery 
-5002b 202001ea branch p_g24_auto_pair_start 
-              org 0x60001
-
-z_entrance5:
-60001 c0280006 beq zcode_50 ,z_mouse_24g_pairing_complete 
-60002 c028800c beq zcode_51 ,z_mouse_24g_attempt_fail 
-60003 c0290010 beq zcode_52 ,z_mouse_24g_attempt_success 
-60004 c029801b beq zcode_53 ,z_g24_reconn_dispatch 
-60005 20600000 rtn 
+z_check_51cmd_adv:
+60023 7047a100 jam 0 ,mem_mouse_le_reconnect_flag 
+60024 20400297 call p_le_check_adv_flag 
+60025 58000005 setarg adv_flag_bredr_not_supported | adv_flag_limited_discoverable 
+60026 e0c08000 istore 1 ,contr 
+60027 d8c04b12 arg mem_le_adv_swift_pair ,contr 
+60028 20400545 call p_le_adv_data_update 
+60029 20207df4 branch check_51cmd_adv 
+              org 0x70001
 
-z_mouse_24g_pairing_complete:
-60006 d8e00003 arg mosue_24g_pairing_flag ,queue 
-60007 204043d2 call mouse_disable_function_flag 
-60008 7046a700 jam 0 ,mem_mouse_move_flag 
-60009 2040405d call mouse_read_sensor_common 
-6000a 204002be call p_mouse_tx_power_init 
-6000b 20200010 branch z_mouse_24g_attempt_success 
+z_entrance6:
+70001 c0300004 beq zcode_60 ,z_g24_start_24g_mode 
+70002 c0308026 beq zcode_61 ,z_mouse_24g_pairing_button 
+70003 20600000 rtn 
 
-z_mouse_24g_attempt_fail:
-6000c 704d7300 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
-6000d 204002be call p_mouse_tx_power_init 
-6000e 204001ec call p_g24_check_51cmd_stop_24g 
-6000f 2020340a branch app_enter_hibernate 
-
-z_mouse_24g_attempt_success:
-60010 704b4400 jam 0 ,mem_mouse_long_mult_flag 
-60011 20400018 call z_g24_auto_pair_timeout_clear 
-60012 204004b5 call p_mouse_null_enter_hibernate_disable 
-60013 20403f8d call mouse_no_data_timer_init 
-60014 68024c5b fetch 4 ,mem_24g_addr 
-60015 6002477b store 4 ,mem_mouse_24g_addr 
-60016 20404366 call mouse_cheak_select_24gdevice 
-60017 20200304 branch p_mouse_store_flash_device_info 
-
-z_g24_auto_pair_timeout_clear:
-60018 58000000 setarg 0 
-60019 6001cd7e store 3 ,mem_24g_stop_g24_mode 
-6001a 20600000 rtn 
-
-z_g24_reconn_dispatch:
-6001b 6800cd7e fetch 1 ,mem_24g_stop_g24_mode 
-6001c c000add4 beq 1 ,g24_stop_24g_mode 
-6001d 2040002a call z_g24_tx_attemp_data_prep 
-6001e 2040019f call p_g24_transmit_receive_ack 
-6001f 242c0153 nbranch p_g24_ch ,sync 
-60020 24378153 nbranch p_g24_ch ,user3 
-60021 6800cd87 fetch 1 ,mem_24g_conn_sm 
-60022 793ffe02 set0 state_24g_reconn ,pdata 
-60023 6000cd87 store 1 ,mem_24g_conn_sm 
+z_g24_start_24g_mode:
+70004 793f8026 set0 mark_24g ,mark 
+70005 204001ab call p_g24_syncword_crc8 
+70006 204001ca call p_g24_ch 
+70007 6800cc49 fetch 1 ,mem_24g_pairing_sm 
+70008 c1ff8000 rtnne state_24g_pairing_success 
+70009 20400018 call z_g24_tx_attemp_data_prep 
+
+z_g24_tx_attemp_dongle:
+7000a 58000000 setarg 0 
+7000b 60014c66 store 2 ,mem_24g_check_dongle_times 
+
+z_g24_tx_attemp_dongle_loop:
+7000c 200007d0 nop 2000 
+7000d 6800cc66 fetch 1 ,mem_24g_check_dongle_times 
+7000e c07fadd4 beq 0xff ,g24_stop_24g_mode 
+7000f 2040015c call p_g24_transmit_receive_ack 
+70010 242c0021 nbranch z_g24_attemp_txdata_retry ,sync 
+70011 24378021 nbranch z_g24_attemp_txdata_retry ,user3 
 
 z_g24_tx_attemp_dongle_succ:
-60024 704b4400 jam 0 ,mem_mouse_long_mult_flag 
-60025 20402f20 call g24_app_tx_attempt_success 
-60026 2040019c call p_g24_txbuf_clear 
-60027 20200358 branch p_g24_transmit_by_interrupt_enable 
-
-z_g24_store_dongle_addr:
-60028 68024c13 fetch 4 ,mem_24g_rxpayload + 2 
-60029 202001d2 branch p_g24_update_addr_and_synccrc8 
+70012 79200026 set1 mark_24g ,mark 
+70013 58000000 setarg 0 
+70014 60014c66 store 2 ,mem_24g_check_dongle_times 
+70015 20402f20 call g24_app_tx_attempt_success 
+70016 20400159 call p_g24_txbuf_clear 
+70017 20200362 branch p_g24_transmit_by_interrupt_enable 
 
 z_g24_tx_attemp_data_prep:
-6002a 70119eff jam 0xff ,mem_24g_common_temp 
-6002b 6800cc34 fetch 1 ,mem_24g_data_type 
-6002c 6000919f store 1 ,mem_24g_common_temp + 1 
-6002d 68024c6a fetch 4 ,mem_24g_device_addr 
-6002e 600211a0 store 4 ,mem_24g_common_temp + 2 
-6002f d8400006 arg 6 ,temp 
-60030 da20119e arg mem_24g_common_temp ,rega 
-60031 204001f1 call p_g24_put_data_in_buff 
-60032 20200203 branch p_g24_transmit_prep 
-              org 0x70001
+70018 70119eff jam 0xff ,mem_24g_common_temp 
+70019 6800cc3a fetch 1 ,mem_24g_data_type 
+7001a 6000919f store 1 ,mem_24g_common_temp + 1 
+7001b 68024c70 fetch 4 ,mem_24g_device_addr 
+7001c 600211a0 store 4 ,mem_24g_common_temp + 2 
+7001d d8400006 arg 6 ,temp 
+7001e da20119e arg mem_24g_common_temp ,rega 
+7001f 20400198 call p_g24_put_data_in_buff 
+70020 202001b8 branch p_g24_transmit_prep 
+
+z_g24_attemp_txdata_retry:
+70021 68014c66 fetch 2 ,mem_24g_check_dongle_times 
+70022 1fe0fe01 increase 1 ,pdata 
+70023 60014c66 store 2 ,mem_24g_check_dongle_times 
+70024 204001ca call p_g24_ch 
+70025 2020000c branch z_g24_tx_attemp_dongle_loop 
 
-z_entrance6:
-
-z_g24_pair_dispatch:
-70001 6800cd7e fetch 1 ,mem_24g_stop_g24_mode 
-70002 c000add4 beq 1 ,g24_stop_24g_mode 
-70003 70119eff jam 0xff ,mem_24g_common_temp 
-70004 6800cc34 fetch 1 ,mem_24g_data_type 
-70005 6000919f store 1 ,mem_24g_common_temp + 1 
-70006 68024c6a fetch 4 ,mem_24g_device_addr 
-70007 600211a0 store 4 ,mem_24g_common_temp + 2 
-70008 d8400006 arg 6 ,temp 
-70009 da20119e arg mem_24g_common_temp ,rega 
-7000a 204001f1 call p_g24_put_data_in_buff 
-7000b 20400203 call p_g24_transmit_prep 
-7000c 2040019f call p_g24_transmit_receive_ack 
-7000d 242c0026 nbranch z_g24_pair_txdata_retry ,sync 
-7000e 24378026 nbranch z_g24_pair_txdata_retry ,user3 
-7000f 204001c7 call p_g24_ackpayload_parse 
-70010 68024c5b fetch 4 ,mem_24g_addr 
-70011 680a4d78 fetcht 4 ,mem_24g_allpowerful_addr 
-70012 98467c00 isub temp ,null 
-70013 20228016 branch z_g24_auto_pair_skip_rx_length ,zero 
-70014 6800cc31 fetch 1 ,mem_24g_rxdata_length 
-70015 c1840000 rtnne bind_ackpayload_length 
-
-z_g24_auto_pair_skip_rx_length:
-70016 704d8700 jam 0 ,mem_24g_conn_sm 
-70017 204002be call p_mouse_tx_power_init 
-70018 68024c5b fetch 4 ,mem_24g_addr 
-70019 680a4c3f fetcht 4 ,mem_24g_paring_addr 
-7001a 98467c00 isub temp ,null 
-7001b 202281e0 branch p_g24_start_pairing_sm1 ,zero 
-7001c 68024c5b fetch 4 ,mem_24g_addr 
-7001d 680a4c6a fetcht 4 ,mem_24g_device_addr 
-7001e 98467c00 isub temp ,null 
-7001f 20428024 call z7_g24_store_dongle_addr ,zero 
-70020 704b4400 jam 0 ,mem_mouse_long_mult_flag 
-70021 20402f20 call g24_app_tx_attempt_success 
-70022 2040019c call p_g24_txbuf_clear 
-70023 20200358 branch p_g24_transmit_by_interrupt_enable 
-
-z7_g24_store_dongle_addr:
-70024 68024c13 fetch 4 ,mem_24g_rxpayload + 2 
-70025 202001d2 branch p_g24_update_addr_and_synccrc8 
-
-z_g24_pair_txdata_retry:
-
-z_g24_pair_txdata_switch:
-70026 6800cd71 fetch 1 ,mem_24g_auto_paring_switch 
-70027 1fe0fe01 increase 1 ,pdata 
-70028 1fe17e03 and_into 3 ,pdata 
-70029 6000cd71 store 1 ,mem_24g_auto_paring_switch 
-7002a c000002d beq 0 ,z_g24_auto_pair_first_attemp 
-7002b c0010037 beq 2 ,z_g24_auto_pair_all_powerful 
-7002c 202001ce branch p_g24_pair_init 
-
-z_g24_auto_pair_first_attemp:
-7002d 204002be call p_mouse_tx_power_init 
-7002e 68024c6a fetch 4 ,mem_24g_device_addr 
-7002f 60024c5b store 4 ,mem_24g_addr 
-70030 6800cd81 fetch 1 ,mem_24g_pair_current_ch_num 
-70031 6000cc3e store 1 ,mem_24g_current_ch_number 
-70032 20400035 call z_g24_ch_syncword_crc8_init 
-70033 6008cd81 storet 1 ,mem_24g_pair_current_ch_num 
-70034 20600000 rtn 
-
-z_g24_ch_syncword_crc8_init:
-70035 204001d3 call p_g24_syncword_crc8 
-70036 20200153 branch p_g24_ch 
-
-z_g24_auto_pair_all_powerful:
-70037 7041de20 jam tx_power_pair ,mem_tx_power 
-70038 68024d78 fetch 4 ,mem_24g_allpowerful_addr 
-70039 60024c5b store 4 ,mem_24g_addr 
-7003a 6800cd82 fetch 1 ,mem_24g_powerful_current_ch_num 
-7003b 6000cc3e store 1 ,mem_24g_current_ch_number 
-7003c 20400035 call z_g24_ch_syncword_crc8_init 
-7003d 6008cd82 storet 1 ,mem_24g_powerful_current_ch_num 
-7003e 20600000 rtn 
+z_mouse_24g_pairing_button:
+70026 6800c720 fetch 1 ,mem_device_flag 
+70027 c1008000 rtneq mode_bt_device1 
+70028 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+70029 c4088000 rtnbit0 mouse_enable_24g 
+7002a c3818000 rtnbit1 mosue_24g_pairing_flag 
+7002b c6130000 rtnmark1 mark_24g 
+7002c d8e00003 arg mosue_24g_pairing_flag ,queue 
+7002d 204043ce call mouse_enable_function_flag 
+7002e 58000000 setarg 0 
+7002f 600146ae store 2 ,mem_mouse_direct_timer 
+70030 6000c6b4 store 1 ,mem_mouse_send_blank_timer 
+70031 60014c66 store 2 ,mem_24g_check_dongle_times 
+70032 204042ca call mouse_stop_discovery 
+70033 20200192 branch p_g24_auto_pair_start 
               org 0x80001
 
 z_entrance7:
-80001 c0380004 beq zcode_70 ,z_mouse_irtual_cable_unplug 
-80002 c038800b beq zcode_71 ,z_g24_search_dongle 
-80003 20600000 rtn 
+80001 c0380003 beq zcode_70 ,z_g24_auto_pair_start 
+80002 20600000 rtn 
 
-z_mouse_irtual_cable_unplug:
-80004 5fffffff setarg -1 
-80005 60030040 store 6 ,mem_plap 
-80006 70018533 jam rec_3_mode ,mem_record_bt_mode 
-80007 704b77ff jam 0xff ,mem_mouse_fast_conn_flag 
-80008 204042fb call mouse_before_store_reconn_info 
-80009 704721ff jam 0xff ,mem_device1_type 
-8000a 20200304 branch p_mouse_store_flash_device_info 
-
-z_g24_search_dongle:
-8000b 6800cb44 fetch 1 ,mem_mouse_long_mult_flag 
-8000c 207a0000 rtn blank 
-8000d 6800cc5f fetch 1 ,mem_24g_abort_pac 
-8000e 207a0000 rtn blank 
-8000f 6800cd86 fetch 1 ,mem_24g_search_dongle_wait 
-80010 1fe0fe01 increase 1 ,pdata 
-80011 1fe17e03 and_into 3 ,pdata 
-80012 6000cd86 store 1 ,mem_24g_search_dongle_wait 
-80013 247a0000 nrtn blank 
-80014 704d8500 jam 0 ,mem_24g_search_dongle_ch 
-
-z_g24_search_dongle_loop:
-80015 6800cd85 fetch 1 ,mem_24g_search_dongle_ch 
-80016 1fe0fe01 increase 1 ,pdata 
-80017 6000cd85 store 1 ,mem_24g_search_dongle_ch 
-80018 1fe67c08 sub pdata ,g24_ch_number ,null 
-80019 2421001f nbranch z_g24_search_dongle_loop_end ,positive 
-8001a 20400025 call z7_g24_tx_attemp_data_prep 
-8001b 2040019f call p_g24_transmit_receive_ack 
-8001c 242c002e nbranch z_g24_search_dongle_loop_retry ,sync 
-8001d 2437802e nbranch z_g24_search_dongle_loop_retry ,user3 
-8001e 2040010b call p_g24_search_dongle_success 
-
-z_g24_search_dongle_loop_end:
-8001f 2040019c call p_g24_txbuf_clear 
-80020 6800cd84 fetch 1 ,mem_24g_search_dongle_count 
-80021 1fe0fe01 increase 1 ,pdata 
-80022 6000cd84 store 1 ,mem_24g_search_dongle_count 
-80023 c0080103 beq g24_ch_poll_count ,p_g24_search_dongle_check 
-80024 20600000 rtn 
+z_g24_auto_pair_start:
+80003 793f8026 set0 mark_24g ,mark 
+80004 2040002c call z_g24_auto_pair_all_powerful 
+80005 20400019 call z7_g24_tx_attemp_data_prep 
+
+z_g24_auto_pair_restart:
+80006 704c6600 jam 0 ,mem_24g_check_dongle_times 
+
+z_g24_auto_pair_start_loop:
+80007 200007d0 nop 2000 
+80008 6800cc66 fetch 1 ,mem_24g_check_dongle_times 
+80009 c07fadd4 beq 0xff ,g24_stop_24g_mode 
+8000a 2040015c call p_g24_transmit_receive_ack 
+8000b 242c0022 nbranch z_g24_auto_pair_retry ,sync 
+8000c 24378022 nbranch z_g24_auto_pair_retry ,user3 
+8000d 20400184 call p_g24_ackpayload_parse 
+8000e 20400292 call p_mouse_tx_power_init 
+8000f 68024c61 fetch 4 ,mem_24g_addr 
+80010 680a4c45 fetcht 4 ,mem_24g_paring_addr 
+80011 98467c00 isub temp ,null 
+80012 20228036 branch z_g24_start_pairing_sm1 ,zero 
+80013 79200026 set1 mark_24g ,mark 
+80014 58000000 setarg 0 
+80015 60014c66 store 2 ,mem_24g_check_dongle_times 
+80016 20402f20 call g24_app_tx_attempt_success 
+80017 20400159 call p_g24_txbuf_clear 
+80018 20200362 branch p_g24_transmit_by_interrupt_enable 
 
 z7_g24_tx_attemp_data_prep:
-80025 70119eff jam 0xff ,mem_24g_common_temp 
-80026 6800cc34 fetch 1 ,mem_24g_data_type 
-80027 6000919f store 1 ,mem_24g_common_temp + 1 
-80028 68024c6a fetch 4 ,mem_24g_device_addr 
-80029 600211a0 store 4 ,mem_24g_common_temp + 2 
-8002a d8400006 arg 6 ,temp 
-8002b da20119e arg mem_24g_common_temp ,rega 
-8002c 204001f1 call p_g24_put_data_in_buff 
-8002d 20200203 branch p_g24_transmit_prep 
-
-z_g24_search_dongle_loop_retry:
-8002e 20400153 call p_g24_ch 
-8002f 20200015 branch z_g24_search_dongle_loop 
+80019 70119eff jam 0xff ,mem_24g_common_temp 
+8001a 6800cc3a fetch 1 ,mem_24g_data_type 
+8001b 6000919f store 1 ,mem_24g_common_temp + 1 
+8001c 68024c70 fetch 4 ,mem_24g_device_addr 
+8001d 600211a0 store 4 ,mem_24g_common_temp + 2 
+8001e d8400006 arg 6 ,temp 
+8001f da20119e arg mem_24g_common_temp ,rega 
+80020 20400198 call p_g24_put_data_in_buff 
+80021 202001b8 branch p_g24_transmit_prep 
+
+z_g24_auto_pair_retry:
+80022 6800cc66 fetch 1 ,mem_24g_check_dongle_times 
+80023 1fe0fe01 increase 1 ,pdata 
+80024 6000cc66 store 1 ,mem_24g_check_dongle_times 
+80025 6800cd77 fetch 1 ,mem_24g_auto_paring_switch 
+80026 1fe0fe01 increase 1 ,pdata 
+80027 1fe17e01 and_into 1 ,pdata 
+80028 6000cd77 store 1 ,mem_24g_auto_paring_switch 
+80029 c0000032 beq 0 ,z_g24_auto_pair_device_attemp 
+8002a c0008034 beq 1 ,z_g24_auto_pair_pair_attemp 
+8002b 20600000 rtn 
+
+z_g24_auto_pair_all_powerful:
+8002c 7041de20 jam tx_power_pair ,mem_tx_power 
+8002d 58000f0f setarg 0x0f0f 
+8002e 60014c61 store 2 ,mem_24g_addr 
+8002f e0a10000 istore 2 ,contw 
+
+z_g24_ch_syncword_crc8_init:
+80030 204001ab call p_g24_syncword_crc8 
+80031 202001ca branch p_g24_ch 
+
+z_g24_auto_pair_device_attemp:
+80032 2040002c call z_g24_auto_pair_all_powerful 
+80033 20200007 branch z_g24_auto_pair_start_loop 
+
+z_g24_auto_pair_pair_attemp:
+80034 2040003a call z_g24_pair_init 
+80035 20200007 branch z_g24_auto_pair_start_loop 
+
+z_g24_start_pairing_sm1:
+80036 79200026 set1 mark_24g ,mark 
+80037 2040003a call z_g24_pair_init 
+
+z_g24_set_pairing_sm_1:
+80038 704c4901 jam state_24g_pairing_1 ,mem_24g_pairing_sm 
+80039 20600000 rtn 
+
+z_g24_pair_init:
+8003a 7041de20 jam tx_power_pair ,mem_tx_power 
+8003b 704c3800 jam 0 ,mem_24g_pid 
+8003c 704c434e jam g24_pair_ch ,mem_24g_ch 
+8003d 68024c45 fetch 4 ,mem_24g_paring_addr 
+8003e 202001aa branch p_g24_update_addr_and_synccrc8 
               org 0x90001
 
 z_entrance8:
-90001 c0400003 beq zcode_80 ,z_mouse_setting_config 
-90002 20600000 rtn 
+90001 c0400008 beq zcode_80 ,z_mouse_setting_config 
+90002 c0408004 beq zcode_81 ,z_le_addr_random_config 
+90003 20600000 rtn 
+
+z_le_addr_random_config:
+90004 204068a2 call load_adc_init 
+90005 58001122 setarg 0x1122 
+
+z_le_otp_adc_empty:
+90006 600147c4 store 2 ,mem_random_addr_increase_count 
+90007 20600000 rtn 
 
 z_mouse_setting_config:
-90003 20403e6e call mouse_gpio_init 
-90004 204004ee call p_mouse_multi_led_gpio_set_float 
-90005 6808cb47 fetcht 1 ,mem_flash_ncs_gpio 
-90006 2040680e call gpio_config_output 
-90007 58001802 setarg 0x1802 
-90008 600140bd store 2 ,mem_fcomp_mul 
-90009 58000000 setarg 0 
-9000a 60014154 store 2 ,mem_lpm_interval 
-9000b 204068a2 call load_adc_init 
-9000c 20403e54 call mouse_adc_init 
-9000d 204002f7 call p_mouse_load_flash_info_check 
-9000e 6800c720 fetch 1 ,mem_device_flag 
-9000f c1010000 rtneq mode_24g_device 
-90010 68034b4e fetch 6 ,mem_mouse_24g_addr_init 
-90011 680b4722 fetcht 6 ,mem_device1_addr 
-90012 98467c00 isub temp ,null 
-90013 24228344 nbranch p_mouse_fast_conn_disable ,zero 
-90014 20200346 branch p_mouse_fast_conn_le_switch_adv 
-90015 20600000 rtn 
+90008 204000d9 call p_g24_set_device_addr 
+90009 20403e6e call mouse_gpio_init 
+9000a 6808cb46 fetcht 1 ,mem_flash_ncs_gpio 
+9000b 2040680e call gpio_config_output 
+9000c 20403e1e call mouse_param_init 
+9000d 20400025 call z_mouse_bt_sdp_update 
+9000e 58000000 setarg 0 
+9000f 60014154 store 2 ,mem_lpm_interval 
+90010 58001802 setarg 0x1802 
+90011 600140bd store 2 ,mem_fcomp_mul 
+90012 204068a2 call load_adc_init 
+90013 20403e54 call mouse_adc_init 
+90014 20405810 call le_set_config_fixed_ltk 
+90015 20405839 call le_set_justwork 
+90016 2040582c call le_set_fixed_ltk 
+90017 20405818 call le_set_config_read_authentication 
+90018 2040053a call p_le_addr_random_config 
+90019 20400351 call p_flash_release_deep_power_down 
+9001a 2040031e call p_mouse_set_24g_addr_flash 
+9001b 6801c700 fetch 3 ,mem_flash_base 
+9001c 9a40fe00 iadd regb ,pdata 
+9001d 20406562 call spid_read_flash 
+9001e 20400305 call p_mouse_load_flash_info_check 
+9001f df200003 arg 3 ,loopcnt 
+90020 d8c04722 arg mem_device1_addr ,contr 
+90021 20400358 call p_pdata_0xff_check 
+90022 2434029e nbranch p_mouse_le_fast_conn_disable ,user 
+90023 204002a0 call p_mouse_fast_conn_init 
+90024 20600000 rtn 
+
+z_mouse_bt_sdp_update:
+90025 204074b9 call enable_authrom 
+90026 d8c08c00 arg 0x8c00 ,contr 
+90027 d8a04878 arg mem_mouse_uuid_list ,contw 
+90028 df200171 arg 369 ,loopcnt 
+90029 20407f01 call memcpy 
+9002a 580f0209 setarg 0x0f0209 
+9002b e0a18000 istore 3 ,contw 
+9002c 58120009 setarg 0x120009 
+9002d e0a18000 istore 3 ,contw 
+9002e 58100209 setarg 0x100209 
+9002f e0a18000 istore 3 ,contw 
+90030 58000009 setarg 0x000009 
+90031 e0a18000 istore 3 ,contw 
+90032 d8c08d71 arg 0x8d71 ,contr 
+90033 df200109 arg 265 ,loopcnt 
+90034 20407f01 call memcpy 
+90035 70488f00 jam 0 ,mem_mouse_uuid_list + 23 
+90036 7048876d jam 0x6d ,mem_mouse_uuid_list + 15 
+90037 5800401f setarg 0x401f 
+90038 600149dd store 2 ,mem_mouse_uuid_list + 357 
+90039 58006d04 setarg 0x6d04 
+9003a 60014a46 store 2 ,mem_mouse_uuid_list + 462 
+9003b 580016b0 setarg 0x16b0 
+9003c 60014a4c store 2 ,mem_mouse_uuid_list + 468 
+9003d 58004878 setarg mem_mouse_uuid_list 
+9003e 60014575 store 2 ,mem_ui_uuid_table 
+9003f 20600000 rtn 
               org 0xa0001
 
 z_entrance9:
-a0001 c0480004 beq zcode_90 ,z_g24_pairing_sm 
-a0002 c048801e beq zcode_91 ,z_g24_paring_mode 
-a0003 20600000 rtn 
+a0001 c0480005 beq zcode_90 ,z_g24_pairing_sm 
+a0002 c048801f beq zcode_91 ,z_g24_paring_mode 
+a0003 c049002f beq zcode_92 ,z_mouse_24g_pairing_complete 
+a0004 20600000 rtn 
 
 z_g24_pairing_sm:
-a0004 6800cc38 fetch 1 ,mem_24g_ensure 
-a0005 c000ffe7 beq ensure_on_24g ,enable_user 
-a0006 6800cc43 fetch 1 ,mem_24g_pairing_sm 
-a0007 c000800b beq state_24g_pairing_1 ,z_g24_pairing_sm_1 
-a0008 c001000e beq state_24g_pairing_2 ,z_g24_pairing_sm_2 
-a0009 c0018011 beq state_24g_pairing_3 ,z_g24_pairing_sm_3 
-a000a 20202a8c branch assert 
+a0005 6800cc3e fetch 1 ,mem_24g_ensure 
+a0006 c000ffe7 beq ensure_on_24g ,enable_user 
+a0007 6800cc49 fetch 1 ,mem_24g_pairing_sm 
+a0008 c000800c beq state_24g_pairing_1 ,z_g24_pairing_sm_1 
+a0009 c001000f beq state_24g_pairing_2 ,z_g24_pairing_sm_2 
+a000a c0018012 beq state_24g_pairing_3 ,z_g24_pairing_sm_3 
+a000b 20202a8c branch assert 
 
 z_g24_pairing_sm_1:
-a000b 704c4311 jam state_24g_pairing_1_waiting_ack ,mem_24g_pairing_sm 
-a000c 70119eaa jam 0xaa ,mem_24g_common_temp 
-a000d 20200013 branch z_g24_pairing_sm_common 
+a000c 704c4911 jam state_24g_pairing_1_waiting_ack ,mem_24g_pairing_sm 
+a000d 70119eaa jam 0xaa ,mem_24g_common_temp 
+a000e 20200014 branch z_g24_pairing_sm_common 
 
 z_g24_pairing_sm_2:
-a000e 704c4312 jam state_24g_pairing_2_waiting_ack ,mem_24g_pairing_sm 
-a000f 70119e55 jam 0x55 ,mem_24g_common_temp 
-a0010 20200013 branch z_g24_pairing_sm_common 
+a000f 704c4912 jam state_24g_pairing_2_waiting_ack ,mem_24g_pairing_sm 
+a0010 70119e55 jam 0x55 ,mem_24g_common_temp 
+a0011 20200014 branch z_g24_pairing_sm_common 
 
 z_g24_pairing_sm_3:
-a0011 704c4313 jam state_24g_pairing_3_waiting_ack ,mem_24g_pairing_sm 
-a0012 70119e22 jam 0x22 ,mem_24g_common_temp 
+a0012 704c4913 jam state_24g_pairing_3_waiting_ack ,mem_24g_pairing_sm 
+a0013 70119e22 jam 0x22 ,mem_24g_common_temp 
 
 z_g24_pairing_sm_common:
-a0013 6800cc34 fetch 1 ,mem_24g_data_type 
-a0014 1fe17e07 and_into bits_data ,pdata 
-a0015 6000919f store 1 ,mem_24g_common_temp + 1 
-a0016 68024c6a fetch 4 ,mem_24g_device_addr 
-a0017 600211a0 store 4 ,mem_24g_common_temp + 2 
+a0014 6800cc3a fetch 1 ,mem_24g_data_type 
+a0015 1fe17e07 and_into bits_data ,pdata 
+a0016 6000919f store 1 ,mem_24g_common_temp + 1 
+a0017 68024c70 fetch 4 ,mem_24g_device_addr 
+a0018 600211a0 store 4 ,mem_24g_common_temp + 2 
 
 z_g24_put_pairing_data_in_buff:
-a0018 7011a400 jam 0 ,mem_24g_common_temp + 6 
-a0019 da20119e arg mem_24g_common_temp ,rega 
-a001a d8400007 arg 7 ,temp 
-a001b 204001f1 call p_g24_put_data_in_buff 
-a001c 20400168 call p_g24_txdata_enable_tx 
-a001d 20207fe7 branch enable_user 
+a0019 7011a400 jam 0 ,mem_24g_common_temp + 6 
+a001a da20119e arg mem_24g_common_temp ,rega 
+a001b d8400007 arg 7 ,temp 
+a001c 20400198 call p_g24_put_data_in_buff 
+a001d 20400124 call p_g24_txdata_enable_tx 
+a001e 20207fe7 branch enable_user 
 
 z_g24_paring_mode:
-a001e 6800cc43 fetch 1 ,mem_24g_pairing_sm 
-a001f c17f8000 rtneq state_24g_pairing_success 
-a0020 c0088024 beq state_24g_pairing_1_waiting_ack ,z_g24_pairing_sm_1_waiting_ack 
-a0021 c0090026 beq state_24g_pairing_2_waiting_ack ,z_g24_pairing_sm_2_waiting_ack 
-a0022 c0098028 beq state_24g_pairing_3_waiting_ack ,z_g24_pairing_sm_3_waiting_ack 
-a0023 20600000 rtn 
+a001f 6800cc49 fetch 1 ,mem_24g_pairing_sm 
+a0020 c17f8000 rtneq state_24g_pairing_success 
+a0021 c0088025 beq state_24g_pairing_1_waiting_ack ,z_g24_pairing_sm_1_waiting_ack 
+a0022 c0090027 beq state_24g_pairing_2_waiting_ack ,z_g24_pairing_sm_2_waiting_ack 
+a0023 c0098029 beq state_24g_pairing_3_waiting_ack ,z_g24_pairing_sm_3_waiting_ack 
+a0024 20600000 rtn 
 
 z_g24_pairing_sm_1_waiting_ack:
-a0024 704c4302 jam state_24g_pairing_2 ,mem_24g_pairing_sm 
-a0025 20200198 branch p_g24_transmit_abandon 
+a0025 704c4902 jam state_24g_pairing_2 ,mem_24g_pairing_sm 
+a0026 20200155 branch p_g24_transmit_abandon 
 
 z_g24_pairing_sm_2_waiting_ack:
-a0026 704c4303 jam state_24g_pairing_3 ,mem_24g_pairing_sm 
-a0027 20200198 branch p_g24_transmit_abandon 
+a0027 704c4903 jam state_24g_pairing_3 ,mem_24g_pairing_sm 
+a0028 20200155 branch p_g24_transmit_abandon 
 
 z_g24_pairing_sm_3_waiting_ack:
-a0028 704c43ff jam state_24g_pairing_success ,mem_24g_pairing_sm 
-a0029 700a9939 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
-a002a 20407d86 call ui_ipc_send_event 
-a002b 68024c13 fetch 4 ,mem_24g_rxpayload + 2 
-a002c 204001d2 call p_g24_update_addr_and_synccrc8 
-a002d 20200198 branch p_g24_transmit_abandon 
+a0029 704c49ff jam state_24g_pairing_success ,mem_24g_pairing_sm 
+a002a 700a9939 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
+a002b 20407d86 call ui_ipc_send_event 
+a002c 68024c19 fetch 4 ,mem_24g_rxpayload + 2 
+a002d 204001aa call p_g24_update_addr_and_synccrc8 
+a002e 20200155 branch p_g24_transmit_abandon 
+
+z_mouse_24g_pairing_complete:
+a002f 70478b01 jam 1 ,mem_mouse_24g_enter_lpm_enable 
+a0030 d8e00003 arg mosue_24g_pairing_flag ,queue 
+a0031 204043d2 call mouse_disable_function_flag 
+a0032 58000000 setarg 0 
+a0033 60014707 store 2 ,mem_24g_pairing_timer_count 
+a0034 7046a700 jam 0 ,mem_mouse_move_flag 
+a0035 2040405d call mouse_read_sensor_common 
+a0036 20400469 call p_mouse_null_enter_hibernate_disable 
+a0037 20400292 call p_mouse_tx_power_init 
+a0038 68024c61 fetch 4 ,mem_24g_addr 
+a0039 6002477b store 4 ,mem_mouse_24g_addr 
+a003a 20404366 call mouse_cheak_select_24gdevice 
+a003b 2020030f branch p_mouse_store_flash_device_info 
               org 0xb0001
 
 z_entrancea:
-b0001 c0500029 beq zcode_a0 ,z_mouse_before_hibernate 
-b0002 c050800b beq zcode_a1 ,z_mouse_le_conn_param_update_rsp_recieved 
-b0003 c0510019 beq zcode_a2 ,z_mouse_le_bb_disconnected 
+b0001 c0500007 beq zcode_a0 ,z_mouse_24g_attempt_fail 
+b0002 c050800d beq zcode_a1 ,z_mouse_le_conn_param_update_rsp_recieved 
+b0003 c0510020 beq zcode_a2 ,z_mouse_le_bb_disconnected 
+b0004 c0518019 beq zcode_a3 ,z_mouse_bb_event_reconn_timeout 
+b0005 c052002b beq zcode_a4 ,z_mouse_before_hibernate 
+b0006 20600000 rtn 
+
+z_mouse_24g_attempt_fail:
+b0007 704d7900 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
+b0008 20400292 call p_mouse_tx_power_init 
+b0009 20400194 call p_g24_check_51cmd_stop_24g 
+b000a 7041bd00 jam 0 ,mem_link_key_exists 
+b000b 2040026f call p_mouse_setgpio_hibernate 
+b000c 20200466 branch p_mouse_null_enter_hibernate_enable 
+
+z_mouse_le_conn_param_update_rsp_recieved:
+b000d 68014509 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+b000e c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
+b000f 68008441 fetch 1 ,mem_le_tsniff 
+b0010 1feb7e00 rshift2 pdata ,pdata 
+b0011 1fe67c0c sub pdata ,le_interval_15ms ,null 
+b0012 20610000 rtn positive 
+b0013 58000009 setarg le_interval_11_25ms 
+b0014 60014496 store 2 ,mem_le_interval_min 
+b0015 60014498 store 2 ,mem_le_interval_min + 2 
+b0016 204003df call p_app_updata_le_param 
+b0017 7047c601 jam le_lpm_disable ,mem_mouse_le_conn_param_reject 
+b0018 20600000 rtn 
 
 z_mouse_bb_event_reconn_timeout:
 
 z_mouse_bb_event_reconn_failed:
-b0004 68014682 fetch 2 ,mem_ui_state_map 
-b0005 c3860000 rtnbit1 ui_state_btn_down 
-b0006 c3830000 rtnbit1 ui_state_bt_discovery 
-b0007 c3858000 rtnbit1 ui_state_ble_adv 
-b0008 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
-b0009 c3828000 rtnbit1 mouse_bt_discovery_button_down_flag 
-b000a 202033a7 branch app_bb_hibernate 
-
-z_mouse_le_conn_param_update_rsp_recieved:
-b000b 68014509 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
-b000c c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
-b000d 68008441 fetch 1 ,mem_le_tsniff 
-b000e 1feb7e00 rshift2 pdata ,pdata 
-b000f 1fe67c0c sub pdata ,le_interval_15ms ,null 
-b0010 20210017 branch z_mouse_le_conn_param_update_rsp_not_accepted ,positive 
-b0011 58000009 setarg le_interval_11_25ms 
-b0012 60014496 store 2 ,mem_le_interval_min 
-b0013 60014498 store 2 ,mem_le_interval_min + 2 
-b0014 204003f0 call p_app_updata_le_param 
-b0015 7047c401 jam le_lpm_disable ,mem_mouse_le_conn_param_reject 
-b0016 20600000 rtn 
-
-z_mouse_le_conn_param_update_rsp_not_accepted:
-b0017 704b6301 jam 1 ,mem_mouse_le_updata_not_accepted_flag 
-b0018 202005c2 branch p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset 
+b0019 68014682 fetch 2 ,mem_ui_state_map 
+b001a c3860000 rtnbit1 ui_state_btn_down 
+b001b c3830000 rtnbit1 ui_state_bt_discovery 
+b001c c3858000 rtnbit1 ui_state_ble_adv 
+b001d 680246d3 fetch mouse_flag_len ,mem_mouse_flag 
+b001e c3828000 rtnbit1 mouse_bt_discovery_button_down_flag 
+b001f 202033a7 branch app_bb_hibernate 
 
 z_mouse_le_bb_disconnected:
-b0019 704b7100 jam 0 ,mem_mouse_le_bb_connected_flag 
-b001a 58000007 setarg le_interval_8_75ms 
-b001b 60014496 store 2 ,mem_le_interval_min 
-b001c 60014498 store 2 ,mem_le_interval_min + 2 
-b001d 7047c400 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
-b001e 70479e00 jam 0 ,mem_mouse_clear_sensor_data_flag 
-b001f 20400398 call p_mouse_data_init 
-b0020 20405816 call le_clr_config_more_data 
-b0021 204041d9 call mouse_bb_disconnected 
-b0022 20400304 call p_mouse_store_flash_device_info 
-b0023 6800cb6d fetch 1 ,mem_mouse_start_discovery_enable 
-b0024 207a0000 rtn blank 
-
-z_check_51cmd_adv:
-b0025 68034b64 fetch 6 ,mem_le_normal_lap 
-b0026 600344a0 store 6 ,mem_le_lap 
-b0027 20400428 call p_mouse_le_adv_data_update 
-b0028 20207df4 branch check_51cmd_adv 
+b0020 704b6800 jam 0 ,mem_mouse_le_bb_connected_flag 
+b0021 58000007 setarg le_interval_8_75ms 
+b0022 58000007 setarg le_interval_8_75ms 
+b0023 60014496 store 2 ,mem_le_interval_min 
+b0024 60014498 store 2 ,mem_le_interval_min + 2 
+b0025 7047c600 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+b0026 70479e00 jam 0 ,mem_mouse_clear_sensor_data_flag 
+b0027 20400399 call p_mouse_data_init 
+b0028 20405816 call le_clr_config_more_data 
+b0029 2040030f call p_mouse_store_flash_device_info 
+b002a 202041d9 branch mouse_bb_disconnected 
 
 z_mouse_before_hibernate:
-b0029 68120138 hfetch 4 ,core_lpm_ctrl 
-b002a 79207e1a set1 26 ,pdata 
-b002b 6012004c hstore 4 ,core_lpm_reg 
-b002c 20402c21 call lpm_write_ctrl 
-b002d 204074bd call disable_authrom 
-b002e 20404482 call mouse_devce_led_off 
-b002f 20400304 call p_mouse_store_flash_device_info 
-b0030 20403e9f call mouse_before_hibernate_wheel_gpio_set 
-b0031 204000e1 call p_mouse_setgpio_hibernate 
-b0032 204004ee call p_mouse_multi_led_gpio_set_float 
-b0033 2040033a call p_flash_deep_power_down 
-b0034 68108081 hfetch 1 ,core_gpio_sel1 
-b0035 1fe17ef7 and pdata ,0xf7 ,pdata 
-b0036 60108081 hstore 1 ,core_gpio_sel1 
-b0037 6810807f hfetch 1 ,core_gpio_pd3 
-b0038 79207e00 set1 0 ,pdata 
-b0039 6010807f hstore 1 ,core_gpio_pd3 
-b003a 20600000 rtn 
+b002b 78347c00 enable user 
+b002c 68120138 hfetch 4 ,0x8138 
+b002d 79347e1a setflag user ,26 ,pdata 
+b002e 6012004c hstore 4 ,core_lpm_reg 
+b002f 20402c21 call lpm_write_ctrl 
+b0030 204074bd call disable_authrom 
+b0031 20400491 call p_mouse_multi_led_off 
+b0032 2040030f call p_mouse_store_flash_device_info 
+b0033 20403e9f call mouse_before_hibernate_wheel_gpio_set 
+b0034 2040026f call p_mouse_setgpio_hibernate 
+b0035 20400349 call p_flash_deep_power_down 
+b0036 68108081 hfetch 1 ,core_gpio_sel1 
+b0037 1fe17ef7 and pdata ,0xf7 ,pdata 
+b0038 60108081 hstore 1 ,core_gpio_sel1 
+b0039 6810807f hfetch 1 ,core_gpio_pd3 
+b003a 79207e00 set1 0 ,pdata 
+b003b 6010807f hstore 1 ,core_gpio_pd3 
+b003c 6808c6ec fetcht 1 ,mem_config_bt_button_gpio 
+b003d 202067dd branch gpio_set_wake_by_current_state 
               org 0xc0001
 
 z_entranceb:
-c0001 c0588006 beq zcode_b1 ,z_mouse_sniff_not_accept 
-c0002 c059000c beq zcode_b2 ,z_mouse_enter_sniff_check 
-c0003 c0598011 beq zcode_b3 ,z_mouse_le_ll_start_encryt 
-c0004 c05a0019 beq zcode_b4 ,z_mouse_bb_event_disconnected 
-c0005 20600000 rtn 
+c0001 c0580008 beq zcode_b0 ,z_mouse_le_bb_event_connected 
+c0002 c058800f beq zcode_b1 ,z_mouse_sniff_not_accept 
+c0003 c0590015 beq zcode_b2 ,z_mouse_enter_sniff_check 
+c0004 c059801a beq zcode_b3 ,z_mouse_le_ll_start_encryt 
+c0005 c05a0021 beq zcode_b4 ,z_mouse_bb_event_disconnected 
+c0006 c05a8026 beq zcode_b5 ,z_mouse_irtual_cable_unplug 
+c0007 20600000 rtn 
+
+z_mouse_le_bb_event_connected:
+c0008 704b6801 jam 1 ,mem_mouse_le_bb_connected_flag 
+c0009 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
+c000a 243a000c nbranch p_mouse_le_bb_event_connected_next ,blank 
+c000b 704b6d14 jam 0x14 ,mem_mouse_send_secutiry_request_timer 
+
+p_mouse_le_bb_event_connected_next:
+c000c 20400469 call p_mouse_null_enter_hibernate_disable 
+c000d 20400399 call p_mouse_data_init 
+c000e 202041c3 branch mouse_le_bb_event_connected 
 
 z_mouse_sniff_not_accept:
-c0006 6800c808 fetch 1 ,mem_mouse_enter_sniff_count 
-c0007 c1010000 rtneq 2 
-c0008 1fe0fe01 increase 1 ,pdata 
-c0009 6000c808 store 1 ,mem_mouse_enter_sniff_count 
-c000a 7041e312 jam 0x12 ,mem_sniff_param_interval 
-c000b 2020340e branch app_bt_enter_sniff 
+c000f 6800c80a fetch 1 ,mem_mouse_enter_sniff_count 
+c0010 c1010000 rtneq 2 
+c0011 1fe0fe01 increase 1 ,pdata 
+c0012 6000c80a store 1 ,mem_mouse_enter_sniff_count 
+c0013 7041e312 jam 0x12 ,mem_sniff_param_interval 
+c0014 2020340e branch app_bt_enter_sniff 
 
 z_mouse_enter_sniff_check:
-c000c 6800c808 fetch 1 ,mem_mouse_enter_sniff_count 
-c000d c1810000 rtnne 2 
-c000e 70480800 jam 0 ,mem_mouse_enter_sniff_count 
-c000f 7041e30e jam 0x0e ,mem_sniff_param_interval 
-c0010 2020340e branch app_bt_enter_sniff 
+c0015 6800c80a fetch 1 ,mem_mouse_enter_sniff_count 
+c0016 c1810000 rtnne 2 
+c0017 70480a00 jam 0 ,mem_mouse_enter_sniff_count 
+c0018 7041e30e jam 0x0e ,mem_sniff_param_interval 
+c0019 2020340e branch app_bt_enter_sniff 
 
 z_mouse_le_ll_start_encryt:
-c0011 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
-c0012 c0008015 beq 1 ,z_mouse_le_ll_reconn_start_encryt 
-c0013 7046c614 jam 20 ,mem_le_start_encrypt_timer 
-c0014 20200017 branch z_mouse_le_ll_enable_start_enc_flag 
+c001a 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
+c001b c000801d beq 1 ,z_mouse_le_ll_reconn_start_encryt 
+c001c 2020001f branch z_mouse_le_ll_enable_start_enc_flag 
 
 z_mouse_le_ll_reconn_start_encryt:
-c0015 204003f0 call p_app_updata_le_param 
-c0016 7046c60a jam 10 ,mem_le_start_encrypt_timer 
+c001d 204003df call p_app_updata_le_param 
+c001e 7046c605 jam 5 ,mem_le_start_encrypt_timer 
 
 z_mouse_le_ll_enable_start_enc_flag:
-c0017 d8e00001 arg ll_start_enc_flag ,queue 
-c0018 202041b9 branch mouse_le_enable_connect_flag 
+c001f d8e00001 arg ll_start_enc_flag ,queue 
+c0020 202041b9 branch mouse_le_enable_connect_flag 
 
 z_mouse_bb_event_disconnected:
-c0019 704b0100 jam 0 ,mem_bt_rcvd_switch_req_accept 
-c001a 704b0300 jam 0 ,mem_bt_send_lmp_setup_complete 
-c001b 704b0c00 jam 0 ,mem_mouse_bt_send_first_package_flag 
-c001c 20400304 call p_mouse_store_flash_device_info 
-c001d 202041d9 branch mouse_bb_disconnected 
+c0021 704b0100 jam 0 ,mem_bt_rcvd_switch_req_accept 
+c0022 704b0300 jam 0 ,mem_bt_send_lmp_setup_complete 
+c0023 704b0c00 jam 0 ,mem_mouse_bt_send_first_package_flag 
+c0024 2040030f call p_mouse_store_flash_device_info 
+c0025 202041d9 branch mouse_bb_disconnected 
+
+z_mouse_irtual_cable_unplug:
+c0026 5fffffff setarg -1 
+c0027 60030040 store 6 ,mem_plap 
+c0028 70018533 jam rec_3_mode ,mem_record_bt_mode 
+c0029 704b69ff jam 0xff ,mem_mouse_fast_conn_flag 
+c002a 204042fb call mouse_before_store_reconn_info 
+c002b 704721ff jam 0xff ,mem_device1_type 
+c002c 2020030f branch p_mouse_store_flash_device_info 
 
Index: output/romcode.rom
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/output/romcode.rom	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/output/romcode.rom	(working copy)
@@ -24572,54 +24572,92 @@
 e0a08000
 c2007ff9
 20600000
-c0008003
+c0000003
 20600000
-70480800
+6800800e
+1fe0fe01
+6000800e
+20402435
+7920002c
+204022f2
+202c000e
+793f802c
+20402455
+243a0007
+202020fc
+793f802c
+2020215f
+c0080004
+c008801a
+20600000
+70480a00
 7041e30e
 204041e7
 68014208
-c283c1f5
+c283800e
 c28033a9
-c280800d
-c2810010
-c2818010
+c2808011
+c2810014
+c2818014
 202042b0
-c2828010
-c2818010
+204041c1
+68014208
+202041f7
+c2828014
+c2818014
 202042b0
 68014682
 c28642b0
 204033a9
-20400531
-c0038018
-6800c6b6
-203a0018
+2040028f
+c0028466
 202033a7
-70479f01
-7047a028
+68010264
+1fe20c00
+e8c08000
+6000cb04
+1fe1040f
+1ff1fe00
+c0038023
+c000802a
+20204d39
+20404d53
+704b0500
+6800cb04
+2feffe00
+20608000
+704b0501
 20600000
-c008000f
-c008801c
-c0090005
+18427e00
+c00283e5
+20204d41
+c0100014
+c0108021
+c0110005
 20600000
-204004ce
-704b7001
+704b6e01
 7047a101
 680146a8
+6808cb69
+18467cff
+2422800c
+58000258
 600146ae
-20400430
 20403418
+20400297
+58000004
+e0c08000
 d8c04390
-2040042c
+20400545
 20207df4
 68008048
-c0420013
-c0418016
+c0420018
+c041801b
 2020603f
-20400019
+2040001e
 68008048
 20206099
-20400019
+2040001e
 68008048
 2020610d
 6800c65a
@@ -24629,10 +24667,10 @@
 20406298
 68008049
 e0a08000
-6000cafc
+6000cafe
 204062a7
-6800cafc
-c0170025
+6800cafe
+c017002a
 20206051
 6800cb01
 207a0000
@@ -24643,32 +24681,68 @@
 1c427e00
 600204e9
 20600000
-c0100006
-c0108018
-c0110025
-c011802c
+c0180003
 20600000
-2040000e
+204062bc
+247a0000
+68008055
+207a0000
+c0020025
+c008000a
+20206320
+6800c55b
+c1000000
+c000800e
+2020635f
+20748000
+6800816d
+c2800012
+20206399
+6800cb03
+c000e39d
+6800c1bd
+203a63a9
+680084d1
+c4018000
+c4010000
+6800cb02
+207a0000
+704b0200
+680204e9
+d8400014
+98408400
+1c427e00
+98467c00
+24210023
+20206349
+704b0201
+20600000
+70480b14
+2020636f
+c0200004
+c0208016
+20600000
+2040000c
 2020557d
-6800c7c5
+6800c7c7
 6000c172
-7047c400
+7047c600
 20600000
-7047c401
+7047c601
 20600000
 6800c3d6
 1fe67c0c
-2421000c
+2421000a
 6800c3d8
-6808c7c5
+6808c7c7
 98467c00
-20210008
+20210006
 6800c3d8
 6000c172
-2020000a
+20200008
 6800843f
 c4030000
-2040001d
+2040001b
 24740000
 202055a0
 78347c00
@@ -24679,30 +24753,23 @@
 1ff1fe00
 c1800000
 20207fe9
-6800c7a1
-247a0000
-68008478
-1fe67e1a
-24628000
-7046c600
-20203d60
-204033af
-204026e9
-700a9902
-20407d86
-20405cf7
-20404d6b
-2020246e
-c0180003
+c0280003
 20600000
-204002be
-704b7000
-704b6d01
+704b6e00
+20400292
 70472001
 70479e00
-68034b64
-600344a0
-20400344
+2040053e
+680947c4
+18408401
+600947c4
+600944a1
+20400314
+180a7e00
+6000c4a0
+6801cb6a
+6001c4a3
+2040029e
 20403418
 68014687
 600146ac
@@ -24710,373 +24777,361 @@
 58000000
 600146b0
 600146ae
-20400430
+d8e00007
+204043ce
 204043ca
-20400334
-6800c210
-1fe67c33
-2042801c
+6800c092
+2feffe01
+20408023
 6800c092
 2feffe00
 2040fddd
-202004c6
-68034b64
-600344a0
-20400428
+202004a0
+7047a100
+20400297
+58000005
+e0c08000
+d8c04b12
+20400545
 20207df4
-c0200005
-c0208017
-c021001f
-20600000
-2040000e
-203401ea
-79200026
-6800cd87
-79207e02
-6000cd87
-204001d3
-20400153
-2020001b
-df200002
-d8c04c5b
-20407fe7
-5800ffff
-e8c90000
-98467c00
-2442ffe9
-c2000012
+c0300004
+c0308026
 20600000
+793f8026
+204001ab
+204001ca
+6800cc49
+c1ff8000
+20400018
+58000000
+60014c66
+200007d0
+6800cc66
+c07fadd4
+2040015c
+242c0021
+24378021
 79200026
-6800cd87
-79207e01
-6000cd87
-58000708
-60014d7f
-704d7e00
-20600000
+58000000
+60014c66
+20402f20
+20400159
+20200362
+70119eff
+6800cc3a
+6000919f
+68024c70
+600211a0
+d8400006
+da20119e
+20400198
+202001b8
+68014c66
+1fe0fe01
+60014c66
+204001ca
+2020000c
+6800c720
+c1008000
 680246d3
 c4088000
 c3818000
 c6130000
-20404482
 d8e00003
 204043ce
 58000000
 600146ae
 6000c6b4
-60014c60
+60014c66
 204042ca
-202001ea
-c0280006
-c028800c
-c0290010
-c029801b
+20200192
+c0380003
 20600000
-d8e00003
-204043d2
-7046a700
-2040405d
-204002be
-20200010
-704d7300
-204002be
-204001ec
-2020340a
-704b4400
-20400018
-204004b5
-20403f8d
-68024c5b
-6002477b
-20404366
-20200304
+793f8026
+2040002c
+20400019
+704c6600
+200007d0
+6800cc66
+c07fadd4
+2040015c
+242c0022
+24378022
+20400184
+20400292
+68024c61
+680a4c45
+98467c00
+20228036
+79200026
 58000000
-6001cd7e
-20600000
-6800cd7e
-c000add4
-2040002a
-2040019f
-242c0153
-24378153
-6800cd87
-793ffe02
-6000cd87
-704b4400
+60014c66
 20402f20
-2040019c
-20200358
-68024c13
-202001d2
-70119eff
-6800cc34
-6000919f
-68024c6a
-600211a0
-d8400006
-da20119e
-204001f1
-20200203
-6800cd7e
-c000add4
+20400159
+20200362
 70119eff
-6800cc34
+6800cc3a
 6000919f
-68024c6a
+68024c70
 600211a0
 d8400006
 da20119e
-204001f1
-20400203
-2040019f
-242c0026
-24378026
-204001c7
-68024c5b
-680a4d78
-98467c00
-20228016
-6800cc31
-c1840000
-704d8700
-204002be
-68024c5b
-680a4c3f
-98467c00
-202281e0
-68024c5b
-680a4c6a
-98467c00
-20428024
-704b4400
-20402f20
-2040019c
-20200358
-68024c13
-202001d2
-6800cd71
+20400198
+202001b8
+6800cc66
 1fe0fe01
-1fe17e03
-6000cd71
-c000002d
-c0010037
-202001ce
-204002be
-68024c6a
-60024c5b
-6800cd81
-6000cc3e
-20400035
-6008cd81
+6000cc66
+6800cd77
+1fe0fe01
+1fe17e01
+6000cd77
+c0000032
+c0008034
 20600000
-204001d3
-20200153
 7041de20
-68024d78
-60024c5b
-6800cd82
-6000cc3e
-20400035
-6008cd82
-20600000
-c0380004
-c038800b
+58000f0f
+60014c61
+e0a10000
+204001ab
+202001ca
+2040002c
+20200007
+2040003a
+20200007
+79200026
+2040003a
+704c4901
 20600000
-5fffffff
-60030040
-70018533
-704b77ff
-204042fb
-704721ff
-20200304
-6800cb44
-207a0000
-6800cc5f
-207a0000
-6800cd86
-1fe0fe01
-1fe17e03
-6000cd86
-247a0000
-704d8500
-6800cd85
-1fe0fe01
-6000cd85
-1fe67c08
-2421001f
-20400025
-2040019f
-242c002e
-2437802e
-2040010b
-2040019c
-6800cd84
-1fe0fe01
-6000cd84
-c0080103
+7041de20
+704c3800
+704c434e
+68024c45
+202001aa
+c0400008
+c0408004
 20600000
-70119eff
-6800cc34
-6000919f
-68024c6a
-600211a0
-d8400006
-da20119e
-204001f1
-20200203
-20400153
-20200015
-c0400003
+204068a2
+58001122
+600147c4
 20600000
+204000d9
 20403e6e
-204004ee
-6808cb47
+6808cb46
 2040680e
-58001802
-600140bd
+20403e1e
+20400025
 58000000
 60014154
+58001802
+600140bd
 204068a2
 20403e54
-204002f7
-6800c720
-c1010000
-68034b4e
-680b4722
-98467c00
-24228344
-20200346
-20600000
-c0480004
-c048801e
+20405810
+20405839
+2040582c
+20405818
+2040053a
+20400351
+2040031e
+6801c700
+9a40fe00
+20406562
+20400305
+df200003
+d8c04722
+20400358
+2434029e
+204002a0
+20600000
+204074b9
+d8c08c00
+d8a04878
+df200171
+20407f01
+580f0209
+e0a18000
+58120009
+e0a18000
+58100209
+e0a18000
+58000009
+e0a18000
+d8c08d71
+df200109
+20407f01
+70488f00
+7048876d
+5800401f
+600149dd
+58006d04
+60014a46
+580016b0
+60014a4c
+58004878
+60014575
+20600000
+c0480005
+c048801f
+c049002f
 20600000
-6800cc38
+6800cc3e
 c000ffe7
-6800cc43
-c000800b
-c001000e
-c0018011
+6800cc49
+c000800c
+c001000f
+c0018012
 20202a8c
-704c4311
+704c4911
 70119eaa
-20200013
-704c4312
+20200014
+704c4912
 70119e55
-20200013
-704c4313
+20200014
+704c4913
 70119e22
-6800cc34
+6800cc3a
 1fe17e07
 6000919f
-68024c6a
+68024c70
 600211a0
 7011a400
 da20119e
 d8400007
-204001f1
-20400168
+20400198
+20400124
 20207fe7
-6800cc43
+6800cc49
 c17f8000
-c0088024
-c0090026
-c0098028
-20600000
-704c4302
-20200198
-704c4303
-20200198
-704c43ff
+c0088025
+c0090027
+c0098029
+20600000
+704c4902
+20200155
+704c4903
+20200155
+704c49ff
 700a9939
 20407d86
-68024c13
-204001d2
-20200198
-c0500029
-c050800b
-c0510019
-68014682
-c3860000
-c3830000
-c3858000
-680246d3
-c3828000
-202033a7
+68024c19
+204001aa
+20200155
+70478b01
+d8e00003
+204043d2
+58000000
+60014707
+7046a700
+2040405d
+20400469
+20400292
+68024c61
+6002477b
+20404366
+2020030f
+c0500007
+c050800d
+c0510020
+c0518019
+c052002b
+20600000
+704d7900
+20400292
+20400194
+7041bd00
+2040026f
+20200466
 68014509
 c1000000
 68008441
 1feb7e00
 1fe67c0c
-20210017
+20610000
 58000009
 60014496
 60014498
-204003f0
-7047c401
+204003df
+7047c601
 20600000
-704b6301
-202005c2
-704b7100
+68014682
+c3860000
+c3830000
+c3858000
+680246d3
+c3828000
+202033a7
+704b6800
+58000007
 58000007
 60014496
 60014498
-7047c400
+7047c600
 70479e00
-20400398
+20400399
 20405816
-204041d9
-20400304
-6800cb6d
-207a0000
-68034b64
-600344a0
-20400428
-20207df4
+2040030f
+202041d9
+78347c00
 68120138
-79207e1a
+79347e1a
 6012004c
 20402c21
 204074bd
-20404482
-20400304
+20400491
+2040030f
 20403e9f
-204000e1
-204004ee
-2040033a
+2040026f
+20400349
 68108081
 1fe17ef7
 60108081
 6810807f
 79207e00
 6010807f
+6808c6ec
+202067dd
+c0580008
+c058800f
+c0590015
+c059801a
+c05a0021
+c05a8026
 20600000
-c0588006
-c059000c
-c0598011
-c05a0019
-20600000
-6800c808
+704b6801
+6800c7a1
+243a000c
+704b6d14
+20400469
+20400399
+202041c3
+6800c80a
 c1010000
 1fe0fe01
-6000c808
+6000c80a
 7041e312
 2020340e
-6800c808
+6800c80a
 c1810000
-70480800
+70480a00
 7041e30e
 2020340e
 6800c7a1
-c0008015
-7046c614
-20200017
-204003f0
-7046c60a
+c000801d
+2020001f
+204003df
+7046c605
 d8e00001
 202041b9
 704b0100
 704b0300
 704b0c00
-20400304
+2040030f
 202041d9
-000025ca
+5fffffff
+60030040
+70018533
+704b69ff
+204042fb
+704721ff
+2020030f
+0000d2df
Index: program/24g.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/24g.prog	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/24g.prog	(working copy)
@@ -461,6 +461,7 @@
 	call callback_func
 	add regc,offset_24g_enter_hibernate,temp
 	ifetch 8,temp
+g24_lpm_long_sleep_next:
 	call clk2lpo
 	storet 4,mem_sleep_counter
   	branch lpm_sleep
@@ -1098,7 +1099,7 @@
 	setarg STATE_24G_PAIRING_SUCCESS
 	call g24_store_mem_pairing_sm
 	//jam 0,mem_24g_check_dongle_times
-g24_app_tx_attempt_success:	
+g24_app_tx_attempt_success:
 	jam BT_EVT_24G_ATTEMPT_SUCCESS,mem_fifo_temp
 	branch ui_ipc_send_event
 
Index: program/app_mouse.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/app_mouse.prog	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/app_mouse.prog	(working copy)
@@ -158,7 +158,6 @@
 	fetch 1,mem_mouse_dpi_button_state
 	rtneq DPI_BUTTON_STATE_DOWN
 	jam DPI_BUTTON_STATE_DOWN,mem_mouse_dpi_button_state
-mouse_dpi_down_setting:
 	fetch 1,mem_mouse_dpi
 	increase 1,pdata
 	and pdata,0x03,pdata
@@ -972,7 +971,6 @@
 	fetcht 1,mem_sensor_data_gpio
 	call gpio_get_bit
 	nrtn true
-mouse_p3212_sensor_motion_1:	
 	setarg PAN_REG_PID_L
 	call twspi_read
 	bne P32XX_ID1,mouse_twspi_reset
@@ -1010,7 +1008,7 @@
 	fetcht 1,mem_sensor_data_gpio
 	call gpio_get_bit
 	nrtn true
-mouse_p32xx_sensor_motion_2:	
+mouse_p32xx_sensor_motion_2:
 	setarg PAN_REG_PID_L
 	call twspi_read
 	bne P32XX_ID1,mouse_p3065_judge   
@@ -1779,7 +1777,7 @@
 	arg mouse_bt_hid_handshake,regb
 	branch timer_single_step
 
-mouse_check_discovery_timeout_timer:
+mouse_check_discovery_timeout_timer:	
 	arg mem_mouse_discovery_timer,regc
 	arg mouse_check_discovery_timeout,regb
 	branch timer_single_step_2B
Index: program/le.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/le.prog	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/le.prog	(working copy)
@@ -234,6 +234,7 @@
 	fetch 3,mem_le_crcinit
 	iforce crc24_init
 	fetch 1,mem_le_ch_mapped
+le_prep2:
 	reverse pdata,temp
 	set1 1,temp
 	rshift temp,white_init
Index: program/patch.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/patch.prog	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/patch.prog	(working copy)
@@ -2,13 +2,14 @@
 define MOUSE
 define G24
 define BLE
-//define CLASSIC_BT
+define CLASSIC_BT
 define MOUSE_SMOOTHER
+//define HIGH_REPORT_BT
+//define HIGH_REPORT_G24
 //define XY_OFFSET
 //define ADC_ENABLE
 //define P24G_LOG
 //define RF_DEBUG
-//define BLE_RFIO
 define BLE_FAST_CONN_ENABLE
 
 //define DEBUGLOG
@@ -39,25 +40,16 @@
 	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 p_mouse_bt_discovery_button_up_init
+	fetch 1,mem_bt_ui_button_timeout
+	store 1,mem_bt_ui_button_count	//bt key timer init
+	call mouse_bt_discovery_button_down_disable
 	call p_mouse_spi_init
-ifdef MOUSE_SMOOTHER
+ifdef MOUSE_SMOOTHER	
 	call p_drawing_optima_init
 endif
 	call p_mouse_cb_fuction
 	call p_mouse_wakeup_from_power
-
-ifdef G24
-	fetch 4,mem_lap
-	store 4,mem_24g_device_addr
-endif
-ifdef BLE
-	call le_set_config_fixed_ltk
-	call le_set_justwork
-	call le_set_fixed_ltk
-	call le_set_config_read_authentication
-endif
-	call mouse_param_init	
+	//call p_mouse_select_device_button_wakeup_check	//hibernate wakeup need 190ms
 	branch p_mouse_setting_config
 
 p_mouse_cb_fuction:
@@ -71,10 +63,10 @@
 	setarg p_le_mouse_bb_event_connect_complete
 	store 2,mem_cb_att_write
 endif
-ifdef CLASSIC_BT
-	setarg p_mouse_bt
-	store 2,mem_cb_bt_process
-endif	
+//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
@@ -96,13 +88,7 @@
 p_mouse_wakeup_no_from_power:
 	fetch 1,mem_reconn_times_init
 	store 1,mem_reconn_times
-	fetch 6,mem_le_lap
-	store 6,mem_le_normal_lap
-	fetch 1,mem_power_on_flag
-	rtnbit1 2
-	//power on
-	branch p_mouse_dpi_config_default
-	
+	rtn
 p_mouse_24g_transmit_by_interrupt_exit_count_max:
 	setarg 375
 	store 2,mem_24g_transmit_by_interrupt_exit_count_init
@@ -120,30 +106,36 @@
 	nop 1
 	nop 1
 	nop 1
+	nop 1
+	nop 1
+	nop 1
+	nop 1
+	nop 1
+	nop 1
+	nop 1
+	nop 1
+	nop 1
 
 p_patch_array:
 	bbit1 8,pf_patch_ext
-	//patch00_0 is unuseful because of otp
+	//patch00_0 and patch11_2 are unuseful because of otp
 	beq patch00_1,p_soft_reset_1
 	beq patch00_2,p_soft_reset_2
 	beq patch10_5,p_shutdown_radio
 	beq patch11_1,p_set_freq_tx
-	beq patch11_2,p_initialize_radio_cont	
-ifdef BLE_RFIO
-	beq patch0c_5,p_end_of_packet
-endif	
-ifdef CLASSIC_BT
-	beq patch03_3,p_page_wait_fhs_reply_ok
-	beq patch04_6,p_role_switch_master
-	beq patch09_0,p_quit_connection_cont
-	beq patch09_2,p_prepare_tx
-	beq patch0a_1,p_slave_conn_recv_packet
- 	beq patch0b_1,p_process_dmh
-	beq patch14_7,p_lpm_dispatch
-	beq patch15_5,p_lpm_set_mult
-	beq patch19_3,app_bt_start_reconnect+3
-	beq patch1d_1,p_mouse_bb_disconnected
-endif	
+	beq patch11_2,p_initialize_radio_cont
+//ifdef CLASSIC_BT
+//	beq patch03_3,p_page_wait_fhs_reply_ok
+//	beq patch04_6,p_role_switch_master
+//	beq patch09_0,p_quit_connection_cont
+//	beq patch09_2,p_prepare_tx
+//	beq patch0a_1,p_slave_conn_recv_packet
+// 	beq patch0b_1,p_process_dmh
+//	beq patch14_7,p_lpm_dispatch
+//	beq patch15_5,p_lpm_set_mult
+//	beq patch19_3,app_bt_start_reconnect+3
+//	beq patch1d_1,p_mouse_bb_disconnected
+//endif	
 	beq patch14_1,p_init_param
 	beq patch16_1,p_lpm_check_wake_lock
 	beq patch16_2,p_g24_dispatch
@@ -158,10 +150,6 @@
 ifdef BLE
 	beq patch27_1,p_le_slave_match
 	beq patch28_3,p_le_next_adv_channel
-ifdef BLE_RFIO	
-	beq patch29_1,p_le_receive_rxon
-	beq patch29_3,p_lerx_nopayload
-endif	
 	beq patch29_2,p_le_receive_skip
 	beq patch2a_7,p_le_update_param
 	beq patch2b_1,p_le_update_channel_map
@@ -170,16 +158,16 @@
 	beq patch2c_7,p_le_parse_l2cap
 	beq patch2d_2,p_le_adv_not_match
 	beq patch2e_7,p_le_lpm_setmult
-	beq patch3f_2,p_check_51cmd_once_continue
 endif	
-ifdef CLASSIC_BT
-	beq patch20_5,p_hid_rx_process
-	beq patch30_0,p_parse_lmp_accepted
-	beq patch30_2,p_send_lmp
-	beq patch31_0,p_process_conn_sm
-endif
+//ifdef CLASSIC_BT
+//	beq patch20_5,p_hid_rx_process
+//	beq patch30_0,p_parse_lmp_accepted
+//	beq patch30_2,p_send_lmp
+//	beq patch31_0,p_process_conn_sm
+//endif
 	beq patch31_4,p_twspi_reset
 	beq patch31_5,p_spid_init
+	beq patch3f_2,p_check_51cmd_once_continue
 ifdef DEBUGLOG
 	beq patch2f_6,p_parse_lmp_opcode
 	beq patch37_6,p_process_upper_sm_reconn
@@ -190,20 +178,23 @@
 	
 
 ifdef MOUSE
-p_rssi_signal:
-	copy pdata,rega
-	fetcht 1,mem_rssi_signal_index
-	setarg mem_rssi_signal_buf
-	iadd temp,contw
-	copy rega,pdata
-	istore 1,contw
-	increase 1,temp
-	and_into RSSI_BUF_LEN_SIGNAL,temp
-	storet 1,mem_rssi_signal_index
-	rtn
+//p_mouse_select_device_button_wakeup_check:
+//	jam 0,mem_mouse_select_device_button_wakeup_flag
+//	call p_mouse_get_select_state
+//	rtn true
+//	call delay_10ms
+//	call p_mouse_get_select_state
+//	rtn true
+//	jam 1,mem_mouse_select_device_button_wakeup_flag
+//	rtn
+
+//p_mouse_switch_Hwakeup_byPB:
+//	fetch 1,mem_mouse_select_device_button_wakeup_flag
+//	rtn blank
+//	call p_mouse_switch_device_flag
+//	branch p_mouse_store_flash_device_info	
 
 p_soft_reset_1:
-//	call p_mouse_select_device_button_wakeup_check
 	arg mem_sp_state,contw
 	arg 12,loopcnt
 	call clear_mem
@@ -225,6 +216,7 @@
 	call ssp_disable
 ifdef SECURE_CONNECTION
 	call publickey_init
+
 endif
 endif
 	call lpm_recover_clk,wake
@@ -253,12 +245,10 @@
 	branch disable_blank,blank
 	fetch 1,mem_mouse_le_conn_param_reject
 	beq LE_LPM_DISABLE,disable_blank
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_LOW_VOLTAGE_FLAG,disable_blank
-ifdef CLASSIC_BT	
-	fetch 2,mem_sdp_remote_cid
-	nbranch disable_blank,blank
-endif
+//ifdef CLASSIC_BT	
+//	fetch 2,mem_sdp_remote_cid
+//	nbranch disable_blank,blank
+//endif
 	fetch 1,mem_mouse_wheel_trigger
 	nbranch disable_blank,blank
 	branch enable_blank
@@ -267,9 +257,6 @@
 ifdef G24
 p_g24_dispatch:
 	rtnmark0 mark_24g
-	fetch 1,mem_24g_conn_sm
-	bbit1 STATE_24G_PAIR,p_g24_pair_dispatch
-	bbit1 STATE_24G_RECONN,p_g24_reconn_dispatch
 	fetch 1,mem_24g_transmit_by_interrupt
 	beq G24_TX_TIMER_INT_ENABLE,p_g24_transmit_by_interrupt
 p_g24_transmit_process:
@@ -284,29 +271,28 @@
 	call g24_long_sleep_shorter_param_update
 	fetch 1,mem_mouse_multi_led_state
 	beq ON,p_g24_transmit_by_interrupt_enable
-p_g24_short_sleep:
+	fetch 1,mem_mouse_key
+	bbit1 2,p_g24_transmit_by_interrupt_enable	//MButton
+p_g24_short_sleep:	
 	call p_g24_lpm_wait
 	nrtn user
 	call p_clear_wake
-	setarg 61500
+ifdef HIGH_REPORT_G24
+	setarg G24_4MS_INTERVAL_PARAM
+else
+	setarg 60500
+endif
 	branch lpm_dispatch_sleep
 
-p_g24_pair_dispatch:
-	jam ZCODE_60,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_g24_reconn_dispatch:
-	jam ZCODE_53,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
 g24_long_sleep_shorter_param_update:
 //	fetch 1,mem_config_function_enable
 //	rtnbit1 ENABLE_SENSOR_MOTION_PIN
 	setarg G24_LONG_SLEEP_STEP1
 	store 3,mem_24g_enter_hibernate
-	jam 20,mem_24g_long_sleep_param_update_timer
+	setarg 0x14
+	store 2,mem_24g_long_sleep_param_update_timer
 	rtn
-
+	
 p_g24_transmit_by_interrupt:
 	call p_g24_timer_check
 	nrtn user
@@ -322,17 +308,17 @@
 	jam G24_TX_TIMER_INT_DISABLE,mem_24g_transmit_by_interrupt
 	setarg 0
 	store 2,mem_24g_transmit_by_interrupt_exit_count
-	setarg 25
+	setarg 100
 	store 2,mem_24g_transmit_by_interrupt_exit_count_init
 p_g24_interval_min:
 	jam 0,mem_24g_pac_index
 	fetch 1,mem_24g_interval_min
-p_g24_interval_store:
+p_g24_current_interval_store:
 	store 1,mem_24g_interval
 	rtn
 p_g24_interval_max:
 	fetch 1,mem_24g_interval_max
-	branch p_g24_interval_store	
+	branch p_g24_current_interval_store
 p_g24_interval_calibrate:
 	fetch 1,mem_24g_pac_index
 	increase 1,pdata
@@ -348,9 +334,6 @@
 	nrtn blank
 	fetch 1,mem_mouse_multi_led_state
 	rtneq ON
-	fetch 1,mem_24g_transmit_by_interrupt
-	rtneq G24_TX_TIMER_INT_ENABLE
-	call p_g24_search_dongle
 p_g24_long_sleep:
 	call p_g24_lpm_wait
 	nrtn user
@@ -358,7 +341,7 @@
 	call clk2lpo
 	storet 4,mem_sleep_counter
   	branch lpm_sleep
-
+	
 p_g24_lpm_wait:
 	enable user
 	call lpo_calibration
@@ -368,28 +351,7 @@
 	branch disable_user,blank
 	fetch 1,mem_24g_transmit_by_interrupt
 	beq G24_TX_TIMER_INT_ENABLE,disable_user
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_LOW_VOLTAGE_FLAG,disable_user
-p_mouse_setgpio_lpm:
-	call p_mouse_set_sdio_high
-	call p_clear_wake
-p_mouse_setgpio_hibernate:	
-	call mouse_lpm_before_common
-	call p_flash_ncs_disable
-	hfetch 4,core_gpio_oe0
-	hfetcht 4,core_gpio_pu0
-	ior temp,temp
-	invert temp,temp
-	hstoret 4,core_gpio_pd0
-	hfetch 1,core_gpio_pd1
-	set0 2,pdata
-	hstore 1,core_gpio_pd1
-	hfetch 1,core_gpio_pd2	//flash hold pin gpio22
-	set0 6,pdata
-	hstore 1,core_gpio_pd2
-p_mouse_set_ice_gpio:
-	arg 0x1d,temp
-	branch gpio_config_input	//input and pullup
+	branch p_mouse_setgpio_lpm
 
 p_g24_send_abort_packet:
 	jam 1,mem_24g_abort_pac
@@ -407,45 +369,11 @@
 	call p_g24_txdata_enable_tx
 	branch p_g24_transmit_start
 
-p_g24_search_dongle_init:
-	setarg 0
-	store 3,mem_24g_search_dongle_action
+p_g24_set_device_addr:
+	fetch 4,mem_lap
+	store 4,mem_24g_device_addr
 	rtn
 
-p_g24_search_dongle:
-	jam ZCODE_71,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
-p_g24_search_dongle_check:
-	jam 0,mem_24g_search_dongle_count
-	fetch 1,mem_24g_search_dongle_action
-	rtnbit1 G24_DISCONN_STATE
-	set1 G24_DISCONN_STATE,pdata
-	store 1,mem_24g_search_dongle_action
-	setarg G24_DISCONN_NODATA_TIMER	//3min
-	store 2,mem_mouse_no_data_timer
-	branch p_mouse_sensor_powerdown
-
-p_g24_search_dongle_success:
-	fetch 1,mem_24g_abort_pac
-	branch p_g24_search_dongle_init,blank
-	jam 0,mem_24g_search_dongle_count
-	fetch 1,mem_24g_search_dongle_action
-	rtnbit0 G24_DISCONN_STATE
-	set0 G24_DISCONN_STATE,pdata
-	store 1,mem_24g_search_dongle_action
-	call mouse_no_data_timer_init
-	branch p_mouse_init_sensor_reset
-
-//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
-//	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
@@ -465,7 +393,7 @@
 
 p_g24_hop_enable_packet:
 	fetch 1,mem_24g_data_type
-	rtnbit0 bit_hop
+	rtnbit0 bit_hop	
 p_g24_hop_ch_disable:
 	fetch 1,mem_24g_data_type
 	set0 bit_hop,pdata
@@ -473,33 +401,7 @@
 	store 1,mem_24g_txpayload
 	call power_ctrl_pac_succ_decrs
 	branch p_g24_ch
-	
-//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
@@ -559,20 +461,7 @@
 	store 1,mem_24g_sync_cnt
 	jam 2,mem_24g_rf_work_stage
 	jam 4,mem_24g_max_retry
-p_g24_ch:
-	fetcht 1,mem_24g_current_ch_number
-	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
-	store 1,mem_24g_ch
-	increase 1,temp
-	and_into 3,temp //map size =4
-	storet 1,mem_24g_current_ch_number
-	rtn
+	branch p_g24_ch
 
 p_g24_rf_hop_attemp:
 	jam 3,mem_24g_rf_work_stage
@@ -600,6 +489,7 @@
 	branch enable_user	// retransmit
 p_g24_accumulate_mouse_data:
 	call p_mouse_data_xy_release
+	call p_mouse_wheel_trigger
 	jam 0,mem_24g_abort_pac
 	add rega,1,pdata
 	store 1,mem_24g_datalen
@@ -641,7 +531,7 @@
 	fetch 1,mem_24g_pid
 	increase 1,pdata
 	store 1,mem_24g_pid
-	call p_g24_hop_enable_packet	
+	call p_g24_hop_enable_packet
 	fetch 1,mem_24g_pairing_sm
 	bne STATE_24G_PAIRING_SUCCESS,p_g24_paring_mode_start
 	call p_g24_transmit_succ_rf_config
@@ -691,7 +581,7 @@
 	bne STATE_24G_PAIRING_SUCCESS,p_g24_tx_paring_retry
 	call p_g24_tx_hop_ch_process
 	branch p_g24_transmit_loop
-	
+
 p_g24_tx_paring_retry:
 	fetch 1,mem_24g_txfail_cnt
 	rtnne 0xff
@@ -726,37 +616,6 @@
 	arg mem_24g_rxpayload,contw	//ack payload buffer 
 	branch memcpy
 
-p_g24_pair_init:
-	jam TX_POWER_f5DB,mem_tx_power
-	jam 0,mem_24g_pid
-	jam G24_PAIR_CH,mem_24g_ch
-	fetch 4,mem_24g_paring_addr
-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_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_g24_pairing_sm:
 	jam ZCODE_90,mem_zcode_temp_param0
 	branch p_zcode_entrance
@@ -768,22 +627,20 @@
 	branch p_zcode_entrance
 
 p_g24_start_24g_mode:
-	jam ZCODE_40,mem_zcode_temp_param0
+	jam ZCODE_60,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_g24_auto_pair_start:
-	jam ZCODE_41,mem_zcode_temp_param0
+	jam ZCODE_70,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_g24_check_51cmd_stop_24g:
 	set0 mark_24g,mark
-	jam STATE_24G_STOP,mem_24g_conn_sm
 	call le_disable
 p_mouse_disable_g24_pairing_flag:
 	arg MOSUE_24G_PAIRING_FLAG,queue
 	branch mouse_disable_function_flag
 
-
 p_g24_put_data_in_buff:
 	storet 1,mem_24g_datalen
 	copy temp,loopcnt
@@ -809,7 +666,24 @@
 	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_g24_transmit_prep:
 ifdef P24G_LOG
@@ -841,20 +715,21 @@
 	arg mem_24g_txbuf,contr
 	branch memcpy
 
-//p_g24_ch:
-//	fetcht 1,mem_24g_current_ch_number
-//	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
-//	store 1,mem_24g_ch
-//	increase 1,temp
-//	and_into 3,temp //map size =4
-//	storet 1,mem_24g_current_ch_number
-//	rtn
+p_g24_ch:
+	fetcht 1,mem_24g_current_ch_number
+	//call p_g24_ch_map_size
+	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
+	store 1,mem_24g_ch
+	increase 1,temp
+	and_into 3,temp //map size =4
+	storet 1,mem_24g_current_ch_number
+	rtn
 
 //p_g24_ch_map_size:
 //	call p_g24_ch_calc
@@ -879,11 +754,8 @@
 	setarg 0x555555
 	iforce crc24_init
 	fetch 1,mem_24g_ch
-	reverse pdata,temp
-	set1 1,temp
-	rshift temp,white_init
-	rtn
-
+	branch le_prep2
+	
 //p_g24_receive_packet:
 //	call le_enable
 //	fetch 4,mem_24g_addr
@@ -909,7 +781,7 @@
 	fetch 2,mem_24g_rx_window
 	iforce stop_watch
 	correlate null,timeout
-	nbranch p_g24_sync_timeout,sync
+	nbranch p_g24_end_of_packet,sync
 
 ifdef RF_DEBUG
 	call test_gpio_low
@@ -978,10 +850,17 @@
 ifdef DONGLE
 	rtn
 endif
-ifdef MOUSE
 	fetch 1,mem_rssi_hex_received
-	call p_rssi_signal
-endif
+p_rssi_signal:
+	copy pdata,rega
+	fetcht 1,mem_rssi_signal_index
+	setarg mem_rssi_signal_buf
+	iadd temp,contw
+	copy rega,pdata
+	istore 1,contw
+	increase 1,temp
+	and_into RSSI_BUF_LEN_SIGNAL,temp
+	storet 1,mem_rssi_signal_index
 	rtn
 
 p_g24_receive_byte:
@@ -989,31 +868,32 @@
 	rshift3 pwindow,pdata
 	rtn
 	
-p_g24_sync_timeout:
-//ifdef DONGLE
-//	call p_rssi_noise
-//endif
-//	branch p_g24_end_of_packet
 p_g24_end_of_packet:
 	disable encode_fec1
 	disable decode_fec1
-	call end_of_packet
-ifdef RF_DEBUG
-	call test_gpio_low
-endif
-	rtn
+	branch end_of_packet
+//ifdef RF_DEBUG
+//	call test_gpio_low
+//endif
+//	rtn
 
-p_g24_set_freq_tx:
-	call set_sync_on
-	fetcht 1,mem_24g_ch
-	branch set_freq_tx
+//p_g24_sync_timeout:
+//	branch p_g24_end_of_packet
+
+//p_g24_set_freq_tx:
+//	call set_sync_on
+//	fetcht 1,mem_24g_ch
+//	branch set_freq_tx
 
 p_g24_transmit:
 	call le_enable
 	fetch 4,mem_24g_addr
 	iforce access
 	call p_g24_prep
-	call p_g24_set_freq_tx
+	//call p_g24_set_freq_tx
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	call set_freq_tx
 	set1 TXGFSK,radio_ctrl
 	enable encode_fec0
 	enable is_tx
@@ -1080,28 +960,6 @@
 	store 4,mem_24g_tx_btclk
 	branch enable_user
 
-//p_rssi_noise:
-//	call save_rssi
-//	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
@@ -1114,7 +972,7 @@
 ifdef DONGLE
 	branch rssi_average_loop
 endif
-ifdef MOUSE
+//ifdef MOUSE
 p_rssi_average_loop:
 	ifetch 1,contr
 	iadd temp,temp
@@ -1130,8 +988,8 @@
 	remainder temp
 	ior temp,temp
 	rtn
-endif
-	rtn
+//endif
+//	rtn
 
 endif
 
@@ -1148,21 +1006,41 @@
 	store 8,mem_gpio_wakeup_low
 	rtn
 
-
-p_mouse_set_sdio_high:
-	fetch 1,mem_mouse_init_sensor_reset_flag
-	rtn blank
-	branch p_mouse_seting_sensor_type// make sdio high to make 100uA less
-
-p_device_init:
-	jam 0x86,0x895b	
-	jam 0xa0,0x895c
-	call initialize_radio
-ifdef DEBUGLOG
-	call debuglog_init
-ifdef DEBUGLOG_STATUS
-	setarg DEBUGLOG_DTYPE_STATUS
-	store 2,mem_debuglog_datatype
+p_mouse_setgpio_lpm:
+	call p_mouse_set_sdio_high
+	call p_clear_wake
+p_mouse_setgpio_hibernate:
+	call mouse_lpm_before_common
+	call p_flash_ncs_disable
+	hfetch 4,core_gpio_oe0
+	hfetcht 4,core_gpio_pu0
+	ior temp,temp
+	invert temp,temp
+	hstoret 4,core_gpio_pd0
+	hfetch 1,core_gpio_pd1
+	set0 2,pdata
+	hstore 1,core_gpio_pd1
+	hfetch 1,core_gpio_pd2	//flash hold pin gpio22
+	set0 6,pdata
+	hstore 1,core_gpio_pd2	
+p_set_ice_gpio_float:	
+	arg 0x1d,temp
+	branch gpio_set_high_impedance	
+	
+p_mouse_set_sdio_high:
+	fetch 1,mem_mouse_init_sensor_reset_flag
+	rtn blank
+	branch p_mouse_seting_sensor_type// make sdio high to make 100uA less	
+
+p_device_init:
+	jam 0x86,0x895b	
+	jam 0xa0,0x895c
+	call initialize_radio
+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	
@@ -1170,7 +1048,7 @@
 endif
 	call app_lpm_mult_enable
 	call enable_authrom
-	branch p_device_wake_from_lpm,wake
+	branch p_mouse_spi_init,wake
 p_device_wake_from_power:
 ifdef DEBUGLOG
 ifdef DEBUGLOG_STATUS
@@ -1184,36 +1062,36 @@
 ifdef RF_DEBUG
 	call test_gpio_init
 endif
+ifdef BLE_FAST_CONN_ENABLE
+	fetch 3,mem_le_lap+3
+	store 3,mem_le_lap_high_3B
+endif
 	call p_wake_from_power
+
+	//call p_mouse_switch_Hwakeup_byPB
 //ifdef G24
-//	fetch 1,mem_power_on_flag
-//	bbit1 2,p_mouse_skip_24g_pair
-//	call p_mouse_check_key_gpio
+//	call p_mouse_check_key_gpio_once
 //	beq MOUSE_LR_BUTTON,p_mouse_24g_pairing_button
-//p_mouse_skip_24g_pair:
 //endif
 p_mouse_check_reconn_target:
 	call p_mouse_tx_power_init
 //	fetch 1,mem_device_flag
 //	beq MODE_24G_DEVICE,p_mouse_connect_24g_mode
-//	beq MODE_DEFAULT_DEVICE,p_mouse_connect_24g_mode
+//	beq 0xff,p_mouse_connect_24g_mode
+	call p_mouse_mode_bt_device1_multi_led_on
 	fetch 1,mem_xrecord_mode
-ifdef CLASSIC_BT
-	beq REC_3_MODE,p_mouse3_0_check_reconn_target
-endif
+//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
-	call p_mouse_fast_conn_adv_switch_timer_reinit
-	jam 6,mem_connection_options
-	call p_mouse_check_fast_conn_adv_start
-	fetch 1,mem_device_option
-	isolate1 MODE_3_MOUSE,pdata
-	call check_51cmd_start_discovery,true
-	branch p_mouse_discovery_multi_led_blink
+endif	
+	branch p_mouse_null_enter_hibernate_enable	//enter hibernate if it is in its factory state
 
-p_device_wake_from_lpm:
-	branch p_mouse_spi_init
+p_mouse_check_key_gpio_once:
+	setarg 0x030303
+	store 3,mem_mouse_lkey_press_status
+	branch p_mouse_check_key_gpio
 
 p_mouse_tx_power_init:
 	fetch 1,mem_tx_power_temp
@@ -1224,26 +1102,68 @@
 //	fetch 1,mem_config_function_enable
 //	branch mouse_cheak_select_device_by_switch+1
 
-ifdef CLASSIC_BT
-p_mouse3_0_check_reconn_target:
-	call p_mouse_bt_reconn_multi_led_blink
-	fetch 6,mem_hci_plap
-	branch app_bt_start_discovery_short,blank
-	branch mouse3_0_check_reconn_target+3
-endif
+//p_mouse_connect_24g_mode:
+//	jam MODE_24G_DEVICE,mem_device_flag
+//	call p_mouse_mode_24g_device_multi_led_on
+//	branch p_mouse_start_24g_mode
+
+//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 ZCODE_12,mem_zcode_temp_param0
+	jam ZCODE_22,mem_zcode_temp_param0
 	branch p_zcode_entrance
+
+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
+
+ifdef BLE_FAST_CONN_ENABLE
+p_mouse_le_fast_conn_disable:
+	jam 0x5a,mem_mouse_fast_conn_flag
+	rtn
+	
+p_mouse_fast_conn_init:
+	jam 0xff,mem_mouse_fast_conn_flag
+	jam 0x34,mem_xrecord_mode
+	setarg 0x0f0f0f
+	store 3,mem_le_lap
+	store 3,mem_le_lap+3
+	rtn	
+endif
+	
 endif
 
 ifdef G24
 p_mouse_24g_pairing_button:
-	jam ZCODE_42,mem_zcode_temp_param0
+	call p_mouse_sensor_powerdown
+	//call p_mouse_discovery_multi_led_blink
+	jam ZCODE_61,mem_zcode_temp_param0
 	branch p_zcode_entrance
 endif
 
+//p_mouse_devce_led_off:
+//	call mouse_device1_led_on
+//	call mouse_device2_led_on
+//	fetch 1,mem_config_low_voltage_alarm_gpio
+//	store 1,mem_mouse_struct_led_gpio
+//	branch mouse_led_on
+
+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
@@ -1255,11 +1175,18 @@
 	nop 1000
 	branch p_mouse_init_sensor
 
+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
 	fetch 1,mem_sensor_id2
 	beq P_MX8650,p_mouse_mx8650_init_param
-	branch mouse_init_p32xx_id2_judge
+	beq P8009_ID2,p_mouse_8009_init_param
+	branch mouse_init_p32xx_id2_judge+1
 
 p_mouse_mx8650_init_param:
 	jam MX8650,mem_config_sensor_type
@@ -1277,17 +1204,66 @@
 	call twspi_write
 	increase 2,regc
 	branch p_sensor_wr_seq
+	
+p_mouse_8009_init_param:
+	setarg 0x16
+	call twspi_read
+	sub pdata,0xbd,null 
+	nbranch p_mouse_init_sensor,zero
+	setarg 0x19
+	call twspi_read
+	sub pdata,0x55,null 
+	nbranch p_mouse_init_sensor,zero
+	setarg 0x1b
+	call twspi_read
+	sub pdata,0x1d,null 
+	nbranch p_mouse_init_sensor,zero
+	jam P8009,mem_config_sensor_type
+	arg mem_sensor_8009_init,regc
+	call p_sensor_wr_seq
+	branch p_mouse_dpi_config
 
 p_mouse_p3065_init_param:
 	call p_mouse_sensor_poweron
 	fetch 1,mem_sensor_id2
 	beq P3205_TJNT_ID2,p_mouse_p3205_nt_init_param
 	branch mouse_p3065_init_param
-	
+
 p_mouse_p3205_nt_init_param:
 	jam P3205_NT,mem_config_sensor_type
 	branch mouse_3205_3t_init_param+1
 	
+p_mouse_sensor_poweron:
+	call p_mouse_spi_init
+	setarg 0x8006	// reset to factory settings
+	call twspi_write
+	nop 12000
+	arg mem_sensor_poweron_init,regc
+	call p_sensor_wr_seq
+	branch p_mouse_dpi_config
+//	fetch 1,mem_sensor_id2
+//	beq P8009_ID2,p_mouse_8009_init_param
+//	rtn
+
+p_mouse_dpi_config:
+//	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+//	bbit0 MOUSE_ENABLE_EEPROM,mouse_dpi_config
+	fetch 1,mem_mouse_dpi
+	bne 0xff,p_mouse_seting_dpi
+p_mouse_dpi_config_default:
+	fetch 1,mem_config_sensor_motion
+	store 1,mem_mouse_dpi
+	branch p_mouse_seting_dpi
+
+p_mouse_sensor_powerdown:
+	call p_mouse_spi_init
+	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:
 	jam ZCODE_80,mem_zcode_temp_param0
 	branch p_zcode_entrance
@@ -1308,9 +1284,11 @@
 	hstore 1,core_gpio_sel1
 	setarg 0
 	store 4,mem_spid_tbuf
+
 	hfetch 1,core_gpio_pd3	//gpio24 can not be set pulldown
 	set0 0,pdata
 	hstore 1,core_gpio_pd3
+	
 	rtn
 
 p_mouse_load_flash_info_check:
@@ -1324,44 +1302,38 @@
 	call mouse_ble_init_address
 	fetch 1,mem_config_sensor_motion
 	store 1,mem_mouse_dpi
-	fetch 4,mem_mouse_24g_addr_init
-	store 4,mem_mouse_24g_addr
-	store 4,mem_24g_addr
+//	fetch 4,mem_mouse_24g_addr_init
+//	store 4,mem_mouse_24g_addr
+//	store 4,mem_24g_addr
 p_mouse_store_flash_device_info:
 	call p_flash_release_deep_power_down
 	call p_flash_erase_sector
 	call p_mouse_information_flash_parameters
 	call p_spid_write_flash
 	call p_wait_flash_done
-	//user flash data
-p_mouse_store_flash_user_data:
+p_mouse_store_random_addr_increase_count:
 	call p_spid_init_flash
-	arg 7,temp
-	arg mem_mouse_flash_start_temp,rega
-	arg MOUSE_USER_DATA_OFFECT,regb
+	arg 2,temp
+	arg mem_random_addr_increase_count,rega
+	arg MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET,regb
 	fetch 3,mem_flash_base
 	iadd regb,pdata
 	call p_spid_write_flash
 	call p_wait_flash_done
 	call p_flash_deep_power_down
-p_mouse_spi_init:
-	jam 0x76,mem_spi_init_clk
-	branch mouse_spi_init
+	branch p_mouse_spi_init
 
+p_mouse_set_24g_addr_flash:
+	arg 4,temp
+	arg mem_24g_addr,rega
+	arg MOUSE_G24_ADDR_EEPROM_OFFECT,regb
+	rtn
+	
 p_flash_erase_sector:
 	fetch 3,mem_flash_base
 	store 3,mem_spi_write_addr
 	call flash_erase_sector+2
-p_wait_flash_done:
-	setarg 100000
-	call sleep
-	call spid_unlock_flash
-	setarg mem_spid_rbuf
-	hstore 2,core_spid_rxaddr
-	setarg FLASH_READ_SATUS
-	call spid_read_reg
-	bbit1 FLASH_STATUS_WIP,p_wait_flash_done
-	rtn
+	branch p_wait_flash_done
 
 p_spid_write_flash:
 	copy pdata,regc
@@ -1376,6 +1348,17 @@
 	istore 4,regb
 	rtn
 
+p_wait_flash_done:
+	setarg 100000	
+	call sleep
+	call spid_unlock_flash
+	setarg mem_spid_rbuf
+	hstore 2,core_spid_rxaddr
+	setarg FLASH_READ_SATUS
+	call spid_read_reg
+	bbit1 FLASH_STATUS_WIP,p_wait_flash_done
+	rtn
+
 p_mouse_information_flash_parameters:
 	setarg mem_mouse_information_end
 	arg mem_mouse_information_start,temp
@@ -1389,11 +1372,10 @@
 	call p_mouse_information_flash_parameters
 	branch spid_read_flash
 
-p_mouse_load_flash_device_info:
+p_mouse_load_flash_device_info:	
 	call p_mouse_read_flash
-	call p_mouse_load_flash_user_data
+	call p_mouse_load_random_addr_increase_count
 //	call p_mouse_check_select_device_by_switch
-//	call p_mouse_switch_Hwakeup_byPB
 	call mouse_select_reconn_device
 	fetch 4,mem_mouse_24g_addr
 	store 4,mem_24g_addr
@@ -1413,73 +1395,26 @@
 p_flash_release_deep_power_down:
 	jam FLASH_COMMAND_RELEASE_DEEP_POWER_DOWN,mem_temp
 	branch p_spid_write_flash_cmd
-
-ifdef BLE_FAST_CONN_ENABLE
-p_mouse_fast_conn_disable:
-	jam 0x5a,mem_mouse_fast_conn_flag
-	rtn
-p_mouse_fast_conn_le_switch_adv:
-	jam 1,mem_le_switch_adv_timer
-	jam 1,mem_le_switch_adv_flag
-p_mouse_fast_conn_init:
-	jam 0xff,mem_mouse_fast_conn_flag
-	fetch 6,mem_24g_allpowerful_addr
-	store 6,mem_le_lap
-	rtn	
-
-endif
-
-p_mouse_load_flash_user_data:
-	call p_flash_release_deep_power_down
-	arg 7,temp
-	arg mem_mouse_flash_start_temp,rega
-	arg MOUSE_USER_DATA_OFFECT,regb
-	fetch 3,mem_flash_base
-	iadd regb,pdata
-	branch spid_read_flash
-
-//p_mouse_select_device_button_wakeup_check:
-//	jam 0,mem_mouse_select_device_button_wakeup_flag
-//	fetcht 1,mem_config_select_device_button_gpio
-//	call gpio_config_input
-//	fetcht 1,mem_config_select_device_button_gpio
-//	call gpio_get_bit
-//	nrtn true
-//	call delay_10ms
-//	fetcht 1,mem_config_select_device_button_gpio
-//	call gpio_get_bit
-//	nrtn true
-//	jam 1,mem_mouse_select_device_button_wakeup_flag
-//	rtn
-
-//p_mouse_switch_Hwakeup_byPB:
-//	fetch 1,mem_config_function_enable
-//	rtnbit1 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
-//	fetch 1,mem_mouse_select_device_button_wakeup_flag
-//	rtn blank
-//p_mouse_switch_device:
-//	fetcht 1,mem_device_flag
-//	increase 1,temp
-//	fetch 1,mem_device_number
-//	isub temp,null
-//	ncall mouse_select_device_count_clean,positive
-//	storet 1,mem_device_flag
-//	branch p_mouse_store_flash_device_info
-
-p_mouse_connect_24g_mode:
-	call p_mouse_mode_24g_device_multi_led_on
+	
 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
 
-//auto pair
-//	fetch 1,mem_power_on_flag
-//	bbit1 2,p_g24_start_24g_mode	//hibernate goto reconn
-//	fetch 4,mem_mouse_24g_addr_init	//power on goto pair
-//	store 4,mem_24g_addr
-//	call p_mouse_store_flash_device_info
-//	branch p_g24_auto_pair_start
+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 G24
 p_mouse_g24_package_data:
@@ -1518,36 +1453,10 @@
 	arg mem_le_tx_buffer3,contw
 	branch p_mouse_le_txbuff_copy
 
-
-p_mouse_le_current_mult_update:
-	jam 0,mem_lpm_mult
-	jam 30,mem_mouse_le_current_mult_timer
-	rtn
-
-p_mouse_data_xy_release:
-	fetch 1,mem_mouse_long_mult_flag
-	rtnne 1
-	setarg 0
-	store 1,mem_mouse_long_mult_flag
-	store 4,mem_mouse_x
-	branch p_mouse_init_sensor_reset
-	
-p_mouse_sensor_poweron:
-	call p_mouse_spi_init
-	setarg 0x8006
-	call twspi_write
-	nop 12000
-	arg mem_sensor_poweron_init,regc
-	call p_sensor_wr_seq
-	branch p_mouse_dpi_config
-	
-p_mouse_dpi_config:
-	fetch 1,mem_mouse_dpi
-	bne 0xff,p_mouse_seting_dpi
-p_mouse_dpi_config_default:
-	fetch 1,mem_config_sensor_motion
-	store 1,mem_mouse_dpi
-	branch p_mouse_seting_dpi
+p_mouse_le_send_empty_packet:
+	fetch 2,mem_le_tx_ptr0
+	nrtn blank
+	branch mouse_le_send_empty_packet
 
 p_mouse_le:
 	call le_fifo_check_nearly_full
@@ -1555,17 +1464,23 @@
 ifdef BLE_FAST_CONN_ENABLE
 	fetch 1,mem_mouse_fast_conn_flag
 	beq 0xff,p_mouse_le_next
-endif	
+endif
 	fetch 1,mem_le_connect_status_flag
 	and pdata,0x03,pdata
 	rtnne 0x03
-p_mouse_le_next:	
+p_mouse_le_next:
 	fetch 1,mem_mouse_clear_sensor_data_flag
 	call p_mouse_clear_sensor_data,blank
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,p_mouse_le_send_empty_packet
 	call mouse_motion
+ifdef HIGH_REPORT_BT
+	nbranch p_bt_125hz_clear,user
+	call p_bt_125hz
+	nrtn user7
+else
 	nrtn user
+endif
 	call p_mouse_le_current_mult_update
 	call p_mouse_data_xy_release
 	call p_mouse_wheel_trigger
@@ -1589,6 +1504,23 @@
 endif
 	rtn
 
+p_mouse_le_current_mult_update:
+//	fetch 1,mem_config_function_enable
+//	rtnbit1 ENABLE_SENSOR_MOTION_PIN
+	jam 0,mem_lpm_mult
+	jam 30,mem_mouse_le_current_mult_timer
+	rtn	
+
+p_mouse_data_xy_release:
+//	fetch 1,mem_config_function_enable
+//	rtnbit1 ENABLE_SENSOR_MOTION_PIN
+	fetch 1,mem_mouse_long_mult_flag
+	rtnne 1
+	setarg 0
+	store 1,mem_mouse_long_mult_flag
+	store 4,mem_mouse_x
+	branch p_mouse_init_sensor_reset
+
 p_mouse_data_init:
 	jam 7,mem_mouse_data_queue	//data length
 	jam 4,mem_mouse_data_queue+1	//fifo depth
@@ -1638,20 +1570,27 @@
 	
 endif
 
+ifdef HIGH_REPORT_BT
+p_bt_125hz:
+	enable user7
+	fetch 1,mem_bt_125hz_cnt
+	beq 15,p_bt_125hz_clear
+	increase 1,pdata
+	store 1,mem_bt_125hz_cnt
+	rtn
+p_bt_125hz_clear:
+	jam 0,mem_bt_125hz_cnt
+	disable user7
+	rtn	
+endif
+
 p_mouse_wheel_trigger:
 	fetch 2,mem_mouse_z
 	rtn blank
 	jam 1,mem_mouse_wheel_trigger
 	jam 10,mem_mouse_wheel_trigger_timer
 	rtn
-
-p_mouse_clear_sensor_data:
-	jam 1,mem_mouse_clear_sensor_data_flag
-	call le_set_config_more_data
-p_mouse_init_sensor_reset:
-	jam 1,mem_mouse_init_sensor_reset_flag
-	branch p_mouse_init_sunt
-	
+/*
 ifdef CLASSIC_BT
 p_mouse_bt:
 	rtn attempt
@@ -1694,8 +1633,12 @@
 	fetch 5,mem_mouse_bt_boot_data
 	istore 5,contw
 	rtn
-
 endif
+*/
+p_mouse_clear_sensor_data:
+	jam 1,mem_mouse_clear_sensor_data_flag
+	call le_set_config_more_data
+	branch p_mouse_init_sensor_reset
 
 p_mouse_idle:
 	call ui_check_paring_button
@@ -1725,13 +1668,11 @@
 	increase 1,pdata
 	and pdata,0x03,pdata
 	store 1,mem_mouse_dpi
-	increase 2,pdata
-	store 1,mem_mouse_multi_led_blink_count
-	call p_mouse_dpi_multi_led_blink
+//	increase 2,pdata
+//	store 1,mem_mouse_multi_led_blink_count
+//	call p_mouse_dpi_multi_led_blink
 	branch mouse_seting_dpi
 
-	
-
 p_mouse_priority_bb_event:
 	copy regc,pdata
 ifdef BLE	
@@ -1741,15 +1682,15 @@
 	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_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 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_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
@@ -1760,25 +1701,8 @@
 ifdef BLE
 p_mouse_le_bb_event_connected:
 	call p_mouse_init_sensor_reset
-ifdef BLE_FAST_CONN_ENABLE
-	setarg 0
-	store 3,mem_le_switch_adv_flag
-	fetch 6,mem_mouse_24g_addr_init
-	fetcht 6,mem_device1_addr
-	isub temp,null
-	ncall p_mouse_fast_conn_disable,zero
-endif
-	call app_ble_store_reconn_info
-	jam 1,mem_mouse_le_bb_connected_flag
-	fetch 1,mem_mouse_le_reconnect_flag
-	nbranch p_mouse_le_bb_event_connected_next,blank
-	jam 0x14,mem_mouse_send_secutiry_request_timer
-p_mouse_le_bb_event_connected_next:
-	jam 0,mem_mouse_le_not_tx_disconn
-	jam 0,mem_mouse_start_discovery_enable
-	call p_mouse_null_enter_hibernate_disable
-	call p_mouse_data_init
-	branch mouse_le_bb_event_connected
+	jam ZCODE_B0,mem_zcode_temp_param0
+	branch p_zcode_entrance
 
 p_mouse_le_bb_disconnected:
 	call p_mouse_sensor_powerdown_check	//sensor power down
@@ -1799,29 +1723,21 @@
 	branch p_zcode_entrance
 endif
 
-
+/*
 ifdef CLASSIC_BT
 p_mouse_bb_event_reconn_timeout:
 p_mouse_bb_event_reconn_failed:
 	jam ZCODE_A3,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
-p_mouse_irtual_cable_unplug:
-	jam ZCODE_70,mem_zcode_temp_param0
-	branch p_zcode_entrance
-
 p_mouse_sniff_not_accept:
 	jam ZCODE_B1,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_mouse_bb_event_connected:
-	call p_mouse_store_eeprom_enable
 	call p_mouse_init_sensor_reset
-ifdef BLE_FAST_CONN_ENABLE
-	setarg 0
-	store 3,mem_le_switch_adv_flag
-endif
 	call p_mouse_null_enter_hibernate_disable
+	call p_mouse_discovey_led_blink_off
 	jam 0,mem_mouse_send_switch_req_timer
 	branch mouse_stop_discovery
 
@@ -1834,40 +1750,45 @@
 	jam ZCODE_B2,mem_zcode_temp_param0
 	branch p_zcode_entrance
 endif
+*/
+
+p_mouse_irtual_cable_unplug:
+	jam ZCODE_B5,mem_zcode_temp_param0
+	branch p_zcode_entrance
 
 ifdef G24
 p_mouse_24g_pairing_complete:
+	call p_mouse_discovey_led_blink_off
 	call p_mouse_init_sensor_reset
-	jam ZCODE_50,mem_zcode_temp_param0
+	jam ZCODE_92,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_mouse_24g_attempt_fail:
 	call p_mouse_sensor_powerdown_check	//sensor power down
-	jam ZCODE_51,mem_zcode_temp_param0
+	jam ZCODE_A0,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_mouse_24g_attempt_success:
+	call p_mouse_discovey_led_blink_off
+	jam 1,mem_mouse_24g_attempt_success_flag
+	call p_mouse_null_enter_hibernate_disable
 	call p_mouse_init_sensor_reset
-	jam ZCODE_52,mem_zcode_temp_param0
-	branch p_zcode_entrance
+	call mouse_no_data_timer_init
+p_mouse_store_24g_device_2flash:
+	call mouse_cheak_select_24gdevice
+	branch p_mouse_store_flash_device_info
+endif
 
 p_mouse_before_hibernate:
 	call p_mouse_sensor_powerdown_check
-	jam ZCODE_A0,mem_zcode_temp_param0
+	jam ZCODE_A4,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_mouse_sensor_powerdown_check:
 	fetch 1,mem_mouse_init_sensor_reset_flag
 	rtn blank
 	jam 0,mem_mouse_init_sensor_reset_flag
-p_mouse_sensor_powerdown:
-	call p_mouse_init_sunt
-	setarg 0x06
-	call twspi_read
-	or pdata,0x08,pdata
-	lshift8 pdata,pdata
-	add pdata,0x06,pdata
-	branch twspi_write	//make sdio high
+	branch p_mouse_sensor_powerdown
 
 
 p_mouse_bb_event_timer:
@@ -1875,162 +1796,36 @@
 	call p_mouse_adc_read
 	call p_mouse_low_voltage_led_timer
 endif
-ifdef BLE_FAST_CONN_ENABLE
-	call p_mouse_le_switch_adv_timer
-endif
 	call p_mouse_multi_led_blink_timer
 	call p_mouse_wheel_trigger_timer
-	call p_mouse_null_enter_hibernate_timer
+	call p_mouse_null_enter_hibernate_timer	
 	call p_mouse_bt_discovery_check
 	call mouse_check_discovery_timeout_timer
-	//call p_mouse_select_device
-//	call p_mouse_check_select_device_by_switch_timer
-ifdef G24	
+ifdef G24
 	call p_mouse_g24_long_sleep_param_update_timer
-	call p_mouse_g24_stop_mode_timeout_timer
-endif
+endif	
 ifdef BLE	
 	call p_mouse_check_direct_timeout_timer
 	call p_mouse_le_enable_att_list_timer
+	call p_mouse_le_current_mult_update_timer
 	call p_le_send_smp_security_request_timer
-	call p_mouse_le_current_mult_update_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
+//	call p_mouse_le_fast_conn_enable_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
+	call p_mouse_delay_discovery_timer
 	branch mouse_check_no_data_timeout_timer
 
-
-//p_mouse_check_select_device_by_switch_timer:
-//	fetch 1,mem_config_function_enable
-//	rtnbit0 ENABLE_SELECT_DEVICE_BY_SWITCH
-//	fetcht 1,mem_config_select_device_button_gpio
-//	call gpio_get_bit
-//	branch p_mouse_cheak_select_24gdevice,true
-//p_mouse_select_btdevice:
-//	fetch 1,mem_device_flag
-//	bne MODE_BT_DEVICE1,soft_reset_chip
-//	rtn
-//p_mouse_cheak_select_24gdevice:
-//	fetch 1,mem_device_flag
-//	bne MODE_24G_DEVICE,soft_reset_chip
-//	rtn
-
-ifdef BLE_FAST_CONN_ENABLE
-p_mouse_le_switch_adv_timer:
-	fetch 1,mem_le_switch_adv_flag
+p_mouse_delay_discovery_timer:
+	fetch 1,mem_mouse_delay_discovery_count
 	rtn blank
-	arg mem_le_switch_adv_timer,regc
-	arg p_mouse_le_switch_adv,regb
-	branch timer_single_step
-p_mouse_le_switch_adv:
-	jam 1,mem_le_switch_adv_timer
-	fetch 1,mem_le_switch_adv_count
-	increase 1,pdata
-	and_into 1,pdata
-	store 1,mem_le_switch_adv_count
-	beq 0,p_mouse_check_fast_conn_adv_start1
-p_check_51cmd_adv:
-ifdef BLE_FAST_CONN_ENABLE
-	fetch 6,mem_le_normal_lap
-	store 6,mem_le_lap
-endif
-	call p_mouse_le_adv_data_update
-	branch check_51cmd_adv
-
-p_mouse_le_adv_data_update:
-	jam 0x1f,mem_le_adv_data_len
-	jam 0x1f,mem_le_scan_data_len
-	call p_mouse_store_eeprom_enable
-	arg mem_le_adv_swift_pair,contr
-p_le_adv_data_update:
-	arg mem_le_adv_data+11,contw
-	arg 19,loopcnt
-	call memcpy
-	branch le_modified_name_adv
-
-p_mouse_store_eeprom_enable:
-	arg MOUSE_STORE_EEPROM_FLAG,queue
-	branch mouse_enable_function_flag
-
-p_mouse_check_fast_conn_adv_start:
-p_mouse_check_fast_conn_adv_start1:
-	jam 0,mem_le_adv_data_len
-	jam 0,mem_le_scan_data_len
-	arg MOUSE_STORE_EEPROM_FLAG,queue
-	call mouse_disable_function_flag
-	branch p_mouse_fast_conn_init
-endif
-
-
-ifdef G24
-p_mouse_g24_long_sleep_param_update_timer:
-	arg mem_24g_long_sleep_param_update_timer,regc
-	arg p_mouse_g24_long_sleep_normal_param,regb
-	branch timer_single_step
-p_mouse_g24_long_sleep_normal_param:
-	setarg G24_LONG_SLEEP_STEP3
-	store 3,mem_24g_enter_hibernate
-p_mouse_long_mult_flag_enable:	
-	jam 1,mem_mouse_long_mult_flag
-	rtn
-
-p_mouse_g24_stop_mode_timeout_timer:
-	arg mem_24g_stop_g24_mode_timeout,regc
-	arg p_mouse_g24_stop_mode_timeout,regb
-	branch timer_single_step_2B
-p_mouse_g24_stop_mode_timeout:
-	jam 1,mem_24g_stop_g24_mode
-	rtn
-endif
-
-p_mouse_select_device:
-p_mouse_select_device_by_button:
-	fetcht 1,mem_config_select_device_button_gpio
-	call p_gpio_set_input_pd
-	fetcht 1,mem_config_select_device_button_gpio
-	call gpio_get_bit
-	nbranch p_mouse_select_device_button_down,true
-p_mouse_select_device_button_up:
-	call p_gpio_set_input_pu
-	fetch 1,mem_mouse_button_select_device_timer_init
-	store 1,mem_mouse_button_select_device_count
-	fetch 1,mem_select_device_button_statue
-	rtneq DPI_BUTTON_STATE_UP
-	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue
-	arg MOUSE_LONG_BT_BUTTON_FLAG,queue
-	branch mouse_disable_function_flag
-p_mouse_select_device_button_down:
-	call p_gpio_set_input_pu
-	call p_mouse_button_select_device_timer
-	call p_mouse_null_enter_hibernate_check
-	fetch 1,mem_select_device_button_statue
-	rtneq DPI_BUTTON_STATE_DOWN
-	jam DPI_BUTTON_STATE_DOWN,mem_select_device_button_statue
-	rtn
-
-p_mouse_button_select_device_timer:
-	arg mem_mouse_button_select_device_count,regc
-	arg p_mouse_long_button_select_device,regb
-	branch timer_single_step
-p_mouse_long_button_select_device:	
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_LONG_BT_BUTTON_FLAG
-	arg MOUSE_LONG_BT_BUTTON_FLAG,queue
-	call mouse_enable_function_flag	
-	call p_mouse_long_button_state_clear	
-p_mouse_ready_reconnection_by_button:
-	jam 0,mem_link_key_exists
-	fetcht 1,mem_device_flag
-	increase 1,temp
-	fetch 1,mem_device_number
-	isub temp,null
-	ncall mouse_select_device_count_clean,positive
-	storet 1,mem_device_flag
-	call p_mouse_store_flash_device_info
-	branch mouse_ready_reconnection_by_button+8
+	increase -1,pdata
+	store 1,mem_mouse_delay_discovery_count
+	nrtn blank
+	branch mouse_start_discovery
 
 p_mouse_select_device_and_reset:
 	jam 0xff,mem_mouse_long_button_select_device
@@ -2039,7 +1834,7 @@
 	jam 0,mem_mouse_long_button_select_device
 	rtn
 
-
+/*	
 ifdef CLASSIC_BT
 p_mouse_send_switch_req_timer:
 	arg mem_mouse_send_switch_req_timer,regc
@@ -2054,22 +1849,32 @@
 	jam 1,mem_mouse_bt_send_first_package_flag
 	rtn
 endif
-
+*/
 
 ifdef BLE
+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_check_direct_timeout_timer:
 	arg mem_mouse_direct_timer,regc
 	arg p_mouse_check_direct_timeout,regb
 	branch timer_single_step_2B
+
 p_mouse_check_direct_timeout:
-	jam 1,mem_mouse_le_not_tx_disconn
-	call p_mouse_long_button_bt_normal_discovery
-	branch p_mouse_bt_discovery_button_up_init
+	fetch 1,mem_mouse_multi_led_on_poweron2s_flag
+	nrtn blank
+	branch mouse_check_direct_timeout
 
-p_mouse_le_enable_att_list_timer:
-	arg mem_le_start_encrypt_timer,regc
-	arg mouse_le_write_enable,regb
+p_mouse_le_current_mult_update_timer:
+	arg mem_mouse_le_current_mult_timer,regc
+	arg p_mouse_le_current_mult_reinit,regb
 	branch timer_single_step
+p_mouse_le_current_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+	branch p_mouse_long_mult_flag_enable
 
 p_le_send_smp_security_request_timer:
 	fetch 1,mem_mouse_le_bb_connected_flag
@@ -2082,14 +1887,32 @@
 	nrtn blank
 	branch le_pairing_sm_start
 
-p_mouse_le_current_mult_update_timer:
-	arg mem_mouse_le_current_mult_timer,regc
-	arg p_mouse_le_current_mult_reinit,regb
-	branch timer_single_step
-p_mouse_le_current_mult_reinit:
-	fetch 1,mem_lpm_mult_init
-	store 1,mem_lpm_mult
-	branch p_mouse_long_mult_flag_enable
+p_mouse_le_fast_conn_enable_timer:
+	fetch 1,mem_mouse_fast_conn_flag
+	rtnne 0xff
+	fetch 1,mem_mouse_le_bb_connected_flag
+	nrtn blank
+	arg mem_mouse_le_fast_conn_enable_timer,regc
+	arg p_mouse_le_fast_conn_enable_timeout,regb
+	branch timer_single_step		
+
+p_mouse_le_fast_conn_enable_timeout:
+	branch p_mouse_start_discovery
+endif
+
+
+ifdef G24
+p_mouse_g24_long_sleep_param_update_timer:
+	arg mem_24g_long_sleep_param_update_timer,regc
+	arg p_mouse_g24_long_sleep_normal_param,regb
+	branch timer_single_step_2B
+p_mouse_g24_long_sleep_normal_param:
+	setarg G24_LONG_SLEEP_STEP2
+	store 3,mem_24g_enter_hibernate
+p_mouse_long_mult_flag_enable:	
+	jam 1,mem_mouse_long_mult_flag
+	rtn	
+	
 endif
 
 p_mouse_wheel_trigger_timer:
@@ -2103,11 +1926,9 @@
 p_mouse_bt_discovery_check:
 	fetch 1,mem_device_flag
 	rtneq MODE_24G_DEVICE
-p_mouse_bt_discovery_commbination_key:
+p_mouse_bt_discovery_by_button:
 	fetch 1,mem_mouse_dpi_button_state
 	branch p_mouse_bt_discovery_commbination_key_down,blank
-//	call p_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
@@ -2118,6 +1939,7 @@
 	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
@@ -2128,37 +1950,59 @@
 	arg p_mouse_long_button_bt_discovery,regb
 	branch timer_single_step
 p_mouse_long_button_bt_discovery:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
 	call p_mouse_long_button_state_clear
-	fetch 1,mem_le_switch_adv_flag
-	nbranch p_mouse_fast_conn_adv_switch_timer_reinit,blank
-p_mouse_long_button_bt_normal_discovery:
-	call p_mouse_le_adv_data_update
+	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+2
+	branch mouse_long_button_bt_discovry
 
-p_mouse_fast_conn_adv_switch_timer_reinit:
-	fetch 2,mem_discovery_timeout
-	store 2,mem_mouse_discovery_timer
-	rtn
+
+//p_mouse_bt_discovery_by_button:	//one key enter
+//	fetch 1,mem_discovery_on_flag
+//	rtneq DIS_COMM_BUTTON
+//	fetch 1,mem_config_bt_button_gpio
+//	rtneq GPIO_DISABLE
+//	fetcht 1,mem_config_bt_button_gpio
+//	call p_gpio_set_input_pd
+//	fetcht 1,mem_config_bt_button_gpio
+//	call gpio_get_bit
+//	branch p_mouse_bt_discovery_bt_key_up,true
+//	call p_gpio_set_input_pu
+//	branch p_mouse_bt_discovery_bt_key_down
+//p_mouse_bt_discovery_bt_key_up:
+//	fetch 1,mem_bt_ui_button_timeout
+//	store 1,mem_bt_ui_button_count
+//	branch p_mouse_bt_discovery_commbination_key_up+2
+//p_mouse_bt_discovery_bt_key_down:
+//	jam DIS_BT_BUTTON,mem_discovery_on_flag
+//	jam 40,mem_mouse_null_enter_hibernate_timer
+//	call p_mouse_bt_key_discovery_timer
+//	branch mouse_bt_discovery_commbination_key_down+1
+//p_mouse_bt_key_discovery_timer:
+//	arg mem_bt_ui_button_count,regc
+//	branch p_mouse_bt_discovery_timer+1
+	
 
 p_mouse_null_enter_hibernate_timer:
+	fetch 1,mem_mouse_multi_led_on_poweron2s_flag
+	nrtn blank
 	fetch 1,mem_mouse_null_enter_hibernate_flag
 	rtn blank
-	arg mem_mouse_null_enter_hibernate_timer,regc
-	arg p_mouse_null_enter_hibernate,regb
-	branch timer_single_step
+	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_check:
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_CONNECTED
-	rtnbit1 UI_STATE_BT_CONNECTED
-	rtnmark1 mark_24g
 p_mouse_null_enter_hibernate_enable:	//ble never connected
 	jam 1,mem_mouse_null_enter_hibernate_flag
 	jam 40,mem_mouse_null_enter_hibernate_timer	//lmr 3s
@@ -2166,13 +2010,22 @@
 p_mouse_null_enter_hibernate_disable:	//ble never connected
 	jam 0,mem_mouse_null_enter_hibernate_flag
 	jam 0,mem_mouse_null_enter_hibernate_timer	//lmr 3s
-	rtn
+	rtn	
+//p_mouse_null_enter_hibernate_check:
+//	fetch 2,mem_ui_state_map
+//	rtnbit1 UI_STATE_BLE_CONNECTED
+//	rtnbit1 UI_STATE_BT_CONNECTED
+//	rtnmark1 mark_24g
+//	branch p_mouse_null_enter_hibernate_enable
 
 p_mouse_multi_led_blink_timer:
 	fetch 1,mem_mouse_multi_led_blink_enable
 	rtn blank
 	fetch 1,mem_mouse_multi_led_type
+	beq MULTI_LED_ON,p_mouse_multi_led_type_on
 	beq MULTI_LED_BLINK,p_mouse_multi_led_type_blink
+	rtn
+
 p_mouse_multi_led_type_on:
 	call p_mouse_multi_led_on
 	fetch 1,mem_mouse_multi_led_on_timer
@@ -2185,45 +2038,26 @@
 p_mouse_multi_led_off_poweron2s:
 	jam 0,mem_mouse_multi_led_on_poweron2s_flag
 	branch p_mouse_multi_led_off
-//	fetch 1,mem_device_flag
-//	rtnne MODE_BT_DEVICE1
-//	fetch 2,mem_ui_state_map
-//	rtnbit1 UI_STATE_BLE_CONNECTED
-//	rtnbit1 UI_STATE_BT_CONNECTED
-//	fetch 1,mem_mouse_fast_conn_flag
-//	bne 0xff,p_mouse_bt_reconn_multi_led_blink
-p_mouse_discovery_multi_led_blink:
-	jam 0,mem_mouse_multi_led_blink_poweron3s_flag
-	jam 5,mem_mouse_multi_led_blink_timer_init	//300ms
-p_mouse_discovery_multi_led_blink1:
-	jam 0,mem_mouse_multi_led_blink_count_limited
-	jam 1,mem_mouse_multi_led_blink_count//0 will clear mem_mouse_multi_led_blink_enable/mem_mouse_multi_led_type
-p_mouse_multi_led_blink_enable:
-	jam 5,mem_mouse_multi_led_blink_timer
-	jam ON,mem_mouse_multi_led_blink_enable
-	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
-	rtn
-
-p_mouse_bt_reconn_multi_led_blink:
-	jam 1,mem_mouse_multi_led_blink_timer_init	//500ms
-	branch p_mouse_discovery_multi_led_blink1
-
+	
 p_mouse_multi_led_type_blink:
-	arg mem_mouse_multi_led_blink_timer,regc
-	arg p_mouse_multi_led_type_blink_timeout,regb
-	branch timer_single_step
-p_mouse_multi_led_type_blink_timeout:
+	fetch 1,mem_mouse_multi_led_blink_timer
+	increase -1,pdata
+	store 1,mem_mouse_multi_led_blink_timer
+	nrtn blank
 	fetch 1,mem_mouse_multi_led_blink_timer_init
 	store 1,mem_mouse_multi_led_blink_timer
-	fetch 1,mem_mouse_multi_led_blink_count_limited
-	branch p_mouse_multi_led_blink_count_no_limited,blank
-	fetch 1,mem_mouse_multi_led_blink_count
-	branch p_mouse_multi_led_blink_off,blank
-	increase -1,pdata
-	store 1,mem_mouse_multi_led_blink_count
+//	fetch 1,mem_mouse_multi_led_blink_count_limited
+//	branch p_mouse_multi_led_blink_count_no_limited,blank
+//	fetch 1,mem_mouse_multi_led_blink_count
+//	branch p_mouse_multi_led_blink_off,blank
+//	increase -1,pdata
+//	store 1,mem_mouse_multi_led_blink_count
 p_mouse_multi_led_blink_count_no_limited:
 	fetch 1,mem_mouse_multi_led_state
 	beq ON,p_mouse_multi_led_off
+	beq OFF,p_mouse_multi_led_on
+	rtn
+
 p_mouse_multi_led_on:
 	jam ON,mem_mouse_multi_led_state
 	fetcht 1,mem_mouse_multi_led_gpio
@@ -2231,82 +2065,94 @@
 	fetcht 1,mem_mouse_multi_led_gpio
 	branch gpio_out_inactive
 //	fetch 1,mem_device_flag
-//	beq MODE_BT_DEVICE1,p_mouse_multi_down_led_on
+//	beq MODE_24G_DEVICE,p_mouse_multi_down_led_on
 //p_mouse_multi_up_led_on:
+//	fetcht 1,mem_mouse_multi_led_gpio 
+//	call gpio_config_output 
 //	fetcht 1,mem_mouse_multi_led_gpio
-//	set1 gpio_active_bit,temp
-//	call gpio_config_output
-//	fetcht 1,mem_mouse_multi_led_gpio
-//	branch gpio_out_active
+//	branch gpio_out_inactive
 //p_mouse_multi_down_led_on:
 //	fetcht 1,mem_mouse_multi_led_gpio
-//	call gpio_config_output
-//	fetcht 1,mem_mouse_multi_led_gpio
-//	branch gpio_out_inactive
+//	set1 gpio_active_bit,temp
+//	call gpio_config_output 
+//	fetcht 1,mem_mouse_multi_led_gpio 
+//	branch gpio_out_active
 
-p_mouse_discovey_led_blink_off:
-	fetch 1,mem_mouse_multi_led_on_timer
-	nrtn blank
-	fetch 1,mem_mouse_multi_led_on_poweron2s_flag
-	nrtn blank
-//	fetch 1,mem_mouse_multi_led_blink_poweron3s_flag
-//	nrtn blank
+p_mouse_low_voltage_led_on:
+	fetcht 1,mem_mouse_low_voltage_led_gpio
+	call gpio_config_output
+	fetcht 1,mem_mouse_low_voltage_led_gpio
+	branch gpio_out_inactive
+	
+	
 p_mouse_multi_led_blink_off:
 	setarg 0
 	store 3,mem_mouse_multi_led_blink_timer
 p_mouse_multi_led_off:
 	fetch 1,mem_mouse_multi_led_blink_count
 	nbranch p_mouse_multi_led_off_wait_blink_over,blank
-//	jam 0,mem_mouse_multi_led_blink_poweron3s_flag
 	jam 0,mem_mouse_multi_led_blink_enable
 	jam 0,mem_mouse_multi_led_type
 p_mouse_multi_led_off_wait_blink_over:
 	jam 0,mem_mouse_multi_led_on_timer
 	jam OFF,mem_mouse_multi_led_state
-p_mouse_multi_led_gpio_set_float:
-//	fetch 1,mem_mouse_multi_led_gpio
-//	rtneq UI_BUTTON_GPIO_DISABLE
-	fetcht 1,mem_mouse_multi_led_gpio
-	call gpio_config_output
+p_mouse_led_off:	
 	fetcht 1,mem_mouse_multi_led_gpio
-	branch gpio_out_active
-
-//	fetcht 1,mem_mouse_multi_led_gpio
-//p_mouse_set_gpio_suspend:
-//	set0 gpio_active_bit,temp
-//	branch gpio_set_high_impedance
-
+	call gpio_config_output
+	fetcht 1,mem_mouse_multi_led_gpio
+	branch gpio_out_active
+		
 p_mouse_mode_bt_device1_multi_led_on:
 p_mouse_mode_24g_device_multi_led_on:
 	jam 1,mem_mouse_multi_led_on_poweron2s_flag
 	jam ON,mem_mouse_multi_led_blink_enable
-	jam MULTI_LED_ON,mem_mouse_multi_led_type
+	jam MULTI_LED_ON,mem_mouse_multi_led_type	
 	jam 0,mem_mouse_multi_led_on_timer
 	rtn
-//p_mouse_mode_bt_device1_multi_led_blink3s:
-//	jam 1,mem_mouse_multi_led_blink_poweron3s_flag
-//p_mouse_mode_24g_device_multi_led_blink3s:
-//	jam 27,mem_mouse_multi_led_blink_count
-//	jam 1,mem_mouse_multi_led_blink_timer_init	//100ms
-//	branch p_mouse_dpi_multi_led_blink+1
-p_mouse_dpi_multi_led_blink:
-	jam 5,mem_mouse_multi_led_blink_timer_init	//300ms
-	jam 1,mem_mouse_multi_led_blink_count_limited
-	branch p_mouse_multi_led_blink_enable
+
+p_mouse_discovery_multi_led_blink:
+	jam 3,mem_mouse_multi_led_blink_timer_init	//300ms
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,p_mouse_bt_discover_led_blink_time_init
+p_mouse_discovery_multi_led_blink_next:
+	jam 0,mem_mouse_multi_led_on_poweron2s_flag
+//	jam 0,mem_mouse_multi_led_blink_count_limited
+	jam 1,mem_mouse_multi_led_blink_count//0 will clear mem_mouse_multi_led_blink_enable/mem_mouse_multi_led_type
+p_mouse_multi_led_blink_enable:
+	jam 5,mem_mouse_multi_led_blink_timer
+	jam ON,mem_mouse_multi_led_blink_enable
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	rtn
+
+p_mouse_bt_discover_led_blink_time_init:
+	jam 6,mem_mouse_multi_led_blink_timer_init
+	branch p_mouse_discovery_multi_led_blink_next
+
+p_mouse_discovey_led_blink_off:
+	fetch 1,mem_mouse_multi_led_on_timer
+	nrtn blank
+	fetch 1,mem_mouse_multi_led_on_poweron2s_flag
+	nrtn blank
+	branch p_mouse_multi_led_blink_off
+		
+//p_mouse_dpi_multi_led_blink:
+//	jam 3,mem_mouse_multi_led_blink_timer_init	//300ms
+//	jam 1,mem_mouse_multi_led_blink_count_limited
+//	branch p_mouse_multi_led_blink_enable
 	
 
 ifdef ADC_ENABLE
 p_mouse_adc_read:
 //	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 //	rtnbit0 MOUSE_ENABLE_ADC
+	fetch 2,mem_mouse_multi_led_blink_count
+	nrtn blank
 	fetch 1,mem_adc_read_timer
 	increase 1,pdata
 	store 1,mem_adc_read_timer
 	sub pdata,10,null              //1s read adc
 	rtn positive
-	
 	call adc_init_data
-	
 	jam 0,mem_adc_read_timer
 	call adc_set_mode
 	call vdd_calculate_by_mode
@@ -2324,10 +2170,7 @@
 	fetch 1,mem_mouse_adc_last_low_voltage_flag
 	rtn blank
 	jam 0,mem_mouse_adc_last_low_voltage_flag
-p_mouse_adc_low_volatage_led_off:
-	fetch 1,mem_config_low_voltage_alarm_gpio
-	store 1,mem_mouse_struct_led_gpio
-	branch mouse_led_on
+	branch p_mouse_multi_led_off
 
 //p_adc_set_mode:
 //	fetch 1,mem_adc_config_flag
@@ -2360,111 +2203,105 @@
 	rtn
 
 p_mouse_low_voltage_led_timer:
-	fetch 1,mem_low_power_led_blink_flag
-	nrtn blank	//15s no action
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
 	fetch 2,mem_ui_state_map
 	rtnbit1 UI_STATE_BLE_ADV
-	rtnbit1 UI_STATE_BT_DISCOVERY
-	fetch 1,mem_config_low_voltage_alarm_gpio
-	store 1,mem_mouse_struct_led_gpio
-
-	setarg G24_LONG_SLEEP_STEP2
-	store 3,mem_24g_enter_hibernate
-	
+//	rtnbit1 UI_STATE_BT_DISCOVERY
+	fetch 2,mem_mouse_multi_led_blink_count
+	nrtn blank
 	fetch 1,mem_adc_low_volatage_led_timer_count
 	pincrease 1
 	store 1,mem_adc_low_volatage_led_timer_count
-	beq 5,p_mouse_multi_led_on
+	beq 5,p_mouse_low_voltage_led_on
 	sub pdata,10,null
 	nbranch p_mouse_adc_low_volatage_led_timer_count_clean,positive
 	rtn
 p_mouse_adc_low_volatage_led_timer_count_clean:
 	jam 1,mem_adc_low_volatage_led_timer_count
-	branch p_mouse_multi_led_blink_off
+	branch p_mouse_multi_led_off
+
+//p_low_power_no_data_off_led_time:
+//	fetch 1,mem_low_power_check_count
+//	increase 1,pdata
+//	store 1,mem_low_power_check_count
+//	sub pdata,LOW_VOLTAGE_LED_COUNT,null
+//	rtn positive
+//p_low_power_no_data_off_led_time_nolimited:
+//	jam 0,mem_low_power_led_blink_flag
+//	jam 0x96,mem_low_power_no_data_off_led_time
+//	rtn
+//p_low_power_nodata_off_led_time_check:
+//	arg mem_low_power_no_data_off_led_time,regc
+//	arg p_mouse_check_low_power_nodata_timeout,regb
+//	branch timer_single_step
+//p_mouse_check_low_power_nodata_timeout:
+//	setarg G24_LONG_SLEEP_STEP3
+//	store 3,mem_24g_enter_hibernate
+//	jam 1,mem_low_power_led_blink_flag
+//	branch p_mouse_adc_low_volatage_led_off
 endif
 
 p_mouse_seting_dpi:
 p_mouse_seting_sensor_type:
-//	fetch 1,mem_config_sensor_type
-//	beq P3212,p_mouse_seting_3212_dpi
-//	beq P3065_XY,p_mouse_seting_3065XY_dpi
-//	beq MX8650,p_mouse_seting_3065XY_dpi
-//	beq KA8,p_mouse_seting_ka8_dpi
-p_mouse_seting_320x_dpi:
+	fetch 1,mem_config_sensor_type
+	beq P3212,p_mouse_seting_3212_dpi
+	beq P8009,p_mouse_seting_8009_dpi
+	beq KA8,p_mouse_seting_ka8_dpi
+	beq P3065_XY,p_mouse_seting_3065XY_dpi
+	beq MX8650,p_mouse_seting_8009_dpi
+p_mouse_seting_3205_dpi:
 	fetch 1,mem_mouse_dpi
-	sub pdata,MOUSE_DPI_LEVEL2,null
-	call p_mouse_320x_dpi_recount,zero
+	call p_mouse_3065xy_dpi_recount,blank
 	fetch 1,mem_mouse_dpi
-	beq MOUSE_DPI_LEVEL1,p_mouse_set_cpi1
-	beq MOUSE_DPI_LEVEL4,p_mouse_set_cpi4
-p_mouse_set_cpi3:
-	fetch 1,mem_config_sensor_type
-	beq P3212,mouse_set_p3212_cpi3
-	beq P3065_XY,p_mouse_3065xy_set_cpi3
-	beq MX8650,p_mouse_3065xy_set_cpi3
-	beq KA8,p_mouse_ka8_set_cpi3
-p_mouse_320x_set_cpi3:	
-	fetch 1,mem_320x_dpi_3
-p_mouse_dpi_store:
-	store 1,mem_mouse_cpi_count
-	branch mouse_p3205_dpi+3
-p_mouse_320x_dpi_recount:
-	jam MOUSE_DPI_LEVEL3,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL2,p_mouse_3205_set_cpi1			//800
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi3				//1600
+	branch mouse_set_cpi2								//1200
+p_mouse_3205_set_cpi1:
+	fetch 1,mem_320x_dpi_1
+	increase -1,pdata
+	branch mouse_p3205_dpi
+
+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,p_mouse_8009_set_cpi1			//800
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi3				//1600
+	branch mouse_set_cpi2								//1300
+p_mouse_3065xy_dpi_recount:
+	jam MOUSE_DPI_LEVEL2,mem_mouse_dpi
 	rtn
 
-p_mouse_set_cpi1:
-	fetch 1,mem_config_sensor_type
-	beq P3212,mouse_set_p3212_cpi2
-	beq P3065_XY,p_mouse_3065xy_set_cpi1
-	beq MX8650,p_mouse_3065xy_set_cpi1
-	beq KA8,p_mouse_ka8_set_cpi1
-p_mouse_320x_set_cpi1:	
-	fetch 1,mem_320x_dpi_1
-	branch p_mouse_dpi_store
+p_mouse_seting_8009_dpi:
+	fetch 1,mem_mouse_dpi
+	call p_mouse_3065xy_dpi_recount,blank
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL2,p_mouse_8009_set_cpi1			//800
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi2				//1600
+	branch mouse_set_cpi1								//1200
+p_mouse_8009_set_cpi1:	
+	jam 0,mem_mouse_cpi_count
+	branch mouse_p3205_dpi+3
 
-p_mouse_set_cpi4:
-	fetch 1,mem_config_sensor_type
-	beq P3212,mouse_set_p3212_cpi4
-	beq P3065_XY,p_mouse_3065xy_set_cpi4
-	beq MX8650,p_mouse_3065xy_set_cpi4
-	beq KA8,p_mouse_ka8_set_cpi4
-p_mouse_320x_set_cpi4:	
-	fetch 1,mem_320x_dpi_4
-	branch p_mouse_dpi_store
-
-p_mouse_3065xy_set_cpi3:
-	fetch 1,mem_3065xy_dpi_3
-	branch p_mouse_dpi_store
-p_mouse_3065xy_set_cpi1:
-	fetch 1,mem_3065xy_dpi_1
-	branch p_mouse_dpi_store
-p_mouse_3065xy_set_cpi4:
-	fetch 1,mem_3065xy_dpi_4
-	branch p_mouse_dpi_store
-
-p_mouse_ka8_set_cpi3:
-	fetch 1,mem_3065xy_dpi_3
-p_mouse_ka8_dpi_store:
-	increase 3,pdata
-	branch p_mouse_dpi_store
-p_mouse_ka8_set_cpi1:
-	fetch 1,mem_3065xy_dpi_1
-	branch p_mouse_ka8_dpi_store
-p_mouse_ka8_set_cpi4:
-	fetch 1,mem_3065xy_dpi_4
-	branch p_mouse_ka8_dpi_store
-
-//p_mouse_seting_3212_dpi:
-//	fetch 1,mem_mouse_dpi
-//	sub pdata,MOUSE_DPI_LEVEL2,null
-//	call p_mouse_3205_dpi_recount,zero
-//	fetch 1,mem_mouse_dpi
-//	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi1
-//	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi4
-//	branch mouse_set_p3212_cpi3
+p_mouse_seting_ka8_dpi:
+	fetch 1,mem_mouse_dpi
+	call p_mouse_3065xy_dpi_recount,blank
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL2,mouse_set_cpi2			//800
+	beq MOUSE_DPI_LEVEL4,p_mouse_ka8_set_cpi3		//1600
+	branch mouse_set_cpi4							//1200
+p_mouse_ka8_set_cpi3:	
+	setarg 5
+	branch mouse_p3205_dpi
 
+p_mouse_seting_3212_dpi:
+	fetch 1,mem_mouse_dpi
+	call p_mouse_3065xy_dpi_recount,blank
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL2,mouse_set_p3212_cpi2
+	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi4
+	branch mouse_set_p3212_cpi3
 
 p_mouse_motion:
 	disable user
@@ -2474,72 +2311,111 @@
 	call mouse_zwheel
 	call mouse_t_zwheel
 	call p_mouse_key
-ifdef MOUSE_SMOOTHER	
-	nbranch p_drawing_optima_init,user
+ifdef MOUSE_SMOOTHER
+	nbranch p_mouse_motion_nodata,user
 	call p_drawing_optima
 else
-	nrtn user
+	nbranch p_mouse_motion_nodata,user
 endif
 	branch mouse_motion+9
 
+p_mouse_motion_nodata:	
+ifdef MOUSE_SMOOTHER
+	call p_drawing_optima_init
+endif	
+	jam 0,mem_low_power_check_count
+	rtn
+
 p_mouse_key:
 	call p_mouse_check_key_gpio
 	branch mouse_key+1
 
 p_mouse_check_key_gpio:
-	arg 0,rega
+	fetch 1,mem_mouse_key
+	copy pdata,rega
 	call p_mouse_check_lkey_gpio
 //	call p_mouse_check_rkey_gpio
 //	call p_mouse_check_mkey_gpio
-	call p_mouse_check_skey_gpio
+//	call p_mouse_check_skey_gpio
 	branch mouse_check_key_gpio_output
-p_mouse_check_skey_gpio:
+//p_mouse_check_skey_gpio:
 //	fetch 1,mem_bk_button_gpio
 //	rtneq GPIO_DISABLE
-	call p_mouse_check_bk_key_gpio
-	branch p_mouse_check_fw_key_gpio
+//	call p_mouse_check_bk_key_gpio
+//	branch p_mouse_check_fw_key_gpio
+	
+/* temp is gpio number, pdata  is key status param */
+p_mouse_check_key:
+	store 1,mem_mouse_key_status
+	lshift pdata,pdata
+	copy pdata,regb
+	copy temp,regc
+	fetch 1,mem_mouse_key_temp
+	sub pdata,0x02,null
+	call p_gpio_set_input_pu,positive		// lmr key
+	ncall p_gpio_set_input_pd,positive		// b4 b5 dpi key
+	copy regc,temp
+	call gpio_get_bit
+	setflag true,0,regb		//true = 1,input low level	
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue
+	sub temp,0x02,null
+	beq 0x07,p_mouse_key_press		//  about 17~22ms three times
+	beq 0x00,p_mouse_key_release
+	rtn
 	
 p_mouse_check_lkey_gpio:
+	jam 0x00,mem_mouse_key_temp
 	fetcht 1,mem_lbutton_gpio
-	call p_gpio_set_input_pu
-	fetcht 1,mem_lbutton_gpio
-	call gpio_get_bit
-	setflag true,0,rega			//true = 1,input low level
+	fetch 1,mem_mouse_lkey_press_status
+	call p_mouse_check_key
+	store 1,mem_mouse_lkey_press_status
 //	rtn
 p_mouse_check_rkey_gpio:
+	jam 0x01,mem_mouse_key_temp
 	fetcht 1,mem_rbutton_gpio
-	call p_gpio_set_input_pu
-	fetcht 1,mem_rbutton_gpio
-	call gpio_get_bit
-	setflag true,1,rega			//true = 1,input low level
+	fetch 1,mem_mouse_rkey_press_status
+	call p_mouse_check_key
+	store 1,mem_mouse_rkey_press_status
 //	rtn
 p_mouse_check_mkey_gpio:
+	jam 0x02,mem_mouse_key_temp
 	fetcht 1,mem_mbutton_gpio
-	call p_gpio_set_input_pu
-	fetcht 1,mem_mbutton_gpio
-	call gpio_get_bit
-	setflag true,2,rega			//true = 1,input low level
-	rtn
-p_mouse_check_bk_key_gpio:
+	fetch 1,mem_mouse_mkey_press_status
+	call p_mouse_check_key
+	store 1,mem_mouse_mkey_press_status
+//	rtn
+p_mouse_check_bkkey_gpio:
+	jam 0x03,mem_mouse_key_temp
 	fetcht 1,mem_bk_button_gpio
-	call p_gpio_set_input_pd
+	fetch 1,mem_mouse_bkkey_press_status
+	call p_mouse_check_key
+	store 1,mem_mouse_bkkey_press_status
 	fetcht 1,mem_bk_button_gpio
-	call gpio_get_bit
-	nsetflag true,3,rega
-	branch p_gpio_set_input_pu
-p_mouse_check_fw_key_gpio:
+	call p_gpio_set_input_pu
+p_mouse_check_fwkey_gpio:
+	jam 0x04,mem_mouse_key_temp
 	fetcht 1,mem_fw_button_gpio
-	call p_gpio_set_input_pd
+	fetch 1,mem_mouse_fwkey_press_status
+	call p_mouse_check_key
+	store 1,mem_mouse_fwkey_press_status
 	fetcht 1,mem_fw_button_gpio
-	call gpio_get_bit
-	nsetflag true,4,rega
-p_gpio_set_input_pu:
-	set1 gpio_active_bit,temp
-	arg core_gpio_pu0,contw
-	call gpio_set_bit
-	set0 gpio_active_bit,temp
-	branch p_gpio_set_input_pd4
+	branch p_gpio_set_input_pu
 	
+p_mouse_key_press:
+	branch p_qset1_rega,positive
+p_qset0_rega:	
+	qset0 rega
+	rtn		
+
+p_mouse_key_release:
+	branch p_qset0_rega,positive
+p_qset1_rega:	
+	qset1 rega
+	rtn
+
+
 p_gpio_set_input_pd:
 	set0 gpio_active_bit,temp
 	arg core_gpio_pu0,contw
@@ -2549,17 +2425,50 @@
 	arg core_gpio_pd0,contw
 	branch gpio_set_high_impedance+4
 
+p_gpio_set_input_pu:
+	set1 gpio_active_bit,temp
+p_gpio_set_input_pu1:	
+	arg core_gpio_pu0,contw
+	call gpio_set_bit
+	set0 gpio_active_bit,temp
+	branch p_gpio_set_input_pd4
+	
+//p_mouse_select_device_button_gpio_set_suspend:
+//	fetcht 1,mem_config_select_device_button_gpio
+//p_mouse_set_gpio_suspend:
+//	set0 gpio_active_bit,temp
+//	branch p_gpio_set_input_pu1
 
 p_mouse_cheak_sensor_data:
-//	fetch 1,mem_config_sensor_type
-//	beq P3212,p_mouse_p3212_sensor_motion
-p_mouse_p32xx_sensor_motion:
+	fetch 1,mem_config_sensor_type
+//	beq P8009,p_mouse_p8009_sensor_motion
+p_mouse_p32xx_sensor_motion:	
 	call mouse_clear_sensor_data
 	disable user
+//	fetch 1,mem_config_function_enable
+//	bbit0 ENABLE_SENSOR_MOTION_PIN,mouse_p32xx_sensor_motion_2
+//	fetcht 1,mem_sensor_data_gpio
+//	call gpio_get_bit
+//	nrtn true
 	branch mouse_p32xx_sensor_motion_2
-//p_mouse_p3212_sensor_motion:
+
+//p_mouse_p8009_sensor_motion:
 //	call mouse_clear_sensor_data
-//	branch mouse_p3212_sensor_motion_1
+//	disable user
+//	fetcht 1,mem_sensor_data_gpio
+//	call gpio_get_bit
+//	nrtn true 
+//p_mouse_p32xx_sensor_motion_1:
+//	setarg PAN_REG_MOTION_STAUS
+//	call twspi_read
+//	rtnbit0 7
+//	setarg PAN_REG_OPRATION_STATE
+//	call twspi_read
+//	branch mouse_p32xx_sensor_motion_1+3,blank
+//	setarg 0
+//	store 6,mem_mouse_x
+//	rtn
+
 	
 p_mouse_bb_event_discovery_btn:
 	call p_mouse_null_enter_hibernate_disable
@@ -2567,22 +2476,48 @@
 	isolate1 mark_24g,mark
 	call p_g24_check_51cmd_stop_24g,true
 endif
-	jam 0,mem_mouse_send_blank_timer
-	fetch 1,mem_mouse_le_not_tx_disconn
-	call mouse_disconnect,blank
-	setarg 0
-	store 2,mem_mouse_no_data_timer
-	branch mouse_bb_event_discovery_btn+3
+	jam 3,mem_mouse_delay_discovery_count
+	call mouse_disconnect
+	branch mouse_le_clean_connect_flag
 
 ifdef BLE
+p_le_addr_random_config:
+	jam ZCODE_81,mem_zcode_temp_param0
+	branch p_zcode_entrance	
+
 p_mouse_start_discovery:
-	jam ZCODE_30,mem_zcode_temp_param0
+	jam ZCODE_50,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
+p_mouse_load_random_addr_increase_count:
+	call p_flash_release_deep_power_down
+	arg 2,temp
+	arg mem_random_addr_increase_count,rega
+	arg MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET,regb
+	fetch 3,mem_flash_base
+	iadd regb,pdata
+	branch spid_read_flash
+
+p_le_adv_data_update:
+	arg mem_le_adv_data+11,contw
+	arg 19,loopcnt
+	call memcpy
+	branch le_modified_name_adv
+
 p_mouse_stop_discovery:
-	call p_mouse_discovey_led_blink_off
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	setarg 0
+	store 2,mem_mouse_discovery_timer
 	call p_mouse_init_sensor_reset		//clear sensor data,confirm the motion pin high
-	branch mouse_stop_discovery+1
+	fetch 1,mem_device_option
+	isolate1 MODE_4_MOUSE,pdata
+	call mouse_stop_le_adv,true
+	fetch 1,mem_device_option
+	isolate1 MODE_3_MOUSE,pdata
+	call mouse_stop_bt3_discovery,true
+	branch p_mouse_discovey_led_blink_off
+
 
 ifdef BLE
 p_le_slave_match:
@@ -2603,68 +2538,17 @@
 	jam 37,mem_le_ch_mapped
 	rtn
 
-ifdef BLE_RFIO
-p_le_receive_rxon:
-ifdef RF_DEBUG
-	call test_h_l_h
-endif
-	call le_prep
-	disable match
-	enable decode_fec0
-	enable is_rx
-	disable is_tx
-	copy timeup,stop_watch
-	correlate null,timeout
-	branch p_le_receive_on_attempt,attempt
-	copy clke,temp
-	storet 6,mem_sync_clke
-p_le_receive_on_attempt:
-	nbranch end_of_packet,sync
-ifdef RF_DEBUG
-	call test_gpio_low
-	call test_gpio_high
-	call test_gpio_low
-endif	
-	branch le_receive_skip,attempt
-	arg param_clke_cal_le,clke_rt
-	copy bt_clk,clke_bt
-	fetch 1,mem_le_state
-	bbit0 lestate_got_first_packet,le_receive_skip
-	call lpm_adjust_clk,wake
-	branch le_receive_skip
-
-p_end_of_packet:
-ifdef RF_DEBUG
-	call test_gpio_low
-endif	
-	branch end_of_packet+1
-	
-p_lerx_nopayload:
-	parse demod,bucket,24
-	enable swfine
-	arg param_sifs,stop_watch		// start SIFS timer after last bit of crc
-	rshift32 pdata,pdata
-	rshift16 pdata,pdata
-	istore 3,contw
-	branch end_of_packet,crc_failed
-//ifdef RF_DEBUG
-//	call test_gpio_low
-//	call test_gpio_high
-//endif
-	branch lerx_nopayload+8
-endif
-
 p_le_receive_skip:
 	call save_rssi
 	call p_rssi_signal
 	branch le_receive_skip+2
 
 p_le_update_param:
-	jam ZCODE_20,mem_zcode_temp_param0
+	jam ZCODE_40,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_le_update_channel_map:
-	jam ZCODE_21,mem_zcode_temp_param0
+	jam ZCODE_41,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_le_prepare_tx:
@@ -2692,6 +2576,10 @@
 	call p_mouse_data_pull,blank
 	branch le_prepare_tx+4
 
+p_le_prepare_tx_wak:
+	call p_le_check_tx_retransmit_setmd
+	branch p_le_power_ctrl_pac_succ_decrs
+
 p_le_check_tx_retransmit_setmd:
 	fetch 1,mem_le_connect_status_flag
 	and pdata,0x03,pdata
@@ -2715,8 +2603,8 @@
 endif
 	rtn
 
-p_le_prepare_tx_wak:
-	call p_le_check_tx_retransmit_setmd
+	
+	
 p_le_power_ctrl_pac_succ_decrs:
 ifdef DEBUGLOG
 ifdef DEBUGLOG_MISC
@@ -2735,7 +2623,7 @@
 	fetch 1,mem_le_connect_status_flag
 	and pdata,0x03,pdata
 	rtneq 0x03
-	jam 2,mem_le_start_encrypt_timer
+	jam 1,mem_le_start_encrypt_timer
 	rtn
 
 p_le_parse:
@@ -2756,19 +2644,8 @@
 	branch le_parse_l2cap
 p_le_parse_ll:
 	fetch 1,mem_le_rxbuf+2
-	beq LL_CONNECTION_UPDATE_REQ,p_le_parse_connection_update_req
 	beq LL_CHANNEL_MAP_REQ,p_le_parse_channel_map_req
 	branch le_parse_ll+1
-p_le_parse_connection_update_req:
-	call le_parse_connection_update_req
-	fetch 1,mem_mouse_le_updata_not_accepted_flag
-	rtn blank
-//ipad not accepted updata, need reinit mem_lpm_mult.   mem_lpm_mult = LL_CONNECTION_UPDATE_REQ latency = 04	
-p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset:	
-	fetch 1,mem_le_new_connslavelatency
-	store 1,mem_lpm_mult
-	store 1,mem_lpm_mult_init
-	rtn		
 p_le_parse_channel_map_req:
 	ifetch 5,contr
 	store 5,mem_le_new_map
@@ -2822,26 +2699,52 @@
 	fetch 1,mem_le_configuration
 	bbit1 BIT_BLE_READ_AUTH,p_le_send_att_read_response_check_auth
 p_le_send_att_read_response:
+//	call le_att_get_handle_ptr
+//	branch le_send_att_error_response_notfound,blank
+//	increase -2,contr
+//	ifetch 2,contr
+//	arg UUID_CHRCTR_PNP_ID,temp
+//	isub temp,null
+//	branch p_le_send_att_pnp_id,zero
+	
 	fetch 2,mem_le_att_handle
 	beq 0x13,le_send_att_error_response_notfound
+
 	fetcht 2,mem_le_att_handle
 	branch le_send_att_read_response
+
+//p_le_send_att_pnp_id:
+//	call store_contr
+//	fetch 1,mem_le_att_pnp_id_len
+//	add pdata,1,rega
+//	call le_fifo_malloc_tx_l2cap_gatt
+//	setarg ATTOP_READ_RESPONSE
+//	istore 1,contw
+//	fetch 1,mem_le_att_pnp_id_len
+//	copy pdata,loopcnt
+//	arg mem_le_att_pnp_id,contr
+//	branch memcpy
+
 p_le_send_att_read_response_check_auth:
 	fetch 2,mem_le_pairing_handle
 	isub temp,null
 	nbranch p_le_send_att_read_response,zero
 	call le_check_encrypt_state
 	nbranch p_le_send_att_read_response,user
-	branch le_send_att_read_response_check_auth+5
+	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
+	branch le_send_att_error_response
 	
+
 p_le_parse_smp:
 	ifetch 1,contr
 	beq SMP_PAIRING_REQUEST,p_le_parse_smp_pairing_request
 	beq SMP_PAIRING_FAILED,p_le_parse_smp_pairing_failed
-	branch le_parse_smp+1
+	branch le_parse_smp+2
+
 p_le_parse_smp_pairing_request:
 	jam 1,mem_le_send_security_request_flag
-	branch le_parse_smp_pairing_request	
+	branch le_parse_smp_pairing_request
+	
 p_le_parse_smp_pairing_failed:
 	jam ZCODE_82,mem_zcode_temp_param0
 	branch p_zcode_entrance
@@ -2874,8 +2777,12 @@
 	branch le_lpm_set_mult_attempt+3
 
 p_le_mouse_bb_event_connect_complete:
-	jam ZCODE_22,mem_zcode_temp_param0
-	branch p_zcode_entrance
+	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
 
 p_twspi_reset:
@@ -2902,7 +2809,7 @@
 	hstore 1,core_gpio_sel1  //enable spi
 	rtn
 
-
+/*
 ifdef CLASSIC_BT
 p_page_wait_fhs_reply_ok:
 	jam ZCODE_00,mem_zcode_temp_param0
@@ -2947,8 +2854,13 @@
 	branch process_dmh+1
 
 p_quit_connection_cont:
-	jam ZCODE_23,mem_zcode_temp_param0
-	branch p_zcode_entrance
+	call app_disconn_reason_collect_bt
+	call sniff_exit
+	jam BT_EVT_BB_DISCONNECTED,mem_fifo_temp
+	call ui_ipc_send_event
+	call init_lmp_work
+	call l2cap_init_work
+	branch quit_connection_cont+8
 
 p_prepare_tx:
 	fetch 1,mem_state
@@ -3015,11 +2927,11 @@
 	rtn	
 
 p_mouse_bb_disconnected:
-	jam ZCODE_01,mem_zcode_temp_param0
+	jam ZCODE_10,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_hid_rx_process:
-	jam ZCODE_02,mem_zcode_temp_param0
+	jam ZCODE_11,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_parse_lmp_accepted:
@@ -3034,10 +2946,11 @@
 	rtn blank
 	jam 2,mem_bt_send_lmp_setup_complete
 	rtn
-
+*/
 p_send_lmp:
 	disable user
 	call lmo_fifo_process
+
 ifdef DEBUGLOG
 ifdef DEBUGLOG_SEND_LMP
 	setarg DEBUGLOG_DTYPE_SEND_LMP
@@ -3051,20 +2964,21 @@
 	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
+	beq LMP_SNIFF_REQ, p_send_lmp_sniff_req
 	branch send_lmp0
 
 p_send_lmp_escape:
-	jam ZCODE_10,mem_zcode_temp_param0
+	jam ZCODE_20,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_send_lmp_accepted:
-	jam ZCODE_11,mem_zcode_temp_param0
+	jam ZCODE_21,mem_zcode_temp_param0
 	branch p_zcode_entrance
 
 p_send_lmp_setup_complete:
@@ -3295,7 +3209,7 @@
 
 power_ctrl_txpower_decrs_check:
 	fetch 1,mem_power_ctrl_pac_succ_cnt
-	rtnne 50
+	rtnne 32
 	jam 0,mem_power_ctrl_pac_succ_cnt
 power_ctrl_txpower_decrs:
 	fetcht 1,mem_rssi_avg_received
@@ -3462,7 +3376,7 @@
 p_initialize_radio_cont:
 	call initialize_radio_cont+1
 	jam clksel_dpll,core_clksel
-	rtn	
+	rtn
 
 // input : mem_zcode_temp_param0 ---- zocde number(0~1f)
 p_zcode_entrance:
@@ -3493,6 +3407,7 @@
 	iadd temp,pdata
 	increase -5,pdata
 	store 3,mem_flash_address
+	
 	call p_flash_release_deep_power_down
 p_zcode_read_loop:
 	fetch 3,mem_flash_address
@@ -3504,7 +3419,7 @@
 	isub temp,null
 	nbranch p_zcode_read_loop,zero	//sometimes we will lost p_start,read flash again
 	call p_mouse_spi_init
-
+	
 	setarg mem_zcode_buff
 	store 2,mem_patch_ptr
 	jam ZCODE_CODE_SIZE,mem_patch_len
@@ -3515,6 +3430,8 @@
 	fetch 1,mem_zcode_temp_param0
 	branch p_zcode
 
+
+
 ifdef DEBUGLOG 
 pdata_push:
 	store 8,mem_debuglog_pdata
@@ -3652,6 +3569,28 @@
 	branch clear_mem
 
 p_drawing_optima_modify:
+ifdef XY_OFFSET
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_value
+	call pre_xy_data_judge
+	store 2,mem_mouse_x_pre
+
+	fetch 2,mem_mouse_x
+	store 2,mem_data_value
+	call current_xy_data_judge
+	store 2,mem_mouse_x
+
+	fetch 2,mem_mouse_y_pre
+	store 2,mem_data_value
+	call pre_xy_data_judge
+	store 2,mem_mouse_y_pre
+	
+	fetch 2,mem_mouse_y
+	store 2,mem_data_value
+	call current_xy_data_judge
+	store 2,mem_mouse_y	
+endif
+
 	fetch 2,mem_mouse_x_pre
 	store 2,mem_data_pre
 	fetch 2,mem_mouse_x
@@ -3671,13 +3610,16 @@
 	store 2,mem_mouse_y_pre
 	fetch 2,mem_data_current
 	store 2,mem_mouse_y
+	rtn
 
 p_drawing_optima_data_x:
 	fetch 2,mem_data_pre
 	fetcht 2,mem_data_current
 	iadd temp,pdata
+
 	fetcht 1,mem_mouse_data_xtemp
 	iadd temp,pdata
+
 	and pdata,0x01,temp
 	storet 1,mem_mouse_data_xtemp
 	branch p_drawing_optima_data
@@ -3686,54 +3628,64 @@
 	fetch 2,mem_data_pre
 	fetcht 2,mem_data_current
 	iadd temp,pdata
+
 	fetcht 1,mem_mouse_data_ytemp
 	iadd temp,pdata
+
 	and pdata,0x01,temp
 	storet 1,mem_mouse_data_ytemp
 	branch p_drawing_optima_data
 
 ifdef XY_OFFSET
-	call p_data_abs_check
-	setarg 0x14	//offset enable condition
-	call p_pdata_greater_than_check
-	rtn blank
-	fetch 1,mem_mouse_x
-	store 1,mem_data_value
-	fetch 1,mem_mouse_x+1
-	sub pdata,0x00,null
-	call p_xy_pdata_offset,zero
-	ncall p_xy_ndata_offset,zero
-	store 1,mem_mouse_x
-	store 1,mem_mouse_x_pre
+pre_xy_data_judge:	
+	fetch 1,mem_data_value+1
+	branch pre_xy_pdata_offset,blank
+	branch pre_xy_ndata_offset
 
-	fetch 1,mem_mouse_y
+pre_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call pre_xy_get_0_4_times
 	store 1,mem_data_value
-	fetch 1,mem_mouse_y+1
-	sub pdata,0x00,null
-	call p_xy_pdata_offset,zero
-	ncall p_xy_ndata_offset,zero
-	store 1,mem_mouse_y
-	store 1,mem_mouse_y_pre
-endif
+xy_data_offset_new:
+	fetch 2,mem_data_value
 	rtn
-
-ifdef XY_OFFSET
-p_xy_pdata_offset:
+pre_xy_ndata_offset:
 	fetch 1,mem_data_value
-	sub pdata,0x70,null
-	nrtn positive
-	mul32 pdata,9,pdata
-	rshift3 pdata,pdata
-	rtn
-p_xy_ndata_offset:
+	call p_pdata_invert
+	call pre_xy_get_0_4_times
+	call disable_blank,blank
+	call p_pdata_get_new_value
+	branch xy_data_offset_new
+
+current_xy_data_judge:
+	fetch 1,mem_data_value+1
+	branch current_xy_pdata_offset,blank
+	branch current_xy_ndata_offset
+current_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call current_xy_get_0_6_times
+	store 1,mem_data_value
+	branch xy_data_offset_new
+current_xy_ndata_offset:	
 	fetch 1,mem_data_value
-	sub pdata,0x90,null
-	rtn positive
-p_pdata_get_1125_times:	//1.125 times
 	call p_pdata_invert
-	mul32 pdata,9,pdata
-	rshift3 pdata,pdata
-	branch p_pdata_get_new_value
+	call current_xy_get_0_6_times
+	call disable_blank,blank
+	call p_pdata_get_new_value
+	branch xy_data_offset_new
+	
+pre_xy_get_0_4_times:
+	mul32 pdata,3,pdata
+	div pdata,5
+	call wait_div_end
+	quotient pdata
+	rtn
+current_xy_get_0_6_times:	//0.6 times
+	mul32 pdata,12,pdata
+	div pdata,10
+	call wait_div_end
+	quotient pdata
+	rtn	
 endif
 
 /**********
@@ -3783,6 +3735,7 @@
 p_pdata_get_new_value:	
 	call p_rega_in_out
 	sub pdata,0,pdata
+	store 1,mem_data_value	
 	rtn
 
 p_pdata_invert:
Index: program/peripherals.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/peripherals.prog	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/peripherals.prog	(working copy)
@@ -2303,7 +2303,7 @@
 	hfetch 2,core_clkoff
 	set0 CLOCK_OFF_PWM,pdata
 	hstore 2,core_clkoff
-delay_nop100:	
+delay_nop100:
 	nop 100
 	rtn
 
Index: program/z.prog
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/z.prog	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/program/z.prog	(working copy)
@@ -1,11 +1,34 @@
 
 org 0x10001
 z_entrance0:
-	beq ZCODE_01,z_mouse_bb_disconnected
-ifdef CLASSIC_BT
 	beq ZCODE_00,z_page_wait_fhs_reply_ok
-	beq ZCODE_02,z_hid_rx_process
-endif	
+	rtn
+
+z_page_wait_fhs_reply_ok:
+ 	fetch 1, mem_page_rcv_fhs
+	increase 1,pdata
+	store 1, mem_page_rcv_fhs
+	call prepare_newconn
+z_master_newconn_loop:
+ 	set1 mark_first_packet,mark
+	call master_newconn_once
+	branch z_newconn_poll_responded,sync
+	set0 mark_first_packet,mark
+	call new_conn_timeout
+	nbranch z_master_newconn_loop,blank
+	branch page_restart
+z_newconn_poll_responded:
+	set0 mark_first_packet,mark
+	branch newconn_poll_responded
+
+
+
+	
+org 0x20001
+
+z_entrance1:
+	beq ZCODE_10,z_mouse_bb_disconnected
+	beq ZCODE_11,z_hid_rx_process
 	rtn
 
 z_mouse_bb_disconnected:
@@ -13,12 +36,18 @@
 	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_BLE,z_mouse4_0_event_bb_disconn
 	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
 	bbit1 APP_DISC_AFTER_PAIRING,z_mouse_event_light_state_pairing
 	bbit1 APP_DISC_AFTER_RECONN,z_mouse_event_light_state_hibernate
 	bbit1 APP_DISC_AFTER_SNIFF,z_mouse_event_light_state_hibernate
 	branch mouse_start_discovery
+
+z_mouse4_0_event_bb_disconn:
+	call mouse_le_clean_connect_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+//	bbit1 APP_DISC_PB_BUTTON,p_mouse_select_device_button_up
+	branch mouse4_0_event_bb_disconn+2
 	
 z_mouse_event_light_state_pairing:
 	bbit1 APP_DISC_AFTER_HANDSHAKE,z_mouse_event_light_state_hibernate
@@ -28,34 +57,10 @@
 	fetch 2,mem_ui_state_map
 	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
 	call app_disconn_reason_clear
-	call p_mouse_check_key_gpio	//mult_key pair
-	beq MOUSE_LMR_BUTTON,z_mouse_null_enter_hibernate_enable
-	fetch 1,mem_mouse_dpi_button_state	//dpi key switch
-	branch z_mouse_null_enter_hibernate_enable,blank
+	call p_mouse_check_key_gpio_once
+	beq MOUSE_LM_BUTTON,p_mouse_null_enter_hibernate_enable
 	branch app_bb_hibernate
 
-z_mouse_null_enter_hibernate_enable:	//ble never connected
-	jam 1,mem_mouse_null_enter_hibernate_flag
-	jam 40,mem_mouse_null_enter_hibernate_timer	//lmr 3s
-	rtn	
-
-ifdef CLASSIC_BT
-z_page_wait_fhs_reply_ok:
- 	fetch 1, mem_page_rcv_fhs
-	increase 1,pdata
-	store 1, mem_page_rcv_fhs
-	call prepare_newconn
-z_master_newconn_loop:
- 	set1 mark_first_packet,mark
-	call master_newconn_once
-	branch z_newconn_poll_responded,sync
-	set0 mark_first_packet,mark
-	call new_conn_timeout
-	nbranch z_master_newconn_loop,blank
-	branch page_restart
-z_newconn_poll_responded:
-	set0 mark_first_packet,mark
-	branch newconn_poll_responded
 
 z_hid_rx_process:
 	fetch 2,mem_l2cap_payload_ptr
@@ -80,26 +85,35 @@
 	copy temp,pdata
 	beq HID_CONTROL_P_VIRTUALCABLEUNPLUG,p_mouse_irtual_cable_unplug
 	branch hid_rx_process_hid_control+2
-endif	
 
-org 0x20001
+org 0x30001
 
-z_entrance1:
-	beq ZCODE_10,z_send_lmp_escape
-	beq ZCODE_11,z_send_lmp_accepted
-	beq ZCODE_12,z_mouse4_0_check_reconn_target
+z_entrance2:
+	beq ZCODE_20,z_send_lmp_escape
+	beq ZCODE_21,z_send_lmp_accepted
+	beq ZCODE_22,z_mouse4_0_check_reconn_target
 	rtn
 
 z_mouse4_0_check_reconn_target:
-	call p_mouse_bt_reconn_multi_led_blink
 	jam 1,mem_le_send_security_request_flag
 	jam 1,mem_mouse_le_reconnect_flag
 	fetch 2,mem_mouse_direct_timeout
+ifdef BLE_FAST_CONN_ENABLE
+	fetcht 1,mem_mouse_fast_conn_flag
+	sub temp,0xff,null
+	nbranch z_mouse4_0_check_reconn_target_next,zero
+	setarg 0x0258								//ble fast conn time 1min
+endif
+z_mouse4_0_check_reconn_target_next:
 	store 2,mem_mouse_direct_timer
-	call p_mouse_store_eeprom_enable
 	call app_lpm_mult_disable
+	call p_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED
+	istore 1,contr
+
 	arg mem_le_scan_data,contr
 	call p_le_adv_data_update
+	
 	branch check_51cmd_adv
 
 z_send_lmp_escape:
@@ -150,14 +164,85 @@
 	copy clkn_bt,pdata
 	store 4,mem_aurand_send_delay_time
 	rtn
-	
-org 0x30001
 
-z_entrance2:
-	beq ZCODE_20,z_le_update_param
-	beq ZCODE_21,z_le_update_channel_map
-	beq ZCODE_22,z_le_mouse_bb_event_connect_complete
-	beq ZCODE_23,z_quit_connection_cont
+
+org 0x40001
+
+z_entrance3:
+	beq ZCODE_30,z_process_conn_sm
+	rtn
+
+z_process_conn_sm:
+	call lmo_fifo_check
+	nrtn blank
+z_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
+endif
+	beq CONN_SM_SEND_CONN_REQ, z_host_create_conn_send_conn_req
+	beq CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION,z_host_creat_conn_wait_switch
+	branch process_conn_sm_continue+2
+
+
+z_host_creat_conn_wait_switch:
+	fetch 1,mem_switch_flag
+	rtneq SWITCH_FLAG_INIT
+	beq SWITCH_FLAG_ACCEPT,z_host_create_conn_switch_accept
+	branch host_creat_conn_wait_switch+3
+z_host_create_conn_switch_accept:
+	rtn master
+z_host_create_conn_auth_pair:
+	/* checking whether or not to do m/s switch */
+	fetch 1,mem_connection_options
+	bbit1 CONNECTION_AUTH,z_host_create_conn_auth_pair_true
+	branch host_create_conn_auth_pair+1
+z_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 z_bt_send_max_slot_req_accept_after_switch_wait,positive
+	branch host_create_conn_auth
+
+z_bt_send_max_slot_req_accept_after_switch_wait:
+	jam 1,mem_bt_send_max_slot_req_accept_after_switch
+	rtn
+
+z_host_create_conn_send_conn_req:
+	jam 20,mem_mouse_send_switch_req_timer
+	branch host_create_conn_send_conn_req
+
+
+
+
+
+org 0x50001
+
+z_entrance4:
+	beq ZCODE_40,z_le_update_param
+	beq ZCODE_41,z_le_update_channel_map
 	rtn
 
 z_le_update_param:
@@ -200,41 +285,39 @@
 	rtnne 0x00
 	branch disable_user
 
-z_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
-	jam 0,mem_le_start_encrypt_timer
-	branch mouse_le_write_enable
-	
-z_quit_connection_cont:
-	call app_disconn_reason_collect_bt
-	call sniff_exit
-	jam BT_EVT_BB_DISCONNECTED,mem_fifo_temp
-	call ui_ipc_send_event
-	call init_lmp_work
-	call l2cap_init_work
-	branch quit_connection_cont+8
 
-org 0x40001
 
-z_entrance3:
-	beq ZCODE_30,z_mouse_start_discovery
+org 0x60001
+
+z_entrance5:
+	beq ZCODE_50,z_mouse_start_discovery
 	rtn
 
+
 z_mouse_start_discovery:
-	call p_mouse_tx_power_init
 	jam 0,mem_le_send_security_request_flag
-	jam 1,mem_mouse_start_discovery_enable
+	call p_mouse_tx_power_init
 	jam MODE_BT_DEVICE1,mem_device_flag
 	jam 0,mem_mouse_clear_sensor_data_flag
+//	fetch 2,mem_ui_state_map
+//	bbit1 UI_STATE_BLE_ADV,z_mouse_start_discovery_norandom
+//	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+//	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,z_mouse_start_discovery_norandom
+ifdef BLE
+	call p_mouse_load_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_random_addr_increase_count
+	random pdata
+	store 1,mem_le_lap
+endif
 z_mouse_start_discovery_norandom:
 ifdef BLE_FAST_CONN_ENABLE
-	fetch 6,mem_le_normal_lap
-	store 6,mem_le_lap
-	call p_mouse_fast_conn_disable
+	fetch 3,mem_le_lap_high_3B
+	store 3,mem_le_lap+3
+	call p_mouse_le_fast_conn_disable
 endif
 	call app_lpm_mult_disable
 	fetch 2,mem_discovery_timeout
@@ -243,75 +326,88 @@
 	setarg 0
 	store 2,mem_mouse_no_data_timer
 	store 2,mem_mouse_direct_timer
-	call p_mouse_store_eeprom_enable
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
 	call mouse_bt_discovery_button_down_disable
-
-	call p_mouse_load_flash_device_info
-	fetch 1,mem_xrecord_mode
-	sub pdata,REC_3_MODE,null
-	call z3_check_51cmd_adv,zero
-
+	fetch 1,mem_device_option
+	isolate1 MODE_4_MOUSE,pdata
+	call z_check_51cmd_adv,true
 	fetch 1,mem_device_option
 	isolate1 MODE_3_MOUSE,pdata
 	call check_51cmd_start_discovery,true
+//	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+//	bbit1 MOUSE_ENABLE_DISCOVERY_SENSOR_LED,mouse_sensor_start_blink
 	branch p_mouse_discovery_multi_led_blink
 
-z3_check_51cmd_adv:
-ifdef BLE_FAST_CONN_ENABLE
-	fetch 6,mem_le_normal_lap
-	store 6,mem_le_lap
-endif
-	call p_mouse_le_adv_data_update
+z_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
+	arg mem_le_adv_swift_pair,contr
+	call p_le_adv_data_update
 	branch check_51cmd_adv
 
-org 0x50001
+org 0x70001
 
-z_entrance4:
-	beq ZCODE_40,z_g24_start_24g_mode
-	beq ZCODE_41,z_g24_auto_pair_start	
-	beq ZCODE_42,z_mouse_24g_pairing_button
+z_entrance6:
+	beq ZCODE_60,z_g24_start_24g_mode
+	beq ZCODE_61,z_mouse_24g_pairing_button
 	rtn
-
+	
 z_g24_start_24g_mode:
-	call z_g24_factory_check
-	branch p_g24_auto_pair_start,user
-	set1 mark_24g,mark
-	fetch 1,mem_24g_conn_sm
-	set1 STATE_24G_RECONN,pdata
-	store 1,mem_24g_conn_sm
+	set0 mark_24g,mark
 	call p_g24_syncword_crc8
 	call p_g24_ch
-	branch z_g24_auto_pair_timeout_init
-
-z_g24_factory_check:
-	arg 2,loopcnt
-	arg mem_24g_addr,contr
-	call enable_user
-	setarg 0xffff
-z4_pdata_0xff_check_loop:
-	ifetcht 2,contr
-	isub temp,null
-	ncall disable_user,zero
-	loop z4_pdata_0xff_check_loop
-	rtn
-
-z_g24_auto_pair_start:
+	fetch 1,mem_24g_pairing_sm
+	rtnne STATE_24G_PAIRING_SUCCESS
+	call z_g24_tx_attemp_data_prep
+z_g24_tx_attemp_dongle:
+	setarg 0
+	store 2,mem_24g_check_dongle_times
+z_g24_tx_attemp_dongle_loop:
+//	call lpo_calibration
+	nop 2000
+	fetch 1,mem_24g_check_dongle_times
+	beq 0xff,g24_stop_24g_mode
+	call p_g24_transmit_receive_ack
+	nbranch z_g24_attemp_txdata_retry,sync
+	nbranch z_g24_attemp_txdata_retry,user3
+z_g24_tx_attemp_dongle_succ:
 	set1 mark_24g,mark
-	fetch 1,mem_24g_conn_sm
-	set1 STATE_24G_PAIR,pdata
-	store 1,mem_24g_conn_sm
-z_g24_auto_pair_timeout_init:
-	setarg G24_DISCONN_NODATA_TIMER
-	store 2,mem_24g_stop_g24_mode_timeout
-	jam 0,mem_24g_stop_g24_mode
-	rtn	
+	setarg 0
+	store 2,mem_24g_check_dongle_times
+	call g24_app_tx_attempt_success
+	call p_g24_txbuf_clear
+	branch p_g24_transmit_by_interrupt_enable
+
+z_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
 	
+z_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 z_g24_tx_attemp_dongle_loop
+
+
 z_mouse_24g_pairing_button:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit0 MOUSE_ENABLE_24G
 	rtnbit1 MOSUE_24G_PAIRING_FLAG
 	rtnmark1 mark_24g
-	call mouse_devce_led_off
+	//call p_mouse_devce_led_off
 	arg MOSUE_24G_PAIRING_FLAG,queue
 	call mouse_enable_function_flag
 	setarg 0
@@ -320,68 +416,41 @@
 	store 2,mem_24g_check_dongle_times
 	call mouse_stop_discovery
 	branch p_g24_auto_pair_start
-	
 
-org 0x60001
+org 0x80001
 
-z_entrance5:
-	beq ZCODE_50,z_mouse_24g_pairing_complete
-	beq ZCODE_51,z_mouse_24g_attempt_fail
-	beq ZCODE_52,z_mouse_24g_attempt_success
-	beq ZCODE_53,z_g24_reconn_dispatch
+z_entrance7:
+	beq ZCODE_70,z_g24_auto_pair_start
 	rtn
 
-z_mouse_24g_pairing_complete:
-	arg MOSUE_24G_PAIRING_FLAG,queue
-	call mouse_disable_function_flag
-	jam 0,mem_mouse_move_flag
-	call mouse_read_sensor_common
-	call p_mouse_tx_power_init
-	branch z_mouse_24g_attempt_success
-
-z_mouse_24g_attempt_fail:
-	jam G24_TX_TIMER_INT_DISABLE,mem_24g_transmit_by_interrupt
+z_g24_auto_pair_start:
+	set0 mark_24g,mark
+	call z_g24_auto_pair_all_powerful
+	call z7_g24_tx_attemp_data_prep
+z_g24_auto_pair_restart:
+	jam 0,mem_24g_check_dongle_times
+z_g24_auto_pair_start_loop:
+//	call lpo_calibration
+	nop 2000
+	fetch 1,mem_24g_check_dongle_times
+	beq 0xff,g24_stop_24g_mode
+	call p_g24_transmit_receive_ack
+	nbranch z_g24_auto_pair_retry,sync
+	nbranch z_g24_auto_pair_retry,user3
+	call p_g24_ackpayload_parse
 	call p_mouse_tx_power_init
-	call p_g24_check_51cmd_stop_24g
-	branch app_enter_hibernate
-
-z_mouse_24g_attempt_success:
-	jam 0,mem_mouse_long_mult_flag
-	call z_g24_auto_pair_timeout_clear
-	call p_mouse_null_enter_hibernate_disable
-	call mouse_no_data_timer_init
 	fetch 4,mem_24g_addr
-	store 4,mem_mouse_24g_addr
-	call mouse_cheak_select_24gdevice
-	branch p_mouse_store_flash_device_info
-
-z_g24_auto_pair_timeout_clear:
+	fetcht 4,mem_24g_paring_addr
+	isub temp,null
+	branch z_g24_start_pairing_sm1,zero
+	set1 mark_24g,mark
 	setarg 0
-	store 3,mem_24g_stop_g24_mode
-	rtn
-
-z_g24_reconn_dispatch:
-	fetch 1,mem_24g_stop_g24_mode
-	beq 1,g24_stop_24g_mode
-	call z_g24_tx_attemp_data_prep
-	call p_g24_transmit_receive_ack
-	nbranch p_g24_ch,sync
-	nbranch p_g24_ch,user3
-	fetch 1,mem_24g_conn_sm
-	set0 STATE_24G_RECONN,pdata
-	store 1,mem_24g_conn_sm
-z_g24_tx_attemp_dongle_succ:
-	jam 0,mem_mouse_long_mult_flag
+	store 2,mem_24g_check_dongle_times
 	call g24_app_tx_attempt_success
 	call p_g24_txbuf_clear
 	branch p_g24_transmit_by_interrupt_enable
 
-
-z_g24_store_dongle_addr:
-	fetch 4,mem_24g_rxpayload+2
-	branch p_g24_update_addr_and_synccrc8
-
-z_g24_tx_attemp_data_prep:
+z7_g24_tx_attemp_data_prep:
 	jam 0xff,mem_24g_common_temp
 	fetch 1,mem_24g_data_type
 	store 1,mem_24g_common_temp+1
@@ -392,190 +461,127 @@
 	call p_g24_put_data_in_buff
 	branch p_g24_transmit_prep
 
-	
-endif
-
-
-org 0x70001
-
-z_entrance6:
-//	beq ZCODE_60,z_g24_pair_dispatch
-z_g24_pair_dispatch:
-	fetch 1,mem_24g_stop_g24_mode
-	beq 1,g24_stop_24g_mode
-	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
-	call p_g24_transmit_prep
-	call p_g24_transmit_receive_ack
-	nbranch z_g24_pair_txdata_retry,sync
-	nbranch z_g24_pair_txdata_retry,user3
-	call p_g24_ackpayload_parse
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_allpowerful_addr
-	isub temp,null
-	branch z_g24_auto_pair_skip_rx_length,zero
-	fetch 1,mem_24g_rxdata_length	//ack payload length
-	rtnne BIND_ACKPAYLOAD_LENGTH
-z_g24_auto_pair_skip_rx_length:
-//	fetch 1,mem_24g_conn_sm
-//	set0 STATE_24G_PAIR,pdata
-//	store 1,mem_24g_conn_sm
-	jam 0,mem_24g_conn_sm
-	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
-	fetch 4,mem_24g_addr
-	fetcht 4,mem_24g_device_addr
-	isub temp,null
-	call z7_g24_store_dongle_addr,zero
-	jam 0,mem_mouse_long_mult_flag
-	call g24_app_tx_attempt_success
-	call p_g24_txbuf_clear
-	branch p_g24_transmit_by_interrupt_enable
-
-z7_g24_store_dongle_addr:
-	fetch 4,mem_24g_rxpayload+2
-	branch p_g24_update_addr_and_synccrc8
-
-z_g24_pair_txdata_retry:
-z_g24_pair_txdata_switch:
+z_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 3,pdata
+	and_into 1,pdata
 	store 1,mem_24g_auto_paring_switch
-	beq 0,z_g24_auto_pair_first_attemp
-	beq 2,z_g24_auto_pair_all_powerful
-	branch p_g24_pair_init
-	
-z_g24_auto_pair_first_attemp:
-	call p_mouse_tx_power_init
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_addr
-	fetch 1,mem_24g_pair_current_ch_num
-	store 1,mem_24g_current_ch_number
-	call z_g24_ch_syncword_crc8_init
-	storet 1,mem_24g_pair_current_ch_num
+	beq 0,z_g24_auto_pair_device_attemp
+	beq 1,z_g24_auto_pair_pair_attemp
 	rtn
-
-z_g24_ch_syncword_crc8_init:
+	
+z_g24_auto_pair_all_powerful:
+	jam TX_POWER_PAIR,mem_tx_power
+	setarg 0x0f0f
+	store 2,mem_24g_addr
+	istore 2,contw
+z_g24_ch_syncword_crc8_init:	
 	call p_g24_syncword_crc8
 	branch p_g24_ch
 
-z_g24_auto_pair_all_powerful:
-	jam TX_POWER_PAIR,mem_tx_power
-	fetch 4,mem_24g_allpowerful_addr
-	store 4,mem_24g_addr
-	fetch 1,mem_24g_powerful_current_ch_num
-	store 1,mem_24g_current_ch_number
-	call z_g24_ch_syncword_crc8_init
-	storet 1,mem_24g_powerful_current_ch_num
+z_g24_auto_pair_device_attemp:
+	call z_g24_auto_pair_all_powerful
+	branch z_g24_auto_pair_start_loop
+
+z_g24_auto_pair_pair_attemp:
+	call z_g24_pair_init
+	branch z_g24_auto_pair_start_loop
+
+z_g24_start_pairing_sm1:
+	set1 mark_24g,mark
+	call z_g24_pair_init
+z_g24_set_pairing_sm_1:
+	jam STATE_24G_PAIRING_1,mem_24g_pairing_sm
 	rtn
 
-org 0x80001
+z_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
 
-z_entrance7:
-	beq ZCODE_70,z_mouse_irtual_cable_unplug
-	beq ZCODE_71,z_g24_search_dongle	
-	rtn
 
-z_mouse_irtual_cable_unplug:
-	setarg -1
-	store 6,mem_plap
-	jam REC_3_MODE,mem_record_bt_mode
-	jam 0xff,mem_mouse_fast_conn_flag
-	call mouse_before_store_reconn_info
-	jam 0xff,mem_device1_type
-	branch p_mouse_store_flash_device_info
 
-z_g24_search_dongle:
-	fetch 1,mem_mouse_long_mult_flag
-	rtn blank
-	fetch 1,mem_24g_abort_pac
-	rtn blank
-	fetch 1,mem_24g_search_dongle_wait
-	increase 1,pdata
-	and_into 3,pdata
-	store 1,mem_24g_search_dongle_wait
-	nrtn blank	//400ms
-	jam 0,mem_24g_search_dongle_ch
-z_g24_search_dongle_loop:
-	fetch 1,mem_24g_search_dongle_ch
-	increase 1,pdata
-	store 1,mem_24g_search_dongle_ch
-	sub pdata,G24_CH_NUMBER,null
-	nbranch z_g24_search_dongle_loop_end,positive
-	call z7_g24_tx_attemp_data_prep
-	call p_g24_transmit_receive_ack
-	nbranch z_g24_search_dongle_loop_retry,sync
-	nbranch z_g24_search_dongle_loop_retry,user3
-	call p_g24_search_dongle_success
-z_g24_search_dongle_loop_end:
-	call p_g24_txbuf_clear
-	fetch 1,mem_24g_search_dongle_count
-	increase 1,pdata
-	store 1,mem_24g_search_dongle_count
-	beq G24_CH_POLL_COUNT,p_g24_search_dongle_check
-	rtn
-	
-z7_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
-	
-z_g24_search_dongle_loop_retry:
-	call p_g24_ch
-	branch z_g24_search_dongle_loop
 
 
 org 0x90001
 
 z_entrance8:
 	beq ZCODE_80,z_mouse_setting_config
+	beq ZCODE_81,z_le_addr_random_config
+//	beq ZCODE_82,z_le_parse_smp_pairing_failed
 	rtn
+//z_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
+
+
+ifdef BLE	
+z_le_addr_random_config:
+	call load_adc_init
+//	fetch 2,mem_0_5_adc_io_data	//adc data from otp
+//	nbranch z_le_otp_adc_empty,blank
+	setarg 0x1122
+z_le_otp_adc_empty:
+	store 2,mem_random_addr_increase_count
+	rtn
+endif
+
 
 z_mouse_setting_config:
+ifdef G24
+	call p_g24_set_device_addr
+endif
+//	//disable usb function
+//	hfetch 1,core_usb_config
+//	set0 4,pdata
+//	hstore 1,core_usb_config
 	call mouse_gpio_init
-	call p_mouse_multi_led_gpio_set_float
+
 	fetcht 1,mem_flash_ncs_gpio
 	call gpio_config_output
-
-	setarg 0x1802	//16M XTAL
-	store 2,mem_fcomp_mul
 	
+	call mouse_param_init
 ifdef CLASSIC_BT
 	call z_mouse_bt_sdp_update
 endif	
 	setarg 0
 	store 2,mem_lpm_interval
+	setarg 0x1802		//16M XTAL
+	store 2,mem_fcomp_mul
 	call load_adc_init
 	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
+	call p_le_addr_random_config
+endif
+	call p_flash_release_deep_power_down
+	call p_mouse_set_24g_addr_flash
+	fetch 3,mem_flash_base
+	iadd regb,pdata
+	call spid_read_flash
 
 	call p_mouse_load_flash_info_check
-	fetch 1,mem_device_flag
-	rtneq MODE_24G_DEVICE
-ifdef BLE_FAST_CONN_ENABLE	
-	fetch 6,mem_mouse_24g_addr_init
-	fetcht 6,mem_device1_addr
-	isub temp,null
-	nbranch p_mouse_fast_conn_disable,zero
-	branch p_mouse_fast_conn_le_switch_adv
-endif
+ifdef BLE_FAST_CONN_ENABLE
+	arg 3,loopcnt
+	arg mem_device1_addr,contr
+	call p_pdata_0xff_check
+	nbranch p_mouse_le_fast_conn_disable,user
+	call p_mouse_fast_conn_init
+endif	
 	rtn
 
+
 ifdef CLASSIC_BT
 z_mouse_bt_sdp_update:
 	call enable_authrom
@@ -618,6 +624,7 @@
 z_entrance9:
 	beq ZCODE_90,z_g24_pairing_sm
 	beq ZCODE_91,z_g24_paring_mode
+	beq ZCODE_92,z_mouse_24g_pairing_complete
 	rtn
 
 z_g24_pairing_sm:
@@ -677,23 +684,41 @@
 	branch p_g24_transmit_abandon
 
 
+z_mouse_24g_pairing_complete:
+	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
+	
+	call mouse_read_sensor_common
+	call p_mouse_null_enter_hibernate_disable
+	call p_mouse_tx_power_init
+	
+	fetch 4,mem_24g_addr
+	store 4,mem_mouse_24g_addr
+
+	call mouse_cheak_select_24gdevice
+	branch p_mouse_store_flash_device_info
+
 org 0xb0001
 
 z_entranceA:
-	beq ZCODE_A0,z_mouse_before_hibernate
+	beq ZCODE_A0,z_mouse_24g_attempt_fail
 	beq ZCODE_A1,z_mouse_le_conn_param_update_rsp_recieved
 	beq ZCODE_A2,z_mouse_le_bb_disconnected
-//	beq ZCODE_A3,z_mouse_bb_event_reconn_timeout
-//	rtn
-z_mouse_bb_event_reconn_timeout:
-z_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
-	branch app_bb_hibernate
+	beq ZCODE_A3,z_mouse_bb_event_reconn_timeout
+	beq ZCODE_A4,z_mouse_before_hibernate
+	rtn
+
+z_mouse_24g_attempt_fail:
+	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 p_mouse_setgpio_hibernate
+	branch p_mouse_null_enter_hibernate_enable
 
 z_mouse_le_conn_param_update_rsp_recieved:
 	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
@@ -701,20 +726,32 @@
 	fetch 1,mem_le_tsniff
 	rshift2 pdata,pdata
 	sub pdata,LE_INTERVAL_15MS,null
-	branch z_mouse_le_conn_param_update_rsp_not_accepted,positive
+	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
 	jam LE_LPM_DISABLE,mem_mouse_le_conn_param_reject
 	rtn
-//ipad not accepted updata, need reinit mem_lpm_mult.   mem_lpm_mult = CONNECT_IND latency = 0
-z_mouse_le_conn_param_update_rsp_not_accepted:
-	jam 1,mem_mouse_le_updata_not_accepted_flag
-	branch p_mouse_le_conn_param_update_rsp_not_accepted_mult_reset
+
+
+z_mouse_bb_event_reconn_timeout:
+z_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
+	branch app_bb_hibernate
 
 z_mouse_le_bb_disconnected:
 	jam 0,mem_mouse_le_bb_connected_flag
+ifdef HIGH_REPORT_BT
+	setarg LE_INTERVAL_7_5MS
+else 
+	setarg LE_INTERVAL_8_75MS
+endif
 	setarg LE_INTERVAL_8_75MS
 	store 2,mem_le_interval_min
 	store 2,mem_le_interval_min+2
@@ -722,56 +759,53 @@
 	jam 0,mem_mouse_clear_sensor_data_flag
 	call p_mouse_data_init
 	call le_clr_config_more_data
-	call mouse_bb_disconnected
 	call p_mouse_store_flash_device_info
-	fetch 1,mem_mouse_start_discovery_enable
-	rtn blank
-z_check_51cmd_adv:
-ifdef BLE_FAST_CONN_ENABLE
-	fetch 6,mem_le_normal_lap
-	store 6,mem_le_lap
-endif
-	call p_mouse_le_adv_data_update
-	branch check_51cmd_adv
+	branch mouse_bb_disconnected
+
 
 z_mouse_before_hibernate:
-	hfetch 4,core_lpm_ctrl
-	set1 26,pdata
+	enable user
+	hfetch 4,0x8138
+	setflag user,26,pdata
 	hstore 4,core_lpm_reg
 	call lpm_write_ctrl
 	call disable_authrom
-	call mouse_devce_led_off
+	call p_mouse_multi_led_off
 	call p_mouse_store_flash_device_info
 	call mouse_before_hibernate_wheel_gpio_set
 	call p_mouse_setgpio_hibernate
-	call p_mouse_multi_led_gpio_set_float
 	call p_flash_deep_power_down
 	hfetch 1,core_gpio_sel1
 	and pdata,0xf7,pdata
-	hstore 1,core_gpio_sel1  //disable flash spi
+	hstore 1,core_gpio_sel1  //disable flash spi		
 	hfetch 1,core_gpio_pd3	//gpio24 can not be set pulldown
 	set1 0,pdata
 	hstore 1,core_gpio_pd3
-//	fetch 8,mem_gpio_wakeup_low
-//	set0 6,pdata	//disable L Key wake
-//	store 8,mem_gpio_wakeup_low
-//	fetcht 1,mem_dpi_button_gpio
-//	call p_gpio_set_input_pd
-//	fetch 8,mem_gpio_wakeup_low
-//	set1 38,pdata	//enable dpi wake
-//	store 8,mem_gpio_wakeup_low
-	rtn	
-
+	fetcht 1,mem_config_bt_button_gpio
+	branch gpio_set_wake_by_current_state
+	
 	
 org 0xc0001
 
 z_entranceB:
+	beq ZCODE_B0,z_mouse_le_bb_event_connected
 	beq ZCODE_B1,z_mouse_sniff_not_accept
 	beq ZCODE_B2,z_mouse_enter_sniff_check
 	beq ZCODE_B3,z_mouse_le_ll_start_encryt
 	beq ZCODE_B4,z_mouse_bb_event_disconnected
+	beq ZCODE_B5,z_mouse_irtual_cable_unplug
 	rtn
 
+z_mouse_le_bb_event_connected:
+	jam 1,mem_mouse_le_bb_connected_flag
+	fetch 1,mem_mouse_le_reconnect_flag
+	nbranch p_mouse_le_bb_event_connected_next,blank
+	jam 0x14,mem_mouse_send_secutiry_request_timer
+p_mouse_le_bb_event_connected_next:
+	call p_mouse_null_enter_hibernate_disable
+	call p_mouse_data_init
+	branch mouse_le_bb_event_connected
+
 z_mouse_sniff_not_accept:
 	fetch 1,mem_mouse_enter_sniff_count
 	rtneq 2
@@ -784,17 +818,20 @@
 	fetch 1,mem_mouse_enter_sniff_count
 	rtnne 2
 	jam 0,mem_mouse_enter_sniff_count
+ifdef HIGH_REPORT_BT
+	jam CLASSIC_INTERVAL_7_5MS,mem_sniff_param_interval	//89Hz
+else
 	jam 0x0e,mem_sniff_param_interval	//89Hz
+endif
 	branch app_bt_enter_sniff
 
 z_mouse_le_ll_start_encryt:
 	fetch 1,mem_mouse_le_reconnect_flag
 	beq 1,z_mouse_le_ll_reconn_start_encryt
-	jam 20,mem_le_start_encrypt_timer
 	branch z_mouse_le_ll_enable_start_enc_flag
 z_mouse_le_ll_reconn_start_encryt:
 	call p_app_updata_le_param
-	jam 10,mem_le_start_encrypt_timer
+	jam 5,mem_le_start_encrypt_timer
 z_mouse_le_ll_enable_start_enc_flag:
 	arg LL_START_ENC_FLAG,queue
 	branch mouse_le_enable_connect_flag
@@ -806,5 +843,13 @@
 	call p_mouse_store_flash_device_info
 	branch mouse_bb_disconnected
 
+z_mouse_irtual_cable_unplug:
+	setarg -1
+	store 6,mem_plap
+	jam REC_3_MODE,mem_record_bt_mode
+	jam 0xff,mem_mouse_fast_conn_flag
+	call mouse_before_store_reconn_info
+	jam 0xff,mem_device1_type
+	branch p_mouse_store_flash_device_info
 
 
Index: sched/109x.dat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/sched/109x.dat	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/sched/109x.dat	(working copy)
@@ -1,14 +1,14 @@
 
-mem_lpm_config:8f 1f ce	#4khz
+mem_lpm_config:8f 1b ce	#+17khz
 mem_lpm_xtalcnt:00 0a 0b ef 07
 mem_lpm_hibernate_switch:00
 mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
 #mem_fcomp_mul:02
 #mem_fcomp_div:24
 mem_iscan_window:12 00
-mem_iscan_interval:80 00
+mem_iscan_interval:00 02
 mem_pscan_window:12 00
-mem_pscan_interval:80 00
+mem_pscan_interval:00 02
 mem_inq_window:20 00
 mem_page_window:20 00
 mem_page_to:00 40
Index: sched/mouse.dat
===================================================================
--- /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/sched/mouse.dat	(revision 3759)
+++ /branch/mouse_project/YJX_Project/YJX_1059/OnlyBLE_BR-M625/sched/mouse.dat	(working copy)
@@ -6,13 +6,13 @@
 #mem_patch0b:02
 mem_patch10:20
 mem_patch11:06
-mem_patch14:02#mem_patch14:82
+mem_patch14:02
 #mem_patch15:20
 mem_patch16:06
 mem_patch18:10
 #mem_patch19:08
 mem_patch1c:48
-mem_patch1d:1c#mem_patch1d:1e
+mem_patch1d:1c
 #mem_patch20:20
 mem_patch27:02
 mem_patch28:08
@@ -23,7 +23,7 @@
 mem_patch2d:04
 mem_patch2e:80
 #mem_patch30:05
-mem_patch31:30#mem_patch31:31
+mem_patch31:30
 mem_patch3f:04
 
 
@@ -57,10 +57,10 @@
 #bit5 MOUSE_ENABLE_AUTO_24G_PARING
 #bit6 MOUSE_ENABLE_WAKEUP_FROM_POWER
 #bit7 MOUSE_ENABLE_GPIO_CONTROL_ADC_SENSOR
-00
+41
 
 mem_app_connection_options:06
-mem_lap:20 51 17 01 20 20
+mem_lap:a0 b0 17 01 20 20
 mem_local_name_length:
 'BT3.0 Mouse
 mem_sniff_param_interval:
@@ -124,7 +124,7 @@
 mem_le_adv_own_addr_type:00
 mem_le_adv_channel_map:07 
 
-mem_le_lap:1a 21 34 0e 8e ed
+mem_le_lap:1e b1 3a 0e 8e ed
 
 mem_le_transmit_window:50
 
@@ -140,14 +140,15 @@
 mem_spi_ncs_gpio:ff
 mem_ui_button_gpio:ff
 mem_ui_button_timeout:32
+mem_bt_ui_button_timeout:01
 
 mem_device_number:02 #max device number
 mem_24g_device_number:02 #devie 2 :24g mode
-mem_adc_config_flag:02 #0 vinlpm 1 hvin 2 gpio
+mem_adc_config_flag:00 #0 vinlpm 1 hvin 2 gpio
 mem_adc_channel:32 #gpio5
-mem_mouse_vdd_full_vol:96 00#1.5V
-5a 00#mem_mouse_vdd_empty_vol#0.9V
-6e 00#mem_mouse_vdd_low_vol#1.1v
+mem_mouse_vdd_full_vol:06 01#2.62V
+fa 00#mem_mouse_vdd_empty_vol:5a 00# 2.5V
+04 01#mem_mouse_vdd_low_vol:64 00  #2.6V
 
 mem_config_sensor_type:00
 02 #mem_config_sensor_motion:02
@@ -162,7 +163,7 @@
 ff #mem_whee_ta_data_gpio:ff
 ff #mem_whee_tb_data_gpio:ff
 ff #mem_config_bt_button_gpio:ff
-06 #mem_config_select_device_button_gpio:ff
+ff #mem_config_select_device_button_gpio:ff
 ff #mem_config_paraing_led_gpio:ff
 ff #mem_config_low_voltage_alarm_gpio:08
 ff #mem_config_device1_led_gpio:08
@@ -170,7 +171,7 @@
 ff #mem_config_device3_led_gpio:ff
 ff #mem_sensor_data_gpio:18
 ff #mem_dpi_led_gpio:08
-20 #mem_config_function_enable:04
+ff #mem_config_function_enable:04
 03 #mem_config_sensor_angle:00
 ff #mem_select_sensor_angle_gpio:ff
 ff #mem_select_adc_gpio:ff
@@ -181,7 +182,6 @@
 #0X02 MOUSE_12CLK_ANGLE
 #0X03 MOUSE_3CLK_ANGLE
 
-
 mem_eeprom_wp_gpio:ff
 mem_sensor_reset_gpio:ff
 mem_sensor_squal_reg:07# 07:3205         	06:3610
@@ -197,7 +197,7 @@
 #bit5 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
 #bit6 ENABLE_SELECT_DEVICE_BY_SWITCH
 #bit7 ENABLE_SENSOR_MOTION_PIN
-#20
+#ff
 
 mem_mouse_dpi_seting:
 01##mem_320x_dpi_1
@@ -215,26 +215,14 @@
 #07##mem_3610_dpi_3
 #08##mem_3610_dpi_4
 
-mem_mouse_3065xy_dpi_seting:
-00
-01
-02
-03
-
 mem_sensor_8650_init:
 09 5a
 ff 27
 ab 40
-b3 56
-9b e6
-a8 12
-a9 c0
-be e6
-a5 af
-a0 21
-a1 02
-b8 10
-b9 0b
+be d1
+a0 41
+a1 12
+a5 84
 a7 ff
 b5 d0
 b6 00
@@ -242,6 +230,15 @@
 09 00
 ff ff
 
+mem_sensor_8009_init:
+09 5a
+06 02
+09 69
+0d 48
+0e 9f
+0f ba
+09 00
+ff ff
 
 mem_sensor_poweron_init:
 09 5a
@@ -286,10 +283,9 @@
 mem_24g_ch_map4:11 23 31 4d
 mem_24g_pairing_sm:ff
 mem_24g_paring_addr:20 15 10 05
-mem_24g_allpowerful_addr:0f 0f 0f 0f 0f 0f
 mem_24g_common_temp:00 00 00 00 00 00 00 00 00 00
 mem_24g_enter_hibernate:80 4f 12
-mem_firmware_version:01 00
+mem_firmware_version:02 00
 
 mem_device_flag:
 01
@@ -301,9 +297,6 @@
 #mem_device3_type:
 #34
 #11 22 33 44 55 66
-mem_mouse_fast_conn_flag:ff
-mem_mouse_long_button_select_device:ff
-mem_mouse_24g_addr_init:ff ff ff ff ff ff
 
 
 mem_flash_base:00 50 00
@@ -311,21 +304,28 @@
 #mem_eeprom_block_size:80
 mem_reconn_times_init:00
 mem_bt_discovey_button_statue:01#default: button up
-mem_mouse_dpi_button_state:01
 mem_empty_count:03
 
+mem_mouse_24g_addr_init:ff ff ff ff
+
+
 mem_mouse_multi_led_gpio:05
 mem_mouse_multi_led_on_timer_init:14
 mem_mouse_multi_led_blink_timer_init:03
 
-#select device timer init 3s
-mem_mouse_button_select_device_timer_init:19
+mem_mouse_low_voltage_led_gpio:ff
 
 #zcode
 mem_zcode_current_number:ff
 mem_xip_flash_offset:00 00 00
 mem_zcode_head:20 20 00 40
 
+#mem_mouse_button_select_device_timer_init:1e
+#mem_mouse_dpi_button_state:01
+
+mem_mouse_long_button_select_device:ff
+mem_mouse_le_fast_conn_enable_timer:14
+
 #yichip sdp
 #04 0011 0100 1002 1124
 #00 01 00 00
