Index: format/app_mouse.format
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/format/app_mouse.format	(revision 3085)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/format/app_mouse.format	(working copy)
@@ -445,6 +445,15 @@
 1 mem_sensor_3056GX_dpi_1
 1 mem_sensor_3056GX_dpi_2
 1 mem_sensor_3056GX_dpi_3
+
+0 mem_sensor_ka8g2_dpi
+1 mem_sensor_ka8g2_dpi_0
+1 mem_sensor_ka8g2_dpi_1
+1 mem_sensor_ka8g2_dpi_2
+1 mem_sensor_ka8g2_dpi_3
+1 mem_sensor_ka8g2_dpi_4
+
+2 mem_mouse_temp_data
 )
 
 (
@@ -692,6 +701,7 @@
 0x01 MOUSE_DPI_LEVEL2
 0x02 MOUSE_DPI_LEVEL3
 0x03 MOUSE_DPI_LEVEL4
+0x04 MOUSE_DPI_LEVEL5
 
 
 //mouse sensor angle
Index: output/memmap.format
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/memmap.format	(revision 3085)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/memmap.format	(working copy)
@@ -1981,90 +1981,97 @@
 0x4b7b mem_sensor_3056GX_dpi_1
 0x4b7c mem_sensor_3056GX_dpi_2
 0x4b7d mem_sensor_3056GX_dpi_3
-0x4b7e mem_24g_txpayload_buf
-0x4b8e mem_release_data_from_receiver_enable
-0x4b8f mem_release_data_from_transmiter_enable
-0x4b90 mem_flippen_key0_gpio
-0x4b91 mem_flippen_key1_gpio
-0x4b92 mem_flippen_key2_gpio
-0x4b93 mem_flippen_key3_gpio
-0x4b94 mem_flippen_key4_gpio
-0x4b95 mem_flippen_key5_gpio
-0x4b96 mem_flippen_key6_gpio
-0x4b97 mem_flippen_key7_gpio
-0x4b98 mem_flippen_key0_press_status
-0x4b99 mem_flippen_key1_press_status
-0x4b9a mem_flippen_key2_press_status
-0x4b9b mem_flippen_key3_press_status
-0x4b9c mem_flippen_key4_press_status
-0x4b9d mem_flippen_key5_press_status
-0x4b9e mem_flippen_key6_press_status
-0x4b9f mem_flippen_key7_press_status
-0x4ba0 mem_key_press_data
-0x4ba0 mem_key_pageup_data
-0x4ba9 mem_key_pagedown_data
-0x4bb2 mem_key_shift_f5_data
-0x4bbb mem_key_esc_data
-0x4bc4 mem_key_b_data
-0x4bcd mem_key_tab
-0x4bd6 mem_key_enter
-0x4bdf mem_key_alt_tab
-0x4be8 mem_key_alt_f4
-0x4bf1 mem_key_play_pause
-0x4bfa mem_key_vol_up
-0x4c03 mem_key_vol_down
-0x4c0c mem_standard_key_release
-0x4c15 mem_system_ctrl_key_release
-0x4c1e mem_media_key_release
-0x4c27 mem_key0_long_press_flag
-0x4c28 mem_key1_long_press_flag
-0x4c29 mem_key2_long_press_flag
-0x4c2a mem_key3_long_press_flag
-0x4c2b mem_key4_long_press_flag
-0x4c2c mem_key0_long_press_event
-0x4c2d mem_key1_long_press_event
-0x4c2e mem_key2_long_press_event
-0x4c2f mem_key3_long_press_event
-0x4c30 mem_key4_long_press_event
-0x4c31 mem_key0_short_press_flag
-0x4c32 mem_key1_short_press_flag
-0x4c33 mem_key2_short_press_flag
-0x4c34 mem_key3_short_press_flag
-0x4c35 mem_key4_short_press_flag
-0x4c36 mem_key0_press_timer_count
-0x4c37 mem_key1_press_timer_count
-0x4c38 mem_key2_press_timer_count
-0x4c39 mem_key3_press_timer_count
-0x4c3a mem_key4_press_timer_count
-0x4c3b mem_combination_key_down_flag
-0x4c3c mem_combination_key_longpress_flag
-0x4c3d mem_key_disable_timer
-0x4c3e mem_24g_calculate_package_id_disable
-0x4c3f mem_24g_package_id_abandon_flag
-0x4c40 mem_24g_package_id
-0x4c41 mem_key_state
-0x4c42 mem_key_press_state
-0x4c43 mem_poweron_first_blank_data_enable
-0x4c44 mem_flippen_no_data_timeout
-0x4c46 mem_flippen_start_pair_no_data_timeout
-0x4c48 mem_key_longpress_timer_init
-0x4c4a mem_key_longpress_timer
-0x4c4c mem_low_voltage_led_blink_flag
-0x4c4d mem_low_voltage_led_blink_start_timer
-0x4c4e mem_poweron_led_blink_flag
-0x4c4f mem_24g_pair_enable_flag
-0x4c50 mem_24g_ch_work
-0x4c51 mem_24g_pair_key_down_flag
-0x4c52 mem_24g_pairing_stop_flag
-0x4c53 mem_longpress_24g_enter_hibernate_flag
-0x4c54 mem_g24_connected_state
-0x4c55 mem_g24_pairing_stop_flag
-0x4c56 mem_send_package_before_check
-0x4c57 mem_le_conn_rcv_new
-0x4c58 mem_le_conn_first_rcv
-0x4c59 mem_le_check_retransmit_flag
-0x4c5a mem_le_retransmit_cnt
-0x4c5b mem_le_check_retransmit_discon_flag
+0x4b7e mem_sensor_ka8g2_dpi
+0x4b7e mem_sensor_ka8g2_dpi_0
+0x4b7f mem_sensor_ka8g2_dpi_1
+0x4b80 mem_sensor_ka8g2_dpi_2
+0x4b81 mem_sensor_ka8g2_dpi_3
+0x4b82 mem_sensor_ka8g2_dpi_4
+0x4b83 mem_mouse_temp_data
+0x4b85 mem_24g_txpayload_buf
+0x4b95 mem_release_data_from_receiver_enable
+0x4b96 mem_release_data_from_transmiter_enable
+0x4b97 mem_flippen_key0_gpio
+0x4b98 mem_flippen_key1_gpio
+0x4b99 mem_flippen_key2_gpio
+0x4b9a mem_flippen_key3_gpio
+0x4b9b mem_flippen_key4_gpio
+0x4b9c mem_flippen_key5_gpio
+0x4b9d mem_flippen_key6_gpio
+0x4b9e mem_flippen_key7_gpio
+0x4b9f mem_flippen_key0_press_status
+0x4ba0 mem_flippen_key1_press_status
+0x4ba1 mem_flippen_key2_press_status
+0x4ba2 mem_flippen_key3_press_status
+0x4ba3 mem_flippen_key4_press_status
+0x4ba4 mem_flippen_key5_press_status
+0x4ba5 mem_flippen_key6_press_status
+0x4ba6 mem_flippen_key7_press_status
+0x4ba7 mem_key_press_data
+0x4ba7 mem_key_pageup_data
+0x4bb0 mem_key_pagedown_data
+0x4bb9 mem_key_shift_f5_data
+0x4bc2 mem_key_esc_data
+0x4bcb mem_key_b_data
+0x4bd4 mem_key_tab
+0x4bdd mem_key_enter
+0x4be6 mem_key_alt_tab
+0x4bef mem_key_alt_f4
+0x4bf8 mem_key_play_pause
+0x4c01 mem_key_vol_up
+0x4c0a mem_key_vol_down
+0x4c13 mem_standard_key_release
+0x4c1c mem_system_ctrl_key_release
+0x4c25 mem_media_key_release
+0x4c2e mem_key0_long_press_flag
+0x4c2f mem_key1_long_press_flag
+0x4c30 mem_key2_long_press_flag
+0x4c31 mem_key3_long_press_flag
+0x4c32 mem_key4_long_press_flag
+0x4c33 mem_key0_long_press_event
+0x4c34 mem_key1_long_press_event
+0x4c35 mem_key2_long_press_event
+0x4c36 mem_key3_long_press_event
+0x4c37 mem_key4_long_press_event
+0x4c38 mem_key0_short_press_flag
+0x4c39 mem_key1_short_press_flag
+0x4c3a mem_key2_short_press_flag
+0x4c3b mem_key3_short_press_flag
+0x4c3c mem_key4_short_press_flag
+0x4c3d mem_key0_press_timer_count
+0x4c3e mem_key1_press_timer_count
+0x4c3f mem_key2_press_timer_count
+0x4c40 mem_key3_press_timer_count
+0x4c41 mem_key4_press_timer_count
+0x4c42 mem_combination_key_down_flag
+0x4c43 mem_combination_key_longpress_flag
+0x4c44 mem_key_disable_timer
+0x4c45 mem_24g_calculate_package_id_disable
+0x4c46 mem_24g_package_id_abandon_flag
+0x4c47 mem_24g_package_id
+0x4c48 mem_key_state
+0x4c49 mem_key_press_state
+0x4c4a mem_poweron_first_blank_data_enable
+0x4c4b mem_flippen_no_data_timeout
+0x4c4d mem_flippen_start_pair_no_data_timeout
+0x4c4f mem_key_longpress_timer_init
+0x4c51 mem_key_longpress_timer
+0x4c53 mem_low_voltage_led_blink_flag
+0x4c54 mem_low_voltage_led_blink_start_timer
+0x4c55 mem_poweron_led_blink_flag
+0x4c56 mem_24g_pair_enable_flag
+0x4c57 mem_24g_ch_work
+0x4c58 mem_24g_pair_key_down_flag
+0x4c59 mem_24g_pairing_stop_flag
+0x4c5a mem_longpress_24g_enter_hibernate_flag
+0x4c5b mem_g24_connected_state
+0x4c5c mem_g24_pairing_stop_flag
+0x4c5d mem_send_package_before_check
+0x4c5e mem_le_conn_rcv_new
+0x4c5f mem_le_conn_first_rcv
+0x4c60 mem_le_check_retransmit_flag
+0x4c61 mem_le_retransmit_cnt
+0x4c62 mem_le_check_retransmit_discon_flag
 0x462d mem_remote_car_hard_soft_switch
 0x462e mem_remote_car_queue_each_size
 0x462f mem_remote_car_queue_length
Index: output/otp.dat
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/otp.dat	(revision 3085)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/otp.dat	(working copy)
@@ -27,7 +27,7 @@
 1e
 aa
 55
-10
+f0
 15
 4e
 06
@@ -116,7 +116,7 @@
 f7
 dc
 c3
-a3
+b9
 ca
 91
 eb
@@ -124,11 +124,11 @@
 f6
 83
 7e
-b3
+ba
 0d
 c5
 0f
-01
+39
 50
 fe
 9b
@@ -184,7 +184,7 @@
 43
 3b
 4f
-4b
+66
 59
 81
 fc
@@ -195,8 +195,8 @@
 94
 b9
 a4
-d2
-d9
+d3
+33
 87
 bf
 c9
@@ -1456,7 +1456,7 @@
 31
 ea
 93
-98
+91
 ef
 30
 e6
@@ -1480,7 +1480,7 @@
 ff
 1e
 eb
-50
+57
 d4
 b6
 0a
@@ -1488,7 +1488,7 @@
 50
 e6
 11
-87
+be
 36
 17
 43
@@ -1496,11 +1496,11 @@
 75
 95
 d3
-f0
+f7
 6d
 1e
 75
-5c
+55
 2a
 4b
 b8
@@ -1524,7 +1524,7 @@
 9f
 d5
 5e
-4d
+76
 94
 dd
 22
@@ -1535,7 +1535,7 @@
 83
 5c
 43
-95
+ac
 eb
 5b
 8c
@@ -1543,7 +1543,7 @@
 4a
 5a
 0b
-54
+6d
 c5
 40
 5d
@@ -1576,7 +1576,7 @@
 c6
 30
 6b
-25
+1e
 7d
 ab
 ed
@@ -1588,7 +1588,7 @@
 ba
 42
 97
-06
+3d
 fd
 90
 6a
@@ -1612,7 +1612,7 @@
 16
 63
 79
-68
+61
 f3
 3c
 aa
@@ -1620,7 +1620,7 @@
 03
 7a
 c3
-8d
+84
 a7
 3d
 7a
@@ -2140,7 +2140,7 @@
 e8
 ef
 19
-98
+a1
 5f
 b8
 0d
@@ -2148,7 +2148,7 @@
 11
 0c
 d2
-a4
+9d
 de
 e6
 f7
@@ -3864,7 +3864,7 @@
 f6
 e5
 da
-1e
+19
 21
 38
 92
@@ -3896,11 +3896,11 @@
 35
 ad
 b0
-db
+d2
 53
 07
 91
-a5
+a2
 94
 6e
 d2
@@ -4032,7 +4032,7 @@
 40
 d0
 ae
-0f
+36
 3f
 07
 13
@@ -4840,7 +4840,7 @@
 dc
 ba
 5a
-64
+5c
 13
 c0
 cf
@@ -4934,493 +4934,717 @@
 2f
 c9
 5c
-27
-a4
-35
+25
+24
+2c
 ec
-97
+96
 58
-bf
 bc
-ad
-ae
-7c
-df
-68
-7e
-8c
-27
-66
-f5
-a2
-03
-2a
-fa
-99
-e2
-a7
-f4
-06
-4a
-9c
-ce
-d7
-59
-08
-3c
-37
-11
-75
-8d
-92
-53
-33
-27
-7c
-d6
-3e
-76
-7c
-af
-c2
-62
-9b
-af
-05
-23
-90
-26
-43
-df
-d7
-83
-dc
-17
-c1
-c4
-73
-7d
-4f
-8d
-55
+5c
+8b
 fc
-0f
 48
-9e
+90
 a8
-64
-88
-83
-4a
-75
-cd
-63
+ee
+e6
+57
 66
-80
-d1
-a9
-76
-b0
+cd
+33
+7b
+2a
 c2
-b7
-0c
-55
-aa
-06
-0e
-a9
-fd
-e1
-e6
-31
-5c
-fe
-b1
-0b
-2d
+08
 9a
-0a
-df
-d0
-19
-18
-e2
-b4
-ae
-06
-30
-c3
-e8
-b0
+a1
+4e
+92
+75
+38
 4f
-5f
-61
-0b
-ef
-29
+19
+59
+6a
+96
+fc
+11
+15
+de
+46
+1c
 f3
-ee
-76
-ba
-3a
-00
+b6
+aa
+a6
+3e
+41
 2a
-e0
-37
-45
-94
-65
+09
+25
+a4
+0b
+71
 e5
-37
-d3
-12
-de
-e1
-9a
-ae
-5c
-be
-de
-1b
-20
-3e
-0d
-d9
+5f
+95
+26
+21
+75
+23
+cc
+1c
+89
 97
-cd
+24
+35
+fd
+77
+6d
 72
-b0
-70
-a7
+af
+a6
+e7
+78
+65
 ed
-17
-0e
-cd
-1a
-e0
-78
-79
-43
-3c
-f1
-4f
-a3
+69
+a4
+1d
 3d
-58
-29
+63
+85
+a0
+10
+d0
+ac
+a1
+df
+22
+97
+8c
+1e
+05
+e7
+90
+86
+fd
+e6
+b5
+a7
+bc
+99
+b4
+02
+82
+7c
+c8
+a8
+d0
 1c
-6a
-87
+98
+f9
+54
+8e
+d5
+93
+6c
+09
+72
+32
+bf
+01
+5c
+80
 33
-28
-99
-7a
+93
+72
+59
+5a
+1b
+0e
+c7
+fa
+56
+d9
+85
+65
 a5
+6e
+46
+a7
+5e
+6c
+40
+4e
+7c
+e2
+48
+b4
+c0
+7d
 98
+d9
+96
+cc
+80
+50
+10
+23
+1a
+b8
+ef
+0f
+73
+e0
+79
+f9
+41
+dc
+91
+cb
+58
+95
+11
+e6
+9b
+8a
+a6
+e0
+89
+31
+30
+6b
+e2
 bd
-7e
-60
-61
-78
-92
+3e
+37
+3f
+7f
+3a
 4e
-8e
+8c
 99
 f8
 98
-a4
-5b
-52
+6b
+5c
+fa
 a1
-eb
+e9
 1b
 0c
 f7
-ea
+25
 ea
 fb
-f4
-46
-7c
-e5
-94
-9f
+f6
+91
+9c
+c2
+a2
+3f
+be
+9a
+d5
+b8
 f1
-5a
-7f
-1a
-a9
-77
-dd
-d7
-3b
-fe
-aa
-10
-5d
+03
+f6
+46
+0c
+1e
 61
-0b
-b8
-b5
-eb
-df
-d7
-48
-5e
-89
-18
-bb
-bc
-4a
-16
-ff
+92
+1a
+a2
+14
+6e
 4f
-aa
-ab
-65
-89
-f4
-ab
-fa
-77
-2c
-96
-ba
-99
-df
+cb
+90
+37
+30
+7e
+d0
 04
-f4
-d9
-c6
-c5
-c7
-c5
-d9
-2a
-31
-f6
-4e
-5e
-dd
-43
-ac
-06
-9d
-83
-fa
-b3
-23
-ca
-62
-48
-85
-94
+41
 9c
+68
+98
+ff
+2f
 a4
-d9
-55
-58
-54
-8f
-43
-80
-e3
-83
-10
-66
-19
-53
-32
-29
-04
+79
+9f
+a9
+e9
+f3
+fa
+17
+23
+14
+f5
+39
+1c
+9a
+14
+f9
+95
+c6
+68
+25
+95
+6c
+30
+f2
+cb
+4d
+3d
+62
+76
+34
+9d
+a3
+a2
+ff
+24
+62
+60
+b5
 81
-ef
-c3
-73
-29
+8e
+93
+9a
+de
+fd
+5a
+ad
+8b
+59
+8f
+e2
+cb
+18
+f5
+ed
+53
+52
+7b
+4c
+c9
+87
 5f
-d4
-a2
-21
-dc
-0f
+a3
+79
+36
+fa
 fc
-a5
-4e
-b3
-64
-66
-96
-7b
-77
-32
-c7
-08
-57
-77
-9e
-01
-a6
-fb
-85
-96
-da
-bd
-b3
-8c
+3e
+75
+bc
+ab
+15
+00
+a9
+55
+59
+54
+3e
+54
+22
+db
+b2
 13
-af
+40
+7e
+c7
+e1
+04
+20
+a2
 9d
-28
-75
-ba
-b6
-32
-8e
-e9
-28
-f6
-c5
+bd
+d1
+0d
+81
 e0
-98
-c4
-62
-c5
-24
+3d
+eb
+14
+7a
+f0
 4e
-7d
-fb
-c8
-1d
-17
-a5
-96
+07
+e9
+4a
+1a
+0f
+a8
+90
+55
+60
+8a
+84
+de
+28
+43
 ce
-99
+37
+00
+a5
+f4
+4e
+eb
 d7
-27
-40
-11
-e7
-d9
-20
-f8
-e4
-87
 47
-71
-42
-e8
-9d
-ee
+41
+e6
+a8
+79
+ec
+93
+05
+a2
+90
+94
+0a
+80
+04
+8c
 73
 f6
-f5
-4a
-62
-ff
-cc
-c8
-76
-3b
-75
-9f
-13
-1c
-6e
-36
-97
-b1
-0f
-0d
-9c
-2c
-d1
-02
+fa
 55
-be
+3b
+3c
+30
+c8
+39
+f9
+64
+d9
 f2
+dd
+b9
+d9
+d8
+70
+42
+72
+d4
+24
+12
+73
+5d
+bf
+7c
 d5
-9c
-ac
-61
-b3
+6b
+0b
+55
 fa
-ed
-11
+fa
+8f
+91
 cb
-65
-4d
-96
-38
+22
+ec
+db
+4f
 15
-5d
-df
-b1
-2c
-1f
-a9
-61
-3e
-7a
-6c
-11
-78
-b0
-27
-92
+1d
+da
+97
+ce
+da
+29
+68
 dd
-2c
-89
+3f
+ec
+10
 78
+f0
+70
+77
+e2
+8a
+f2
+42
 a4
 33
 96
+ff
+58
+0d
+29
+ae
+90
+83
+46
+ed
+1b
+a5
+d4
+2e
+79
+01
+6a
+fb
+0e
+20
+8a
+f8
+b5
+b1
+95
+35
+cd
+c3
+f3
+f2
+36
+e6
+af
+ce
+9a
+4d
+b8
+9b
+d6
+75
+11
+9d
+52
+8d
+94
+ed
+43
+f9
+68
+4c
+1d
+bb
+26
+9d
+a4
+cc
+57
+6e
+c0
+ca
+48
+f0
+00
+6c
+d9
+d6
+f9
+7d
+be
+2d
+35
+06
+00
+be
 84
-67
+89
+20
+a9
+fd
+36
+d0
+8c
+15
+94
+52
+71
 cb
+4a
+80
+ec
+43
+0e
+4e
+6a
+b6
+b9
 00
+ee
+14
+ca
+0a
+96
+8e
+7e
+9d
+65
+4d
+77
+05
+6d
+2b
+e7
+a7
+95
+13
+36
+3c
+d1
+ea
+8c
+2f
+b7
+97
+4b
 4b
+d0
+f2
 aa
-a2
-38
+08
 ff
-24
-66
-7d
-dd
-04
-a1
+a4
 5f
-72
-41
-e0
-16
-8a
+82
+35
+e6
+29
 b0
-16
-97
-23
-c9
-a2
-a1
-49
-43
+be
 46
+07
+64
+1f
+8a
+1c
 9a
+20
 5f
-9a
-0d
-ef
+8d
+20
+45
+8c
+fb
+95
+dc
+bc
+4d
+0f
+01
+63
+ec
+a6
+d5
+a8
+36
+85
+32
+fa
+17
+52
+e2
+49
+b9
+38
+a5
+7f
+49
+4d
+a5
+a8
+c7
+eb
+c4
+90
+9e
+03
+5a
+d7
+a7
+a8
+b3
+d4
+ce
+94
+09
+03
+78
+72
+65
+8c
+2e
+e9
+d1
+99
+ea
+5e
+76
+32
 64
-50
-48
-16
+01
+e3
+b2
 62
-35
-6c
-df
+4f
+bb
+81
+8e
+66
+4e
+0c
+75
+2a
+f0
+95
+d0
+03
+7c
 6e
+19
+b2
+3e
+e8
+fd
+8c
+28
+15
+dd
+71
+d9
+34
+03
+47
+59
+78
+a3
+27
+9a
+d4
+95
+ef
+f0
+c8
+fb
+77
+a9
+f8
+b8
+f1
+6f
+e1
+aa
+b8
+c7
+41
+34
+6d
+c7
+d1
+30
+08
+13
 aa
 55
 40
@@ -6284,7 +6508,7 @@
 ff
 aa
 55
-11
+08
 00
 68
 48
@@ -6296,10 +6520,12 @@
 2a
 3f
 15
-14
-1b
-11
-0e
+aa
+55
+05
+00
+74
+48
 8a
 8b
 83
@@ -6307,7 +6533,7 @@
 88
 aa
 55
-04
+09
 00
 7a
 4b
@@ -6315,6 +6541,11 @@
 04
 05
 02
+1b
+28
+35
+28
+0e
 aa
 55
 30
@@ -6767,8 +6998,8 @@
 aa
 aa
 55
-c7
-6d
-5d
-c2
+e3
+6f
+14
+bc
 20
Index: output/program.lis
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/program.lis	(revision 3085)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/program.lis	(working copy)
@@ -21,10 +21,10 @@
 0012 c037d4b6 beq patch0d_7 ,mouse4_0_check_reconn_target 
 0013 c039847d beq patch0e_3 ,p_mouse_setgpio_hibernate 
 0014 c03a0233 beq patch0e_4 ,p_mouse_lpm_before_common 
-0015 c03d0500 beq patch0f_2 ,p_mouse_motion 
+0015 c03d051a beq patch0f_2 ,p_mouse_motion 
 0016 c03d84c9 beq patch0f_3 ,p_mouse_dpi_process 
-0017 c03e04d3 beq patch0f_4 ,p_mouse_setting_dpi 
-0018 c03e84d9 beq patch0f_5 ,p_mouse_setting_sensor_type 
+0017 c03e04da beq patch0f_4 ,p_mouse_setting_dpi 
+0018 c03e84e1 beq patch0f_5 ,p_mouse_setting_sensor_type 
 0019 c03f845e beq patch0f_7 ,p_mouse_3io6key_check 
 001a c04084a0 beq patch10_1 ,p_mouse_init_sensor 
 001b c0420378 beq patch10_4 ,p_mouse_buletooth_fast_conn_end 
@@ -38,10 +38,10 @@
 0023 c0468342 beq patch11_5 ,p_mouse_store_dpi_info_check 
 0024 c0470436 beq patch11_6 ,p_mouse_idle 
 0025 c04802ef beq patch12_0 ,p_mouse_check_select_device_by_switch 
-0026 c049850b beq patch12_3 ,p_mouse_drawing_optima 
+0026 c0498526 beq patch12_3 ,p_mouse_drawing_optima 
 0027 c04a8474 beq patch12_5 ,p_mouse_24g_hibernate_set 
 0028 c04b0489 beq patch12_6 ,p_mouse_24g_package_data 
-0029 c04c04fd beq patch13_0 ,p_mouse_dpi_led_blink_init 
+0029 c04c0517 beq patch13_0 ,p_mouse_dpi_led_blink_init 
 002a c0628261 beq patch18_5 ,p_otp_read_data 
 002b c06a8227 beq patch1a_5 ,p_gpio_set_wake_by_current_state 
 002c c06b0220 beq patch1a_6 ,p_gpio_set_wake 
@@ -434,7 +434,7 @@
 0163 2020014f branch p_set_lemode_2m 
 
 p_le_check_retransmit_timesout:
-0164 6fe0cc57 fetch 1 ,mem_le_conn_rcv_new 
+0164 6fe0cc5e fetch 1 ,mem_le_conn_rcv_new 
 0165 da600100 arg 256 ,regc 
 0166 9a60fe00 iadd regc ,pdata 
 0167 20600000 rtn 
@@ -444,25 +444,25 @@
 0169 20202563 branch le_slave_match + 1 
 
 p_le_check_retransmit:
-016a 6fe0cc58 fetch 1 ,mem_le_conn_first_rcv 
+016a 6fe0cc5f fetch 1 ,mem_le_conn_first_rcv 
 016b 207a0000 rtn blank 
-016c 6fe0cc59 fetch 1 ,mem_le_check_retransmit_flag 
+016c 6fe0cc60 fetch 1 ,mem_le_check_retransmit_flag 
 016d 247a0000 nrtn blank 
-016e 6848cc58 fetcht 1 ,mem_le_conn_first_rcv 
-016f 6fe0cc57 fetch 1 ,mem_le_conn_rcv_new 
+016e 6848cc5f fetcht 1 ,mem_le_conn_first_rcv 
+016f 6fe0cc5e fetch 1 ,mem_le_conn_rcv_new 
 0170 98467c00 isub temp ,null 
 0171 24410164 ncall p_le_check_retransmit_timesout ,positive 
 0172 98467e00 isub temp ,pdata 
 0173 1fe67c64 sub pdata ,100 ,null 
 0174 2021017c branch p_le_check_retransmit_count ,positive 
-0175 6fe0cc5a fetch 1 ,mem_le_retransmit_cnt 
+0175 6fe0cc61 fetch 1 ,mem_le_retransmit_cnt 
 0176 1fe67c14 sub pdata ,20 ,null 
 0177 2441017a ncall p_app_ble_disconnect ,positive 
-0178 704c5901 jam 1 ,mem_le_check_retransmit_flag 
+0178 704c6001 jam 1 ,mem_le_check_retransmit_flag 
 0179 20600000 rtn 
 
 p_app_ble_disconnect:
-017a 704c5b01 jam 1 ,mem_le_check_retransmit_discon_flag 
+017a 704c6201 jam 1 ,mem_le_check_retransmit_discon_flag 
 017b 2020431f branch app_ble_disconnect 
 
 p_le_check_retransmit_count:
@@ -472,10 +472,10 @@
 017f 9842fe00 ixor temp ,pdata 
 0180 2feffe02 isolate1 nesn ,pdata 
 0181 58000000 setarg 0 
-0182 6848cc5a fetcht 1 ,mem_le_retransmit_cnt 
+0182 6848cc61 fetcht 1 ,mem_le_retransmit_cnt 
 0183 7920fe00 setflag true ,0 ,pdata 
 0184 98408400 iadd temp ,temp 
-0185 6048cc5a storet 1 ,mem_le_retransmit_cnt 
+0185 6048cc61 storet 1 ,mem_le_retransmit_cnt 
 0186 20600000 rtn 
 
 p_le_got_first_packet_new:
@@ -483,9 +483,9 @@
 0188 1fe0fe01 increase 1 ,pdata 
 0189 67e08005 store 1 ,mem_le_conn_rcv 
 018a 2436818e nbranch p_le_got_first_packet_new + 7 ,match 
-018b 6fe0cc57 fetch 1 ,mem_le_conn_rcv_new 
+018b 6fe0cc5e fetch 1 ,mem_le_conn_rcv_new 
 018c 1fe0fe01 increase 1 ,pdata 
-018d 67e0cc57 store 1 ,mem_le_conn_rcv_new 
+018d 67e0cc5e store 1 ,mem_le_conn_rcv_new 
 018e 2020259b branch le_got_first_packet + 4 
 
 p_le_rx_dec:
@@ -649,9 +649,9 @@
 020c 6fe0c843 fetch 1 ,mem_le_connect_status_flag 
 020d 1fe17e03 and pdata ,0x03 ,pdata 
 020e c1818000 rtnne 0x03 
-020f 6fe0cc59 fetch 1 ,mem_le_check_retransmit_flag 
+020f 6fe0cc60 fetch 1 ,mem_le_check_retransmit_flag 
 0210 207a0000 rtn blank 
-0211 6fe0cc5b fetch 1 ,mem_le_check_retransmit_discon_flag 
+0211 6fe0cc62 fetch 1 ,mem_le_check_retransmit_discon_flag 
 0212 247a0000 nrtn blank 
 
 p_mouse_le_next:
@@ -1256,7 +1256,7 @@
 
 p_mouse_le_bb_event_connected:
 03bd 58000000 setarg 0 
-03be 67e24c58 store 4 ,mem_le_conn_first_rcv 
+03be 67e24c5f store 4 ,mem_le_conn_first_rcv 
 03bf 20205ad0 branch mouse_le_bb_event_connected 
 
 p_mouse_le_ll_start_encryt:
@@ -1270,8 +1270,8 @@
 03c5 70484405 jam 5 ,mem_le_start_encrypt_timer 
 
 p_mouse_le_ll_reconn_start_encryt_new:
-03c6 6fe0cc57 fetch 1 ,mem_le_conn_rcv_new 
-03c7 67e0cc58 store 1 ,mem_le_conn_first_rcv 
+03c6 6fe0cc5e fetch 1 ,mem_le_conn_rcv_new 
+03c7 67e0cc5f store 1 ,mem_le_conn_first_rcv 
 03c8 20205af6 branch mouse_le_ll_enable_start_enc_flag 
 
 p_mouse_le_conn_param_update_rsp_recieved:
@@ -1314,7 +1314,7 @@
 03e5 1fe17e03 and pdata ,0x03 ,pdata 
 03e6 20405b21 call mouse_le_clean_connect_flag 
 03e7 c081d4a9 bne 0x03 ,mouse_start_reconnect 
-03e8 6fe0cc5b fetch 1 ,mem_le_check_retransmit_discon_flag 
+03e8 6fe0cc62 fetch 1 ,mem_le_check_retransmit_discon_flag 
 03e9 243a54a9 nbranch mouse_start_reconnect ,blank 
 03ea 202054cd branch mouse_app_enter_hibernate 
 
@@ -1590,7 +1590,7 @@
 04af 7049570d jam sg8670 ,mem_config_sensor_type 
 04b0 da604b20 arg mem_sensor_sg8670_init ,regc 
 04b1 20405995 call mouse_sensor_wr_seq 
-04b2 202004d9 branch p_mouse_setting_sensor_type 
+04b2 202004e1 branch p_mouse_setting_sensor_type 
 
 p_mouse_ka8g2_id2_judge:
 04b3 204059e7 call mouse_sensor_poweron 
@@ -1626,190 +1626,269 @@
 
 p_mouse_dpi_process:
 04c9 6fe0c957 fetch 1 ,mem_config_sensor_type 
-04ca c00704cd beq p3065gx ,p_mouse_dpi_level_4_set 
-04cb c00604cd beq s201x ,p_mouse_dpi_level_4_set 
-04cc 202056fa branch mouse_dpi_process + 3 
+04ca c00584d4 beq ka8g2 ,p_mouse_ka8g2_dpi_level5_store 
+04cb c00704ce beq p3065gx ,p_mouse_dpi_level_4_set 
+04cc c00604ce beq s201x ,p_mouse_dpi_level_4_set 
+04cd 202056fa branch mouse_dpi_process + 3 
 
 p_mouse_dpi_level_4_set:
-04cd 6fe0c690 fetch 1 ,mem_mouse_dpi 
-04ce 1fe0fe01 increase 1 ,pdata 
-04cf 67e0c690 store 1 ,mem_mouse_dpi 
-04d0 1fe67c04 sub pdata ,4 ,null 
-04d1 2042fdca call set_pdata_0 ,zero 
-04d2 20205701 branch mouse_dpi_level_store 
+04ce 6fe0c690 fetch 1 ,mem_mouse_dpi 
+04cf 1fe0fe01 increase 1 ,pdata 
+04d0 67e0c690 store 1 ,mem_mouse_dpi 
+04d1 1fe67c04 sub pdata ,4 ,null 
+04d2 2042fdca call set_pdata_0 ,zero 
+04d3 20205701 branch mouse_dpi_level_store 
+
+p_mouse_ka8g2_dpi_level5_store:
+04d4 6fe0c690 fetch 1 ,mem_mouse_dpi 
+04d5 1fe0fe01 increase 1 ,pdata 
+04d6 67e0c690 store 1 ,mem_mouse_dpi 
+04d7 1fe67c05 sub pdata ,5 ,null 
+04d8 2042fdca call set_pdata_0 ,zero 
+04d9 20205701 branch mouse_dpi_level_store 
 
 p_mouse_setting_dpi:
-04d3 204004d5 call p_mouse_setting_dpi_4_level 
-04d4 20205746 branch mouse_setting_dpi + 2 
+04da 204004dc call p_mouse_setting_dpi_4_level 
+04db 20205746 branch mouse_setting_dpi + 2 
 
 p_mouse_setting_dpi_4_level:
-04d5 6fe0c957 fetch 1 ,mem_config_sensor_type 
-04d6 c1070000 rtneq p3065gx 
-04d7 c1060000 rtneq s201x 
-04d8 2020573e branch mouse_setting_dpi_4_level 
+04dc 6fe0c957 fetch 1 ,mem_config_sensor_type 
+04dd c1070000 rtneq p3065gx 
+04de c1060000 rtneq s201x 
+04df c1058000 rtneq ka8g2 
+04e0 2020573e branch mouse_setting_dpi_4_level 
 
 p_mouse_setting_sensor_type:
-04d9 6fe0c957 fetch 1 ,mem_config_sensor_type 
-04da c00684e4 beq sg8670 ,p_mouse_seting_sg8670_dpi 
-04db c00704ef beq p3065gx ,p_mouse_seting_p3065gx_dpi 
-04dc c00604de beq s201x ,p_mouse_seting_s201_dpi 
-04dd 20205748 branch mouse_setting_sensor_type + 1 
+04e1 6fe0c957 fetch 1 ,mem_config_sensor_type 
+04e2 c00684ed beq sg8670 ,p_mouse_seting_sg8670_dpi 
+04e3 c0070509 beq p3065gx ,p_mouse_seting_p3065gx_dpi 
+04e4 c00604e7 beq s201x ,p_mouse_seting_s201_dpi 
+04e5 c00584f2 beq ka8g2 ,p_mouse_seting_ka8g2_dpi 
+04e6 20205748 branch mouse_setting_sensor_type + 1 
 
 p_mouse_seting_s201_dpi:
-04de 6fe0c690 fetch 1 ,mem_mouse_dpi 
-04df c000576f beq mouse_dpi_level1 ,mouse_set_s201_dpi_0 
-04e0 c000d775 beq mouse_dpi_level2 ,mouse_set_s201_dpi_2 
-04e1 c0015778 beq mouse_dpi_level3 ,mouse_set_s201_dpi_3 
-04e2 c001d77b beq mouse_dpi_level4 ,mouse_set_s201_dpi_4 
-04e3 20600000 rtn 
+04e7 6fe0c690 fetch 1 ,mem_mouse_dpi 
+04e8 c000576f beq mouse_dpi_level1 ,mouse_set_s201_dpi_0 
+04e9 c000d775 beq mouse_dpi_level2 ,mouse_set_s201_dpi_2 
+04ea c0015778 beq mouse_dpi_level3 ,mouse_set_s201_dpi_3 
+04eb c001d77b beq mouse_dpi_level4 ,mouse_set_s201_dpi_4 
+04ec 20600000 rtn 
 
 p_mouse_seting_sg8670_dpi:
-04e4 6fe0c690 fetch 1 ,mem_mouse_dpi 
-04e5 c00004e9 beq mouse_dpi_level1 ,p_mouse_set_sg8670_dpi_1 
-04e6 c00084eb beq mouse_dpi_level2 ,p_mouse_set_sg8670_dpi_2 
-04e7 c00104ed beq mouse_dpi_level3 ,p_mouse_set_sg8670_dpi_4 
-04e8 20600000 rtn 
+04ed 6fe0c690 fetch 1 ,mem_mouse_dpi 
+04ee c0000503 beq mouse_dpi_level1 ,p_mouse_set_sg8670_dpi_1 
+04ef c0008505 beq mouse_dpi_level2 ,p_mouse_set_sg8670_dpi_2 
+04f0 c0010507 beq mouse_dpi_level3 ,p_mouse_set_sg8670_dpi_4 
+04f1 20600000 rtn 
+
+p_mouse_seting_ka8g2_dpi:
+04f2 6fe0c690 fetch 1 ,mem_mouse_dpi 
+04f3 c00004f9 beq mouse_dpi_level1 ,p_mouse_set_ka8g2_dpi_0 
+04f4 c00084fb beq mouse_dpi_level2 ,p_mouse_set_ka8g2_dpi_1 
+04f5 c00104fd beq mouse_dpi_level3 ,p_mouse_set_ka8g2_dpi_2 
+04f6 c00184ff beq mouse_dpi_level4 ,p_mouse_set_ka8g2_dpi_3 
+04f7 c0020501 beq mouse_dpi_level5 ,p_mouse_set_ka8g2_dpi_4 
+04f8 20600000 rtn 
+
+p_mouse_set_ka8g2_dpi_0:
+04f9 6fe0cb7e fetch 1 ,mem_sensor_ka8g2_dpi_0 
+04fa 20205791 branch mouse_p3212_dpi 
+
+p_mouse_set_ka8g2_dpi_1:
+04fb 6fe0cb7f fetch 1 ,mem_sensor_ka8g2_dpi_1 
+04fc 20205791 branch mouse_p3212_dpi 
+
+p_mouse_set_ka8g2_dpi_2:
+04fd 6fe0cb80 fetch 1 ,mem_sensor_ka8g2_dpi_2 
+04fe 20205791 branch mouse_p3212_dpi 
+
+p_mouse_set_ka8g2_dpi_3:
+04ff 6fe0cb81 fetch 1 ,mem_sensor_ka8g2_dpi_3 
+0500 20205791 branch mouse_p3212_dpi 
+
+p_mouse_set_ka8g2_dpi_4:
+0501 6fe0cb82 fetch 1 ,mem_sensor_ka8g2_dpi_4 
+0502 20205791 branch mouse_p3212_dpi 
 
 p_mouse_set_sg8670_dpi_1:
-04e9 da604b5a arg mem_sensor_sg8670_dpi_1200 ,regc 
-04ea 20205995 branch mouse_sensor_wr_seq 
+0503 da604b5a arg mem_sensor_sg8670_dpi_1200 ,regc 
+0504 20205995 branch mouse_sensor_wr_seq 
 
 p_mouse_set_sg8670_dpi_2:
-04eb da604b6a arg mem_sensor_sg8670_dpi_1600 ,regc 
-04ec 20205995 branch mouse_sensor_wr_seq 
+0505 da604b6a arg mem_sensor_sg8670_dpi_1600 ,regc 
+0506 20205995 branch mouse_sensor_wr_seq 
 
 p_mouse_set_sg8670_dpi_4:
-04ed da604b4a arg mem_sensor_sg8670_dpi_800 ,regc 
-04ee 20205995 branch mouse_sensor_wr_seq 
+0507 da604b4a arg mem_sensor_sg8670_dpi_800 ,regc 
+0508 20205995 branch mouse_sensor_wr_seq 
 
 p_mouse_seting_p3065gx_dpi:
-04ef 6fe0c690 fetch 1 ,mem_mouse_dpi 
-04f0 c00004f5 beq mouse_dpi_level1 ,p_mouse_set_3056gx_dpi_0 
-04f1 c00084f7 beq mouse_dpi_level2 ,p_mouse_set_3056gx_dpi_1 
-04f2 c00104f9 beq mouse_dpi_level3 ,p_mouse_set_3056gx_dpi_2 
-04f3 c00184fb beq mouse_dpi_level4 ,p_mouse_set_3056gx_dpi_3 
-04f4 20600000 rtn 
+0509 6fe0c690 fetch 1 ,mem_mouse_dpi 
+050a c000050f beq mouse_dpi_level1 ,p_mouse_set_3056gx_dpi_0 
+050b c0008511 beq mouse_dpi_level2 ,p_mouse_set_3056gx_dpi_1 
+050c c0010513 beq mouse_dpi_level3 ,p_mouse_set_3056gx_dpi_2 
+050d c0018515 beq mouse_dpi_level4 ,p_mouse_set_3056gx_dpi_3 
+050e 20600000 rtn 
 
 p_mouse_set_3056gx_dpi_0:
-04f5 6848cb7a fetcht 1 ,mem_sensor_3056gx_dpi_0 
-04f6 2020575e branch mouse_dpi_write 
+050f 6848cb7a fetcht 1 ,mem_sensor_3056gx_dpi_0 
+0510 2020575e branch mouse_dpi_write 
 
 p_mouse_set_3056gx_dpi_1:
-04f7 6848cb7b fetcht 1 ,mem_sensor_3056gx_dpi_1 
-04f8 2020575e branch mouse_dpi_write 
+0511 6848cb7b fetcht 1 ,mem_sensor_3056gx_dpi_1 
+0512 2020575e branch mouse_dpi_write 
 
 p_mouse_set_3056gx_dpi_2:
-04f9 6848cb7c fetcht 1 ,mem_sensor_3056gx_dpi_2 
-04fa 2020575e branch mouse_dpi_write 
+0513 6848cb7c fetcht 1 ,mem_sensor_3056gx_dpi_2 
+0514 2020575e branch mouse_dpi_write 
 
 p_mouse_set_3056gx_dpi_3:
-04fb 6848cb7d fetcht 1 ,mem_sensor_3056gx_dpi_3 
-04fc 2020575e branch mouse_dpi_write 
+0515 6848cb7d fetcht 1 ,mem_sensor_3056gx_dpi_3 
+0516 2020575e branch mouse_dpi_write 
 
 p_mouse_dpi_led_blink_init:
-04fd 6fe0c957 fetch 1 ,mem_config_sensor_type 
-04fe c0076131 beq p3065gx ,mouse_dpi_led_blink_init_another 
-04ff 20206123 branch mouse_dpi_led_blink_init + 2 
+0517 6fe0c957 fetch 1 ,mem_config_sensor_type 
+0518 c0076131 beq p3065gx ,mouse_dpi_led_blink_init_another 
+0519 20206123 branch mouse_dpi_led_blink_init + 2 
 
 p_mouse_motion:
-0500 78547c00 disable user 
-0501 58000000 setarg 0 
-0502 67e34847 store 6 ,mem_mouse_x 
-0503 204004ba call p_mouse_check_sensor_data 
-0504 58000089 setarg 0x0089 
-0505 204069e4 call twspi_write 
-0506 20405747 call mouse_setting_sensor_type 
-0507 20405612 call mouse_zwheel 
-0508 20405617 call mouse_t_zwheel 
-0509 2040050e call p_mouse_key 
-050a 2020560c branch mouse_motion + 11 
+051a 78547c00 disable user 
+051b 58000000 setarg 0 
+051c 67e34847 store 6 ,mem_mouse_x 
+051d 204004ba call p_mouse_check_sensor_data 
+051e 20400529 call p_mouse_data_zoom 
+051f 58000089 setarg 0x0089 
+0520 204069e4 call twspi_write 
+0521 20405747 call mouse_setting_sensor_type 
+0522 20405612 call mouse_zwheel 
+0523 20405617 call mouse_t_zwheel 
+0524 20400545 call p_mouse_key 
+0525 2020560c branch mouse_motion + 11 
 
 p_mouse_drawing_optima:
-050b 6fe0c957 fetch 1 ,mem_config_sensor_type 
-050c c1058000 rtneq ka8g2 
-050d 20205f27 branch mouse_drawing_optima + 1 
+0526 6fe0c957 fetch 1 ,mem_config_sensor_type 
+0527 c1058000 rtneq ka8g2 
+0528 20205f27 branch mouse_drawing_optima + 1 
+
+p_mouse_data_zoom:
+0529 6fe0c957 fetch 1 ,mem_config_sensor_type 
+052a c1858000 rtnne ka8g2 
+052b 6fe0c690 fetch 1 ,mem_mouse_dpi 
+052c c1818000 rtnne mouse_dpi_level4 
+052d 6fe14847 fetch 2 ,mem_mouse_x 
+052e 20400534 call p_mouse_2400_4800_zoom 
+052f 67e14847 store 2 ,mem_mouse_x 
+0530 6fe14849 fetch 2 ,mem_mouse_y 
+0531 20400534 call p_mouse_2400_4800_zoom 
+0532 67e14849 store 2 ,mem_mouse_y 
+0533 20600000 rtn 
+
+p_mouse_2400_4800_zoom:
+0534 c2858537 bbit1 11 ,p_mouse_xy_inverse 
+0535 c305853b bbit0 11 ,p_mouse_xy_zoom 
+0536 20600000 rtn 
+
+p_mouse_xy_inverse:
+0537 1fe67e00 sub pdata ,0 ,pdata 
+0538 2040053b call p_mouse_xy_zoom 
+0539 1fe67e00 sub pdata ,0 ,pdata 
+053a 20600000 rtn 
+
+p_mouse_xy_zoom:
+053b 1fe3fe00 lshift pdata ,pdata 
+053c 67e14b83 store 2 ,mem_mouse_temp_data 
+053d 6fe0cb84 fetch 1 ,mem_mouse_temp_data + 1 
+053e 1fe67c07 sub pdata ,0x7 ,null 
+053f 24410542 ncall p_mouse_xy_forward_overflow ,positive 
+0540 6fe14b83 fetch 2 ,mem_mouse_temp_data 
+0541 20600000 rtn 
+
+p_mouse_xy_forward_overflow:
+0542 580007ff setarg 0x7ff 
+0543 67e14b83 store 2 ,mem_mouse_temp_data 
+0544 20600000 rtn 
 
 p_mouse_key:
-050e 2040584c call mouse_check_firekey_gpio 
-050f 6fe0c987 fetch 1 ,mem_fire_key_flag 
-0510 243a5860 nbranch fire_key_press ,blank 
-0511 6fe0c982 fetch 1 ,mem_fire_key_status 
-0512 243a585f nbranch fire_key_process ,blank 
-0513 20405888 call mouse_check_key_gpio 
-0514 20400516 call p_mouse_ghost_key_check 
-0515 202057ad branch mouse_key + 7 
+0545 2040584c call mouse_check_firekey_gpio 
+0546 6fe0c987 fetch 1 ,mem_fire_key_flag 
+0547 243a5860 nbranch fire_key_press ,blank 
+0548 6fe0c982 fetch 1 ,mem_fire_key_status 
+0549 243a585f nbranch fire_key_process ,blank 
+054a 20405888 call mouse_check_key_gpio 
+054b 2040054d call p_mouse_ghost_key_check 
+054c 202057ad branch mouse_key + 7 
 
 p_mouse_ghost_key_check:
-0516 70497900 jam 0 ,mem_mouse_matrix_key_cow_count 
-0517 70497a00 jam 0 ,mem_mouse_matrix_key_row_count 
-0518 70497b00 jam 0 ,mem_mouse_ghost_flag 
-0519 1fe22400 copy pdata ,regb 
-051a 6848c644 fetcht 1 ,mem_lbutton_gpio 
-051b 6fe0c647 fetch 1 ,mem_bk_button_gpio 
-051c 98467c00 isub temp ,null 
-051d 20228528 branch p_mouse_matrix_ghost_key_l_bk ,zero 
-051e 6fe0c648 fetch 1 ,mem_fw_button_gpio 
-051f 98467c00 isub temp ,null 
-0520 2022852e branch p_mouse_matrix_ghost_key_l_fw ,zero 
-0521 6848c645 fetcht 1 ,mem_mbutton_gpio 
-0522 6fe0c647 fetch 1 ,mem_bk_button_gpio 
-0523 98467c00 isub temp ,null 
-0524 20228537 branch p_mouse_ghost_key_mbk_rfw ,zero 
+054d 70497900 jam 0 ,mem_mouse_matrix_key_cow_count 
+054e 70497a00 jam 0 ,mem_mouse_matrix_key_row_count 
+054f 70497b00 jam 0 ,mem_mouse_ghost_flag 
+0550 1fe22400 copy pdata ,regb 
+0551 6848c644 fetcht 1 ,mem_lbutton_gpio 
+0552 6fe0c647 fetch 1 ,mem_bk_button_gpio 
+0553 98467c00 isub temp ,null 
+0554 2022855f branch p_mouse_matrix_ghost_key_l_bk ,zero 
+0555 6fe0c648 fetch 1 ,mem_fw_button_gpio 
+0556 98467c00 isub temp ,null 
+0557 20228565 branch p_mouse_matrix_ghost_key_l_fw ,zero 
+0558 6848c645 fetcht 1 ,mem_mbutton_gpio 
+0559 6fe0c647 fetch 1 ,mem_bk_button_gpio 
+055a 98467c00 isub temp ,null 
+055b 2022856e branch p_mouse_ghost_key_mbk_rfw ,zero 
 
 p_mouse_ghost_key_mfw_rbk:
-0525 204057fb call mouse_ghost_key_check_m_fw 
+055c 204057fb call mouse_ghost_key_check_m_fw 
 
 p_mouse_ghost_key_rbk:
-0526 2040053c call p_mouse_ghost_key_check_r_bk 
-0527 202057e5 branch mouse_ghost_key_check_next 
+055d 20400573 call p_mouse_ghost_key_check_r_bk 
+055e 202057e5 branch mouse_ghost_key_check_next 
 
 p_mouse_matrix_ghost_key_l_bk:
-0528 6848c645 fetcht 1 ,mem_mbutton_gpio 
-0529 6fe0c648 fetch 1 ,mem_fw_button_gpio 
-052a 98467c00 isub temp ,null 
-052b 2022d7d6 branch mouse_ghost_key_lbk_mfw ,zero 
+055f 6848c645 fetcht 1 ,mem_mbutton_gpio 
+0560 6fe0c648 fetch 1 ,mem_fw_button_gpio 
+0561 98467c00 isub temp ,null 
+0562 2022d7d6 branch mouse_ghost_key_lbk_mfw ,zero 
 
 p_mouse_ghost_key_lbk_rfw:
-052c 204057ef call mouse_ghost_key_check_l_bk 
-052d 20200538 branch p_mouse_ghost_key_rfw 
+0563 204057ef call mouse_ghost_key_check_l_bk 
+0564 2020056f branch p_mouse_ghost_key_rfw 
 
 p_mouse_matrix_ghost_key_l_fw:
-052e 6848c645 fetcht 1 ,mem_mbutton_gpio 
-052f 6fe0c647 fetch 1 ,mem_bk_button_gpio 
-0530 98467c00 isub temp ,null 
-0531 20228534 branch p_mouse_ghost_key_lfw_mbk ,zero 
+0565 6848c645 fetcht 1 ,mem_mbutton_gpio 
+0566 6fe0c647 fetch 1 ,mem_bk_button_gpio 
+0567 98467c00 isub temp ,null 
+0568 2022856b branch p_mouse_ghost_key_lfw_mbk ,zero 
 
 p_mouse_ghost_key_lfw_rbk:
-0532 2040053e call p_mouse_ghost_key_check_l_fw 
-0533 20200526 branch p_mouse_ghost_key_rbk 
+0569 20400575 call p_mouse_ghost_key_check_l_fw 
+056a 2020055d branch p_mouse_ghost_key_rbk 
 
 p_mouse_ghost_key_lfw_mbk:
-0534 2040053e call p_mouse_ghost_key_check_l_fw 
-0535 2040053a call p_mouse_ghost_key_check_m_bk 
-0536 202057e5 branch mouse_ghost_key_check_next 
+056b 20400575 call p_mouse_ghost_key_check_l_fw 
+056c 20400571 call p_mouse_ghost_key_check_m_bk 
+056d 202057e5 branch mouse_ghost_key_check_next 
 
 p_mouse_ghost_key_mbk_rfw:
-0537 2040053a call p_mouse_ghost_key_check_m_bk 
+056e 20400571 call p_mouse_ghost_key_check_m_bk 
 
 p_mouse_ghost_key_rfw:
-0538 20400540 call p_mouse_ghost_key_check_r_fw 
-0539 202057e5 branch mouse_ghost_key_check_next 
+056f 20400577 call p_mouse_ghost_key_check_r_fw 
+0570 202057e5 branch mouse_ghost_key_check_next 
 
 p_mouse_ghost_key_check_m_bk:
-053a 1a417e12 and regb ,mouse_m_bk_button ,pdata 
-053b 202057f3 branch mouse_ghost_key_check_m_bk + 1 
+0571 1a417e12 and regb ,mouse_m_bk_button ,pdata 
+0572 202057f3 branch mouse_ghost_key_check_m_bk + 1 
 
 p_mouse_ghost_key_check_r_bk:
-053c 1a417e0a and regb ,mouse_r_bk_button ,pdata 
-053d 202057f6 branch mouse_ghost_key_check_r_bk + 1 
+0573 1a417e0a and regb ,mouse_r_bk_button ,pdata 
+0574 202057f6 branch mouse_ghost_key_check_r_bk + 1 
 
 p_mouse_ghost_key_check_l_fw:
-053e 1a417e11 and regb ,mouse_l_fw_button ,pdata 
-053f 202057f9 branch mouse_ghost_key_check_l_fw + 1 
+0575 1a417e11 and regb ,mouse_l_fw_button ,pdata 
+0576 202057f9 branch mouse_ghost_key_check_l_fw + 1 
 
 p_mouse_ghost_key_check_r_fw:
-0540 1a417e12 and regb ,mouse_r_fw_button ,pdata 
-0541 202057ff branch mouse_ghost_key_check_r_fw + 1 
+0577 1a417e12 and regb ,mouse_r_fw_button ,pdata 
+0578 202057ff branch mouse_ghost_key_check_r_fw + 1 
               org 0x2000
 
 start:
Index: output/sched.rom
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/sched.rom	(revision 3085)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/output/sched.rom	(working copy)
@@ -378,10 +378,10 @@
 3f	#mem_3212_dpi_2
 15	#mem_3212_dpi_3
 
-14	#mem_ka8g2_dpi_0
-1b	#mem_ka8g2_dpi_1
-11	#mem_ka8g2_dpi_2
-0e	#mem_ka8g2_dpi_3
+# 14	#mem_ka8g2_dpi_0
+# 1b	#mem_ka8g2_dpi_1
+# 11	#mem_ka8g2_dpi_2
+# 0e	#mem_ka8g2_dpi_3
 
 mem_sensor_s201_dpi:
 8a  #mem_sensor_s201_dpi_0	1200
@@ -396,6 +396,13 @@
 05  #mem_sensor_3056GX_dpi_2    2000
 02  #mem_sensor_3056GX_dpi_3    900
 
+mem_sensor_ka8g2_dpi:
+1b	#mem_sensor_ka8g2_dpi_0     1600
+28	#mem_sensor_ka8g2_dpi_1     2400
+35	#mem_sensor_ka8g2_dpi_2     3200
+28	#mem_sensor_ka8g2_dpi_3     2400-->4800
+0e	#mem_sensor_ka8g2_dpi_4     800
+
 mem_sensor_sg8670_dpi_800:
 09 5a
 7f 26
Index: program/patch.prog
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/program/patch.prog	(revision 3085)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/program/patch.prog	(working copy)
@@ -1883,6 +1883,7 @@
 
 p_mouse_dpi_process:
 	fetch 1,mem_config_sensor_type
+	beq KA8G2,p_mouse_KA8G2_dpi_level5_store
 	beq P3065GX,p_mouse_dpi_level_4_set
 	beq S201X,p_mouse_dpi_level_4_set
 	branch mouse_dpi_process+3
@@ -1895,6 +1896,14 @@
 	call set_pdata_0,zero
 	branch mouse_dpi_level_store
 
+p_mouse_KA8G2_dpi_level5_store:
+	fetch 1,mem_mouse_dpi
+	increase 1,pdata
+	store 1,mem_mouse_dpi
+	sub pdata,5,null
+	call set_pdata_0,zero
+	branch mouse_dpi_level_store
+
 p_mouse_setting_dpi:
 	call p_mouse_setting_dpi_4_level
 	branch mouse_setting_dpi+2
@@ -1903,6 +1912,7 @@
 	fetch 1,mem_config_sensor_type
 	rtneq P3065GX
 	rtneq S201X
+	rtneq KA8G2
 	branch mouse_setting_dpi_4_level
 
 p_mouse_setting_sensor_type:
@@ -1910,6 +1920,7 @@
 	beq SG8670,p_mouse_seting_SG8670_dpi
 	beq P3065GX,p_mouse_seting_P3065GX_dpi
 	beq S201X,p_mouse_seting_S201_dpi
+	beq KA8G2,p_mouse_seting_KA8G2_dpi
 	branch mouse_setting_sensor_type+1
 
 p_mouse_seting_S201_dpi:
@@ -1927,6 +1938,35 @@
 	beq MOUSE_DPI_LEVEL3,p_mouse_set_SG8670_dpi_4	//800
 	rtn
 
+p_mouse_seting_KA8G2_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,p_mouse_set_KA8G2_dpi_0	//1600
+	beq MOUSE_DPI_LEVEL2,p_mouse_set_KA8G2_dpi_1	//2400
+	beq MOUSE_DPI_LEVEL3,p_mouse_set_KA8G2_dpi_2	//3200
+	beq MOUSE_DPI_LEVEL4,p_mouse_set_KA8G2_dpi_3	//2400 --> 4800
+	beq MOUSE_DPI_LEVEL5,p_mouse_set_KA8G2_dpi_4	//800
+	rtn
+
+p_mouse_set_KA8G2_dpi_0:
+	fetch 1,mem_sensor_ka8g2_dpi_0
+	branch mouse_p3212_dpi
+
+p_mouse_set_KA8G2_dpi_1:
+	fetch 1,mem_sensor_ka8g2_dpi_1
+	branch mouse_p3212_dpi
+
+p_mouse_set_KA8G2_dpi_2:
+	fetch 1,mem_sensor_ka8g2_dpi_2
+	branch mouse_p3212_dpi
+
+p_mouse_set_KA8G2_dpi_3:
+	fetch 1,mem_sensor_ka8g2_dpi_3
+	branch mouse_p3212_dpi
+
+p_mouse_set_KA8G2_dpi_4:
+	fetch 1,mem_sensor_ka8g2_dpi_4
+	branch mouse_p3212_dpi
+
 p_mouse_set_SG8670_dpi_1:	//1200
 	arg mem_sensor_sg8670_dpi_1200,regc
 	branch mouse_sensor_wr_seq
@@ -1974,6 +2014,7 @@
 	setarg 0
 	store 6,mem_mouse_x
 	call p_mouse_check_sensor_data
+	call P_mouse_data_zoom
 	setarg 0x0089
 	call twspi_write	
 	call mouse_setting_sensor_type
@@ -1987,6 +2028,44 @@
 	rtneq KA8G2
 	branch mouse_drawing_optima+1
 
+P_mouse_data_zoom:
+	fetch 1,mem_config_sensor_type
+	rtnne KA8G2
+	fetch 1,mem_mouse_dpi
+	rtnne MOUSE_DPI_LEVEL4
+	fetch 2,mem_mouse_x
+	call p_mouse_2400_4800_zoom
+	store 2,mem_mouse_x
+	fetch 2,mem_mouse_y
+	call p_mouse_2400_4800_zoom
+	store 2,mem_mouse_y
+	rtn
+p_mouse_2400_4800_zoom:
+	bbit1 11,p_mouse_xy_inverse
+	bbit0 11,p_mouse_xy_zoom
+	rtn
+p_mouse_xy_inverse:
+	sub pdata,0,pdata
+	call p_mouse_xy_zoom	
+	sub pdata,0,pdata
+	rtn
+
+p_mouse_xy_zoom:
+	// copy pdata,temp
+	// iadd temp,pdata
+	lshift pdata,pdata
+	store 2,mem_mouse_temp_data
+	fetch 1,mem_mouse_temp_data+1
+	sub pdata,0x7,null
+	ncall p_mouse_xy_forward_overflow,positive
+	fetch 2,mem_mouse_temp_data
+	rtn
+p_mouse_xy_forward_overflow:
+	setarg 0x7ff
+	store 2,mem_mouse_temp_data
+	rtn
+
+
 p_mouse_key:
 	call mouse_check_firekey_gpio
 	fetch 1,mem_fire_key_flag
Index: sched/mouse.dat
===================================================================
--- /1121s/branch/mouse/YJX_Project/mouse_public_yjx/sched/mouse.dat	(revision 3085)
+++ /1121s/branch/mouse/YJX_Project/mouse_public_yjx/sched/mouse.dat	(working copy)
@@ -311,10 +311,10 @@
 3f	#mem_3212_dpi_2
 15	#mem_3212_dpi_3
 
-14	#mem_ka8g2_dpi_0
-1b	#mem_ka8g2_dpi_1
-11	#mem_ka8g2_dpi_2
-0e	#mem_ka8g2_dpi_3
+# 14	#mem_ka8g2_dpi_0
+# 1b	#mem_ka8g2_dpi_1
+# 11	#mem_ka8g2_dpi_2
+# 0e	#mem_ka8g2_dpi_3
 
 mem_sensor_s201_dpi:
 8a  #mem_sensor_s201_dpi_0	1200
@@ -329,6 +329,13 @@
 05  #mem_sensor_3056GX_dpi_2    2000
 02  #mem_sensor_3056GX_dpi_3    900
 
+mem_sensor_ka8g2_dpi:
+1b	#mem_sensor_ka8g2_dpi_0     1600
+28	#mem_sensor_ka8g2_dpi_1     2400
+35	#mem_sensor_ka8g2_dpi_2     3200
+28	#mem_sensor_ka8g2_dpi_3     2400-->4800
+0e	#mem_sensor_ka8g2_dpi_4     800
+
 mem_sensor_sg8670_dpi_800:
 09 5a
 7f 26
