Index: output/flash.dat
===================================================================
--- /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/output/flash.dat	(revision 3680)
+++ /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/output/flash.dat	(working copy)
@@ -343,11 +343,11 @@
 c0
 71
 85
-19
+0e
 c0
 73
 05
-3f
+3c
 c0
 75
 05
@@ -2795,7 +2795,7 @@
 20
 40
 05
-0f
+04
 68
 00
 c6
@@ -2835,7 +2835,7 @@
 20
 20
 05
-15
+0a
 ea
 61
 00
@@ -2871,7 +2871,7 @@
 20
 40
 05
-0f
+04
 20
 20
 40
@@ -3807,7 +3807,7 @@
 20
 40
 05
-73
+70
 68
 08
 c6
@@ -3823,7 +3823,7 @@
 20
 40
 05
-6e
+6b
 68
 00
 c6
@@ -3859,7 +3859,7 @@
 20
 40
 05
-6e
+6b
 20
 20
 3d
@@ -4155,7 +4155,7 @@
 20
 40
 05
-0d
+02
 20
 40
 04
@@ -5124,58 +5124,14 @@
 20
 04
 da
-68
-04
-47
-09
-60
-04
-0a
-9a
-68
-09
-0a
-9c
-68
-01
-0a
-a0
-98
-46
-7c
-00
-24
-21
-69
-44
-68
-09
-0a
-9e
-98
-46
-7c
-00
-24
-21
-69
-40
-20
-20
-05
-0a
-68
-08
-c2
-31
-79
-3f
-84
-00
+70
+11
+c7
+b6
 20
 20
-69
-46
+07
+78
 70
 11
 c7
@@ -5215,7 +5171,7 @@
 c0
 ff
 85
-19
+0e
 68
 00
 c6
@@ -5229,17 +5185,21 @@
 c6
 e0
 c0
+02
+05
+2c
+c0
 03
 05
-28
+1e
 c0
 03
 85
-28
+1e
 c0
 01
 05
-36
+33
 68
 00
 c7
@@ -5251,7 +5211,7 @@
 20
 42
 85
-24
+1a
 68
 00
 c7
@@ -5259,7 +5219,7 @@
 c0
 00
 05
-26
+1c
 c0
 01
 bd
@@ -5283,7 +5243,7 @@
 20
 20
 05
-30
+26
 68
 00
 c7
@@ -5295,7 +5255,7 @@
 20
 42
 85
-24
+1a
 68
 00
 c7
@@ -5303,11 +5263,11 @@
 c0
 00
 05
-32
+28
 c0
 01
 85
-34
+2a
 68
 00
 c7
@@ -5331,7 +5291,7 @@
 20
 20
 05
-2f
+25
 68
 00
 c7
@@ -5339,7 +5299,7 @@
 20
 20
 05
-2f
+25
 68
 00
 c7
@@ -5351,7 +5311,7 @@
 20
 42
 85
-24
+1a
 68
 00
 c7
@@ -5359,11 +5319,39 @@
 c0
 00
 3d
-88
+9d
 c0
 01
+bd
+a1
+20
+20
+3d
+9f
+68
+00
+c7
+7a
+1f
+e6
+7c
+01
+20
+42
 85
+1a
+68
+00
+c7
+7a
+c0
+00
 3d
+88
+c0
+01
+85
+3a
 20
 20
 3d
@@ -5391,7 +5379,7 @@
 20
 40
 05
-79
+76
 20
 40
 40
@@ -5399,11 +5387,11 @@
 20
 40
 05
-4b
+48
 24
 34
 05
-48
+45
 20
 40
 07
@@ -5427,7 +5415,7 @@
 20
 40
 05
-4d
+4a
 20
 20
 40
@@ -5439,11 +5427,11 @@
 20
 40
 05
-53
+50
 20
 40
 05
-51
+4e
 20
 20
 40
@@ -5451,11 +5439,11 @@
 20
 40
 05
-63
+60
 20
 20
 05
-69
+66
 68
 08
 c6
@@ -5463,7 +5451,7 @@
 20
 40
 05
-6e
+6b
 68
 08
 c6
@@ -5483,7 +5471,7 @@
 20
 40
 05
-6e
+6b
 68
 08
 c6
@@ -5503,7 +5491,7 @@
 20
 40
 05
-6e
+6b
 68
 08
 c6
@@ -5527,7 +5515,7 @@
 20
 40
 05
-73
+70
 68
 08
 c6
@@ -5543,7 +5531,7 @@
 20
 20
 05
-6e
+6b
 68
 08
 c6
@@ -5551,7 +5539,7 @@
 20
 40
 05
-73
+70
 68
 08
 c6
@@ -5583,7 +5571,7 @@
 20
 20
 05
-77
+74
 79
 3f
 84
@@ -5613,6 +5601,10 @@
 c6
 e0
 c0
+02
+05
+7c
+c0
 04
 05
 7e
@@ -5632,6 +5624,14 @@
 40
 3f
 c0
+20
+20
+3f
+c8
+20
+40
+3f
+c0
 78
 54
 7c
@@ -8188,8 +8188,8 @@
 20
 07
 f9
-df
-68
+88
+7b
 aa
 55
 08
@@ -8848,7 +8848,7 @@
 ff
 aa
 55
-04
+08
 00
 7f
 47
@@ -8856,6 +8856,10 @@
 02
 03
 04
+15
+1a
+1f
+2a
 aa
 55
 04
@@ -9265,9 +9269,15 @@
 00
 54
 4b
-3c
+46
 32
 00
+55
+aa
+aa
+55
+fa
+19
 ff
 20
 20
@@ -9788,23 +9798,27 @@
 c0
 58
 80
-07
+08
 c0
 59
 00
-0d
+0e
 c0
 59
 80
-12
+13
 c0
 5a
 00
-19
+1a
 c0
 5a
 80
-1e
+1f
+c0
+5b
+00
+26
 20
 60
 00
@@ -9860,11 +9874,11 @@
 c0
 00
 80
-15
+16
 20
 20
 00
-17
+18
 20
 40
 03
@@ -9929,62 +9943,58 @@
 20
 02
 eb
+68
+04
+47
+09
+60
+04
+0a
+9a
+68
+09
+0a
+9c
+68
+01
+0a
+a0
+98
+46
+7c
 00
+24
+21
+69
+44
+68
+09
+0a
+9e
+98
+46
+7c
 00
+24
+21
+69
+40
+20
+20
 00
+30
+68
+08
+c2
+31
+79
+3f
+84
 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
+20
+20
+69
+46
 00
 00
 00
@@ -12440,7 +12450,7 @@
 20
 40
 05
-4d
+4a
 c0
 02
 82
@@ -12857,5 +12867,5 @@
 55
 00
 00
-63
-01
+24
+92
Index: output/program.lis
===================================================================
--- /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/output/program.lis	(revision 3680)
+++ /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/output/program.lis	(working copy)
@@ -100,8 +100,8 @@
 0051 c058809a beq patch16_1 ,p_lpm_check_wake_lock 
 0052 c05900a8 beq patch16_2 ,p_g24_dispatch 
 0053 c0620291 beq patch18_4 ,p_device_init 
-0054 c0718519 beq patch1c_3 ,p_mouse_seting_dpi 
-0055 c073053f beq patch1c_6 ,p_mouse_motion 
+0054 c071850e beq patch1c_3 ,p_mouse_seting_dpi 
+0055 c073053c beq patch1c_6 ,p_mouse_motion 
 0056 c0750589 beq patch1d_2 ,p_mouse_bb_event_discovery_btn 
 0057 c0758475 beq patch1d_3 ,p_mouse_start_discovery 
 0058 c0760598 beq patch1d_4 ,p_mouse_stop_discovery 
@@ -917,7 +917,7 @@
 02b8 20600000 rtn 
 
 p_mouse_init_p32xx_id2_judge:
-02b9 2040050f call p_mouse_sensor_poweron 
+02b9 20400504 call p_mouse_sensor_poweron 
 02ba 6800c6de fetch 1 ,mem_sensor_id2 
 02bb c02d02bd beq p_mx8650 ,p_mouse_mx8650_init_param 
 02bc 202040e0 branch mouse_init_p32xx_id2_judge 
@@ -929,7 +929,7 @@
 02c0 20407ec1 call delay_10ms 
 02c1 da604b75 arg mem_sensor_8650_init ,regc 
 02c2 204002c4 call p_sensor_wr_seq 
-02c3 20200515 branch p_mouse_dpi_config 
+02c3 2020050a branch p_mouse_dpi_config 
 
 p_sensor_wr_seq:
 02c4 ea610000 ifetch 2 ,regc 
@@ -942,7 +942,7 @@
 02cb 202002c4 branch p_sensor_wr_seq 
 
 p_mouse_p3065_init_param:
-02cc 2040050f call p_mouse_sensor_poweron 
+02cc 20400504 call p_mouse_sensor_poweron 
 02cd 202040ea branch mouse_p3065_init_param 
 
 p_mouse_setting_config:
@@ -1254,11 +1254,11 @@
 
 p_mouse_dpi_check:
 03b5 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
-03b6 20400573 call p_gpio_set_input_pd 
+03b6 20400570 call p_gpio_set_input_pd 
 03b7 6808c6e7 fetcht 1 ,mem_dpi_button_gpio 
 03b8 2040681d call gpio_get_bit 
 03b9 202083c3 branch p_mouse_dpi_up ,true 
-03ba 2040056e call p_gpio_set_input_pu 
+03ba 2040056b call p_gpio_set_input_pu 
 
 p_mouse_dpi_down:
 03bb 6800c6b6 fetch 1 ,mem_mouse_dpi_button_state 
@@ -1271,7 +1271,7 @@
 03c2 20203d7e branch mouse_seting_dpi 
 
 p_mouse_dpi_up:
-03c3 2040056e call p_gpio_set_input_pu 
+03c3 2040056b call p_gpio_set_input_pu 
 03c4 20203d62 branch mouse_dpi_up 
 
 p_mouse_priority_bb_event:
@@ -1389,7 +1389,7 @@
 
 p_mouse_bb_event_timer:
 040c 204004ed call p_mouse_adc_read 
-040d 2040050d call p_mouse_low_voltage_led_timer 
+040d 20400502 call p_mouse_low_voltage_led_timer 
 040e 204004af call p_mouse_multi_led_blink_timer 
 040f 20400487 call p_mouse_wheel_trigger_timer 
 0410 204004a3 call p_mouse_null_enter_hibernate_timer 
@@ -1756,198 +1756,200 @@
 04ff 202004da branch p_mouse_multi_led_off 
 
 p_adc_bat_percent_lowpower_out:
-0500 68044709 fetch 8 ,mem_mouse_vdd_calculate_set 
-0501 60040a9a store 8 ,mem_pdatatemp 
-0502 68090a9c fetcht 2 ,mem_pdatatemp + 2 
-0503 68010aa0 fetch 2 ,mem_pdatatemp + 6 
-0504 98467c00 isub temp ,null 
-0505 24216944 nbranch adc_set_no_power_flag ,positive 
-0506 68090a9e fetcht 2 ,mem_pdatatemp + 4 
-0507 98467c00 isub temp ,null 
-0508 24216940 nbranch adc_set_low_power_flag ,positive 
-0509 2020050a branch p_adc_set_no_low_power_flag 
-
-p_adc_set_no_low_power_flag:
-050a 6808c231 fetcht 1 ,mem_adc_power_flag 
-050b 793f8400 set0 0 ,temp 
-050c 20206946 branch adc_set_store_flag 
+0500 7011c7b6 jam zcode_b6 ,mem_zcode_temp_param0 
+0501 20200778 branch p_zcode_entrance 
 
 p_mouse_low_voltage_led_timer:
-050d 7011c7d1 jam zcode_d1 ,mem_zcode_temp_param0 
-050e 20200778 branch p_zcode_entrance 
+0502 7011c7d1 jam zcode_d1 ,mem_zcode_temp_param0 
+0503 20200778 branch p_zcode_entrance 
 
 p_mouse_sensor_poweron:
-050f 204002f9 call p_mouse_spi_init 
-0510 58008006 setarg 0x8006 
-0511 20406413 call twspi_write 
-0512 20002ee0 nop 12000 
-0513 da604b9d arg mem_sensor_poweron_init ,regc 
-0514 204002c4 call p_sensor_wr_seq 
+0504 204002f9 call p_mouse_spi_init 
+0505 58008006 setarg 0x8006 
+0506 20406413 call twspi_write 
+0507 20002ee0 nop 12000 
+0508 da604b9d arg mem_sensor_poweron_init ,regc 
+0509 204002c4 call p_sensor_wr_seq 
 
 p_mouse_dpi_config:
-0515 6800c77a fetch 1 ,mem_mouse_dpi 
-0516 c0ff8519 bne 0xff ,p_mouse_seting_dpi 
+050a 6800c77a fetch 1 ,mem_mouse_dpi 
+050b c0ff850e bne 0xff ,p_mouse_seting_dpi 
 
 p_mouse_dpi_config_default:
-0517 6800c6e1 fetch 1 ,mem_config_sensor_motion 
-0518 6000c77a store 1 ,mem_mouse_dpi 
+050c 6800c6e1 fetch 1 ,mem_config_sensor_motion 
+050d 6000c77a store 1 ,mem_mouse_dpi 
 
 p_mouse_seting_dpi:
 
 p_mouse_seting_sensor_type:
-0519 6800c6e0 fetch 1 ,mem_config_sensor_type 
-051a c0030528 beq p3065_xy ,p_mouse_seting_3065xy_dpi 
-051b c0038528 beq mx8650 ,p_mouse_seting_3065xy_dpi 
-051c c0010536 beq ka8 ,p_mouse_seting_ka8_dpi 
+050e 6800c6e0 fetch 1 ,mem_config_sensor_type 
+050f c002052c beq p3212 ,p_mouse_seting_3212_dpi 
+0510 c003051e beq p3065_xy ,p_mouse_seting_3065xy_dpi 
+0511 c003851e beq mx8650 ,p_mouse_seting_3065xy_dpi 
+0512 c0010533 beq ka8 ,p_mouse_seting_ka8_dpi 
 
 p_mouse_seting_3205_dpi:
-051d 6800c77a fetch 1 ,mem_mouse_dpi 
-051e 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
-051f 20428524 call p_mouse_3205_dpi_recount ,zero 
-0520 6800c77a fetch 1 ,mem_mouse_dpi 
-0521 c0000526 beq mouse_dpi_level1 ,p_mouse_3205_set_cpi1 
-0522 c001bd8c beq mouse_dpi_level4 ,mouse_set_cpi3 
-0523 20203d88 branch mouse_set_cpi2 
+0513 6800c77a fetch 1 ,mem_mouse_dpi 
+0514 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
+0515 2042851a call p_mouse_3205_dpi_recount ,zero 
+0516 6800c77a fetch 1 ,mem_mouse_dpi 
+0517 c000051c beq mouse_dpi_level1 ,p_mouse_3205_set_cpi1 
+0518 c001bd8c beq mouse_dpi_level4 ,mouse_set_cpi3 
+0519 20203d88 branch mouse_set_cpi2 
 
 p_mouse_3205_dpi_recount:
-0524 70477a02 jam mouse_dpi_level3 ,mem_mouse_dpi 
-0525 20600000 rtn 
+051a 70477a02 jam mouse_dpi_level3 ,mem_mouse_dpi 
+051b 20600000 rtn 
 
 p_mouse_3205_set_cpi1:
-0526 6800c77f fetch 1 ,mem_320x_dpi_1 
-0527 20200530 branch p_mouse_dpi_store 
+051c 6800c77f fetch 1 ,mem_320x_dpi_1 
+051d 20200526 branch p_mouse_dpi_store 
 
 p_mouse_seting_3065xy_dpi:
-0528 6800c77a fetch 1 ,mem_mouse_dpi 
-0529 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
-052a 20428524 call p_mouse_3205_dpi_recount ,zero 
-052b 6800c77a fetch 1 ,mem_mouse_dpi 
-052c c0000532 beq mouse_dpi_level1 ,p_mouse_3065xy_set_cpi1 
-052d c0018534 beq mouse_dpi_level4 ,p_mouse_3065xy_set_cpi4 
+051e 6800c77a fetch 1 ,mem_mouse_dpi 
+051f 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
+0520 2042851a call p_mouse_3205_dpi_recount ,zero 
+0521 6800c77a fetch 1 ,mem_mouse_dpi 
+0522 c0000528 beq mouse_dpi_level1 ,p_mouse_3065xy_set_cpi1 
+0523 c001852a beq mouse_dpi_level4 ,p_mouse_3065xy_set_cpi4 
 
 p_mouse_3065xy_set_cpi3:
-052e 6800c781 fetch 1 ,mem_320x_dpi_3 
+0524 6800c781 fetch 1 ,mem_320x_dpi_3 
 
 p_mouse_3065xy_dpi_store:
-052f 1fe0ffff increase -1 ,pdata 
+0525 1fe0ffff increase -1 ,pdata 
 
 p_mouse_dpi_store:
-0530 6000c6b5 store 1 ,mem_mouse_cpi_count 
-0531 20203dc1 branch mouse_p3205_dpi + 3 
+0526 6000c6b5 store 1 ,mem_mouse_cpi_count 
+0527 20203dc1 branch mouse_p3205_dpi + 3 
 
 p_mouse_3065xy_set_cpi1:
-0532 6800c77f fetch 1 ,mem_320x_dpi_1 
-0533 2020052f branch p_mouse_3065xy_dpi_store 
+0528 6800c77f fetch 1 ,mem_320x_dpi_1 
+0529 20200525 branch p_mouse_3065xy_dpi_store 
 
 p_mouse_3065xy_set_cpi4:
-0534 6800c782 fetch 1 ,mem_320x_dpi_4 
-0535 2020052f branch p_mouse_3065xy_dpi_store 
+052a 6800c782 fetch 1 ,mem_320x_dpi_4 
+052b 20200525 branch p_mouse_3065xy_dpi_store 
+
+p_mouse_seting_3212_dpi:
+052c 6800c77a fetch 1 ,mem_mouse_dpi 
+052d 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
+052e 2042851a call p_mouse_3205_dpi_recount ,zero 
+052f 6800c77a fetch 1 ,mem_mouse_dpi 
+0530 c0003d9d beq mouse_dpi_level1 ,mouse_set_p3212_cpi1 
+0531 c001bda1 beq mouse_dpi_level4 ,mouse_set_p3212_cpi4 
+0532 20203d9f branch mouse_set_p3212_cpi3 
 
 p_mouse_seting_ka8_dpi:
+0533 6800c77a fetch 1 ,mem_mouse_dpi 
+0534 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
+0535 2042851a call p_mouse_3205_dpi_recount ,zero 
 0536 6800c77a fetch 1 ,mem_mouse_dpi 
-0537 1fe67c01 sub pdata ,mouse_dpi_level2 ,null 
-0538 20428524 call p_mouse_3205_dpi_recount ,zero 
-0539 6800c77a fetch 1 ,mem_mouse_dpi 
-053a c0003d88 beq mouse_dpi_level1 ,mouse_set_cpi2 
-053b c001853d beq mouse_dpi_level4 ,p_mouse_ka8_set_cpi3 
-053c 20203d8e branch mouse_set_cpi4 
+0537 c0003d88 beq mouse_dpi_level1 ,mouse_set_cpi2 
+0538 c001853a beq mouse_dpi_level4 ,p_mouse_ka8_set_cpi3 
+0539 20203d8e branch mouse_set_cpi4 
 
 p_mouse_ka8_set_cpi3:
-053d 58000005 setarg 5 
-053e 20203dbe branch mouse_p3205_dpi 
+053a 58000005 setarg 5 
+053b 20203dbe branch mouse_p3205_dpi 
 
 p_mouse_motion:
-053f 78547c00 disable user 
-0540 58000000 setarg 0 
-0541 6003469b store 6 ,mem_mouse_x 
-0542 20400579 call p_mouse_cheak_sensor_data 
-0543 20404079 call mouse_zwheel 
-0544 2040054b call p_mouse_key 
-0545 24340548 nbranch p_mouse_motion_nodata ,user 
-0546 20400799 call p_drawing_optima 
-0547 20203fa0 branch mouse_motion + 9 
+053c 78547c00 disable user 
+053d 58000000 setarg 0 
+053e 6003469b store 6 ,mem_mouse_x 
+053f 20400576 call p_mouse_cheak_sensor_data 
+0540 20404079 call mouse_zwheel 
+0541 20400548 call p_mouse_key 
+0542 24340545 nbranch p_mouse_motion_nodata ,user 
+0543 20400799 call p_drawing_optima 
+0544 20203fa0 branch mouse_motion + 9 
 
 p_mouse_motion_nodata:
-0548 204007a2 call p_drawing_optima_init 
-0549 704b3800 jam 0 ,mem_low_power_check_count 
-054a 20600000 rtn 
+0545 204007a2 call p_drawing_optima_init 
+0546 704b3800 jam 0 ,mem_low_power_check_count 
+0547 20600000 rtn 
 
 p_mouse_key:
-054b 2040054d call p_mouse_check_key_gpio 
-054c 2020409a branch mouse_key + 1 
+0548 2040054a call p_mouse_check_key_gpio 
+0549 2020409a branch mouse_key + 1 
 
 p_mouse_check_key_gpio:
-054d da200000 arg 0 ,rega 
-054e 20400553 call p_mouse_check_lkey_gpio 
-054f 20400551 call p_mouse_check_skey_gpio 
-0550 2020408e branch mouse_check_key_gpio_output 
+054a da200000 arg 0 ,rega 
+054b 20400550 call p_mouse_check_lkey_gpio 
+054c 2040054e call p_mouse_check_skey_gpio 
+054d 2020408e branch mouse_check_key_gpio_output 
 
 p_mouse_check_skey_gpio:
-0551 20400563 call p_mouse_check_bk_key_gpio 
-0552 20200569 branch p_mouse_check_fw_key_gpio 
+054e 20400560 call p_mouse_check_bk_key_gpio 
+054f 20200566 branch p_mouse_check_fw_key_gpio 
 
 p_mouse_check_lkey_gpio:
-0553 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
-0554 2040056e call p_gpio_set_input_pu 
-0555 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
-0556 2040681d call gpio_get_bit 
-0557 7920a200 setflag true ,0 ,rega 
+0550 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
+0551 2040056b call p_gpio_set_input_pu 
+0552 6808c6e2 fetcht 1 ,mem_lbutton_gpio 
+0553 2040681d call gpio_get_bit 
+0554 7920a200 setflag true ,0 ,rega 
 
 p_mouse_check_rkey_gpio:
-0558 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
-0559 2040056e call p_gpio_set_input_pu 
-055a 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
-055b 2040681d call gpio_get_bit 
-055c 7920a201 setflag true ,1 ,rega 
+0555 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
+0556 2040056b call p_gpio_set_input_pu 
+0557 6808c6e3 fetcht 1 ,mem_rbutton_gpio 
+0558 2040681d call gpio_get_bit 
+0559 7920a201 setflag true ,1 ,rega 
 
 p_mouse_check_mkey_gpio:
-055d 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
-055e 2040056e call p_gpio_set_input_pu 
-055f 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
-0560 2040681d call gpio_get_bit 
-0561 7920a202 setflag true ,2 ,rega 
-0562 20600000 rtn 
+055a 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
+055b 2040056b call p_gpio_set_input_pu 
+055c 6808c6e4 fetcht 1 ,mem_mbutton_gpio 
+055d 2040681d call gpio_get_bit 
+055e 7920a202 setflag true ,2 ,rega 
+055f 20600000 rtn 
 
 p_mouse_check_bk_key_gpio:
-0563 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
-0564 20400573 call p_gpio_set_input_pd 
-0565 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
-0566 2040681d call gpio_get_bit 
-0567 7d20a203 nsetflag true ,3 ,rega 
-0568 2020056e branch p_gpio_set_input_pu 
+0560 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
+0561 20400570 call p_gpio_set_input_pd 
+0562 6808c6e5 fetcht 1 ,mem_bk_button_gpio 
+0563 2040681d call gpio_get_bit 
+0564 7d20a203 nsetflag true ,3 ,rega 
+0565 2020056b branch p_gpio_set_input_pu 
 
 p_mouse_check_fw_key_gpio:
-0569 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
-056a 20400573 call p_gpio_set_input_pd 
-056b 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
-056c 2040681d call gpio_get_bit 
-056d 7d20a204 nsetflag true ,4 ,rega 
+0566 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
+0567 20400570 call p_gpio_set_input_pd 
+0568 6808c6e6 fetcht 1 ,mem_fw_button_gpio 
+0569 2040681d call gpio_get_bit 
+056a 7d20a204 nsetflag true ,4 ,rega 
 
 p_gpio_set_input_pu:
-056e 79200407 set1 gpio_active_bit ,temp 
-056f d8a08078 arg core_gpio_pu0 ,contw 
-0570 20406830 call gpio_set_bit 
-0571 793f8407 set0 gpio_active_bit ,temp 
-0572 20200577 branch p_gpio_set_input_pd4 
+056b 79200407 set1 gpio_active_bit ,temp 
+056c d8a08078 arg core_gpio_pu0 ,contw 
+056d 20406830 call gpio_set_bit 
+056e 793f8407 set0 gpio_active_bit ,temp 
+056f 20200574 branch p_gpio_set_input_pd4 
 
 p_gpio_set_input_pd:
-0573 793f8407 set0 gpio_active_bit ,temp 
-0574 d8a08078 arg core_gpio_pu0 ,contw 
-0575 20406830 call gpio_set_bit 
-0576 79200407 set1 gpio_active_bit ,temp 
+0570 793f8407 set0 gpio_active_bit ,temp 
+0571 d8a08078 arg core_gpio_pu0 ,contw 
+0572 20406830 call gpio_set_bit 
+0573 79200407 set1 gpio_active_bit ,temp 
 
 p_gpio_set_input_pd4:
-0577 d8a0807c arg core_gpio_pd0 ,contw 
-0578 2020680a branch gpio_set_high_impedance + 4 
+0574 d8a0807c arg core_gpio_pd0 ,contw 
+0575 2020680a branch gpio_set_high_impedance + 4 
 
 p_mouse_cheak_sensor_data:
-0579 6800c6e0 fetch 1 ,mem_config_sensor_type 
-057a c004057e beq p8009 ,p_mouse_p8009_sensor_motion 
+0576 6800c6e0 fetch 1 ,mem_config_sensor_type 
+0577 c002057c beq p3212 ,p_mouse_p3212_sensor_motion 
+0578 c004057e beq p8009 ,p_mouse_p8009_sensor_motion 
 
 p_mouse_p32xx_sensor_motion:
-057b 20403fc0 call mouse_clear_sensor_data 
-057c 78547c00 disable user 
-057d 20203fe7 branch mouse_p32xx_sensor_motion_2 
+0579 20403fc0 call mouse_clear_sensor_data 
+057a 78547c00 disable user 
+057b 20203fe7 branch mouse_p32xx_sensor_motion_2 
+
+p_mouse_p3212_sensor_motion:
+057c 20403fc0 call mouse_clear_sensor_data 
+057d 20203fc8 branch mouse_p3212_sensor_motion_1 
 
 p_mouse_p8009_sensor_motion:
 057e 20403fc0 call mouse_clear_sensor_data 
@@ -35573,7 +35575,7 @@
 20015 68014682 fetch 2 ,mem_ui_state_map 
 20016 c28642b0 bbit1 ui_state_btn_down ,mouse_start_discovery 
 20017 204033a9 call app_disconn_reason_clear 
-20018 2040054d call p_mouse_check_key_gpio 
+20018 2040054a call p_mouse_check_key_gpio 
 20019 c002829d beq mouse_lm_button ,p_mouse_null_enter_hibernate_enable 
 2001a 202033a7 branch app_bb_hibernate 
 
@@ -36242,56 +36244,74 @@
               org 0xc0001
 
 z_entranceb:
-c0001 c0588007 beq zcode_b1 ,z_mouse_sniff_not_accept 
-c0002 c059000d beq zcode_b2 ,z_mouse_enter_sniff_check 
-c0003 c0598012 beq zcode_b3 ,z_mouse_le_ll_start_encryt 
-c0004 c05a0019 beq zcode_b4 ,z_mouse_bb_event_disconnected 
-c0005 c05a801e beq zcode_b5 ,z_mouse_irtual_cable_unplug 
-c0006 20600000 rtn 
+c0001 c0588008 beq zcode_b1 ,z_mouse_sniff_not_accept 
+c0002 c059000e beq zcode_b2 ,z_mouse_enter_sniff_check 
+c0003 c0598013 beq zcode_b3 ,z_mouse_le_ll_start_encryt 
+c0004 c05a001a beq zcode_b4 ,z_mouse_bb_event_disconnected 
+c0005 c05a801f beq zcode_b5 ,z_mouse_irtual_cable_unplug 
+c0006 c05b0026 beq zcode_b6 ,z_adc_bat_percent_lowpower_out 
+c0007 20600000 rtn 
 
 z_mouse_sniff_not_accept:
-c0007 6800c80a fetch 1 ,mem_mouse_enter_sniff_count 
-c0008 c1010000 rtneq 2 
-c0009 1fe0fe01 increase 1 ,pdata 
-c000a 6000c80a store 1 ,mem_mouse_enter_sniff_count 
-c000b 7041e312 jam 0x12 ,mem_sniff_param_interval 
-c000c 2020340e branch app_bt_enter_sniff 
+c0008 6800c80a fetch 1 ,mem_mouse_enter_sniff_count 
+c0009 c1010000 rtneq 2 
+c000a 1fe0fe01 increase 1 ,pdata 
+c000b 6000c80a store 1 ,mem_mouse_enter_sniff_count 
+c000c 7041e312 jam 0x12 ,mem_sniff_param_interval 
+c000d 2020340e branch app_bt_enter_sniff 
 
 z_mouse_enter_sniff_check:
-c000d 6800c80a fetch 1 ,mem_mouse_enter_sniff_count 
-c000e c1810000 rtnne 2 
-c000f 70480a00 jam 0 ,mem_mouse_enter_sniff_count 
-c0010 7041e30e jam 0x0e ,mem_sniff_param_interval 
-c0011 2020340e branch app_bt_enter_sniff 
+c000e 6800c80a fetch 1 ,mem_mouse_enter_sniff_count 
+c000f c1810000 rtnne 2 
+c0010 70480a00 jam 0 ,mem_mouse_enter_sniff_count 
+c0011 7041e30e jam 0x0e ,mem_sniff_param_interval 
+c0012 2020340e branch app_bt_enter_sniff 
 
 z_mouse_le_ll_start_encryt:
-c0012 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
-c0013 c0008015 beq 1 ,z_mouse_le_ll_reconn_start_encryt 
-c0014 20200017 branch z_mouse_le_ll_enable_start_enc_flag 
+c0013 6800c7a1 fetch 1 ,mem_mouse_le_reconnect_flag 
+c0014 c0008016 beq 1 ,z_mouse_le_ll_reconn_start_encryt 
+c0015 20200018 branch z_mouse_le_ll_enable_start_enc_flag 
 
 z_mouse_le_ll_reconn_start_encryt:
-c0015 204003e2 call p_app_updata_le_param 
-c0016 7046c605 jam 5 ,mem_le_start_encrypt_timer 
+c0016 204003e2 call p_app_updata_le_param 
+c0017 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 
+c0018 d8e00001 arg ll_start_enc_flag ,queue 
+c0019 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 204002eb call p_mouse_store_flash_device_info 
-c001d 202041d9 branch mouse_bb_disconnected 
+c001a 704b0100 jam 0 ,mem_bt_rcvd_switch_req_accept 
+c001b 704b0300 jam 0 ,mem_bt_send_lmp_setup_complete 
+c001c 704b0c00 jam 0 ,mem_mouse_bt_send_first_package_flag 
+c001d 204002eb call p_mouse_store_flash_device_info 
+c001e 202041d9 branch mouse_bb_disconnected 
 
 z_mouse_irtual_cable_unplug:
-c001e 58000001 setarg 0x01 
-c001f 60030040 store 6 ,mem_plap 
-c0020 70018533 jam rec_3_mode ,mem_record_bt_mode 
-c0021 704b6aff jam 0xff ,mem_mouse_fast_conn_flag 
-c0022 204042fb call mouse_before_store_reconn_info 
-c0023 704721ff jam 0xff ,mem_device1_type 
-c0024 202002eb branch p_mouse_store_flash_device_info 
+c001f 58000001 setarg 0x01 
+c0020 60030040 store 6 ,mem_plap 
+c0021 70018533 jam rec_3_mode ,mem_record_bt_mode 
+c0022 704b6aff jam 0xff ,mem_mouse_fast_conn_flag 
+c0023 204042fb call mouse_before_store_reconn_info 
+c0024 704721ff jam 0xff ,mem_device1_type 
+c0025 202002eb branch p_mouse_store_flash_device_info 
+
+z_adc_bat_percent_lowpower_out:
+c0026 68044709 fetch 8 ,mem_mouse_vdd_calculate_set 
+c0027 60040a9a store 8 ,mem_pdatatemp 
+c0028 68090a9c fetcht 2 ,mem_pdatatemp + 2 
+c0029 68010aa0 fetch 2 ,mem_pdatatemp + 6 
+c002a 98467c00 isub temp ,null 
+c002b 24216944 nbranch adc_set_no_power_flag ,positive 
+c002c 68090a9e fetcht 2 ,mem_pdatatemp + 4 
+c002d 98467c00 isub temp ,null 
+c002e 24216940 nbranch adc_set_low_power_flag ,positive 
+c002f 20200030 branch z_adc_set_no_low_power_flag 
+
+z_adc_set_no_low_power_flag:
+c0030 6808c231 fetcht 1 ,mem_adc_power_flag 
+c0031 793f8400 set0 0 ,temp 
+c0032 20206946 branch adc_set_store_flag 
               org 0xd0001
 
 z_entrancec:
Index: output/romcode.rom
===================================================================
--- /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/output/romcode.rom	(revision 3680)
+++ /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/output/romcode.rom	(working copy)
@@ -24638,7 +24638,7 @@
 68014682
 c28642b0
 204033a9
-2040054d
+2040054a
 c002829d
 202033a7
 68010264
@@ -25139,11 +25139,12 @@
 79207e00
 6010807f
 20600000
-c0588007
-c059000d
-c0598012
-c05a0019
-c05a801e
+c0588008
+c059000e
+c0598013
+c05a001a
+c05a801f
+c05b0026
 20600000
 6800c80a
 c1010000
@@ -25157,8 +25158,8 @@
 7041e30e
 2020340e
 6800c7a1
-c0008015
-20200017
+c0008016
+20200018
 204003e2
 7046c605
 d8e00001
@@ -25175,6 +25176,19 @@
 204042fb
 704721ff
 202002eb
+68044709
+60040a9a
+68090a9c
+68010aa0
+98467c00
+24216944
+68090a9e
+98467c00
+24216940
+20200030
+6808c231
+793f8400
+20206946
 c0600005
 c060800b
 c0610014
@@ -25274,4 +25288,4 @@
 20600000
 7046cf00
 20600000
-000092c0
+0000bf39
Index: program/patch.prog
===================================================================
--- /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/program/patch.prog	(revision 3680)
+++ /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/program/patch.prog	(working copy)
@@ -2180,21 +2180,8 @@
 	branch p_mouse_multi_led_off
 
 p_adc_bat_percent_lowpower_out:
-	fetch 8,mem_mouse_vdd_calculate_set
-	store 8,mem_pdatatemp
-	fetcht 2,mem_pdatatemp+2
-	fetch 2,mem_pdatatemp+6
-	isub temp,null
-	nbranch adc_set_no_power_flag,positive
-	fetcht 2,mem_pdatatemp+4	//low voltage 1.0v
-	isub temp,null
-	nbranch adc_set_low_power_flag,positive
-	branch p_adc_set_no_low_power_flag
-
-p_adc_set_no_low_power_flag:
-	fetcht 1,mem_adc_power_flag
-	set0 0,temp
-	branch adc_set_store_flag
+	jam ZCODE_B6,mem_zcode_temp_param0
+	branch p_zcode_entrance
 
 p_mouse_low_voltage_led_timer:
 	jam ZCODE_D1,mem_zcode_temp_param0
@@ -2221,7 +2208,7 @@
 p_mouse_seting_dpi:
 p_mouse_seting_sensor_type:
 	fetch 1,mem_config_sensor_type
-//	beq P3212,p_mouse_seting_3212_dpi
+	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
@@ -2262,14 +2249,14 @@
 	fetch 1,mem_320x_dpi_4
 	branch p_mouse_3065xy_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_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
@@ -2376,15 +2363,15 @@
 
 p_mouse_cheak_sensor_data:
 	fetch 1,mem_config_sensor_type
-//	beq P3212,p_mouse_p3212_sensor_motion
+	beq P3212,p_mouse_p3212_sensor_motion
 	beq P8009,p_mouse_p8009_sensor_motion
 p_mouse_p32xx_sensor_motion:	
 	call mouse_clear_sensor_data
 	disable user
 	branch mouse_p32xx_sensor_motion_2
-//p_mouse_p3212_sensor_motion:
-//	call mouse_clear_sensor_data
-//	branch mouse_p3212_sensor_motion_1
+p_mouse_p3212_sensor_motion:
+	call mouse_clear_sensor_data
+	branch mouse_p3212_sensor_motion_1
 	
 p_mouse_p8009_sensor_motion:
 	call mouse_clear_sensor_data
Index: program/z.prog
===================================================================
--- /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/program/z.prog	(revision 3680)
+++ /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/program/z.prog	(working copy)
@@ -848,6 +848,7 @@
 	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
+	beq ZCODE_B6,z_adc_bat_percent_lowpower_out
 	rtn
 	
 z_mouse_sniff_not_accept:
@@ -892,6 +893,23 @@
 	jam 0xff,mem_device1_type
 	branch p_mouse_store_flash_device_info
 
+z_adc_bat_percent_lowpower_out:
+	fetch 8,mem_mouse_vdd_calculate_set
+	store 8,mem_pdatatemp
+	fetcht 2,mem_pdatatemp+2
+	fetch 2,mem_pdatatemp+6
+	isub temp,null
+	nbranch adc_set_no_power_flag,positive
+	fetcht 2,mem_pdatatemp+4	//low voltage 1.0v
+	isub temp,null
+	nbranch adc_set_low_power_flag,positive
+	branch z_adc_set_no_low_power_flag
+
+z_adc_set_no_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 0,temp
+	branch adc_set_store_flag
+
 org 0xd0001
 
 z_entranceC:
Index: sched/mouse.dat
===================================================================
--- /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/sched/mouse.dat	(revision 3680)
+++ /branch/mouse_project/XZR/XZR_1059/XZR_3Mode_2Ch_PB/sched/mouse.dat	(working copy)
@@ -200,10 +200,10 @@
 03##mem_320x_dpi_3
 04##mem_320x_dpi_4
 
-#15##mem_3212_dpi_1#800
-#1a##mem_3212_dpi_2#1000
-#2a##mem_3212_dpi_3#1600
-#3f##mem_3212_dpi_4#2400
+15##mem_3212_dpi_1#800
+1a##mem_3212_dpi_2#1000
+1f##mem_3212_dpi_3#1200
+2a##mem_3212_dpi_4#1600
 
 #04##mem_3610_dpi_1
 #05##mem_3610_dpi_2
